diff --git a/demos/lovebyte2024/sawblade_32/Makefile b/demos/lovebyte2024/sawblade_32/Makefile new file mode 100644 index 00000000..e18b7d8f --- /dev/null +++ b/demos/lovebyte2024/sawblade_32/Makefile @@ -0,0 +1,49 @@ +include ../../../Makefile.inc + +DOS33 = ../../../utils/dos33fs-utils/dos33 +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +EMPTYDISK = ../../../empty_disk/empty.dsk +LINKERSCRIPTS = ../../../linker_scripts/ + +all: sawblade.dsk + +sawblade.dsk: HELLO SAWBLADE + cp $(EMPTYDISK) sawblade.dsk + $(DOS33) -y sawblade.dsk SAVE A HELLO + $(DOS33) -y sawblade.dsk BSAVE -a 0xe6 SAWBLADE + +### + +submit: sawblade.zip + +sawblade.zip: SAWBLADE sawblade.s file_id.diz sawblade.dsk + mkdir -p lovebyte2024_sawblade + cp SAWBLADE ./lovebyte2024_sawblade + cp sawblade.s ./lovebyte2024_sawblade + cp file_id.diz ./lovebyte2024_sawblade + cp sawblade.dsk ./lovebyte2024_sawblade + cp monitor.txt ./lovebyte2024_sawblade + cp sawblade_screen.png ./lovebyte2024_sawblade + cp sawblade_720p.mp4 ./lovebyte2024_sawblade + zip -r sawblade.zip lovebyte2024_sawblade + +#### + + +#### + +HELLO: hello.bas + $(TOKENIZE) < hello.bas > HELLO + +### + +SAWBLADE: sawblade.o + ld65 -o SAWBLADE sawblade.o -C $(LINKERSCRIPTS)/apple2_c00.inc + +sawblade.o: sawblade.s + ca65 -o sawblade.o sawblade.s -l sawblade.lst + +#### + +clean: + rm -f *~ *.o *.lst HELLO SAWBLADE *.zip diff --git a/demos/lovebyte2024/sawblade_32/file_id.diz b/demos/lovebyte2024/sawblade_32/file_id.diz new file mode 100644 index 00000000..816b9965 --- /dev/null +++ b/demos/lovebyte2024/sawblade_32/file_id.diz @@ -0,0 +1,9 @@ +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==- +Sawblade 32 +-------------------------------------- +Hi-res Xdraw Sawblade Pattern +by Deater / dSr + +32-byte Intro for Apple II +Lovebyte 2024 +-------------------------------------- diff --git a/demos/lovebyte2024/sawblade_32/hello.bas b/demos/lovebyte2024/sawblade_32/hello.bas new file mode 100644 index 00000000..f5e4a631 --- /dev/null +++ b/demos/lovebyte2024/sawblade_32/hello.bas @@ -0,0 +1,10 @@ +5 HOME +10 PRINT " -= SAWBLADE -- 32 BYTES =-" +12 PRINT " ---------------------- +15 PRINT " LOVEBYTE 2024" +17 PRINT " BY: DEATER / DSR" +20 PRINT CHR$(4)"CATALOG" +25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN SAWBLADE'" +30 GET A$ +35 PRINT +40 PRINT CHR$(4)"BRUN SAWBLADE" diff --git a/demos/lovebyte2024/sawblade_32/monitor.txt b/demos/lovebyte2024/sawblade_32/monitor.txt new file mode 100644 index 00000000..06e83d46 --- /dev/null +++ b/demos/lovebyte2024/sawblade_32/monitor.txt @@ -0,0 +1,4 @@ +CALL -151 +E6: A0 01 20 D8 F3 A8 A2 8C A9 60 20 11 F4 A2 E0 A0 +F6: E2 E6 E8 A5 E8 29 3F D0 02 E6 E7 20 5D F6 F0 E5 +E6G diff --git a/demos/lovebyte2024/sawblade_32/sawblade.s b/demos/lovebyte2024/sawblade_32/sawblade.s new file mode 100644 index 00000000..58997e36 --- /dev/null +++ b/demos/lovebyte2024/sawblade_32/sawblade.s @@ -0,0 +1,86 @@ +; Sawblade + +; 32 bytes for Lovebyte2024 + +; by Vince `deater` Weaver / DsR + +; zero page locations +GBASL = $26 +GBASH = $27 + +HGR_X = $E0 +HGR_X2 = $E1 +HGR_Y = $E2 +HGR_SCALE = $E7 +HGR_ROTATION = $E8 + +; ROM locations +HGR2 = $F3D8 +HPOSN = $F411 +XDRAW0 = $F65D +XDRAW1 = $F661 +HPLOT0 = $F457 + +sawblade: + ldy #1 ; this 1 must be at #$E7 + + jsr HGR2 ; Hi-res, full screen ; 3 + ; Y=0, A=0 after this call + +; iny ; Y=1 +; sty HGR_SCALE +; sty HGR_ROTATION + + + ; A and Y are 0 here. + ; X is left behind by the boot process? + +tiny_loop: + ; A is 0 both paths + + tay ; Y=0 + ldx #140 + lda #96 + jsr HPOSN ; 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 ?? + + ldx #our_shape ; + inc HGR_ROTATION + lda HGR_ROTATION + and #$3f + bne skip + inc HGR_SCALE + + ; rotation in A, $00b..$3F +skip: + jsr XDRAW0 ; XDRAW 1 AT X,Y + ; Both A and X are 0 at exit + ; Z flag set on exit + ; Y varies + + beq tiny_loop ; bra + + +our_shape = $E2E0 + +; F0 03 20 00 + + + +; 9 bytes + 4 bytes :( +; ldx #4 +;loop: +; lda blah,X +; sta zp,X +; dex +; bne loop + +; 9 bytes +; iny +; sty HGR_SCALE +; ldy #0 +; ldx #140 +; lda #96