mirror of
https://github.com/KarolS/millfork.git
synced 2024-12-23 08:29:35 +00:00
69 lines
1.2 KiB
Plaintext
69 lines
1.2 KiB
Plaintext
const word dlAddr = $3000
|
|
const word lms1Addr = $4000
|
|
const word lms2Addr = $4060
|
|
const word lms3Addr = $40c0
|
|
|
|
array(byte) dl @ dlAddr = [
|
|
$70,$70,$70,
|
|
$52, @word[lms1Addr],
|
|
$52, @word[lms2Addr],
|
|
$52, @word[lms3Addr],
|
|
$41,lo(dlAddr),hi(dlAddr)
|
|
]
|
|
|
|
noinline asm void wait(byte register(a) f) {
|
|
clc
|
|
adc os_RTCLOK.b2
|
|
.rt_check:
|
|
cmp os_RTCLOK.b2
|
|
bne .rt_check
|
|
rts
|
|
}
|
|
|
|
void main() {
|
|
word lms1 @ dlAddr + 4
|
|
word lms2 @ dlAddr + 7
|
|
word lms3 @ dlAddr + 10
|
|
byte hscroli @ $80, a, b, c
|
|
pointer screeni @ $82
|
|
|
|
hscroli = $f
|
|
screeni = lms1Addr
|
|
|
|
wait(1)
|
|
os_SDLST = dl.addr
|
|
|
|
while true {
|
|
if hscroli == $b {
|
|
a = (pokey_random & 15) + 33
|
|
b = (pokey_random & 15) + 33
|
|
c = (pokey_random & 15) + 33
|
|
|
|
screeni[0] = a
|
|
screeni[$60] = b
|
|
screeni[$c0] = c
|
|
|
|
screeni[$30] = a
|
|
screeni[$30 + $60] = b
|
|
screeni[$30 + $c0] = c
|
|
|
|
lms1 += 1
|
|
lms2 += 1
|
|
lms3 += 1
|
|
screeni += 1
|
|
|
|
if lms1 == lms1Addr + $30 {
|
|
lms1 = lms1Addr
|
|
lms2 = lms2Addr
|
|
lms3 = lms3Addr
|
|
screeni = lms1Addr
|
|
}
|
|
|
|
hscroli = $f
|
|
}
|
|
antic_hscrol = hscroli
|
|
hscroli -= 1
|
|
wait(1)
|
|
}
|
|
}
|