mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-31 23:09:33 +00:00
127ebe266a
SH: bugfix BIN/*, DRV/*:bugfix, API change
512 lines
9.2 KiB
Plaintext
512 lines
9.2 KiB
Plaintext
NEW
|
||
AUTO 3,1
|
||
*--------------------------------------
|
||
* $E000-E1FF System calls Jump Table
|
||
*--------------------------------------
|
||
* Bank 1
|
||
*--------------------------------------
|
||
K.SYSCALL .DA 0 $00 : STAT
|
||
.DA K.ChMod
|
||
.DA K.FStat
|
||
.DA K.Stat
|
||
.DA K.MKDir
|
||
.DA K.MKNod
|
||
.DA K.MKFIFO
|
||
.DA K.Pipe
|
||
|
||
.DA K.OpenDir $10 : DIRENT
|
||
.DA K.ReadDir
|
||
.DA K.FClose
|
||
.DA K.Open UNISTD
|
||
.DA K.Close
|
||
.DA K.Read
|
||
.DA K.Write
|
||
.DA K.ChOwn
|
||
|
||
.DA K.FPutC $20 : STDIO
|
||
.DA K.PutChar
|
||
.DA K.GetC
|
||
.DA K.GetChar
|
||
.DA K.FPutS
|
||
.DA K.PutS
|
||
.DA K.FGetS
|
||
.DA K.UngetC
|
||
|
||
.DA K.FOpen $30
|
||
.DA K.FClose
|
||
.DA K.FRead
|
||
.DA K.FWrite
|
||
.DA K.FFlush
|
||
.DA K.FSeek
|
||
.DA K.FTell
|
||
.DA K.FEOF
|
||
|
||
.DA K.Remove $40
|
||
.DA K.Rename
|
||
.DA K.PrintF
|
||
.DA K.FPrintF
|
||
.DA K.SPrintF
|
||
.DA K.ScanF
|
||
.DA K.FScanF
|
||
.DA K.SScanF
|
||
|
||
.DA 0 $50
|
||
.DA 0
|
||
.DA 0
|
||
.DA 0
|
||
.DA K.Online $58 : PRODOS
|
||
.DA K.ChTyp
|
||
.DA K.ChAux
|
||
.DA K.SetAttr
|
||
*--------------------------------------
|
||
* Bank 2
|
||
*--------------------------------------
|
||
.DA K.Mount $60 : MOUNT
|
||
.DA K.UMount
|
||
.DA K.LoadStkObj $64 : STKOBJ
|
||
.DA K.GetStkObj
|
||
.DA K.Shift $68 : ARG
|
||
.DA K.ArgV
|
||
.DA K.ArgVDup
|
||
.DA K.GetErrMsg
|
||
|
||
.DA K.AToF $70 : STDLIB
|
||
.DA K.AToI
|
||
.DA K.AToL
|
||
.DA K.StrToF
|
||
.DA K.StrToL
|
||
.DA K.StrToUL
|
||
.DA K.RealPath
|
||
.DA K.Expand
|
||
|
||
.DA K.StrLen $80 : STRING
|
||
.DA K.StrCpy
|
||
.DA K.StrCat
|
||
.DA K.StrDup
|
||
.DA K.StrUpr
|
||
.DA K.StrLwr
|
||
.DA K.StrCmp
|
||
.DA K.StrCaseCmp
|
||
|
||
.DA K.GetDevByName $90 : DEV
|
||
.DA K.MKFD
|
||
.DA K.MKDev
|
||
.DA K.IOCTL
|
||
.DA K.LoadLib BIN
|
||
.DA K.UnloadLib
|
||
.DA K.LoadDrv
|
||
.DA K.InsDrv
|
||
|
||
.DA K.ExecL $A0 : PS
|
||
.DA K.ExecV
|
||
.DA K.Fork
|
||
.DA K.Kill
|
||
.DA K.LoadFile
|
||
.DA K.LoadTxtFile
|
||
.DA K.FileSearch
|
||
.DA K.GetMemStat
|
||
*--------------------------------------
|
||
* AUX
|
||
*--------------------------------------
|
||
.DA K.StrVNew $B0 : STRV
|
||
.DA K.StrVSet
|
||
.DA K.StrVGet
|
||
.DA K.StrVFree
|
||
.DA K.PutEnv $B8 : ENV
|
||
.DA K.SetEnv
|
||
.DA K.GetEnv
|
||
.DA K.UnsetEnv
|
||
|
||
.DA K.Time $C0 : TIME
|
||
.DA K.StrFTime
|
||
.DA K.PTime2Time
|
||
.DA K.CTime2Time
|
||
.DA K.MD5 $C8 : MD5
|
||
.DA K.MD5Init
|
||
.DA K.MD5Update
|
||
.DA K.MD5Finalize
|
||
|
||
.DA K.GetPWUID $D0 : PWD
|
||
.DA K.GetPWName
|
||
.DA K.PutPW
|
||
.DA K.GetGRGID
|
||
.DA K.GetGRName
|
||
.DA K.PutGR
|
||
.DA K.OpenSession
|
||
.DA K.CloseSession
|
||
|
||
.DA K.SListGetData $E0 : SLIST
|
||
.DA K.SListAddData
|
||
.DA K.SListSetData
|
||
.DA K.SListGetByID
|
||
|
||
.DA K.SListNewKey
|
||
.DA K.SListLookup
|
||
.DA K.SListFree
|
||
.DA K.SListNew
|
||
*--------------------------------------
|
||
* $E000
|
||
*--------------------------------------
|
||
.DA K.GetMem $F0
|
||
.DA K.Realloc
|
||
.DA K.GetMemPtr
|
||
.DA K.FreeMem
|
||
.DA K.Free
|
||
|
||
.DA K.GetMem K.NewStkObj
|
||
.DA K.GetMemPtr K.GetStkObjPtr
|
||
.DA K.FreeMem K.FreeStkObj
|
||
*--------------------------------------
|
||
* LO Byte :
|
||
* #RRAMWRAMBNK1,#RRAMWRAMBNK2
|
||
* HI Byte :
|
||
* Flags (ROOT....)
|
||
*--------------------------------------
|
||
K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $10
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $20 : STDIO
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $30
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $40
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $50
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1 $58 : PRODOS
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
*--------------------------------------
|
||
.DA #RRAMWRAMBNK2 $60 : MOUNT
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2 $64 : STKOBJ
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2 $68 : ARG
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK2 $70 : STDLIB
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK2 $80 : STRING
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK1 $90 : DEV
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK1
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2 $98 : BIN
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
|
||
.DA #RRAMWRAMBNK2 $A0 : PS
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
.DA #RRAMWRAMBNK2
|
||
.DA #0
|
||
|
||
.DA #0 $B0 : STRV
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0 $B8 : ENV
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
|
||
.DA #0 $C0 : TIME
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0 $C8 : MD5
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
|
||
.DA #0 $D0 : PWD
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
|
||
.DA #0 $E0 : SLIST
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
*--------------------------------------
|
||
.DA #0 $E0 : MemMgr at $E000
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #0
|
||
.DA #$C0 NewStkObj
|
||
.DA #0
|
||
.DA #$C0 GetStkObjPtr
|
||
.DA #0
|
||
.DA #$C0 FreeStkObj
|
||
.DA #0
|
||
*--------------------------------------
|
||
* K.SYSCALL2 : From KERNEL (MAIN,AUX), LIB
|
||
*--------------------------------------
|
||
K.SYSCALL2 bit K.SYSCALL.BANK,x Get Target BNK
|
||
bvc K.SYSCALL2.BANK
|
||
|
||
K.SYSCALL2.AUX sta SETREADAUX MAIN to AUX Mem API
|
||
sta SETWRITEAUX
|
||
jsr K.SYSCALL.JMP
|
||
sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
|
||
K.SYSCALL2.MAIN sta CLRREADAUX Coming from KERNEL in AUX...
|
||
sta CLRWRITEAUX
|
||
jsr .1
|
||
|
||
sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
rts
|
||
|
||
.1 bit K.SYSCALL.BANK,x Get Target LC BNK
|
||
|
||
K.SYSCALL2.BANK bpl K.SYSCALL.JMP 0, E000, no BNK change
|
||
sta .7+1
|
||
lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2
|
||
cmp K.SYSCALL.BANK,x
|
||
beq .7
|
||
|
||
pha remember source BNK
|
||
stx .6+1
|
||
lda K.SYSCALL.BANK,x
|
||
tax get Target BNK in x
|
||
bit $C000,x switch to Target BNK
|
||
bit $C000,x
|
||
|
||
jsr .6
|
||
|
||
stx .5+1 Save X
|
||
plx get back Source BNK
|
||
bit $C000,x switch to Target BNK
|
||
bit $C000,x
|
||
|
||
.5 ldx #$ff SELF MODIFIED
|
||
rts
|
||
|
||
.6 ldx #$ff SELF MODIFIED
|
||
.7 lda #$ff SELF MODIFIED
|
||
|
||
K.SYSCALL.JMP jmp (K.SYSCALL,x)
|
||
*--------------------------------------
|
||
K.SYSCALL.JMPX1A
|
||
>PULLW FORPNT
|
||
bra JMPXA
|
||
K.SYSCALL.JMPX2A
|
||
sec
|
||
.HS 90 BCC
|
||
K.SYSCALL.JMPX2 clc
|
||
>PULLW FORPNT
|
||
>PULLW TXTPTR
|
||
bcc K.SYSCALL.JMPX
|
||
|
||
JMPXA >PULLA
|
||
|
||
K.SYSCALL.JMPX sta SETREADAUX
|
||
sta SETWRITEAUX
|
||
jsr JMPX
|
||
sta CLRREADAUX
|
||
sta CLRWRITEAUX
|
||
rts
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE usr/src/sys/kernel.s.jmp
|
||
LOAD usr/src/sys/kernel.s
|
||
ASM
|