forked from MirrorRepos/RomWBW
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.3 KiB
69 lines
1.3 KiB
title WordStar 4.0 Video Attributes Driver
|
|
|
|
strngout equ 0283h
|
|
|
|
esc equ 1bh
|
|
dim equ 1
|
|
blink equ 2
|
|
invert equ 4
|
|
uline equ 8
|
|
|
|
aseg
|
|
org 03c1h
|
|
|
|
vidatt:
|
|
xor a
|
|
ld hl,funtbl
|
|
ld b,8
|
|
getloop:
|
|
rr c
|
|
jr nc,getnext
|
|
or a,(hl)
|
|
getnext:
|
|
inc hl
|
|
djnz getloop
|
|
;
|
|
ld hl,string+2 ; attribute #1 on/off indicator
|
|
push hl
|
|
ld b,4
|
|
ld de,'?!' ; ? = attribute off, ! = attribute on
|
|
setloop:
|
|
rra
|
|
jr nc,attroff
|
|
ld (hl),e ; attribute on
|
|
jr setnext
|
|
attroff:
|
|
ld (hl),d ; attribute off
|
|
setnext:
|
|
inc hl
|
|
inc hl
|
|
inc hl ; advance to next on/off indicator
|
|
djnz setloop
|
|
;
|
|
pop hl ; hl --> dim on/off
|
|
ld a,d ; attribute off
|
|
cp (hl) ; dim off?
|
|
jr nz,setdim
|
|
ld a,e ; attribute on
|
|
setdim:
|
|
ld (hl),a
|
|
ld hl,string
|
|
jp strngout ; ws string routine
|
|
;
|
|
;
|
|
funtbl:
|
|
defb dim ; strike out
|
|
defb invert or blink ; warnings & errors
|
|
defb invert ; block
|
|
defb uline ; underline
|
|
defb blink ; subscript
|
|
defb blink or uline ; superscript
|
|
defb invert ; menu, headline, bold, double
|
|
defb invert or uline ; italics, RET, backspace
|
|
;
|
|
string:
|
|
defb 12,esc,' 2',esc,' 3',esc,' 4',esc,' 5'
|
|
;
|
|
finis equ $
|
|
end
|
|
|