Checkorboard by Orb [web]
*****************************************************************************
* Checkorboard
*
* a small 128 byte checkerboard zoomer (including file header)
* for amiga ocs...
*
* ultra^orb 20110530
*
*****************************************************************************
release equ 1
plane equ $0e
section shortig, code_c
*****************************************************************************
mainloop:
clr d0
moveq #$40,d7
add d7,d1
clr.l d5
drawloop:
lea copper(pc),a0
lea $dff000+$180,a6
move.l a0,$80-$180(a6)
sync
cmp.b $06-$180(a6),d7
bne.s sync
;write color
move.l d5,(a6)
moveq #plane,d5
;bitplane adr is used to preform an and
;on the zoom
bclr d5,d1
;set bitplane
move.l d5,$e0-$180(a6)
;calc screen ptr
move d7,d2
lsr #3,d2
addq #plane-($40/8),d2
move d2,a4
;set pixels
not d7
bclr d7,(a4)
add.w d1,d0
bmi.s hh
;swap for y check
;bitplane adr is used for the colors
swap d5
bset d7,(a4)
hh
not d7
addq.b #1,d7
bcc.s drawloop
;set colors to 0
;saves window stop in the copperlist
;also avoid some annoying flashing
clr.l (a6)
if release
bra.s mainloop
else
btst #6,$bfe001
bne.s mainloop
illegal
endc
*****************************************************************************
copper
dc.w $009a,$7fff ; irqs off
dc.w $0096,$0020 ; sprites off
dc.w $008e,$4071 ; window start
dc.w $0092,$0058 ; fetch start
dc.w $0094,$00b0 ; fetch stop
dc.w $0100,$1200
*****************************************************************************
end
[ back to the prod ]
