A2osX/ProDOS.FX/PDOS8M.S.txt
2023-11-12 14:20:15 +01:00

233 lines
4.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
.LIST OFF
.OP 65816
.OR $2000
.TF PRODOS.8M,TSYS
*--------------------------------------
KVER .EQ $8D release "8M"
*--------------------------------------
READCAT .EQ 1 Boot Block read Catalog at $C00
ENHFILENAME .EQ 1
DIREXTENDROOT .EQ 1
LOWERCASE .EQ 1
ACL .EQ 1
LOGO .EQ 1
AUXLC .EQ 1
M.PM .EQ 0
M.RAM .EQ 0
M.SEL .EQ 1
*--------------------------------------
.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
*--------------------------------------
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
*--------------------------------------
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