Test 5
* okreslenie, w ktorym cyklu w linii
* sygnalizowane jest wystapienie
* przerwania dli
opt 21
org $9000
cykl equ $f0
one equ $f1
two equ $f2
pom equ $f4
x equ $f5
lda $230 zapamietaj dlv
pha
lda $231
pha
lda <dlist
sta $230
lda >dlist
sta $231
lda <dli
sta $200
lda >dli
sta $201
jsr odswiez
klawisz lda $2fc
cmp #$ff
beq klawisz
pha
lda #$ff
sta $2fc
pla
cmp #$28 R
bne koniec
jsr odswiez
test lda #$c0
sta $d40e nmien
ldx #$10
petla cpx $d40b vcount
bne petla
sta $d40a wsync
sta $d40a
sterta org *+59
start lda $d40f nmist
cmp #$9f
beq nmi
inc cykl
jsr offset
jmp petla
nmi lda #$40
sta $d40e nmien
ldy #2
lda cykl
jsr display
jmp klawisz
koniec pla odtworz dlv
sta $231
pla
sta $230
rts
odswiez ldx #0
stx cykl
jsr offset
ldy #39
lda #0
kasuj sta wynik,y
dey
bpl kasuj
rts
offset stx x
ldy #0
lda cykl
clc
adc #5
lsr @
tax
bcc bez_cmp
lda #$c5 cmp 0
sta sterta,y
iny
lda #0
sta sterta,y
iny
dex
beq bez_nop
bez_cmp lda #$ea nop
l1 sta sterta,y
iny
dex
bne l1
bez_nop lda skok,x jmp start
sta sterta,y
iny
inx
cpx <ile
bcc bez_nop
ldx x
rts
skok jmp start
ile equ *-skok
display sta one
lda #8
sta pom
lda #0
sta two
sta two+1
sed
cnv asl one
adc two
sta two
rol two+1
dec pom
bne cnv
cld
pha
lda two+1
jsr disp1
pla
jmp disp2
disp2 pha
lsr @
lsr @
lsr @
lsr @
jsr disp1
pla
disp1 and #$F
ora #'0'-32
cmp #'9'-32+1
bcc dalej
adc #6
dalej sta wynik,y
iny
rts
dli rti
dlist dta b($70)
dta b($70)
dta b($70)
linia1 dta b($20+$80)
dta b($42),a(pusta)
dta b($42),a(wynik)
dta b($42),a(pusta)
dta b($70)
dta b($42),a(info1)
dta b($41),a(dlist)
info1 dta d' Start test: R'
pusta dta a(0),a(0),a(0),a(0),a(0)
dta a(0),a(0),a(0),a(0),a(0)
dta a(0),a(0),a(0),a(0),a(0)
dta a(0),a(0),a(0),a(0),a(0)
wynik org *+40
end