NEW
  AUTO 3,1
*--------------------------------------
K.VER			.EQ $5E00				94.0 
K.ENV.SIZE		.EQ 256
*--------------------------------------
K.MEM.ALIGN		.EQ 16
K.MEM.nALIGNm1	.EQ $F0
*K.MEM.ALIGN	.EQ 64
*K.MEM.nALIGNm1	.EQ $C0
*--------------------------------------
K.DEV.MAX		.EQ 32
K.NOD.MAX		.EQ 32
K.OF.MAX		.EQ 32
K.PS.MAX		.EQ 32

K.USR.MAX		.EQ 16
K.FLT.MAX		.EQ 4

K.EVT.MAX		.EQ 4
K.TTY.MAX		.EQ 8
K.IRQDEV.MAX	.EQ 4
*--------------------------------------
ZPDRV			.EQ	$20					32 bytes
ZPLIB			.EQ	$40					32 bytes
*--------------------------------------
CORE.PSIndex	.EQ $D0
CORE.PSCount	.EQ $D1

pPS				.EQ $D2
pEvent			.EQ $D4
hHandler		.EQ $D6
*				.EQ $D7
*--------------------------------------
* PS Context : 40 bytes MAX
*--------------------------------------
pCode			.EQ $D8
pData			.EQ $DA
pStack			.EQ $DC
pBase			.EQ $DE					8 Bytes

ZPBIN			.EQ $E0					32 bytes
PSCTX.SIZE		.EQ	$100-pCode
*--------------------------------------
A2osX.ZCALL		.EQ $0000
*--------------------------------------
* A2osX GLOBAL PAGE
*  $BC00->$BC0F : Public Vetors
*--------------------------------------
A2osX.SYSCALL	.EQ	$BC00
A2osX.LIBCALL	.EQ	$BC03
A2osX.ATKCALL	.EQ	$BC06
A2osX.FPUCALL	.EQ	$BC09
A2osX.BADCALL	.EQ $BC0C
*--------------------------------------
A2osX.SLEEP		.EQ $BC10
*--------------------------------------
*  $BED0->$BEEF : Public Variables
*--------------------------------------
A2osX.SCRNDEVS	.EQ	$BED0				0=console, 1-8=VT100, 9=GFX
A2osX.ASCREEN	.EQ	$BEDA				Active Screen
* free BEDB -> BEDF
A2osX.KVER		.EQ $BEE0
A2osX.IRQMode	.EQ $BEE3
A2osX.ATLKSID	.EQ $BEE4
A2osX.FSID		.EQ $BEE5
A2osX.CPUTYPE	.EQ $BEE6
A2osX.CPUSPEED	.EQ $BEE7				WORD, (->255.99 Mhz)

A2osX.Z80SLOT	.EQ $BEE9
A2osX.HWType	.EQ $BEEA
A2osX.HWType.UNKNOWN	.EQ 0
A2osX.HWType.IIe		.EQ 1
A2osX.HWType.IIc		.EQ 2
A2osX.HWType.IIgs		.EQ 3
A2osX.HWSubT	.EQ $BEEB
A2osX.HWSubT.Enh		.EQ 1
A2osX.HWSubT.LCCard		.EQ 2

