summaryrefslogtreecommitdiff
path: root/coin
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@simplelittledream.com>2021-08-18 17:31:19 -0400
committerJacob McDonnell <jacob@simplelittledream.com>2021-08-18 17:31:19 -0400
commit9a6959b2700ec54392fb2ffb145bacae66fc2269 (patch)
tree34704cfbbb55e349ab91c09138911f2906e90988 /coin
initial commit
Diffstat (limited to 'coin')
-rw-r--r--coin/.DS_Storebin0 -> 6148 bytes
-rw-r--r--coin/bin/Coin.8xpbin0 -> 8041 bytes
-rw-r--r--coin/bin/Coin.binbin0 -> 7965 bytes
-rwxr-xr-xcoin/makefile20
-rw-r--r--coin/obj/coin.c.src94
-rw-r--r--coin/obj/icon.src9
-rw-r--r--coin/src/coin.c41
7 files changed, 164 insertions, 0 deletions
diff --git a/coin/.DS_Store b/coin/.DS_Store
new file mode 100644
index 0000000..0c36b57
--- /dev/null
+++ b/coin/.DS_Store
Binary files differ
diff --git a/coin/bin/Coin.8xp b/coin/bin/Coin.8xp
new file mode 100644
index 0000000..ce45ea6
--- /dev/null
+++ b/coin/bin/Coin.8xp
Binary files differ
diff --git a/coin/bin/Coin.bin b/coin/bin/Coin.bin
new file mode 100644
index 0000000..c318c72
--- /dev/null
+++ b/coin/bin/Coin.bin
Binary files 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 <tice.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <time.h>
+
+#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);
+}