diff --git a/demos/lovebyte2024/spiral_32/Makefile b/demos/lovebyte2024/spiral_32/Makefile index c0b1a312..ea275c68 100644 --- a/demos/lovebyte2024/spiral_32/Makefile +++ b/demos/lovebyte2024/spiral_32/Makefile @@ -10,7 +10,7 @@ all: spiral_32.dsk spiral_32.dsk: HELLO SPIRAL_32 cp $(EMPTYDISK) spiral_32.dsk $(DOS33) -y spiral_32.dsk SAVE A HELLO - $(DOS33) -y spiral_32.dsk BSAVE -a 0xc00 SPIRAL_32 + $(DOS33) -y spiral_32.dsk BSAVE -a 0xe9 SPIRAL_32 ### @@ -38,7 +38,7 @@ HELLO: hello.bas ### SPIRAL_32: spiral_32.o - ld65 -o SPIRAL_32 spiral_32.o -C $(LINKERSCRIPTS)/apple2_c00.inc + ld65 -o SPIRAL_32 spiral_32.o -C $(LINKERSCRIPTS)/apple2_e7_zp.inc spiral_32.o: spiral_32.s ca65 -o spiral_32.o spiral_32.s -l spiral_32.lst diff --git a/demos/lovebyte2024/spiral_32/README b/demos/lovebyte2024/spiral_32/README deleted file mode 100644 index 061846e5..00000000 --- a/demos/lovebyte2024/spiral_32/README +++ /dev/null @@ -1,13 +0,0 @@ -This is yet another tiny Apple II hires/shapetable intro. - -It loads at $E7 (HGR_SCALE) so that we set that value -for free from the first instruction (in this case JSR so $20). - -I thought this looked like woven cloth at times, hence the name. - -I found this one while searching for pleasant looking patterns -in the ROM to display that were easy to load. Specifically patterns -that have a 0 value after one or two bytes, as those are smaller shapes. -In this case this is rotation value $E2 at address $E2E2 which is -easy to load. - diff --git a/demos/lovebyte2024/spiral_32/file_id.diz b/demos/lovebyte2024/spiral_32/file_id.diz index fda3f5ae..1909f7fa 100644 --- a/demos/lovebyte2024/spiral_32/file_id.diz +++ b/demos/lovebyte2024/spiral_32/file_id.diz @@ -1,9 +1,10 @@ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==- -Weave15 +Spiraling Shape -------------------------------------- Hi-res Xdraw Pattern +with Sound! by Deater / dSr -15-byte Intro for Apple II -Lovebyte 2023 +31-byte Intro for Apple II +Lovebyte 2024 -------------------------------------- diff --git a/demos/lovebyte2024/spiral_32/monitor.txt b/demos/lovebyte2024/spiral_32/monitor.txt new file mode 100644 index 00000000..da191a34 --- /dev/null +++ b/demos/lovebyte2024/spiral_32/monitor.txt @@ -0,0 +1,4 @@ +CALL -151 +E8: 20 D8 F3 2C 30 C0 A8 A2 8C A9 60 20 11 F4 A2 DF +F8: A0 E2 E6 FE A9 01 29 7F 85 E7 20 5D F6 F0 E4 +E8G diff --git a/demos/lovebyte2024/spiral_32/spiral_32.s b/demos/lovebyte2024/spiral_32/spiral_32.s index e79679ca..44d4c31a 100644 --- a/demos/lovebyte2024/spiral_32/spiral_32.s +++ b/demos/lovebyte2024/spiral_32/spiral_32.s @@ -1,14 +1,18 @@ -; Xdraw test +; Spiraling Shape -; use to prototype small xdraw effects +; o/~ Down, Down, Down You Go o/~ ; by Vince `deater` Weaver / DsR +; Lovebyte 2024 + ; zero page locations GBASL = $26 GBASH = $27 HGR_SCALE = $E7 -HGR_ROTATION = $F9 +HGR_COLLISION = $EA + +HGR_ROTATION = $FE ; IMPORTANT! set this right! ; ROM locations HGR2 = $F3D8 @@ -17,19 +21,15 @@ XDRAW0 = $F65D XDRAW1 = $F661 HPLOT0 = $F457 -xdraw_test: - +spiraling_shape: jsr HGR2 ; Hi-res, full screen ; 3 ; Y=0, A=0 after this call - iny -; sty HGR_SCALE - sty HGR_ROTATION - ; A and Y are 0 here. ; X is left behind by the boot process? tiny_loop: + bit $C030 tay ; ldy #0 ; A always 0 here ldx #140 lda #96 @@ -41,8 +41,10 @@ tiny_loop: ldx #our_shape ; inc HGR_ROTATION - lda HGR_ROTATION - and #$7f + + lda #1 ; HGR_ROTATION is HERE ($FE) + + and #$7f ; cut off before it gets too awful sta HGR_SCALE jsr XDRAW0 ; XDRAW 1 AT X,Y @@ -55,5 +57,4 @@ tiny_loop: our_shape = $E2DF -;our_shape: -;.byte $1a,$2d,$00 + diff --git a/linker_scripts/apple2_e6_zp.inc b/linker_scripts/apple2_e6_zp.inc new file mode 100644 index 00000000..a5582e8f --- /dev/null +++ b/linker_scripts/apple2_e6_zp.inc @@ -0,0 +1,12 @@ +MEMORY { + ZP: start = $E6, size = $90, type = rw; + RAM: start = $E6, size = $8E00, file = %O; +} + +SEGMENTS { +CODE: load = RAM, type = ro; +#RODATA: load = RAM, type = ro; +#DATA: load = RAM, type = rw; +#BSS: load = RAM, type = bss, define = yes; +ZEROPAGE: load = ZP, type = ro; +}