Six way to fill a screen !
Header:
Code: Select all
#define ORG .org ; TASM cross-assembler definitions
#define equ .equ
;-----------------------------------
;------- Rom and Ram Symbols -------
RAM_D_FILE equ $400C ; D_file address.
EXTERR equ $005B ; Basic Break function ! Ignore line instructions.
CURSEUR equ $8F5 ; Point to PRINT AT DEST.(BC=X,Y)
CHAINE equ $B6B ; PRINT A CHAINE (BC=LEN;DE=TEXT LOC)
ORG 16514
Code: Select all
;--------- Routine 1 ----------
LD BC,0000
CALL CURSEUR
LD BC,22*32
LOOP1:
LD A,157 ; '1'
RST 10H
DEC BC
LD A,B
OR C
JR NZ,LOOP1
RET
Code: Select all
;--------- Routine 2 ----------
LD HL,(RAM_D_FILE)
LD B,158 ; '2'
LD DE,32*24+23
LOOP2:
LD A,$76
INC HL
CP (HL)
DEC DE
JR Z,LOOP2
LD (HL),B
LD A,D
OR E
RET Z
JR LOOP2
Code: Select all
;--------- Routine 3 ----------
LD HL,(RAM_D_FILE)
LOOP3:
INC HL
LD D,H
LD E,L
INC DE
LD A,159 ; '3'
LD (HL),A
LD BC,31
LDIR
LD A,$80
EX DE,HL
INC HL
CP (HL)
EX DE,HL
RET Z
INC HL
JR LOOP3
Code: Select all
;--------- Routine 4 ----------
LD HL,(RAM_D_FILE)
INC HL
LD D,H
LD E,L
INC DE
LD A,160 ; '4'
LD (HL),A
LD BC,31
LDIR
LD BC,$0100
CALL CURSEUR
LD L,21
LOOP4:
LD DE,(RAM_D_FILE)
INC DE
LD BC,32
CALL CHAINE
DEC L
RET Z
RET Z
JR LOOP4
Code: Select all
;--------- Routine 5 ----------
Lb40A4:
LD BC,0000
CALL CURSEUR
LD HL,$03BF
Lb40A7:
LD A,161 ; '5'
RST 10H ; Display= A reg.
LD A,$00
DEC HL
CP H
JR NZ, Lb40A7 ; [$40A7:16551]
RET ; ==========================
Code: Select all
;--------- Routine 6 ----------
LD BC,0000
CALL CURSEUR
LD BC,$BF02 ; $FF+$FF+$BF
LOOP5:
LD A,161 ; '6'
RST 10H ; Display= A reg.
LD A,$00
DJNZ LOOP5 ; if B<>0
LD B,$FF
DEC C
JR NZ, LOOP5
RET ; ==========================
footer:
Never overwrite the $76/118 "new-line" code…