A2osX.TIMER16	.EQ $BEEC				WORD
A2osX.RANDOM16	.EQ $BEEE				WORD
*--------------------------------------
*  $BEF0->$BEFF : Kernel Config Block
*--------------------------------------
A2osX.KCONFIG	.EQ $BEF0
A2osX.HZ		.EQ $BEF0				5/6 for 50/60Hz
A2osX.TTYDEVS	.EQ $BEF1
A2osX.F			.EQ $BEF8
A2osX.F.CHROOT		.EQ %10000000		ChRooting to /RAMx
A2osX.F.PMODE		.EQ %01000000		Pre-emptive Mode
A2osX.S			.EQ $BEF8				$BEF9->$BEFF, 7 slots
A2osX.S.Z80			.EQ $80
A2osX.S.VSDRIVE		.EQ $81
A2osX.S.ATCARD		.EQ $82
A2osX.S.DII			.EQ $C0
A2osX.S.BLK			.EQ $C1
A2osX.S.SP			.EQ $C2
A2osX.S.COM			.EQ $E0
A2osX.S.XY			.EQ $E1
A2osX.S.NIC			.EQ $E2
A2osX.S.CLK			.EQ $E3
A2osX.S.SND			.EQ $E4
A2osX.S.DISABLE		.EQ $FF
*--------------------------------------
* NON BLOCKING Entry point (From libs)
*--------------------------------------
A2osX.SYSCALL2	.EQ $E200
*--------------------------------------
* ProDOS ERROR CODES : $00->$5F
* Kernel ERROR CODES : $60->$7F
* Lib ERROR CODES : $80->$BF
*--------------------------------------
E.NODATA		.EQ $FF					No Data
*--------------------------------------
E.CSYN			.EQ $C0
E.ESYN			.EQ $C1
E.STACKERROR	.EQ $C2
E.STKOVERFLOW	.EQ $C3
E.NOWHILE		.EQ $C4
E.NOFOR			.EQ $C5
E.NOIF			.EQ $C6
E.BADFTYPE		.EQ $C7
E.FUNDEF		.EQ $C8
E.UNEXPEOF		.EQ $C9
E.NODO			.EQ $CA
*
E.TMISMATCH		.EQ $CF
*--------------------------------------
E.OOM			.EQ $7F					Out Of Memory Error
E.OOH			.EQ $7E					Out Of Handle Error
E.INVH			.EQ $7D					Invalid Handle
E.BUF			.EQ $7C					Buffer Overflow
E.BADPATH		.EQ $7B
E.BADARG		.EQ $7A
E.NSP			.EQ $79					No Such Process Error
E.SYN			.EQ $78					Syntax Error
E.ENVF			.EQ $77					Env is Full
E.IBIN			.EQ $76					Invalid BIN format
E.FTB			.EQ $75					File Too Big Error
E.OOB			.EQ $74					Out Of Bound
E.INUM			.EQ $73					Invalid Numerical
E.STACK			.EQ $72					Stack Error

E.NOKEY			.EQ $6F					Undefined Key
E.DUPKEY		.EQ $6E					Duplicate Key
E.EMPTYKEY		.EQ $6D					No Data for this key
E.DATALEN		.EQ $6C					Data Length Mismatch

E.IPWDDB		.EQ $68					Invalid PWD database
E.IUSR			.EQ $67					Invalid User
E.DUPUSR		.EQ $66					Duplicate User
*--------------------------------------
* A2osX.SYSCALL Constants
*--------------------------------------
C.ETX			.EQ 3					Ctrl-C
C.EOF			.EQ 4					Ctrl-D
C.ENQ			.EQ 5
C.BEL			.EQ 7					Ctrl.G
C.BS			.EQ 8
C.TAB			.EQ 9
C.LF			.EQ 10
C.VT			.EQ 11
C.FF			.EQ 12
C.CR			.EQ 13
C.SO			.EQ 14
C.SI			.EQ 15
C.XON			.EQ 17
C.XOFF			.EQ 19
C.FS			.EQ 21
C.ESC			.EQ 27
C.SPACE			.EQ 32
C.DEL			.EQ 127
*--------------------------------------
AF.LOCAL		.EQ 0
AF.INET			.EQ 2
AF.APPLETALK	.EQ 4
*--------------------------------------
O.RDONLY		.EQ %00000001
O.WRONLY		.EQ %00000010 
O.RDWR			.EQ %00000011
O.TRUNC			.EQ %00000100
O.APPEND		.EQ %00001000
O.TEXT			.EQ %01000000
O.CREATE		.EQ %10000000
*--------------------------------------
SEEK.SET		.EQ $00
SEEK.CUR		.EQ $01
SEEK.END		.EQ $02
*--------------------------------------
* A2osX.SYSCALL Functions Indexes
*--------------------------------------D1
* STAT
SYS.ChTyp			.EQ $00
SYS.ChMod			.EQ $02
SYS.FStat			.EQ $04
SYS.Stat			.EQ $06
SYS.MKDir			.EQ $08
SYS.MKNod			.EQ $0A
SYS.MKFIFO			.EQ $0C
SYS.Pipe			.EQ $0E
* DIRENT
SYS.OpenDir			.EQ $10
SYS.ReadDir			.EQ $12
SYS.CloseDir		.EQ $14
* UNISTD
SYS.Open			.EQ $16
SYS.Close			.EQ $18
SYS.Read			.EQ $1A
SYS.Write			.EQ $1C
SYS.ChOwn			.EQ $1E
* STDIO
SYS.FPutC			.EQ $20
SYS.PutChar			.EQ $22
SYS.GetC			.EQ $24
SYS.GetChar			.EQ $26
SYS.FPutS			.EQ $28
SYS.PutS			.EQ $2A
SYS.FGetS			.EQ $2C
SYS.UngetC			.EQ $2E

