diff --git a/demos/tiny_wip/Makefile b/demos/tiny_wip/Makefile index efbc4c4d..61eeb794 100644 --- a/demos/tiny_wip/Makefile +++ b/demos/tiny_wip/Makefile @@ -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 diff --git a/demos/tiny_wip/NOTES b/demos/tiny_wip/NOTES new file mode 100644 index 00000000..06b3e34e --- /dev/null +++ b/demos/tiny_wip/NOTES @@ -0,0 +1 @@ +mad_computer: there are a few untapped paramaters to make other noises diff --git a/demos/tiny_wip/angle_song_30.s b/demos/tiny_wip/angle_song_30.s index 646cdb53..0d1e8a5d 100644 --- a/demos/tiny_wip/angle_song_30.s +++ b/demos/tiny_wip/angle_song_30.s @@ -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 diff --git a/demos/tiny_wip/mad_compute_31.s b/demos/tiny_wip/mad_compute_31.s new file mode 100644 index 00000000..da6671b9 --- /dev/null +++ b/demos/tiny_wip/mad_compute_31.s @@ -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 + diff --git a/demos/tiny_wip/ramp_34.s b/demos/tiny_wip/ramp_34.s new file mode 100644 index 00000000..73e95972 --- /dev/null +++ b/demos/tiny_wip/ramp_34.s @@ -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 + diff --git a/demos/tiny_wip/test.s b/demos/tiny_wip/test.s index 646cdb53..37e76af6 100644 --- a/demos/tiny_wip/test.s +++ b/demos/tiny_wip/test.s @@ -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