Product specifications
‘address held in DE HL number of
;times:
RET ;Return to calling routine
;
BOTTOM LD DE,£EA1 ;Set the VDP write to VRAM
CALL VSETOT ;pointer to the start of the bottom
;line of the graphics display screen
LD C,8 ;Load the border character into
the output register
LD HL,32 ;Loop counter = 32 (Decimal)
CALL OUTBLK ;This routine will output the byte
;held in C to VRAM from the start
;address held in DE HL number of
;times
RET ;Return to calling routine
;
SIDES: LD DE,£C20 ;Load DE with the start address of
;the second line of the display screen
LD B,22 ;Loop counter = 22 (Decimal)
SIDES1: PUSH BC ;Save old BC register pair
CALL VSETOT ;Set the VDP write to VRAM pointer
;to the start address contained within
;DE
LD C,8 ;Load C with the border character
CALL VDOUTP ;Output border character to display
;screen (Left hand side)
LD HL,31 ;Increment DE by 31 ie move the
ADD HL,DE ;VDP write to VRAM pointer
EX DE,HL ;to the right hand side of the screen
CALL VSETOT ;Rest the VDP write to VRAM pointer
;to the start address contained within
;DE
CALL VDOUTP ;Output the border character still
;retained in C to the display screen
;(Right hand side)
INC DE ;Increment the VDP write to VRAM
;reference pointer by one to move
;along character position and down
;one line back to the left hand side
;of the screen
POP BC ;Get old BC register pair
DJNZ SIDES1 ;Decrement loop counter and if loop
;counter < > 0 then goto SIDES1
;else drop through to SIDES2.
SIDES2: RET ; Return to calling routine
;
OUTBLK: CALL VDOUTP ;Output data byte held in C to
;VRAM to address pointed to by the
;VDP write only pointer
DEC HL ;Decrement loop counter held in HL
LD A,H ;if loop counter < > 0 then goto