ack/mach/z80/libmon/char.nas.s
1987-02-02 12:44:39 +00:00

50 lines
646 B
ArmAsm

.define putchar,getchar
.sect .text
.sect .rom
.sect .data
.sect .bss
.sect .text
! output routine in monitor for the nascom
CRT = 0x013B
! output a charcter
! entry: ascii character in a
.sect .text
putchar:
push hl
push bc
ld hl,tab
ld b,5
1: cp (hl)
jr z,fetch
inc hl
inc hl
djnz 1b
2: call CRT
pop bc
pop hl
ret
fetch: inc hl
ld a,(hl)
jr 2b
! conversion table for nascom characters
tab: .data1 0x0D,0x00
.data1 0x1B,0x1E
.data1 0x08,0x1D
.data1 0x0A,0x1F
.data1 0x7F,0x00
KBD = 0x69
get character from keyboard
getchar:
call KBD
jr nc,getchar
cp 0x1F
jr z,CR
cp 0x1D
jr z,BS
ret
CR: ld a,0xA
ret
BS: ld a,0x8
ret