summaryrefslogtreecommitdiffstats
path: root/from_toebes/flash
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/flash
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/flash')
l---------from_toebes/flash/flash.asm1
l---------from_toebes/flash/flash.known_good1
-rw-r--r--from_toebes/flash/flash.zap25
-rw-r--r--from_toebes/flash/flash.zsm135
4 files changed, 162 insertions, 0 deletions
diff --git a/from_toebes/flash/flash.asm b/from_toebes/flash/flash.asm
new file mode 120000
index 0000000..ac2ecb7
--- /dev/null
+++ b/from_toebes/flash/flash.asm
@@ -0,0 +1 @@
+flash.zsm \ No newline at end of file
diff --git a/from_toebes/flash/flash.known_good b/from_toebes/flash/flash.known_good
new file mode 120000
index 0000000..69e7579
--- /dev/null
+++ b/from_toebes/flash/flash.known_good
@@ -0,0 +1 @@
+flash.zap.app \ No newline at end of file
diff --git a/from_toebes/flash/flash.zap b/from_toebes/flash/flash.zap
new file mode 100644
index 0000000..22642f7
--- /dev/null
+++ b/from_toebes/flash/flash.zap
@@ -0,0 +1,25 @@
+TDL0724962¬ Applet file header
+Update/Flash Sample¬ Applet friendly name
+blink1¬ Applet version #
+This is a simple number blink/update program
+
+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¬
+CC01AB819D9D819D9D819D9D819D9DD6013381CC0147000F130A05111D050A1416130E001B83001FFF001AFF0001FFFF86FF00A6FF001D128FB691A186260FC604C3A1032724A100271CA1022737A11B26381361CD579FA617CD587EA61DCD58A8A648CC584C109F2002119F4FC704F4A663C704F5AE62A607CD57C718901361A650CC584C3F62026105CD577A12611F90AE62A609CD55BF149081A6C0B7963F613F6281¬
+52411¬
+0¬ No data
+Update/Flash Sample¬ Applet friendly name
+blink2¬ Applet version #
+This is a simple number blink/update program
+
+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¬
+CC01AB819D9D819D9D819D9D819D9DD6013381CC0147000F130A05111D050A1416130E001B83001FFF001AFF0001FFFF86FF00A6FF001D128FB691A186260FC604C3A1032724A100271CA1022737A11B26381361CD5ACBA617CD577FA61DCD57A9A648CC574D109F2002119F4FC704F4A663C704F5AE62A607CD56C818901361A650CC574D3F62026105CD5AA012611F90AE62A609CD55AE149081A6C0B7963F613F6281¬
+36065¬
+0¬ No data \ No newline at end of file
diff --git a/from_toebes/flash/flash.zsm b/from_toebes/flash/flash.zsm
new file mode 100644
index 0000000..33208b7
--- /dev/null
+++ b/from_toebes/flash/flash.zsm
@@ -0,0 +1,135 @@
+;Name: Flash
+;Version: FLASH
+;Description: by John A. Toebes, VIII
+;This is a simple number update/flash program
+;
+;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 1 indicates that we need to clear the display first
+;
+CURVAL EQU $62 ; The current value we are displaying
+;
+; (2) System entry point vectors
+;
+START EQU *
+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_FLASH: timex6 "FLASH "
+S6_SAMPLE: timex6 "SAMPLE"
+;
+; (4) State Table
+;
+STATETAB:
+ db 0
+ db EVT_ENTER,TIM_2_8TIC,0 ; Initial state
+ db EVT_TIMER2,TIM_ONCE,0 ; The timer from the enter event
+ db EVT_RESUME,TIM_ONCE,0 ; Resume from a nested app
+ db EVT_MODE,TIM_ONCE,$FF ; Mode button
+ db EVT_DNANY4,TIM_ONCE,0 ; NEXT, PREV, SET, MODE button pressed
+ db EVT_UPANY4,TIM_ONCE,0 ; NEXT, PREV, SET, MODE button released
+ db EVT_END
+;
+; (5) State Table 0 Handler
+; This is called to process the state events.
+; We see ENTER, TIMER2, RESUME, DNANY4 and UPANY4 events
+;
+HANDLE_STATE0:
+ bset 1,APP_FLAGS ; Indicate that we can be suspended
+ lda BTNSTATE ; Get the event
+ cmp #EVT_DNANY4 ; Did they press a button?
+ bne CHKENTER ; No, pass on to see what else there might be
+ lda BTN_PRESSED ; Let's see what the button they pressed was
+ cmp #EVT_PREV ; How about the PREV button
+ beq DO_PREV ; handle it
+ cmp #EVT_NEXT ; Maybe the NEXT button?
+ beq DO_NEXT ; Deal with it!
+ cmp #EVT_SET ; Perhaps the SET button
+ beq DO_SET ; If so, handle it
+ ; In reality, we can't reach here since we handled all three buttons
+ ; in the above code (the MODE button is handled before we get here and the
+ ; GLOW button doesn't send in an event for this). We can just fall through
+ ; and take whatever we get from it.
+CHKENTER
+ cmp #EVT_ENTER ; Is this our initial entry?
+ bne REFRESH
+;
+; This is the initial event for starting us
+;
+DO_ENTER
+ bclr 1,FLAGBYTE ; Indicate that we need to clear the display
+ jsr CLEARSYM ; Clear the display
+ lda #S6_FLASH-START
+ jsr PUT6TOP
+ lda #S6_SAMPLE-START
+ jsr PUT6MID
+ lda #SYS8_MODE
+ jmp PUTMSGBOT
+;
+; (6) Our real working code...
+
+DO_NEXT
+ bset 0,SYSFLAGS ; Mark our update direction as up
+ bra DO_UPD
+DO_PREV
+ bclr 0,SYSFLAGS ; Mark our update direction as down
+DO_UPD
+ clra
+ sta UPDATE_MIN ; Our low end is 0
+ lda #99
+ sta UPDATE_MAX ; and the high end is 99 (the max since this is a 2 digit value)
+ ldx #CURVAL ; Point to our value to be updated
+ lda #UPD_MID34 ; Request updating in the middle of the display
+ jsr START_UPDATEP ; And prepare the update routine
+ bset 4,BTNFLAGS ; Mark that the update is now pending
+ bclr 1,FLAGBYTE
+ lda #SYS8_SET_MODE
+ jmp PUTMSGBOT
+
+DO_SET
+ clr CURVAL ; When they hit the set button, we just clear to zero
+SHOWVAL
+ brset 1,FLAGBYTE,NOCLEAR ; Do we need to clear the display first?
+REFRESH
+ jsr CLEARALL ; Yes, clear everything before we start
+ bset 1,FLAGBYTE ; And remember that we have already done that
+NOCLEAR
+ bclr 7,BTNFLAGS ; Turn off any update routine that might be pending
+ ldx #CURVAL
+ lda #BLINK_MID34
+ jsr START_BLINKP
+ bset 2,BTNFLAGS ; Mark a blink routine as pending
+ rts
+;
+; (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 WRISTAPP_FLAGS
+ clr FLAGBYTE ; start with a clean slate
+ clr CURVAL
+ rts