SYS.FOpen			.EQ $30
SYS.FClose			.EQ $32
SYS.FRead			.EQ $34
SYS.FWrite			.EQ $36
SYS.FFlush			.EQ $38
SYS.FSeek			.EQ $3A
SYS.FTell			.EQ $3C
SYS.FEOF			.EQ $3E

SYS.Remove			.EQ $40
SYS.Rename			.EQ $42
SYS.PrintF			.EQ $44
SYS.FPrintF			.EQ $46
SYS.SPrintF			.EQ $48
SYS.ScanF			.EQ $4A
SYS.FScanF			.EQ $4C
SYS.SScanF			.EQ $4E

*					.EQ $50
*					.EQ $52
*					.EQ $54
*					.EQ $56

*					.EQ $58
*					.EQ $5A
*					.EQ $5C
SYS.SetAttr			.EQ $5E
*--------------------------------------D2
* MOUNT
SYS.Mount			.EQ $60
SYS.UMount			.EQ $62
SYS.Online			.EQ $64
SYS.GetStkObj		.EQ $66
* ARG
SYS.Shift			.EQ $68
SYS.ArgV			.EQ $6A
SYS.ArgVDup			.EQ $6C
* ERROR
SYS.GetErrMsg		.EQ $6E
* STDLIB
SYS.AToF			.EQ $70
SYS.AToI			.EQ $72
SYS.AToL			.EQ $74
SYS.StrToF			.EQ $76
SYS.StrToL			.EQ $78
SYS.StrToUL			.EQ $7A
SYS.RealPath		.EQ $7C
SYS.Expand			.EQ $7E
* STRING
SYS.StrLen			.EQ $80
SYS.StrCpy			.EQ $82
SYS.StrCat			.EQ $84
SYS.StrDup			.EQ $86
SYS.StrUpr	 		.EQ $88
SYS.StrLwr	 		.EQ $8A
SYS.StrCmp			.EQ $8C
SYS.StrCaseCmp		.EQ $8E
* DEV
SYS.GetDevByName	.EQ $90
SYS.GetDevStatus	.EQ $92
SYS.MKDev			.EQ $94
SYS.IOCTL			.EQ $96
* BIN
SYS.LoadLib			.EQ $98
SYS.UnloadLib		.EQ $9A
SYS.LoadDrv			.EQ $9C
SYS.InsDrv			.EQ $9E
* PS
SYS.ExecL			.EQ $A0
SYS.ExecV			.EQ $A2
SYS.Fork			.EQ $A4
SYS.Kill			.EQ $A6
SYS.LoadFile		.EQ $A8
SYS.LoadTxtFile		.EQ $AA
SYS.FileSearch		.EQ $AC
SYS.GetMemStat		.EQ $AE
*--------------------------------------E0/AUX
* STRV / STRVX
SYS.StrVNew			.EQ $B0
SYS.StrVSet			.EQ $B2
SYS.StrVGet			.EQ $B4
SYS.StrVFree		.EQ $B6
* ENV / ENVX
SYS.PutEnv			.EQ $B8
SYS.SetEnv			.EQ $BA
SYS.GetEnv			.EQ $BC
SYS.UnsetEnv		.EQ $BE
* TIME / TIMEX
SYS.Time			.EQ $C0
SYS.StrFTime		.EQ $C2
SYS.PTime2Time		.EQ $C4
SYS.CTime2Time		.EQ $C6
* MD5 / MD5X
SYS.MD5				.EQ $C8
SYS.MD5Init			.EQ $CA
SYS.MD5Update		.EQ $CC
SYS.MD5Finalize		.EQ $CE
* PWD / PWDX
SYS.GetPWUID		.EQ $D0
SYS.GetPWName		.EQ $D2
SYS.PutPW			.EQ $D4
SYS.GetGRGID		.EQ $D6
SYS.GetGRName		.EQ $D8
SYS.PutGR			.EQ $DA
SYS.OpenSession		.EQ $DC
SYS.CloseSession	.EQ $DE
* SLIST / SLISTX
SYS.SListGetData	.EQ $E0
SYS.SListAddData	.EQ $E2
SYS.SListSetData	.EQ $E4
SYS.SListGetByID	.EQ $E6
SYS.SListNewKey		.EQ $E8
SYS.SListLookup		.EQ $EA
SYS.SListFree		.EQ $EC
SYS.SListNew		.EQ $EE
*--------------------------------------F0
* MEM
SYS.GetMem			.EQ $F0
SYS.Realloc			.EQ $F2
SYS.GetMemPtr		.EQ $F4
SYS.FreeMem			.EQ $F6

