diff --git a/INC/A2osX.API.I.txt b/INC/A2osX.API.I.txt index 345ae8ab..04ad4074 100644 --- a/INC/A2osX.API.I.txt +++ b/INC/A2osX.API.I.txt @@ -3,272 +3,5 @@ PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 - .LIST OFF -*-------------------------------------- -************ A2osX API **************** -*-------------------------------------- -* A2osX.SYSCALL Functions Indexes -*-------------------------------------- -SYS.GetMem .EQ $00 -SYS.FreeMemA .EQ $02 -SYS.GetMemPtrA .EQ $04 -SYS.GetMemByIDA .EQ $06 - -SYS.GetMemByNameA .EQ $08 -SYS.GetMemByNameYA .EQ $0A -*-------------------------------------- -SYS.NewPStrYA .EQ $10 -SYS.PStrCpyA .EQ $12 -SYS.PStrCat .EQ $14 -SYS.PStrCmp .EQ $16 - -SYS.PStrGetTkn .EQ $18 -*-------------------------------------- -SYS.LoadBinA .EQ $20 -SYS.LoadLibYA .EQ $22 -SYS.UnloadLibA .EQ $24 -SYS.LoadDrvA .EQ $26 -*-------------------------------------- -SYS.ExpandPStrA .EQ $30 -SYS.ExpandPStrYA .EQ $32 -SYS.GetEnvVarH .EQ $34 -SYS.GetEnvVarP .EQ $36 - -SYS.SetEnvVarH .EQ $38 -SYS.SetEnvVarP .EQ $3A -*-------------------------------------- -SYS.MLICreateFile .EQ $40 -SYS.MLICreateDirA .EQ $42 -SYS.MLICreateDirYA .EQ $44 -SYS.MLIDestroyA .EQ $46 - -SYS.MLIDestroyYA .EQ $48 -SYS.MLIRename .EQ $4A -SYS.MLISetFileInfo .EQ $4C -SYS.MLIGetFileInfoA .EQ $4E - -SYS.MLIGetFileInfoYA .EQ $50 -SYS.MLIOnline .EQ $52 -SYS.MLISetPrefixA .EQ $54 -SYS.MLISetPrefixYA .EQ $56 - -SYS.MLIGetPrefixA .EQ $58 -SYS.MLIGetPrefixYA .EQ $5A -SYS.MLIOpenA .EQ $5C -SYS.MLIOpenYA .EQ $5E - -SYS.MLINewLine .EQ $60 -SYS.MLIRead .EQ $62 -SYS.MLIWrite .EQ $64 -SYS.MLICloseA .EQ $66 - -SYS.MLIFlushA .EQ $68 -SYS.MLISetMark .EQ $6A -SYS.MLIGetMarkA .EQ $6A -SYS.MLISetEOF .EQ $6C - -SYS.MLIGetEOFA .EQ $70 -SYS.MLISetBuf .EQ $72 -SYS.MLIGetBuf .EQ $74 -SYS.MLIGetTime .EQ $76 - -SYS.MLIAllocIRQ .EQ $78 -SYS.MLIDeallocIRQ .EQ $7A -SYS.MLIReadBlock .EQ $7C -SYS.MLIWriteBlock .EQ $7E -*-------------------------------------- -SYS.GetDevByIDA .EQ $80 -SYS.GetDevByNameA .EQ $82 -SYS.GetDevByNameYA .EQ $84 - -SYS.GetKeyboardEvent .EQ $88 -*-------------------------------------- -SYS.ExecProcessNewEnvA .EQ $90 -SYS.ExecProcessA .EQ $92 -SYS.CreateProcessNewEnvA .EQ $94 -SYS.CreateProcessA .EQ $96 - -SYS.GetPSByIDA .EQ $98 -*-------------------------------------- -SYS.CheckPrefixA .EQ $A0 -SYS.FileSearch .EQ $A2 -SYS.LoadFileA .EQ $A4 -SYS.LoadFileYA .EQ $A6 - -SYS.ListDirInitA .EQ $A8 -SYS.ListDirNextA .EQ $AA -SYS.ListDirCloseA .EQ $AC -*-------------------------------------- -SYS.AddNetCfg .EQ $B0 -SYS.SetNetCfg .EQ $B2 -SYS.GetNetCfgA .EQ $B4 -SYS.ClrNetCfgA .EQ $B6 -*-------------------------------------- -SYS.ScreenSelectA .EQ $C0 - -SYS.SysScrPPSTRA .EQ $C4 -SYS.SysScrPPSTRYA .EQ $C6 -*-------------------------------------- -* ERROR CODES -*-------------------------------------- -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 -DEVMGR.ERRNICL .EQ $ED Invalid Command Line -DEVMGR.ERRNOHW .EQ $EC No Hardware -DEVMGR.ERRDNF .EQ $EB Device Not Found Error -*-------------------------------------- -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.ERRIDIR .EQ $CD Invalid Directory -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.SIZE .EQ 8 -*-------------------------------------- -* BIN STRUCT -*-------------------------------------- -S.BIN.CODE .EQ 0 -*-------------------------------------- -* DEV STRUCT -*-------------------------------------- -S.DEV.CODE .EQ 0 -S.DEV.JMP .EQ 2 -S.DEV.F .EQ 4 -S.DEV.F.INUSE .EQ %10000000 -S.DEV.F.BUSY .EQ %01000000 -S.DEV.F.SHARE .EQ %00100000 Device is shareable -S.DEV.F.IRQ .EQ %00010000 Device is irq driven -S.DEV.F.EVENT .EQ %00001000 Device is event driven -S.DEV.F.COUT .EQ %00000100 Device supports Char OUT -S.DEV.F.BLOCK .EQ %00000010 -S.DEV.F.CHAR .EQ %00000001 -S.DEV.NAME .EQ 5 5 Bytes : LEN+NUL KBD CON COMx LPTx ETHx -* -S.DEV.SIZE .EQ 16 -*-------------------------------------- -S.DEVINFO.TYPE .EQ 0 -S.DEVINFO.TYPE.CHAR .EQ %00000001 -S.DEVINFO.TYPE.XY .EQ %00000010 -S.DEVINFO.TYPE.NET .EQ %00000011 -S.DEVINFO.TYPE.GFX .EQ %00000100 -*-------------------------------------- -* Generic Driver Functions -*-------------------------------------- -DEVMGR.OPEN .EQ 0 -DEVMGR.GETEVENT .EQ 2 -DEVMGR.COUT .EQ 4 -DEVMGR.CLOSE .EQ 6 -DEVMGR.GETINFO .EQ 8 -DEVMGR.IRQ .EQ 10 -*-------------------------------------- -* 'XY' Class Driver Functions -*-------------------------------------- -DEVMGR.XY.SETPOS .EQ 12 -*-------------------------------------- -* 'NET' Class Driver Functions -*-------------------------------------- -DEVMGR.NET.SEND .EQ 12 -*-------------------------------------- -* 'GFX' Class Driver Functions -*-------------------------------------- -DEVMGR.GFX.SETPIXEL .EQ 12 -DEVMGR.GFX.GETPIXEL .EQ 14 -DEVMGR.GFX.HLINE .EQ 16 -DEVMGR.GFX.VLINE .EQ 18 -DEVMGR.GFX.BITBLT .EQ 20 -*-------------------------------------- -* 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.F.ENV .EQ %00010000 -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 -*-------------------------------------- -* 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 -*-------------------------------------- -* 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.hPATH .EQ 14 Pattern for file filtering -S.LISTDIR.hPATTERN .EQ 15 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.API.I diff --git a/INC/KERNEL.I.txt b/INC/KERNEL.I.txt index 6d7f873c..38dbd978 100644 --- a/INC/KERNEL.I.txt +++ b/INC/KERNEL.I.txt @@ -5,89 +5,5 @@ INC 1 AUTO 6 .LIST OFF *-------------------------------------- -* KERNEL CONSTANTS DEFINITON -*-------------------------------------- -K.TIMER16RESOLUTION .EQ 5 every 5 VBL (50hz), so 100ms -*-------------------------------------- -K.ENV.SIZE .EQ $100 -K.DEV.MAX .EQ 32 -K.PS.MAX .EQ 64 -*-------------------------------------- -K.NETCFG.MAX .EQ 4 -K.NETCFG.SIZE .EQ 128 -K.PROTOID.ATALK .EQ 0 -K.PROTOID.ETALK .EQ 1 -K.PROTOID.IP .EQ 2 -K.PROTOID.SPARE .EQ 3 -K.ARPCACHE.SIZE .EQ 10 -K.DNSCACHE.SIZE .EQ 10 -K.UDPTABLE.SIZE .EQ 16 -K.TCPTABLE.SIZE .EQ 16 -K.ETH.FRAME.LEN .EQ 1514 -K.IP.TTL .EQ 64 -K.DNS.MAXLEN .EQ 64 -K.DYNPORT.START .EQ 49152 -K.DYNPORT.END .EQ 65535 -K.DYNPORT.MAX .EQ 64 -*-------------------------------------- -H.BIN.HEADER .EQ 0 -H.BIN.HEADER.DRV65 .EQ $4C8D 6502:cld,jmp abs -H.BIN.HEADER.LIB65 .EQ $7C8D 6502:cld,jmp (abs,x) -H.BIN.HEADER.BIN65 .EQ $7C8D 6502:cld,jmp (abs,x) -H.BIN.HEADER.DRV80 .EQ $A28D Z80: -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.BIN.DS.SIZE .EQ 10 -H.BIN.DEV.HEADER.O .EQ 10 -H.BIN.DRV.CODE.O .EQ 12 -H.BIN.DRV.CODE.LEN .EQ 14 -H.BIN.RELOC.TABLE .EQ 16 -*-------------------------------------- -* KERNEL Reserved ZP (Aux) Location 00-1F,56-FF -*-------------------------------------- -ZPMemMgr .EQ $B0 -ZPSysScr .EQ $C0 -ZPDevMgr .EQ $D0 -ZPTskMgr .EQ $E0 -*-------------------------------------- -R.VCPU16 .EQ $F0 -R.AX .EQ R.VCPU16 -R.AL .EQ R.VCPU16 -R.AH .EQ R.VCPU16+$1 -R.BX .EQ R.VCPU16+$2 -R.BL .EQ R.VCPU16+$2 -R.BH .EQ R.VCPU16+$3 -R.CX .EQ R.VCPU16+$4 -R.CL .EQ R.VCPU16+$4 -R.CH .EQ R.VCPU16+$5 -R.DX .EQ R.VCPU16+$6 -R.DL .EQ R.VCPU16+$6 -R.DH .EQ R.VCPU16+$7 -*-------------------------------------- -MLICALL.PARAMS .EQ $1100 -DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b -*-------------------------------------- -TskMgr.Table .EQ $1400 K.PS.MAX*S.PS.SIZE=64*16=1k -*-------------------------------------- -* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes) -*-------------------------------------- -MemMgr.Table .EQ $1800 -MemMgr.HiMem .EQ $1800 Slot 0 is Reserved -MemMgr.Free .EQ $1802 -MemMgr.LoMem .EQ $1804 -MemMgr.LastSlot .EQ $1806 -*-------------------------------------- -MemMgr.MLoMem .EQ $2000 -MemMgr.MHiMem .EQ $BE00 -MemMgr.XLoMem .EQ $2000 -MemMgr.XHiMem .EQ $C000 -*-------------------------------------- -KERNEL.COLDBOOT .EQ $D000 -KERNEL.SYSCALL .EQ $D003 -*-------------------------------------- MAN SAVE INC/KERNEL.I