mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-05 03:57:31 +00:00
Kernel 0.9.2
This commit is contained in:
parent
c982c8fb9c
commit
6286ac371c
@ -325,32 +325,32 @@ Return float rounded into a long
|
|||||||
A = hMem To Free
|
A = hMem To Free
|
||||||
**Out:**
|
**Out:**
|
||||||
none.
|
none.
|
||||||
(X,Y unmodified)
|
(X unmodified)
|
||||||
|
|
||||||
# GetMemPtr
|
# GetMemPtr
|
||||||
**In:**
|
**In:**
|
||||||
A = hMem
|
A = hMem
|
||||||
**Out:**
|
**Out:**
|
||||||
Y,A = PTR to MemBlock
|
Y,A = PTR to MemBlock
|
||||||
(X unmodified)
|
(X unmodified)
|
||||||
|
|
||||||
# GetMemByID
|
# GetMemByID
|
||||||
**In:**
|
**In:**
|
||||||
A = hMem
|
A = hMem
|
||||||
**Out:**
|
**Out:**
|
||||||
Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
||||||
X unmodified
|
(X unmodified)
|
||||||
|
|
||||||
# NewStr
|
# NewStr
|
||||||
Create a new copy of this C-String
|
Create a new copy of this C-String
|
||||||
**In:**
|
**In:**
|
||||||
Y,A = Ptr to source C-String
|
Y,A = Ptr to source C-String
|
||||||
**Out:**
|
**Out:**
|
||||||
CC : success
|
CC : success
|
||||||
Y,A = PTR to String
|
Y,A = PTR to String
|
||||||
X = hMem (PSTR)
|
X = hMem (PSTR)
|
||||||
CS : error
|
CS : error
|
||||||
A = SYS error code
|
A = SYS error code
|
||||||
|
|
||||||
# SListGetByID
|
# SListGetByID
|
||||||
**In:**
|
**In:**
|
||||||
@ -883,7 +883,7 @@ Convert String to 16 bits int
|
|||||||
**Out:**
|
**Out:**
|
||||||
Y,A = int
|
Y,A = int
|
||||||
|
|
||||||
# realpath
|
# RealPath
|
||||||
Return the canonicalized absolute pathname
|
Return the canonicalized absolute pathname
|
||||||
|
|
||||||
## C
|
## C
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -52,6 +52,8 @@ CS.INIT lda #0
|
|||||||
>LEA.G MemStat
|
>LEA.G MemStat
|
||||||
>SYSCALL GetMemStat
|
>SYSCALL GetMemStat
|
||||||
|
|
||||||
|
* >LDA.G MemStat+S.MSTAT.MLast
|
||||||
|
* >DEBUG
|
||||||
* lda (pPs)
|
* lda (pPs)
|
||||||
* ora #S.PS.F.EVENT Now accept events
|
* ora #S.PS.F.EVENT Now accept events
|
||||||
* sta (pPs)
|
* sta (pPs)
|
||||||
@ -76,6 +78,7 @@ CS.RUN >SYSCALL GetChar
|
|||||||
|
|
||||||
.13 >LDA.G bSTOP
|
.13 >LDA.G bSTOP
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>INC.G MEM.COUNT
|
>INC.G MEM.COUNT
|
||||||
>SYSCALL GetMemByID
|
>SYSCALL GetMemByID
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
@ -193,9 +196,10 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1
|
|||||||
.12 >LDYA L.MSG1
|
.12 >LDYA L.MSG1
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
|
||||||
ldy #S.MEM.BIN
|
lda (ZPPTR1)
|
||||||
lda (ZPPTR1),y
|
and #S.MEM.F.CODE
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
****** DATA
|
****** DATA
|
||||||
ldy #S.MEM.PTR
|
ldy #S.MEM.PTR
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
@ -232,7 +236,9 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1
|
|||||||
>LDYA L.MSG1.HEX
|
>LDYA L.MSG1.HEX
|
||||||
bra .8
|
bra .8
|
||||||
****** BIN
|
****** BIN
|
||||||
.7 >SYSCALL GetMemPtr
|
.7 ldy #S.MEM.BIN
|
||||||
|
lda (ZPPTR1),y
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG1.BIN
|
>LDYA L.MSG1.BIN
|
||||||
|
|
||||||
|
@ -100,6 +100,9 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
|||||||
jsr Mem.AddSlot X = new slot
|
jsr Mem.AddSlot X = new slot
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
lda #S.MEM.F.ALIGN Make sure marked FREE
|
||||||
|
sta (ZPMemMgrSPtr)
|
||||||
|
|
||||||
.6 >LDYA ZPMemMgrSize
|
.6 >LDYA ZPMemMgrSize
|
||||||
jsr Mem.AddSlot X = new slot
|
jsr Mem.AddSlot X = new slot
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -234,10 +237,9 @@ Mem.NextSlot lda ZPMemMgrSPtr
|
|||||||
* A = hMem To Free
|
* A = hMem To Free
|
||||||
* **Out:**
|
* **Out:**
|
||||||
* none.
|
* none.
|
||||||
* (X,Y unmodified)
|
* (X unmodified)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FreeMem phy
|
K.FreeMem tay
|
||||||
tay
|
|
||||||
|
|
||||||
beq * Slot=0, reserved by Kernel
|
beq * Slot=0, reserved by Kernel
|
||||||
|
|
||||||
@ -255,13 +257,14 @@ K.FreeMem phy
|
|||||||
sta (ZPMemMgrSPtr),y
|
sta (ZPMemMgrSPtr),y
|
||||||
bne .8 no, must be a code segment loaded several times
|
bne .8 no, must be a code segment loaded several times
|
||||||
|
|
||||||
* lda #0
|
lda (ZPMemMgrSPtr)
|
||||||
sta (ZPMemMgrSPtr) mark this slot as free
|
and #S.MEM.F.CODE CS: Any BINPATH to discard ?
|
||||||
|
sta (ZPMemMgrSPtr) Mark as FREE
|
||||||
ldy #S.MEM.BIN
|
|
||||||
lda (ZPMemMgrSPtr),y Any BINPATH to discard ?
|
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
|
ldy #S.MEM.BIN
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
|
||||||
jsr K.GetMemByID X unmodified
|
jsr K.GetMemByID X unmodified
|
||||||
lda (ZPMemMgrSPtr)
|
lda (ZPMemMgrSPtr)
|
||||||
bpl * ***MUST BE ALLOCATED***
|
bpl * ***MUST BE ALLOCATED***
|
||||||
@ -277,7 +280,7 @@ K.FreeMem phy
|
|||||||
bmi .8 used, exit
|
bmi .8 used, exit
|
||||||
|
|
||||||
.2 dec Mem.LastSlot free! get previous....
|
.2 dec Mem.LastSlot free! get previous....
|
||||||
beq .3 empty list: go set Mem.Free=Mem.HiMem
|
beq .80 empty list: go set Mem.Free=Mem.HiMem
|
||||||
|
|
||||||
lda Mem.LastSlot
|
lda Mem.LastSlot
|
||||||
jsr K.GetMemByID X unmodified
|
jsr K.GetMemByID X unmodified
|
||||||
@ -291,17 +294,15 @@ K.FreeMem phy
|
|||||||
lda (ZPMemMgrSPtr),y
|
lda (ZPMemMgrSPtr),y
|
||||||
sta Mem.Free+1
|
sta Mem.Free+1
|
||||||
|
|
||||||
.8 ply
|
.8 clc
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 >LDYA Mem.HiMem
|
.80 >LDYA Mem.HiMem
|
||||||
>STYA Mem.Free
|
>STYA Mem.Free
|
||||||
bra .8
|
clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.9 ply discard saved Y
|
.9 lda $D000
|
||||||
|
|
||||||
lda $D000
|
|
||||||
sta .91+1
|
sta .91+1
|
||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
bit RRAMWRAMBNK2
|
bit RRAMWRAMBNK2
|
||||||
@ -331,26 +332,10 @@ K.FreeMem.ERR .AZ "FreeMem:%H:hMem already freed."
|
|||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetMemPtr
|
* # GetMemPtr
|
||||||
* **In:**
|
* **In:**
|
||||||
* A = hMem
|
* A = hMem
|
||||||
* **Out:**
|
* **Out:**
|
||||||
* Y,A = PTR to MemBlock
|
* Y,A = PTR to MemBlock
|
||||||
* (X unmodified)
|
* (X unmodified)
|
||||||
*\--------------------------------------
|
|
||||||
K.GetMemPtr jsr K.GetMemByID
|
|
||||||
ldy #S.MEM.PTR
|
|
||||||
lda (ZPMemMgrSPtr),y
|
|
||||||
pha
|
|
||||||
iny
|
|
||||||
lda (ZPMemMgrSPtr),y
|
|
||||||
ply
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # GetMemByID
|
|
||||||
* **In:**
|
|
||||||
* A = hMem
|
|
||||||
* **Out:**
|
|
||||||
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
|
||||||
* X unmodified
|
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
* Optimized for :
|
* Optimized for :
|
||||||
* Mem.Table is page aligned at $1800
|
* Mem.Table is page aligned at $1800
|
||||||
@ -365,6 +350,31 @@ K.GetMemPtr jsr K.GetMemByID
|
|||||||
!!!!!WARNING!!!!!
|
!!!!!WARNING!!!!!
|
||||||
.FIN
|
.FIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.GetMemPtr sta ZPMemMgrSPtr
|
||||||
|
lda /Mem.Table/8
|
||||||
|
asl ZPMemMgrSPtr
|
||||||
|
rol
|
||||||
|
asl ZPMemMgrSPtr
|
||||||
|
rol
|
||||||
|
asl ZPMemMgrSPtr
|
||||||
|
rol
|
||||||
|
sta ZPMemMgrSPtr+1
|
||||||
|
|
||||||
|
ldy #S.MEM.PTR
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
pha
|
||||||
|
iny
|
||||||
|
lda (ZPMemMgrSPtr),y
|
||||||
|
ply
|
||||||
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # GetMemByID
|
||||||
|
* **In:**
|
||||||
|
* A = hMem
|
||||||
|
* **Out:**
|
||||||
|
* Y,A = ZPMemMgrSPtr = PTR to S.MEM
|
||||||
|
* (X unmodified)
|
||||||
|
*\--------------------------------------
|
||||||
K.GetMemByID sta ZPMemMgrSPtr
|
K.GetMemByID sta ZPMemMgrSPtr
|
||||||
lda /Mem.Table/8
|
lda /Mem.Table/8
|
||||||
asl ZPMemMgrSPtr
|
asl ZPMemMgrSPtr
|
||||||
@ -376,35 +386,17 @@ K.GetMemByID sta ZPMemMgrSPtr
|
|||||||
sta ZPMemMgrSPtr+1
|
sta ZPMemMgrSPtr+1
|
||||||
ldy ZPMemMgrSPtr
|
ldy ZPMemMgrSPtr
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
|
||||||
* OLD CODE
|
|
||||||
*--------------------------------------
|
|
||||||
* stz ZPMemMgrSPtr+1
|
|
||||||
* asl
|
|
||||||
* rol ZPMemMgrSPtr+1
|
|
||||||
* asl
|
|
||||||
* rol ZPMemMgrSPtr+1
|
|
||||||
* asl
|
|
||||||
* rol ZPMemMgrSPtr+1
|
|
||||||
** clc IMPLICIT
|
|
||||||
* adc #Mem.Table
|
|
||||||
* tay
|
|
||||||
* lda ZPMemMgrSPtr+1
|
|
||||||
* adc /Mem.Table
|
|
||||||
* sty ZPMemMgrSPtr
|
|
||||||
* sta ZPMemMgrSPtr+1
|
|
||||||
* rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # NewStr
|
* # NewStr
|
||||||
* Create a new copy of this C-String
|
* Create a new copy of this C-String
|
||||||
* **In:**
|
* **In:**
|
||||||
* Y,A = Ptr to source C-String
|
* Y,A = Ptr to source C-String
|
||||||
* **Out:**
|
* **Out:**
|
||||||
* CC : success
|
* CC : success
|
||||||
* Y,A = PTR to String
|
* Y,A = PTR to String
|
||||||
* X = hMem (PSTR)
|
* X = hMem (PSTR)
|
||||||
* CS : error
|
* CS : error
|
||||||
* A = SYS error code
|
* A = SYS error code
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.NewStr >STYA .1+1
|
K.NewStr >STYA .1+1
|
||||||
>STYA .4+1
|
>STYA .4+1
|
||||||
|
Loading…
Reference in New Issue
Block a user