mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-04-18 03:37:41 +00:00
l25: some more demos
This commit is contained in:
parent
a94876119f
commit
5413cd3b94
49
demos/lovebyte2025/mad_compute_32/Makefile
Normal file
49
demos/lovebyte2025/mad_compute_32/Makefile
Normal 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
|
10
demos/lovebyte2025/mad_compute_32/file_id.diz
Normal file
10
demos/lovebyte2025/mad_compute_32/file_id.diz
Normal 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
|
||||
--------------------------------------
|
9
demos/lovebyte2025/mad_compute_32/hello.bas
Normal file
9
demos/lovebyte2025/mad_compute_32/hello.bas
Normal 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"
|
81
demos/lovebyte2025/mad_compute_32/mad_compute_31.s
Normal file
81
demos/lovebyte2025/mad_compute_32/mad_compute_31.s
Normal 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
|
||||
|
10
demos/lovebyte2025/mad_compute_32/monitor.txt
Normal file
10
demos/lovebyte2025/mad_compute_32/monitor.txt
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
48
demos/lovebyte2025/triscroll_128/Makefile
Normal file
48
demos/lovebyte2025/triscroll_128/Makefile
Normal 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
|
13
demos/lovebyte2025/triscroll_128/file_id.diz
Normal file
13
demos/lovebyte2025/triscroll_128/file_id.diz
Normal 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.
|
10
demos/lovebyte2025/triscroll_128/hello.bas
Normal file
10
demos/lovebyte2025/triscroll_128/hello.bas
Normal 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"
|
184
demos/lovebyte2025/triscroll_128/tri_scroll.s
Normal file
184
demos/lovebyte2025/triscroll_128/tri_scroll.s
Normal 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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user