wip_tiny" more work

This commit is contained in:
Vince Weaver 2025-02-08 16:50:06 -05:00
parent 051e4a996f
commit a94876119f
6 changed files with 281 additions and 137 deletions

View File

@ -8,7 +8,8 @@ LINKER_SCRIPTS = ../../linker_scripts/
all: tiny_demos.dsk
tiny_demos.dsk: HELLO CHEVRON_17 CIRCUIT_17 TIGER_22 \
NOISY_TIGER_35 ANGLE_SONG_30 \
NOISY_TIGER_35 ANGLE_SONG_30 RAMP_34 \
MAD_COMPUTE_31 \
TEST
cp $(EMPTYDISK) tiny_demos.dsk
$(DOS33) -y tiny_demos.dsk SAVE A HELLO
@ -17,6 +18,8 @@ tiny_demos.dsk: HELLO CHEVRON_17 CIRCUIT_17 TIGER_22 \
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 TIGER_22
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 NOISY_TIGER_35
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 ANGLE_SONG_30
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 RAMP_34
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 MAD_COMPUTE_31
$(DOS33) -y tiny_demos.dsk BSAVE -a 0xE7 TEST
###
@ -64,6 +67,24 @@ ANGLE_SONG_30: angle_song_30.o
angle_song_30.o: angle_song_30.s
ca65 -o angle_song_30.o angle_song_30.s -l angle_song_30.lst
###
RAMP_34: ramp_34.o
ld65 -o RAMP_34 ramp_34.o -C $(LINKER_SCRIPTS)/apple2_e7_zp.inc
ramp_34.o: ramp_34.s
ca65 -o ramp_34.o ramp_34.s -l ramp_34.lst
###
MAD_COMPUTE_31: mad_compute_31.o
ld65 -o MAD_COMPUTE_31 mad_compute_31.o -C $(LINKER_SCRIPTS)/apple2_e7_zp.inc
mad_compute_31.o: mad_compute_31.s
ca65 -o mad_compute_31.o mad_compute_31.s -l mad_compute_31.lst
###
@ -78,6 +99,7 @@ test.o: test.s
clean:
rm -f *~ *.o *.lst HELLO \
CHEVRON_17 CIRCUIT_17 TIGER_22 \
NOISY_TIGER_35 ANGLE_SONG_30 \
NOISY_TIGER_35 ANGLE_SONG_30 RAMP_34 \
MAD_COMPUTE_31 \
TEST *.zip

1
demos/tiny_wip/NOTES Normal file
View File

@ -0,0 +1 @@
mad_computer: there are a few untapped paramaters to make other noises

View File

@ -1,6 +1,4 @@
; 17B interesting XDRAW pattern
; This one looks vaguely like a chevron shape
; 30B Angle Song -- XDRAW pattern plus some "music"
; by Vince `deater` Weaver / dSr
@ -17,7 +15,7 @@ XDRAW0 = $F65D
XDRAW1 = $F661
HPLOT0 = $F457
chevron17:
angle_song:
; we load at zero page $E7 which is HGR_SCALE
; this means the scale is $20 (JSR)
@ -39,75 +37,29 @@ chevron17:
; after Y= orig X/7
; A and X are ??
; aa = (orange)tiger stripes
; 55 = purple
; 2a = green
; lda #$2a
; jsr $F3F4
tiny_loop:
; e2/e3
; 0.. 63?
; 0 = maze
; 1 = scaly
; 2 = ??
; 3 = tower plates
; 4 = bubbles
; 5 = strings
; 6 = circuit board *
; 7 = noodles
; 8 = pickup sticks
; 9 = meh
; 10 = interesting
; 11 = meh
; 12 = static
; 13 = weave
; 14 = core
; 15 = masts *
; 16 = maze again
; 17 = spots *
; 18 = bamboo *
; 19 = mesh
; 20 = coils
; 21 = sunspots
; 22 = gridy
; 23 = dominos
; 24 = chevron **
; 25 = borg
; 26 = grid
; 27 = plants
; 28 = spaces
; 29 = ridges
; 30 = net
; 31 = odd
; 32 = maze again
; e2/e5
; e3 looks best?
; a0 interesting, green train
; inc rot_smc+1 ; broken glass
; bit $C030
; generate some sound
; try flipping X/Y
; ldx $26
ldx $D4
; ldx $26
ldx $D4 ; HGR_E
outer_delay:
bit $C030
ldy $27
bit $C030 ; click speaker
ldy $27
; lda $27 ; for lower beeps?
; asl
; tay
inner_delay:
dey
bne inner_delay
dey
bne inner_delay
dex
bne outer_delay
dex
bne outer_delay

