and #0x18
or #0x40 ; Standard screen
ld d,a
- ret
+ VIDEO_MAP
+ ret
videoattr:
; 32 x E + D into HL
plot_char_loop:
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
ld (de), a
- inc l ; next byte of char data
+ inc hl ; next byte of char data
inc d ; next screen line
ld a, (hl)
call videoattr
ld a,(_curattr)
ld (hl),a
+ VIDEO_UNMAP
ret
last_ul:
ld (hl),a
inc hl
djnz setattr
+ VIDEO_UNMAP
ret
copy_line:
inc h
dec c
jr nz, copy_line_nextchar
+ VIDEO_UNMAP
ret
; TODO: the LDIR way should be much faster
dec c
jr nz, loop_scroll_down
+ VIDEO_MAP
; Attributes
ld hl,#0x5ADF
ld de,#0x5AFF
ld bc,#0x02E0
lddr
+ VIDEO_UNMAP
ret
dec c
jr nz, loop_scroll_up
+ VIDEO_MAP
ld hl,#0x5820
ld de,#0x5800
ld bc,#0x02E0
ldir
+ VIDEO_UNMAP
ret
.if ZXVID_ONLY
ld d, a
ld a, #0xFF
ld (de), a
+ VIDEO_UNMAP
ret
.if ZXVID_ONLY
_cursor_disable:
ld d, a
xor a
ld (de), a
+ VIDEO_UNMAP
.if ZXVID_ONLY
_do_beep:
cursorpos:
.dw 0
+
+ .area _COMMONMEM
+_curattr:
+ .db 7