Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-03-18 06:53:20 +00:00
parent 18b9e2798c
commit 26b0b2492a
9 changed files with 232 additions and 57 deletions

Binary file not shown.

View File

@ -194,9 +194,10 @@ CS.RUN.DUMP >LIBCALL hLIBETALK,LIBETALK.AARP.GETCACHE
>PUSHBI 12
>LDYA L.MSG1
phx
>SYSCALL printf
plx
>DEBUG
>SYSCALL printf
>DEBUG
plx
.4 lda ZPPTR1
clc

View File

@ -80,6 +80,7 @@ L.MSG.PROBE .DA MSG.PROBE
L.MSG.PROBE.KO .DA MSG.PROBE.KO
L.MSG.PROBE.OK .DA MSG.PROBE.OK
L.AARP.PRB .DA AARP.PRB
L.DDP.GetNetInfo .DA DDP.GetNetInfo
.DA 0
*--------------------------------------
CS.INIT >LDYA L.LIBETALK
@ -306,9 +307,18 @@ CS.RUN.PROBE >PUSHBI 0
>SLEEP
>DEC.G PROBE.CNT
bne .3
* bne .3
>LDYA L.MSG.PROBE
>LDYA L.DDP.GetNetInfo
>STYA IOCTL+S.IOCTL.BUFPTR
>LDYAI DDP.GetNetInfo.LEN
>STYA IOCTL+S.IOCTL.BYTECNT
>PUSHW L.IOCTL
>PUSHBI IOCTL.WRITE
lda ETKCFG+S.NETCFG.DevID
>SYSCALL IOCTL
>LDYA L.MSG.PROBE.OK
>SYSCALL puts
clc
@ -517,6 +527,30 @@ AARP.PRB.THA .BS 6
AARP.PRB.TPA .BS 4
.BS AARP.PRB+60-*
AARP.PRB.LEN .EQ 60
*--------------------------------------
DDP.GetNetInfo .HS 090007FFFFFF S.ETH.DSTMAC
.BS 6
.DA #0,#36
.HS AA
.HS AA
.HS 03
.HS 08.00.07.80.9B
.DA #0,#6 S.DDP2.DATALEN
.DA 0 S.DDP2.CHECKSUM
.DA $FF00
.DA $1234
.DA #$FF
.DA #$FF
.DA #6 S.DDP2.DST.SKT
.DA #0
.DA #6 S.DDP2.TYPE
*--------------------------------------
.DA #5 ZIP.GetNetInfoReg
.HS 00.00.00.00
.HS 00 Zone Len
.BS DDP.GetNetInfo+60-*
DDP.GetNetInfo.LEN .EQ 60
*--------------------------------------
IOCTL .BS S.IOCTL
*--------------------------------------
.DUMMY

View File

@ -547,10 +547,8 @@ CMD.FUNC lda (ZPArgVBufPtr)
.1 >PUSHW ZPArgVBufPtr
>LDA.G hFuncList
>SYSCALL SListNewKey
bcs .99
phy
jsr CORE.StkPush
ply

View File

@ -109,7 +109,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
.2 >LDA.G bFuncMode
bpl .13
jmp CORE.Run.Func skip line
jmp CORE.AddFunc
.13 jsr CORE.GetCharNB
cmp #'.'
@ -134,14 +134,12 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
>LDA.G hFuncList
beq .40
>PUSHYA ZPInputBufPtr
>PUSHW ZPInputBufPtr
>LDA.G hFuncList
>DEBUG
>SYSCALL SListLookup
bcs .40
jmp .43
jmp CORE.ExecFunc
.40 jsr CORE.ArgV.Add external cmd, go check context
bra .42
@ -262,7 +260,7 @@ CORE.ExecExtCmd.Exit
.8 clc
.9 rts
*--------------------------------------
CORE.Run.Func ldy #$ff
CORE.AddFunc ldy #$ff
.1 iny
lda (ZPInputBufPtr),y
@ -300,12 +298,14 @@ CORE.Run.Func ldy #$ff
cmp #C.CR
bne .9
.7 jsr CORE.SkipLine
lda #0
.7 lda #0
>STA.G bFuncMode
jsr .8 add "END"
bcs .9
jmp CMD.END.FUNC Cleanup Stk
.9 jmp CORE.Run.SYN
.8 ldy #0
@ -322,7 +322,6 @@ CORE.Run.Func ldy #$ff
lda (pData)
tay
dey skip C.FUNC
lda (pData),y KeyID
>PUSHA
@ -343,6 +342,30 @@ CORE.SkipLine jsr CORE.GetNextCharNB
.8 rts
*--------------------------------------
CORE.ExecFunc >STYA TmpWord KeyID
jsr CORE.SkipLine
>PUSHWI 0 From Start
>PUSHWI 0 TextMode
>PUSHWI 0 Allocate..
>PUSHW TmpWord KeyID
>LDA.G hFuncList
>DEBUG
>SYSCALL SListGetData
bcs .9
txa
pha
>SYSCALL GetMemPtr
>SYSCALL puts
>DEBUG
pla
>SYSCALL freemem
.9 rts
*--------------------------------------
* search ZPInputBufPtr/ZPArgVBufPtr in Y,A table
*--------------------------------------
CORE.LookupInputBuf

