mirror of
https://github.com/a2-4am/4cade.git
synced 2024-06-02 15:41:30 +00:00
Compare commits
6 Commits
124432f373
...
535c4c841d
Author | SHA1 | Date | |
---|---|---|---|
|
535c4c841d | ||
|
7acb717b11 | ||
|
b5dffa65ab | ||
|
bc38e605d9 | ||
|
43ab54a120 | ||
|
6637a5e51e |
|
@ -50,13 +50,13 @@ cat res/GAMES.CONF |
|
||||||
grep '^\!to' src/demo/*.a | cut -d'/' -f5-|cut -d'#' -f1 |
|
grep '^\!to' src/demo/*.a | cut -d'/' -f5-|cut -d'#' -f1 |
|
||||||
grep -v "SPCARTOON" |
|
grep -v "SPCARTOON" |
|
||||||
while read f; do
|
while read f; do
|
||||||
grep "$f=0" res/ATTRACT.CONF >/dev/null || echo "unused demo: $f";
|
grep "^$f=0" res/ATTRACT.CONF >/dev/null || echo "unused demo: $f";
|
||||||
done
|
done
|
||||||
|
|
||||||
# warn about unused slideshows
|
# warn about unused slideshows
|
||||||
cd res/SS
|
cd res/SS
|
||||||
for f in *.CONF; do
|
for f in *.CONF; do
|
||||||
grep "$f" ../ATTRACT.CONF >/dev/null || echo "unused slideshow: $f";
|
grep "^$f=" ../ATTRACT.CONF >/dev/null || echo "unused slideshow: $f";
|
||||||
done
|
done
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
|
|
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/ANTIAIR2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN2
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/HOPMAN2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR.UNCOMPRESSED/YEWDOW
Normal file
BIN
res/ACTION.HGR.UNCOMPRESSED/YEWDOW
Normal file
Binary file not shown.
BIN
res/ACTION.HGR/ANTIAIR
Normal file
BIN
res/ACTION.HGR/ANTIAIR
Normal file
Binary file not shown.
BIN
res/ACTION.HGR/ANTIAIR2
Normal file
BIN
res/ACTION.HGR/ANTIAIR2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR/HOPMAN
Normal file
BIN
res/ACTION.HGR/HOPMAN
Normal file
Binary file not shown.
BIN
res/ACTION.HGR/HOPMAN2
Normal file
BIN
res/ACTION.HGR/HOPMAN2
Normal file
Binary file not shown.
BIN
res/ACTION.HGR/YEWDOW
Normal file
BIN
res/ACTION.HGR/YEWDOW
Normal file
Binary file not shown.
|
@ -83,6 +83,7 @@ SHR27.CONF=5
|
||||||
P3.CONF=1
|
P3.CONF=1
|
||||||
STAR.BLAZER=0
|
STAR.BLAZER=0
|
||||||
ACTDHGR15.CONF=4
|
ACTDHGR15.CONF=4
|
||||||
|
AB5.CONF=1
|
||||||
ACTIONEFG4.CONF=2
|
ACTIONEFG4.CONF=2
|
||||||
AO=0
|
AO=0
|
||||||
HAYDEN.CONF=1
|
HAYDEN.CONF=1
|
||||||
|
|
9
res/ATTRACT/ANTIAIR
Normal file
9
res/ATTRACT/ANTIAIR
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#
|
||||||
|
# Attract mode for ANTIAIR
|
||||||
|
# This file is automatically generated
|
||||||
|
#
|
||||||
|
|
||||||
|
ANTIAIR2=A
|
||||||
|
ANTIAIR=A
|
||||||
|
|
||||||
|
[eof]
|
9
res/ATTRACT/HOPMAN
Normal file
9
res/ATTRACT/HOPMAN
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#
|
||||||
|
# Attract mode for HOPMAN
|
||||||
|
# This file is automatically generated
|
||||||
|
#
|
||||||
|
|
||||||
|
HOPMAN2=A
|
||||||
|
HOPMAN=A
|
||||||
|
|
||||||
|
[eof]
|
8
res/ATTRACT/YEWDOW
Normal file
8
res/ATTRACT/YEWDOW
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#
|
||||||
|
# Attract mode for YEWDOW
|
||||||
|
# This file is automatically generated
|
||||||
|
#
|
||||||
|
|
||||||
|
YEWDOW=A
|
||||||
|
|
||||||
|
[eof]
|
BIN
res/CACHE10.IDX
BIN
res/CACHE10.IDX
Binary file not shown.
BIN
res/CACHE11.IDX
BIN
res/CACHE11.IDX
Binary file not shown.
17
res/GAMEHELP/ANTIAIR
Normal file
17
res/GAMEHELP/ANTIAIR
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Shoot the aliens to release their cargo
|
||||||
|
|
||||||
|
Don't get blocked in!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
joystick to move
|
||||||
|
|
||||||
|
button 0 to fire
|
||||||
|
[eof]
|
20
res/GAMEHELP/HOPMAN
Normal file
20
res/GAMEHELP/HOPMAN
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Capture the flags and reach the goal
|
||||||
|
|
||||||
|
before time runs out
|
||||||
|
|
||||||
|
Avoid monsters & obstacles
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
joystick to move
|
||||||
|
|
||||||
|
button 0 to jump
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Tip: you can change direction mid-jump
|
||||||
|
[eof]
|
18
res/GAMEHELP/YEWDOW
Normal file
18
res/GAMEHELP/YEWDOW
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Put down markers to guide the car
|
||||||
|
|
||||||
|
to the flags before time runs out
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
joystick to move
|
||||||
|
|
||||||
|
hold button 0 and move
|
||||||
|
|
||||||
|
to place marker in that direction
|
||||||
|
[eof]
|
|
@ -1,4 +1,3 @@
|
||||||
#
|
|
||||||
# Master game list
|
# Master game list
|
||||||
#
|
#
|
||||||
# Format:
|
# Format:
|
||||||
|
@ -38,6 +37,7 @@
|
||||||
10061,ANGEL.1=Angel-1
|
10061,ANGEL.1=Angel-1
|
||||||
01100,ANGRYBIRDS=Angry Birds
|
01100,ANGRYBIRDS=Angry Birds
|
||||||
00001,ANKH=Ankh
|
00001,ANKH=Ankh
|
||||||
|
10001,ANTIAIR=AntiAir
|
||||||
00010,APE.ESCAPE=Ape Escape
|
00010,APE.ESCAPE=Ape Escape
|
||||||
00010,AC=Apple Cider Spider
|
00010,AC=Apple Cider Spider
|
||||||
10011,APPLE.INVADER=Apple Invader
|
10011,APPLE.INVADER=Apple Invader
|
||||||
|
@ -224,6 +224,7 @@
|
||||||
11110,HEAVY.BARREL=Heavy Barrel
|
11110,HEAVY.BARREL=Heavy Barrel
|
||||||
00011,HELLSTORM=Hell Storm
|
00011,HELLSTORM=Hell Storm
|
||||||
00001,HIGH.RISE=High Rise
|
00001,HIGH.RISE=High Rise
|
||||||
|
10001,HOPMAN=Hopman
|
||||||
00010,HORIZON.V=Horizon V
|
00010,HORIZON.V=Horizon V
|
||||||
00011,HUNGRYBOY=Hungryboy
|
00011,HUNGRYBOY=Hungryboy
|
||||||
00011,HYPER.HEAD.ON=Hyper Head On
|
00011,HYPER.HEAD.ON=Hyper Head On
|
||||||
|
@ -503,6 +504,7 @@
|
||||||
00000,WILLY.BYTE=Willy Byte
|
00000,WILLY.BYTE=Willy Byte
|
||||||
11130,WF=Wings of Fury
|
11130,WF=Wings of Fury
|
||||||
10010,XEVIOUS=Xevious
|
10010,XEVIOUS=Xevious
|
||||||
|
10001,YEWDOW=Yewdow
|
||||||
00011,ZARGS=Zargs
|
00011,ZARGS=Zargs
|
||||||
10010,ZAXXON=Zaxxon
|
10010,ZAXXON=Zaxxon
|
||||||
00051,ZENITH=Zenith
|
00051,ZENITH=Zenith
|
||||||
|
|
|
@ -6,6 +6,7 @@ BY
|
||||||
ARENA
|
ARENA
|
||||||
BUG.BATTLE
|
BUG.BATTLE
|
||||||
BANDITS
|
BANDITS
|
||||||
|
ANTIAIR
|
||||||
A.CITY.DIES
|
A.CITY.DIES
|
||||||
B1
|
B1
|
||||||
AO
|
AO
|
||||||
|
|
|
@ -8,6 +8,7 @@ AERIAL
|
||||||
BATTLEZONE
|
BATTLEZONE
|
||||||
BOULDER.DASH3=BOULDER.DASH
|
BOULDER.DASH3=BOULDER.DASH
|
||||||
AZTEC3=AZTEC
|
AZTEC3=AZTEC
|
||||||
|
ANTIAIR2=ANTIAIR
|
||||||
AQUATRON
|
AQUATRON
|
||||||
APPLE.PANIC
|
APPLE.PANIC
|
||||||
BEACH.LANDING
|
BEACH.LANDING
|
||||||
|
|
|
@ -8,6 +8,7 @@ B21=B2
|
||||||
AGENT.U.S.A
|
AGENT.U.S.A
|
||||||
ALCAZAR
|
ALCAZAR
|
||||||
BUBBLE.HEAD
|
BUBBLE.HEAD
|
||||||
|
ANTIAIR
|
||||||
BW3=BW
|
BW3=BW
|
||||||
B12=B1
|
B12=B1
|
||||||
AXIS.ASSASSIN3=AXIS.ASSASSIN
|
AXIS.ASSASSIN3=AXIS.ASSASSIN
|
||||||
|
|
|
@ -8,6 +8,7 @@ HARD.HAT.MACK2=HARD.HAT.MACK
|
||||||
JOUST2=JOUST
|
JOUST2=JOUST
|
||||||
IKARI.WARRIORS
|
IKARI.WARRIORS
|
||||||
J.BIRD
|
J.BIRD
|
||||||
|
HOPMAN
|
||||||
INFILTRATOR2=INFILTRATOR
|
INFILTRATOR2=INFILTRATOR
|
||||||
JUMPMAN
|
JUMPMAN
|
||||||
JUGGLER
|
JUGGLER
|
||||||
|
|
|
@ -6,6 +6,7 @@ LODE001=LODE.RUNNER
|
||||||
HARD.HAT.MACK
|
HARD.HAT.MACK
|
||||||
LOST.TOMB
|
LOST.TOMB
|
||||||
HORIZON.V2=HORIZON.V
|
HORIZON.V2=HORIZON.V
|
||||||
|
HOPMAN2=HOPMAN
|
||||||
LIFT2=LIFT
|
LIFT2=LIFT
|
||||||
HANDY.DANDY
|
HANDY.DANDY
|
||||||
HELLSTORM2=HELLSTORM
|
HELLSTORM2=HELLSTORM
|
||||||
|
|
|
@ -8,6 +8,7 @@ TRACK.ATTACK
|
||||||
TERITORY
|
TERITORY
|
||||||
ZP
|
ZP
|
||||||
TC
|
TC
|
||||||
|
YEWDOW
|
||||||
VIDEO.VEGAS4=VIDEO.VEGAS
|
VIDEO.VEGAS4=VIDEO.VEGAS
|
||||||
TC3=TC
|
TC3=TC
|
||||||
AF
|
AF
|
||||||
|
|
|
@ -7,6 +7,7 @@ JUGGLER
|
||||||
JELLYFISH
|
JELLYFISH
|
||||||
LADY.TUT
|
LADY.TUT
|
||||||
H.E.R.O
|
H.E.R.O
|
||||||
|
HOPMAN
|
||||||
JUNGLE.HUNT
|
JUNGLE.HUNT
|
||||||
INVASION.FORCE
|
INVASION.FORCE
|
||||||
HUNGRYBOY
|
HUNGRYBOY
|
||||||
|
|
|
@ -8,6 +8,7 @@ GUNTUS
|
||||||
SPUTNIK.ATTACK
|
SPUTNIK.ATTACK
|
||||||
AERIAL
|
AERIAL
|
||||||
BERZAP
|
BERZAP
|
||||||
|
ANTIAIR
|
||||||
CS
|
CS
|
||||||
GADGETZ
|
GADGETZ
|
||||||
BOOTSKELL
|
BOOTSKELL
|
||||||
|
|
|
@ -6,6 +6,7 @@ ALIEN.DOWNPOUR
|
||||||
RUPTUS
|
RUPTUS
|
||||||
PENETRATOR
|
PENETRATOR
|
||||||
ROBOTICS
|
ROBOTICS
|
||||||
|
YEWDOW
|
||||||
DINO.SMURF
|
DINO.SMURF
|
||||||
ASCEND
|
ASCEND
|
||||||
GENIUS.3
|
GENIUS.3
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
BUTCHERBOB.86
|
BUTCHERBOB.86
|
||||||
NEURAS
|
NEURAS
|
||||||
LA
|
LA
|
||||||
|
HOPMAN
|
||||||
NT
|
NT
|
||||||
WALL.DEFENCE
|
WALL.DEFENCE
|
||||||
CAVIT
|
CAVIT
|
||||||
|
|
|
@ -12,6 +12,7 @@ TIME.TUNNELS
|
||||||
VIDEO.VEGAS
|
VIDEO.VEGAS
|
||||||
WALL.DEFENCE
|
WALL.DEFENCE
|
||||||
WAVY.NAVY
|
WAVY.NAVY
|
||||||
|
YEWDOW
|
||||||
THIEF
|
THIEF
|
||||||
|
|
||||||
[eof]
|
[eof]
|
||||||
|
|
1
res/TITLE.HGR.UNPACKED/ANTIAIR
Normal file
1
res/TITLE.HGR.UNPACKED/ANTIAIR
Normal file
File diff suppressed because one or more lines are too long
BIN
res/TITLE.HGR.UNPACKED/HOPMAN
Normal file
BIN
res/TITLE.HGR.UNPACKED/HOPMAN
Normal file
Binary file not shown.
1
res/TITLE.HGR.UNPACKED/YEWDOW
Normal file
1
res/TITLE.HGR.UNPACKED/YEWDOW
Normal file
File diff suppressed because one or more lines are too long
1
res/TITLE.HGR/ANTIAIR
Normal file
1
res/TITLE.HGR/ANTIAIR
Normal file
File diff suppressed because one or more lines are too long
BIN
res/TITLE.HGR/HOPMAN
Normal file
BIN
res/TITLE.HGR/HOPMAN
Normal file
Binary file not shown.
1
res/TITLE.HGR/YEWDOW
Normal file
1
res/TITLE.HGR/YEWDOW
Normal file
File diff suppressed because one or more lines are too long
BIN
res/dsk/antiair (4am pack).po
Normal file
BIN
res/dsk/antiair (4am pack).po
Normal file
Binary file not shown.
BIN
res/dsk/hopman (4am pack).po
Normal file
BIN
res/dsk/hopman (4am pack).po
Normal file
Binary file not shown.
BIN
res/dsk/yewdow (4am pack).po
Normal file
BIN
res/dsk/yewdow (4am pack).po
Normal file
Binary file not shown.
|
@ -1,5 +1,13 @@
|
||||||
# Total Replay changelog
|
# Total Replay changelog
|
||||||
|
|
||||||
|
## Revision 5.2 / unreleased
|
||||||
|
|
||||||
|
### Games added in v5.2
|
||||||
|
|
||||||
|
- AntiAir
|
||||||
|
- Hopman
|
||||||
|
- Yewdow
|
||||||
|
|
||||||
## Revision 5.1 / serial number 20240216
|
## Revision 5.1 / serial number 20240216
|
||||||
|
|
||||||
### Games added in v5.1
|
### Games added in v5.1
|
||||||
|
|
51
res/ports/antiair/Makefile
Normal file
51
res/ports/antiair/Makefile
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# https://sourceforge.net/projects/acme-crossass/
|
||||||
|
ACME=acme
|
||||||
|
|
||||||
|
# https://github.com/mach-kernel/cadius
|
||||||
|
CADIUS=cadius
|
||||||
|
|
||||||
|
EXOMIZER=exomizer mem -lnone -P23 -f -q
|
||||||
|
|
||||||
|
BUILDDIR=build
|
||||||
|
DISKVOLUME=ANTIAIR
|
||||||
|
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
|
||||||
|
EXE=$(BUILDDIR)/ANTIAIR\#068000
|
||||||
|
COMPRESSED=src/OBJ.X
|
||||||
|
SOURCES=$(wildcard src/*.a) $(COMPRESSED)
|
||||||
|
RES=$(wildcard res/*) $(wildcard ../common/res/*)
|
||||||
|
BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po
|
||||||
|
|
||||||
|
.PHONY: clean mount all
|
||||||
|
|
||||||
|
$(BUILDDISK): $(EXE) $(LOADER) $(RES)
|
||||||
|
|
||||||
|
$(LOADER): $(SOURCES) | $(BUILDDIR)
|
||||||
|
$(ACME) src/loader.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(EXE): $(SOURCES) $(COMPRESSED) | $(BUILDDIR)
|
||||||
|
$(ACME) src/antiair.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(RES): $(BUILDDIR)
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(COMPRESSED):
|
||||||
|
$(EXOMIZER) src/OBJ@0x4000 -o "$@"
|
||||||
|
|
||||||
|
mount: $(BUILDDISK)
|
||||||
|
@open "$(BUILDDISK)"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf "$(BUILDDIR)"
|
||||||
|
|
||||||
|
$(BUILDDIR):
|
||||||
|
mkdir -p "$@"
|
||||||
|
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
|
||||||
|
|
||||||
|
all: clean mount
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
BIN
res/ports/antiair/build/ANTIAIR#068000
Normal file
BIN
res/ports/antiair/build/ANTIAIR#068000
Normal file
Binary file not shown.
BIN
res/ports/antiair/build/ANTIAIR.po
Normal file
BIN
res/ports/antiair/build/ANTIAIR.po
Normal file
Binary file not shown.
BIN
res/ports/antiair/build/LOADER.SYSTEM#FF2000
Normal file
BIN
res/ports/antiair/build/LOADER.SYSTEM#FF2000
Normal file
Binary file not shown.
BIN
res/ports/antiair/src/OBJ
Normal file
BIN
res/ports/antiair/src/OBJ
Normal file
Binary file not shown.
BIN
res/ports/antiair/src/OBJ.X
Normal file
BIN
res/ports/antiair/src/OBJ.X
Normal file
Binary file not shown.
29
res/ports/antiair/src/antiair.a
Normal file
29
res/ports/antiair/src/antiair.a
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$8000
|
||||||
|
!to "build/ANTIAIR#068000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
jmp start
|
||||||
|
|
||||||
|
compressed_data
|
||||||
|
!bin "src/OBJ.X"
|
||||||
|
FORWARD_DECRUNCHING = 1
|
||||||
|
SHOW_PROGRESS_DURING_DECRUNCH = 0
|
||||||
|
!src "../common/src/exodecrunch.a"
|
||||||
|
|
||||||
|
start
|
||||||
|
+INIT_MACHINE
|
||||||
|
!if * != $955A {
|
||||||
|
!serious "Adjust prelaunch to patch JSR at ", *, " to JMP"
|
||||||
|
}
|
||||||
|
jsr decrunch ; compressed data contains target address
|
||||||
|
jmp $4000
|
||||||
|
|
||||||
|
get_crunched_byte
|
||||||
|
lda compressed_data
|
||||||
|
inc get_crunched_byte+1
|
||||||
|
bne +
|
||||||
|
inc get_crunched_byte+2
|
||||||
|
+ rts
|
25
res/ports/antiair/src/loader.a
Normal file
25
res/ports/antiair/src/loader.a
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$2000
|
||||||
|
!to "build/LOADER.SYSTEM#FF2000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
+READ_ENTIRE_FILE parm_boot_open, parm_boot_read
|
||||||
|
jmp (entry)
|
||||||
|
|
||||||
|
parm_boot_open
|
||||||
|
!byte 3
|
||||||
|
!word filename
|
||||||
|
!word $2100
|
||||||
|
!byte 0
|
||||||
|
|
||||||
|
parm_boot_read
|
||||||
|
!byte 4
|
||||||
|
!byte 1
|
||||||
|
entry !word $8000
|
||||||
|
!word $FFFF
|
||||||
|
!word 0
|
||||||
|
|
||||||
|
filename
|
||||||
|
!text 7,"ANTIAIR"
|
BIN
res/ports/common/res/PRODOS#FF0000
Normal file
BIN
res/ports/common/res/PRODOS#FF0000
Normal file
Binary file not shown.
73
res/ports/common/src/constants.a
Normal file
73
res/ports/common/src/constants.a
Normal file
|
@ -0,0 +1,73 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2024 by 4am
|
||||||
|
;
|
||||||
|
|
||||||
|
!ifndef _CONSTANTS_ {
|
||||||
|
|
||||||
|
SELF_MODIFIED_BYTE = $FD
|
||||||
|
SELF_MODIFIED_WORD = $FDFD
|
||||||
|
|
||||||
|
; standard memory addresses
|
||||||
|
CH = $24
|
||||||
|
CV = $25
|
||||||
|
BASL = $28
|
||||||
|
INVFLG = $32
|
||||||
|
RWTS_PTR = $48
|
||||||
|
RNDL = $4E
|
||||||
|
RNDH = $4F
|
||||||
|
PRODOS_MLI = $BF00
|
||||||
|
PRODOS_BOOT_UNIT = $BF30
|
||||||
|
PRODOS_MEMORY_MAP = $BF58
|
||||||
|
PRODOS_MACHID = $BF98
|
||||||
|
KBD = $C000
|
||||||
|
CLEARKBD = $C010
|
||||||
|
STOREOFF = $C000 ; STA then use the following 4 flags:
|
||||||
|
READMAINMEM = $C002 ; STA to read from main mem
|
||||||
|
READAUXMEM = $C003 ; STA to read from aux mem
|
||||||
|
WRITEMAINMEM = $C004 ; STA to write to main mem
|
||||||
|
WRITEAUXMEM = $C005 ; STA to write to aux mem
|
||||||
|
CLR80VID = $C00C ; 40 columns
|
||||||
|
PRIMARYCHARSET = $C00E ; no mousetext for you
|
||||||
|
ALTCHARSET = $C00F ; yay mousetext
|
||||||
|
CLEARKBD = $C010 ; clear last key pressed
|
||||||
|
SLOT3STATUS = $C017 ; bit 7 only
|
||||||
|
MONOCOLOR = $C021 ; IIgs bit 7 switches composite mono/color modes
|
||||||
|
TBCOLOR = $C022 ; IIgs text foreground and background colors (also VidHD but write-only)
|
||||||
|
NEWVIDEO = $C029 ; IIgs graphics modes (also VidHD)
|
||||||
|
CLOCKCTL = $C034 ; bits 0-3 are IIgs border color (also VidHD)
|
||||||
|
GFXMODE = $C050
|
||||||
|
TEXTMODE = $C051
|
||||||
|
FULLGFX = $C052
|
||||||
|
MIXEDGFX = $C053
|
||||||
|
PAGE1 = $C054 ; page 1 (affects text, HGR, DHGR)
|
||||||
|
PAGE2 = $C055 ; page 2 (affects text, HGR, DHGR)
|
||||||
|
HIRES = $C057
|
||||||
|
AUXMOVE = $C311
|
||||||
|
ROM_TEXT = $FB2F
|
||||||
|
ROM_FINALIZE_RESET = $FB6F
|
||||||
|
ROM_MACHINEID = $FBB3
|
||||||
|
ROM_BASCALC = $FBC1
|
||||||
|
ROM_HOME = $FC58
|
||||||
|
ROM_CLREOL_FROM_Y = $FC9E
|
||||||
|
ROM_WAIT = $FCA8
|
||||||
|
ROM_KEYIN = $FD1B
|
||||||
|
ROM_COUT = $FDED
|
||||||
|
ROM_COUT1 = $FDF0
|
||||||
|
ROM_INVERSE = $FE80 ; INVERSE text
|
||||||
|
ROM_NORMAL = $FE84 ; NORMAL text (instead of INVERSE or FLASH)
|
||||||
|
ROM_IN0 = $FE89 ; SETKBD
|
||||||
|
ROM_PR0 = $FE93 ; SETVID
|
||||||
|
|
||||||
|
; ProDOS constants
|
||||||
|
CMD_QUIT = $65
|
||||||
|
CMD_ONLINE = $C5
|
||||||
|
CMD_SETPREFIX = $C6
|
||||||
|
CMD_GETPREFIX = $C7
|
||||||
|
CMD_OPEN = $C8
|
||||||
|
CMD_READ = $CA
|
||||||
|
CMD_WRITE = $CB
|
||||||
|
CMD_CLOSE = $CC
|
||||||
|
CMD_SEEK = $CE
|
||||||
|
|
||||||
|
_CONSTANTS_=*
|
||||||
|
}
|
487
res/ports/common/src/exodecrunch.a
Normal file
487
res/ports/common/src/exodecrunch.a
Normal file
|
@ -0,0 +1,487 @@
|
||||||
|
; This source code is altered and is not the original version found on
|
||||||
|
; the Exomizer homepage.
|
||||||
|
; It contains modifications made by qkumba to depack a packed file
|
||||||
|
; optionally crunched forward, and additional modifications by 4am
|
||||||
|
; for an optional progress UI.
|
||||||
|
;
|
||||||
|
; Original copyright statement follows:
|
||||||
|
;
|
||||||
|
; Copyright (c) 2002 - 2018 Magnus Lind.
|
||||||
|
;
|
||||||
|
; This software is provided 'as-is', without any express or implied warranty.
|
||||||
|
; In no event will the authors be held liable for any damages arising from
|
||||||
|
; the use of this software.
|
||||||
|
;
|
||||||
|
; Permission is granted to anyone to use this software for any purpose,
|
||||||
|
; including commercial applications, and to alter it and redistribute it
|
||||||
|
; freely, subject to the following restrictions:
|
||||||
|
;
|
||||||
|
; 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
; claim that you wrote the original software. If you use this software in a
|
||||||
|
; product, an acknowledgment in the product documentation would be
|
||||||
|
; appreciated but is not required.
|
||||||
|
;
|
||||||
|
; 2. Altered source versions must be plainly marked as such, and must not
|
||||||
|
; be misrepresented as being the original software.
|
||||||
|
;
|
||||||
|
; 3. This notice may not be removed or altered from any distribution.
|
||||||
|
;
|
||||||
|
; 4. The names of this software and/or it's copyright holders may not be
|
||||||
|
; used to endorse or promote products derived from this software without
|
||||||
|
; specific prior written permission.
|
||||||
|
;
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; The decruncher jsr:s to the get_crunched_byte address when it wants to
|
||||||
|
; read a crunched byte into A. This subroutine has to preserve X and Y
|
||||||
|
; register and must not modify the state of the carry nor the overflow flag.
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
;.import get_crunched_byte
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; this function is the heart of the decruncher.
|
||||||
|
; It initializes the decruncher zeropage locations and precalculates the
|
||||||
|
; decrunch tables and decrunches the data
|
||||||
|
; This function will not change the interrupt status bit and it will not
|
||||||
|
; modify the memory configuration.
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
;.export decrunch
|
||||||
|
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; Controls if the shared get_bits routines should be inlined or not.
|
||||||
|
;INLINE_GET_BITS=1
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; if literal sequences is not used (the data was crunched with the -c
|
||||||
|
; flag) then the following line can be uncommented for shorter and.
|
||||||
|
; slightly faster code.
|
||||||
|
;LITERAL_SEQUENCES_NOT_USED = 1
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; if the sequence length is limited to 256 (the data was crunched with
|
||||||
|
; the -M256 flag) then the following line can be uncommented for
|
||||||
|
; shorter and slightly faster code.
|
||||||
|
;MAX_SEQUENCE_LENGTH_256 = 1
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; if the sequence length 3 has its own offset table then the following
|
||||||
|
; line can be uncommented for in some situations slightly better
|
||||||
|
; compression at the cost of a larger decrunch table.
|
||||||
|
EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE = 1
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; optional progress UI
|
||||||
|
!IFNDEF SHOW_PROGRESS_DURING_DECRUNCH {
|
||||||
|
!set SHOW_PROGRESS_DURING_DECRUNCH = 0
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; zero page addresses used
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
zp_len_lo = $a7
|
||||||
|
zp_len_hi = $a8
|
||||||
|
|
||||||
|
zp_src_lo = $ae
|
||||||
|
zp_src_hi = zp_src_lo + 1
|
||||||
|
|
||||||
|
zp_bits_hi = $fc
|
||||||
|
|
||||||
|
zp_bitbuf = $fd
|
||||||
|
zp_dest_lo = zp_bitbuf + 1 ; dest addr lo
|
||||||
|
zp_dest_hi = zp_bitbuf + 2 ; dest addr hi
|
||||||
|
|
||||||
|
!IFDEF EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE {
|
||||||
|
encoded_entries = 68
|
||||||
|
} ELSE {
|
||||||
|
encoded_entries = 52
|
||||||
|
}
|
||||||
|
|
||||||
|
tabl_bi = decrunch_table
|
||||||
|
tabl_lo = decrunch_table + encoded_entries
|
||||||
|
tabl_hi = decrunch_table + encoded_entries * 2
|
||||||
|
|
||||||
|
;; refill bits is always inlined
|
||||||
|
!MACRO mac_refill_bits {
|
||||||
|
pha
|
||||||
|
jsr get_crunched_byte
|
||||||
|
rol
|
||||||
|
sta zp_bitbuf
|
||||||
|
pla
|
||||||
|
}
|
||||||
|
|
||||||
|
!IFDEF INLINE_GET_BITS {
|
||||||
|
!MACRO mac_get_bits {
|
||||||
|
adc #$80 ; needs c=0, affects v
|
||||||
|
asl
|
||||||
|
bpl gb_skip
|
||||||
|
gb_next:
|
||||||
|
asl zp_bitbuf
|
||||||
|
bne gb_ok
|
||||||
|
mac_refill_bits
|
||||||
|
gb_ok:
|
||||||
|
rol
|
||||||
|
bmi gb_next
|
||||||
|
gb_skip:
|
||||||
|
bvc skip
|
||||||
|
gb_get_hi:
|
||||||
|
sec
|
||||||
|
sta zp_bits_hi
|
||||||
|
jsr get_crunched_byte
|
||||||
|
skip:
|
||||||
|
}
|
||||||
|
} ELSE {
|
||||||
|
!MACRO mac_get_bits {
|
||||||
|
jsr get_bits
|
||||||
|
}
|
||||||
|
get_bits:
|
||||||
|
adc #$80 ; needs c=0, affects v
|
||||||
|
asl
|
||||||
|
bpl gb_skip
|
||||||
|
gb_next:
|
||||||
|
asl zp_bitbuf
|
||||||
|
bne gb_ok
|
||||||
|
+mac_refill_bits
|
||||||
|
gb_ok:
|
||||||
|
rol
|
||||||
|
bmi gb_next
|
||||||
|
gb_skip:
|
||||||
|
bvs gb_get_hi
|
||||||
|
rts
|
||||||
|
gb_get_hi:
|
||||||
|
sec
|
||||||
|
sta zp_bits_hi
|
||||||
|
jmp get_crunched_byte
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; no code below this comment has to be modified in order to generate
|
||||||
|
; a working decruncher of this source file.
|
||||||
|
; However, you may want to relocate the tables last in the file to a
|
||||||
|
; more suitable address.
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; jsr this label to decrunch, it will in turn init the tables and
|
||||||
|
; call the decruncher
|
||||||
|
; no constraints on register content, however the
|
||||||
|
; decimal flag has to be #0 (it almost always is, otherwise do a cld)
|
||||||
|
decrunch:
|
||||||
|
|
||||||
|
!IF SHOW_PROGRESS_DURING_DECRUNCH = 1 {
|
||||||
|
ldx #(kExoProgressWidth+2)
|
||||||
|
lda #$DF
|
||||||
|
- sta $0528+(20-(kExoProgressWidth/2))-2, x
|
||||||
|
sta $05A8+(20-(kExoProgressWidth/2))-2, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
lda #$20
|
||||||
|
sta $05A8+(20-(kExoProgressWidth/2))-2
|
||||||
|
sta $05A8+(20-(kExoProgressWidth/2))+kExoProgressWidth
|
||||||
|
lda #$A8+(20-(kExoProgressWidth/2))-1
|
||||||
|
sta ExoProgressPtr+1
|
||||||
|
decrunch_no_reset_progress:
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; init zeropage, x and y regs. (12 bytes)
|
||||||
|
;
|
||||||
|
ldy #0
|
||||||
|
ldx #3
|
||||||
|
init_zp:
|
||||||
|
jsr get_crunched_byte
|
||||||
|
sta zp_bitbuf - 1,x
|
||||||
|
dex
|
||||||
|
bne init_zp
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; calculate tables (62 bytes) + get_bits macro
|
||||||
|
; x and y must be #0 when entering
|
||||||
|
;
|
||||||
|
clc
|
||||||
|
table_gen:
|
||||||
|
tax
|
||||||
|
tya
|
||||||
|
and #$0f
|
||||||
|
sta tabl_lo,y
|
||||||
|
beq shortcut ; start a new sequence
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
txa
|
||||||
|
adc tabl_lo - 1,y
|
||||||
|
sta tabl_lo,y
|
||||||
|
lda zp_len_hi
|
||||||
|
adc tabl_hi - 1,y
|
||||||
|
shortcut:
|
||||||
|
sta tabl_hi,y
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
lda #$01
|
||||||
|
sta <zp_len_hi
|
||||||
|
lda #$78 ; %01111000
|
||||||
|
+mac_get_bits
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
lsr
|
||||||
|
tax
|
||||||
|
beq rolled
|
||||||
|
php
|
||||||
|
rolle:
|
||||||
|
asl zp_len_hi
|
||||||
|
sec
|
||||||
|
ror
|
||||||
|
dex
|
||||||
|
bne rolle
|
||||||
|
plp
|
||||||
|
rolled:
|
||||||
|
ror
|
||||||
|
sta tabl_bi,y
|
||||||
|
bmi no_fixup_lohi
|
||||||
|
lda zp_len_hi
|
||||||
|
stx zp_len_hi
|
||||||
|
!BYTE $24
|
||||||
|
no_fixup_lohi:
|
||||||
|
txa
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
iny
|
||||||
|
cpy #encoded_entries
|
||||||
|
bne table_gen
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; prepare for main decruncher
|
||||||
|
ldy zp_dest_lo
|
||||||
|
stx zp_dest_lo
|
||||||
|
stx zp_bits_hi
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; copy one literal byte to destination (11(10) bytes)
|
||||||
|
;
|
||||||
|
!ifndef FORWARD_DECRUNCHING {
|
||||||
|
!set FORWARD_DECRUNCHING = 1
|
||||||
|
}
|
||||||
|
literal_start1:
|
||||||
|
!IF SHOW_PROGRESS_DURING_DECRUNCH = 1 {
|
||||||
|
dec ExoProgressCounter
|
||||||
|
bne +
|
||||||
|
lda #$20
|
||||||
|
ExoProgressPtr
|
||||||
|
sta $0500 ; SMC lo byte
|
||||||
|
inc ExoProgressPtr+1
|
||||||
|
+
|
||||||
|
}
|
||||||
|
!if FORWARD_DECRUNCHING = 0 {
|
||||||
|
tya
|
||||||
|
bne no_hi_decr
|
||||||
|
dec zp_dest_hi
|
||||||
|
no_hi_decr:
|
||||||
|
dey
|
||||||
|
jsr get_crunched_byte
|
||||||
|
sta (zp_dest_lo),y
|
||||||
|
} else {
|
||||||
|
jsr get_crunched_byte
|
||||||
|
sta (zp_dest_lo),y
|
||||||
|
iny
|
||||||
|
bne no_hi_incr
|
||||||
|
inc zp_dest_hi
|
||||||
|
no_hi_incr:
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; fetch sequence length index (15 bytes)
|
||||||
|
; x must be #0 when entering and contains the length index + 1
|
||||||
|
; when exiting or 0 for literal byte
|
||||||
|
next_round:
|
||||||
|
dex
|
||||||
|
lda zp_bitbuf
|
||||||
|
no_literal1:
|
||||||
|
asl
|
||||||
|
bne nofetch8
|
||||||
|
jsr get_crunched_byte
|
||||||
|
rol
|
||||||
|
nofetch8:
|
||||||
|
inx
|
||||||
|
bcc no_literal1
|
||||||
|
sta zp_bitbuf
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; check for literal byte (2 bytes)
|
||||||
|
;
|
||||||
|
beq literal_start1
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; check for decrunch done and literal sequences (4 bytes)
|
||||||
|
;
|
||||||
|
cpx #$11
|
||||||
|
!IFDEF INLINE_GET_BITS {
|
||||||
|
bcc skip_jmp
|
||||||
|
jmp exit_or_lit_seq
|
||||||
|
skip_jmp:
|
||||||
|
} ELSE {
|
||||||
|
bcs exit_or_lit_seq
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; calulate length of sequence (zp_len) (18(11) bytes) + get_bits macro
|
||||||
|
;
|
||||||
|
lda tabl_bi - 1,x
|
||||||
|
+mac_get_bits
|
||||||
|
adc tabl_lo - 1,x ; we have now calculated zp_len_lo
|
||||||
|
sta zp_len_lo
|
||||||
|
!IFNDEF MAX_SEQUENCE_LENGTH_256 {
|
||||||
|
lda zp_bits_hi
|
||||||
|
adc tabl_hi - 1,x ; c = 0 after this.
|
||||||
|
sta zp_len_hi
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; here we decide what offset table to use (27(26) bytes) + get_bits_nc macro
|
||||||
|
; z-flag reflects zp_len_hi here
|
||||||
|
;
|
||||||
|
ldx zp_len_lo
|
||||||
|
} ELSE {
|
||||||
|
tax
|
||||||
|
}
|
||||||
|
lda #$e1
|
||||||
|
!IFDEF EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE {
|
||||||
|
cpx #$04
|
||||||
|
} ELSE {
|
||||||
|
cpx #$03
|
||||||
|
}
|
||||||
|
bcs gbnc2_next
|
||||||
|
lda tabl_bit - 1,x
|
||||||
|
gbnc2_next:
|
||||||
|
asl zp_bitbuf
|
||||||
|
bne gbnc2_ok
|
||||||
|
tax
|
||||||
|
jsr get_crunched_byte
|
||||||
|
rol
|
||||||
|
sta zp_bitbuf
|
||||||
|
txa
|
||||||
|
gbnc2_ok:
|
||||||
|
rol
|
||||||
|
bcs gbnc2_next
|
||||||
|
tax
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; calulate absolute offset (zp_src) (21(23) bytes) + get_bits macro
|
||||||
|
;
|
||||||
|
!IFNDEF MAX_SEQUENCE_LENGTH_256 {
|
||||||
|
lda #0
|
||||||
|
sta zp_bits_hi
|
||||||
|
}
|
||||||
|
lda tabl_bi,x
|
||||||
|
+mac_get_bits
|
||||||
|
!if FORWARD_DECRUNCHING = 0 {
|
||||||
|
adc tabl_lo,x
|
||||||
|
sta zp_src_lo
|
||||||
|
lda zp_bits_hi
|
||||||
|
adc tabl_hi,x
|
||||||
|
adc zp_dest_hi
|
||||||
|
} else {
|
||||||
|
clc
|
||||||
|
adc tabl_lo,x
|
||||||
|
eor #$ff
|
||||||
|
sta zp_src_lo
|
||||||
|
lda zp_dest_hi
|
||||||
|
bcc skip_dest_hi
|
||||||
|
sbc #1
|
||||||
|
clc
|
||||||
|
skip_dest_hi:
|
||||||
|
sbc zp_bits_hi
|
||||||
|
sbc tabl_hi,x
|
||||||
|
clc
|
||||||
|
}
|
||||||
|
sta zp_src_hi
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; prepare for copy loop (2 bytes)
|
||||||
|
;
|
||||||
|
pre_copy:
|
||||||
|
ldx zp_len_lo
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; main copy loop (30 bytes)
|
||||||
|
;
|
||||||
|
copy_next:
|
||||||
|
!if FORWARD_DECRUNCHING = 0 {
|
||||||
|
tya
|
||||||
|
bne copy_skip_hi
|
||||||
|
dec zp_dest_hi
|
||||||
|
dec zp_src_hi
|
||||||
|
copy_skip_hi:
|
||||||
|
dey
|
||||||
|
}
|
||||||
|
!IFNDEF LITERAL_SEQUENCES_NOT_USED {
|
||||||
|
bcs get_literal_byte
|
||||||
|
}
|
||||||
|
lda (zp_src_lo),y
|
||||||
|
literal_byte_gotten:
|
||||||
|
sta (zp_dest_lo),y
|
||||||
|
!if FORWARD_DECRUNCHING = 1 {
|
||||||
|
iny
|
||||||
|
bne copy_skip_hi
|
||||||
|
inc zp_dest_hi
|
||||||
|
inc zp_src_hi
|
||||||
|
copy_skip_hi:
|
||||||
|
}
|
||||||
|
dex
|
||||||
|
bne copy_next
|
||||||
|
!IFNDEF MAX_SEQUENCE_LENGTH_256 {
|
||||||
|
lda zp_len_hi
|
||||||
|
!IFDEF INLINE_GET_BITS {
|
||||||
|
bne copy_next_hi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
begin_stx:
|
||||||
|
stx zp_bits_hi
|
||||||
|
!IFNDEF INLINE_GET_BITS {
|
||||||
|
beq next_round
|
||||||
|
} ELSE {
|
||||||
|
jmp next_round
|
||||||
|
}
|
||||||
|
!IFNDEF MAX_SEQUENCE_LENGTH_256 {
|
||||||
|
copy_next_hi:
|
||||||
|
dec zp_len_hi
|
||||||
|
jmp copy_next
|
||||||
|
}
|
||||||
|
!IFNDEF LITERAL_SEQUENCES_NOT_USED {
|
||||||
|
get_literal_byte:
|
||||||
|
jsr get_crunched_byte
|
||||||
|
bcs literal_byte_gotten
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; exit or literal sequence handling (16(12) bytes)
|
||||||
|
;
|
||||||
|
exit_or_lit_seq:
|
||||||
|
!IFNDEF LITERAL_SEQUENCES_NOT_USED {
|
||||||
|
beq decr_exit
|
||||||
|
jsr get_crunched_byte
|
||||||
|
!IFNDEF MAX_SEQUENCE_LENGTH_256 {
|
||||||
|
sta zp_len_hi
|
||||||
|
}
|
||||||
|
jsr get_crunched_byte
|
||||||
|
tax
|
||||||
|
bcs copy_next
|
||||||
|
decr_exit:
|
||||||
|
}
|
||||||
|
rts
|
||||||
|
!IFDEF EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE {
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; the static stable used for bits+offset for lengths 1, 2 and 3 (3 bytes)
|
||||||
|
; bits 2, 4, 4 and offsets 64, 48, 32 corresponding to
|
||||||
|
; %10010000, %11100011, %11100010
|
||||||
|
tabl_bit:
|
||||||
|
!BYTE $90, $e3, $e2
|
||||||
|
} ELSE {
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; the static stable used for bits+offset for lengths 1 and 2 (2 bytes)
|
||||||
|
; bits 2, 4 and offsets 48, 32 corresponding to %10001100, %11100010
|
||||||
|
tabl_bit:
|
||||||
|
!BYTE $8c, $e2
|
||||||
|
}
|
||||||
|
!IF SHOW_PROGRESS_DURING_DECRUNCH = 1 {
|
||||||
|
ExoProgressCounter
|
||||||
|
!byte $00
|
||||||
|
}
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; end of decruncher
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; this 156 (204) byte table area may be relocated. It may also be
|
||||||
|
; clobbered by other data between decrunches.
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
decrunch_table=$200;;:
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;;.IFDEF EXTRA_TABLE_ENTRY_FOR_LENGTH_THREE
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;;.ENDIF
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
;; .byte 0,0,0,0,0,0,0,0,0,0,0,0
|
||||||
|
; -------------------------------------------------------------------
|
||||||
|
; end of decruncher
|
||||||
|
; -------------------------------------------------------------------
|
55
res/ports/common/src/macros.a
Normal file
55
res/ports/common/src/macros.a
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
!macro INIT_MACHINE {
|
||||||
|
cld
|
||||||
|
bit $C082
|
||||||
|
sta PRIMARYCHARSET
|
||||||
|
sta CLR80VID
|
||||||
|
sta STOREOFF
|
||||||
|
sta READMAINMEM
|
||||||
|
jsr ROM_TEXT
|
||||||
|
jsr ROM_HOME
|
||||||
|
jsr ROM_PR0
|
||||||
|
jsr ROM_IN0
|
||||||
|
}
|
||||||
|
|
||||||
|
; X=0, Z=1 on exit
|
||||||
|
; A clobbered
|
||||||
|
; Y preserved
|
||||||
|
!macro SHORT_COPY .start, .end, .target {
|
||||||
|
ldx #<(.end-.start)
|
||||||
|
- lda .start-1, x
|
||||||
|
sta .target-1, x
|
||||||
|
dex
|
||||||
|
bne -
|
||||||
|
}
|
||||||
|
|
||||||
|
!macro READ_ENTIRE_FILE .parm_open, .parm_read {
|
||||||
|
jsr PRODOS_MLI
|
||||||
|
!byte CMD_OPEN
|
||||||
|
!word .parm_open
|
||||||
|
jsr PRODOS_MLI
|
||||||
|
!byte CMD_READ
|
||||||
|
!word .parm_read
|
||||||
|
jsr PRODOS_MLI
|
||||||
|
!byte CMD_CLOSE
|
||||||
|
!word +
|
||||||
|
!byte $2C
|
||||||
|
+ !byte 1
|
||||||
|
!byte 0
|
||||||
|
}
|
||||||
|
|
||||||
|
!macro COPY_TO_AUXMEM .mainstart, .mainend, .auxstart {
|
||||||
|
lda #<.mainstart
|
||||||
|
sta $3C
|
||||||
|
lda #>.mainstart
|
||||||
|
sta $3D
|
||||||
|
lda #<.mainend
|
||||||
|
sta $3E
|
||||||
|
lda #>.mainend
|
||||||
|
sta $3F
|
||||||
|
lda #<.auxstart
|
||||||
|
sta $42
|
||||||
|
lda #>.auxstart
|
||||||
|
sta $43
|
||||||
|
sec
|
||||||
|
jsr AUXMOVE
|
||||||
|
}
|
54
res/ports/common/src/prodos.init.a
Normal file
54
res/ports/common/src/prodos.init.a
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2024 by 4am
|
||||||
|
;
|
||||||
|
|
||||||
|
;
|
||||||
|
; Ensure ProDOS has a current prefix, otherwise opening any file will fail,
|
||||||
|
; which is bad. If launched from Bitsy Bye, there will be no current prefix.
|
||||||
|
; In that case, we get the boot volume name, then set the prefix to that.
|
||||||
|
; PREFIX_BUFFER ($40 bytes) is clobbered but may be reused after.
|
||||||
|
;
|
||||||
|
prefix_loop
|
||||||
|
jsr PRODOS_MLI
|
||||||
|
op_prefix
|
||||||
|
!byte CMD_GETPREFIX ; self-modified
|
||||||
|
!word parm_prefix
|
||||||
|
ldx PREFIX_BUFFER
|
||||||
|
bne clear_memory_map
|
||||||
|
; get boot volume name
|
||||||
|
lda PRODOS_BOOT_UNIT
|
||||||
|
sta parm_online_unit
|
||||||
|
jsr PRODOS_MLI
|
||||||
|
!byte CMD_ONLINE
|
||||||
|
!word parm_online
|
||||||
|
|
||||||
|
lda PREFIX_BUFFER+1
|
||||||
|
and #$0F
|
||||||
|
tax
|
||||||
|
inx
|
||||||
|
stx PREFIX_BUFFER
|
||||||
|
lda #$2F
|
||||||
|
sta PREFIX_BUFFER+1
|
||||||
|
; PREFIX_BUFFER is now a length-prefixed string
|
||||||
|
; of '/' + the boot volume name
|
||||||
|
|
||||||
|
dec op_prefix ; -> CMD_SETPREFIX
|
||||||
|
bne prefix_loop ; always branches
|
||||||
|
|
||||||
|
parm_prefix
|
||||||
|
!byte 1
|
||||||
|
!word PREFIX_BUFFER
|
||||||
|
|
||||||
|
parm_online
|
||||||
|
!byte 2
|
||||||
|
parm_online_unit
|
||||||
|
!byte SELF_MODIFIED_BYTE
|
||||||
|
!word PREFIX_BUFFER+1
|
||||||
|
|
||||||
|
clear_memory_map
|
||||||
|
; clear ProDOS memory bitmap
|
||||||
|
ldx #$17
|
||||||
|
lda #$00
|
||||||
|
- sta PRODOS_MEMORY_MAP, x
|
||||||
|
dex
|
||||||
|
bpl -
|
51
res/ports/hopman/Makefile
Normal file
51
res/ports/hopman/Makefile
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# https://sourceforge.net/projects/acme-crossass/
|
||||||
|
ACME=acme
|
||||||
|
|
||||||
|
# https://github.com/mach-kernel/cadius
|
||||||
|
CADIUS=cadius
|
||||||
|
|
||||||
|
EXOMIZER=exomizer mem -lnone -P23 -f -q
|
||||||
|
|
||||||
|
BUILDDIR=build
|
||||||
|
DISKVOLUME=HOPMAN
|
||||||
|
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
|
||||||
|
EXE=$(BUILDDIR)/HOPMAN\#068000
|
||||||
|
COMPRESSED=src/OBJ.X
|
||||||
|
SOURCES=$(wildcard src/*.a) $(COMPRESSED)
|
||||||
|
RES=$(wildcard res/*) $(wildcard ../common/res/*)
|
||||||
|
BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po
|
||||||
|
|
||||||
|
.PHONY: clean mount all
|
||||||
|
|
||||||
|
$(BUILDDISK): $(EXE) $(LOADER) $(RES)
|
||||||
|
|
||||||
|
$(LOADER): $(SOURCES) | $(BUILDDIR)
|
||||||
|
$(ACME) src/loader.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(EXE): $(SOURCES) $(COMPRESSED) | $(BUILDDIR)
|
||||||
|
$(ACME) src/hopman.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(RES): $(BUILDDIR)
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(COMPRESSED):
|
||||||
|
$(EXOMIZER) src/OBJ@0x4000 -o "$@"
|
||||||
|
|
||||||
|
mount: $(BUILDDISK)
|
||||||
|
@open "$(BUILDDISK)"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf "$(BUILDDIR)"
|
||||||
|
|
||||||
|
$(BUILDDIR):
|
||||||
|
mkdir -p "$@"
|
||||||
|
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
|
||||||
|
|
||||||
|
all: clean mount
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
BIN
res/ports/hopman/build/HOPMAN#068000
Normal file
BIN
res/ports/hopman/build/HOPMAN#068000
Normal file
Binary file not shown.
BIN
res/ports/hopman/build/HOPMAN.po
Normal file
BIN
res/ports/hopman/build/HOPMAN.po
Normal file
Binary file not shown.
BIN
res/ports/hopman/build/LOADER.SYSTEM#FF2000
Normal file
BIN
res/ports/hopman/build/LOADER.SYSTEM#FF2000
Normal file
Binary file not shown.
BIN
res/ports/hopman/src/OBJ
Normal file
BIN
res/ports/hopman/src/OBJ
Normal file
Binary file not shown.
BIN
res/ports/hopman/src/OBJ.X
Normal file
BIN
res/ports/hopman/src/OBJ.X
Normal file
Binary file not shown.
29
res/ports/hopman/src/hopman.a
Normal file
29
res/ports/hopman/src/hopman.a
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$8000
|
||||||
|
!to "build/HOPMAN#068000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
jmp start
|
||||||
|
|
||||||
|
compressed_data
|
||||||
|
!bin "src/OBJ.X"
|
||||||
|
FORWARD_DECRUNCHING = 1
|
||||||
|
SHOW_PROGRESS_DURING_DECRUNCH = 0
|
||||||
|
!src "../common/src/exodecrunch.a"
|
||||||
|
|
||||||
|
start
|
||||||
|
+INIT_MACHINE
|
||||||
|
!if * != $98D6 {
|
||||||
|
!serious "Adjust prelaunch to patch JSR at ", *, " to JMP"
|
||||||
|
}
|
||||||
|
jsr decrunch ; compressed data contains target address
|
||||||
|
jmp $4000
|
||||||
|
|
||||||
|
get_crunched_byte
|
||||||
|
lda compressed_data
|
||||||
|
inc get_crunched_byte+1
|
||||||
|
bne +
|
||||||
|
inc get_crunched_byte+2
|
||||||
|
+ rts
|
25
res/ports/hopman/src/loader.a
Normal file
25
res/ports/hopman/src/loader.a
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$2000
|
||||||
|
!to "build/LOADER.SYSTEM#FF2000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
+READ_ENTIRE_FILE parm_boot_open, parm_boot_read
|
||||||
|
jmp (entry)
|
||||||
|
|
||||||
|
parm_boot_open
|
||||||
|
!byte 3
|
||||||
|
!word filename
|
||||||
|
!word $2100
|
||||||
|
!byte 0
|
||||||
|
|
||||||
|
parm_boot_read
|
||||||
|
!byte 4
|
||||||
|
!byte 1
|
||||||
|
entry !word $8000
|
||||||
|
!word $FFFF
|
||||||
|
!word 0
|
||||||
|
|
||||||
|
filename
|
||||||
|
!text 6,"HOPMAN"
|
51
res/ports/yewdow/Makefile
Normal file
51
res/ports/yewdow/Makefile
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
# https://sourceforge.net/projects/acme-crossass/
|
||||||
|
ACME=acme
|
||||||
|
|
||||||
|
# https://github.com/mach-kernel/cadius
|
||||||
|
CADIUS=cadius
|
||||||
|
|
||||||
|
EXOMIZER=exomizer mem -lnone -P23 -f -q
|
||||||
|
|
||||||
|
BUILDDIR=build
|
||||||
|
DISKVOLUME=YEWDOW
|
||||||
|
LOADER=$(BUILDDIR)/LOADER.SYSTEM\#FF2000
|
||||||
|
EXE=$(BUILDDIR)/YEWDOW\#068000
|
||||||
|
COMPRESSED=src/OBJ.X
|
||||||
|
SOURCES=$(wildcard src/*.a) $(COMPRESSED)
|
||||||
|
RES=$(wildcard res/*) $(wildcard ../common/res/*)
|
||||||
|
BUILDDISK=$(BUILDDIR)/$(DISKVOLUME).po
|
||||||
|
|
||||||
|
.PHONY: clean mount all
|
||||||
|
|
||||||
|
$(BUILDDISK): $(EXE) $(LOADER) $(RES)
|
||||||
|
|
||||||
|
$(LOADER): $(SOURCES) | $(BUILDDIR)
|
||||||
|
$(ACME) src/loader.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(LOADER)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(EXE): $(SOURCES) $(COMPRESSED) | $(BUILDDIR)
|
||||||
|
$(ACME) src/yewdow.a
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$(EXE)" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(RES): $(BUILDDIR)
|
||||||
|
$(CADIUS) REPLACEFILE "$(BUILDDISK)" "/$(DISKVOLUME)/" "$@" -C
|
||||||
|
@touch "$@"
|
||||||
|
|
||||||
|
$(COMPRESSED):
|
||||||
|
$(EXOMIZER) src/OBJ@0x4000 -o "$@"
|
||||||
|
|
||||||
|
mount: $(BUILDDISK)
|
||||||
|
@open "$(BUILDDISK)"
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf "$(BUILDDIR)"
|
||||||
|
|
||||||
|
$(BUILDDIR):
|
||||||
|
mkdir -p "$@"
|
||||||
|
$(CADIUS) CREATEVOLUME "$(BUILDDISK)" "$(DISKVOLUME)" 140KB -C
|
||||||
|
|
||||||
|
all: clean mount
|
||||||
|
|
||||||
|
.NOTPARALLEL:
|
BIN
res/ports/yewdow/build/LOADER.SYSTEM#FF2000
Normal file
BIN
res/ports/yewdow/build/LOADER.SYSTEM#FF2000
Normal file
Binary file not shown.
BIN
res/ports/yewdow/build/YEWDOW#068000
Normal file
BIN
res/ports/yewdow/build/YEWDOW#068000
Normal file
Binary file not shown.
BIN
res/ports/yewdow/build/YEWDOW.po
Normal file
BIN
res/ports/yewdow/build/YEWDOW.po
Normal file
Binary file not shown.
BIN
res/ports/yewdow/src/OBJ
Normal file
BIN
res/ports/yewdow/src/OBJ
Normal file
Binary file not shown.
BIN
res/ports/yewdow/src/OBJ.X
Normal file
BIN
res/ports/yewdow/src/OBJ.X
Normal file
Binary file not shown.
25
res/ports/yewdow/src/loader.a
Normal file
25
res/ports/yewdow/src/loader.a
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$2000
|
||||||
|
!to "build/LOADER.SYSTEM#FF2000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
+READ_ENTIRE_FILE parm_boot_open, parm_boot_read
|
||||||
|
jmp (entry)
|
||||||
|
|
||||||
|
parm_boot_open
|
||||||
|
!byte 3
|
||||||
|
!word filename
|
||||||
|
!word $2100
|
||||||
|
!byte 0
|
||||||
|
|
||||||
|
parm_boot_read
|
||||||
|
!byte 4
|
||||||
|
!byte 1
|
||||||
|
entry !word $8000
|
||||||
|
!word $FFFF
|
||||||
|
!word 0
|
||||||
|
|
||||||
|
filename
|
||||||
|
!text 6,"YEWDOW"
|
29
res/ports/yewdow/src/yewdow.a
Normal file
29
res/ports/yewdow/src/yewdow.a
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
!cpu 6502
|
||||||
|
*=$8000
|
||||||
|
!to "build/YEWDOW#068000",plain
|
||||||
|
|
||||||
|
!src "../common/src/constants.a"
|
||||||
|
!src "../common/src/macros.a"
|
||||||
|
|
||||||
|
jmp start
|
||||||
|
|
||||||
|
compressed_data
|
||||||
|
!bin "src/OBJ.X"
|
||||||
|
FORWARD_DECRUNCHING = 1
|
||||||
|
SHOW_PROGRESS_DURING_DECRUNCH = 0
|
||||||
|
!src "../common/src/exodecrunch.a"
|
||||||
|
|
||||||
|
start
|
||||||
|
+INIT_MACHINE
|
||||||
|
!if * != $99CD {
|
||||||
|
!serious "Adjust prelaunch to patch JSR at ", *, " to JMP"
|
||||||
|
}
|
||||||
|
jsr decrunch ; compressed data contains target address
|
||||||
|
jmp $4000
|
||||||
|
|
||||||
|
get_crunched_byte
|
||||||
|
lda compressed_data
|
||||||
|
inc get_crunched_byte+1
|
||||||
|
bne +
|
||||||
|
inc get_crunched_byte+2
|
||||||
|
+ rts
|
|
@ -27,8 +27,8 @@
|
||||||
; DFB4..DFFF - (de)acceleration function
|
; DFB4..DFFF - (de)acceleration function
|
||||||
;
|
;
|
||||||
; MAIN MEMORY DURING SEARCH/BROWSE MODE
|
; MAIN MEMORY DURING SEARCH/BROWSE MODE
|
||||||
; 6000..9FFF - search index
|
; 6000..9FFF - search index (489 games = $3AEB/$4000)
|
||||||
; A000..BCFF - search cache
|
; A000..BCFF - search cache (489 games = $1957/$1D00)
|
||||||
; BD00..BEFF - prefs buffer (used to write PREFS.CONF if cheat mode changes)
|
; BD00..BEFF - prefs buffer (used to write PREFS.CONF if cheat mode changes)
|
||||||
; BF00..BFFF - ProRWTS glue (supports LoadIndexedFile)
|
; BF00..BFFF - ProRWTS glue (supports LoadIndexedFile)
|
||||||
;
|
;
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15468090
|
!be24 15514779
|
||||||
!le16 5112
|
!le16 5112
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15413369
|
!be24 15459857
|
||||||
!le16 5695
|
!le16 5707
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15346289
|
!be24 15392547
|
||||||
!le16 4043
|
!le16 4043
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15360536
|
!be24 15406794
|
||||||
!le16 4508
|
!le16 4508
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15378696
|
!be24 15425028
|
||||||
!le16 5840
|
!le16 5861
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15399545
|
!be24 15445972
|
||||||
!le16 6466
|
!le16 6487
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
;
|
;
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!word 443
|
!word 446
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
;
|
;
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!word 486
|
!word 489
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15473202
|
!be24 15519891
|
||||||
!le16 410
|
!le16 410
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15473956
|
!be24 15520645
|
||||||
!le16 449
|
!le16 449
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15474405
|
!be24 15521094
|
||||||
!le16 303
|
!le16 303
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 12321166
|
!be24 12348895
|
||||||
!le16 1652
|
!le16 1652
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15421704
|
!be24 15468204
|
||||||
!le16 1640
|
!le16 1640
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15473688
|
!be24 15520377
|
||||||
!le16 67
|
!le16 67
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15468031
|
!be24 15514720
|
||||||
!le16 59
|
!le16 59
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15466487
|
!be24 15513176
|
||||||
!le16 1426
|
!le16 1426
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15450679
|
!be24 15497299
|
||||||
!le16 557
|
!le16 557
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15419064
|
!be24 15465564
|
||||||
!le16 2640
|
!le16 2640
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15423702
|
!be24 15470202
|
||||||
!le16 7358
|
!le16 7398
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15473612
|
!be24 15520301
|
||||||
!le16 76
|
!le16 76
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15467913
|
!be24 15514602
|
||||||
!le16 118
|
!le16 118
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15473755
|
!be24 15520444
|
||||||
!le16 201
|
!le16 201
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15451236
|
!be24 15497856
|
||||||
!le16 4922
|
!le16 4951
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15456158
|
!be24 15502807
|
||||||
!le16 1775
|
!le16 1802
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15457933
|
!be24 15504609
|
||||||
!le16 1181
|
!le16 1181
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15459114
|
!be24 15505790
|
||||||
!le16 3421
|
!le16 3421
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15462535
|
!be24 15509211
|
||||||
!le16 3359
|
!le16 3359
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 15465894
|
!be24 15512570
|
||||||
!le16 479
|
!le16 479
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user