SYS.NewStkObj		.EQ $F8
SYS.LoadStkObj		.EQ $FA
SYS.GetStkObjPtr	.EQ $FC
SYS.FreeStkObj		.EQ $FE
*--------------------------------------
* MEM STRUCT
*--------------------------------------
S.MEM.F			.EQ 0
S.MEM.F.INUSE	.EQ %10000000			(Internal Flag)
S.MEM.F.INIT0	.EQ %01000000			Fill with "0"
S.MEM.F.NOCROSS	.EQ %00100000
S.MEM.F.ALIGN	.EQ %00010000
S.MEM.F.FD		.EQ %00001000
S.MEM.F.CODE	.EQ %00000100
S.MEM.F.DATA	.EQ %00000010
S.MEM.F.STACK	.EQ %00000001
S.MEM.REFCNT	.EQ 1
S.MEM.OWNERPID	.EQ 2
S.MEM.BIN		.EQ 3
S.MEM.PTR		.EQ 4
S.MEM.LEN		.EQ 6
*
S.MEM			.EQ 8
*--------------------------------------
S.MSTAT.ML		.EQ 0
S.MSTAT.MF		.EQ 2
S.MSTAT.MH		.EQ 4
S.MSTAT.MLast	.EQ 6
*
S.MSTAT.XL		.EQ 8
S.MSTAT.XF		.EQ 10
S.MSTAT.XH		.EQ 12
S.MSTAT.XLast	.EQ 14
*
S.MSTAT.DL		.EQ 16
S.MSTAT.DF		.EQ 18
S.MSTAT.DH		.EQ 20
S.MSTAT.DCount	.EQ 22
*
S.MSTAT			.EQ 24
*--------------------------------------
* IOCTL device API
*--------------------------------------
IOCTL.STATUS		.EQ 0				X,Y = byte count returned
IOCTL.READBLOCK		.EQ 2
IOCTL.WRITEBLOCK	.EQ 4
IOCTL.FORMAT		.EQ 6
IOCTL.CONTROL		.EQ 8
IOCTL.INIT			.EQ 10
IOCTL.OPEN			.EQ 12
IOCTL.CLOSE			.EQ 14
IOCTL.READ			.EQ 16
IOCTL.WRITE			.EQ 18
IOCTL.IRQ			.EQ 20
*--------------------------------------
S.IOCTL.CNT			.EQ 0
S.IOCTL.UNITNUM		.EQ 1
S.IOCTL.BUFPTR		.EQ 2
S.IOCTL.S			.EQ 4				1 BYTE
S.IOCTL.S.STATUS		.EQ 0
S.IOCTL.S.GETDCB		.EQ 1
S.IOCTL.S.GETNL			.EQ 2
S.IOCTL.S.GETDIB		.EQ 3
S.IOCTL.S.EOF			.EQ 4
S.IOCTL.C			.EQ 4				1 BYTE
S.IOCTL.C.RESET			.EQ 0
S.IOCTL.C.SETDCB		.EQ 1
S.IOCTL.C.SETNL			.EQ 2
S.IOCTL.C.IRQ			.EQ 3
S.IOCTL.C.EJECT			.EQ 4
S.IOCTL.BLKNUM		.EQ 4				3 BYTES
S.IOCTL.BYTECNT		.EQ 4				2 BYTES
S.IOCTL.ADDRPTR		.EQ 6				3 BYTES
*
S.IOCTL				.EQ 9
*--------------------------------------
S.DCB.T			.EQ 0
S.DCB.T.NIC			.EQ $81
S.DCB.T.COM			.EQ $82
S.DCB.T.GFX			.EQ $83
S.DCB.T.SND			.EQ $84
*--------------------------------------
S.DIB.S			.EQ 0
S.DIB.S.BLOCK		.EQ %10000000
S.DIB.S.WRITE		.EQ %01000000
S.DIB.S.READ		.EQ %00100000
S.DIB.S.ONLINE		.EQ %00010000
S.DIB.S.NOFMT		.EQ %00001000
S.DIB.S.WENABL		.EQ %00000100
S.DIB.S.IRQ			.EQ %00000010
S.DIB.S.OPENED		.EQ %00000001
S.DIB.SIZE		.EQ 1					3 bytes
S.DIB.IDS		.EQ 4					1 (LEN) + 16 MAX
S.DIB.T			.EQ 21
S.DIB.T.RAM			.EQ $00				Memory Expansion Card (RAM disk)
S.DIB.T.3.5			.EQ	$01				3.5" disk
S.DIB.T.PROFILE		.EQ	$02 			ProFile-type hard disk
S.DIB.T.GENSCSI		.EQ	$03				Generic SCSI
S.DIB.T.ROM			.EQ	$04				ROM disk
S.DIB.T.CDROM		.EQ	$05				SCSI CD-ROM
S.DIB.T.TAPE		.EQ	$06				SCSI tape or other SCSI sequential device
S.DIB.T.HD			.EQ	$07				SCSI hard disk
*					.EQ	$08				Reserved
*S.DIB.T.SPRINTER	.EQ	$09				SCSI printer
S.DIB.T.5.25		.EQ	$0A				5-1/4" disk
*					.EQ	$0B				Reserved
*					.EQ	$0C				Reserved
*S.DIB.T.PRINTER	.EQ	$0D				Printer
*S.DIB.T.CLOCK		.EQ	$0E				Clock
*S.DIB.T.MODEM		.EQ	$0F				Modem
S.DIB.T.DISKII		.EQ	$10
S.DIB.T.PRODOS		.EQ	$11
S.DIB.T.NIC			.EQ	$12				Network Interface Card
S.DIB.T.XY			.EQ	$13				X,Y Pointing Device
S.DIB.T.CHAR		.EQ	$14
S.DIB.T.GFX			.EQ	$15
S.DIB.T.SND			.EQ	$16
S.DIB.ST		.EQ 22
S.DIB.ST.EXT		.EQ $80
S.DIB.ST.DSKSW		.EQ $40
S.DIB.ST.NOREM		.EQ $20
S.DIB.VERSION		.EQ 23				word
*
S.DIB			.EQ 25
*--------------------------------------
* S.FD
*--------------------------------------
S.FD.T			.EQ 0
S.FD.T.REG			.EQ 0
S.FD.T.DIR			.EQ 2
S.FD.T.CDEV			.EQ 4
S.FD.T.BDEV			.EQ 6
S.FD.T.LNK			.EQ 8
S.FD.T.DSOCK		.EQ 10
S.FD.T.SSOCK		.EQ 12
S.FD.T.PIPE			.EQ 14
S.FD.PFT		.EQ 1
*--------------------------------------
S.FD.REG.REF	.EQ	2
S.FD.REG.IOBUF	.EQ	3
*
S.FD.REG		.EQ 4 
*--------------------------------------
S.FD.DIR.EL		.EQ 4
S.FD.DIR.EPB	.EQ 5
S.FD.DIR.FC		.EQ 6					word
S.FD.DIR.ACL	.EQ 8					57.00
S.FD.DIR.UID	.EQ 10
S.FD.DIR.GID	.EQ 12
S.FD.DIR.MODE	.EQ 14
*
S.FD.DIR		.EQ 16 
*--------------------------------------
S.FD.DEV.BUSID	.EQ 2
S.FD.DEV.DEVID	.EQ 3
S.FD.DEV.BUSPTR	.EQ 4					word
S.FD.DEV.DRVPTR	.EQ 6					word
S.FD.DEV.DCBPTR	.EQ 8					word
S.FD.DEV.BUFPTR	.EQ 10					word
*
S.FD.DEV		.EQ 12
*--------------------------------------
* S.FD.LNK
*--------------------------------------
S.FD.DSOCK.IOH		.EQ 2
S.FD.DSOCK.OPEN		.EQ 3
S.FD.DSOCK.CLOSE	.EQ 4
S.FD.DSOCK.READ		.EQ 5
S.FD.DSOCK.WRITE	.EQ 6
S.FD.DSOCK.EOF		.EQ 7
*
S.FD.DSOCK		.EQ 8
*--------------------------------------
S.FD.SSOCK.IOH		.EQ 2
S.FD.SSOCK.OPEN		.EQ 3
S.FD.SSOCK.CLOSE	.EQ 4
S.FD.SSOCK.READ		.EQ 5
S.FD.SSOCK.WRITE	.EQ 6
S.FD.SSOCK.EOF		.EQ 7
*
S.FD.SSOCK		.EQ 8
*--------------------------------------
S.FD.PIPE.S		.EQ 2
S.FD.PIPE.hMem	.EQ 3
S.FD.PIPE.Tail	.EQ 4
S.FD.PIPE.Head	.EQ 6
S.FD.PIPE.Free	.EQ 8
S.FD.PIPE.Used	.EQ 10
S.FD.PIPE.Size	.EQ 12
*
S.FD.PIPE		.EQ 14
*--------------------------------------
* PS STRUCT
*--------------------------------------
S.PS.F			.EQ 0
S.PS.F.HOLD			.EQ %10000000
S.PS.F.SLEEP		.EQ %01000000
S.PS.F.CLOSEONX		.EQ %00000100
S.PS.F.EVENT		.EQ %00000010
S.PS.F.NOHUP		.EQ %00000001

