spo/ass1/vaje/zaslon/screen.asm
2025-11-15 13:46:22 +01:00

105 lines
1.8 KiB
NASM

SCREEN START 0
LDA #65
JSUB scrfill
JSUB scrclear
LDA #77
JSUB scrfill
JSUB scrclear
LDA #88
JSUB scrfill
JSUB scrclear
LDA #99
STA znak
LDA #25
STA row
LDA #30
STA col
JSUB printch
LDA #30
STA row
JSUB printch
HALT J HALT
END SCREEN
scrfill STA znak
loop_fill LDA y
MUL scrcols
ADD screen
ADD x
STA pix_ptr
LDA znak
STCH @pix_ptr
LDA x
ADD #1
STA x
COMP scrcols
JLT loop_fill
CLEAR A
STA x
LDA y
ADD #1
STA y
COMP scrrows
JLT loop_fill
CLEAR A
STA x
STA y
LDA znak
RSUB
.address = screen + y * scrcols + x
scrclear STA old_val
loop_clear LDA y
MUL scrcols
ADD screen
ADD x
STA pix_ptr
CLEAR A
STCH @pix_ptr
LDA x
ADD #1
STA x
COMP scrcols
JLT loop_clear
CLEAR A
STA x
LDA y
ADD #1
STA y
COMP scrrows
JLT loop_clear
CLEAR A
STA x
STA y
LDA old_val
RSUB
printch STA old_val
LDA row
MUL scrcols
ADD screen
ADD col
STA pix_ptr
LDA znak
STCH @pix_ptr
CLEAR A
LDA old_val
RSUB
row WORD 0
col WORD 0
old_val WORD 0
znak WORD 0
x WORD 0
y WORD 0
pix_ptr WORD 0
screen WORD X'00B800'
scrcols WORD 25
scrrows WORD 80
scrlen WORD 2000