NEW
  AUTO 3,1
				.LIST OFF
				.OP	65816
				.OR $2000
				.TF PRODOS.FX,TSYS
*--------------------------------------
READCAT			.EQ 0					Boot Block read Catalog at $C00
ENHFILENAME		.EQ 1
LOWERCASE		.EQ 1
ACL				.EQ 1
LOGO			.EQ 1
*--------------------------------------
XRWDBG			.EQ 0
*--------------------------------------
		.INB inc/zp.i
		.INB inc/io.i
		.INB inc/io.d2.i
		.INB inc/monitor.i
		.INB inc/mli.i
		.INB inc/mli.e.i
*--------------------------------------
MMStartUp			.EQ $0202
NewHandle			.EQ $0902
PtrToHand			.EQ $2802
MessageCenter		.EQ $1501
DisposeHandle		.EQ $1002
MMShutDown			.EQ $0302
ReadTimeHex			.EQ $0D03
Int2Hex				.EQ $220B
TLTextMountVolume	.EQ $1201
*--------------------------------------
				.MA SHORTMX
				sep #$30
				.EM
				.MA SHORTM
				sep #$20
				.EM
				.MA SHORTX
				sep #$10
				.EM
				.MA LONGMX
				rep #$30
				.EM
				.MA LONGM
				rep #$20
				.EM
				.MA LONGX
				rep #$10
				.EM
*--------------------------------------
				.MA IIGS
				ldx ##]1
				jsl $E10000
				.EM
*--------------------------------------
P8QUIT			.EQ	$E0D000
GSOS     		.EQ	$E100A8
GSOS2    		.EQ	$E100B0
OS_BOOT  		.EQ	$E100BD				indicates O/S initially booted
*--------------------------------------
lookptr			.EQ	$0A
idapple			.EQ	$0C					model machine id
idxl			.EQ	$10					general use 16 bit index pointer
devid			.EQ	$12
src				.EQ	$12
dst				.EQ $14
cnt				.EQ $16
cde				.EQ	$18
ecde			.EQ	$1A
*--------------------------------------
pcl				.EQ	$3A
pch				.EQ	$3B
A1L				.EQ	$3C
A1H				.EQ	$3D
A2L				.EQ	$3E
A2H				.EQ	$3F
A3L				.EQ	$40
A4L				.EQ	$42
unitnum			.EQ	$43
buf				.EQ	$44					2-byte data buffer pointer which
*accsav			.EQ	$45					overlaps accsav (temp acc save byte)
bloknml			.EQ	$46					used mostly as 16 bit block # pointer
zpt				.EQ	$48					highly used zero page index pointer
datptr			.EQ	$4A					ptr to data area of buffer.
sos				.EQ	$4C					sos buffer pointer.
usrbuf			.EQ	$4E					data ptr in user buffer.

* zero page variables for Bird's Better Bye

smparms			.EQ	$60					set mark parms
sm_refn			.EQ	$61					file reference number
fpos_lo			.EQ	$62					new file position (3 bytes)
fpos_mid 		.EQ	$63
fpos_hi			.EQ	$64
lstpntr			.EQ	$65					device list pointer (16 bit)
valcnt			.EQ	$67					name counter

filecount 		.EQ	$68					# of displayable files in directory
namelen			.EQ	$69					length of filename
gp_cnt			.EQ	$6A					general purpose counter
dlevel			.EQ	$6B					directory level
fnstore			.EQ	$6C					filename storage pointer (16 bit)
entlen			.EQ	$6E					directory entry length
entblk			.EQ	$6F					directory entries/block
filecnt			.EQ	$70					directory file count (16 bit)
blkfl			.EQ	$72					block flag / file counter
topname			.EQ	$73					index # of top name in display
filetyps 		.EQ	$74					128 byte table of filetypes
errnum			.EQ $DE
*--------------------------------------
auxsp			.EQ	$0101
RAMXDRV			.EQ	$0200				load address for aux bank /RAM driver
inbuf			.EQ	$0200				keyboard buffer
pbuf			.EQ	$0280				prefix buffer
softev			.EQ	$03F2				RESET vector
pwredup			.EQ	$03F4				power up byte
nmivect			.EQ	$03FB				nmi handler

vmode			.EQ	$04FB				video firmware operating mode
ch80col			.EQ	$057B				80 column ch position

dbuf			.EQ	$0C00				8 page directory buffer
vblock1			.EQ	$0E00				ramdisk directory block
volbuf			.EQ	$0F00				volume buffer
iobuf			.EQ	$1400				i/o buffer
fbuf			.EQ	$1800				FCB buffer
op_buf			.EQ	$1C00				open file buffer (selector)
sysentry 		.EQ	$2000				.SYS file load address

