l25: some more demos

This commit is contained in:
Vince Weaver 2025-02-08 22:15:27 -05:00
parent a94876119f
commit 5413cd3b94
9 changed files with 414 additions and 0 deletions

View File

@ -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: mad_compute_31.dsk
mad_compute_31.dsk: HELLO MAD_COMPUTE_31
cp $(EMPTYDISK) mad_compute_31.dsk
$(DOS33) -y mad_compute_31.dsk SAVE A HELLO
$(DOS33) -y mad_compute_31.dsk BSAVE -a 0xe7 MAD_COMPUTE_31
###
submit: mad_compute_31.zip
mad_compute_31.zip: MAD_COMPUTE_31 mad_compute_31.s file_id.diz mad_compute_31.dsk
mkdir -p lovebyte2025_mad_compute_31
cp MAD_COMPUTE_31 ./lovebyte2025_mad_compute_31
cp mad_compute_31.s ./lovebyte2025_mad_compute_31
cp file_id.diz ./lovebyte2025_mad_compute_31
cp mad_compute_31.dsk ./lovebyte2025_mad_compute_31
cp monitor.txt ./lovebyte2025_mad_compute_31
cp mad_compute_31_screen.png ./lovebyte2025_mad_compute_31
cp mad_compute_31_720p.mp4 ./lovebyte2025_mad_compute_31
zip -r mad_compute_31.zip lovebyte2025_mad_compute_31
####
####
HELLO: hello.bas
$(TOKENIZE) < hello.bas > HELLO
###
MAD_COMPUTE_31: mad_compute_31.o
ld65 -o MAD_COMPUTE_31 mad_compute_31.o -C $(LINKERSCRIPTS)/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
####
clean:
rm -f *~ *.o *.lst HELLO MAD_COMPUTE_31 *.zip

View File

@ -0,0 +1,10 @@
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-
Mad Compute 31
--------------------------------------
Hi-res Xdraw Pattern
with Sound!
by Deater / dSr
31-byte Intro for Apple II
Lovebyte 2025
--------------------------------------

View File

@ -0,0 +1,9 @@
5 HOME
10 PRINT " -= MAD_COMPUTE -- 31 BYTES =-"
12 PRINT " ---------------------------"
14 PRINT " LOVEBYTE 2025"
20 PRINT CHR$(4)"CATALOG"
25 PRINT:PRINT "PRESS ANY KEY TO 'MAD_COMPUTE_31'"
30 GET A$
35 PRINT
40 PRINT CHR$(4)"BRUN MAD_COMPUTE_31"

View File

@ -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

View File

@ -0,0 +1,10 @@
CALL -151
E7: 05 EA 20 D8 F3 20 57 F4 A6 D4 2C 30 C0 A4 27 88
F7: D0 FD CA D0 F5 8A A0 E2 A2 E3 20 5D F6 F0 E9
E7G

View File

@ -0,0 +1,48 @@
include ../../../Makefile.inc
DOS33 = ../../../utils/dos33fs-utils/dos33
TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft
EMPTYDISK = ../../../empty_disk/empty.dsk
LINKERSCRIPTS = ../../../linker_scripts/
all: tri_scroll.dsk
tri_scroll.dsk: HELLO TRI_SCROLL
cp $(EMPTYDISK) tri_scroll.dsk
$(DOS33) -y tri_scroll.dsk SAVE A HELLO
$(DOS33) -y tri_scroll.dsk BSAVE -a 0xc00 TRI_SCROLL
###
submit: tri_scroll.zip
tri_scroll.zip: TRI_SCROLL tri_scroll.s file_id.diz tri_scroll.dsk
mkdir -p lovebyte2024_tri_scroll
cp TRI_SCROLL ./lovebyte2024_tri_scroll
cp tri_scroll.s ./lovebyte2024_tri_scroll
cp file_id.diz ./lovebyte2024_tri_scroll
cp tri_scroll.dsk ./lovebyte2024_tri_scroll
cp tri_scroll_screen.png ./lovebyte2024_tri_scroll
cp tri_scroll_720p.mp4 ./lovebyte2024_tri_scroll
zip -r tri_scroll.zip lovebyte2024_tri_scroll
####
####
HELLO: hello.bas
$(TOKENIZE) < hello.bas > HELLO
###
TRI_SCROLL: tri_scroll.o
ld65 -o TRI_SCROLL tri_scroll.o -C $(LINKERSCRIPTS)/apple2_c00.inc
tri_scroll.o: tri_scroll.s
ca65 -o tri_scroll.o tri_scroll.s -l tri_scroll.lst
####
clean:
rm -f *~ *.o *.lst HELLO TRI_SCROLL *.zip

