A2osX/INC/A2osX.I.txt

599 lines
17 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
2015-06-03 18:30:57 +00:00
PREFIX /A2OSX.SRC
2015-03-14 21:48:35 +00:00
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
2016-03-13 21:50:43 +00:00
* KERNEL CONSTANTS DEFINITON
*--------------------------------------
2016-08-24 15:42:33 +00:00
K.ENV.SIZE .EQ 256
2016-03-13 21:50:43 +00:00
K.EVT.MAX .EQ 16
2016-08-24 15:42:33 +00:00
K.DEV.MAX .EQ 16
K.FLT.MAX .EQ 8
2016-03-13 21:50:43 +00:00
K.PS.MAX .EQ 64
*--------------------------------------
* Kernel ZP Aux
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-03-13 21:50:43 +00:00
ZPKERNEL .EQ $0
*--------------------------------------
ZPMEMMGR .EQ $10
2016-08-17 06:25:58 +00:00
*--------------------------------------
pCode .EQ $20
pData .EQ $22
pStack .EQ $24
2015-03-14 21:48:35 +00:00
pLib .EQ $26
pDrv .EQ $28
2015-03-14 21:48:35 +00:00
pPs .EQ $2A
pDev .EQ $2C
pEvent .EQ $2E
*--------------------------------------
ZPDRV .EQ $30
ZPBIN .EQ $40
2016-09-02 15:14:24 +00:00
*--------------------------------------
2017-01-12 17:43:45 +00:00
* $42-$47 ProDOS Block Device Drivers Main
*--------------------------------------
2016-09-02 15:14:24 +00:00
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
*--------------------------------------
ZPLIB .EQ $E0 32 bytes for TCPIP
2015-03-14 21:48:35 +00:00
*--------------------------------------
* Memory Map
2015-03-14 21:48:35 +00:00
*--------------------------------------
2015-06-03 18:30:57 +00:00
A2osX.SaveSM .EQ $100 Aux
2015-03-14 21:48:35 +00:00
A2osX.SaveSX .EQ $101 Aux
*--------------------------------------
2015-06-03 18:30:57 +00:00
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
* Main $300 -> 3EF : <free>
* Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...)
* Aux $200 -> 3FD : /RAM Driver
* Aux $3FE -> 3FF : IRQ Vector
2015-03-14 21:48:35 +00:00
*--------------------------------------
UsrBuf256 .EQ $0200 Main
2016-09-05 06:10:04 +00:00
*--------------------------------------
*D.STACK.BASE .EQ $0300 $03EF...
2015-06-03 18:30:57 +00:00
D.STACK.TOP .EQ $03F0 ...Down to $0300
2015-03-14 21:48:35 +00:00
*--------------------------------------
*** $3F0-$3FF IRQ Handler.... ***
*--------------------------------------
* Main/Aux $400 -> $7FF : Console Screen
* Main/Aux $800 -> $BFF : System Screen
*--------------------------------------
KrnBuf256 .EQ $0C00 Main
*--------------------------------------
MLICALL.PARAMS .EQ $0D00 Main, $12 bytes min !!!!
MLICALL.TMPBUF .EQ $0D12 Small buffer (14 bytes) for MLI calls
BLKCALL.PARAMS .EQ $0D20 Max 6 Bytes copied to/from $42->$47 before Firmware call
PRTCALL.PARAMS .EQ $D030 Max 8 bytes for smartport cmdnum $0->$9
KrnSTAT .EQ $0D40 S.STAT
2016-08-17 06:25:58 +00:00
*--------------------------------------
KrnOut256 .EQ $0E00 Used to return Values to User Space
*--------------------------------------
2016-08-24 15:42:33 +00:00
*** Z80 Reserved $0F00-10FF***
*--------------------------------------
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
Z80JMP .EQ $1000 (00000h) Up To $10FF
*--------------------------------------
2016-03-13 21:50:43 +00:00
EvtMgr.Table .EQ $1100 K.EVT.MAX*S.EVT.SIZE=32*8=256b
*--------------------------------------
2017-01-12 17:43:45 +00:00
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*8=256b
2016-08-24 15:42:33 +00:00
*--------------------------------------
FltMgr.Table .EQ $1300 K.FLT.MAX*S.FLT.SIZE=8*32=256b
*--------------------------------------
TskMgr.Table .EQ $1400 K.PS.MAX*S.PS.SIZE=64*16=1k
*--------------------------------------
2016-08-17 06:25:58 +00:00
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
*--------------------------------------
MemMgr.Table .EQ $1800 Slot 0 is Reserved
MemMgr.LoMem .EQ $1800
MemMgr.Free .EQ $1802
MemMgr.HiMem .EQ $1804
MemMgr.LastSlot .EQ $1806
*--------------------------------------
MemMgr.MLoMem .EQ $2000
MemMgr.MHiMem .EQ $BD00
MemMgr.XLoMem .EQ $2000
MemMgr.XHiMem .EQ $C000
*--------------------------------------
2016-09-29 15:30:15 +00:00
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
*--------------------------------------
2015-03-14 21:48:35 +00:00
* A2osX GLOBAL PAGE
* $BD00->$BD0F : Public Vetors
2015-03-14 21:48:35 +00:00
*--------------------------------------
A2osX.SYSCALL .EQ $BD00
A2osX.LIBCALL .EQ $BD03
A2osX.MLICALL .EQ $BD06
A2osX.BLKCALL .EQ $BD09
A2osX.PRTCALL .EQ $BD0C
*--------------------------------------
pCodeJmp .EQ $BD10
pLibJmp .EQ $BD13
pDrvJmp .EQ $BD16
pDevJmp .EQ $BD19
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
* $BEE0->$BEEF : Public Variables
2015-06-03 18:30:57 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
A2osX.ASCREEN .EQ $BEE0 Active Screen
A2osX.SCRNDEVS .EQ $BEE1 -> $BEE4 (4 screen devices)
2015-03-14 21:48:35 +00:00
A2osX.CPUTYPE .EQ $BEE5
A2osX.CPUSPEED .EQ $BEE6 WORD, (->255.99 Mhz)
2015-03-14 21:48:35 +00:00
A2osX.Z80SLOT .EQ $BEE8
A2osX.Z80SPEED .EQ $BEE9 WORD
2016-03-13 21:50:43 +00:00
A2osX.TIMER16 .EQ $BEEC WORD
A2osX.RANDOM16 .EQ $BEEE WORD
2015-03-14 21:48:35 +00:00
*--------------------------------------
2016-06-07 06:10:18 +00:00
* $BEF0->$BEFF : Kernel Config Block
*--------------------------------------
A2osX.HZ .EQ $BEF0
2017-01-12 17:43:45 +00:00
A2osX.RAMDRVDIS .EQ $BEF8 If $80, prevent ChRooting to /RAMx
A2osX.SLOTS .EQ $BEF8 $BEF9->$BEFF, 7 slots
A2osX.SLOTS.Z80 .EQ $80
A2osX.SLOTS.VSDRIVE .EQ $81
A2osX.SLOTS.ATCARD .EQ $82
A2osX.SLOTS.DII .EQ $C0
A2osX.SLOTS.BLK .EQ $C1
A2osX.SLOTS.SP .EQ $C2
A2osX.SLOTS.COM .EQ $E0
A2osX.SLOTS.XY .EQ $E1
A2osX.SLOTS.NET .EQ $E2
A2osX.SLOTS.DISABLE .EQ $FF
2016-06-07 06:10:18 +00:00
*--------------------------------------
H.BIN.HEADER .EQ 0
2016-03-13 21:50:43 +00:00
H.BIN.HEADER.DRV65 .EQ $4CD8 6502:cld,jmp abs
H.BIN.HEADER.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x)
H.BIN.HEADER.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x)
H.BIN.HEADER.LIB80 .EQ $A28D Z80:
H.BIN.HEADER.BIN80 .EQ $A28D Z80:
H.BIN.JMP .EQ 2
H.BIN.CODE.TYPE .EQ 4
H.BIN.VERSION .EQ 5
H.BIN.CODE.LEN .EQ 8
*
H.BIN.EXE.DS.SIZE .EQ 10
H.BIN.EXE.REL.TABLE .EQ 16
*
H.BIN.DRV.HEADER.O .EQ 10
H.BIN.DRV.CODE.O .EQ 12
H.BIN.DRV.CODE.LEN .EQ 14
2017-01-12 17:43:45 +00:00
H.BIN.DRV.REL.TABLE .EQ 2
*--------------------------------------
* A2osX.SYSCALL Functions Indexes
*--------------------------------------
SYS.FileSearch .EQ $00
SYS.GetFullPathYA .EQ $02
SYS.LoadFile .EQ $04
SYS.SaveFile .EQ $06
* .EQ $08
* .EQ $0A
* .EQ $0C
* .EQ $0E
*--------------------------------------
SYS.LoadDrvYA .EQ $10
SYS.LoadLibYA .EQ $12
SYS.UnloadLibA .EQ $14
SYS.LoadExeYA .EQ $16
SYS.TimeYA .EQ $18
SYS.CTime2Time .EQ $1A
SYS.PTime2Time .EQ $1C
* .EQ $1E
*--------------------------------------
2017-01-12 17:43:45 +00:00
SYS.FOpen .EQ $20
SYS.FOpen.R .EQ $01 Open For Read
SYS.FOpen.W .EQ $02 Open For Write
SYS.FOpen.A .EQ $04 Append
SYS.FOpen.T .EQ $08 Open/Append in Text mode
SYS.FOpen.X .EQ $80 Create if not exists
SYS.FCloseA .EQ $22
2017-01-12 17:43:45 +00:00
SYS.FRead .EQ $24
SYS.FWrite .EQ $26
SYS.FFlush .EQ $28
SYS.FSeek .EQ $2A
SYS.FSeek.SET .EQ $00
SYS.FSeek.CUR .EQ $01
SYS.FSeek.END .EQ $02
SYS.FTell .EQ $2C
SYS.FEOF .EQ $2E
2016-10-30 18:18:22 +00:00
SYS.RemoveYA .EQ $30
SYS.Rename .EQ $32
SYS.STAT .EQ $34
* .EQ $36
2017-01-12 17:43:45 +00:00
SYS.OpenDirYA .EQ $38
SYS.ReadDirA .EQ $3A
SYS.CloseDirA .EQ $3C
SYS.MKDirYA .EQ $3E
*--------------------------------------
2017-01-12 17:43:45 +00:00
* .EQ $40
SYS.SScanF .EQ $42
SYS.PPrintFYA .EQ $44
SYS.CPrintFYA .EQ $46
2017-01-12 17:43:45 +00:00
* .EQ $48
* .EQ $4A
* .EQ $4C
* .EQ $4E
*--------------------------------------
SYS.NewPStrYA .EQ $50
SYS.PStrCpy .EQ $52
SYS.PStrCat .EQ $54
SYS.PStrMatch .EQ $56
SYS.PStrUprYA .EQ $58
SYS.PStrLwrYA .EQ $5A
SYS.PStrFTime .EQ $5C
SYS.PStr2StrArrayYA .EQ $5E
*--------------------------------------
SYS.ExecProcessNewEnvYA .EQ $60
SYS.ExecProcessYA .EQ $62
SYS.CreateProcessNewEnvYA .EQ $64
SYS.CreateProcessYA .EQ $66
SYS.GetPSByIDA .EQ $68
* .EQ $6A
SYS.Sleep .EQ $6C
* .EQ $6E
*--------------------------------------
SYS.GetArgC .EQ $70
SYS.GetArgA .EQ $72
SYS.ExpandPStrYA .EQ $74
* .EQ $76
SYS.PutEnvYA .EQ $78
SYS.SetEnv .EQ $7A
SYS.GetEnvYA .EQ $7C
SYS.UnsetEnvYA .EQ $7E
*--------------------------------------
SYS.GetDevByIDA .EQ $80
SYS.GetDevByNameYA .EQ $82
2017-01-12 17:43:45 +00:00
SYS.GetDevStatusA .EQ $84
* .EQ $86
SYS.MKNodYA .EQ $88
SYS.MKNodA .EQ $8A
SYS.MKFIFO .EQ $8C
* .EQ $8E
*--------------------------------------
SYS.GetMem .EQ $90
SYS.FreeMemA .EQ $92
SYS.GetMemPtrA .EQ $94
SYS.GetMemByIDA .EQ $96
* .EQ $98
2017-01-12 17:43:45 +00:00
SYS.LoadStkObjYA .EQ $9A
SYS.GetStkObjA .EQ $9C
SYS.FreeStkObjA .EQ $9E
*--------------------------------------
SYS.SetLoMem .EQ $A0
SYS.GetMemStatYA .EQ $A2
2017-01-12 17:43:45 +00:00
* .EQ $A4
* .EQ $A6
* .EQ $A8
* .EQ $AA
* .EQ $AC
* .EQ $AE
*--------------------------------------
SYS.FPutCAY .EQ $B0
SYS.PutCA .EQ $B2
SYS.FGetCA .EQ $B4
SYS.GetC .EQ $B6
SYS.FPutS .EQ $B8
SYS.PutSYA .EQ $BA
SYS.FGetS .EQ $BC
SYS.GetSYA .EQ $BE
*--------------------------------------
2016-01-16 22:06:36 +00:00
* ProDOS ERROR CODES : $00->$5F
* Lib ERROR CODES : $80->$BF
* Kernel ERROR CODES : $C0->$FF
*--------------------------------------
MEMMGR.ERROOM .EQ $FF Out Of Memory Error
MEMMGR.ERROOH .EQ $FE Out Of Handle Error
*--------------------------------------
DEVMGR.ERROOM .EQ $EF Out Of Memory Error
DEVMGR.ERROOH .EQ $EE Out Of Handle Error
2016-01-04 07:17:33 +00:00
DEVMGR.ERRICL .EQ $ED Invalid Command Line
*--------------------------------------
TSKMGR.ERROOH .EQ $DF Out Of Handle Error
TSKMGR.ERRNSP .EQ $DD No Such Process Error
*--------------------------------------
SYSMGR.ERRSYN .EQ $CF Syntax Error
SYSMGR.ERRENVF .EQ $CE Env is Full
SYSMGR.ERRIBIN .EQ $CD Invalid BIN format
SYSMGR.ERRFTB .EQ $CC File Too Big Error
SYSMGR.ERRFNF .EQ $CB File Not Found Error
*--------------------------------------
* MEM STRUCT
*--------------------------------------
S.MEM.F .EQ 0
S.MEM.F.AUX .EQ %10000000 Request Stock Object
S.MEM.F.INIT0 .EQ %01000000 Fill with "0"
S.MEM.F.CODE .EQ %00100000
S.MEM.F.NOMOVE .EQ %00010000
S.MEM.F.ALIGN .EQ %00001000
S.MEM.F.INUSE .EQ %10000000 (Internal Flag)
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.MEMSTAT.ML .EQ 0
S.MEMSTAT.MF .EQ 2
S.MEMSTAT.MH .EQ 4
*
S.MEMSTAT.XL .EQ 8
S.MEMSTAT.XF .EQ 10
S.MEMSTAT.XH .EQ 12
*
S.MEMSTAT.DL .EQ 16
S.MEMSTAT.DF .EQ 18
S.MEMSTAT.DH .EQ 20
*
S.MEMSTAT .EQ 24
*--------------------------------------
* 'GFX' Class Driver Functions
*--------------------------------------
2017-01-12 17:43:45 +00:00
*DEVMGR.GFX.SETPIXEL .EQ 14
*DEVMGR.GFX.GETPIXEL .EQ 16
*DEVMGR.GFX.HLINE .EQ 18
*DEVMGR.GFX.VLINE .EQ 20
*DEVMGR.GFX.BITBLT .EQ 22
*--------------------------------------
* DEVMGR (new API) = Smartport
*--------------------------------------
2017-01-12 17:43:45 +00:00
* JMP : (A=Device)
* DRV : AUXLC entry point
* BLK : ROM Entry point Cn($Cnff)
* PRT : ROM Entry point Cn($Cnff)+3
* ID :
* 00->0F : NUL,SYS & loadable drivers
2017-01-12 17:43:45 +00:00
* X0 : X=Slot (Controller board)
* XY : X=Slot, Y=Device
* NAME:
*
*--------------------------------------
S.DEV.JMP .EQ 0
S.DEV.S .EQ 2
S.DEV.S.BLOCK .EQ %10000000
S.DEV.S.WRITE .EQ %01000000
S.DEV.S.READ .EQ %00100000
S.DEV.S.ONLINE .EQ %00010000
S.DEV.S.NOFMT .EQ %00001000
S.DEV.S.WENABL .EQ %00000100
S.DEV.S.IRQ .EQ %00000010
S.DEV.S.OPENED .EQ %00000001
S.DEV.F .EQ 3
*S.DEV.F.IRQ .EQ %10000000 Device is irq driven
*S.DEV.F.EVENT .EQ %01000000 Device is event driven
2017-01-12 17:43:45 +00:00
S.DEV.F.LEN .EQ %00000111 Len
S.DEV.NAME .EQ 4 4 MAX
*
S.DEV .EQ 8
*----------- Smartport ----------------
DEVMGR.STATUS .EQ 0
DEVMGR.READBLOCK .EQ 2
DEVMGR.WRITEBLOCK .EQ 4
DEVMGR.FORMAT .EQ 6
DEVMGR.CONTROL .EQ 8
DEVMGR.INIT .EQ 10
DEVMGR.OPEN .EQ 12
DEVMGR.CLOSE .EQ 14
DEVMGR.READ .EQ 16
DEVMGR.WRITE .EQ 18
DEVMGR.IRQ .EQ 20
2017-01-12 17:43:45 +00:00
*--------------------------------------
S.DEVSTAT.S .EQ 0
S.DEVSTAT.S.BLOCK .EQ %10000000
S.DEVSTAT.S.WRITE .EQ %01000000
S.DEVSTAT.S.READ .EQ %00100000
S.DEVSTAT.S.ONLINE .EQ %00010000
S.DEVSTAT.S.NOFMT .EQ %00001000
S.DEVSTAT.S.WENABL .EQ %00000100
S.DEVSTAT.S.IRQ .EQ %00000010
S.DEVSTAT.S.OPENED .EQ %00000001
S.DEVSTAT.SIZE .EQ 1 3 bytes
S.DEVSTAT.IDSTRING .EQ 4 1 (LEN) + 16 MAX
S.DEVSTAT.TYPE .EQ 21
S.DEVSTAT.TYPE.RAM .EQ $00 Memory Expansion Card (RAM disk)
S.DEVSTAT.TYPE.3.5 .EQ $01 3.5" disk
S.DEVSTAT.TYPE.PROFILE .EQ $02 ProFile-type hard disk
S.DEVSTAT.TYPE.GENSCSI .EQ $03 Generic SCSI
S.DEVSTAT.TYPE.ROM .EQ $04 ROM disk
S.DEVSTAT.TYPE.CDROM .EQ $05 SCSI CD-ROM
S.DEVSTAT.TYPE.TAPE .EQ $06 SCSI tape or other SCSI sequential device
S.DEVSTAT.TYPE.HD .EQ $07 SCSI hard disk
* .EQ $08 Reserved
S.DEVSTAT.TYPE.SPRINTER .EQ $09 SCSI printer
S.DEVSTAT.TYPE.5.25 .EQ $0A 5-1/4" disk
* .EQ $0B Reserved
* .EQ $0C Reserved
S.DEVSTAT.TYPE.PRINTER .EQ $0D Printer
S.DEVSTAT.TYPE.CLOCK .EQ $0E Clock
S.DEVSTAT.TYPE.MODEM .EQ $0F Modem
S.DEVSTAT.TYPE.NET .EQ $10 Network board
S.DEVSTAT.TYPE.XY .EQ $11 X,Y Pointing Device
S.DEVSTAT.TYPE.CHAR .EQ $12
2017-01-12 17:43:45 +00:00
S.DEVSTAT.SUBTYPE .EQ 22
S.DEVSTAT.SUBTYPE.EXT .EQ $80
S.DEVSTAT.SUBTYPE.DSKSW .EQ $40
S.DEVSTAT.SUBTYPE.NOREM .EQ $20
S.DEVSTAT.VERSION .EQ 23
S.DEVSTAT .EQ 25
*--------------------------------------
S.DEVSTAT.NET.FLAGS .EQ 25
S.DEVSTAT.NET.FLAGS.ARPOFFLOAD .EQ %00000001
S.DEVSTAT.NET.FLAGS.IPOFFLOAD .EQ %00000010
S.DEVSTAT.NET.STATUS .EQ 26
S.DEVSTAT.NET.STATUS.OK .EQ $80
S.DEVSTAT.NET.STATUS.FD .EQ $40
S.DEVSTAT.NET.STATUS.10 .EQ $01
S.DEVSTAT.NET.STATUS.100 .EQ $02
S.DEVSTAT.NET.STATUS.1000 .EQ $03
S.DEVSTAT.NET.MAC .EQ 27
S.DEVSTAT.NET .EQ 33
*--------------------------------------
* PS STRUCT
*--------------------------------------
S.PS.F .EQ 0
S.PS.F.INUSE .EQ %10000000
S.PS.F.INIT .EQ %01000000
S.PS.F.HOLD .EQ %00100000
S.PS.F.SLEEP .EQ %00010000
S.PS.F.EVENT .EQ %00001000
S.PS.F.ENV .EQ %00000100
2017-01-12 17:43:45 +00:00
S.PS.PPID .EQ 1
S.PS.PID .EQ 2
S.PS.CPID .EQ 3
S.PS.hCS .EQ 4
S.PS.hDS .EQ 5
S.PS.hPREFIX .EQ 6
S.PS.hENV .EQ 7
S.PS.hCMDLINE .EQ 8
S.PS.UID .EQ 9
S.PS.hStdIn .EQ 10
S.PS.hStdOut .EQ 11
S.PS.hStdErr .EQ 12
S.PS.RC .EQ 13
S.PS.PC .EQ 14
*
S.PS .EQ 16
2015-03-14 21:48:35 +00:00
*--------------------------------------
* LIB Function Indexes
*--------------------------------------
LIBMGR.LOAD .EQ 0
LIBMGR.UNLOAD .EQ 2
*--------------------------------------
* Task Function Indexes
*--------------------------------------
TSKMGR.INIT .EQ 0
TSKMGR.RUN .EQ 2
TSKMGR.DOEVENT .EQ 4
TSKMGR.QUIT .EQ 6
*--------------------------------------
* EVENT STRUCT
*--------------------------------------
S.EVT.F .EQ 0
2016-03-13 21:50:43 +00:00
S.EVT.F.T10TH .EQ %10000000
S.EVT.F.T1SEC .EQ %01000000
S.EVT.F.hMEM2 .EQ %00100000 Indicates That S.EVT.DATAHI is a hMem
S.EVT.F.hMEM1 .EQ %00010000 Indicates That S.EVT.DATALO is a hMem
2016-03-13 21:50:43 +00:00
S.EVT.F.NET .EQ %00000100
S.EVT.F.MOUSE .EQ %00000010
S.EVT.F.KEY .EQ %00000001
S.EVT.hDEV .EQ 1
S.EVT.DATA .EQ 2
S.EVT.DATALO .EQ 2
S.EVT.DATAHI .EQ 3
S.EVT.DATAW1 .EQ 4
S.EVT.DATAW2 .EQ 6
*
2016-03-13 21:50:43 +00:00
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.PFT.PATH .EQ 0 /dev, /mnt
S.PFT.HANDLER .EQ 16
S.PFT.DATA .EQ 24 8 bytes OPAQUE data for handler
*
S.PFT .EQ 32
*--------------------------------------
* S.STAT
2016-08-24 15:42:33 +00:00
*--------------------------------------
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.XG .EQ $0008
S.STAT.MODE.WG .EQ $0010
S.STAT.MODE.RG .EQ $0020
S.STAT.MODE.XU .EQ $0040
S.STAT.MODE.WU .EQ $0080
S.STAT.MODE.RU .EQ $0100
*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
2016-09-01 15:42:38 +00:00
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 BYTE
2016-08-24 15:42:33 +00:00
*
S.STAT .EQ 64
2016-08-24 15:42:33 +00:00
*--------------------------------------
* S.NODE
*--------------------------------------
S.NODE.HANDLER .EQ 0 0=KRNL,!0=hLIB (LIBNFS,LIBTCPIP.....)
S.NODE.T .EQ 1
S.NODE.T.REG .EQ 0
S.NODE.T.DIR .EQ 1
S.NODE.T.CDEV .EQ 2
S.NODE.T.BDEV .EQ 3
S.NODE.T.LNK .EQ 4
S.NODE.T.DSOCK .EQ 5
S.NODE.T.SSOCK .EQ 6
S.NODE.T.FIFO .EQ 7
*--------------------------------------
S.NODE.REG.REF .EQ 2
S.NODE.REG.IOBUF .EQ 3
*
S.NODE.REG .EQ 4
*--------------------------------------
S.NODE.DIR.REF .EQ 2
S.NODE.DIR.IOBUF .EQ 3
S.NODE.DIR.EL .EQ 4
S.NODE.DIR.EPB .EQ 5
S.NODE.DIR.FC .EQ 6 word
*
S.NODE.DIR .EQ 8
*--------------------------------------
S.NODE.DEV.ID .EQ 2
2017-01-12 17:43:45 +00:00
S.NODE.DEV.JMP .EQ 3 word
*
2017-01-12 17:43:45 +00:00
S.NODE.DEV .EQ 5
*--------------------------------------
* S.NODE.LNK
2016-08-24 15:42:33 +00:00
*--------------------------------------
S.NODE.FIFO.S .EQ 2
S.NODE.FIFO.S.Opened .EQ 1
S.NODE.FIFO.S.Closed .EQ 2
S.NODE.FIFO.hMem .EQ 3
S.NODE.FIFO.Tail .EQ 4
S.NODE.FIFO.Head .EQ 5
*
2017-01-12 17:43:45 +00:00
S.NODE.FIFO .EQ 6
2016-08-24 15:42:33 +00:00
*--------------------------------------
2015-03-14 21:48:35 +00:00
MAN
SAVE /A2OSX.DEV/INC/A2OSX.I