#include "asm86.h" #include "ti86asm.inc" #include "ti86abs.inc" .org _asm_exec_ram loop2: ld hl,strName-1 ; The first byte in OP1 is not important rst 20h ; Copy HL to OP1 rst 10h ; Looks up variable, BDE = ABS addr to program ld a,b ex de,hl push af ld (_ABS_SRC_ADDR),a ld a,h ld (_ABS_SRC_ADDR+1),a ld a,l ld (_ABS_SRC_ADDR+2),a pop af call _load_ram_ahl push hl ld e,(hl) inc hl ld d,(hl) ld h,d ld l,e ld (data),hl pop hl inc hl inc hl ld de,data+2 ld bc,(data) ldir ld hl,progname-1 ; The first byte in OP1 is not important rst 20h ; Copy HL to OP1 call _FINDSYM call nc, _delvar xor a ld hl,progname-1 ; The first byte in OP1 is not important rst 20h ; Copy HL to OP1 ld hl,(data) inc hl call _CREATEPROG ld a,b ex de,hl call _inc_ptr_ahl call _inc_ptr_ahl ld c,0 call _writeb_inc_ahl call _load_ram_ahl ld de,data+2 ex de,hl ld bc,(data) push de push bc ldir pop bc pop de ex de,hl ld a,$27 ;$27 = apostrophe $22 = quotation loop1: cpi jr z,do end1: push hl push bc ld h,b ld l,c ld bc,0 or a sbc hl,bc pop bc pop hl jr nz,loop1 ld a,(count) dec a ld (count),a jp nz,loop2 ret do: dec hl ld (hl),$22 inc hl jr end1 strName: .db 1,"A" progname: .db 4,"temp" count: .db 2 UNPACKHL:ld a,10 push bc LD C,A SUB A LD B,$10 Label1: ADD HL,HL RLA CP C JR C,Label0 SUB C INC L Label0: DJNZ Label1 pop bc RET ;A = remainder, HL = quotient D_HL_DECI: push bc ld de,up_data+4 ld b,5 ldhld: call UNPACKHL add a,48 ld (de),a dec de djnz ldhld ld hl,up_data ld b,4 lis: ld a,(hl) cp 48 jr nz,dis ld (hl),32 inc hl djnz lis dis: ld hl,up_data call _puts pop bc ret up_data: .db "PAD97",0 data: .dw 0 .end