mirror of https://github.com/zxdos/zxuno.git
268 lines
5.4 KiB
NASM
268 lines
5.4 KiB
NASM
|
|
output scroll.bin
|
|
org $5d27
|
|
ld hl, fondo
|
|
ld b, $40 ; filtro RCS inverso
|
|
start ld a, b
|
|
xor c
|
|
and $f8
|
|
xor c
|
|
ld d, a
|
|
xor b
|
|
xor c
|
|
rlca
|
|
rlca
|
|
ld e, a
|
|
inc bc
|
|
ldi
|
|
inc bc
|
|
ld a, b
|
|
sub $58
|
|
jr nz, start
|
|
ld b, 3
|
|
ldir
|
|
out ($fe), a
|
|
inc a
|
|
ex af, af'
|
|
ld hl, chr
|
|
push hl
|
|
pop ix
|
|
ld de, $b400-fondo+chr
|
|
ld bc, fondo-chr
|
|
ldir
|
|
ld hl, $b000
|
|
start1 ld b, $08
|
|
start2 ld a, (hl)
|
|
rrca
|
|
ld (de), a
|
|
inc de
|
|
cpi
|
|
jp pe, start2
|
|
jr nc, start1
|
|
|
|
start3 ei
|
|
halt
|
|
di
|
|
ld c, 4
|
|
start4 djnz start4
|
|
dec c
|
|
jr nz, start4
|
|
include lineas.asm
|
|
ld sp, $401b+$800*2+$100*7+$20*7
|
|
sbc hl, hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
push hl
|
|
ld sp, hl
|
|
ld hl, start3
|
|
push hl
|
|
ex af, af'
|
|
rrca
|
|
jr c, start5
|
|
ex af, af'
|
|
ret
|
|
start5 ex af, af'
|
|
xor a
|
|
cp (ix)
|
|
jr nz, start6
|
|
ld ix, string
|
|
start6 push ix
|
|
pop hl
|
|
ld c, $2b
|
|
cpir
|
|
ld b, c
|
|
ld c, $17
|
|
|
|
push bc
|
|
srl b
|
|
ld a, b
|
|
jr c, prn2
|
|
and %11111100
|
|
ld d, a
|
|
xor b
|
|
ld b, a
|
|
ld e, a
|
|
jr z, prn1
|
|
dec e
|
|
prn1 ld a, d
|
|
rrca
|
|
ld d, a
|
|
rrca
|
|
add a, d
|
|
add a, e
|
|
ld e, a
|
|
ld a, c
|
|
and %00011000
|
|
or %01000000
|
|
ld d, a
|
|
ld a, c
|
|
and %00000111
|
|
rrca
|
|
rrca
|
|
rrca
|
|
add a, e
|
|
ld e, a
|
|
inc c
|
|
rr b
|
|
jr c, pos26
|
|
jr nz, pos4
|
|
pos0 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $2c
|
|
call simple
|
|
pos2 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $32
|
|
ld bc, $04fc
|
|
call doble
|
|
pos4 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $30
|
|
ld bc, $04f0
|
|
call doble
|
|
pos6 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $2e
|
|
call simple
|
|
inc de
|
|
jr pos0
|
|
pos26 rr b
|
|
jr c, pos6
|
|
jr pos2
|
|
|
|
posf pop bc
|
|
inc c
|
|
ret
|
|
|
|
prn2 and %11111100
|
|
ld d, a
|
|
xor b
|
|
ld b, a
|
|
cp 2
|
|
adc a, -1
|
|
ld e, a
|
|
ld a, d
|
|
rrca
|
|
ld d, a
|
|
rrca
|
|
add a, d
|
|
add a, e
|
|
ld e, a
|
|
ld a, c
|
|
and %00011000
|
|
or %01000000
|
|
ld d, a
|
|
ld a, c
|
|
and %00000111
|
|
rrca
|
|
rrca
|
|
rrca
|
|
add a, e
|
|
ld e, a
|
|
inc c
|
|
rr b
|
|
jr c, pos37
|
|
jr nz, pos5
|
|
pos1 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $2f
|
|
ld bc, $04e0
|
|
call doble
|
|
pos3 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $2d
|
|
call simple
|
|
pos5 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $33
|
|
ld bc, $04fe
|
|
call doble
|
|
pos7 ld a, (ix)
|
|
inc ix
|
|
add a, a
|
|
jr z, posf
|
|
ld h, $31
|
|
ld bc, $04f8
|
|
call doble
|
|
jr pos1
|
|
pos37 rr b
|
|
jr c, pos7
|
|
jr pos3
|
|
|
|
simple ld b, 4
|
|
ld l, a
|
|
add hl, hl
|
|
add hl, hl
|
|
simple2 ld a, (de)
|
|
xor (hl)
|
|
ld (de), a
|
|
inc d
|
|
inc l
|
|
ld a, (de)
|
|
xor (hl)
|
|
ld (de), a
|
|
inc d
|
|
inc l
|
|
djnz simple2
|
|
ld hl, $f800
|
|
add hl, de
|
|
ex de, hl
|
|
ret
|
|
|
|
doble ld l, a
|
|
add hl, hl
|
|
add hl, hl
|
|
doble2 ld a, (de)
|
|
xor (hl)
|
|
and c
|
|
xor (hl)
|
|
ld (de), a
|
|
inc e
|
|
ld a, (hl)
|
|
and c
|
|
ld (de), a
|
|
inc d
|
|
inc l
|
|
ld a, (hl)
|
|
and c
|
|
ld (de), a
|
|
dec e
|
|
ld a, (de)
|
|
xor (hl)
|
|
and c
|
|
xor (hl)
|
|
ld (de), a
|
|
inc d
|
|
inc l
|
|
djnz doble2
|
|
ld hl, $f801
|
|
add hl, de
|
|
ex de, hl
|
|
ret
|
|
|
|
string include string.asm
|
|
chr incbin fuente6x8.bin
|
|
fondo incbin fondo.rcs
|
|
fin |