Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-06-19 17:56:59 +02:00
parent f0995a1c3c
commit f57cb61132
10 changed files with 157 additions and 170 deletions

View File

@ -615,6 +615,14 @@ A=hSList
none.
(X,Y unmodified)
# GetStkObjPtr
## ASM
`lda hStkObj`
`>SYSCALL GetStkObjPtr`
## RETURN VALUE
# LoadStkObj
Load a file in AUX memory (Stock Objects)
PUSHW = AUXTYPE (Handled by....
@ -626,15 +634,12 @@ Load a file in AUX memory (Stock Objects)
Y,A = File Length
X = hMem of Loaded Object in AUX mem
# GetStkObjData
## ASM
`PUSHW DataLen`
`PUSHW DataPtr`
`lda hStkObj`
`>SYSCALL GetStkObjData`
# GetMemStat
**In:**
Y,A = Ptr to 24 bytes buffer
## RETURN VALUE
Buffer filled with memory stats
# ExecL
@ -710,13 +715,6 @@ A = Child PSID
## RETURN VALUE
# GetMemStat
**In:**
Y,A = Ptr to 24 bytes buffer
## RETURN VALUE
Buffer filled with memory stats
# Stat
Return information about a file

Binary file not shown.

View File

@ -295,9 +295,9 @@ SYS.GetMemPtr .EQ $E4
SYS.FreeMem .EQ $E6
SYS.NewStkObj .EQ $E8
SYS.FreeStkObj .EQ $EA
SYS.LoadStkObj .EQ $EC
SYS.GetStkObjData .EQ $EE
SYS.LoadStkObj .EQ $EA
SYS.GetStkObjPtr .EQ $EC
SYS.FreeStkObj .EQ $EE
SYS.SListGetData .EQ $F0
SYS.SListAddData .EQ $F2

View File

@ -431,7 +431,13 @@ SKT.GetDataFromSktIn
ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y
.DO AUXPIPE=1
>SYSCALL2 GetStkObjPtr
.ELSE
>SYSCALL2 GetMemPtr
.FIN
sty ZPTmpPtr1
* clc
@ -445,7 +451,11 @@ SKT.GetDataFromSktIn
lda ZPDataInLen+1
eor #$FF
pha
.DO AUXPIPE=1
jsr SKT.SetupZPCode
.FIN
ldy SKT.Cache+S.SOCKET.TCP.INTAIL
.1 inx Check if room left in dest buffer
@ -456,7 +466,12 @@ SKT.GetDataFromSktIn
pha
.2 lda (ZPTmpPtr1),y
.2 .DO AUXPIPE=1
jsr ZPCode
.ELSE
lda (ZPTmpPtr1),y
.FIN
sta (ZPDataInPtr)
inc ZPDataInPtr
bne .3
@ -510,7 +525,13 @@ SKT.AddDataToSktIn
ldy #S.SOCKET.SQ.hInMem
lda (ZPPtrSKT),y
.DO AUXPIPE=1
>SYSCALL2 GetStkObjPtr
.ELSE
>SYSCALL2 GetMemPtr
.FIN
sty ZPTmpPtr1
* clc
@ -618,7 +639,13 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
SKT.AddDataToSktOut
ldy #S.SOCKET.SQ.hOutMem
lda (ZPPtrSKT),y
.DO AUXPIPE=1
>SYSCALL2 GetStkObjPtr
.ELSE
>SYSCALL2 GetMemPtr
.FIN
sty ZPTmpPtr1
* clc
@ -700,7 +727,12 @@ SKT.GetDataFromSktOut
ldy #S.SOCKET.SQ.hOutMem
lda (ZPPtrSKT),y
.DO AUXPIPE=1
>SYSCALL2 GetStkObjPtr
.ELSE
>SYSCALL2 GetMemPtr
.FIN
sty ZPTmpPtr1
* clc
@ -715,6 +747,10 @@ SKT.GetDataFromSktOut
eor #$FF
pha
.DO AUXPIPE=1
jsr SKT.SetupZPCode
.FIN
ldy SKT.Cache+S.SOCKET.TCP.OUTTAILSENT
.1 inx
@ -725,7 +761,11 @@ SKT.GetDataFromSktOut
pha
.2 lda (ZPTmpPtr1),y
.2 .DO AUXPIPE=1
jsr ZPCode
.ELSE
lda (ZPTmpPtr1),y
.FIN
sta (ZPDataOutPtr)
inc ZPDataOutPtr
bne .3
@ -1321,6 +1361,16 @@ SKT.CopyDataInToOut
pla
sta ZPDataInPtr+1
rts
*--------------------------------------
.DO AUXPIPE=1
SKT.SetupZPCode ldy #ZP.CODE.Len-1
.1 lda ZP.CODE,y
sta ZPCode,y
dey
bpl .1
rts
.FIN
*--------------------------------------
MAN
SAVE USR/SRC/LIB/LIBTCPIP.S.SKT

View File

@ -29,8 +29,11 @@ IPDEBUG .EQ 0
.EM
*--------------------------------------
.INB INC/MACROS.I
.DO AUXPIPE=1
.INB INC/IO.I
.FIN
.INB INC/A2OSX.I
.INB INC/MLI.I
* .INB INC/MLI.I
.INB INC/MLI.E.I
.INB INC/NIC.I
.INB INC/ETH.I
@ -49,13 +52,15 @@ ZPFrameOutLen .EQ ZPLIB+10
ZPDataOutPtr .EQ ZPLIB+12
ZPDataOutLen .EQ ZPLIB+14
ZPPtrIP .EQ ZPLIB+16
ZPPtrMAC .EQ ZPLIB+18
ZPPtrDNS .EQ ZPLIB+20
ZPPtrSKT .EQ ZPLIB+22
ZPTmpPtr1 .EQ ZPLIB+16
ZPPtrSKT .EQ ZPLIB+18
ZPCachePtr .EQ ZPLIB+24
ZPTmpPtr1 .EQ ZPLIB+26
ZPCode .EQ ZPLIB+20 12 bytes
ZPPtrIP .EQ ZPLIB+20
ZPPtrMAC .EQ ZPLIB+22
ZPPtrDNS .EQ ZPLIB+24
ZPCachePtr .EQ ZPLIB+26
IP.CHECKSUM .EQ ZPLIB+28
IP.CHECKSUM.TMP .EQ ZPLIB+30
@ -357,6 +362,14 @@ SKT.Dump ldy #S.SOCKET.REM.PORT+1
.INB USR/SRC/LIB/LIBTCPIP.S.TCP
*--------------------------------------
CS.END
*--------------------------------------
.DO AUXPIPE=1
ZP.CODE sta SETREADAUX
lda (ZPTmpPtr1),y
sta CLRREADAUX
rts
ZP.CODE.Len .EQ *-ZP.CODE
.FIN
*--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1

View File

@ -1,72 +0,0 @@
NEW
PREFIX
AUTO 4,1
*/--------------------------------------
* # NewFIFO
* ## C
* `int getpwuid(short int uid, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `>LDYA size`
* `>SYSCALL getpwuid`
* ## RETURN VALUE
* A = hFIFO
*\--------------------------------------
FIFO.New
*/--------------------------------------
* # GetPWName
* ## C
* `int getpwname(const char* name, S.PW* passwd );`
* ## ASM
* `>PUSHW passwd`
* `>LDYA name`
* `>SYSCALL getpwname`
* ## RETURN VALUE
*\--------------------------------------
FIFO.Free
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
FIFO.Get
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
FIFO.Put
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
FIFO.GetUsed
*/--------------------------------------
* # PutPW
* ## C
* `int putpw( S.PW* passwd );`
* ## ASM
* `>LDYA passwd`
* `>SYSCALL putpw`
* ## RETURN VALUE
*\--------------------------------------
FIFO.GetFree
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.FIFO
LOAD USR/SRC/SYS/KERNEL.S
ASM

View File

@ -288,7 +288,8 @@ IO.CLOSE.PIPE ldy #S.FD.PIPE.S
beq .2
.DO AUXPIPE=1
jsr K.FreeStkObj
ldx #SYS.FreeStkObj
jsr K.SYSCALL2.AUX
.ELSE
jsr K.FreeMem
.FIN
@ -503,12 +504,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
ldy #S.FD.PIPE.hMem
lda (pFD),y
.DO AUXPIPE=1
sta SETREADAUX
.FIN
ldx #SYS.GetStkObjPtr
jsr K.SYSCALL2.AUX
.ELSE
jsr K.GetMemPtr
.DO AUXPIPE=1
sta CLRREADAUX
.FIN
sty .2+1
@ -648,11 +649,10 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
lda (pFD),y
.DO AUXPIPE=1
sta SETREADAUX
.FIN
ldx #SYS.GetStkObjPtr
jsr K.SYSCALL2.AUX
.ELSE
jsr K.GetMemPtr get src buf
.DO AUXPIPE=1
sta CLRREADAUX
.FIN
sty .3+1

View File

@ -140,10 +140,10 @@ K.SYSCALL .DA K.GetMemStat $00
.DA K.GetMemPtr
.DA K.FreeMem
.DA K.NewStkObj
.DA K.FreeStkObj
.DA K.GetMem K.NewStkObj
.DA K.LoadStkObj
.DA K.GetStkObjData
.DA K.GetMemPtr K.GetStkObjPtr
.DA K.FreeMem K.FreeStkObj
*--------------------------------------
.DA K.SListGetData $F0
.DA K.SListAddData
@ -398,26 +398,50 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
.DA #RRAMWRAMBNK2
.DA #$80
*--------------------------------------
.DA 0 $E0 : MemMgr at $E000
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA #0 $E0 : MemMgr at $E000
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #$40 NewStkObj
.DA #$80
.DA #0
.DA #$80
.DA #$40 GetStkObjPtr
.DA #$80
.DA #$40 FreeStkObj
.DA #$80
*--------------------------------------
.DA 0 $F0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA 0
.DA #0 $F0 : SLIST
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
.DA #0
.DA #$80
*--------------------------------------
K.SYSCALL2 bit K.SYSCALL.BANK,x Get Target BNK
bpl K.SYSCALL.JMP 0, E000, no BNK change
bvc K.SYSCALL2.BANK
K.SYSCALL2.AUX sta SETREADAUX AUX Mem API
sta SETWRITEAUX
jsr K.SYSCALL.JMP
sta CLRREADAUX
sta CLRWRITEAUX
rts
K.SYSCALL2.BANK sta .7+1
lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2

View File

@ -405,7 +405,6 @@ K.SListGetData pha
>PULLW ZPMemMgrSize
pla
bra K.SListFree
pla
*/--------------------------------------
* # SListAddData
* ## ASM
@ -505,25 +504,6 @@ K.SListFree sta SETREADAUX
* CS :
* A = EC
*\--------------------------------------
K.NewStkObj ldx #SYS.GetMem
.HS 2C BIT ABS
*/--------------------------------------
* # FreeStkObj
* A = hMem To Free (AUX Memory)
* ## RETURN VALUE
* none.
* (X,Y unmodified)
*\--------------------------------------
K.FreeStkObj ldx #SYS.FreeMem
sta SETREADAUX
sta SETWRITEAUX
jsr K.SYSCALL.JMP
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* # LoadStkObj
* Load a file in AUX memory (Stock Objects)
@ -548,7 +528,9 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0
inc +1 for ending 0
.1 >STYA A2L Save LEN temporarly
jsr K.NewStkObj
ldx #SYS.NewStkObj
jsr K.SYSCALL2.AUX
bcs .9
stx .80+1
>STYA A4L Save Destination Address in AUX
@ -585,29 +567,19 @@ K.LoadStkObj ldx #SYS.LoadTxtFile To get ending \0
sec
.99 rts
*/--------------------------------------
* # GetStkObjData
* # GetStkObjPtr
* ## ASM
* `PUSHW DataLen`
* `PUSHW DataPtr`
* `lda hStkObj`
* `>SYSCALL GetStkObjData`
* `>SYSCALL GetStkObjPtr`
* ## RETURN VALUE
*\--------------------------------------
K.GetStkObjData sta SETREADAUX
jsr K.GetMemPtr
>STYA ZPMemMgrTmp1
>PULLW ZPSListDataLen
>PULLW ZPSListDataPtr
lda (ZPMemMgrTmp1),y
pha
iny
lda (ZPMemMgrTmp1),y
ply
sta CLRREADAUX
rts
*/--------------------------------------
* # FreeStkObj
* A = hMem To Free (AUX Memory)
* ## RETURN VALUE
* none.
* (X,Y unmodified)
*\--------------------------------------
*--------------------------------------
* in Y,A = buf size
*--------------------------------------
@ -721,7 +693,7 @@ MEM.SetDataByte.1
inc ZPSListDataPtr+1
.8 rts
*--------------------------------------
MEM.TXTPTR.GetY sta CLRREADAUX
MEM.TXTPTR.GetY sta SETREADAUX
lda (TXTPTR),y
sta SETREADAUX
rts

View File

@ -378,7 +378,8 @@ K.MkNod.I ldx #2
K.Pipe sta .1+1 SIZE HI
.DO AUXPIPE=1
jsr K.NewStkObj Buffer in AUX mem
ldx #SYS.NewStkObj
jsr K.SYSCALL2.AUX Buffer in AUX mem
.ELSE
jsr K.GetMem
.FIN
@ -414,7 +415,8 @@ K.Pipe sta .1+1 SIZE HI
.9 pha save error code
lda .8+1 get back PIPE buffer
.DO AUXPIPE=1
jsr K.FreeStkObj
ldx #SYS.FreeStkObj
jsr K.SYSCALL2.AUX
.ELSE
jsr K.FreeMem
.FIN