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

Binary file not shown.

View File

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

View File

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

View File

@ -29,8 +29,11 @@ IPDEBUG .EQ 0
.EM .EM
*-------------------------------------- *--------------------------------------
.INB INC/MACROS.I .INB INC/MACROS.I
.DO AUXPIPE=1
.INB INC/IO.I
.FIN
.INB INC/A2OSX.I .INB INC/A2OSX.I
.INB INC/MLI.I * .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
.INB INC/NIC.I .INB INC/NIC.I
.INB INC/ETH.I .INB INC/ETH.I
@ -49,13 +52,15 @@ ZPFrameOutLen .EQ ZPLIB+10
ZPDataOutPtr .EQ ZPLIB+12 ZPDataOutPtr .EQ ZPLIB+12
ZPDataOutLen .EQ ZPLIB+14 ZPDataOutLen .EQ ZPLIB+14
ZPPtrIP .EQ ZPLIB+16 ZPTmpPtr1 .EQ ZPLIB+16
ZPPtrMAC .EQ ZPLIB+18 ZPPtrSKT .EQ ZPLIB+18
ZPPtrDNS .EQ ZPLIB+20
ZPPtrSKT .EQ ZPLIB+22
ZPCachePtr .EQ ZPLIB+24 ZPCode .EQ ZPLIB+20 12 bytes
ZPTmpPtr1 .EQ ZPLIB+26
ZPPtrIP .EQ ZPLIB+20
ZPPtrMAC .EQ ZPLIB+22
ZPPtrDNS .EQ ZPLIB+24
ZPCachePtr .EQ ZPLIB+26
IP.CHECKSUM .EQ ZPLIB+28 IP.CHECKSUM .EQ ZPLIB+28
IP.CHECKSUM.TMP .EQ ZPLIB+30 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 .INB USR/SRC/LIB/LIBTCPIP.S.TCP
*-------------------------------------- *--------------------------------------
CS.END 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 SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1 .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 beq .2
.DO AUXPIPE=1 .DO AUXPIPE=1
jsr K.FreeStkObj ldx #SYS.FreeStkObj
jsr K.SYSCALL2.AUX
.ELSE .ELSE
jsr K.FreeMem jsr K.FreeMem
.FIN .FIN
@ -503,12 +504,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
ldy #S.FD.PIPE.hMem ldy #S.FD.PIPE.hMem
lda (pFD),y lda (pFD),y
.DO AUXPIPE=1 .DO AUXPIPE=1
sta SETREADAUX ldx #SYS.GetStkObjPtr
.FIN jsr K.SYSCALL2.AUX
.ELSE
jsr K.GetMemPtr jsr K.GetMemPtr
.DO AUXPIPE=1
sta CLRREADAUX
.FIN .FIN
sty .2+1 sty .2+1
@ -648,11 +649,10 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
lda (pFD),y lda (pFD),y
.DO AUXPIPE=1 .DO AUXPIPE=1
sta SETREADAUX ldx #SYS.GetStkObjPtr
.FIN jsr K.SYSCALL2.AUX
.ELSE
jsr K.GetMemPtr get src buf jsr K.GetMemPtr get src buf
.DO AUXPIPE=1
sta CLRREADAUX
.FIN .FIN
sty .3+1 sty .3+1

View File

@ -140,10 +140,10 @@ K.SYSCALL .DA K.GetMemStat $00
.DA K.GetMemPtr .DA K.GetMemPtr
.DA K.FreeMem .DA K.FreeMem
.DA K.NewStkObj .DA K.GetMem K.NewStkObj
.DA K.FreeStkObj
.DA K.LoadStkObj .DA K.LoadStkObj
.DA K.GetStkObjData .DA K.GetMemPtr K.GetStkObjPtr
.DA K.FreeMem K.FreeStkObj
*-------------------------------------- *--------------------------------------
.DA K.SListGetData $F0 .DA K.SListGetData $F0
.DA K.SListAddData .DA K.SListAddData
@ -398,26 +398,50 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
.DA #RRAMWRAMBNK2 .DA #RRAMWRAMBNK2
.DA #$80 .DA #$80
*-------------------------------------- *--------------------------------------
.DA 0 $E0 : MemMgr at $E000 .DA #0 $E0 : MemMgr at $E000
.DA 0 .DA #$80
.DA 0 .DA #0
.DA 0 .DA #$80
.DA 0 .DA #0
.DA 0 .DA #$80
.DA 0 .DA #0
.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 $F0 : SLIST
.DA 0 .DA #$80
.DA 0 .DA #0
.DA 0 .DA #$80
.DA 0 .DA #0
.DA 0 .DA #$80
.DA 0 .DA #0
.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 K.SYSCALL2 bit K.SYSCALL.BANK,x Get Target BNK
bpl K.SYSCALL.JMP 0, E000, no BNK change 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 K.SYSCALL2.BANK sta .7+1
lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2 lda $D000 #RRAMWRAMBNK1 or #RRAMWRAMBNK2

View File

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

View File

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