View File

@ -0,0 +1,81 @@
; 31B Mad Compute
; for Lovebyte 2025
; by Vince `deater` Weaver / dSr
; pattern $E2E3
; scale 5 rotate 0 = mad_compute
; rotate 2 = fish scales / apple panic
; rotate 10 = alert noise
; rotate 14 = feather
; zero page locations
GBASL = $26
GBASH = $27
HGR_SCALE = $E7
HGR_COLLISIONS = $EA
; ROM locations
HGR2 = $F3D8
HPOSN = $F411
XDRAW0 = $F65D
XDRAW1 = $F661
HPLOT0 = $F457
mad_compute:
; $05 is ORA IMM
.byte $5 ; scale in $E7
nop
jsr HGR2 ; Hi-res, full screen ; 3
; Y=0, A=0 after this call
; A and Y are 0 here.
; X is left behind by the boot process?
; set GBASL/GBASH
; we really have to call this, otherwise it won't run
; on some real hardware depending on setup of zero page at boot
jsr HPLOT0 ; set screen position to X= (y,x) Y=(a)
; saves X,Y,A to zero page
; after Y= orig X/7
; A and X are ??
tiny_loop:
; generate some sound
ldx $D4 ; HGR_E
outer_delay:
bit $C030 ; click speaker
ldy $27
inner_delay:
dey
bne inner_delay
dex
bne outer_delay
txa
; lda #$0 ; ROT=$0
ldy #$E2 ;
ldx #$E3 ; Y=$E2
; X=$E3
jsr XDRAW0 ; XDRAW, A =ROTATE, X/Y = point to shape
; Both A and X are 0 at exit
; Z flag set on exit
; Y varies
beq tiny_loop ; bra

137
demos/tiny_wip/ramp_34.s Normal file
View File

