A2osX/ProDOS.FX/PDOS8M.S.txt

233 lines
4.7 KiB
Plaintext
Raw Normal View History

2023-11-04 14:42:28 +00:00
NEW
AUTO 3,1
.LIST OFF
.OP 65816
.OR $2000
2023-11-12 13:20:15 +00:00
.TF PRODOS.8M,TSYS
2023-11-04 14:42:28 +00:00
*--------------------------------------
2023-11-12 13:20:15 +00:00
KVER .EQ $8D release "8M"
2023-11-04 14:42:28 +00:00
*--------------------------------------
READCAT .EQ 1 Boot Block read Catalog at $C00
ENHFILENAME .EQ 1
2023-11-12 13:20:15 +00:00
DIREXTENDROOT .EQ 1
2023-11-04 14:42:28 +00:00
LOWERCASE .EQ 1
ACL .EQ 1
LOGO .EQ 1
AUXLC .EQ 1
M.PM .EQ 0
M.RAM .EQ 0
2023-11-12 13:20:15 +00:00
M.SEL .EQ 1
2023-11-04 14:42:28 +00:00
*--------------------------------------
.INB inc/zp.i
.INB inc/io.i
.INB inc/io.iigs.i
.INB inc/io.d2.i
.INB inc/mli.i
.INB inc/mli.e.i
.INB inc/rom.ii.i
.INB inc/rom.iie.i
.INB inc/rom.iigs.i
*--------------------------------------
ILDR .EQ $0800
GP .EQ $BF00
XRW .EQ $D000
CLK .EQ $D742
XDOS.PathBuf .EQ $D700
*XDOS.prefixbuf .EQ $D742+125
XDOS.FCBs .EQ $D800 8 opened files
XDOS.VCBs .EQ $D900 10 mounted vols
XDOS.BMBuf .EQ $DA00 512 byte bitmap buffer
XDOS.GBuf .EQ $DC00 general purpose 512 byte block buffer
XDOS .EQ $DE00
RAM .EQ $FF00
IRQ .EQ $FF9B
RAMX .EQ $0200
*--------------------------------------
.DUMMY
.OR $10
ZPPtr1 .BS 2
ZPPtr2 .BS 2
ZPInBufPtr .BS 2
ZPOutBufPtr .BS 2
ZPnCnt .BS 2
ZPInMask .BS 1
ZPBLOfsLBits .BS 1
ZPBLOfsHBits .BS 1
ZPBLLenBits .BS 1
.ED
*--------------------------------------
.INB usr/src/prodos.fx/prodos.s.ldr
X.Unpak.XatYAX .DO AUXLC=1
stx X.Unpak.XatYAX.X+1
php
sei
sta IO.SETALTZP
tsx
stx $100
ldx $101
txs
X.Unpak.XatYAX.X
ldx #$FF SELF MODIFIED
jsr X.Unpak.XatYA
tsx
stx $101
ldx $100
txs
sta IO.CLRALTZP
plp
rts
.FIN
X.Unpak.XatYA sty ZPOutBufPtr
sta ZPOutBufPtr+1
lda PAKME.Table,x
sta ZPInBufPtr
lda PAKME.Table+1,x
sta ZPInBufPtr+1
.INB usr/src/shared/x.unpak.s
.DO LOGO=1
.INB usr/src/prodos.fx/prodos.s.logo
.FIN
*--------------------------------------
2023-11-12 13:20:15 +00:00
PAKME.Table
PAKME.ID .SE 0
PAKME.ILDR.ID .EQ PAKME.ID
PAKME.ILDR .DA ILDR.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.GP.ID .EQ PAKME.ID
PAKME.GP .DA GP.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.XRW.ID .EQ PAKME.ID
PAKME.XRW .DA XRW.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.XDOS.ID .EQ PAKME.ID
PAKME.XDOS .DA XDOS.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.IRQ.ID .EQ PAKME.ID
PAKME.IRQ .DA IRQ.PAK
PAKME.ID .SE PAKME.ID+2
.DO M.RAM=1
PAKME.RAM.ID .EQ PAKME.ID
PAKME.RAM .DA RAM.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.RAMX.ID .EQ PAKME.ID
PAKME.RAMX .DA RAMX.PAK
PAKME.ID .SE PAKME.ID+2
.FIN
PAKME.DCLK.ID .EQ PAKME.ID
PAKME.DCLK .DA DCLK.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.NCLK.ID .EQ PAKME.ID
PAKME.NCLK .DA NCLK.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.TCLK.ID .EQ PAKME.ID
PAKME.TCLK .DA TCLK.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.XCLK.ID .EQ PAKME.ID
PAKME.XCLK .DA XCLK.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.CCLK.ID .EQ PAKME.ID
PAKME.CCLK .DA CCLK.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.SEL1.ID .EQ PAKME.ID
PAKME.SEL1 .DA SEL1.PAK
PAKME.ID .SE PAKME.ID+2
PAKME.SEL2.ID .EQ PAKME.ID
PAKME.SEL2 .DA SEL2.PAK
PAKME.ID .SE PAKME.ID+2
*--------------------------------------
2023-11-04 14:42:28 +00:00
ILDR.PAK .DA #0
.DA ILDR.LEN
.INB usr/src/prodos.fx/prodos.s.ildr
GP.PAK .DA #0
.DA GP.LEN
.INB usr/src/prodos.fx/prodos.s.gp
XRW.PAK .DA #0
.DA XRW.LEN
.INB usr/src/prodos.fx/prodos.s.xrw
XDOS.PAK .DA #0
.DA XDOS.LEN
.INB usr/src/prodos.fx/prodos.s.xdos.a
.INB usr/src/prodos.fx/prodos.s.xdos.b
.INB usr/src/prodos.fx/prodos.s.xdos.c
.INB usr/src/prodos.fx/prodos.s.xdos.d
.INB usr/src/prodos.fx/prodos.s.xdos.e
.INB usr/src/prodos.fx/prodos.s.xdos.f
IRQ.PAK .DA #0
.DA IRQ.LEN
.INB usr/src/prodos.fx/prodos.s.irq
.DO M.RAM=1
RAM.PAK .DA #0
.DA RAM.LEN
.INB usr/src/prodos.fx/prodos.s.ram
RAMX.PAK .DA #0
.DA RAMX.LEN
.INB usr/src/prodos.fx/prodos.s.ramx
.FIN
DCLK.PAK .DA #0
.DA DCLK.LEN
.INB usr/src/prodos.fx/prodos.s.dclk
NCLK.PAK .DA #0
.DA NCLK.LEN
.INB usr/src/prodos.fx/prodos.s.nclk
TCLK.PAK .DA #0
.DA TCLK.LEN
.INB usr/src/prodos.fx/prodos.s.tclk
XCLK.PAK .DA #0
.DA XCLK.LEN
.INB usr/src/prodos.fx/prodos.s.xclk
CCLK.PAK .DA #0
.DA CCLK.LEN
.INB usr/src/prodos.fx/prodos.s.cclk
SEL1.PAK .DA #0
.DA SEL1.LEN
.INB usr/src/prodos.fx/prodos.s.sel1
SEL2.PAK .DA #0
.DA SEL2.LEN
.INB usr/src/prodos.fx/prodos.s.sel2
*--------------------------------------
.AS "PAKME" TAG
.DA $2000 BIN ORG
.DA #PAKME.ID/2 Chunk Count
.DA PAKME.Table Chunks
*--------------------------------------
MAN
SAVE usr/src/prodos.fx/pdos8m.s
ASM