summaryrefslogtreecommitdiffstats
path: root/password/password.asm
diff options
context:
space:
mode:
Diffstat (limited to 'password/password.asm')
-rw-r--r--password/password.asm232
1 files changed, 0 insertions, 232 deletions
diff --git a/password/password.asm b/password/password.asm
deleted file mode 100644
index d73c482..0000000
--- a/password/password.asm
+++ /dev/null
@@ -1,232 +0,0 @@
-;Name: Password
-;Version: PASSWD
-;Description: This is a simple number update/passwd 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 which digit we are working on (SET=SECOND DIGIT)
-; Bit 1 indicates that we need to clear the display first
-;
-DIGIT0 EQU $62 ; The first digit to enter
-DIGIT1 EQU $63 ; The second digit to enter
-;SYSTEMP0 EQU $A0
-;SYSTEMP1 EQU $A1
-;
-; (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 STATETAB0,X ; The state table get routine - WRIST_GETSTATE
- rts
-
-L0123: jmp HANDLE_STATE0
- db STATETAB0-STATETAB0
-L0127: jmp HANDLE_STATE1
- db STATETAB1-STATETAB0
-;
-; (3) Program strings
-S6_TOEBES: timex6 "TOEBES"
-S6_SAMPLE: timex6 "SAMPLE"
-S6_PRESS: timex6 "PRESS "
-S8_PASSWORD: timex "PASSWORD"
-SX_MESSAGE timex "BY JOHN A. TOEBES, VIII"
- db SEPARATOR
-;
-; (4) State Table
-;
-STATETAB0:
- 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_MODE,TIM_ONCE,$FF ; Mode button
- db EVT_SET,TIM_ONCE,1 ; SET button pressed
- db EVT_END
-
-STATETAB1:
- db 1
- db EVT_RESUME,TIM_ONCE,1 ; Resume from a nested app
- db EVT_DNANY4,TIM_ONCE,1 ; NEXT, PREV, SET, MODE button pressed
- db EVT_UPANY4,TIM_ONCE,1 ; NEXT, PREV, SET, MODE button released
- db EVT_USER2,TIM_ONCE,0
- db EVT_END
-;
-; (5) State Table 0 Handler
-; This is called to process the state events.
-; We see ENTER, TIMER2, and RESUME events
-;
-HANDLE_STATE0:
- bset 1,APP_FLAGS ; Indicate that we can be suspended
- lda BTNSTATE ; Get the event
- cmp #EVT_ENTER ; Is this our initial entry?
- bne REFRESH0
-;
-; 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_TOEBES-START
- jsr PUT6TOP
- lda #S6_SAMPLE-START
- jsr PUT6MID
- lda #( ( S8_PASSWORD - $10 ) & $ff )
- jmp BANNER8
-;
-; We come here for a RESUME or TIMER2 event. For this we want to reset the display
-;
-REFRESH0
- brset 1,FLAGBYTE,NOCLEAR0 ; Do we need to clear the display first?
- bset 1,FLAGBYTE
- jsr CLEARSYM
-NOCLEAR0
- lda #S6_PRESS-START
- jsr PUT6TOP
- lda #SYS6_SET
- jsr PUTMSG2
- lda #SX_MESSAGE-START
- jmp SETUP_SCROLL
-;
-; (6) State Table 1 Handler
-; This is called to process the state events.
-; We see SET, RESUME, DNANY4, and UPANY4 events
-;
-HANDLE_STATE1:
- bset 1,APP_FLAGS ; Indicate that we can be suspended
- lda BTNSTATE ; Get the event
- cmp #EVT_UPANY4
- beq REFRESH
- cmp #EVT_DNANY4 ; Is this our initial entry?
- bne FORCEFRESH
- 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_MODE ; Perhaps the MODE button
- beq DO_MODE ; If so, handle it
- ; It must be the set button, so take us out of this state
- lda #EVT_USER2
- jmp POSTEVENT
-;
-; (7) 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)
- brset 0,FLAGBYTE,UPD1
- ldx DIGIT1
- jsr FMTXLEAD0
- jsr PUTMID34
- ldx #DIGIT0 ; Point to our value to be updated
- lda #UPD_MID12 ; Request updating in the middle of the display
- bra UPD2
-UPD1
- ldx DIGIT0
- jsr FMTXLEAD0
- jsr PUTMID12
- ldx #DIGIT1
- lda #UPD_MID34
-UPD2
- 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_MODE
- lda FLAGBYTE
- eor #1
- sta FLAGBYTE
-
-REFRESH
- brset 1,FLAGBYTE,NOCLEAR ; Do we need to clear the display first?
-FORCEFRESH
- 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
- brset 0,FLAGBYTE,SET1
- ldx DIGIT1
- jsr FMTXLEAD0
- jsr PUTMID34
- ldx #DIGIT0
- lda #BLINK_MID12
- bra SET2
-SET1
- ldx DIGIT0
- jsr FMTXLEAD0
- jsr PUTMID12
- ldx #DIGIT1
- lda #BLINK_MID34
-SET2
- jsr START_BLINKP
- bset 2,BTNFLAGS ; Mark a blink routine as pending
- rts
-;
-; (8) 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 DIGIT0
- clr DIGIT1
- rts
-;
-; (9) This subroutine is useful for getting a scrolling string on the screen
-;
-;----------------------------------------------------------------------
-; Routine:
-; SETUP_SCROLL
-; Parameters:
-; X - Offset from Start to the string
-; Returns:
-; MSGBUF - contains copied string
-; Purpose
-; This copies the current string into MSGBUF and calls the appropriate routines
-; to start it scrolling on the bottom line.
-;----------------------------------------------------------------------
-SETUP_SCROLL:
- clr SYSTEMP0
- sta SYSTEMP1
-DO_COPY:
- ldx SYSTEMP1 ; Get the pointer to the source character
- lda START,X ; Get the character that we are copying
- ldx SYSTEMP0 ; Get the pointer to the output buffer
- sta MSGBUF,X ; and store the character away
- inc SYSTEMP0 ; Increment our count
- inc SYSTEMP1 ; As well as the pointer to the character
- cmp #SEPARATOR ; Did we get a terminator character
- bne DO_COPY ; No, go back for more
- ;
- ; The string is now in a buffer terminated by a separator character
- ;
- jsr PUTSCROLLMSG ; Initialize the scrolling support
- jmp SCROLLMSG ; And tell it to actually start scrolling