summaryrefslogtreecommitdiffstats
path: root/number/number.asm
diff options
context:
space:
mode:
Diffstat (limited to 'number/number.asm')
-rw-r--r--number/number.asm117
1 files changed, 0 insertions, 117 deletions
diff --git a/number/number.asm b/number/number.asm
deleted file mode 100644
index 8a71702..0000000
--- a/number/number.asm
+++ /dev/null
@@ -1,117 +0,0 @@
-;Name: Numbers
-;Version: NUMBER
-;Description: This is a simple number count 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
-;
-CURVAL EQU $62 ; The current value we are displaying
-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_NUMBER: timex6 "NUMBER"
-S6_COUNT: timex6 "COUNT "
-;
-; (4) State Table
-STATETAB:
- db 0
- db EVT_ENTER,TIM2_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_DNNEXT,TIM_ONCE,0 ; Next button
- db EVT_DNPREV,TIM_ONCE,0 ; Prev button
- db EVT_DNSET,TIM_ONCE,0 ; Set 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 will see ENTER, RESUME, DNNEXT, DNPREV, DNSET, and TIMER2
-;
-HANDLE_STATE0:
- bset 1,APP_FLAGS ; Indicate that we can be suspended
- lda BTNSTATE ; Get the event
- cmp #EVT_DNNEXT ; Did they press the next button?
- beq DO_NEXT ; Yes, increment the counter
- cmp #EVT_DNPREV ; How about the PREV button
- beq DO_PREV ; handle it
- cmp #EVT_DNSET ; Maybe the set button?
- beq DO_SET ; Deal with it!
- 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_NUMBER-START
- jsr PUT6TOP
- lda #S6_COUNT-START
- jsr PUT6MID
- lda #SYS8_MODE
- jmp PUTMSGBOT
-;
-; (6) Our only real working code...
-DO_NEXT
- inc CURVAL
- lda CURVAL
- cmp #100
- bne SHOWVAL
-DO_SET
- clr CURVAL
-SHOWVAL
- brset 1,FLAGBYTE,NOCLEAR
-REFRESH
- jsr CLEARALL
- bset 1,FLAGBYTE
-NOCLEAR
- ldx CURVAL
- jsr FMTXLEAD0
- jmp PUTMID34
-DO_PREV
- lda CURVAL
- beq WRAPUP
- dec CURVAL
- bra SHOWVAL
-WRAPUP
- lda #99
- sta CURVAL
- bra SHOWVAL
-;
-; (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