S.PS.S			.EQ 1
S.PS.S.INIT			.EQ 0
S.PS.S.RUN			.EQ 2
S.PS.S.DOEVENT		.EQ 4
S.PS.S.QUIT			.EQ 6

S.PS.PPID		.EQ 2
S.PS.PID		.EQ 3
S.PS.CPID		.EQ 4
S.PS.hCS		.EQ 5
S.PS.hDS		.EQ 6
S.PS.hSS		.EQ 7
*S.PS.ENVPAGECNT	.EQ 8
S.PS.hENV		.EQ 9
S.PS.hCWD		.EQ 10
S.PS.hStdIn		.EQ 11
S.PS.hStdOut	.EQ 12
S.PS.hStdErr	.EQ 13
S.PS.RC			.EQ 14
S.PS.ARGC		.EQ 15
S.PS.hARGV		.EQ 16

S.PS.A			.EQ 17
S.PS.X			.EQ 18
S.PS.Y			.EQ 19
S.PS.P			.EQ 20
S.PS.PC			.EQ 21					WORD

S.PS.hSession	.EQ 23

S.PS.ZP.CODE	.EQ 24
S.PS.ZP.DATA	.EQ 26
S.PS.ZP.STACK	.EQ 28
S.PS.ZP.LOCAL	.EQ 30
*
S.PS			.EQ 64
*--------------------------------------
* LIB Function Indexes
*--------------------------------------
LIBMGR.LOAD		.EQ 0
LIBMGR.UNLOAD	.EQ 2
*--------------------------------------
* EVENT STRUCT
*--------------------------------------
S.EVT.F			.EQ 0
S.EVT.F.T10TH		.EQ %10000000
S.EVT.F.T1SEC		.EQ %01000000
S.EVT.F.hMEM2		.EQ %00100000		Indicates That S.EVT.B2 is a hMem
S.EVT.F.hMEM1		.EQ %00010000		Indicates That S.EVT.B1 is a hMem

