opt %00101
SELECT equ %101
START equ %110
in equ %00000000
out equ %11111111
stary equ $f0
regul equ $f2
paddle equ 624
dlptr equ $230
kbcode equ $d01f
porta equ $d300
pactl equ $d302
org $8800
prog equ *
* ustawienie portu
* joysticka na wyjscie
ldy #out
jsr kier
* ustawienie ekranu
lda dlptr
sta stary
lda <dl
sta dlptr
lda dlptr+1
sta stary+1
lda >dl
sta dlptr+1
* odczyt paddla
pocz ldx #0
ptl1 lda paddle
cmp tabl,x porownaj
beq znal
inx nastepny
cpx <ile wszystkie?
bne ptl1 nastepny
beq pocz jeszcze raz
* znaleziono w tablicy
znal txa
asl @ *2
asl @ *4
tax
* wyswietlenie wartosci
ldy #0
ptl2 lda temp,x
sta ptr1,y
inx
iny
cpy #4
bne ptl2
* regulacja temperatury
ldx #1 wlacz
lda regul
cmp paddle
bcc stan temp.<
ldx #0 wylacz
stan stx porta
* ustawianie temperatury
klaw ldy kbcode
cpy #SELECT
bne klw1
sta regul
* wyswietlenie ustawionej
ldx #0
ptl3 lda ekr1,x
sta ekr2,x
inx
cpx #4
bne ptl3
* koniec?
klw1 cpy #START
bne pocz
* koniec
ldy #in
jsr kier
lda stary
sta dlptr
lda stary+1
sta dlptr+1
jmp (10)
* ustawienie kierunku
kier lda pactl
and #%11111011
sta pactl
sty porta
ora #%00000100
sta pactl
rts
* program ANTIC-u
dl dta b($70),b($70),b($70)
dta b($47),a(ekr1)
dta b($70),b($06)
dta b($70),b($70),b($70)
dta b($47),a(ekr2),b($70)
dta b($46),a(ekr3),b($70)
dta b($70),b($70)
dta b($42),a(ekr4)
dta d'""""',b($70),b($70)
dta b($70),b($06),b($70)
dta b($42),a(ekr5)
dta b($41),a(dl)
* obszar ekranu
ekr1 dta d' termometr '
dta d' ELEKTRONICZNY '
ekr2 dta d' '
ekr3 dta d' stopni celsjusza '
ekr4 dta d' Program sluzy do pomiaru i regulacji '
dta d' temperatury w zakresie od 13 do 43 '
dta d' stopni Celsjusza. W czasie pomiaru '
dta d' wcisniecie klawisza +SELECT+ powoduje '
dta d' ustalenie regulowanej temperatury '
dta d' * MR.soft 1991 * '
ekr5 dta d' Ustalona temperatura-brak '
ptr1 equ ekr2+8
ptr2 equ ekr5+28
* tablica wartosci paddla
tabl dta b(09),b(10),b(11),b(12),b(13),b(14),b(15)
dta b(16),b(17),b(18),b(19),b(20),b(21),b(22)
dta b(23),b(24),b(25),b(26),b(27),b(28),b(29)
dta b(30),b(228)
ile equ *-tabl
* tablica do wyswietlania temperatury
temp dta d'43.039.537.535.533.531.529.528.026.525.0'
dta d'24.023.021.020.019.018.017.016.015.014.5'
dta d'13.513.0brak'
* adres uruchomienia
org $2e0
dta a(prog)
end
|