mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-21 05:24:15 +00:00
Kernel 0.92+
This commit is contained in:
parent
7abd289f48
commit
80567cfd8d
115
.Docs/KERNEL.md
115
.Docs/KERNEL.md
@ -61,7 +61,7 @@ X = DevID
|
|||||||
# GetDevStatus
|
# GetDevStatus
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int getdevstatus(short int hFD, S.DIB* dstat);`
|
`int getdevstatus(short int hDEV, S.DIB* dstat);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>PUSHWI S.DIB`
|
`>PUSHWI S.DIB`
|
||||||
@ -338,12 +338,12 @@ CS: A = EC
|
|||||||
# IOCTL
|
# IOCTL
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int ioctl(short int hFD, int request, void * param );`
|
`int ioctl(short int DevID, int request, void * param );`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`PUSHWI param`
|
`PUSHWI param`
|
||||||
`PUSHBI request`
|
`PUSHBI request`
|
||||||
`lda hFD`
|
`lda hDEV`
|
||||||
`>SYSCALL IOCTL`
|
`>SYSCALL IOCTL`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
@ -453,69 +453,94 @@ A = hMem
|
|||||||
Y,A = PTR to MemBlock
|
Y,A = PTR to MemBlock
|
||||||
(X unmodified)
|
(X unmodified)
|
||||||
|
|
||||||
# GetMemByID
|
# SListAddData
|
||||||
A = hMem
|
|
||||||
|
## ASM
|
||||||
|
`PUSHB Data`
|
||||||
|
`PUSHW DataID`
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListAddData`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
Y,A = Next DataID
|
||||||
(X unmodified)
|
|
||||||
|
|
||||||
# GetMemStat
|
# SListGetData
|
||||||
**In:**
|
|
||||||
Y,A = Ptr to 24 bytes buffer
|
## ASM
|
||||||
|
`PUSHB Data`
|
||||||
|
`PUSHW DataID`
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListGetData`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Buffer filled with memory stats
|
Y,A = Next DataID
|
||||||
|
|
||||||
|
# SListSetData
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`PUSHB Data`
|
||||||
|
`PUSHW DataID`
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListSetData`
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
Y,A = Next DataID
|
||||||
|
|
||||||
# SListGetByID
|
# SListGetByID
|
||||||
PUSHB = hSList
|
|
||||||
PUSHW = KeyID
|
## ASM
|
||||||
PUSHW = Data Ptr
|
`PUSHW KeyPtr`
|
||||||
PUSHW = Key Ptr
|
`PUSHW KeyID`
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListGetByID`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
X,Y = Next KeyID
|
Y,A = Next KeyID
|
||||||
|
|
||||||
# SListUpdateByID
|
# SListAddKey
|
||||||
PUSHB = hSList
|
|
||||||
PUSHW = KeyID
|
|
||||||
PUSHW = Data Ptr
|
|
||||||
|
|
||||||
## RETURN VALUE
|
## ASM
|
||||||
A = Key Length
|
`PUSHW KeyPtr`
|
||||||
X,Y = KeyID
|
`lda hSList`
|
||||||
|
`>SYSCALL SListAddKey`
|
||||||
# SListAdd
|
|
||||||
PUSHB = hSList
|
|
||||||
PUSHW = Key Ptr
|
|
||||||
PUSHW = Data Ptr
|
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A = Key Length
|
A = Key Length
|
||||||
X,Y = KeyID
|
X,Y = KeyID
|
||||||
|
|
||||||
# SListLookup
|
# SListLookup
|
||||||
PUSHB = hSList
|
|
||||||
PUSHW = Key Ptr
|
## ASM
|
||||||
PUSHW = Data Ptr
|
`PUSHW KeyPtr`
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListLookup`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A = Key Length
|
Y,A = KeyID
|
||||||
X,Y = KeyID
|
|
||||||
|
|
||||||
# SListNew
|
# SListNew
|
||||||
|
|
||||||
|
## ASM
|
||||||
|
`>SYSCALL SListNew`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A=hSList
|
A=hSList
|
||||||
|
|
||||||
# SListFree
|
# SListFree
|
||||||
A=hSList
|
|
||||||
|
## ASM
|
||||||
|
`lda hSList`
|
||||||
|
`>SYSCALL SListFree`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
|
|
||||||
# GetStkObjProp
|
# GetStkObjData
|
||||||
A = hObject (AUX Memory)
|
|
||||||
Y = Property Index
|
## ASM
|
||||||
|
`PUSHW DataLen`
|
||||||
|
`PUSHW DataPtr`
|
||||||
|
`lda hStkObj`
|
||||||
|
`>SYSCALL GetStkObjData`
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Y,A = Property Value
|
Y,A = Property Value
|
||||||
@ -542,7 +567,7 @@ Load a file in AUX memory (Stock Objects)
|
|||||||
PUSHW = AUXTYPE (Handled by....
|
PUSHW = AUXTYPE (Handled by....
|
||||||
PUSHB = TYPE ...
|
PUSHB = TYPE ...
|
||||||
PUSHB = MODE ...
|
PUSHB = MODE ...
|
||||||
PUSHW = PATH ...FOpen)
|
LDYA = PATH ...FOpen)
|
||||||
|
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Y,A = File Length
|
Y,A = File Length
|
||||||
@ -564,7 +589,7 @@ A = Child PSID
|
|||||||
# ExecV
|
# ExecV
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`int exec(const char* argv[], short int flags);`
|
`int execv(const char* argv[], short int flags);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`>PUSHB flags`
|
`>PUSHB flags`
|
||||||
@ -587,6 +612,13 @@ A = Child PSID
|
|||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A = Child PSID
|
A = Child PSID
|
||||||
|
|
||||||
|
# GetMemStat
|
||||||
|
**In:**
|
||||||
|
Y,A = Ptr to 24 bytes buffer
|
||||||
|
|
||||||
|
## RETURN VALUE
|
||||||
|
Buffer filled with memory stats
|
||||||
|
|
||||||
# Stat
|
# Stat
|
||||||
Return information about a file
|
Return information about a file
|
||||||
|
|
||||||
@ -1092,10 +1124,11 @@ Convert String to 16 bits int
|
|||||||
Return the canonicalized absolute pathname
|
Return the canonicalized absolute pathname
|
||||||
|
|
||||||
## C
|
## C
|
||||||
`unsigned short int realpath (const char* str);`
|
`unsigned short int realpath (const char* str, char *resolvedpath);`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
**In:**
|
**In:**
|
||||||
|
`>PUSHWI resolvedpath`
|
||||||
`>LDYA str`
|
`>LDYA str`
|
||||||
`>SYSCALL realpath`
|
`>SYSCALL realpath`
|
||||||
|
|
||||||
@ -1255,7 +1288,7 @@ S.TIME filled with System date/time
|
|||||||
|
|
||||||
## C
|
## C
|
||||||
Convert S.TIME struct to CSTR
|
Convert S.TIME struct to CSTR
|
||||||
`size_t strftime (char* ptr, const char* format, const struct S.TIME* timeptr );`
|
`void strftime (char* ptr, const char* format, const struct S.TIME* timeptr );`
|
||||||
|
|
||||||
## ASM
|
## ASM
|
||||||
`PUSHW timeptr`
|
`PUSHW timeptr`
|
||||||
|
Binary file not shown.
@ -73,7 +73,7 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GET.IPCFG is TCPIP loaded ?
|
CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||||
>STYA ZPIPCfgPtr
|
>STYA ZPIPCfgPtr
|
||||||
|
|
||||||
lda (ZPIPCfgPtr) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
|
@ -280,7 +280,7 @@ SYS.FreeMem .EQ $E6
|
|||||||
SYS.LoadStkObj .EQ $E8
|
SYS.LoadStkObj .EQ $E8
|
||||||
SYS.NewStkObj .EQ $EA
|
SYS.NewStkObj .EQ $EA
|
||||||
SYS.FreeStkObj .EQ $EC
|
SYS.FreeStkObj .EQ $EC
|
||||||
SYS.GetStkObjProp .EQ $EE
|
SYS.GetStkObjData .EQ $EE
|
||||||
|
|
||||||
SYS.SListAddData .EQ $F0
|
SYS.SListAddData .EQ $F0
|
||||||
SYS.SListGetData .EQ $F2
|
SYS.SListGetData .EQ $F2
|
||||||
|
@ -125,7 +125,7 @@ BIN.Load >STYA BIN.CmdLine
|
|||||||
inx we will skip Slot 0...
|
inx we will skip Slot 0...
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr K.GetMemPtr
|
jsr MEM.GetMemByID
|
||||||
|
|
||||||
lda (ZPMemMgrSPtr)
|
lda (ZPMemMgrSPtr)
|
||||||
bpl .1 In Use?
|
bpl .1 In Use?
|
||||||
|
@ -144,7 +144,7 @@ K.SYSCALL.JMP .DA K.GetMemStat $00
|
|||||||
.DA K.LoadStkObj
|
.DA K.LoadStkObj
|
||||||
.DA K.NewStkObj
|
.DA K.NewStkObj
|
||||||
.DA K.FreeStkObj
|
.DA K.FreeStkObj
|
||||||
.DA K.GetStkObjProp
|
.DA K.GetStkObjData
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.SListAddData $F0
|
.DA K.SListAddData $F0
|
||||||
.DA K.SListGetData
|
.DA K.SListGetData
|
||||||
|
@ -22,7 +22,8 @@ ZPSListDataPtr .EQ ZPMEMMGR+14
|
|||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
MEM.ReqFlags .BS 1 store requested Flags
|
MEM.ReqFlags .BS 1 store requested Flags
|
||||||
MEM.BestSlot .BS 1
|
MEM.BestSlot .BS 1
|
||||||
MEM.BestScore .BS 2
|
*MEM.BestScore .BS 2
|
||||||
|
MEM.BestScore .EQ ZPMemMgrTmp1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.GetMem0 ldx #S.MEM.F.INIT0
|
K.GetMem0 ldx #S.MEM.F.INIT0
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
@ -390,15 +391,7 @@ K.FreeMem tay
|
|||||||
!!!!!WARNING!!!!!
|
!!!!!WARNING!!!!!
|
||||||
.FIN
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.GetMemPtr sta ZPMemMgrSPtr
|
K.GetMemPtr jsr MEM.GetMemByID
|
||||||
lda /Mem.Table/8
|
|
||||||
asl ZPMemMgrSPtr
|
|
||||||
rol
|
|
||||||
asl ZPMemMgrSPtr
|
|
||||||
rol
|
|
||||||
asl ZPMemMgrSPtr
|
|
||||||
rol
|
|
||||||
sta ZPMemMgrSPtr+1
|
|
||||||
K.GetMemPtr.ZPMemMgrSPtr
|
K.GetMemPtr.ZPMemMgrSPtr
|
||||||
ldy #S.MEM.PTR
|
ldy #S.MEM.PTR
|
||||||
lda (ZPMemMgrSPtr),y
|
lda (ZPMemMgrSPtr),y
|
||||||
@ -407,13 +400,7 @@ K.GetMemPtr.ZPMemMgrSPtr
|
|||||||
lda (ZPMemMgrSPtr),y
|
lda (ZPMemMgrSPtr),y
|
||||||
ply
|
ply
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*--------------------------------------
|
||||||
* # GetMemByID
|
|
||||||
* A = hMem
|
|
||||||
* ## RETURN VALUE
|
|
||||||
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
|
||||||
* (X unmodified)
|
|
||||||
*\--------------------------------------
|
|
||||||
MEM.GetMemByID sta ZPMemMgrSPtr
|
MEM.GetMemByID sta ZPMemMgrSPtr
|
||||||
lda /Mem.Table/8
|
lda /Mem.Table/8
|
||||||
asl ZPMemMgrSPtr
|
asl ZPMemMgrSPtr
|
||||||
@ -423,7 +410,6 @@ MEM.GetMemByID sta ZPMemMgrSPtr
|
|||||||
asl ZPMemMgrSPtr
|
asl ZPMemMgrSPtr
|
||||||
rol
|
rol
|
||||||
sta ZPMemMgrSPtr+1
|
sta ZPMemMgrSPtr+1
|
||||||
ldy ZPMemMgrSPtr
|
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # SListAddData
|
* # SListAddData
|
||||||
@ -521,23 +507,28 @@ K.SListFree
|
|||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetStkObjProp
|
* # GetStkObjData
|
||||||
* A = hObject (AUX Memory)
|
* ## ASM
|
||||||
* Y = Property Index
|
* `PUSHW DataLen`
|
||||||
|
* `PUSHW DataPtr`
|
||||||
|
* `lda hStkObj`
|
||||||
|
* `>SYSCALL GetStkObjData`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = Property Value
|
* Y,A = Property Value
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetStkObjProp phy
|
K.GetStkObjData sta SETREADAUX
|
||||||
sta SETREADAUX
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA ZPMemMgrTmp1
|
>STYA ZPMemMgrTmp1
|
||||||
|
|
||||||
ply
|
>PULLW ZPSListDataPtr
|
||||||
|
|
||||||
lda (ZPMemMgrTmp1),y
|
lda (ZPMemMgrTmp1),y
|
||||||
pha
|
pha
|
||||||
iny
|
iny
|
||||||
lda (ZPMemMgrTmp1),y
|
lda (ZPMemMgrTmp1),y
|
||||||
ply
|
ply
|
||||||
|
|
||||||
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
@ -577,7 +568,7 @@ MEM.GoStkObj sta SETREADAUX
|
|||||||
* PUSHW = AUXTYPE (Handled by....
|
* PUSHW = AUXTYPE (Handled by....
|
||||||
* PUSHB = TYPE ...
|
* PUSHB = TYPE ...
|
||||||
* PUSHB = MODE ...
|
* PUSHB = MODE ...
|
||||||
* PUSHW = PATH ...FOpen)
|
* LDYA = PATH ...FOpen)
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = File Length
|
* Y,A = File Length
|
||||||
* X = hMem of Loaded Object in AUX mem
|
* X = hMem of Loaded Object in AUX mem
|
||||||
|
Loading…
Reference in New Issue
Block a user