mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-02-22 14:29:00 +00:00
hgr: pattern
This commit is contained in:
parent
42402e19c5
commit
be5d4e0663
@ -13,7 +13,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \
|
||||
RLEASM.BAS HORIZON.BAS FLYER.BAS STAR.BAS HYPER.BAS FASTAR.BAS \
|
||||
FASTAR2.BAS BIN.BAS FALLING.BAS SNOW.BAS XMAS.BAS AN3.BAS PLASMA.BAS \
|
||||
C64.BAS SIERPINSKI.BAS FAKES.BAS SIER.BAS DROPS.BAS RR.BAS RR_HGR.BAS \
|
||||
COMBO.BAS WIRES.BAS
|
||||
COMBO.BAS WIRES.BAS PATTERN.BAS
|
||||
cp empty.dsk appleiibot.dsk
|
||||
$(DOS33) -y appleiibot.dsk BSAVE -a 0x0300 LOAD
|
||||
$(DOS33) -y appleiibot.dsk SAVE A HELLO
|
||||
@ -66,6 +66,7 @@ appleiibot.dsk: E2.BAS FLAME.BAS FLAME2.BAS HELLO \
|
||||
$(DOS33) -y appleiibot.dsk SAVE A RR_HGR.BAS
|
||||
$(DOS33) -y appleiibot.dsk SAVE A COMBO.BAS
|
||||
$(DOS33) -y appleiibot.dsk SAVE A WIRES.BAS
|
||||
$(DOS33) -y appleiibot.dsk SAVE A PATTERN.BAS
|
||||
|
||||
|
||||
####
|
||||
@ -386,6 +387,11 @@ COMBO.BAS: combo.bas
|
||||
WIRES.BAS: wires.bas
|
||||
$(TOKENIZE) < wires.bas > WIRES.BAS
|
||||
|
||||
####
|
||||
|
||||
PATTERN.BAS: pattern.bas
|
||||
$(TOKENIZE) < pattern.bas > PATTERN.BAS
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
2
basic/appleiibot/pattern.bas
Normal file
2
basic/appleiibot/pattern.bas
Normal file
@ -0,0 +1,2 @@
|
||||
1FORI=0TO50:POKE1013+I,4*PEEK(2125+I)-192+(PEEK(2176+I/3)-35)/4^(I-INT(I/3)*3):NEXT
|
||||
2&"*el,clT;QbNoP.YbVo74mV8BFR9YZ9;NT/gobnYf`_P0Z#NoB01[S<YCY'<JG@MAJ3W'
|
BIN
graphics/hgr/sprite/empty.dsk
Normal file
BIN
graphics/hgr/sprite/empty.dsk
Normal file
Binary file not shown.
2
graphics/hgr/sprite/hello.bas
Normal file
2
graphics/hgr/sprite/hello.bas
Normal file
@ -0,0 +1,2 @@
|
||||
5 HOME
|
||||
10 PRINT CHR$(4);"CATALOG"
|
57
graphics/hgr/sprite/pattern.s
Normal file
57
graphics/hgr/sprite/pattern.s
Normal file
@ -0,0 +1,57 @@
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
HGRPAGE = $E6
|
||||
|
||||
XX = $FE
|
||||
YY = $FF
|
||||
|
||||
PAGE0 = $C054
|
||||
PAGE1 = $C055
|
||||
|
||||
HGR = $F3E2
|
||||
HGR2 = $F3D8
|
||||
HCLR = $F3F2
|
||||
HPOSN = $F411 ;; (Y,X) = X, A = Y
|
||||
;; line addr in GBASL/GBASH
|
||||
;; with offset in HGR.HORIZ, Y
|
||||
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
|
||||
|
||||
sprite:
|
||||
jsr HGR ; clear page0
|
||||
jsr HGR2 ; clear page1
|
||||
; HGR page now $40
|
||||
|
||||
lda #50
|
||||
sta XX
|
||||
sta YY
|
||||
|
||||
move_sprite:
|
||||
|
||||
draw_sprite:
|
||||
|
||||
ldy #0
|
||||
ldx XX
|
||||
lda YY
|
||||
|
||||
jsr HPOSN
|
||||
|
||||
; ldy #0
|
||||
lda (GBASL),Y
|
||||
eor #$7f
|
||||
sta (GBASL),Y
|
||||
iny
|
||||
lda (GBASL),Y
|
||||
eor #$7f
|
||||
sta (GBASL),Y
|
||||
|
||||
inc XX
|
||||
inc YY
|
||||
lda YY
|
||||
cmp #190
|
||||
bcc no_oflo
|
||||
lda #0
|
||||
sta YY
|
||||
no_oflo:
|
||||
|
||||
|
||||
jmp move_sprite
|
139
graphics/hgr/sprite/sprite.s
Normal file
139
graphics/hgr/sprite/sprite.s
Normal file
@ -0,0 +1,139 @@
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
HGRPAGE = $E6
|
||||
|
||||
SPRITE_OFFSET = $F9
|
||||
XDIR = $FA
|
||||
YDIR = $FB
|
||||
YC = $FC
|
||||
MY = $FD
|
||||
XX = $FE
|
||||
YY = $FF
|
||||
|
||||
PAGE0 = $C054
|
||||
PAGE1 = $C055
|
||||
|
||||
HGR = $F3E2
|
||||
HGR2 = $F3D8
|
||||
HCLR = $F3F2
|
||||
HPOSN = $F411 ;; (Y,X) = X, A = Y
|
||||
;; line addr in GBASL/GBASH
|
||||
;; with offset in HGR.HORIZ, Y
|
||||
WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
|
||||
|
||||
sprite:
|
||||
jsr HGR ; clear page0
|
||||
jsr HGR2 ; clear page1
|
||||
; HGR page now $40
|
||||
|
||||
lda #50
|
||||
sta XX
|
||||
sta MY
|
||||
|
||||
lda #$FF
|
||||
sta YDIR
|
||||
sta XDIR
|
||||
|
||||
move_sprite:
|
||||
|
||||
jsr draw_sprite
|
||||
|
||||
lda #100
|
||||
jsr WAIT
|
||||
|
||||
jsr draw_sprite
|
||||
|
||||
|
||||
lda XX
|
||||
clc
|
||||
adc XDIR
|
||||
sta XX
|
||||
beq switch_xdir
|
||||
cmp #240
|
||||
bcc noswitch_xdir
|
||||
|
||||
switch_xdir:
|
||||
lda XDIR
|
||||
eor #$FF
|
||||
sta XDIR
|
||||
inc XDIR ; two's complement
|
||||
noswitch_xdir:
|
||||
|
||||
|
||||
|
||||
lda MY
|
||||
clc
|
||||
adc YDIR
|
||||
sta MY
|
||||
beq switch_ydir
|
||||
cmp #177
|
||||
bne noswitch_ydir
|
||||
|
||||
switch_ydir:
|
||||
lda YDIR
|
||||
eor #$FF
|
||||
sta YDIR
|
||||
inc YDIR ; two's complement
|
||||
noswitch_ydir:
|
||||
|
||||
|
||||
jmp move_sprite
|
||||
|
||||
|
||||
|
||||
draw_sprite:
|
||||
|
||||
lda MY
|
||||
sta YY
|
||||
|
||||
lda #14
|
||||
sta YC
|
||||
|
||||
lda #0
|
||||
sta SPRITE_OFFSET
|
||||
|
||||
sprite_loop:
|
||||
|
||||
ldy #0
|
||||
ldx XX
|
||||
lda YY
|
||||
|
||||
jsr HPOSN ;; (Y,X) = X, A = Y
|
||||
|
||||
jsr plot_line
|
||||
jsr plot_line
|
||||
|
||||
inc YY
|
||||
|
||||
dec YC
|
||||
bne sprite_loop
|
||||
|
||||
rts
|
||||
|
||||
plot_line:
|
||||
ldx SPRITE_OFFSET
|
||||
lda (GBASL),Y
|
||||
eor ball,X
|
||||
inc SPRITE_OFFSET
|
||||
sta (GBASL),Y
|
||||
iny
|
||||
rts
|
||||
|
||||
|
||||
|
||||
ball:
|
||||
.byte $7f,$7a
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
.byte $7f,$7f
|
||||
|
Loading…
x
Reference in New Issue
Block a user