NEW
  AUTO 3,1
*--------------------------------------
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
*  $1000->$1012 : Public Vectors
*--------------------------------------
A2osX.GP		.EQ $0140
A2osX.SYSCALL	.EQ	A2osX.GP+00
A2osX.LIBCALL	.EQ	A2osX.GP+03
A2osX.ATKCALL	.EQ	A2osX.GP+06
A2osX.FPUCALL	.EQ	A2osX.GP+09
A2osX.BADCALL	.EQ A2osX.GP+12
A2osX.SLEEP		.EQ A2osX.GP+16
A2osX.SYSCALL2	.EQ A2osX.GP+19
*--------------------------------------
* Public Variables
*--------------------------------------
A2osX.SCRNDEVS	.EQ	A2osX.GP+22			0=console, 1-8=VT100, 9=GFX
A2osX.ASCREEN	.EQ	A2osX.GP+32			Active Screen
A2osX.FSID		.EQ A2osX.GP+33	
A2osX.KVER		.EQ A2osX.GP+34			WORD
A2osX.IRQMode	.EQ A2osX.GP+36	
A2osX.ATLKSID	.EQ A2osX.GP+37	
A2osX.CPUTYPE	.EQ A2osX.GP+38	
A2osX.CPUSPEED	.EQ A2osX.GP+39			WORD, (->255.99 Mhz)
*
A2osX.Z80SLOT	.EQ A2osX.GP+41
A2osX.HWT		.EQ A2osX.GP+42
A2osX.HWT.UNKNOWN	.EQ 0
A2osX.HWT.IIe		.EQ 1
A2osX.HWT.IIc		.EQ 2
A2osX.HWT.IIgs		.EQ 3
A2osX.HWSubT	.EQ A2osX.GP+43
A2osX.HWSubT.Enh		.EQ 1
A2osX.HWSubT.LCCard		.EQ 2

A2osX.T16		.EQ A2osX.GP+44			WORD
A2osX.R16		.EQ A2osX.GP+46			WORD
*--------------------------------------
* Kernel Config Block
*--------------------------------------
A2osX.KCONFIG	.EQ A2osX.GP+48
A2osX.HZ		.EQ A2osX.KCONFIG+00	5/6 for 50/60Hz
A2osX.TTYDEVS	.EQ A2osX.KCONFIG+01
A2osX.F			.EQ A2osX.KCONFIG+02
A2osX.F.CHROOT		.EQ %10000000		ChRooting to /RAMx
A2osX.F.PMODE		.EQ %01000000		Preemptive Mode
*
A2osX.S			.EQ A2osX.KCONFIG+09	7 slots
A2osX.S.Z80			.EQ $80
A2osX.S.VXD			.EQ $81
A2osX.S.ATK			.EQ $82
A2osX.S.D2			.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
*--------------------------------------
* 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.REDEF			.EQ $CB
*
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.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
*--------------------------------------
SL..			.EQ %10000000
SL._			.EQ %01000000
SL.NoCase		.EQ %00000010
SL.EndDollar	.EQ %00000001
*--------------------------------------
* A2osX.SYSCALL Functions Indexes
*--------------------------------------D1
* STAT
*					.EQ $00
_ChMod				.EQ $02
_FStat				.EQ $04
_Stat				.EQ $06
_MKDir				.EQ $08
_MKNod				.EQ $0A
_MKFIFO				.EQ $0C
_Pipe				.EQ $0E
* DIRENT
_OpenDir			.EQ $10
_ReadDir			.EQ $12
_CloseDir			.EQ $14
* UNISTD
_Open				.EQ $16
_Close				.EQ $18
_Read				.EQ $1A
_Write				.EQ $1C
_ChOwn				.EQ $1E
* STDIO
_FPutC				.EQ $20
_PutChar			.EQ $22
_GetC				.EQ $24
_GetChar			.EQ $26
_FPutS				.EQ $28
_PutS				.EQ $2A
_FGetS				.EQ $2C
_UngetC				.EQ $2E

_FOpen				.EQ $30
_FClose				.EQ $32
_FRead				.EQ $34
_FWrite				.EQ $36
_FFlush				.EQ $38
_FSeek				.EQ $3A
_FTell				.EQ $3C
_FEOF				.EQ $3E