*S.EVT.hDEV		.EQ 1
S.EVT.B1		.EQ 2
S.EVT.B2		.EQ 3
S.EVT.W1		.EQ 4
S.EVT.W2		.EQ 6
*
S.EVT			.EQ 8
*--------------------------------------
S.TIME.CENTURY		.EQ 0				19,20,21....
S.TIME.YEAR			.EQ 1				0..99
S.TIME.MONTH		.EQ 2				1..12
S.TIME.DAY			.EQ 3				1..31
S.TIME.HOUR			.EQ 4				0..23
S.TIME.MINUTE		.EQ 5				0..59
S.TIME.SECOND		.EQ 6				0..61
S.TIME.WDAY			.EQ 7				1..7
*
S.TIME				.EQ 8
*--------------------------------------
* S.STAT 
*--------------------------------------
S.STAT.MODE			.EQ 0
S.STAT.MODE.XO			.EQ $0001
S.STAT.MODE.WO			.EQ $0002
S.STAT.MODE.RO			.EQ $0004

S.STAT.MODE.FO			.EQ $0007

S.STAT.MODE.XG			.EQ $0008
S.STAT.MODE.WG			.EQ $0010
S.STAT.MODE.RG			.EQ $0020

S.STAT.MODE.FG			.EQ $0038

