mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-25 09:29:35 +00:00
lovebyte2023: some lovebyte nonsense
This commit is contained in:
parent
cb06209b80
commit
75bb600623
46
demos/lovebyte2023/agony_32/Makefile
Normal file
46
demos/lovebyte2023/agony_32/Makefile
Normal file
|
@ -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: agony17.dsk
|
||||
|
||||
agony17.dsk: HELLO AGONY17
|
||||
cp $(EMPTYDISK) agony17.dsk
|
||||
$(DOS33) -y agony17.dsk SAVE A HELLO
|
||||
$(DOS33) -y agony17.dsk BSAVE -a 0xE7 AGONY17
|
||||
|
||||
###
|
||||
|
||||
submit: agony17.zip
|
||||
|
||||
agony1732.zip: AGONY17 agony17.s file_id.diz agony17.dsk
|
||||
mkdir -p lovebyte2022_agony17
|
||||
cp AGONY17 ./lovebyte2022_agony17
|
||||
cp agony17.s ./lovebyte2022_agony17
|
||||
cp file_id.diz ./lovebyte2022_agony17
|
||||
cp agony17.dsk ./lovebyte2022_agony17
|
||||
cp agony17_720p.mp4 ./lovebyte2022_agony17
|
||||
zip -r agony1732.zip lovebyte2022_agony17
|
||||
|
||||
####
|
||||
|
||||
|
||||
####
|
||||
|
||||
HELLO: hello.bas
|
||||
$(TOKENIZE) < hello.bas > HELLO
|
||||
|
||||
###
|
||||
|
||||
AGONY17: agony17.o
|
||||
ld65 -o AGONY17 agony17.o -C ./apple2_e7_zp.inc
|
||||
|
||||
agony17.o: agony17.s
|
||||
ca65 -o agony17.o agony17.s -l agony17.lst
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst HELLO AGONY17 *.zip
|
50
demos/lovebyte2023/agony_32/agony17.s
Normal file
50
demos/lovebyte2023/agony_32/agony17.s
Normal file
|
@ -0,0 +1,50 @@
|
|||
; 17B weird line pattern
|
||||
|
||||
; Really wanted this to be 16B :(
|
||||
|
||||
; zero page locations
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
HGR_SCALE = $E7
|
||||
HGR_COLLISIONS = $EA
|
||||
|
||||
; ROM locations
|
||||
HGR2 = $F3D8
|
||||
HPOSN = $F411
|
||||
XDRAW0 = $F65D
|
||||
XDRAW1 = $F661
|
||||
|
||||
|
||||
agony17:
|
||||
|
||||
; 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 HPOSN ; 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:
|
||||
|
||||
ldy #$e8 ; point to shape table value of $04,$00
|
||||
ldx #$0e ; in ROM
|
||||
|
||||
|
||||
lda #2 ; ROT=2
|
||||
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
|
||||
|
7
demos/lovebyte2023/agony_32/file_id.diz
Normal file
7
demos/lovebyte2023/agony_32/file_id.diz
Normal file
|
@ -0,0 +1,7 @@
|
|||
Agony17
|
||||
-
|
||||
Hi-res Xdraw Pattern
|
||||
17-byte Intro for Apple II, Lovebyte 2023
|
||||
by Deater / dSr
|
||||
|
||||
Really wanted to fit this in 16-bytes, but alas
|
9
demos/lovebyte2023/agony_32/hello.bas
Normal file
9
demos/lovebyte2023/agony_32/hello.bas
Normal file
|
@ -0,0 +1,9 @@
|
|||
5 HOME
|
||||
10 PRINT " AGONY17 -- A 17 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 AGONY17'"
|
||||
30 GET A$
|
||||
35 PRINT
|
||||
40 PRINT CHR$(4)"BRUN AGONY17"
|
3
demos/lovebyte2023/agony_32/monitor.txt
Normal file
3
demos/lovebyte2023/agony_32/monitor.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
CALL -151
|
||||
E7: 20 d8 f3 20 11 f4 a0 e8 a2 0e a9 02 20 5d f6 f0 f5
|
||||
E7G
|
46
demos/lovebyte2023/pied_64/Makefile
Normal file
46
demos/lovebyte2023/pied_64/Makefile
Normal file
|
@ -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: pied64.dsk
|
||||
|
||||
pied64.dsk: HELLO PIED57
|
||||
cp $(EMPTYDISK) pied64.dsk
|
||||
$(DOS33) -y pied64.dsk SAVE A HELLO
|
||||
$(DOS33) -y pied64.dsk BSAVE -a 0x80 PIED57
|
||||
|
||||
###
|
||||
|
||||
submit: pied.zip
|
||||
|
||||
pied32.zip: PIED57 pied57.s file_id.diz pied64.dsk
|
||||
mkdir -p lovebyte2022_pied
|
||||
cp PIED57 ./lovebyte2022_pied
|
||||
cp pied57.s ./lovebyte2022_pied
|
||||
cp file_id.diz ./lovebyte2022_pied
|
||||
cp pied64.dsk ./lovebyte2022_pied
|
||||
cp pied_720p.mp4 ./lovebyte2022_pied
|
||||
zip -r pied32.zip lovebyte2022_pied
|
||||
|
||||
####
|
||||
|
||||
|
||||
####
|
||||
|
||||
HELLO: hello.bas
|
||||
$(TOKENIZE) < hello.bas > HELLO
|
||||
|
||||
###
|
||||
|
||||
PIED57: pied57.o
|
||||
ld65 -o PIED57 pied57.o -C ./apple2_80_zp.inc
|
||||
|
||||
pied57.o: pied57.s
|
||||
ca65 -o pied57.o pied57.s -l pied57.lst
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst HELLO PIED57 *.zip
|
12
demos/lovebyte2023/pied_64/apple2_80_zp.inc
Normal file
12
demos/lovebyte2023/pied_64/apple2_80_zp.inc
Normal file
|
@ -0,0 +1,12 @@
|
|||
MEMORY {
|
||||
ZP: start = $80, size = $80, type = rw;
|
||||
RAM: start = $90, 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;
|
||||
}
|
6
demos/lovebyte2023/pied_64/file_id.diz
Normal file
6
demos/lovebyte2023/pied_64/file_id.diz
Normal file
|
@ -0,0 +1,6 @@
|
|||
Pied57
|
||||
-
|
||||
Lo-res scrolling colors
|
||||
57-byte Intro for Apple II, Lovebyte 2023
|
||||
by Deater / dSr
|
||||
|
9
demos/lovebyte2023/pied_64/hello.bas
Normal file
9
demos/lovebyte2023/pied_64/hello.bas
Normal file
|
@ -0,0 +1,9 @@
|
|||
5 HOME
|
||||
10 PRINT " PIED57 -- A 57 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 PIED57'"
|
||||
30 GET A$
|
||||
35 PRINT
|
||||
40 PRINT CHR$(4)"BRUN PIED57"
|
100
demos/lovebyte2023/pied_64/pied57.s
Normal file
100
demos/lovebyte2023/pied_64/pied57.s
Normal file
|
@ -0,0 +1,100 @@
|
|||
; scrolling boxes (62 bytes)
|
||||
|
||||
; by deater (Vince Weaver) <vince@deater.net>
|
||||
|
||||
; Lovebyte 2023
|
||||
|
||||
; Zero Page
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
|
||||
X2 = $FB
|
||||
FRAME = $FC
|
||||
PAGE = $FD
|
||||
|
||||
; Soft Switches
|
||||
FULLGR = $C052 ; Full screen, no text
|
||||
PAGE1 = $C054 ; Page1
|
||||
;PAGE2 = $C055 ; Page2
|
||||
LORES = $C056 ; Enable LORES graphics
|
||||
|
||||
; ROM routines
|
||||
|
||||
HGR2 = $F3D8
|
||||
GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear)
|
||||
|
||||
SETGR = $FB40
|
||||
|
||||
.zeropage
|
||||
.globalzp page_smc
|
||||
|
||||
boxes:
|
||||
|
||||
;===================
|
||||
; init screen
|
||||
|
||||
jsr HGR2 ; set hires graphics
|
||||
; full screen, page2
|
||||
; A=0, Y=0
|
||||
|
||||
bit LORES ; switch to lores
|
||||
|
||||
boxes_forever:
|
||||
|
||||
inc FRAME ; increment frame
|
||||
|
||||
ldx #23 ; YPos in X (0..48)
|
||||
|
||||
; flip page
|
||||
|
||||
lda page_smc+1
|
||||
pha
|
||||
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
lda PAGE1,Y
|
||||
|
||||
pla
|
||||
|
||||
eor #$4
|
||||
sta page_smc+1
|
||||
|
||||
yloop:
|
||||
txa
|
||||
jsr GBASCALC ; get graphics line in GBASL/H
|
||||
; YPOS/2 in A, C clear after
|
||||
|
||||
lda GBASH ; adjust for page flip
|
||||
page_smc:
|
||||
adc #0 ; start at page0
|
||||
sta GBASH
|
||||
|
||||
ldy #39 ; Xpos: 0..39
|
||||
xloop:
|
||||
|
||||
; calculate color for each X
|
||||
|
||||
; color = (XX-FRAME)^(A)
|
||||
|
||||
sec ; subtract frame from Xpos in Y
|
||||
tya
|
||||
sbc FRAME
|
||||
sta X2
|
||||
|
||||
txa
|
||||
|
||||
and #$FC ; add border?
|
||||
|
||||
eor X2 ; color in A
|
||||
|
||||
sta (GBASL),Y ; plot pixel
|
||||
|
||||
dey ; count down Xpos
|
||||
bpl xloop ; loop until done
|
||||
|
||||
dex ; count down YPos
|
||||
bpl yloop ; loop until done
|
||||
|
||||
bmi boxes_forever ; continue
|
||||
|
|
@ -8,11 +8,12 @@ TOKENIZE = ../../../utils/asoft_basic-utils/tokenize_asoft
|
|||
|
||||
all: paralax.dsk
|
||||
|
||||
paralax.dsk: HELLO BOXES BOXES_BOT LARGE LARGE_BOT PAR PAR_BOT
|
||||
paralax.dsk: HELLO BOXES BOXES_BOT LARGE LARGE_BOT PAR PAR_BOT BOXES_TINY
|
||||
cp $(EMPTY_DISK) paralax.dsk
|
||||
$(DOS33) -y paralax.dsk SAVE A HELLO
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0xc00 BOXES
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0x3B7 BOXES_BOT
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0x80 BOXES_TINY
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0xc00 LARGE
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0x386 LARGE_BOT
|
||||
$(DOS33) -y paralax.dsk BSAVE -a 0xc00 PAR
|
||||
|
@ -28,6 +29,14 @@ boxes.o: boxes.s
|
|||
|
||||
###
|
||||
|
||||
BOXES_TINY: boxes_tiny.o
|
||||
ld65 -o BOXES_TINY boxes_tiny.o -C $(LINKER_DIR)/apple2_80_zp.inc
|
||||
|
||||
boxes_tiny.o: boxes_tiny.s
|
||||
ca65 -o boxes_tiny.o boxes_tiny.s -l boxes_tiny.lst
|
||||
|
||||
###
|
||||
|
||||
LARGE: large.o
|
||||
ld65 -o LARGE large.o -C $(LINKER_DIR)/apple2_c00.inc
|
||||
|
||||
|
@ -80,5 +89,5 @@ HELLO: hello.bas
|
|||
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst HELLO BOXES BOXES_BOT LARGE LARGE_BOT PAR PAR_BOT
|
||||
rm -f *~ *.o *.lst HELLO BOXES BOXES_BOT LARGE LARGE_BOT PAR PAR_BOT BOXES_TINY
|
||||
|
||||
|
|
100
graphics/gr/parallax/boxes_tiny.s
Normal file
100
graphics/gr/parallax/boxes_tiny.s
Normal file
|
@ -0,0 +1,100 @@
|
|||
; scrolling boxes (62 bytes)
|
||||
|
||||
; by deater (Vince Weaver) <vince@deater.net>
|
||||
|
||||
; Lovebyte 2023
|
||||
|
||||
; Zero Page
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
|
||||
X2 = $FB
|
||||
FRAME = $FC
|
||||
PAGE = $FD
|
||||
|
||||
; Soft Switches
|
||||
FULLGR = $C052 ; Full screen, no text
|
||||
PAGE1 = $C054 ; Page1
|
||||
;PAGE2 = $C055 ; Page2
|
||||
LORES = $C056 ; Enable LORES graphics
|
||||
|
||||
; ROM routines
|
||||
|
||||
HGR2 = $F3D8
|
||||
GBASCALC= $F847 ;; take Y-coord/2 in A, put address in GBASL/H ( a trashed, C clear)
|
||||
|
||||
SETGR = $FB40
|
||||
|
||||
.zeropage
|
||||
.globalzp page_smc
|
||||
|
||||
boxes:
|
||||
|
||||
;===================
|
||||
; init screen
|
||||
|
||||
jsr HGR2 ; set hires graphics
|
||||
; full screen, page2
|
||||
; A=0, Y=0
|
||||
|
||||
bit LORES ; switch to lores
|
||||
|
||||
boxes_forever:
|
||||
|
||||
inc FRAME ; increment frame
|
||||
|
||||
ldx #23 ; YPos in X (0..48)
|
||||
|
||||
; flip page
|
||||
|
||||
lda page_smc+1
|
||||
pha
|
||||
|
||||
lsr
|
||||
lsr
|
||||
tay
|
||||
lda PAGE1,Y
|
||||
|
||||
pla
|
||||
|
||||
eor #$4
|
||||
sta page_smc+1
|
||||
|
||||
yloop:
|
||||
txa
|
||||
jsr GBASCALC ; get graphics line in GBASL/H
|
||||
; YPOS/2 in A, C clear after
|
||||
|
||||
lda GBASH ; adjust for page flip
|
||||
page_smc:
|
||||
adc #0 ; start at page0
|
||||
sta GBASH
|
||||
|
||||
ldy #39 ; Xpos: 0..39
|
||||
xloop:
|
||||
|
||||
; calculate color for each X
|
||||
|
||||
; color = (XX-FRAME)^(A)
|
||||
|
||||
sec ; subtract frame from Xpos in Y
|
||||
tya
|
||||
sbc FRAME
|
||||
sta X2
|
||||
|
||||
txa
|
||||
|
||||
and #$FC ; add border?
|
||||
|
||||
eor X2 ; color in A
|
||||
|
||||
sta (GBASL),Y ; plot pixel
|
||||
|
||||
dey ; count down Xpos
|
||||
bpl xloop ; loop until done
|
||||
|
||||
dex ; count down YPos
|
||||
bpl yloop ; loop until done
|
||||
|
||||
bmi boxes_forever ; continue
|
||||
|
|
@ -9,7 +9,7 @@ all: shape_table.dsk
|
|||
|
||||
shape_table.dsk: HELLO APPLE.BAS GEAR.BAS \
|
||||
APPLE2 GEAR LINE32 PATTERN PATTERN_LOGO SQUARE_WAVE \
|
||||
LINE16 HERRING16 STRIPE17 COOL_WAVE TEETH32 TICK_TOCK
|
||||
AGONY17 HERRING16 STRIPE17 COOL_WAVE TEETH32 TICK_TOCK
|
||||
cp $(EMPTYDISK) shape_table.dsk
|
||||
$(DOS33) -y shape_table.dsk SAVE A HELLO
|
||||
$(DOS33) -y shape_table.dsk SAVE A GEAR.BAS
|
||||
|
@ -17,7 +17,7 @@ shape_table.dsk: HELLO APPLE.BAS GEAR.BAS \
|
|||
$(DOS33) -y shape_table.dsk BSAVE -a 0x3f5 GEAR
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xc00 APPLE2
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xc00 LINE32
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xe7 LINE16
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xe7 AGONY17
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xe7 STRIPE17
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xc00 HERRING16
|
||||
$(DOS33) -y shape_table.dsk BSAVE -a 0xc00 PATTERN
|
||||
|
@ -106,11 +106,11 @@ line32.o: line32.s
|
|||
|
||||
###
|
||||
|
||||
LINE16: line16.o
|
||||
ld65 -o LINE16 line16.o -C $(LINKERSCRIPTS)/apple2_e7_zp.inc
|
||||
AGONY17: agony17.o
|
||||
ld65 -o AGONY17 agony17.o -C $(LINKERSCRIPTS)/apple2_e7_zp.inc
|
||||
|
||||
line16.o: line16.s
|
||||
ca65 -o line16.o line16.s -l line16.lst
|
||||
agony17.o: agony17.s
|
||||
ca65 -o agony17.o agony17.s -l agony17.lst
|
||||
|
||||
###
|
||||
|
||||
|
@ -152,4 +152,4 @@ pattern_logo.o: pattern_logo.s
|
|||
clean:
|
||||
rm -f *~ *.o *.lst HELLO GEAR.BAS GEAR PATTERN APPLE.BAS \
|
||||
PATTERN_LOGO COOL_WAVE SQUARE_WAVE TEETH32 TICK_TOCK \
|
||||
HERRING16 STRIPE17 LINE16 LINE32 APPLE2
|
||||
HERRING16 STRIPE17 AGONY17 LINE32 APPLE2
|
||||
|
|
50
graphics/hgr/shape_table/agony17.s
Normal file
50
graphics/hgr/shape_table/agony17.s
Normal file
|
@ -0,0 +1,50 @@
|
|||
; 17B weird line pattern
|
||||
|
||||
; Really wanted this to be 16B :(
|
||||
|
||||
; zero page locations
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
HGR_SCALE = $E7
|
||||
HGR_COLLISIONS = $EA
|
||||
|
||||
; ROM locations
|
||||
HGR2 = $F3D8
|
||||
HPOSN = $F411
|
||||
XDRAW0 = $F65D
|
||||
XDRAW1 = $F661
|
||||
|
||||
|
||||
agony17:
|
||||
|
||||
; 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 HPOSN ; 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:
|
||||
|
||||
ldy #$e8 ; point to shape table value of $04,$00
|
||||
ldx #$0e ; in ROM
|
||||
|
||||
|
||||
lda #2 ; ROT=2
|
||||
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
|
||||
|
|
@ -1,114 +0,0 @@
|
|||
; 16B weird line pattern
|
||||
|
||||
|
||||
; note this depends on GBASL/GBASH and other values set by HPOSN
|
||||
; being vaguely reasonable at boot(?) could vary by system
|
||||
; it also means some garbage on screen for first XDRAW but
|
||||
; maybe that's OK as otherwise we are 18 bytes
|
||||
|
||||
; zero page locations
|
||||
HGR_SHAPE = $1A
|
||||
HGR_SHAPE2 = $1B
|
||||
HGR_BITS = $1C
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
A5H = $45
|
||||
XREG = $46
|
||||
YREG = $47
|
||||
; C0-CF should be clear
|
||||
; D0-DF?? D0-D5 = HGR scratch?
|
||||
HGR_DX = $D0 ; HGLIN
|
||||
HGR_DX2 = $D1 ; HGLIN
|
||||
HGR_DY = $D2 ; HGLIN
|
||||
HGR_QUADRANT = $D3
|
||||
HGR_E = $D4
|
||||
HGR_E2 = $D5
|
||||
HGR_X = $E0
|
||||
HGR_X2 = $E1
|
||||
HGR_Y = $E2
|
||||
HGR_COLOR = $E4
|
||||
HGR_HORIZ = $E5
|
||||
HGR_SCALE = $E7
|
||||
HGR_SHAPE_TABLE = $E8
|
||||
HGR_SHAPE_TABLE2= $E9
|
||||
HGR_COLLISIONS = $EA
|
||||
HGR_ROTATION = $F9
|
||||
FRAME = $FC
|
||||
XPOS = $FD
|
||||
YPOS = $FF
|
||||
|
||||
; ROM calls
|
||||
HGR2 = $F3D8
|
||||
HGR = $F3E2
|
||||
HPOSN = $F411
|
||||
XDRAW0 = $F65D
|
||||
XDRAW1 = $F661
|
||||
RESTORE = $FF3F
|
||||
|
||||
|
||||
tiny_xdraw:
|
||||
|
||||
; .byte $0A ; scale at $E7 (also harmless asl)
|
||||
|
||||
jsr HGR2 ; Hi-res, full screen ; 3
|
||||
; Y=0, A=0 after this call
|
||||
|
||||
; lda #10
|
||||
; sta HGR_SCALE
|
||||
|
||||
; A and Y are 0 here.
|
||||
; X is left behind by the boot process?
|
||||
|
||||
|
||||
; ldy #0
|
||||
; ldx #100
|
||||
; lda #100
|
||||
|
||||
; we really have to call this, otherwise it won't run
|
||||
; on some real hardware
|
||||
|
||||
|
||||
; getting GBASH between $40-$5F might actually be enough
|
||||
|
||||
|
||||
; dey
|
||||
; tya
|
||||
|
||||
; lda #$40
|
||||
; sta GBASH
|
||||
|
||||
jsr HPOSN ; 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:
|
||||
|
||||
; ldx #<shape_table ; point to bottom byte of shape address
|
||||
; ldy #>shape_table ; point to top byte of shape address
|
||||
|
||||
ldy #$e8
|
||||
ldx #$0e
|
||||
|
||||
; tay
|
||||
|
||||
; ROT in A
|
||||
|
||||
; this will be 0 2nd time through loop, arbitrary otherwise
|
||||
lda #2 ; ROT=1
|
||||
jsr XDRAW0 ; XDRAW 1 AT X,Y
|
||||
; Both A and X are 0 at exit
|
||||
; Z flag set on exit
|
||||
; Y varies
|
||||
|
||||
; jsr $F666 ; rot in X, a=0
|
||||
; inx
|
||||
|
||||
; inx ; X=1
|
||||
; txa ; A=1
|
||||
; tay ; Y=1
|
||||
|
||||
beq tiny_loop ; bra
|
||||
|
||||
; be sure this is at address $0101, easy to set address
|
||||
;shape_table:
|
||||
; .byte $04,$00
|
Loading…
Reference in New Issue
Block a user