From 9a6959b2700ec54392fb2ffb145bacae66fc2269 Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Wed, 18 Aug 2021 17:31:19 -0400 Subject: initial commit --- coin/.DS_Store | Bin 0 -> 6148 bytes coin/bin/Coin.8xp | Bin 0 -> 8041 bytes coin/bin/Coin.bin | Bin 0 -> 7965 bytes coin/makefile | 20 +++++++++++ coin/obj/coin.c.src | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++ coin/obj/icon.src | 9 +++++ coin/src/coin.c | 41 +++++++++++++++++++++++ 7 files changed, 164 insertions(+) create mode 100644 coin/.DS_Store create mode 100644 coin/bin/Coin.8xp create mode 100644 coin/bin/Coin.bin create mode 100755 coin/makefile create mode 100644 coin/obj/coin.c.src create mode 100644 coin/obj/icon.src create mode 100644 coin/src/coin.c (limited to 'coin') diff --git a/coin/.DS_Store b/coin/.DS_Store new file mode 100644 index 0000000..0c36b57 Binary files /dev/null and b/coin/.DS_Store differ diff --git a/coin/bin/Coin.8xp b/coin/bin/Coin.8xp new file mode 100644 index 0000000..ce45ea6 Binary files /dev/null and b/coin/bin/Coin.8xp differ diff --git a/coin/bin/Coin.bin b/coin/bin/Coin.bin new file mode 100644 index 0000000..c318c72 Binary files /dev/null and b/coin/bin/Coin.bin differ diff --git a/coin/makefile b/coin/makefile new file mode 100755 index 0000000..fe76d81 --- /dev/null +++ b/coin/makefile @@ -0,0 +1,20 @@ +# ---------------------------- +# Makefile Options +# ---------------------------- + +NAME ?= Coin +ICON ?= icon.png +DESCRIPTION ?= "Coin Flip" +COMPRESSED ?= NO +ARCHIVED ?= NO + +CFLAGS ?= -Wall -Wextra -Oz +CXXFLAGS ?= -Wall -Wextra -Oz + +# ---------------------------- + +ifndef CEDEV +$(error CEDEV environment path variable is not set) +endif + +include $(CEDEV)/meta/makefile.mk diff --git a/coin/obj/coin.c.src b/coin/obj/coin.c.src new file mode 100644 index 0000000..b2a3cc3 --- /dev/null +++ b/coin/obj/coin.c.src @@ -0,0 +1,94 @@ + section .text,"ax",@progbits + assume adl = 1 + section .text,"ax",@progbits + public _main +_main: +BB0_1: + ld iy, -3145600 + call _os_ClrLCD + call _os_HomeUp + call _os_DrawStatusBar + ld hl, L_.str + push hl + call _printf_ + pop hl + call _os_GetKey + ld.sis de, 9 + or a, a + sbc.sis hl, de + jq z, BB0_8 + call _coinFlip + add hl, bc + or a, a + sbc hl, bc + ld de, L_.str.1 + jq z, BB0_5 + ld de, 1 + or a, a + sbc hl, de + jq nz, BB0_6 + ld de, L_.str.2 +BB0_5: + push de + call _printf_ + pop hl +BB0_6: +BB0_7: + call _os_GetCSC + or a, a + jq z, BB0_7 + jq BB0_1 +BB0_8: + or a, a + sbc hl, hl + ret + section .text,"ax",@progbits + + section .text,"ax",@progbits + public _coinFlip +_coinFlip: + ld hl, -4 + call __frameset + pea ix + -4 + call _time + pop de + push hl + call _srand + pop hl + call _rand + ld bc, 2 + call __irems + ld sp, ix + pop ix + ret + section .text,"ax",@progbits + + section .rodata,"a",@progbits + private L_.str +L_.str: + db "Coin Flip",012o,"Press Enter to Flip",012o,"Press Clear to exit",012o,000o + + section .rodata,"a",@progbits + private L_.str.1 +L_.str.1: + db "Heads",000o + + section .rodata,"a",@progbits + private L_.str.2 +L_.str.2: + db "Tails",000o + + ident "clang version 12.0.0 (https://github.com/jacobly0/llvm-project 170be88120e3aa88c20eea5615ba76b8f1d6c647)" + extern __Unwind_SjLj_Register + extern __Unwind_SjLj_Unregister + extern __frameset + extern _srand + extern __irems + extern _printf_ + extern _rand + extern _os_GetCSC + extern _os_ClrLCD + extern _os_DrawStatusBar + extern _os_HomeUp + extern _time + extern _os_GetKey diff --git a/coin/obj/icon.src b/coin/obj/icon.src new file mode 100644 index 0000000..5b3aaab --- /dev/null +++ b/coin/obj/icon.src @@ -0,0 +1,9 @@ + section .icon + + jp ___prgm_init + db $02 + + public ___description +___description: + db "Coin Flip", 0 +___prgm_init: diff --git a/coin/src/coin.c b/coin/src/coin.c new file mode 100644 index 0000000..8c71534 --- /dev/null +++ b/coin/src/coin.c @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +#define EnterKey 5 +#define ExitKey 9 + +int coinFlip(void); + +int main() +{ + + while (true) { + os_ClrHome(); + + printf("Coin Flip\nPress Enter to Flip\nPress Clear to exit\n"); + + int key = os_GetKey(); + + if (key == ExitKey) + break; + int coin = coinFlip(); + if (coin == 0) + printf("Heads"); + else if (coin == 1) + printf("Tails"); + + while (!os_GetCSC()); + } + + return 0; +} + +int coinFlip(void) +{ + time_t t; + + srand((unsigned) time(&t)); + return (rand() % 2); +} -- cgit v1.2.3