A2osX/INC/A2osX.I.txt

326 lines
8.9 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
2015-03-15 22:00:40 +00:00
PREFIX /A2OSX.BUILD
2015-03-14 21:48:35 +00:00
NEW
INC 1
AUTO 6
.LIST OFF
*--------------------------------------
* KERNEL Reserved ZP Location 00-1F,56-FF
*--------------------------------------
ZPQuickPtr1 .EQ $90 Temp Ptrs for use in very limited scope
ZPQuickPtr2 .EQ $92 (could be trashed by any JSR)
ZPQuickPtr3 .EQ $94
ZPQuickPtr4 .EQ $96
ZPLIB .EQ $A0 Main
ZPDRV .EQ $B0 Main
ZPBIN .EQ $C0 Main
*--------------------------------------
pPsContext .EQ $F0
pDevContext .EQ $F2
pEvent .EQ $F4
*--------------------------------------
R.SP .EQ $FE Main
*--------------------------------------
* A2OS.SYSCALL Functions Indexes
*--------------------------------------
SYS.GetMem .EQ $00
SYS.FreeMemA .EQ $02
SYS.ClrMemA .EQ $04
SYS.GetMemPtrA .EQ $06
SYS.GetMemLenA .EQ $08
SYS.GetMemByIDA .EQ $0A
SYS.GetMemByNameA .EQ $0C
*--------------------------------------
SYS.NewPStr .EQ $10
SYS.PStrCpyA .EQ $12
SYS.PStrCat .EQ $14
SYS.PStrCmp .EQ $16
SYS.PStrGetTkn .EQ $18
SYS.GetPStrIndex .EQ $1A
*--------------------------------------
SYS.LoadBinA .EQ $20
SYS.LoadLib .EQ $22
SYS.UnloadLibA .EQ $24
SYS.LoadDrvA .EQ $26
*--------------------------------------
SYS.ExpandPStrA .EQ $30
SYS.ExpandPStr .EQ $32
SYS.GetEnvVarH .EQ $34
SYS.GetEnvVarP .EQ $36
SYS.SetEnvVarH .EQ $38
SYS.SetEnvVarP .EQ $3A
*--------------------------------------
SYS.MLICreate .EQ $40
SYS.MLIDestroy .EQ $42
SYS.MLIRename .EQ $44
SYS.MLISetFileInfo .EQ $46
SYS.MLIGetFileInfoA .EQ $48
SYS.MLIOnline .EQ $4A
SYS.MLISetPrefix .EQ $4C
SYS.MLIGetPrefixA .EQ $4E
SYS.MLIOpenA .EQ $50
SYS.MLINewLine .EQ $52
SYS.MLIRead .EQ $54
SYS.MLIWrite .EQ $56
SYS.MLICloseA .EQ $58
SYS.MLIFlushA .EQ $5A
SYS.MLISetMark .EQ $5C
SYS.MLIGetMark .EQ $5E
SYS.MLISetEOF .EQ $60
SYS.MLIGetEOFA .EQ $62
*--------------------------------------
SYS.GetDevByIDA .EQ $70
SYS.GetDevByNameA .EQ $72
SYS.GetDevTable .EQ $74
SYS.GetDevInfoA .EQ $76
SYS.DevOutA .EQ $78
SYS.GetDevByNameYA .EQ $7A
2015-03-14 21:48:35 +00:00
*--------------------------------------
SYS.GetEvent .EQ $80
SYS.DestroyEvent .EQ $82
*--------------------------------------
SYS.ExecProcessA .EQ $90
SYS.CreateProcessA .EQ $92
SYS.GetPSByIDA .EQ $98
*--------------------------------------
SYS.CheckPrefixA .EQ $A0
SYS.FileSearch .EQ $A2
SYS.LoadFileA .EQ $A4
SYS.ListDirInitA .EQ $A6
SYS.ListDirNextA .EQ $A8
SYS.ListDirCloseA .EQ $AA
*--------------------------------------
SYS.AddNetCfg .EQ $B0
SYS.SetNetCfg .EQ $B2
SYS.GetNetCfgA .EQ $B4
SYS.ClrNetCfgA .EQ $B6
*--------------------------------------
SYS.ScreenSelectA .EQ $C0
*--------------------------------------
2015-03-14 21:48:35 +00:00
A2osX.SaveSM .EQ $100 Main
A2osX.SaveSX .EQ $101 Aux
*--------------------------------------
* Main $200 -> 2FF : (Reserved, ProDOS,Clock DRV....)
* Main $300 -> 3EF : <free>
2015-03-15 22:00:40 +00:00
* Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...)
2015-03-14 21:48:35 +00:00
* Aux $200 -> 3FD : /RAM Driver
2015-03-15 22:00:40 +00:00
* Aux $3FE -> 3FF : IRQ Vector
2015-03-14 21:48:35 +00:00
*--------------------------------------
* Console Screen .EQ $400 -> $7FF
* System Screen .EQ $800 -> $BFF
*--------------------------------------
TmpBuffer256 .EQ $0C00
*--------------------------------------
D.STACKSEG .EQ $0D00 $0DFF Down to $0D00
*--------------------------------------
MLICALL.PARAMS .EQ $0E00 size=$12 (SET_FILE_INFO +1)
*--------------------------------------
MEMMGR.LOMEM .EQ $0E30
MEMMGR.MLLIMIT .EQ $0E32
MEMMGR.MHLIMIT .EQ $0E34
MEMMGR.HIMEM .EQ $0E36
MEMMGR.MFREE .EQ $0E38
MEMMGR.TABLESIZE .EQ $0E3A
*--------------------------------------
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
Z80JMP .EQ $1000
*--------------------------------------
DEVMGR.TABLE .EQ $1200 K.DEV.MAX*S.DEV.SIZE=20*12=240
TSKMGR.TABLE .EQ $1300 K.PS.MAX*S.PS.SIZE=32*16=512
*--------------------------------------
A2osX.LOMEM .EQ $1500
*--------------------------------------
* A2osX GLOBAL PAGE
* $BE00->$BE0F : Public JMP
*--------------------------------------
A2osX.SYSCALL .EQ $BE00
A2osX.MLICALL .EQ $BE02
A2osX.LIBCALL .EQ $BE04
A2osX.SLEEP .EQ $BE06
Kernel.MLICALL .EQ $BE08
Kernel.DRVCALL .EQ $BE0A
Kernel.BINCALL .EQ $BE0C
Kernel.LIBCALL .EQ $BE0E
*--------------------------------------
A2osX.SCREENS .EQ $BE10
A2osX.SCREENS.G .EQ %00000100
A2osX.SCREENS.C .EQ %00000010
A2osX.SCREENS.S .EQ %00000001
A2osX.ACTIVESCRN .EQ $BE11
A2osX.TIMER16 .EQ $BE12
A2osX.RANDOM16 .EQ $BE14
A2osX.CPUTYPE .EQ $BE16
A2osX.Z80SLOT .EQ $BE17
Kernel.JMP .EQ $BE1A
A2osX.SaveA .EQ $BE1C
A2osX.SaveX .EQ $BE1D
A2osX.SaveY .EQ $BE1E
A2osX.GPCODE .EQ $BE20
*--------------------------------------
* MEM STRUCT
*--------------------------------------
S.MEM.F .EQ 0
S.MEM.F.INUSE .EQ %10000000
S.MEM.F.CLEAR .EQ %10000000 Fill with "0"
S.MEM.F.CODE .EQ %01000000
S.MEM.F.NOMOV .EQ %00100000
S.MEM.F.ALIGN .EQ %00010000
S.MEM.F.SPARE .EQ %00001000
S.MEM.F.AUX .EQ %00000100
S.MEM.REFCNT .EQ 1
S.MEM.PTR .EQ 2
S.MEM.LEN .EQ 4
S.MEM.BIN .EQ 6
S.MEM.OWNERPID .EQ 7
*
S.MEM.SIZE .EQ 8
*--------------------------------------
MEMMGR.ERROOM .EQ $FF Out Of Memory Error
MEMMGR.ERROOS .EQ $FE Out Of Slot Error
*--------------------------------------
* DEV STRUCT
*--------------------------------------
S.DEV.F .EQ 0
S.DEV.F.INUSE .EQ %10000000
S.DEV.F.EVENT .EQ %01000000
S.DEV.F.OUT .EQ %00100000
2015-03-17 22:05:33 +00:00
S.DEV.F.MOUSE .EQ %00010000
2015-03-14 21:48:35 +00:00
S.DEV.F.GFX .EQ %00001000
S.DEV.F.NET .EQ %00000100
S.DEV.F.BLOCK .EQ %00000010
S.DEV.F.CHAR .EQ %00000001
S.DEV.ID .EQ 1
S.DEV.NAME .EQ 2 5 Bytes : NUL KBD CON COMx LPTx ETHx
S.DEV.hCS .EQ 7
S.DEV.hDS .EQ 8
S.DEV.hCMD .EQ 9
S.DEV.hARGS .EQ 10
S.DEV.hOWNERPS .EQ 11
*
S.DEV.SIZE .EQ 12
*--------------------------------------
* Generic Driver Functions
2015-03-14 21:48:35 +00:00
*--------------------------------------
DEVMGR.OPEN .EQ 0
DEVMGR.GETEVENT .EQ 2
DEVMGR.OUT .EQ 4
DEVMGR.CLOSE .EQ 6
DEVMGR.GETINFO .EQ 8
*--------------------------------------
* 'GFX' Class Driver Functions
*--------------------------------------
DEVMGR.GFX.SETPIXEL .EQ 10
DEVMGR.GFX.GETPIXEL .EQ 12
*--------------------------------------
2015-03-14 21:48:35 +00:00
DEVMGR.ERRNICL .EQ $EB Invalid Command Line
DEVMGR.ERRNOHW .EQ $EC No Hardware
DEVMGR.ERRDNF .EQ $ED Device Not Found Error
DEVMGR.ERROOS .EQ $EE Out Of Slot Error
*--------------------------------------
* PS STRUCT
*--------------------------------------
S.PS.F .EQ 0
S.PS.F.INUSE .EQ %10000000
S.PS.F.HOLD .EQ %01000000
S.PS.F.EVENT .EQ %00100000
S.PS.ID .EQ 1
S.PS.PID .EQ 2
S.PS.hCS .EQ 3
S.PS.hDS .EQ 4
S.PS.hPREFIX .EQ 5
S.PS.hENV .EQ 6
S.PS.hCMD .EQ 7
S.PS.hARGS .EQ 8
S.PS.hINDEV .EQ 9
S.PS.hOUTDEV .EQ 10
S.PS.hERRDEV .EQ 11
S.PS.CID .EQ 12
S.PS.LASTERROR .EQ 13
S.PS.PC .EQ 14
*
S.PS.SIZE .EQ 16
*--------------------------------------
* 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
*--------------------------------------
TSKMGR.ERROOS .EQ $DE Out Of Slot Error
TSKMGR.ERRNSP .EQ $DF No Such Process Error
*--------------------------------------
* EVENT STRUCT
*--------------------------------------
S.EVT.F .EQ 0
S.EVT.F.SYS .EQ %10000000
S.EVT.F.WND .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
S.EVT.F.TIMER .EQ %00001000
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
*
S.EVT.SIZE .EQ 8
*--------------------------------------
SYSMGR.ERRENVF .EQ $CB Env is Full
SYSMGR.ERRIDIR .EQ $CC Invalid Directory
SYSMGR.ERRFTB .EQ $CD File Too Big Error
SYSMGR.ERRFNF .EQ $CE File Not Found Error
SYSMGR.ERRSYN .EQ $CF Syntax Error
*--------------------------------------
* S.LISTDIR STRUCT
*--------------------------------------
S.LISTDIR.hONLINE .EQ 0
S.LISTDIR.ONLINEPTR .EQ 1
S.LISTDIR.REFNUM .EQ 2 ref_num file
S.LISTDIR.hIOBUF .EQ 3 hMem to ProDOS IO buffer
S.LISTDIR.hREADBUF .EQ 4 hMem to 512 Read Buffer
S.LISTDIR.EL .EQ 5 entry_length
S.LISTDIR.EIB .EQ 6 ENTRY_INDEX in block
S.LISTDIR.EPB .EQ 7 entry_per_block
S.LISTDIR.BLKPTR .EQ 8 entry PTR in block
S.LISTDIR.FI .EQ 10 FILE_INDEX in DIR
S.LISTDIR.FC .EQ 12 file_count
S.LISTDIR.hPATTERN .EQ 14 Pattern for file filtering
*
S.LISTDIR.SIZE .EQ 16
*--------------------------------------
* S.BUFRDR STRUCT
*--------------------------------------
S.BUFRDR.hMEM .EQ 0
S.BUFRDR.DELIM .EQ 1
S.BUFRDR.LEN .EQ 2
S.BUFRDR.IDX .EQ 4
*
S.BUFRDR.SIZE .EQ 6
*--------------------------------------
MAN
SAVE INC/A2OSX.I