mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-16 07:29:29 +00:00
seasons: update before submission
This commit is contained in:
parent
a3fb3a16f7
commit
7db01990ea
|
@ -1,34 +0,0 @@
|
||||||
include ../Makefile.inc
|
|
||||||
|
|
||||||
DOS33 = ../dos33fs-utils/dos33
|
|
||||||
PNG_TO_40x96 = ../gr-utils/png_to_40x96
|
|
||||||
PNG_TO_40x48D = ../gr-utils/png_to_40x48d
|
|
||||||
PNG2RLE = ../gr-utils/png2rle
|
|
||||||
B2D = ../bmp2dhr/b2d
|
|
||||||
|
|
||||||
all: autumn.dsk
|
|
||||||
|
|
||||||
autumn.dsk: HELLO AUTUMN
|
|
||||||
cp empty.dsk autumn.dsk
|
|
||||||
$(DOS33) -y autumn.dsk SAVE A HELLO
|
|
||||||
$(DOS33) -y autumn.dsk BSAVE -a 0x1000 AUTUMN
|
|
||||||
|
|
||||||
|
|
||||||
AUTUMN: autumn.o
|
|
||||||
ld65 -o AUTUMN autumn.o -C ../linker_scripts/apple2_1000.inc
|
|
||||||
|
|
||||||
autumn.o: autumn.s
|
|
||||||
ca65 -o autumn.o autumn.s -l autumn.lst
|
|
||||||
|
|
||||||
###
|
|
||||||
|
|
||||||
|
|
||||||
HELLO: hello.bas
|
|
||||||
../asoft_basic-utils/tokenize_asoft < hello.bas > HELLO
|
|
||||||
|
|
||||||
####
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ *.o *.lst HELLO AUTUMN
|
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
5 HOME
|
|
||||||
100 PRINT "SOME DEMOS BASED ON"
|
|
||||||
110 PRINT "HELLMOOD'S AUTUMN"
|
|
||||||
120 PRINT CHR$(4);"CATALOG"
|
|
35
seasons/Makefile
Normal file
35
seasons/Makefile
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
include ../Makefile.inc
|
||||||
|
|
||||||
|
DOS33 = ../dos33fs-utils/dos33
|
||||||
|
PNG_TO_40x96 = ../gr-utils/png_to_40x96
|
||||||
|
PNG_TO_40x48D = ../gr-utils/png_to_40x48d
|
||||||
|
PNG2RLE = ../gr-utils/png2rle
|
||||||
|
B2D = ../bmp2dhr/b2d
|
||||||
|
|
||||||
|
all: seasons.dsk
|
||||||
|
|
||||||
|
seasons.dsk: HELLO SEASONS
|
||||||
|
cp empty.dsk seasons.dsk
|
||||||
|
$(DOS33) -y seasons.dsk SAVE A HELLO
|
||||||
|
$(DOS33) -y seasons.dsk BSAVE -a 0x50 SEASONS
|
||||||
|
|
||||||
|
|
||||||
|
SEASONS: seasons.o
|
||||||
|
# ld65 -o SEASONS seasons.o -C ../linker_scripts/apple2_1000.inc
|
||||||
|
ld65 -o SEASONS seasons.o -C ../linker_scripts/apple2_50_zp.inc
|
||||||
|
|
||||||
|
seasons.o: seasons.s
|
||||||
|
ca65 -o seasons.o seasons.s -l seasons.lst
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
|
||||||
|
HELLO: hello.bas
|
||||||
|
../asoft_basic-utils/tokenize_asoft < hello.bas > HELLO
|
||||||
|
|
||||||
|
####
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f *~ *.o *.lst HELLO SEASONS
|
||||||
|
|
||||||
|
|
6
seasons/hello.bas
Normal file
6
seasons/hello.bas
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
5 HOME
|
||||||
|
100 PRINT " APPLE II SEASONS 128B DEMO"
|
||||||
|
110 PRINT " -=DESIRE=- / OUTLINE 2020"
|
||||||
|
115 PRINT
|
||||||
|
117 PRINT "TO RUN, TYPE: BRUN SEASONS":PRINT
|
||||||
|
120 PRINT CHR$(4);"CATALOG"
|
|
@ -1,26 +1,31 @@
|
||||||
; Autumn, based on the code in Hellmood's Autumn
|
; Apple II Seasons -=DESiRE=- 128B Demo for Outline 2020
|
||||||
|
; based on the code in Hellmood's 64B x86 demo "Autumn"
|
||||||
; by deater (Vince Weaver) <vince@deater.net>
|
; by deater (Vince Weaver) <vince@deater.net>
|
||||||
|
|
||||||
; DOS version is 64 bytes
|
; DOS version is 64 bytes
|
||||||
; original Apple II 6502 port was 167 bytes
|
; original Apple II 6502 port was 167 bytes
|
||||||
; I got it down to 126 bytes
|
; I got it down to 126 bytes
|
||||||
; qkumba got it down to 116
|
; qkumba got it down to 116
|
||||||
|
; color-cycling brought it back up to 127 bytes
|
||||||
|
|
||||||
|
; To save space, runs from the zero page starting at $50
|
||||||
|
; need to avoid $E0-$E5 used by the hgr/hplot routines
|
||||||
|
|
||||||
; Zero Page Addresses
|
; Zero Page Addresses
|
||||||
|
|
||||||
XCOORDL = $F0
|
XCOORDL = $F3
|
||||||
XCOORDH = $F1
|
XCOORDH = $F4
|
||||||
YCOORDL = $F2
|
YCOORDL = $F5
|
||||||
YCOORDH = $F3
|
YCOORDH = $F6
|
||||||
EBP1 = $F4
|
EBP1 = $F7
|
||||||
EBP2 = $F5
|
EBP2 = $F8
|
||||||
EBP3 = $F6
|
EBP3 = $F9
|
||||||
EBP4 = $F7
|
EBP4 = $FA
|
||||||
COLORL = $F8
|
COLORL = $FB
|
||||||
COLORH = $F9
|
COLORH = $FC
|
||||||
SOUND = $FA
|
SOUND = $FD
|
||||||
FRAMEL = $FB
|
FRAMEL = $FE
|
||||||
FRAMEH = $FC
|
FRAMEH = $FF
|
||||||
|
|
||||||
; Soft Switches
|
; Soft Switches
|
||||||
KEYPRESS= $C000
|
KEYPRESS= $C000
|
||||||
|
@ -37,9 +42,10 @@ HGR2 = $F3D8 ; Set full-screen hi-res mode using page 2 ($4000)
|
||||||
HPLOT0 = $F457 ; Plot point, (Y,X) = Horizontal, (A=Vertical)
|
HPLOT0 = $F457 ; Plot point, (Y,X) = Horizontal, (A=Vertical)
|
||||||
HCOLOR = $F6EC ; Set color in X, must be 0..7
|
HCOLOR = $F6EC ; Set color in X, must be 0..7
|
||||||
|
|
||||||
XDRAW1 = $F661
|
; use zero-page addressing to save space
|
||||||
|
.zeropage
|
||||||
|
|
||||||
autumn:
|
seasons:
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; init screen ; Instruction Length
|
; init screen ; Instruction Length
|
||||||
|
@ -61,7 +67,7 @@ autumn:
|
||||||
; stx COLORH ; 2
|
; stx COLORH ; 2
|
||||||
|
|
||||||
|
|
||||||
autumn_forever:
|
seasons_forever:
|
||||||
|
|
||||||
; save old Xcoord value to X/Y for later
|
; save old Xcoord value to X/Y for later
|
||||||
; push/pop is 1 byte each but have to get
|
; push/pop is 1 byte each but have to get
|
||||||
|
@ -156,7 +162,7 @@ label_11f:
|
||||||
|
|
||||||
and #$7 ; 2
|
and #$7 ; 2
|
||||||
smc:
|
smc:
|
||||||
ora #$1 ; 2
|
ora #$2 ; 2
|
||||||
tax ; 1
|
tax ; 1
|
||||||
|
|
||||||
; if using color lookup table
|
; if using color lookup table
|
||||||
|
@ -165,46 +171,62 @@ smc:
|
||||||
|
|
||||||
; if ycoord negative, loop
|
; if ycoord negative, loop
|
||||||
lda YCOORDH ; 2
|
lda YCOORDH ; 2
|
||||||
bmi autumn_forever ; 2
|
bmi seasons_forever ; 2
|
||||||
|
|
||||||
; if top bits of xcoord, loop
|
; if top bits of xcoord, loop
|
||||||
lda XCOORDH ; 2
|
lda XCOORDH ; 2
|
||||||
and #$f0 ; 2
|
and #$f0 ; 2
|
||||||
bne autumn_forever ; 2
|
bne seasons_forever ; 2
|
||||||
|
|
||||||
put_pixel:
|
put_pixel:
|
||||||
|
|
||||||
; actually set the color
|
; actually set the color
|
||||||
jsr HCOLOR ; 3
|
jsr HCOLOR ; 3 ; color is in X
|
||||||
|
|
||||||
; set up paramaters for HPLOT call
|
; set up paramaters for HPLOT ROM call
|
||||||
ldx XCOORDL ; 2
|
ldx XCOORDL ; 2 ; x coord in (y:x)
|
||||||
ldy XCOORDH ; 2
|
ldy XCOORDH ; 2
|
||||||
lda YCOORDL ; 2
|
lda YCOORDL ; 2 ; y coord in A
|
||||||
jsr HPLOT0 ; 3
|
jsr HPLOT0 ; 3
|
||||||
|
|
||||||
; inc FRAMEL ; 2
|
; flip palettes when color at $4200 (roughly 0,32 on screen)
|
||||||
; bne no_frame ; 2
|
; changes. This is sort of arbitrary, but having a 16-bit counter
|
||||||
; inc FRAMEH ; 2
|
; takes too many instructions and Apple II doesn't have a
|
||||||
;no_frame:
|
; programmable timer
|
||||||
; lda smc
|
|
||||||
; eor #$3
|
|
||||||
; sta smc
|
|
||||||
|
|
||||||
|
lda $4200 ; 3 ; check colors at 0,32
|
||||||
|
bmi seasons_forever ; 2
|
||||||
|
|
||||||
|
; flip between blue/purple and orange/green palettes
|
||||||
|
; with self-modifying code. 2 bytes are saved when
|
||||||
|
; we execute in the zero page
|
||||||
|
lda smc+1 ; 2
|
||||||
|
eor #$3 ; 2
|
||||||
|
sta smc+1 ; 2
|
||||||
|
|
||||||
|
; the adc/sbc in HPLOT0 leave the V flag clear
|
||||||
|
; so we can save a byte (over jump) by using bvc
|
||||||
|
bvc seasons_forever ; 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; Thankfully not necessary for a 128B demo?
|
||||||
; lda KEYPRESS ; 3 ; see if key pressed
|
; lda KEYPRESS ; 3 ; see if key pressed
|
||||||
; bpl autumn_forever ; 2 ; loop if not
|
; bpl seasons_forever ; 2 ; loop if not
|
||||||
|
; bit KEYRESET
|
||||||
bvc autumn_forever ; 2 ; smaller than jump
|
|
||||||
; V flag clear because
|
|
||||||
; the adc/sbc in HPOSN
|
|
||||||
; never overflows?
|
|
||||||
|
|
||||||
|
|
||||||
exit_to_prompt:
|
exit_to_prompt:
|
||||||
; jsr TEXT ; 3 ; return to text mode
|
; jsr TEXT ; 3 ; return to text mode
|
||||||
; jmp $3D0 ; 3 ; return to Applesoft prompt
|
; jmp $3D0 ; 3 ; return to Applesoft prompt
|
||||||
|
|
||||||
|
|
||||||
|
;========================================================
|
||||||
|
;========================================================
|
||||||
|
; color lookup tables used when testing
|
||||||
|
; some of them look better, but make the executable bigger
|
||||||
|
; than the AND/OR version of setting colors
|
||||||
|
|
||||||
|
|
||||||
; Apple II Hi-Res Colors
|
; Apple II Hi-Res Colors
|
||||||
; It's all NTSC artifacting and complex
|
; It's all NTSC artifacting and complex
|
||||||
; There can be color-clash at a 3.5 pixel level
|
; There can be color-clash at a 3.5 pixel level
|
||||||
|
@ -221,54 +243,27 @@ exit_to_prompt:
|
||||||
|
|
||||||
color_lookup:
|
color_lookup:
|
||||||
|
|
||||||
; my default, colorful palette
|
; colorful palette
|
||||||
; .byte $01,$01,$02,$03, $05,$05,$06,$07
|
; .byte $01,$01,$02,$03, $05,$05,$06,$07
|
||||||
|
|
||||||
; or 10
|
|
||||||
; 0000 0010 2 2
|
|
||||||
; 0001 0011 3 2
|
|
||||||
; 0010 0010 2 3
|
|
||||||
; 0011 0011 3 6
|
|
||||||
; 0100 0110 6 6
|
|
||||||
; 0101 0111 7 6
|
|
||||||
; 0110 0110 6 2
|
|
||||||
; 0111 0111 7 7
|
|
||||||
|
|
||||||
; want eor1
|
|
||||||
; 0000 0010 0001
|
|
||||||
; 0001 0010 0000
|
|
||||||
; 0010 0011 0011
|
|
||||||
; 0011 0110 0010
|
|
||||||
; 0100 0110 0101
|
|
||||||
; 0101 0110 0100
|
|
||||||
; 0110 0010 0111
|
|
||||||
; 0111 0111 0110
|
|
||||||
|
|
||||||
; blue and purple palette
|
; blue and purple palette
|
||||||
; .byte $02,$02,$03,$06, $06,$06,$02,$07
|
; .byte $02,$02,$03,$06, $06,$06,$02,$07
|
||||||
|
|
||||||
; qkumba ora2 white/blue/purple
|
; qkumba ora2 white/blue/purple
|
||||||
; .byte $02,$03,$02,$03, $06,$07,$06,$07
|
; .byte $02,$03,$02,$03, $06,$07,$06,$07
|
||||||
|
|
||||||
|
; ora1 white/orange/green
|
||||||
|
; .byte $01,$01,$03,$03, $05,$05,$07,$07
|
||||||
|
|
||||||
|
; better mixed orange/green/white
|
||||||
|
; .byte $01,$03,$03,$03, $05,$05,$07,$07
|
||||||
|
|
||||||
; orange and green palette
|
; orange and green palette
|
||||||
; .byte $01,$01,$03,$05, $05,$05,$01,$07
|
; .byte $01,$01,$03,$05, $05,$05,$01,$07
|
||||||
|
|
||||||
; .byte $01,$03,$01,$03, $05,$07,$05,$07
|
; .byte $01,$00,$01,$00, $05,$00,$05,$00
|
||||||
; .byte $01,$01,$03,$03, $05,$05,$07,$07
|
|
||||||
|
|
||||||
|
|
||||||
; "Leaf" Locations
|
; "Leaf" Locations
|
||||||
; TOP-LEFT ?? CENTER-TOP TOP-RIGHT LEFT ?? CENTER-BOTTOM ??
|
; TOP-LEFT ?? CENTER-TOP TOP-RIGHT LEFT ?? CENTER-BOTTOM ??
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; FANCY OPENER
|
|
||||||
|
|
||||||
; SET ADDRESS in 1a/Ab
|
|
||||||
; lda #xx ; 2
|
|
||||||
; sta 1a ; 2
|
|
||||||
; lda #xx ; 2
|
|
||||||
; sta 1b ; 2
|
|
||||||
; lda angle ; 2
|
|
||||||
; jsr xdraw1 ; 3
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user