S.STAT.MODE.XU			.EQ $0040
S.STAT.MODE.WU			.EQ $0080
S.STAT.MODE.RU			.EQ $0100

S.STAT.MODE.FU			.EQ $01C0
*S.STAT.MODE.SST		.EQ $0200
*S.STAT.MODE.SGID		.EQ $0400
*S.STAT.MODE.SUID		.EQ $0800

S.STAT.MODE.REG			.EQ $0000
S.STAT.MODE.DIR			.EQ $1000
S.STAT.MODE.CDEV		.EQ $2000
S.STAT.MODE.BDEV		.EQ $3000
*S.STAT.MODE.LNK		.EQ $4000
S.STAT.MODE.DSOCK		.EQ $5000
S.STAT.MODE.SSOCK		.EQ $6000
S.STAT.MODE.FIFO		.EQ $7000

S.STAT.DEV			.EQ 2				WORD
S.STAT.UID			.EQ 4				WORD
S.STAT.GID			.EQ 6				WORD
S.STAT.INO			.EQ 8				QWORD
S.STAT.NLINK		.EQ 16				WORD
S.STAT.SIZE			.EQ 18				DWORD
S.STAT.ATIME		.EQ 22				S.TIME
S.STAT.MTIME		.EQ 30				S.TIME
S.STAT.CTIME		.EQ 38				S.TIME
S.STAT.BLOCKS		.EQ 46				DWORD
S.STAT.BLKSIZE		.EQ 50				WORD
S.STAT.P.TYPE		.EQ 52				BYTE
S.STAT.P.AUXTYPE 	.EQ 53				WORD
S.STAT.P.SLOT		.EQ 55				BYTE
S.STAT.P.DRIVE		.EQ 56				BYTE
S.STAT.P.DEVSTATUS	.EQ 57				BYTE
S.STAT.P.DEVCNFLCT	.EQ 58				BYTE
S.STAT.P.DEVBLOCKS	.EQ 59				WORD
S.STAT.FSID			.EQ 61				BYTE
S.STAT.P.ACCESS		.EQ 62				BYTE
*
S.STAT				.EQ 64
*--------------------------------------
S.PW.NAME			.EQ 0				16+1
S.PW.PASSWD			.EQ 17				32+1
S.PW.UID			.EQ 50
S.PW.GID			.EQ 51
S.PW.GECOS			.EQ 52				64+1
S.PW.DIR			.EQ 117				64+1
S.PW.SHELL			.EQ 182				64+1
*
S.PW				.EQ 247
*--------------------------------------
S.GRP.NAME			.EQ 0				16+1
S.GRP.GID			.EQ 17
*
S.GRP				.EQ 18
*--------------------------------------
S.SESSION.P			.EQ 0
S.SESSION.P.ROOT		.EQ %10000000
S.SESSION.P.SYSADMIN	.EQ %01000000
S.SESSION.UID		.EQ 1
S.SESSION.GID		.EQ 2
S.SESSION.NAME		.EQ 3
*S.SESSION.GECOS	.EQ 0
*S.SESSION.DIR		.EQ 0
*S.SESSION.SHELL	.EQ 0
*
*--------------------------------------
MAN
SAVE INC/A2OSX.I
