; PROGRAM: PROGPTR ; VERSION: 2.00 ; AUTHOR: David Eriksson, edison@kuai.se ; DATE: 10/26/96 kEnter .EQU 05h ; Enter key kQuit .EQU 40h ; Quit key #define equ .equ ; these will make ti83asm.inc and tokens.inc work in TASM #define EQU .equ .NOLIST .INCLUDE "ti83asm.inc" ; TI83 System Routine Equates .INCLUDE "tokens.inc" ; TI83 Tokens .LIST .ORG 9327h ; All TI83 programs have base 9327h LD HL, (PROGPTR) ; get offset to program/list table LD A, 4 ; four programs/keypress main_loop: LD (count), A ; store latest update of count LD A, (HL) ; get type of data AND 01FH ; mask out bits 0-4 CP 05H ; program JR Z, program CP 06H ; protected program JR Z, program CP 01H ; real list JR Z, list CP 0DH ; complex list JR Z, list JR the_end ; unknown/end of list program: DEC HL ; move back 3 bytes to length-of-name DEC HL DEC HL CP 06h ; display '*' for protected programs JR Z, protected LD A, ' ' JR go_on protected: LD A, '*' go_on: CALL _PUTC LD B, (HL) ; load length-of-string program_loop: DEC HL ; move backwards to next char LD A, (HL) ; load char CALL _PUTC ; display char DJNZ program_loop DEC HL ; move backwards to next item CALL _NEWLINE LD A, (count) ; have we displayed four programs? DEC A JR NZ, main_loop key_loop: PUSH HL CALL _GETKEY ; wait for key POP HL CP kQuit JR Z, the_end CP kEnter ; enter key? JR NZ, key_loop ; no LD A, 4 ; four programs/keypress JR main_loop list: DEC HL ; move back 3 bytes to length-of-name DEC HL DEC HL LD B, (HL) ; load length-of-string list_loop: DEC HL ; move backwards to next char DJNZ list_loop DEC HL ; move backwards to next item LD A, (count) ; no change really, load A JP main_loop the_end: RET count: .DB 00h .END