From a3a5c7610c7a6b83c67c531076dad8e9c521bbab Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sat, 28 Jan 2023 21:54:13 -0500 Subject: [PATCH] demosplash: add field15 --- demos/lovebyte2023/field_16/Makefile | 46 +++++++++++++++++ demos/lovebyte2023/field_16/apple2_e7_zp.inc | 12 +++++ demos/lovebyte2023/field_16/field15.s | 52 ++++++++++++++++++++ demos/lovebyte2023/field_16/file_id.diz | 9 ++++ demos/lovebyte2023/field_16/hello.bas | 9 ++++ demos/lovebyte2023/field_16/monitor.txt | 3 ++ graphics/hgr/shape_table/field15.s | 8 +-- 7 files changed, 136 insertions(+), 3 deletions(-) create mode 100644 demos/lovebyte2023/field_16/Makefile create mode 100644 demos/lovebyte2023/field_16/apple2_e7_zp.inc create mode 100644 demos/lovebyte2023/field_16/field15.s create mode 100644 demos/lovebyte2023/field_16/file_id.diz create mode 100644 demos/lovebyte2023/field_16/hello.bas create mode 100644 demos/lovebyte2023/field_16/monitor.txt diff --git a/demos/lovebyte2023/field_16/Makefile b/demos/lovebyte2023/field_16/Makefile new file mode 100644 index 00000000..5c6e72a6 --- /dev/null +++ b/demos/lovebyte2023/field_16/Makefile @@ -0,0 +1,46 @@ +include ../../../Makefile.inc + +DOS33 = ../../../utils/dos33fs-utils/dos33 +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +EMPTYDISK = ../../../empty_disk/empty.dsk + +all: field15.dsk + +field15.dsk: HELLO FIELD15 + cp $(EMPTYDISK) field15.dsk + $(DOS33) -y field15.dsk SAVE A HELLO + $(DOS33) -y field15.dsk BSAVE -a 0xE7 FIELD15 + +### + +submit: field15.zip + +field1532.zip: FIELD15 field15.s file_id.diz field15.dsk + mkdir -p lovebyte2023_field15 + cp FIELD15 ./lovebyte2023_field15 + cp field15.s ./lovebyte2023_field15 + cp file_id.diz ./lovebyte2023_field15 + cp field15.dsk ./lovebyte2023_field15 + cp field15_720p.mp4 ./lovebyte2023_field15 + zip -r field1532.zip lovebyte2023_field15 + +#### + + +#### + +HELLO: hello.bas + $(TOKENIZE) < hello.bas > HELLO + +### + +FIELD15: field15.o + ld65 -o FIELD15 field15.o -C ./apple2_e7_zp.inc + +field15.o: field15.s + ca65 -o field15.o field15.s -l field15.lst + +#### + +clean: + rm -f *~ *.o *.lst HELLO FIELD15 *.zip diff --git a/demos/lovebyte2023/field_16/apple2_e7_zp.inc b/demos/lovebyte2023/field_16/apple2_e7_zp.inc new file mode 100644 index 00000000..a670f054 --- /dev/null +++ b/demos/lovebyte2023/field_16/apple2_e7_zp.inc @@ -0,0 +1,12 @@ +MEMORY { + ZP: start = $E7, size = $90, type = rw; + RAM: start = $E7, 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; +} diff --git a/demos/lovebyte2023/field_16/field15.s b/demos/lovebyte2023/field_16/field15.s new file mode 100644 index 00000000..054cf011 --- /dev/null +++ b/demos/lovebyte2023/field_16/field15.s @@ -0,0 +1,52 @@ +; 15B interesting XDRAW pattern + +; by Vince `deater` Weaver / dSr + +; for Lovebyte 2023 + +; 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 + +field15: + + ; we load at zero page $E7 which is HGR_SCALE + ; this means the scale is $20 (JSR) + + 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: + + lda #$F6 ; ROT=$F6 + tay + tax + dex + + 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 + diff --git a/demos/lovebyte2023/field_16/file_id.diz b/demos/lovebyte2023/field_16/file_id.diz new file mode 100644 index 00000000..791fc569 --- /dev/null +++ b/demos/lovebyte2023/field_16/file_id.diz @@ -0,0 +1,9 @@ +-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==- +Field15 +-------------------------------------- +Hi-res Xdraw Pattern +by Deater / dSr + +15-byte Intro for Apple II +Lovebyte 2023 +-------------------------------------- diff --git a/demos/lovebyte2023/field_16/hello.bas b/demos/lovebyte2023/field_16/hello.bas new file mode 100644 index 00000000..7fee3f29 --- /dev/null +++ b/demos/lovebyte2023/field_16/hello.bas @@ -0,0 +1,9 @@ +5 HOME +10 PRINT " FIELD15 -- A 15 BYTE APPLE II INTRO" +12 PRINT " FOR LOVEBYTE 2023" +15 PRINT " BY DEATER / DSR" +20 PRINT CHR$(4)"CATALOG" +25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN FIELD15'" +30 GET A$ +35 PRINT +40 PRINT CHR$(4)"BRUN FIELD15" diff --git a/demos/lovebyte2023/field_16/monitor.txt b/demos/lovebyte2023/field_16/monitor.txt new file mode 100644 index 00000000..f0852390 --- /dev/null +++ b/demos/lovebyte2023/field_16/monitor.txt @@ -0,0 +1,3 @@ +CALL -151 +E7: 20 d8 f3 20 57 f4 a9 f6 a8 aa ca 20 5d f6 f0 f6 +E7G diff --git a/graphics/hgr/shape_table/field15.s b/graphics/hgr/shape_table/field15.s index 7a7c36f8..054cf011 100644 --- a/graphics/hgr/shape_table/field15.s +++ b/graphics/hgr/shape_table/field15.s @@ -1,6 +1,8 @@ -; 17B weird line pattern +; 15B interesting XDRAW pattern -; Really wanted this to be 16B :( +; by Vince `deater` Weaver / dSr + +; for Lovebyte 2023 ; zero page locations GBASL = $26 @@ -15,7 +17,7 @@ XDRAW0 = $F65D XDRAW1 = $F661 HPLOT0 = $F457 -agony17: +field15: ; we load at zero page $E7 which is HGR_SCALE ; this means the scale is $20 (JSR)