View File

@ -2,7 +2,7 @@ NEW
PREFIX
AUTO 4,1
*--------------------------------------
K.VER .EQ $5C00 92.0
K.VER .EQ $5D00 93.0
K.ENV.SIZE .EQ 256
K.PIPE.SIZE .EQ 256
*--------------------------------------

72
SYS/KERNEL.S.FIFO.txt Normal file
View File

@ -0,0 +1,72 @@
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

@ -381,7 +381,6 @@ MEM.GetMemByID sta ZPMemMgrSPtr
rts
*--------------------------------------
ZPSListKeyID .EQ ZPMEMMGR+6
ZPSListKeyPtr .EQ ZPMEMMGR+8
ZPSListDataPtr .EQ ZPMEMMGR+8
ZPSListDataLen .EQ ZPMEMMGR+10
ZPSListIBlkPtr .EQ ZPMEMMGR+12
@ -397,10 +396,16 @@ ZPSListDBlkPtr .EQ ZPMEMMGR+14
* `>SYSCALL SListGetData`
* ## RETURN VALUE
* Y,A = Byte Count
* X = hMem (if DataPtr = 0)
*\--------------------------------------
K.SListGetData pha
>PULLW ZPSListKeyID
>PULLW ZPSListDataPtr
>PULLW ZPSListDataLen
>PULLW ZPMemMgrSize
pla
bra K.SListFree
pla
*/--------------------------------------
* # SListAddData
* ## ASM
@ -411,7 +416,7 @@ K.SListGetData pha
* `>SYSCALL SListAddData`
* ## RETURN VALUE
*\--------------------------------------
K.SListAddData
K.SListAddData
*/--------------------------------------
* # SListSetData
* ## ASM
@ -423,8 +428,11 @@ K.SListAddData
* ## RETURN VALUE
*\--------------------------------------
K.SListSetData pha
>PULLW ZPSListKeyID
>PULLW ZPSListDataPtr
>PULLW ZPSListDataLen
pla
bra K.SListFree
*/--------------------------------------
* # SListGetByID
* ## ASM
@ -436,8 +444,8 @@ K.SListSetData pha
* Y,A = Next KeyID
*\--------------------------------------
K.SListGetByID pha
>PULLW ZPSListKeyPtr
>PULLW ZPSListKeyID
>PULLW ZPSListDataPtr
pla
bra K.SListFree
*/--------------------------------------
@ -462,7 +470,7 @@ K.SListNewKey
* X = Key Length
*\--------------------------------------
K.SListLookup pha
>PULLW ZPSListKeyPtr
>PULLW ZPSListDataPtr
pla
*/--------------------------------------
* # SListNew
@ -604,6 +612,13 @@ K.GetStkObjData sta SETREADAUX
*--------------------------------------
* in Y,A = buf size
*--------------------------------------
MEM.GetMainBuf sta CLRREADAUX
sta CLRWRITEAUX
jsr K.GetMem
sta SETREADAUX
sta SETWRITEAUX
rts
*--------------------------------------
MEM.GetKrnlBuf pha
tya
clc
@ -634,7 +649,7 @@ MEM.GetKrnlBuf pha
rts
*--------------------------------------
MEM.GetKeyCharY sta CLRREADAUX
lda (ZPSListKeyPtr),y
lda (ZPSListDataPtr),y
sta SETREADAUX
beq MEM.IsDigit.9
@ -689,7 +704,7 @@ MEM.IsHexDigit jsr MEM.IsDigit
rts
*--------------------------------------
MEM.SetKeyCharY sta CLRWRITEAUX
sta (ZPSListKeyPtr),y
sta (ZPSListDataPtr),y
sta SETWRITEAUX
rts
*--------------------------------------

View File

