Re: A83: Password program
[Prev][Next][Index][Thread]
Re: A83: Password program
The error occurs because you press on and when you return to the basic
program that started the ASM program the calc thinks you press on which
stops a program with that error
/Stefan
On Sat, 12 Jun 1999 Edub311@aol.com wrote:
>
> Hey fellas,
> Im working on a password program, it uses only numbers, and it's just
> like Joe W.'s "PW". It's pretty ghetto, but i have a problem. In certain
> times during the program and error comes up, "Err: Break". This usually
> happens after I type the correct password and it rets, and during the typing
> of a new pw (which screws up the write-back process). It's a very simple
> setup. A subroutine called "keyloop" fetches the keypresses and puts them in
> (count). Then, it compares that to (password). if it is correct it either
> rets or goes to the new password screen (depending on whether the user pushes
> enter or mode). the new password routine calls "keyloop", then writes to
> (password) the contents of (count).
> the code is exactly as follows, so squish and check it out if you'd
> like. the current PW is nothing, so press enter to ret or mode to change it.
> The left key clears the current pw being typed.
>
>
> I'd greatly appreciate any help,
>
> Bud
> .NOLIST
> #define equ .equ
> #define EQU .equ
> #define end .end
> #define END .end
> #include "ti83asm.inc"
> #include "tokens.inc"
> #define zeroop1 $428E
> .LIST
> #DEFINE count 8265h
> #DEFINE temp 8271h
> #DEFINE limit 8281h
> #DEFINE dlay 8285h
> .org 9327h
> start:
> xor a
> ld (count),a
> ld (temp),a
> DI
> LD A,001H
> OUT (003H),A
> LD A,000H
> OUT (004H),A
> EX AF,AF'
> EXX
> EI
> call delay
> call _runindicoff
> call _clrlcdfull
> call _homeup
> ld a,8
> ld (limit),a
> call delay
> ei
> halt
> ld hl,pw
> set textInverse, (iy+textflags)
> call _puts
> res textInverse, (iy+textflags)
> call _newline
> ld hl,20000
> ld (dlay),hl
> jp done
> keyloop:
> ld a,0ffh
> out (1),a
> ld a,0feh
> out (1),a
> in a,(1)
> cp 253
> jp z,backspace
> ld a,0ffh
> out (1),a
> ld a,0fdh
> out (1),a
> ld a,0
> in a,(1)
> cp 254
> ret z
> ld a,0ffh
> out (1),a
> ld a,0fbh
> out (1),a
> in a,(1)
> cp 253
> jp z,three
> cp 251
> jp z,six
> cp 247
> jp z,nine
> ld a,0ffh
> out (1),a
> ld a,0f7h
> out (1),a
> in a,(1)
> cp 253
> jp z,two
> cp 251
> jp z,five
> cp 247
> jp z,eight
> ld a,0ffh
> out (1),a
> ld a,0efh
> out (1),a
> in a,(1)
> cp 254
> jp z,zero
> cp 253
> jp z,one
> cp 251
> jp z,four
> cp 247
> jp z,seven
> ld a,0ffh
> out (1),a
> ld a,0bfh
> out (1),a
> in a,(1)
> cp 191
> jp z,change
> jp keyloop
> backspace:
> call _homeup
> call _newline
> ld hl,line
> call _puts
> ld a,0
> ld (curcol),a
> zerocount:
> ld a,0
> ld (count),a
> jp keyloop
> change:
> ld a,154
> ld (temp),a
> ret
> zero:
> ld a,0
> ld (temp),a
> jp keypressed
> one:
> ld a,2
> ld (temp),a
> jp keypressed
> two:
> ld a,3
> ld (temp),a
> jp keypressed
> three:
> ld a,4
> ld (temp),a
> jp keypressed
> four:
> ld a,6
> ld (temp),a
> jp keypressed
> five:
> ld a,8
> ld (temp),a
> jp keypressed
> six:
> ld a,9
> ld (temp),a
> jp keypressed
> seven:
> ld a,11
> ld (temp),a
> jp keypressed
> eight:
> ld a,12
> ld (temp),a
> jp keypressed
> nine:
> ld a,14
> ld (temp),a
> keypressed:
> ld hl,star
> call _puts
> ld hl,(temp)
> ld de,(count)
> add hl,de
> ld (count),hl
> ld a,(limit)
> dec a
> ret z
> ld (limit),a
> call delay
> call delay
> jp keyloop
> done:
> call keyloop
> ld a,(temp)
> cp 154
> jp z,changepw
> ld a,(password)
> ld hl,(count)
> ld h,0
> sub l
> ret z
> jp start
> changepw:
> call delay
> ld a,(password)
> ld hl,(count)
> ld h,0
> sub l
> jr z,clearpw
> jp start
> clearpw:
> call zeroop1
> ld de,op1
> ld hl,prog
> ld bc,7
> ldir
> call _chkfindsym
> inc de
> inc de
> ld hl,password-$9327
> add hl,de
> ld hl,0
> call _clrlcdfull
> call _homeup
> ld hl,new
> call _puts
> call _newline
> ei
> halt
> call keyloop
> ld a,(count)
> push af
> call zeroop1
> ld de,op1
> ld hl,prog
> ld bc,7
> ldir
> call _chkfindsym
> inc de
> inc de
> ld hl,password-$9327
> add hl,de
> pop af
> ld (hl),a
> ret
> delay:
> PUSH AF
> PUSH BC
> LD BC,(dlay)
> delayLoop:
> DEC BC
> LD A, B
> OR C
> JR NZ, delayLoop
> POP BC
> POP AF
> ret
> password:
> .db 0000h
> prog:
> .db 5,"PW2",0
> blank:
> .db " ",0
> description:
> .db "PW 1.2 - Bud M",0
> star:
> .db "*",0
> line:
> .db " ",0
> new:
> .db "New Password:",0
> pw:
> .db "Password:",0
> .end
> END
>
>
References: