org #8100
colors
db #54;0-black
db #55;1-blue
db #4C;2-red
db #4D;3-sirenew
db #52;4-green
db #53;5-ultramarine
db #4A;6-yellow
db #4B;7-white
;write direct
;run start
start:
di
;------------gensin------------------------
ld bc,#8000
ld h,c;ld hl,0
ld l,h
;ld de,0
ld e,l
ld d,h
sinlp1: add hl,de
ld a,h
ld (bc),a
ld a,e
add a,12+2+1
ld e,a
jr nc,noincd
inc d
noincd:
inc c
ld a,c
cp #41
jr nz,sinlp1
;--------------------1st
ld e,#40
ld d,b
sinlp2:
ld a,(de)
ld l,a
ld a,#79*2
sub l
ld (bc),a
inc c
dec e
jr nz,sinlp2
; ld c,a;bc=$8081,de=$8000
ld e,d;$8080
sinlp3:
ld a,(de)
; neg
ld (bc),a
dec e
inc c
jr nz,sinlp3
;------------------------------------------
loop:
; set 0,(hl);$CB $C6
; set 1,(hl);$CB $CE
; set 2,(hl);$CB $D6
ld b,#f5
l7003
in a,(c)
rra
jr nc,l7003
bp:ld hl,#8050
inc l
ld (bp+1),hl
ld l,(hl)
ld a,#C6
call fill
rp:ld hl,#8020
inc l
inc l
ld (rp+1),hl
ld l,(hl)
ld a,#CE
call fill
gp:ld hl,#8010
dec l
dec l
ld (gp+1),hl
ld l,(hl)
ld a,#D6
call fill
ld h,d
ld e,l
ld bc,120+127
ldir
rasterbuf equ #1000
ld bc,310
ld hl,rasterbuf
ld d,colors/256
raster_out
push bc;4
ld bc,#7f10;3
ld e,(hl);2
ld a,(de);2
out (c),c;4
out (c),a;4
ld bc,#7f00;3
ld (hl),c;2
out (c),c;4
out (c),a;4
;in a,(c)
;in a,(c)
inc hl;2
pop bc;3
dec bc;;2
ld a,b;1
or c;1
jr nz,raster_out;;3
;4+3+2+2+4+4+3+2+4+4+2+3+2+3+1+1=44
jp loop
fill:
ld h,#10
ld (opcode+1),a
ld b,16*4
opcode: set 0,(hl)
inc hl
djnz opcode
ret