@ -17,17 +17,31 @@ SLIST.GetData jsr SLIST.Select
jsr SLIST.GetDataLen
lda ZPMemMgrSize Get Offset
lda ZPSListDataPtr
ora ZPSListDataPtr+1
bne .10
>LDYA SLIST.DataLen
>STYA ZPSListDataLen
jsr MEM.GetMainBuf
bcs .9
stx .82+1
>STYA ZPSListDataPtr
bra .12
.10 lda ZPMemMgrSize Get Offset
cmp SLIST.DataLen
lda ZPMemMgrSize+1
sbc SLIST.DataLen+1
bcs .99
lda ZPMemMgrSize
bcc .11
lda #E.NODATA
.9 rts
.11 lda ZPMemMgrSize
ldx ZPMemMgrSize+1
jsr SLIST.SkipDataAX
lda SLIST.DataLen
.12 lda SLIST.DataLen
sec
sbc ZPMemMgrSize
eor #$ff
@ -39,7 +53,7 @@ SLIST.GetData jsr SLIST.Select
lda ZPSListDataLen
ora ZPSListDataLen
clc
sec
beq .1 String Mode
lda ZPSListDataLen
@ -48,7 +62,7 @@ SLIST.GetData jsr SLIST.Select
lda ZPSListDataLen+1
eor #$ff
sta SLIST.nBufCnt+1
sec
clc
.1 ror SLIST.bStringMode
@ -70,25 +84,37 @@ SLIST.GetData jsr SLIST.Select
bpl .5
cmp #C.CR
beq .8
beq .7
.5 jsr MEM.SetDataByte
inc ZPSListDataLen
bne .2
inc ZPSListDataLen+1
bra .2
.8 >LDYA ZPSListDataLen
clc
rts
.99 lda #E.NODATA
sec
rts
.7 jsr SLIST.GetNextByte
.8 bit SLIST.bStringMode
bpl .81
lda #0
jsr MEM.SetDataByte
inc ZPSListDataLen
bne .81
inc ZPSListDataLen+1
.81 >LDYA ZPSListDataLen
.82 ldx #$ff SELF MODIFIED
clc
rts
*--------------------------------------
SLIST.AddData jsr SLIST.Select
jsr SLIST.SkipKey
>LDYA SLIST.KeyID Save DataLen location
>STYA ZPSListKeyID to update later
@ -119,10 +145,11 @@ SLIST.AddData jsr SLIST.Select
.2 jsr MEM.GetDataByte
jsr SLIST.AddBlockByte
bcc .9
bcc .1
rts
.8 jsr SLIST.Select go back to DataLen Location
.8 jsr SLIST.Select.I go back to DataLen Location
lda SLIST.DataLen
jsr SLIST.SetBlockByte
lda SLIST.DataLen+1
@ -175,9 +202,6 @@ SLIST.GetByID jsr SLIST.Select
SLIST.NewKey jsr SLIST.Search
bcc .99
>LDYA SLIST.KeyID Not Found...
>STYA ZPSListKeyID save new KeyID
lda SLIST.KeyLen
jsr SLIST.AddBlockByte
bcs .9
@ -210,7 +234,7 @@ SLIST.NewKey jsr SLIST.Search
SLIST.Lookup jsr SLIST.Search
bcs .9
>LDYA SLIST.KeyID
>LDYA ZPSListKeyID
ldx SLIST.KeyLen
.9 rts
@ -252,7 +276,7 @@ SLIST.Free sta .8+1
SLIST.Select jsr K.GetMemPtr
>STYA ZPSListIBlkPtr
ldy ZPSListKeyID+1
SLIST.Select.I ldy ZPSListKeyID+1
sty SLIST.BlockPtr
lda (ZPSListIBlkPtr),y
@ -267,14 +291,12 @@ SLIST.Search jsr K.GetMemPtr
>STYA ZPSListIBlkPtr
stz SLIST.BlockPtr
stz ZPSListKeyID+1
lda (ZPSListIBlkPtr)
jsr K.GetMemPtr
>STYA ZPSListDBlkPtr
stz SLIST.BytePtr
stz ZPSListKeyID
ldy #$ff
@ -284,16 +306,26 @@ SLIST.Search jsr K.GetMemPtr
sty SLIST.KeyLen
jsr SLIST.GetBlockByte
ldy SLIST.BlockPtr
lda (ZPSListDBlkPtr),y
beq .9
.2 cmp SLIST.KeyLen
.2 >LDYA SLIST.KeyID
>STYA ZPSListKeyID
ldy SLIST.BlockPtr
lda (ZPSListDBlkPtr),y
cmp SLIST.KeyLen
bne .5
jsr SLIST.GetNextByte Skip Len
ldy #0
.3 jsr SLIST.GetNextBlockByte
.3 phy
jsr SLIST.GetNextByte
sta .4+1
ply
jsr MEM.GetKeyCharY
.4 cmp #$ff SELF MODIFIED
bne .5
@ -307,8 +339,7 @@ SLIST.Search jsr K.GetMemPtr
.5 jsr SLIST.Next
jsr SLIST.GetBlockByte
bne .2
bra .2
.9 lda #E.NOKEY
sec
@ -328,6 +359,8 @@ SLIST.SkipDataAX
txa
adc SLIST.BlockPtr
sta SLIST.BlockPtr
tay
lda (ZPSListIBlkPtr),y
jsr K.GetMemPtr
>STYA ZPSListDBlkPtr
@ -434,22 +467,21 @@ SLIST.AddBlockByte
rts
*--------------------------------------
SLIST.SetBlockByte
ldy SLIST.BlockPtr
ldy SLIST.BytePtr
sta (ZPSListDBlkPtr),y
inc SLIST.BlockPtr
inc SLIST.BytePtr
bne .8
inc SLIST.BytePtr
inc SLIST.BlockPtr
ldy SLIST.BytePtr
ldy SLIST.BlockPtr
lda (ZPSListIBlkPtr),y
jsr K.GetMemPtr
>STYA ZPSListDBlkPtr
* stz SLIST.BlockPtr
.8 ply
rts
.8 rts
*--------------------------------------
SLIST.KeyLen .BS 1
SLIST.DataLen .BS 2