From 5dda7169c1a2a8e8d64c82c7fc3fb1de220ec19f Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 26 Apr 2022 08:09:54 -0400 Subject: [PATCH] gr: work on scroller --- graphics/gr/scroll/Makefile | 47 ++++++++++++ graphics/gr/scroll/hello.bas | 2 + graphics/gr/scroll/hexagon.s | 144 +++++++++++++++++++++++++++++++++++ 3 files changed, 193 insertions(+) create mode 100644 graphics/gr/scroll/Makefile create mode 100644 graphics/gr/scroll/hello.bas create mode 100644 graphics/gr/scroll/hexagon.s diff --git a/graphics/gr/scroll/Makefile b/graphics/gr/scroll/Makefile new file mode 100644 index 00000000..b0caa886 --- /dev/null +++ b/graphics/gr/scroll/Makefile @@ -0,0 +1,47 @@ +include ../../../Makefile.inc + +DOS33 = ../../../utils/dos33fs-utils/dos33 +PNG2GR = ../../../utils/gr-utils/png2gr +PNG2RLE = ../../../utils/gr-utils/png2rle +TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft +LINKERSCRIPTS = ../../../linker_scripts +EMPTY_DISK = ../../../empty_disk + +all: scroller.dsk + +$(DOS33): + cd ../../../utils/dos33fs-utils && make + +scroller.dsk: $(DOS33) HELLO HEXAGON + cp $(EMPTY_DISK)/empty.dsk scroller.dsk + $(DOS33) -y scroller.dsk SAVE A HELLO + $(DOS33) -y scroller.dsk BSAVE -a 0xc00 HEXAGON +# $(DOS33) -y scroller.dsk BSAVE -a 0x36C PARTICLE_BOT + +### + +HELLO: hello.bas + $(TOKENIZE) < hello.bas > HELLO + +### + +HEXAGON: hexagon.o + ld65 -o HEXAGON hexagon.o -C $(LINKERSCRIPTS)/apple2_c00.inc + +hexagon.o: hexagon.s + ca65 -o hexagon.o hexagon.s -l hexagon.lst + +### + +HEXAGON_BOT: hexagon_bot.o + ld65 -o HEXAGON_BOT hexagon_bot.o -C $(LINKERSCRIPTS)/apple2_36c.inc + +hexagon_bot.o: hexagon_bot.s + ca65 -o hexagon_bot.o hexagon_bot.s -l hexagon_bot.lst + + +### + +clean: + rm -f *~ *.o *.lst HELLO HEXAGON HEXAGON_BOT + diff --git a/graphics/gr/scroll/hello.bas b/graphics/gr/scroll/hello.bas new file mode 100644 index 00000000..133a44bb --- /dev/null +++ b/graphics/gr/scroll/hello.bas @@ -0,0 +1,2 @@ +5 HOME +10 PRINT CHR$(4);"CATALOG" diff --git a/graphics/gr/scroll/hexagon.s b/graphics/gr/scroll/hexagon.s new file mode 100644 index 00000000..84b983d6 --- /dev/null +++ b/graphics/gr/scroll/hexagon.s @@ -0,0 +1,144 @@ +; hexagon scroll? + +; by Vince `deater` Weaver + +PARTICLES = 128 +SCALE = 2 + +COLOR = $30 + +QUOTIENT = $FA +DIVISOR = $FB +DIVIDEND = $FC +XX = $FD +YY = $FE +FRAME = $FF + +FULLGR = $C052 +LORES = $C056 ; Enable LORES graphics + +PLOT = $F800 ; PLOT AT Y,A (A colors output, Y preserved) +SETGR = $FB40 +WAIT = $FCA8 ; delay 1/2(26+27A+5A^2) us + +hexagon: + + jsr SETGR + bit FULLGR + + +hexagon_loop: + + +; 104 to beat + + lda #$4 + sta inner_loop_smc+2 + +line_loop: + + ldx #120 + ldy #0 +screen_loop: + + +inner_loop: + +pattern_smc: + lda pattern1,Y +inner_loop_smc: + sta $400,X + + iny + tya + and #$7 + tay + + dex + bpl screen_loop + +;================================= + + ; move to next pattern + + clc + lda pattern_smc+1 + adc #8 + sta pattern_smc+1 + cmp #(