; BK monitor specific macros,...
; Generate a piece of text to display at the specified point of the BK screen
; .bktext
,
; "text string2" can involve with usual chars some special symbols
; '\n ' - means newline
; '\_ ' - means switching underline mode
; '\~ ' - means switching inverse video mode
; '\^ ' - means clearing up to the end of screen
; '\r ' - means switch on red color
; '\g ' - means switch on green color
; '\b ' - means switch on blue color
.nlist
.macro .bktext loc,string
.iif nb .byte 5,loc ; Specify the string location
..spec=0
.irpc X,
.if nz ..spec
; Handle special chars
.if idn
.byte 12 ; Newline char
.iff
.if idn <_>
.byte 237 ; Underline mode
.iff
.if idn <~>
.byte 234 ; Inverse video mode
.iff
.if idn <^>
.byte 4 ; Clear to end-of-screen
.iff
.if idn
.byte 221 ; Red color
.iff
.if idn
.byte 222 ; Green color
.iff
.if idn
.byte 223 ; Blue color
.endc
.endc
.endc
.endc
.endc
.endc
.endc
..spec=0
.iff ; Else X is an usual char
.if idn <\>
..spec=1 ; Switch to the special char
.iff
.byte ''X
.endc
.endc
.endr
.endm
.list
MessTablePtr = 402 ; Message table ptr
; Write a message with the specified no.
; .mess no
; 'no' being a number or 'r0'
.nlist
.macro .mess numb ; Write a message
trap 14
.ntype ..ntype, numb
.if eq ..ntype-0 ; r0 was specified
.word 0
.iff
.word numb
.endc
.endm
.list