mirror of
https://github.com/deater/dos33fsprogs.git
synced 2026-04-19 17:16:59 +00:00
hgr: animations: work on animations
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
include ../../../../../Makefile.inc
|
||||
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
|
||||
PNG_TO_HGR = ../../../../../utils/hgr-utils/png2hgr
|
||||
PNG_TO_DHGR = ../../../../../utils/hgr-utils/png2dhgr
|
||||
PNG_TO_DHGR_RAW = ../../../../../utils/hgr-utils/png2dhgr_raw
|
||||
PNG_TO_DHGR4 = ../../../../../utils/hgr-utils/png2dhgr4
|
||||
PNG2GR = ../../../../../utils/gr-utils/png2gr
|
||||
HGR_SPRITE = ../../../../../utils/hgr-utils/hgr_make_sprite
|
||||
LINKER_SCRIPTS = ../../../../../linker_scripts/
|
||||
PNG_TO_HGR_DIFF = ../../../../../utils/hgr-utils/png2hgr_diff
|
||||
|
||||
all: \
|
||||
horse00.bin.zx02 horse00.aux.zx02 \
|
||||
horse01.bin.zx02 horse01.aux.zx02
|
||||
|
||||
|
||||
####
|
||||
|
||||
slots1_slots3_diff.inc: slots1.png slots3.png
|
||||
$(PNG_TO_HGR_DIFF) slots1.png slots3.png > slots1_slots3_diff.inc
|
||||
|
||||
slots3_slots5_diff.inc: slots3.png slots5.png
|
||||
$(PNG_TO_HGR_DIFF) slots3.png slots5.png > slots3_slots5_diff.inc
|
||||
|
||||
slots5_slots7_diff.inc: slots5.png slots7.png
|
||||
$(PNG_TO_HGR_DIFF) slots5.png slots7.png > slots5_slots7_diff.inc
|
||||
|
||||
slots7_slots2_diff.inc: slots7.png slots2.png
|
||||
$(PNG_TO_HGR_DIFF) slots7.png slots2.png > slots7_slots2_diff.inc
|
||||
|
||||
|
||||
slots2_slots4_diff.inc: slots2.png slots4.png
|
||||
$(PNG_TO_HGR_DIFF) slots2.png slots4.png > slots2_slots4_diff.inc
|
||||
|
||||
slots4_slots6_diff.inc: slots4.png slots6.png
|
||||
$(PNG_TO_HGR_DIFF) slots4.png slots6.png > slots4_slots6_diff.inc
|
||||
|
||||
slots6_slots1_diff.inc: slots6.png slots1.png
|
||||
$(PNG_TO_HGR_DIFF) slots6.png slots1.png > slots6_slots1_diff.inc
|
||||
|
||||
|
||||
###
|
||||
|
||||
horse00.aux.zx02: horse00.AUX
|
||||
$(ZX02) horse00.AUX horse00.aux.zx02
|
||||
|
||||
horse00.AUX: horse00.png
|
||||
$(PNG_TO_DHGR) horse00.png horse00
|
||||
|
||||
horse00.bin.zx02: horse00.BIN
|
||||
$(ZX02) horse00.BIN horse00.bin.zx02
|
||||
|
||||
horse00.BIN: horse00.png
|
||||
$(PNG_TO_DHGR) horse00.png horse00
|
||||
|
||||
###
|
||||
|
||||
horse01.aux.zx02: horse01.AUX
|
||||
$(ZX02) horse01.AUX horse01.aux.zx02
|
||||
|
||||
horse01.AUX: horse01.png
|
||||
$(PNG_TO_DHGR) horse01.png horse01
|
||||
|
||||
horse01.bin.zx02: horse01.BIN
|
||||
$(ZX02) horse01.BIN horse01.bin.zx02
|
||||
|
||||
horse01.BIN: horse01.png
|
||||
$(PNG_TO_DHGR) horse01.png horse01
|
||||
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.zx02 *.lst *.o *.hgr *_diff.inc
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
@@ -0,0 +1,114 @@
|
||||
include ../../../../Makefile.inc
|
||||
|
||||
DOS33 = ../../../../utils/dos33fs-utils/dos33
|
||||
DOS33_RAW = ../../../../utils/dos33fs-utils/dos33_raw
|
||||
EMPTY_DISK = ../../../../empty_disk/empty.dsk
|
||||
TOKENIZE = ../../../../utils/asoft_basic-utils/tokenize_asoft
|
||||
LINKER_SCRIPTS = ../../../../linker_scripts/
|
||||
|
||||
all: farm.dsk
|
||||
|
||||
farm.dsk: QBOOT QLOAD \
|
||||
qload.inc \
|
||||
BG_LOAD \
|
||||
ANIMATION
|
||||
cp $(EMPTY_DISK) farm.dsk
|
||||
$(DOS33_RAW) farm.dsk 0 0 QBOOT 0 1
|
||||
$(DOS33_RAW) farm.dsk 0 2 QBOOT 1 1
|
||||
$(DOS33_RAW) farm.dsk 0 4 QBOOT 2 1
|
||||
$(DOS33_RAW) farm.dsk 1 0 QLOAD 0 0
|
||||
$(DOS33_RAW) farm.dsk 2 0 BG_LOAD 0 0
|
||||
$(DOS33_RAW) farm.dsk 5 0 ANIMATION 0 0
|
||||
|
||||
####
|
||||
|
||||
BG_LOAD: bg_load.o
|
||||
ld65 -o BG_LOAD bg_load.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
bg_load.o: bg_load.s \
|
||||
zp.inc ../hardware.inc qload.inc common_defines.inc \
|
||||
graphics/a2_gentfish_farm01.hgr.zx02 \
|
||||
graphics/a2_gentfish_farm02.hgr.zx02
|
||||
ca65 -o bg_load.o bg_load.s -l bg_load.lst
|
||||
|
||||
|
||||
####
|
||||
|
||||
ANIMATION: animation.o
|
||||
ld65 -o ANIMATION animation.o -C $(LINKER_SCRIPTS)/apple2_6000.inc
|
||||
|
||||
animation.o: animation.s \
|
||||
zp.inc ../hardware.inc qload.inc common_defines.inc \
|
||||
graphics/a2_gentfish_farm01.hgr.zx02 \
|
||||
graphics/a2_gentfish_farm02.hgr.zx02
|
||||
ca65 -o animation.o animation.s -l animation.lst
|
||||
|
||||
####
|
||||
|
||||
QBOOT: qboot_sector.o
|
||||
ld65 -o QBOOT qboot_sector.o -C $(LINKER_SCRIPTS)/apple2_800.inc
|
||||
|
||||
qboot_sector.o: qboot_sector.s qboot_stage2.s
|
||||
ca65 -o qboot_sector.o qboot_sector.s -l qboot_sector.lst
|
||||
|
||||
|
||||
####
|
||||
|
||||
QLOAD: qload.o
|
||||
ld65 -o QLOAD qload.o -C $(LINKER_SCRIPTS)/apple2_1200.inc
|
||||
|
||||
qload.o: zp.inc ../hardware.inc common_defines.inc qload.s \
|
||||
../gr_offsets.s \
|
||||
../wait.s ../wait_a_bit.s \
|
||||
../gr_fast_clear.s \
|
||||
../text_print.s start.s \
|
||||
../hgr_table.s \
|
||||
../hgr_page_flip.s \
|
||||
../hgr_clear_screen.s
|
||||
ca65 -o qload.o qload.s -l qload.lst
|
||||
|
||||
####
|
||||
|
||||
qload.inc: ../generate_common QLOAD
|
||||
../generate_common -a 0x1200 -s load_file qload.lst > qload.inc
|
||||
../generate_common -a 0x1200 -s clear_all qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s clear_all_color qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s set_normal qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s set_inverse qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s wait qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s wait_a_bit qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s wait_50ms qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s move_and_print qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s clear_bottom qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s clear_bottoms qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s clear_screens qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s clear_top qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s zx02_full_decomp qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s zx_src_h qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s zx_src_l qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s wait_until_keypress qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s wait_50xms qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s hgr_page_flip qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s gr_offsets qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s hgr_clear_screen qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s hgr_page1_clearscreen qload.lst >> qload.inc
|
||||
../generate_common -a 0x1200 -s hgr_page2_clearscreen qload.lst >> qload.inc
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
generate_common: generate_common.o
|
||||
$(CC) $(LFLAGS) -o generate_common generate_common.o
|
||||
|
||||
generate_common.o: generate_common.c
|
||||
$(CC) $(CFLAGS) -c generate_common.c
|
||||
|
||||
###
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *~ *.o *.lst ANIMATION QBOOT QLOAD BG_LOAD generate_common
|
||||
rm -f qload.inc qload2.inc
|
||||
|
||||
|
||||
@@ -0,0 +1,321 @@
|
||||
.include "zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "qload.inc"
|
||||
;.include "music.inc"
|
||||
.include "common_defines.inc"
|
||||
|
||||
;=======================================
|
||||
; draw farmtown by gentfish
|
||||
;=======================================
|
||||
|
||||
gentfsh_farm:
|
||||
|
||||
bit KEYRESET ; just to be safe
|
||||
|
||||
;=================================
|
||||
; init vars
|
||||
;=================================
|
||||
|
||||
lda #3
|
||||
sta FRAME_RATE
|
||||
|
||||
;=================================
|
||||
; init graphics
|
||||
;=================================
|
||||
|
||||
bit SET_GR
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
|
||||
bit PAGE2 ; display page1
|
||||
|
||||
|
||||
.if 0
|
||||
;=======================
|
||||
; start music
|
||||
|
||||
lda SOUND_STATUS
|
||||
and #SOUND_MOCKINGBOARD
|
||||
beq no_music
|
||||
|
||||
yes_music:
|
||||
cli
|
||||
no_music:
|
||||
.endif
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
sta WHICH
|
||||
|
||||
animation_loop:
|
||||
|
||||
; draw page1, view page2
|
||||
|
||||
ldx WHICH
|
||||
ldy patches_page1_h,X
|
||||
lda patches_page1_l,X
|
||||
tax
|
||||
|
||||
jsr patch_graphics
|
||||
|
||||
jsr wait_some
|
||||
|
||||
; jsr wait_until_keypress
|
||||
|
||||
jsr hgr_page_flip
|
||||
|
||||
|
||||
; draw page2, view page1
|
||||
|
||||
jsr wait_some
|
||||
|
||||
; jsr wait_until_keypress
|
||||
|
||||
ldx WHICH
|
||||
ldy patches_page2_h,X
|
||||
lda patches_page2_l,X
|
||||
tax
|
||||
|
||||
jsr patch_graphics
|
||||
|
||||
jsr hgr_page_flip
|
||||
|
||||
inc WHICH
|
||||
lda WHICH
|
||||
cmp #24
|
||||
bne no_oflo
|
||||
lda #0 ; wrap at 48
|
||||
sta WHICH
|
||||
no_oflo:
|
||||
;=====================
|
||||
; handle keyboard
|
||||
|
||||
lda KEYPRESS
|
||||
bpl keep_going
|
||||
|
||||
bit KEYRESET
|
||||
|
||||
check_g:
|
||||
cmp #'G'+$80
|
||||
bne check_o
|
||||
|
||||
jsr make_green
|
||||
jmp keep_going
|
||||
|
||||
check_o:
|
||||
cmp #'O'+$80
|
||||
bne check_plus
|
||||
|
||||
jsr make_orange
|
||||
jmp keep_going
|
||||
|
||||
check_plus:
|
||||
cmp #'+'+$80
|
||||
bne check_minus
|
||||
|
||||
inc FRAME_RATE
|
||||
|
||||
jmp keep_going
|
||||
|
||||
check_minus:
|
||||
cmp #'-'+$80
|
||||
bne keep_going
|
||||
|
||||
dec FRAME_RATE ; minimum 0
|
||||
bpl keep_going
|
||||
lda #0
|
||||
sta FRAME_RATE
|
||||
|
||||
beq keep_going ; bra
|
||||
|
||||
|
||||
keep_going:
|
||||
jmp animation_loop
|
||||
|
||||
|
||||
;===================================
|
||||
; wait some losers
|
||||
|
||||
wait_some:
|
||||
|
||||
; lda SOUND_STATUS
|
||||
; and #SOUND_MOCKINGBOARD
|
||||
; bne wait_mockingboard
|
||||
|
||||
wait_nomock:
|
||||
lda FRAME_RATE
|
||||
jmp wait_50ms
|
||||
|
||||
;wait_mockingboard:
|
||||
; lda FRAME_RATE
|
||||
; jmp wait_ticks
|
||||
|
||||
|
||||
.include "../patch_graphics.s"
|
||||
.include "../change_palette.s"
|
||||
|
||||
farm01_farm03_diff: .include "graphics/a2_gentfish_farm01_03_diff.inc"
|
||||
farm03_farm05_diff: .include "graphics/a2_gentfish_farm03_05_diff.inc"
|
||||
farm05_farm07_diff: .include "graphics/a2_gentfish_farm05_07_diff.inc"
|
||||
farm07_farm09_diff: .include "graphics/a2_gentfish_farm07_09_diff.inc"
|
||||
farm09_farm11_diff: .include "graphics/a2_gentfish_farm09_11_diff.inc"
|
||||
farm11_farm13_diff: .include "graphics/a2_gentfish_farm11_13_diff.inc"
|
||||
farm13_farm15_diff: .include "graphics/a2_gentfish_farm13_15_diff.inc"
|
||||
farm15_farm17_diff: .include "graphics/a2_gentfish_farm15_17_diff.inc"
|
||||
farm17_farm19_diff: .include "graphics/a2_gentfish_farm17_19_diff.inc"
|
||||
farm19_farm21_diff: .include "graphics/a2_gentfish_farm19_21_diff.inc"
|
||||
farm21_farm23_diff: .include "graphics/a2_gentfish_farm21_23_diff.inc"
|
||||
farm23_farm25_diff: .include "graphics/a2_gentfish_farm23_25_diff.inc"
|
||||
farm25_farm27_diff: .include "graphics/a2_gentfish_farm25_27_diff.inc"
|
||||
farm27_farm29_diff: .include "graphics/a2_gentfish_farm27_29_diff.inc"
|
||||
farm29_farm31_diff: .include "graphics/a2_gentfish_farm29_31_diff.inc"
|
||||
farm31_farm33_diff: .include "graphics/a2_gentfish_farm31_33_diff.inc"
|
||||
farm33_farm35_diff: .include "graphics/a2_gentfish_farm33_35_diff.inc"
|
||||
farm35_farm37_diff: .include "graphics/a2_gentfish_farm35_37_diff.inc"
|
||||
farm37_farm39_diff: .include "graphics/a2_gentfish_farm37_39_diff.inc"
|
||||
farm39_farm41_diff: .include "graphics/a2_gentfish_farm39_41_diff.inc"
|
||||
farm41_farm43_diff: .include "graphics/a2_gentfish_farm41_43_diff.inc"
|
||||
farm43_farm45_diff: .include "graphics/a2_gentfish_farm43_45_diff.inc"
|
||||
farm45_farm47_diff: .include "graphics/a2_gentfish_farm45_47_diff.inc"
|
||||
farm47_farm01_diff: .include "graphics/a2_gentfish_farm47_01_diff.inc"
|
||||
|
||||
farm02_farm04_diff: .include "graphics/a2_gentfish_farm02_04_diff.inc"
|
||||
farm04_farm06_diff: .include "graphics/a2_gentfish_farm04_06_diff.inc"
|
||||
farm06_farm08_diff: .include "graphics/a2_gentfish_farm06_08_diff.inc"
|
||||
farm08_farm10_diff: .include "graphics/a2_gentfish_farm08_10_diff.inc"
|
||||
farm10_farm12_diff: .include "graphics/a2_gentfish_farm10_12_diff.inc"
|
||||
farm12_farm14_diff: .include "graphics/a2_gentfish_farm12_14_diff.inc"
|
||||
farm14_farm16_diff: .include "graphics/a2_gentfish_farm14_16_diff.inc"
|
||||
farm16_farm18_diff: .include "graphics/a2_gentfish_farm16_18_diff.inc"
|
||||
farm18_farm20_diff: .include "graphics/a2_gentfish_farm18_20_diff.inc"
|
||||
farm20_farm22_diff: .include "graphics/a2_gentfish_farm20_22_diff.inc"
|
||||
farm22_farm24_diff: .include "graphics/a2_gentfish_farm22_24_diff.inc"
|
||||
farm24_farm26_diff: .include "graphics/a2_gentfish_farm24_26_diff.inc"
|
||||
farm26_farm28_diff: .include "graphics/a2_gentfish_farm26_28_diff.inc"
|
||||
farm28_farm30_diff: .include "graphics/a2_gentfish_farm28_30_diff.inc"
|
||||
farm30_farm32_diff: .include "graphics/a2_gentfish_farm30_32_diff.inc"
|
||||
farm32_farm34_diff: .include "graphics/a2_gentfish_farm32_34_diff.inc"
|
||||
farm34_farm36_diff: .include "graphics/a2_gentfish_farm34_36_diff.inc"
|
||||
farm36_farm38_diff: .include "graphics/a2_gentfish_farm36_38_diff.inc"
|
||||
farm38_farm40_diff: .include "graphics/a2_gentfish_farm38_40_diff.inc"
|
||||
farm40_farm42_diff: .include "graphics/a2_gentfish_farm40_42_diff.inc"
|
||||
farm42_farm44_diff: .include "graphics/a2_gentfish_farm42_44_diff.inc"
|
||||
farm44_farm46_diff: .include "graphics/a2_gentfish_farm44_46_diff.inc"
|
||||
farm46_farm48_diff: .include "graphics/a2_gentfish_farm46_48_diff.inc"
|
||||
farm48_farm02_diff: .include "graphics/a2_gentfish_farm48_02_diff.inc"
|
||||
|
||||
|
||||
patches_page1_l:
|
||||
.byte <farm01_farm03_diff
|
||||
.byte <farm03_farm05_diff
|
||||
.byte <farm05_farm07_diff
|
||||
.byte <farm07_farm09_diff
|
||||
.byte <farm09_farm11_diff
|
||||
.byte <farm11_farm13_diff
|
||||
.byte <farm13_farm15_diff
|
||||
.byte <farm15_farm17_diff
|
||||
.byte <farm17_farm19_diff
|
||||
.byte <farm19_farm21_diff
|
||||
.byte <farm21_farm23_diff
|
||||
.byte <farm23_farm25_diff
|
||||
.byte <farm25_farm27_diff
|
||||
.byte <farm27_farm29_diff
|
||||
.byte <farm29_farm31_diff
|
||||
.byte <farm31_farm33_diff
|
||||
.byte <farm33_farm35_diff
|
||||
.byte <farm35_farm37_diff
|
||||
.byte <farm37_farm39_diff
|
||||
.byte <farm39_farm41_diff
|
||||
.byte <farm41_farm43_diff
|
||||
.byte <farm43_farm45_diff
|
||||
.byte <farm45_farm47_diff
|
||||
.byte <farm47_farm01_diff
|
||||
|
||||
|
||||
|
||||
patches_page1_h:
|
||||
.byte >farm01_farm03_diff
|
||||
.byte >farm03_farm05_diff
|
||||
.byte >farm05_farm07_diff
|
||||
.byte >farm07_farm09_diff
|
||||
.byte >farm09_farm11_diff
|
||||
.byte >farm11_farm13_diff
|
||||
.byte >farm13_farm15_diff
|
||||
.byte >farm15_farm17_diff
|
||||
.byte >farm17_farm19_diff
|
||||
.byte >farm19_farm21_diff
|
||||
.byte >farm21_farm23_diff
|
||||
.byte >farm23_farm25_diff
|
||||
.byte >farm25_farm27_diff
|
||||
.byte >farm27_farm29_diff
|
||||
.byte >farm29_farm31_diff
|
||||
.byte >farm31_farm33_diff
|
||||
.byte >farm33_farm35_diff
|
||||
.byte >farm35_farm37_diff
|
||||
.byte >farm37_farm39_diff
|
||||
.byte >farm39_farm41_diff
|
||||
.byte >farm41_farm43_diff
|
||||
.byte >farm43_farm45_diff
|
||||
.byte >farm45_farm47_diff
|
||||
.byte >farm47_farm01_diff
|
||||
|
||||
|
||||
patches_page2_l:
|
||||
.byte <farm02_farm04_diff
|
||||
.byte <farm04_farm06_diff
|
||||
.byte <farm06_farm08_diff
|
||||
.byte <farm08_farm10_diff
|
||||
.byte <farm10_farm12_diff
|
||||
.byte <farm12_farm14_diff
|
||||
.byte <farm14_farm16_diff
|
||||
.byte <farm16_farm18_diff
|
||||
.byte <farm18_farm20_diff
|
||||
.byte <farm20_farm22_diff
|
||||
.byte <farm22_farm24_diff
|
||||
.byte <farm24_farm26_diff
|
||||
.byte <farm26_farm28_diff
|
||||
.byte <farm28_farm30_diff
|
||||
.byte <farm30_farm32_diff
|
||||
.byte <farm32_farm34_diff
|
||||
.byte <farm34_farm36_diff
|
||||
.byte <farm36_farm38_diff
|
||||
.byte <farm38_farm40_diff
|
||||
.byte <farm40_farm42_diff
|
||||
.byte <farm42_farm44_diff
|
||||
.byte <farm44_farm46_diff
|
||||
.byte <farm46_farm48_diff
|
||||
.byte <farm48_farm02_diff
|
||||
|
||||
|
||||
|
||||
patches_page2_h:
|
||||
.byte >farm02_farm04_diff
|
||||
.byte >farm04_farm06_diff
|
||||
.byte >farm06_farm08_diff
|
||||
.byte >farm08_farm10_diff
|
||||
.byte >farm10_farm12_diff
|
||||
.byte >farm12_farm14_diff
|
||||
.byte >farm14_farm16_diff
|
||||
.byte >farm16_farm18_diff
|
||||
.byte >farm18_farm20_diff
|
||||
.byte >farm20_farm22_diff
|
||||
.byte >farm22_farm24_diff
|
||||
.byte >farm24_farm26_diff
|
||||
.byte >farm26_farm28_diff
|
||||
.byte >farm28_farm30_diff
|
||||
.byte >farm30_farm32_diff
|
||||
.byte >farm32_farm34_diff
|
||||
.byte >farm34_farm36_diff
|
||||
.byte >farm36_farm38_diff
|
||||
.byte >farm38_farm40_diff
|
||||
.byte >farm40_farm42_diff
|
||||
.byte >farm42_farm44_diff
|
||||
.byte >farm44_farm46_diff
|
||||
.byte >farm46_farm48_diff
|
||||
.byte >farm48_farm02_diff
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
.include "zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "qload.inc"
|
||||
.include "common_defines.inc"
|
||||
|
||||
;=======================================
|
||||
; load backgrounds from animation
|
||||
;=======================================
|
||||
|
||||
load_bg:
|
||||
|
||||
bit KEYRESET ; just to be safe
|
||||
|
||||
;=================================
|
||||
; init vars
|
||||
;=================================
|
||||
|
||||
|
||||
;===================================
|
||||
; decompress first graphic to page1
|
||||
|
||||
lda #$0
|
||||
sta DRAW_PAGE
|
||||
|
||||
lda #<bg1_graphic
|
||||
sta zx_src_l+1
|
||||
lda #>bg1_graphic
|
||||
sta zx_src_h+1
|
||||
|
||||
lda #$20
|
||||
|
||||
jsr zx02_full_decomp
|
||||
|
||||
|
||||
;====================================
|
||||
; decompress second graphics to page2
|
||||
|
||||
lda #<bg2_graphic
|
||||
sta zx_src_l+1
|
||||
lda #>bg2_graphic
|
||||
sta zx_src_h+1
|
||||
|
||||
lda #$40
|
||||
|
||||
jsr zx02_full_decomp
|
||||
|
||||
rts
|
||||
|
||||
bg1_graphic:
|
||||
.incbin "graphics/a2_gentfish_farm01.hgr.zx02"
|
||||
|
||||
bg2_graphic:
|
||||
.incbin "graphics/a2_gentfish_farm02.hgr.zx02"
|
||||
@@ -0,0 +1,213 @@
|
||||
include ../../../../../Makefile.inc
|
||||
|
||||
ZX02 = ~/research/6502_compression/zx02.git/build/zx02 -f
|
||||
PNG_TO_HGR = ../../../../../utils/hgr-utils/png2hgr
|
||||
PNG_TO_DHGR = ../../../../../utils/hgr-utils/png2dhgr
|
||||
PNG_TO_DHGR_RAW = ../../../../../utils/hgr-utils/png2dhgr_raw
|
||||
PNG_TO_DHGR4 = ../../../../../utils/hgr-utils/png2dhgr4
|
||||
PNG2GR = ../../../../../utils/gr-utils/png2gr
|
||||
HGR_SPRITE = ../../../../../utils/hgr-utils/hgr_make_sprite
|
||||
LINKER_SCRIPTS = ../../../../../linker_scripts/
|
||||
PNG_TO_HGR_DIFF = ../../../../../utils/hgr-utils/png2hgr_diff
|
||||
|
||||
all: \
|
||||
a2_gentfish_farm01.hgr.zx02 \
|
||||
a2_gentfish_farm02.hgr.zx02 \
|
||||
a2_gentfish_farm01_03_diff.inc a2_gentfish_farm03_05_diff.inc \
|
||||
a2_gentfish_farm05_07_diff.inc a2_gentfish_farm07_09_diff.inc \
|
||||
a2_gentfish_farm09_11_diff.inc a2_gentfish_farm11_13_diff.inc \
|
||||
a2_gentfish_farm13_15_diff.inc a2_gentfish_farm15_17_diff.inc \
|
||||
a2_gentfish_farm17_19_diff.inc a2_gentfish_farm19_21_diff.inc \
|
||||
a2_gentfish_farm21_23_diff.inc a2_gentfish_farm23_25_diff.inc \
|
||||
a2_gentfish_farm25_27_diff.inc a2_gentfish_farm27_29_diff.inc \
|
||||
a2_gentfish_farm29_31_diff.inc a2_gentfish_farm31_33_diff.inc \
|
||||
a2_gentfish_farm33_35_diff.inc a2_gentfish_farm35_37_diff.inc \
|
||||
a2_gentfish_farm37_39_diff.inc a2_gentfish_farm39_41_diff.inc \
|
||||
a2_gentfish_farm41_43_diff.inc a2_gentfish_farm43_45_diff.inc \
|
||||
a2_gentfish_farm45_47_diff.inc a2_gentfish_farm47_01_diff.inc \
|
||||
a2_gentfish_farm02_04_diff.inc a2_gentfish_farm04_06_diff.inc \
|
||||
a2_gentfish_farm06_08_diff.inc a2_gentfish_farm08_10_diff.inc \
|
||||
a2_gentfish_farm10_12_diff.inc a2_gentfish_farm12_14_diff.inc \
|
||||
a2_gentfish_farm14_16_diff.inc a2_gentfish_farm16_18_diff.inc \
|
||||
a2_gentfish_farm18_20_diff.inc a2_gentfish_farm20_22_diff.inc \
|
||||
a2_gentfish_farm22_24_diff.inc a2_gentfish_farm24_26_diff.inc \
|
||||
a2_gentfish_farm26_28_diff.inc a2_gentfish_farm28_30_diff.inc \
|
||||
a2_gentfish_farm30_32_diff.inc a2_gentfish_farm32_34_diff.inc \
|
||||
a2_gentfish_farm34_36_diff.inc a2_gentfish_farm36_38_diff.inc \
|
||||
a2_gentfish_farm38_40_diff.inc a2_gentfish_farm40_42_diff.inc \
|
||||
a2_gentfish_farm42_44_diff.inc a2_gentfish_farm44_46_diff.inc \
|
||||
a2_gentfish_farm46_48_diff.inc a2_gentfish_farm48_02_diff.inc
|
||||
|
||||
|
||||
####
|
||||
|
||||
a2_gentfish_farm01.hgr.zx02: a2_gentfish_farm01.hgr
|
||||
$(ZX02) a2_gentfish_farm01.hgr a2_gentfish_farm01.hgr.zx02
|
||||
|
||||
a2_gentfish_farm01.hgr: a2_gentfish_farm01.png
|
||||
$(PNG_TO_HGR) a2_gentfish_farm01.png > a2_gentfish_farm01.hgr
|
||||
|
||||
####
|
||||
|
||||
a2_gentfish_farm02.hgr.zx02: a2_gentfish_farm02.hgr
|
||||
$(ZX02) a2_gentfish_farm02.hgr a2_gentfish_farm02.hgr.zx02
|
||||
|
||||
a2_gentfish_farm02.hgr: a2_gentfish_farm02.png
|
||||
$(PNG_TO_HGR) a2_gentfish_farm02.png > a2_gentfish_farm02.hgr
|
||||
|
||||
####
|
||||
|
||||
a2_gentfish_farm01_03_diff.inc: a2_gentfish_farm01.png a2_gentfish_farm03.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm01.png a2_gentfish_farm03.png > a2_gentfish_farm01_03_diff.inc
|
||||
|
||||
a2_gentfish_farm03_05_diff.inc: a2_gentfish_farm03.png a2_gentfish_farm05.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm03.png a2_gentfish_farm05.png > a2_gentfish_farm03_05_diff.inc
|
||||
|
||||
a2_gentfish_farm05_07_diff.inc: a2_gentfish_farm05.png a2_gentfish_farm07.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm05.png a2_gentfish_farm07.png > a2_gentfish_farm05_07_diff.inc
|
||||
|
||||
a2_gentfish_farm07_09_diff.inc: a2_gentfish_farm07.png a2_gentfish_farm09.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm07.png a2_gentfish_farm09.png > a2_gentfish_farm07_09_diff.inc
|
||||
|
||||
a2_gentfish_farm09_11_diff.inc: a2_gentfish_farm09.png a2_gentfish_farm11.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm09.png a2_gentfish_farm11.png > a2_gentfish_farm09_11_diff.inc
|
||||
|
||||
a2_gentfish_farm11_13_diff.inc: a2_gentfish_farm11.png a2_gentfish_farm13.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm11.png a2_gentfish_farm13.png > a2_gentfish_farm11_13_diff.inc
|
||||
|
||||
a2_gentfish_farm13_15_diff.inc: a2_gentfish_farm13.png a2_gentfish_farm15.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm13.png a2_gentfish_farm15.png > a2_gentfish_farm13_15_diff.inc
|
||||
|
||||
a2_gentfish_farm15_17_diff.inc: a2_gentfish_farm15.png a2_gentfish_farm17.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm15.png a2_gentfish_farm17.png > a2_gentfish_farm15_17_diff.inc
|
||||
|
||||
a2_gentfish_farm17_19_diff.inc: a2_gentfish_farm17.png a2_gentfish_farm19.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm17.png a2_gentfish_farm19.png > a2_gentfish_farm17_19_diff.inc
|
||||
|
||||
a2_gentfish_farm19_21_diff.inc: a2_gentfish_farm19.png a2_gentfish_farm21.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm19.png a2_gentfish_farm21.png > a2_gentfish_farm19_21_diff.inc
|
||||
|
||||
a2_gentfish_farm21_23_diff.inc: a2_gentfish_farm21.png a2_gentfish_farm23.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm21.png a2_gentfish_farm23.png > a2_gentfish_farm21_23_diff.inc
|
||||
|
||||
a2_gentfish_farm23_25_diff.inc: a2_gentfish_farm23.png a2_gentfish_farm25.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm23.png a2_gentfish_farm25.png > a2_gentfish_farm23_25_diff.inc
|
||||
|
||||
a2_gentfish_farm25_27_diff.inc: a2_gentfish_farm25.png a2_gentfish_farm27.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm25.png a2_gentfish_farm27.png > a2_gentfish_farm25_27_diff.inc
|
||||
|
||||
a2_gentfish_farm27_29_diff.inc: a2_gentfish_farm27.png a2_gentfish_farm29.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm27.png a2_gentfish_farm29.png > a2_gentfish_farm27_29_diff.inc
|
||||
|
||||
a2_gentfish_farm29_31_diff.inc: a2_gentfish_farm29.png a2_gentfish_farm31.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm29.png a2_gentfish_farm31.png > a2_gentfish_farm29_31_diff.inc
|
||||
|
||||
a2_gentfish_farm31_33_diff.inc: a2_gentfish_farm31.png a2_gentfish_farm33.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm31.png a2_gentfish_farm33.png > a2_gentfish_farm31_33_diff.inc
|
||||
|
||||
a2_gentfish_farm33_35_diff.inc: a2_gentfish_farm33.png a2_gentfish_farm35.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm33.png a2_gentfish_farm35.png > a2_gentfish_farm33_35_diff.inc
|
||||
|
||||
a2_gentfish_farm35_37_diff.inc: a2_gentfish_farm35.png a2_gentfish_farm37.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm35.png a2_gentfish_farm37.png > a2_gentfish_farm35_37_diff.inc
|
||||
|
||||
a2_gentfish_farm37_39_diff.inc: a2_gentfish_farm37.png a2_gentfish_farm39.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm37.png a2_gentfish_farm39.png > a2_gentfish_farm37_39_diff.inc
|
||||
|
||||
a2_gentfish_farm39_41_diff.inc: a2_gentfish_farm39.png a2_gentfish_farm41.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm39.png a2_gentfish_farm41.png > a2_gentfish_farm39_41_diff.inc
|
||||
|
||||
a2_gentfish_farm41_43_diff.inc: a2_gentfish_farm41.png a2_gentfish_farm43.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm41.png a2_gentfish_farm43.png > a2_gentfish_farm41_43_diff.inc
|
||||
|
||||
a2_gentfish_farm43_45_diff.inc: a2_gentfish_farm43.png a2_gentfish_farm45.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm43.png a2_gentfish_farm45.png > a2_gentfish_farm43_45_diff.inc
|
||||
|
||||
a2_gentfish_farm45_47_diff.inc: a2_gentfish_farm45.png a2_gentfish_farm47.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm45.png a2_gentfish_farm47.png > a2_gentfish_farm45_47_diff.inc
|
||||
|
||||
a2_gentfish_farm47_01_diff.inc: a2_gentfish_farm47.png a2_gentfish_farm01.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm47.png a2_gentfish_farm01.png > a2_gentfish_farm47_01_diff.inc
|
||||
|
||||
####
|
||||
|
||||
a2_gentfish_farm02_04_diff.inc: a2_gentfish_farm02.png a2_gentfish_farm04.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm02.png a2_gentfish_farm04.png > a2_gentfish_farm02_04_diff.inc
|
||||
|
||||
a2_gentfish_farm04_06_diff.inc: a2_gentfish_farm04.png a2_gentfish_farm06.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm04.png a2_gentfish_farm06.png > a2_gentfish_farm04_06_diff.inc
|
||||
|
||||
a2_gentfish_farm06_08_diff.inc: a2_gentfish_farm06.png a2_gentfish_farm08.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm06.png a2_gentfish_farm08.png > a2_gentfish_farm06_08_diff.inc
|
||||
|
||||
a2_gentfish_farm08_10_diff.inc: a2_gentfish_farm08.png a2_gentfish_farm10.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm08.png a2_gentfish_farm10.png > a2_gentfish_farm08_10_diff.inc
|
||||
|
||||
a2_gentfish_farm10_12_diff.inc: a2_gentfish_farm10.png a2_gentfish_farm12.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm10.png a2_gentfish_farm12.png > a2_gentfish_farm10_12_diff.inc
|
||||
|
||||
a2_gentfish_farm12_14_diff.inc: a2_gentfish_farm12.png a2_gentfish_farm14.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm12.png a2_gentfish_farm14.png > a2_gentfish_farm12_14_diff.inc
|
||||
|
||||
a2_gentfish_farm14_16_diff.inc: a2_gentfish_farm14.png a2_gentfish_farm16.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm14.png a2_gentfish_farm16.png > a2_gentfish_farm14_16_diff.inc
|
||||
|
||||
a2_gentfish_farm16_18_diff.inc: a2_gentfish_farm16.png a2_gentfish_farm18.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm16.png a2_gentfish_farm18.png > a2_gentfish_farm16_18_diff.inc
|
||||
|
||||
a2_gentfish_farm18_20_diff.inc: a2_gentfish_farm18.png a2_gentfish_farm20.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm18.png a2_gentfish_farm20.png > a2_gentfish_farm18_20_diff.inc
|
||||
|
||||
a2_gentfish_farm20_22_diff.inc: a2_gentfish_farm20.png a2_gentfish_farm22.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm20.png a2_gentfish_farm22.png > a2_gentfish_farm20_22_diff.inc
|
||||
|
||||
a2_gentfish_farm22_24_diff.inc: a2_gentfish_farm22.png a2_gentfish_farm24.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm22.png a2_gentfish_farm24.png > a2_gentfish_farm22_24_diff.inc
|
||||
|
||||
a2_gentfish_farm24_26_diff.inc: a2_gentfish_farm24.png a2_gentfish_farm26.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm24.png a2_gentfish_farm26.png > a2_gentfish_farm24_26_diff.inc
|
||||
|
||||
a2_gentfish_farm26_28_diff.inc: a2_gentfish_farm26.png a2_gentfish_farm28.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm26.png a2_gentfish_farm28.png > a2_gentfish_farm26_28_diff.inc
|
||||
|
||||
a2_gentfish_farm28_30_diff.inc: a2_gentfish_farm28.png a2_gentfish_farm30.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm28.png a2_gentfish_farm30.png > a2_gentfish_farm28_30_diff.inc
|
||||
|
||||
a2_gentfish_farm30_32_diff.inc: a2_gentfish_farm30.png a2_gentfish_farm32.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm30.png a2_gentfish_farm32.png > a2_gentfish_farm30_32_diff.inc
|
||||
|
||||
a2_gentfish_farm32_34_diff.inc: a2_gentfish_farm32.png a2_gentfish_farm34.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm32.png a2_gentfish_farm34.png > a2_gentfish_farm32_34_diff.inc
|
||||
|
||||
a2_gentfish_farm34_36_diff.inc: a2_gentfish_farm34.png a2_gentfish_farm36.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm34.png a2_gentfish_farm36.png > a2_gentfish_farm34_36_diff.inc
|
||||
|
||||
a2_gentfish_farm36_38_diff.inc: a2_gentfish_farm36.png a2_gentfish_farm38.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm36.png a2_gentfish_farm38.png > a2_gentfish_farm36_38_diff.inc
|
||||
|
||||
a2_gentfish_farm38_40_diff.inc: a2_gentfish_farm38.png a2_gentfish_farm40.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm38.png a2_gentfish_farm40.png > a2_gentfish_farm38_40_diff.inc
|
||||
|
||||
a2_gentfish_farm40_42_diff.inc: a2_gentfish_farm40.png a2_gentfish_farm42.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm40.png a2_gentfish_farm42.png > a2_gentfish_farm40_42_diff.inc
|
||||
|
||||
a2_gentfish_farm42_44_diff.inc: a2_gentfish_farm42.png a2_gentfish_farm44.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm42.png a2_gentfish_farm44.png > a2_gentfish_farm42_44_diff.inc
|
||||
|
||||
a2_gentfish_farm44_46_diff.inc: a2_gentfish_farm44.png a2_gentfish_farm46.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm44.png a2_gentfish_farm46.png > a2_gentfish_farm44_46_diff.inc
|
||||
|
||||
a2_gentfish_farm46_48_diff.inc: a2_gentfish_farm46.png a2_gentfish_farm48.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm46.png a2_gentfish_farm48.png > a2_gentfish_farm46_48_diff.inc
|
||||
|
||||
a2_gentfish_farm48_02_diff.inc: a2_gentfish_farm48.png a2_gentfish_farm02.png
|
||||
$(PNG_TO_HGR_DIFF) a2_gentfish_farm48.png a2_gentfish_farm02.png > a2_gentfish_farm48_02_diff.inc
|
||||
|
||||
|
||||
|
||||
|
||||
####
|
||||
|
||||
clean:
|
||||
rm -f *~ *.zx02 *.lst *.o *.hgr *_diff.inc
|
||||
|
||||
@@ -0,0 +1,244 @@
|
||||
; fast seek/multi-read
|
||||
; copyright (c) Peter Ferrie 2015-16
|
||||
|
||||
; Paramaters for loading QLOAD
|
||||
|
||||
sectors = 14 ; user-defined
|
||||
firsttrk = 1 ; user-defined, first track to read
|
||||
firstsec = 0 ; user-defined, first sector to read
|
||||
address = $12 ; user-defined
|
||||
entry = $1200 ; user-defined
|
||||
version = 1
|
||||
|
||||
;memory usage:
|
||||
;256 bytes ($200-2ff) static table
|
||||
grouped = $200
|
||||
|
||||
; stay away from interrupt vectors at $3fe !!!
|
||||
|
||||
;106 bytes ($300-369) static table
|
||||
preshift = $300
|
||||
zvalue = $fd ; only during init
|
||||
znibble = $fe ; only during init
|
||||
zmask = $ff ; only during init
|
||||
|
||||
WHICH_SLOT = $DA
|
||||
|
||||
; $26/$27 sector read location (ROM)
|
||||
; $3D sector number (ROM)
|
||||
|
||||
|
||||
; at entry (at least on AppleWin) A=1, X=60 (slot<<4), Y=0
|
||||
; qkumba says cffa cards leave Y at $10
|
||||
; 26/27 = 00/09
|
||||
; 3D = 1
|
||||
|
||||
; For Disk II booting, the firmware loads track0/sector0
|
||||
; to $800 and then jumps to $801
|
||||
|
||||
.org $800
|
||||
.byte 1 ; number of sectors for ROM to load
|
||||
|
||||
boot_entry:
|
||||
; this code loads two sectors up to $10/$11
|
||||
|
||||
; assume A=1 coming in here
|
||||
|
||||
lsr ; check sector number
|
||||
; A=0, carry=1
|
||||
tay ; Y=0
|
||||
adc #$0f ; A=$10 (destintation)
|
||||
|
||||
sta $27 ; set or update address as needed
|
||||
cmp #$12
|
||||
; 10 11 12 (1 1 1)
|
||||
; be, bf, c0 (1011 1011 1100)
|
||||
; so if hit $c000 we are done
|
||||
|
||||
beq done_load_2 ; branch if loaded 2
|
||||
|
||||
inc $3d ; increment sector (faster to find)
|
||||
|
||||
; call to the read routine in proper slot
|
||||
; using rts to jump indirect to
|
||||
; $CX5C
|
||||
|
||||
; this routine reads sector in $3D on track in $41
|
||||
; to address in $26/$27
|
||||
; when it's done it jumps back to $801
|
||||
stx WHICH_SLOT ; save for later
|
||||
|
||||
txa ; x is slot# << 4
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
ora #$c0 ; slot to PROM base
|
||||
pha
|
||||
lda #$5b ;read-1
|
||||
pha
|
||||
rts ; return used to call $CX5C in DISK II ROM
|
||||
|
||||
done_load_2:
|
||||
|
||||
; patch self modifying code for Q6L read
|
||||
|
||||
txa
|
||||
ora #$8c ; slot to Q6L
|
||||
; Q6L?
|
||||
; if slot 6, after this A is $EC
|
||||
; Y should be 2 here
|
||||
patch_loop:
|
||||
iny
|
||||
ldx patchtbl-3, Y
|
||||
sta code_begin, X ; replace placeholders with Q6L
|
||||
; BE02 = EC? lda c0ec
|
||||
; so sets to c08c (Q6L)
|
||||
|
||||
bne patch_loop
|
||||
|
||||
; patch self-modifying code for turning motor off
|
||||
|
||||
and #$f8 ; MOTOROFF (c088) -> c0e8
|
||||
sta slotpatch7+1
|
||||
|
||||
; patch self-modifying code for turning motor on
|
||||
clc
|
||||
adc #1 ; MOTORON (c089) -> c0e9
|
||||
sta slotpatch9+1
|
||||
|
||||
; patch self-modifying code for phase off
|
||||
|
||||
eor #9 ; PHASEOFF (c080)
|
||||
sta slotpatch8+1
|
||||
|
||||
ldx #$3f
|
||||
stx zmask
|
||||
inx
|
||||
ldy #$7f
|
||||
|
||||
bne skip_ahead ; branch always
|
||||
|
||||
; pad with zeros until $839
|
||||
; $839 is the entry point
|
||||
; adjusts address at $8FE to be entry point
|
||||
; jumps to boot 2
|
||||
;.res $839-*
|
||||
|
||||
; lda #>(entry-1)
|
||||
; pha
|
||||
; lda #<(entry-1)
|
||||
; pha
|
||||
; jsr preread
|
||||
; jmp $1000 ; stage2 entry point
|
||||
|
||||
patchtbl:
|
||||
.byte <(slotpatch1+1), <(slotpatch2+1), <(slotpatch3+1)
|
||||
.byte <(slotpatch4+1), <(slotpatch5+1), <(slotpatch6+1)
|
||||
indextbl: ;the 0 also terminates the patchtbl list!
|
||||
.byte 0, 2, 1, 3
|
||||
|
||||
|
||||
;construct denibbilisation table
|
||||
;pre-shifted for interleave read
|
||||
|
||||
skip_ahead:
|
||||
loopaa:
|
||||
sty znibble
|
||||
tya
|
||||
asl
|
||||
bit znibble
|
||||
beq loopz
|
||||
ora znibble
|
||||
eor #$ff
|
||||
and #$7e
|
||||
loopa:
|
||||
bcs loopz
|
||||
lsr
|
||||
bne loopa
|
||||
dex
|
||||
txa
|
||||
asl
|
||||
asl
|
||||
sta preshift-$16, Y
|
||||
loopz:
|
||||
dey
|
||||
bne loopaa
|
||||
|
||||
;construct 2-bit group table
|
||||
|
||||
sty zvalue
|
||||
loopbb:
|
||||
lsr zmask
|
||||
lsr zmask
|
||||
loopb:
|
||||
lda indextbl, X
|
||||
sta grouped, Y
|
||||
inc zvalue
|
||||
lda zvalue
|
||||
and zmask
|
||||
bne loopy
|
||||
inx
|
||||
txa
|
||||
and #3
|
||||
tax
|
||||
loopy:
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
cpy #3
|
||||
bcs loopb
|
||||
iny
|
||||
cpy #3
|
||||
bcc loopbb
|
||||
lda #>(entry-1)
|
||||
pha
|
||||
lda #<(entry-1)
|
||||
pha
|
||||
jsr preread
|
||||
|
||||
; seek backward support
|
||||
; sty startsec+1
|
||||
; sta tmpadr+1
|
||||
; stx total+1
|
||||
|
||||
jmp seekread
|
||||
|
||||
preread:
|
||||
|
||||
;copy post-read if necessary
|
||||
;push post-read address here
|
||||
; pla
|
||||
; tax
|
||||
; pla
|
||||
; tay
|
||||
; lda #>(postread-1)
|
||||
; pha
|
||||
; lda #<(postread-1)
|
||||
; pha
|
||||
; tya
|
||||
; pha
|
||||
; txa
|
||||
; pha
|
||||
|
||||
lda #<(firsttrk*2)
|
||||
sta phase+1
|
||||
ldx #sectors
|
||||
lda #address
|
||||
ldy #firstsec
|
||||
rts
|
||||
|
||||
|
||||
|
||||
end_code:
|
||||
|
||||
.res $8fe-*
|
||||
|
||||
; traditionally, entry point to jump to at end of loading
|
||||
; $1000 in this case
|
||||
;*=$8fe
|
||||
.byte $10, $00
|
||||
|
||||
|
||||
.include "qboot_stage2.s"
|
||||
@@ -0,0 +1,382 @@
|
||||
; the following lives on sectors $0E and $0D
|
||||
; why?
|
||||
; request sector 2 and 4, and the interleave is
|
||||
|
||||
; beneath apple dos (3-23)
|
||||
; Physical (firmware) : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
||||
; DOS33 mapping : 0, 7, 14, 6, 13, 5, 12, 4, 11, 3, 10, 2, 9, 1, 8, 15
|
||||
|
||||
|
||||
; Beneath Apple DOS
|
||||
; p86 (dos reference)
|
||||
;
|
||||
|
||||
;WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us
|
||||
|
||||
WAIT = norom_wait
|
||||
|
||||
.org $1000
|
||||
|
||||
code_begin:
|
||||
|
||||
.byte version
|
||||
|
||||
readnib:
|
||||
slotpatch1: ; smc
|
||||
lda $c0d1 ; gets set to C08C (Q6L) read
|
||||
bpl readnib
|
||||
rts
|
||||
|
||||
;fill address array for one track
|
||||
seekread:
|
||||
sty startsec+1
|
||||
sta tmpadr+1
|
||||
stx total+1
|
||||
|
||||
inittrk:
|
||||
sec
|
||||
lda #$10
|
||||
sbc startsec+1
|
||||
cmp total+1
|
||||
bcs it_skip
|
||||
|
||||
tax
|
||||
|
||||
it_skip:
|
||||
stx partial1
|
||||
stx partial2
|
||||
jsr seek
|
||||
|
||||
startsec:
|
||||
ldy #$d1
|
||||
|
||||
tmpadr:
|
||||
tmpadr_loop:
|
||||
lda #$d1
|
||||
sta addrtbl, y
|
||||
inc tmpadr+1
|
||||
iny
|
||||
dec partial1
|
||||
bne tmpadr_loop
|
||||
|
||||
;====================================
|
||||
; read a sector
|
||||
;====================================
|
||||
; first address field
|
||||
;====================================
|
||||
; starts with $D5 $AA $96
|
||||
; then XX YY volume
|
||||
; then XX YY track
|
||||
; then XX YY sector
|
||||
; then XX YY checksum
|
||||
; then ends with $DE $AA $EB
|
||||
;====================================
|
||||
; data field
|
||||
;====================================
|
||||
; starts with $D5 $AA $AD
|
||||
; 342 bytes of data
|
||||
; XX checksum
|
||||
; ends with $DE $AA $EB
|
||||
read:
|
||||
|
||||
outer_read:
|
||||
jsr readnib
|
||||
inner_read:
|
||||
cmp #$d5 ; look for $D5 part of addr field
|
||||
bne outer_read
|
||||
|
||||
jsr readnib ; look for $D5 $AA
|
||||
cmp #$aa
|
||||
bne inner_read
|
||||
|
||||
; look for $D5 $AA $AD
|
||||
|
||||
tay ; we need Y=#$AA later
|
||||
jsr readnib
|
||||
eor #$ad ; zero A if match
|
||||
beq check_mode
|
||||
|
||||
; if not #$AD, then #$96 is assumed
|
||||
; so in address field
|
||||
|
||||
ldy #2 ; volume, track, sector
|
||||
another:
|
||||
jsr readnib
|
||||
rol ; set carry
|
||||
sta sector+1
|
||||
jsr readnib
|
||||
and sector+1
|
||||
dey
|
||||
bpl another
|
||||
|
||||
tay
|
||||
ldx addrtbl, Y ; fetch corresponding address
|
||||
beq read ; done?
|
||||
|
||||
sta sector+1 ; store index for later
|
||||
|
||||
stx adrpatch1+2
|
||||
stx adrpatch8+2
|
||||
stx adrpatch2+2
|
||||
stx adrpatch3+2
|
||||
stx adrpatch5+2
|
||||
stx adrpatch7+2
|
||||
|
||||
inx
|
||||
stx adrpatch9+2
|
||||
dex
|
||||
|
||||
dex
|
||||
stx adrpatch4+2
|
||||
stx adrpatch6+2
|
||||
|
||||
ldy #$fe
|
||||
|
||||
loop2:
|
||||
adrpatch1:
|
||||
lda $d102, Y
|
||||
pha
|
||||
iny
|
||||
bne loop2
|
||||
|
||||
branch_read:
|
||||
bcs read ; branch always
|
||||
|
||||
check_mode:
|
||||
cpx #0
|
||||
beq read ; loop if not expecting #$AD
|
||||
|
||||
loop33:
|
||||
sta tmpval+1 ; zero rolling checksum
|
||||
slotpatch2:
|
||||
loop4:
|
||||
ldx $c0d1
|
||||
bpl loop4
|
||||
lda preshift-$96, X
|
||||
adrpatch2:
|
||||
sta $d102, Y ; store 2-bit array
|
||||
|
||||
tmpval:
|
||||
eor #$d1
|
||||
iny
|
||||
bne loop33
|
||||
ldy #$aa
|
||||
slotpatch3:
|
||||
loop5:
|
||||
ldx $c0d1
|
||||
bpl loop5
|
||||
eor preshift-$96, X
|
||||
adrpatch3:
|
||||
ldx $d102, Y ; bit2tbl
|
||||
eor grouped+2, X ; first 86 nibbles use group bits 0-1
|
||||
adrpatch4:
|
||||
sta $d156, y
|
||||
iny
|
||||
bne loop5
|
||||
and #$fc
|
||||
ldy #$aa
|
||||
slotpatch4:
|
||||
loop6:
|
||||
ldx $c0d1
|
||||
bpl loop6
|
||||
eor preshift-$96, X
|
||||
adrpatch5:
|
||||
ldx $d102, Y ; bit2tbl
|
||||
eor grouped+1, X ; second 86 nibbles use group bits 2-3
|
||||
adrpatch6:
|
||||
sta $d1ac, Y
|
||||
iny
|
||||
bne loop6
|
||||
and #$fc
|
||||
ldx #$ac
|
||||
slotpatch5:
|
||||
loop7:
|
||||
ldy $c0d1
|
||||
bpl loop7
|
||||
eor preshift-$96, Y
|
||||
adrpatch7:
|
||||
ldy $d100, X ; bit2tbl
|
||||
eor grouped, Y ; last 84 nibbles use group bits 4-5
|
||||
adrpatch8:
|
||||
sta $d100, x
|
||||
inx
|
||||
bne loop7
|
||||
and #$fc
|
||||
slotpatch6:
|
||||
loop8:
|
||||
ldy $c0d1
|
||||
bpl loop8
|
||||
eor preshift-$96, Y
|
||||
cmp #1 ; carry = !zero
|
||||
ldy #1
|
||||
loop9:
|
||||
pla
|
||||
adrpatch9:
|
||||
sta $d100, Y
|
||||
dey
|
||||
bpl loop9
|
||||
branch_read2:
|
||||
bcs branch_read ; branch if checksum failure
|
||||
|
||||
sector:
|
||||
ldy #$d1
|
||||
txa
|
||||
sta addrtbl, Y ; zero corresponding address
|
||||
dec total+1
|
||||
dec partial2 ; adjust remaining count
|
||||
; (faster than looping over array)
|
||||
sec
|
||||
bne branch_read2 ; read all requested sectors in one track
|
||||
|
||||
sta startsec+1 ; this was missing from original code
|
||||
; leading to trouble on wrap around
|
||||
; it not starting at sector0
|
||||
total:
|
||||
ldx #$d1
|
||||
beq driveoff
|
||||
inc phase+1
|
||||
inc phase+1 ; update current track
|
||||
jmp inittrk
|
||||
|
||||
driveoff:
|
||||
slotpatch7:
|
||||
lda $c0d1
|
||||
|
||||
seekret:
|
||||
rts
|
||||
|
||||
seek:
|
||||
ldx #0
|
||||
stx step+1
|
||||
copy_cur:
|
||||
curtrk:
|
||||
lda #0
|
||||
sta tmpval+1
|
||||
sec
|
||||
phase:
|
||||
sbc #$d1
|
||||
beq seekret
|
||||
|
||||
; if seek backwards
|
||||
bcs sback
|
||||
|
||||
eor #$ff
|
||||
inc curtrk+1
|
||||
|
||||
bcc ssback
|
||||
sback:
|
||||
adc #$fe
|
||||
dec curtrk+1
|
||||
ssback:
|
||||
cmp step+1
|
||||
bcc loop10
|
||||
step:
|
||||
lda #$d1
|
||||
loop10:
|
||||
cmp #8
|
||||
bcs loop11
|
||||
tay
|
||||
sec
|
||||
loop11:
|
||||
lda curtrk+1
|
||||
ldx step1, Y
|
||||
bne loop12
|
||||
loopmmm:
|
||||
clc
|
||||
lda tmpval+1
|
||||
ldx step2, Y
|
||||
loop12:
|
||||
stx sector+1
|
||||
and #3
|
||||
rol
|
||||
tax
|
||||
slotpatch8:
|
||||
sta $c0d1, X
|
||||
loopmm:
|
||||
ldx #$13
|
||||
loopm:
|
||||
dex
|
||||
bne loopm
|
||||
dec sector+1
|
||||
bne loopmm
|
||||
lsr
|
||||
bcs loopmmm
|
||||
inc step+1
|
||||
bne copy_cur
|
||||
|
||||
step1: .byte 1, $30, $28, $24, $20, $1e, $1d, $1c
|
||||
step2: .byte $70, $2c, $26, $22, $1f, $1e, $1d, $1c
|
||||
addrtbl: .res 16
|
||||
|
||||
partial1: .byte $00
|
||||
partial2: .byte $00
|
||||
code_end:
|
||||
|
||||
|
||||
;==========================
|
||||
; enable drive motor
|
||||
;==========================
|
||||
|
||||
driveon:
|
||||
|
||||
slotpatch9:
|
||||
lda $c0d1
|
||||
|
||||
; wait 1s
|
||||
|
||||
ldx #6
|
||||
wait_1s:
|
||||
lda #255
|
||||
jsr WAIT
|
||||
dex
|
||||
bne wait_1s
|
||||
|
||||
rts
|
||||
|
||||
load_new:
|
||||
|
||||
jsr driveon
|
||||
|
||||
lda load_track
|
||||
asl ; track to start*2
|
||||
sta phase+1
|
||||
|
||||
lda load_sector
|
||||
tay ; sector to start
|
||||
|
||||
lda load_length ; length
|
||||
tax
|
||||
|
||||
lda load_address ; address to load
|
||||
|
||||
jsr seekread
|
||||
|
||||
rts
|
||||
|
||||
load_address:
|
||||
.byte $00
|
||||
load_track:
|
||||
.byte $00
|
||||
load_sector:
|
||||
.byte $00
|
||||
load_length:
|
||||
.byte $00
|
||||
|
||||
|
||||
|
||||
; copy of ROM wait
|
||||
; because we might disable ROM
|
||||
|
||||
norom_wait:
|
||||
sec
|
||||
wait2:
|
||||
pha
|
||||
wait3:
|
||||
sbc #$01
|
||||
bne wait3
|
||||
pla
|
||||
sbc #$01
|
||||
bne wait2
|
||||
rts
|
||||
wait_end:
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
load_file =$1207
|
||||
clear_all =$1300
|
||||
clear_all_color =$1325
|
||||
set_normal =$1385
|
||||
set_inverse =$1390
|
||||
wait =$1237
|
||||
wait_a_bit =$124e
|
||||
wait_50ms =$1243
|
||||
move_and_print =$1343
|
||||
clear_bottom =$12c2
|
||||
clear_bottoms =$12eb
|
||||
clear_screens =$1262
|
||||
clear_top =$1277
|
||||
zx02_full_decomp =$1417
|
||||
zx_src_h =$141d
|
||||
zx_src_l =$1419
|
||||
wait_until_keypress =$140e
|
||||
wait_50xms =$1245
|
||||
hgr_page_flip =$13fb
|
||||
gr_offsets =$13a5
|
||||
hgr_clear_screen =$14a5
|
||||
hgr_page1_clearscreen =$14ad
|
||||
hgr_page2_clearscreen =$1513
|
||||
@@ -0,0 +1,94 @@
|
||||
; Loader for Surprise
|
||||
|
||||
.include "zp.inc"
|
||||
.include "../hardware.inc"
|
||||
|
||||
.include "common_defines.inc"
|
||||
.include "qboot.inc"
|
||||
|
||||
qload_start:
|
||||
|
||||
; init the write code
|
||||
; lda WHICH_SLOT
|
||||
; jsr popwr_init
|
||||
|
||||
; first time entry
|
||||
; start by loading text title
|
||||
|
||||
; lda #0 ; load ZW engine
|
||||
; sta WHICH_LOAD
|
||||
|
||||
lda #1
|
||||
sta CURRENT_DISK ; current disk number
|
||||
|
||||
; jsr load_file
|
||||
|
||||
jmp surprise_start
|
||||
|
||||
; jmp $2000 ; jump to ZW
|
||||
|
||||
;====================================
|
||||
; loads file specified by WHICH_LOAD
|
||||
;====================================
|
||||
load_file:
|
||||
ldx WHICH_LOAD
|
||||
|
||||
; lda which_disk_array,X
|
||||
; cmp CURRENT_DISK
|
||||
; bne change_disk
|
||||
|
||||
load_file_no_diskcheck:
|
||||
lda load_address_array,X
|
||||
sta load_address
|
||||
|
||||
lda track_array,X
|
||||
sta load_track
|
||||
|
||||
lda sector_array,X
|
||||
sta load_sector
|
||||
|
||||
lda length_array,X
|
||||
sta load_length
|
||||
|
||||
jsr load_new
|
||||
|
||||
rts
|
||||
|
||||
|
||||
which_disk_array:
|
||||
.byte 1,1,1 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
load_address_array:
|
||||
.byte $D0,$60,$60 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
start_address:
|
||||
.byte $D0,$60,$60 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
track_array:
|
||||
.byte 2,2,5 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
sector_array:
|
||||
.byte 0,0,0 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
length_array:
|
||||
.byte 48,32,32 ; ???, BG_LOAD, ANIMATION
|
||||
|
||||
|
||||
.include "../wait.s"
|
||||
|
||||
.include "../wait_a_bit.s"
|
||||
.include "../gr_fast_clear.s"
|
||||
.include "../text_print.s"
|
||||
.include "../gr_offsets.s"
|
||||
|
||||
.include "../hgr_table.s"
|
||||
.include "../hgr_page_flip.s"
|
||||
.include "../wait_keypress.s"
|
||||
.include "../zx02_optim.s"
|
||||
.include "../hgr_clear_screen.s"
|
||||
|
||||
.include "start.s"
|
||||
|
||||
qload_end:
|
||||
|
||||
.assert (>qload_end - >qload_start) < $e , error, "loader too big"
|
||||
@@ -0,0 +1,109 @@
|
||||
; surprise startup
|
||||
|
||||
;
|
||||
; by deater (Vince Weaver) <vince@deater.net>
|
||||
|
||||
DEBUG=0
|
||||
|
||||
surprise_start:
|
||||
;=====================
|
||||
; initializations
|
||||
;=====================
|
||||
|
||||
bit PAGE1
|
||||
bit KEYRESET
|
||||
|
||||
; init vars
|
||||
|
||||
lda #0
|
||||
sta DRAW_PAGE
|
||||
|
||||
;=====================
|
||||
; clear text screen
|
||||
|
||||
lda #$A0
|
||||
jsr clear_top_a
|
||||
jsr clear_bottom
|
||||
|
||||
; print start message
|
||||
|
||||
jsr set_normal
|
||||
|
||||
lda #<start_message
|
||||
sta OUTL
|
||||
lda #>start_message
|
||||
sta OUTH
|
||||
|
||||
jsr move_and_print_list
|
||||
|
||||
|
||||
;=========================================
|
||||
;=========================================
|
||||
; start loading the demo
|
||||
;=========================================
|
||||
;=========================================
|
||||
|
||||
jsr hgr_make_tables
|
||||
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
; Run BG_LOAD
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
; load from disk
|
||||
|
||||
lda #PART_BG_LOAD
|
||||
sta WHICH_LOAD
|
||||
jsr load_file
|
||||
|
||||
; Do decompress
|
||||
|
||||
jsr $6000
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
; setup graphics
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
bit SET_GR
|
||||
bit HIRES
|
||||
bit FULLGR
|
||||
|
||||
bit PAGE2 ; display page1
|
||||
|
||||
oog:
|
||||
jsr wait_until_keypress
|
||||
jsr hgr_page_flip
|
||||
|
||||
jmp oog
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;=======================
|
||||
;=======================
|
||||
; Run ANIMATION
|
||||
;=======================
|
||||
;=======================
|
||||
|
||||
; load from disk
|
||||
|
||||
lda #PART_ANIMATION ; Load bucket
|
||||
sta WHICH_LOAD
|
||||
jsr load_file
|
||||
|
||||
; Run Animation
|
||||
|
||||
jsr $6000
|
||||
|
||||
blah:
|
||||
jmp blah
|
||||
|
||||
|
||||
start_message: ;01234567890123456789012345678901234567890
|
||||
.byte 0,0,"LOADING SURPRISE",0
|
||||
.byte $FF
|
||||
@@ -0,0 +1,167 @@
|
||||
;==================
|
||||
;==================
|
||||
; Zero Page Usage
|
||||
;==================
|
||||
;==================
|
||||
|
||||
; ZX0 decompression addresses
|
||||
|
||||
ZX0_src = $00
|
||||
ZX0_dst = $02
|
||||
offset = $04
|
||||
bitr = $06
|
||||
pntr = $07
|
||||
WHICH_LOAD = $09
|
||||
CURRENT_DISK = $0A
|
||||
|
||||
; Zero page monitor routines addresses
|
||||
; We don't use the monitor but we use some of these anyway
|
||||
|
||||
WNDLFT = $20
|
||||
WNDWDTH = $21
|
||||
WNDTOP = $22
|
||||
WNDBTM = $23
|
||||
CH = $24
|
||||
CV = $25
|
||||
GBASL = $26
|
||||
GBASH = $27
|
||||
BASL = $28
|
||||
BASH = $29
|
||||
H2 = $2C
|
||||
V2 = $2D
|
||||
MASK = $2E
|
||||
COLOR = $30
|
||||
;INVFLG = $32
|
||||
|
||||
WIPEL = $3C ; used by input for wipes?
|
||||
WIPEH = $3D
|
||||
|
||||
WHICH_TRACK = $54
|
||||
|
||||
;==========================
|
||||
; $60-$6F
|
||||
;==========================
|
||||
|
||||
DISP_PAGE = $6E
|
||||
DRAW_PAGE = $6F
|
||||
|
||||
;================================================
|
||||
; $B0 ... $BF for common things, don't mess with
|
||||
;================================================
|
||||
|
||||
FRAME = $B8
|
||||
FRAMEL = $B8
|
||||
FRAMEH = $B9
|
||||
WHICH_SLOT = $BA ; from boot sector
|
||||
SECOND_COUNTDOWN= $BB
|
||||
|
||||
BTC_L = $BC
|
||||
BTC_H = $BD ; audio
|
||||
|
||||
|
||||
; Used when sprite drawing
|
||||
|
||||
CURSOR_X = $BE
|
||||
CURSOR_Y = $BF
|
||||
|
||||
|
||||
;==============================================
|
||||
; $C0-$CF available
|
||||
;==============================================
|
||||
|
||||
; woz
|
||||
|
||||
BALL_STATE = $C0 ; C0..C7
|
||||
BALL_OFFSET = $C8 ; C8..CF
|
||||
|
||||
; four-color/plasma
|
||||
XPOS = $C8
|
||||
YPOS = $C9
|
||||
AUXOUTL = $CA
|
||||
AUXOUTH = $CB
|
||||
MAIN1 = $CC
|
||||
AUX1 = $CD
|
||||
MAIN0 = $CE
|
||||
AUX0 = $CF
|
||||
|
||||
; repack
|
||||
|
||||
CURRENT_COL = $CC ; dhgr_repack
|
||||
CURRENT_ROW = $CD ; dhgr_repack
|
||||
|
||||
;==============================================
|
||||
; $D0-$DB can re-use in each file
|
||||
;==============================================
|
||||
|
||||
; repack
|
||||
REPACK_TMP = $D0 ; $D0...$D7
|
||||
|
||||
; start/font fall
|
||||
|
||||
TEXT_Y = $D2
|
||||
|
||||
; intro: scrolling
|
||||
|
||||
SCROLL_COUNT = $D0
|
||||
INDEX = $D1
|
||||
DEST_OFFSET = $D2
|
||||
SRC_OFFSET = $D3
|
||||
LENGTH = $D4
|
||||
|
||||
; woz
|
||||
ROW = $D0 ; martymation
|
||||
FAKE_HGR_PAGE = $D1
|
||||
FAKE_HGR_BITS = $D2
|
||||
FAKE_HGR_SHAPE = $D3
|
||||
FAKE_HGR_SHAPE2 = $D4
|
||||
WHICH_BALL = $D5
|
||||
ORBITS = $D6
|
||||
NEXT_BALL = $D7
|
||||
ERASE_COUNT = $D8
|
||||
BALL_X = $D9
|
||||
|
||||
; four color
|
||||
CURRENT = $D0
|
||||
LEFT = $D1
|
||||
XSTART = $D2
|
||||
XEND = $D3
|
||||
COLORSG = $D4
|
||||
COLORSF = $D5
|
||||
COLORSE = $D6
|
||||
COLORSD = $D7
|
||||
COLORSC = $D8
|
||||
COLORSB = $D9
|
||||
COLORSA = $DA
|
||||
ODD = $DB
|
||||
|
||||
; Plasma
|
||||
COMPT1 = $D0
|
||||
COMPT2 = $D1
|
||||
PARAM1 = $D2
|
||||
PARAM2 = $D3
|
||||
PARAM3 = $D4
|
||||
PARAM4 = $D5
|
||||
COUNT = $D6
|
||||
|
||||
;
|
||||
TEMP_VOL = $D9
|
||||
WHICH = $DA
|
||||
FRAME_RATE = $DB
|
||||
|
||||
;==============================================
|
||||
; $DC-$DF we use for in/out pointers
|
||||
;==============================================
|
||||
|
||||
INL = $DC
|
||||
INH = $DD
|
||||
OUTL = $DE
|
||||
OUTH = $DF
|
||||
|
||||
|
||||
|
||||
|
||||
;==========================
|
||||
; $E0-$FD for PT3 Player
|
||||
;==========================
|
||||
|
||||
;.include "pt3_lib_zp.inc"
|
||||
Reference in New Issue
Block a user