|
- v_init:
- call 3435 ; ZXS_CLS
- ld a, 2
- call 5633 ; ZXS_STRM, current stream = 1, main screen
- ret
-
- ; the ZX Spectrum BASIC firmware puts the character in A into the current output stream by RST 16
-
- v_putc:
- ; save all
- push hl
- push bc
- push de
- push af
- push ix
- push iy
- ld iy, IYBAS ; restore IY for BASIC
- ; main
- push af ; char
- push bc ; curflag
- push de ; coords
- ld a, 22 ; AT_CTRL, screen position, 22x32
- rst 16
- pop de
- ld a, d
- push de
- rst 16
- pop de
- ld a, e
- rst 16
- pop bc
- xor a
- cp c
- jp z, .char
- ld a, 18 ; FLASH_CTRL
- rst 16
- xor a
- inc a ; on
- rst 16
- pop af
- rst 16
- ld a, 18 ; FLASH_CTRL
- rst 16
- xor a ; off
- rst 16
- jp .rest
- .char:
- pop af
- rst 16
- ; restore and return
- .rest:
- pop iy
- pop ix
- pop af
- pop de
- pop bc
- pop hl
- ret
|