_Remove				.EQ $40
_Rename				.EQ $42
_PrintF				.EQ $44
_FPrintF			.EQ $46
_SPrintF			.EQ $48
_ScanF				.EQ $4A
_FScanF				.EQ $4C
_SScanF				.EQ $4E

*					.EQ $50
*					.EQ $52
*					.EQ $54
*					.EQ $56
* PRODOS
_Online				.EQ $58
_ChTyp				.EQ $5A
_ChAux				.EQ $5C
_SetAttr			.EQ $5E
*--------------------------------------D2
* MOUNT
_Mount				.EQ $60
_UMount				.EQ $62
* STKOBJ
_LoadStkObj			.EQ $64
_GetStkObj			.EQ $66
* ARG
_Shift				.EQ $68
_ArgV				.EQ $6A
_ArgVDup			.EQ $6C
* ERROR
_GetErrMsg			.EQ $6E
* STDLIB
_AToF				.EQ $70
_AToI				.EQ $72
_AToL				.EQ $74
_StrToF				.EQ $76
_StrToL				.EQ $78
_StrToUL			.EQ $7A
_RealPath			.EQ $7C
_Expand				.EQ $7E
* STRING
_StrLen				.EQ $80
_StrCpy				.EQ $82
_StrCat				.EQ $84
_StrDup				.EQ $86
_StrUpr	 			.EQ $88
_StrLwr	 			.EQ $8A
_StrCmp				.EQ $8C
_StrCaseCmp			.EQ $8E
* DEV
_GetDevByName		.EQ $90
*					.EQ $92
_MKDev				.EQ $94
_IOCTL				.EQ $96
* BIN
_LoadLib			.EQ $98
_UnloadLib			.EQ $9A
_LoadDrv			.EQ $9C
_InsDrv				.EQ $9E
* PS
_ExecL				.EQ $A0
_ExecV				.EQ $A2
_Fork				.EQ $A4
_Kill				.EQ $A6
_LoadFile			.EQ $A8
_LoadTxtFile		.EQ $AA
_FileSearch			.EQ $AC
_GetMemStat			.EQ $AE
*--------------------------------------E0/AUX
* STRV / STRVX
_StrVNew			.EQ $B0
_StrVSet			.EQ $B2
_StrVGet			.EQ $B4
_StrVFree			.EQ $B6
* ENV / ENVX
_PutEnv				.EQ $B8
_SetEnv				.EQ $BA
_GetEnv				.EQ $BC
_UnsetEnv			.EQ $BE
* TIME / TIMEX
_Time				.EQ $C0
_StrFTime			.EQ $C2
_PTime2Time			.EQ $C4
_CTime2Time			.EQ $C6
* MD5 / MD5X
_MD5				.EQ $C8
_MD5Init			.EQ $CA
_MD5Update			.EQ $CC
_MD5Finalize		.EQ $CE
* PWD / PWDX
_GetPWUID			.EQ $D0
_GetPWName			.EQ $D2
_PutPW				.EQ $D4
_GetGRGID			.EQ $D6
_GetGRName			.EQ $D8
_PutGR				.EQ $DA
_OpenSession		.EQ $DC
_CloseSession		.EQ $DE
* SLIST / SLISTX
_SListGetData		.EQ $E0
_SListAddData		.EQ $E2
_SListSetData		.EQ $E4
_SListGetByID		.EQ $E6
_SListNewKey		.EQ $E8
_SListLookup		.EQ $EA
_SListFree			.EQ $EC
_SListNew			.EQ $EE
*--------------------------------------F0
* MEM
_GetMem				.EQ $F0
_Malloc				.EQ $F0
_Realloc			.EQ $F2
_GetMemPtr			.EQ $F4
_FreeMem			.EQ $F6
_Free				.EQ $F8

_NewStkObj			.EQ $FA
_GetStkObjPtr		.EQ $FC
_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.D2			.EQ	$10
S.DIB.T.BLK			.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.FPOS	.EQ	4					dword
*
S.FD.REG		.EQ 16
*--------------------------------------
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.TYPE	.EQ 12					Byte
S.FD.DEV.SIZE	.EQ 13					3 Bytes
*
S.FD.DEV		.EQ 16
*--------------------------------------
* 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