View File

@ -0,0 +1,13 @@
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
TRI_SCROLL 128
-------------------------------------
for Lovebyte 2025
by Deater / dSr
124-byte Intro for Apple II
(Apple II has a 4-byte header)
This was an outtake from an attempt
at a hi-res parallax intro that
looked cool.

View File

@ -0,0 +1,10 @@
5 HOME
10 PRINT " -= TRI_SCROLL =-"
12 PRINT " --------------------------------"
15 PRINT " 128 BYTE INTRO FOR LOVEBYTE 2025"
17 PRINT
20 PRINT CHR$(4)"CATALOG"
25 PRINT:PRINT "PRESS ANY KEY TO 'BRUN TRI_SCROLL'"
30 GET A$
35 PRINT
40 PRINT CHR$(4)"BRUN TRI_SCROLL"

View File

@ -0,0 +1,184 @@
; Tri-Scroll
; Three way sorta parallax thing
; This was an outtake from a parallax demo
; by Vince `deater` Weaver / dSr
; Zero Page
GBASL = $26
GBASH = $27
HGR_Y = $E2
HGR_PAGE = $E6
; Soft Switches
PAGE1 = $C054 ; Page1
PAGE2 = $C055 ; Page2
; ROM routines
HGR = $F3E2
HGR2 = $F3D8
HCLR = $F3F2
HPLOT0 = $F457 ; plot at (Y,X), (A)
WAIT = $FCA8 ; delay 1/2(26+27A+5A^2) us
HPOSN = $F411 ; (Y,X),(A) (values stores in HGRX,XH,Y)
hgr_lookup_h = $1000
hgr_lookup_l = $1100
div4_lookup = $90
parallax:
;===================
; init screen
jsr HGR
jsr HGR2
;===================
; int tables
; 25 bytes
ldx #191
init_loop:
txa ; X = Ypos, Y=Xpos (not care)
jsr HPOSN
ldx HGR_Y ; Ypos was saved in HGR_Y
lda GBASL
sta hgr_lookup_l,X
lda GBASH
and #$1F ; 20 30 001X 40 50 010X
sta hgr_lookup_h,X
dex
cpx #$ff ; can't use bmi because >128
bne init_loop
ldx #39
div4_loop:
txa
asl
asl
sta div4_lookup,X
dex
bpl div4_loop
parallax_forever:
; increment offsets
inc large_smc+1 ; 6
inc medium_smc+1 ; 6
;========================
; flip page
lda HGR_PAGE ; $40 or $20
eor #$60 ; flip draw_page
sta HGR_PAGE
; 9 bytes?
; page1 page2
; $20 $40
asl ; $40 $80
asl ; $80 / 0 $00 / 1
rol ; $00 / 0 $01
eor #$1
tax
lda PAGE1,X ; flip show_page
; 16 of em
ldy #15 ; init Y
yloop:
;==============
; point output to current line
lda hgr_lookup_l,Y ; 4+
sta out_smc+1 ; 4
lda hgr_lookup_h,Y ; 4+
ora HGR_PAGE ; 3
sta out_smc+2 ; 4
;==============
; current column (work backwards)
ldx #0 ; 2
xloop:
;===========================
; Boxes
tya ; 2
; carry always clear here?
large_smc:
sbc #$DD ; 2
eor div4_lookup,X ; 4
and #$40 ; 2
; 0 means transparent
beq was_transparent ; 2/3
; white block
draw_white:
lda #$7f ; 2
bne draw_color ; bra
was_transparent:
;===========================
; Sierpinski
tya ; 2
medium_smc:
adc #$DD ; go other way ; 2
and div4_lookup,X ; sierpinski ; 4
; bne draw_black ; draw black ; 2/3
bne draw_color
draw_purple:
lda #$55 ; purple/green ; 2
; bne draw_color ; bra ; 3
;draw_black:
; lda #$00 ; 2
; beq draw_color ; bra ; 3
;========================
; actually draw color
draw_color:
out_smc:
sta $2000,X ; 5
; make some noise
txa
and $2000,X
and #$7
beq oof
bit $C030
oof:
dex ; 2
bne xloop ; 2/3
dey ; 2
bne yloop ; 2/3
beq parallax_forever ; 2/3