#DEFINE equ = #DEFINE EQU = .include "ti83asm.inc" .org $9327 call _runIndicOff call _CLRLCDFULL ld hl,$0000 ld (CURROW),hl ld hl,_str_TITLE set 3,(iy+5) call _puts res 3,(iy+5) ld hl,$0003 ld (CURROW),hl ld hl,_str_ENTER call _puts call scan_keys key_loop: ld a,%10111101 out (1),a in a,(1) cp %10111111 jr z,quit cp %11111110 jr z,start_dump jr key_loop start_dump: ld hl,$0003 ld (CURROW),hl ld hl,_str_SENDING call _puts call _runIndicOn ld a,$C0 out (0),a ld a,$88 out (2),a ld hl,$4000 dump_loop: ld a,%10111101 out (1),a in a,(1) cp %10111111 jr z,quit ld a,11 ld (ASM_IND_CALL),a ld b,(hl) in a,(0) and 16 or $C0 push af in a,(2) push af ld a,$D0 out (0),a ld a,$8C out (2),a ld a,b call _IO_EXEC pop af out (2),a pop af out (0),a inc hl ld bc,$8000 push hl or a sbc hl,bc pop hl jr nz,dump_loop in a,(2) cp $8F jr z,check_rom inc a cont_dump: out (2),a ld hl,$4000 jr dump_loop check_rom: in a,(0) bit 4,a jr nz,quit ld a,$D0 out (0),a ld a,$88 jr cont_dump quit: ld a,$D0 out (0),a ld a,$8C out (2),a call _runIndicOff call scan_keys ld hl,$0000 ld (CURROW),hl jp _CLRLCDFULL scan_keys: di scan_loop: xor a out (1),a in a,(1) cp $FF jr nz,scan_loop ei ret _str_TITLE: .db "ROM dumper v2.1 " .db "by Randy Gluvna ",0 _str_ENTER: .db "Press Enter " .db "to start",0 _str_SENDING: .db "Sending... " .db " ",0 .end