xfer			.EQ	$C314
*--------------------------------------
pathbuf			.EQ $D700
XDOS.ClockDrv	.EQ $D742
prefixbuf		.EQ $D742+125
*--------------------------------------
FCB.MAX			.EQ 8
FCBs			.EQ	$D800
FCB.ID				.EQ 0
FCB.DEVID			.EQ 1				d_dev -> d_dev+5
FCB.DIRHBLK			.EQ 2				2 bytes
FCB.DIREBLK			.EQ 4				2 bytes
FCB.DIRENUM			.EQ 6
FCB.STYPE			.EQ 7
FCB.F				.EQ 8
FCB.F.STMOD				.EQ %00001000
FCB.F.UMOD				.EQ %00010000
FCB.F.DBLKMOD			.EQ %01000000
FCB.F.IBLKMOD			.EQ %10000000
FCB.ACCESS			.EQ 9
FCB.NLBYTE			.EQ 10
FCB.BUFID			.EQ 11
FCB.1stBLK			.EQ 12				2 bytes
FCB.IBLK			.EQ 14				2 bytes
FCB.DBLK			.EQ 16				2 bytes
FCB.MARK			.EQ 18				3 bytes
FCB.EOF				.EQ 21				3 bytes
FCB.UBLK			.EQ 24				2 bytes

FCB.FLEVEL			.EQ 27
FCB.DIRTY			.EQ 28


FCB.NLMASK			.EQ 31
*
FCB				.EQ 32
*--------------------------------------
VCBs			.EQ	$D900
*				6 free bytes
VCB0			.EQ 06					range $D906-$DA00
VCB.DEV				.EQ 16
VCB.OFCNT			.EQ 17
VCB.BMAP			.EQ 18				2 bytes
VCB.TBLK			.EQ 20				2 bytes
VCB.FBLK			.EQ 22				2 bytes
VCB.BMAPIDX			.EQ 24
*
VCB				.EQ 25
*--------------------------------------
bmbuf			.EQ	$DA00				512 byte bitmap buffer
gbuf			.EQ	$DC00				general purpose 512 byte block buffer
*--------------------------------------
				.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.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
		.INB usr/src/prodos.fx/prodos.s.logo
				.FIN
*--------------------------------------
PAKME.Table
PAKME.ILDR		.DA ILDR.PAK
PAKME.GP		.DA GP.PAK
PAKME.XRW		.DA XRW.PAK
PAKME.XDOS		.DA XDOS.PAK
PAKME.IRQ		.DA IRQ.PAK
PAKME.RAM		.DA RAM.PAK
PAKME.RAMX		.DA RAMX.PAK
PAKME.NCLK		.DA NCLK.PAK
PAKME.TCLK		.DA TCLK.PAK
PAKME.CCLK		.DA CCLK.PAK
PAKME.SEL1		.DA SEL1.PAK
PAKME.SEL2		.DA SEL2.PAK

ILDR.PAK		.DA #0
				.DA ILDR.LEN
				.PH $800
		.INB usr/src/prodos.fx/prodos.s.ildr
				.EP

GP.PAK			.DA #0
				.DA GP.LEN
				.PH $BF00
		.INB usr/src/prodos.fx/prodos.s.gp
				.EP

XRW.PAK			.DA #0
				.DA XRW.LEN
				.PH	$D000
		.INB usr/src/prodos.fx/prodos.s.xrw
				.EP

XDOS.PAK		.DA #0
				.DA XDOS.LEN
				.PH $DE00
		.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
				.EP

IRQ.PAK			.DA #0
				.DA IRQ.LEN
				.PH $FF9B
		.INB usr/src/prodos.fx/prodos.s.irq
				.EP

RAM.PAK			.DA #0
				.DA RAM.LEN
				.PH $FF00
		.INB usr/src/prodos.fx/prodos.s.ram
				.EP

RAMX.PAK		.DA #0
				.DA RAMX.LEN
				.PH $200
		.INB usr/src/prodos.fx/prodos.s.ramx
				.EP

NCLK.PAK		.DA #0
				.DA NCLK.LEN
				.PH XDOS.ClockDrv
		.INB usr/src/prodos.fx/prodos.s.nclk
				.EP

TCLK.PAK		.DA #0
				.DA TCLK.LEN
				.PH XDOS.ClockDrv
		.INB usr/src/prodos.fx/prodos.s.tclk
				.EP

CCLK.PAK		.DA #0
				.DA CCLK.LEN
				.PH XDOS.ClockDrv
		.INB usr/src/prodos.fx/prodos.s.cclk
				.EP

SEL1.PAK		.DA #0
				.DA SEL1.LEN
				.PH	$1000
		.INB usr/src/prodos.fx/prodos.s.sel1
				.EP

SEL2.PAK		.DA #0
				.DA SEL2.LEN
				.PH	$1000
		.INB usr/src/prodos.fx/prodos.s.sel2
				.EP
*--------------------------------------
				.AS "PAKME"				TAG
				.DA $2000				BIN ORG
				.DA #12					Chunk Count
				.DA PAKME.Table			Chunks
*--------------------------------------
MAN
SAVE usr/src/prodos.fx/prodos.s
ASM
