#INCLUDE "TI-82.h" .org 0 .db "Safe-T-Calc",0 ; S A F E - T - C A L C ; ; v1.0 for Oshell - TI-82 Assembly Shell ; ; By Don Barnes ; ; (C) 1997 ; ;----------------- ; TEXT MEM STUFF ;----------------- flag = TEXT_MEM ;--------------------- ; START OF OShell PROGRAM ;--------------------- Start: ROM_CALL(CLEARLCD) sub a ld ($800c),a ld ($800d),a set 3,(IY+05) LD HL,safecalc ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL res 3,(IY+05) sub a ld ($800d),a ld a,2 ld ($800c),a LD HL,options ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL mainloop CALL GET_KEY ; GET the KEY CP 34 ; Was 1 pressed? JUMP_Z(lock) CP 26 ; Was 2 pressed? JUMP_Z(newpass) CP $37 ; Was mode pressed? JUMP_Z(ending) ; If so, end jr mainloop ending RET lock CALL $07EA sub a ld ($800d),a ld a,2 ld ($800c),a LD HL,login ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL sub a ld ($800d),a ld a,3 ld ($800c),a CALL_(check) ld a,(flag) cp 0 JUMP_NZ(lock) JUMP_(ending) newpass LD HL,oldpass ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL CALL_(check) ld a,(flag) cp 0 JUMP_NZ(Start) sub a ld ($800d),a ld a,6 ld ($800c),a LD HL,newspass ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL ld hl,password LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset newloop push hl CALL GET_KEY ; GET the KEY pop hl cp 0 jr z,newloop ld (hl),a CP 9 jr z,endnew push hl LD HL,star ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL ld bc,1 pop hl add HL,bc ld a,(hl) CP 255 jr nz,newloop endnew JUMP_(Start) check ld a,0 ld (flag),a ld hl,password LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset checkloop push hl CALL GET_KEY ; GET the KEY pop hl ; CP $37 ; Was mode pressed? ; JUMP_Z(ending) ; If so, end sub cp 0 jr z,checkloop ld b,(hl) cp b jr z,noflag ld d,a ld a,1 ld (flag),a ld a,d noflag CP 9 jr z,endpass push hl LD HL,star ;Point HL at string LD DE,(PROGRAM_ADDR) ; ADD HL,DE ; Add offset ROM_CALL(D_ZT_STR) ; Call ROMCALL ld bc,1 pop hl add HL,bc ld a,(hl) ; PUSH HL ; call LD_HL_MHL ; ROM_CALL(D_HL_DECI) ; POP HL CP 255 jr nz,checkloop endpass ret safecalc .db "Safe-T-Calc v1.0" .db "By Don Barnes ",0 options .db "1) Lock TI-82 " .db "2) Change Pass ",0 oldpass .db "Type old pass: ",0 newspass .db "Type new pass: ",0 login .db "Type login pass: ",0 star .db "*",0 password .db 9,9,9,9,9,9,9,9,255,0 .END .END .END .END