@ -0,0 +1,137 @@
; 17B interesting XDRAW pattern
; This one looks vaguely like a circuit board
; by Vince `deater` Weaver / dSr
; zero page locations
GBASL = $26
GBASH = $27
HGR_SCALE = $E7
HGR_COLLISIONS = $EA
; ROM locations
HGR2 = $F3D8
HPOSN = $F411
XDRAW0 = $F65D
XDRAW1 = $F661
HPLOT0 = $F457
circuit17:
; we load at zero page $E7 which is HGR_SCALE
; this means the scale is $20 (JSR)
; $20 $D8 $F3
lda #5
sta $E7
jsr HGR2 ; Hi-res, full screen ; 3
; Y=0, A=0 after this call
; A and Y are 0 here.
; X is left behind by the boot process?
; set GBASL/GBASH
; we really have to call this, otherwise it won't run
; on some real hardware depending on setup of zero page at boot
jsr HPLOT0 ; set screen position to X= (y,x) Y=(a)
; saves X,Y,A to zero page
; after Y= orig X/7
; A and X are ??
; aa = (orange)tiger stripes
; 55 = purple
; 2a = green
; lda #$2a
; jsr $F3F4
tiny_loop:
; e2/e3
; 0.. 63?
; 0 = maze
; 1 = scaly
; 2 = ??
; 3 = tower plates
; 4 = bubbles
; 5 = strings
; 6 = circuit board *
; 7 = noodles
; 8 = pickup sticks
; 9 = meh
; 10 = interesting
; 11 = meh
; 12 = static
; 13 = weave
; 14 = core
; 15 = masts *
; 16 = maze again
; 17 = spots *
; 18 = bamboo *
; 19 = mesh
; 20 = coils
; 21 = sunspots
; 22 = gridy
; 23 = dominos
; 24 = chevron **
; 25 = borg
; 26 = grid
; 27 = plants
; 28 = spaces
; 29 = ridges
; 30 = net
; 31 = odd
; 32 = maze again
; e2/e5
; e3 looks best?
; a0 interesting, green train
; inc rot_smc+1 ; broken glass
; bit $C030
; generate some sound
; try flipping X/Y
; ldx $26
ldx $D4 ; HGR_E
outer_delay:
bit $C030 ; click speaker
ldy $27
; lda $27 ; for lower beeps?
; asl
; tay
inner_delay:
dey
bne inner_delay
dex
bne outer_delay
rot_smc:
lda #$6 ; $6
; ROT=$C6
ldy #$E2 ;
ldx #$E3 ; Y=$E2
; X=$E3
jsr XDRAW0 ; XDRAW, A =ROTATE, X/Y = point to shape
; Both A and X are 0 at exit
; Z flag set on exit
; Y varies
beq tiny_loop ; bra

View File

@ -1,6 +1,10 @@
; 17B interesting XDRAW pattern
; test
; scale 5 rotate 0 = mad_compute
; rotate 2 = fish scales / apple panic
; rotate 10 = alert noise
; rotate 14 = feather
; This one looks vaguely like a chevron shape
; by Vince `deater` Weaver / dSr
@ -17,12 +21,15 @@ XDRAW0 = $F65D
XDRAW1 = $F661
HPLOT0 = $F457
chevron17:
test:
; we load at zero page $E7 which is HGR_SCALE
; this means the scale is $20 (JSR)
; $05 is ORA IMM
; $20 $D8 $F3
.byte $5
nop
; lda #5
; sta $E7 ; scale
jsr HGR2 ; Hi-res, full screen ; 3
; Y=0, A=0 after this call
@ -40,81 +47,25 @@ chevron17:
; A and X are ??
; aa = (orange)tiger stripes
; 55 = purple
; 2a = green
; lda #$2a
; jsr $F3F4
tiny_loop:
; e2/e3
; 0.. 63?
; 0 = maze
; 1 = scaly
; 2 = ??
; 3 = tower plates
; 4 = bubbles
; 5 = strings
; 6 = circuit board *
; 7 = noodles
; 8 = pickup sticks
; 9 = meh
; 10 = interesting
; 11 = meh
; 12 = static
; 13 = weave
; 14 = core
; 15 = masts *
; 16 = maze again
; 17 = spots *
; 18 = bamboo *
; 19 = mesh
; 20 = coils
; 21 = sunspots
; 22 = gridy
; 23 = dominos
; 24 = chevron **
; 25 = borg
; 26 = grid
; 27 = plants
; 28 = spaces
; 29 = ridges
; 30 = net
; 31 = odd
; 32 = maze again
; e2/e5
; e3 looks best?
; a0 interesting, green train
; generate some sound
; inc rot_smc+1 ; broken glass
; bit $C030
; try flipping X/Y
; ldx $26
ldx $D4
ldx $D4 ; HGR_E
outer_delay:
bit $C030
ldy $27
bit $C030 ; click speaker
ldy $27
inner_delay:
dey
bne inner_delay
dey
bne inner_delay
dex
bne outer_delay
dex
bne outer_delay
rot_smc:
lda #$D8 ; $18, $58, $98, $D8
; ROT=$D8
lda #$10 ; ROT=$0
ldy #$E2 ;
ldx #$E3 ; Y=$E2