summaryrefslogtreecommitdiffstats
path: root/from_toebes/hello
diff options
context:
space:
mode:
authorfishsoupisgood <github@madingley.org>2019-05-28 12:09:03 +0100
committerfishsoupisgood <github@madingley.org>2019-05-28 12:09:03 +0100
commitee33718ab57c5a041b55c70c0ae7e046b3d1592b (patch)
tree118fa6880cb9f8d592516c5b40325f9b7448d0af /from_toebes/hello
parent8110dec1577d9a9002119c15467d71d8a1f51bc8 (diff)
downloadwristapps-ee33718ab57c5a041b55c70c0ae7e046b3d1592b.tar.gz
wristapps-ee33718ab57c5a041b55c70c0ae7e046b3d1592b.tar.bz2
wristapps-ee33718ab57c5a041b55c70c0ae7e046b3d1592b.zip
general tidy up add all the timex apps and the toebes apps and numpad
Diffstat (limited to 'from_toebes/hello')
l---------from_toebes/hello/hello.asm1
l---------from_toebes/hello/hello.known_good1
-rw-r--r--from_toebes/hello/hello.zap25
-rw-r--r--from_toebes/hello/hello.zsm83
4 files changed, 110 insertions, 0 deletions
diff --git a/from_toebes/hello/hello.asm b/from_toebes/hello/hello.asm
new file mode 120000
index 0000000..759fddf
--- /dev/null
+++ b/from_toebes/hello/hello.asm
@@ -0,0 +1 @@
+hello.zsm \ No newline at end of file
diff --git a/from_toebes/hello/hello.known_good b/from_toebes/hello/hello.known_good
new file mode 120000
index 0000000..c74403e
--- /dev/null
+++ b/from_toebes/hello/hello.known_good
@@ -0,0 +1 @@
+hello.zap.app \ No newline at end of file
diff --git a/from_toebes/hello/hello.zap b/from_toebes/hello/hello.zap
new file mode 100644
index 0000000..f1fbea3
--- /dev/null
+++ b/from_toebes/hello/hello.zap
@@ -0,0 +1,25 @@
+TDL0724962¬ Applet file header
+Hello World¬ Applet friendly name
+HELLO1¬ Applet version #
+This Hex dump routine is a simple thing to test out dumping hex bytes...
+
+TIP: Download your watch faster: Download a WristApp once, then do not send it again. It stays in the watch!¬
+WATCHAPP.HLP¬ Applet help filename
+106¬
+none¬ Applet's parent's app name (if it exists - 'none' if it doesn't)
+Timex Data Link 150 Watch¬
+CC016A819D9D819D9D819D9D819D9DD6013381CC014100110E1313001D1A0017130D1D001BFF001AFF0080FF0001FFFF1D128FB691A180271A1161016103CC5776CD577AA617CD587EA61DCD58A8A648CC584C0061E3106120E1A6C0B7963F6181¬
+28942¬
+0¬ No data
+Hello World¬ Applet friendly name
+HELLO2¬ Applet version #
+This Hex dump routine is a simple thing to test out dumping hex bytes...
+
+TIP: Download your watch faster: Download a WristApp once, then do not send it again. It stays in the watch!¬
+WATCHAPP.HLP¬ Applet help filename
+106¬
+none¬ Applet's parent's app name (if it exists - 'none' if it doesn't)
+Timex Data Link 150s Watch¬
+CC016A819D9D819D9D819D9D819D9DD6013381CC014100110E1313001D1A0017130D1D001BFF001AFF0080FF0001FFFF1D128FB691A180271A1161016103CC5A9CCD5AA0A617CD577FA61DCD57A9A648CC574D0061E3106120E1A6C0B7963F6181¬
+16378¬
+0¬ No data \ No newline at end of file
diff --git a/from_toebes/hello/hello.zsm b/from_toebes/hello/hello.zsm
new file mode 100644
index 0000000..93d4d40
--- /dev/null
+++ b/from_toebes/hello/hello.zsm
@@ -0,0 +1,83 @@
+;Name: Hello World
+;Version: HELLO
+;Description: This is a simple Hello Program
+;by John A. Toebes, VIII
+;
+;TIP: Download your watch faster: Download a WristApp once, then do not send it again. It stays in the watch!
+;HelpFile: watchapp.hlp
+;HelpTopic: 106
+ INCLUDE "WRISTAPP.I"
+;
+; (1) Program specific constants
+;
+FLAGBYTE EQU $61
+; Bit 0 indicates that we want to show the segments instead of the message
+;
+START EQU *
+;
+; (2) System entry point vectors
+L0110: jmp MAIN ; The main entry point - WRIST_MAIN
+L0113: rts ; Called when we are suspended for any reason - WRIST_SUSPEND
+ nop
+ nop
+L0116: rts ; Called to handle any timers or time events - WRIST_DOTIC
+ nop
+ nop
+L0119: rts ; Called when the COMM app starts and we have timers pending - WRIST_INCOMM
+ nop
+ nop
+L011c: rts ; Called when the COMM app loads new data - WRIST_NEWDATA
+ nop
+ nop
+
+L011f: lda STATETAB,X ; The state table get routine - WRIST_GETSTATE
+ rts
+
+L0123: jmp HANDLE_STATE0
+ db STATETAB-STATETAB
+;
+; (3) Program strings
+S6_HELLO: timex6 "HELLO "
+S6_WORLD: timex6 "WORLD "
+;
+; (4) State Table
+; (4) State Table
+STATETAB:
+ db 0
+ db EVT_ENTER,TIM_ONCE,0 ; Initial state
+ db EVT_RESUME,TIM_ONCE,0 ; Resume from a nested app
+ db EVT_DNNEXT,TIM_ONCE,0 ; Next button
+ db EVT_MODE,TIM_ONCE,$FF ; Mode button
+ db EVT_END
+;
+; (5) State Table 0 Handler
+; This is called to process the state events. We only see ENTER, RESUME, and DNNEXT events
+;
+HANDLE_STATE0:
+ bset 1,$8f ; Indicate that we can be suspended
+ lda BTNSTATE ; Get the event
+ cmp #EVT_DNNEXT ; Did they press the next button?
+ beq DOTOGGLE ; Yes, toggle what we are displaying
+CLEARIT bclr 0,FLAGBYTE ; Start us in the show display state
+REFRESH brclr 0,FLAGBYTE,SHOWDISP ; Do we want to see the main display?
+ jmp SETALL ; No, just turn on all segments
+SHOWDISP jsr CLEARALL ; Clear the display
+ lda #S6_HELLO-START ; Get the offset for the first string
+ jsr PUT6TOP ; And send it to the top line
+ lda #S6_WORLD-START ; Get the offset for the second string
+ jsr PUT6MID ; and put it on the middle line
+ lda #SYS8_MODE ; Get the system offset for the 'MODE' string
+ jmp PUTMSGBOT ; and put it on the bottom line
+;
+; (6) Our only real piece of working code...
+DOTOGGLE brset 0,FLAGBYTE,CLEARIT ; If it is set, just jump to clear it like normal
+ bset 0,FLAGBYTE ; Already clear, so set it
+ bra REFRESH ; and let the refresh code handle it
+;
+; (7) This is the main initialization routine which is called when we first get the app into memory
+;
+MAIN:
+ lda #$c0 ; We want button beeps and to indicate that we have been loaded
+ sta $96
+ clr FLAGBYTE ; start with a clean slate
+ rts