12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- .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
|