Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-25 17:09:13 +02:00
parent 29a219bcfa
commit 9be1af0109
8 changed files with 119 additions and 52 deletions

Binary file not shown.

View File

@ -15,8 +15,7 @@ NEW
ZS.START ZS.START
ZPPTR1 .BS 2 ZPPTR1 .BS 2
EntryCount .BS 1 EntryCount .BS 1
ZS.END ZS.END .ED
.ED
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -60,15 +59,19 @@ CS.RUN >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
>STYA ZPPTR1 >STYA ZPPTR1
lda (ZPPTR1) Configured ? lda (ZPPTR1) Configured ?
bmi CS.RUN.IPOK bmi CS.RUN.IPOK
>LDYA L.MSG.IPKO >LDYA L.MSG.IPKO
>SYSCALL puts >SYSCALL puts
lda #E.SYN lda #E.SYN
sec sec
rts rts
CS.RUN.IPOK ldy #S.PS.ARGC CS.RUN.IPOK ldy #S.PS.ARGC
lda (pPs),y lda (pPs),y
bne .1 bne .1
jmp CS.RUN.DUMP jmp CS.RUN.DUMP
.1 cmp #2 .1 cmp #2
beq CS.RUN.ADD beq CS.RUN.ADD
>PUSHBI 0 >PUSHBI 0
@ -83,18 +86,21 @@ CS.RUN.ADD >PUSHEA.G DST.IP+3
>PUSHEA.G DST.IP+2 >PUSHEA.G DST.IP+2
>PUSHEA.G DST.IP+1 >PUSHEA.G DST.IP+1
>PUSHEA.G DST.IP >PUSHEA.G DST.IP
>PUSHBI 8 4 PTRs >PUSHBI 8 4 PTRs
>PUSHW L.SSCANF.IP >PUSHW L.SSCANF.IP
lda #2 lda #2
>SYSCALL ArgV >SYSCALL ArgV
>SYSCALL sscanf >SYSCALL sscanf
bcs .9 bcs .9
>PUSHEA.G DST.IP >PUSHEA.G DST.IP
lda #1 lda #1
>SYSCALL ArgV >SYSCALL ArgV
>PUSHYA >PUSHYA
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD >LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD
bcs .99 bcs .99
lda #0 tell TSKMGR that all done ok, but lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory sec we do not want to stay in memory
rts rts

View File

@ -952,16 +952,14 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
>LDYA ZPArgVBufPtr >LDYA ZPArgVBufPtr
>SYSCALL execl >SYSCALL execl
bcs FOR.FILE.9 bcs FOR.FILE.9
>LDA.G IO.hOut
ldy #S.PS.hStdOut jsr IO.Pop.Out Restore OUT (NO close)
sta (pPS),y
>STZ.G IO.hOut jsr IO.Pipe.OpenR
>LEA.G IO.FIFO
ldx #O.RDONLY+O.TEXT
jsr IO.FOpenYAX
bcs FOR.FILE.9 bcs FOR.FILE.9
CMD.FOR.PUSH jsr CORE.StkPush push hPIPE CMD.FOR.PUSH jsr CORE.StkPush push hPIPE for read
jsr CORE.PushVarName Push hVARNAME jsr CORE.PushVarName Push hVARNAME
bcs FOR.FILE.9 bcs FOR.FILE.9

View File

@ -106,6 +106,7 @@ CORE.Run.EOF jsr CORE.StkPull
CORE.Run.SYN lda #E.SYN CORE.Run.SYN lda #E.SYN
sec sec
rts rts
*--------------------------------------
CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
>STYA ZPInputCmdPtr >STYA ZPInputCmdPtr
@ -117,23 +118,28 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
sta CORE.PSFlags sta CORE.PSFlags
lda #$ff lda #$ff
sta CORE.IntCmd assume external sta CORE.IntCmd assume external
jsr CORE.GetCharNB jsr CORE.GetCharNB
bcs CORE.Run.EOF bcs CORE.Run.EOF
cmp #'|' cmp #'|'
bne .21 bne .21
jsr IO.Pipe.In jsr IO.Pipe.In
bcs .9 bcs .9
jsr CORE.GetNextCharNB Skip | jsr CORE.GetNextCharNB Skip |
bcs CORE.Run.SYN bcs CORE.Run.SYN
bra .3 bra .3
.21 pha .21 pha
jsr IO.Reset jsr IO.Reset
pla pla
.3 cmp #C.CR empty line ? .3 cmp #C.CR empty line ?
bne .33 bne .33
jsr CORE.GetNextChar skip CR... jsr CORE.GetNextChar skip CR...
bra .8 bra .8
.33 cmp #'#' commented line? .33 cmp #'#' commented line?
bne .4 bne .4
@ -143,6 +149,7 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
lda #0 lda #0
clc clc
.9 rts EOL, CS,A=0 .9 rts EOL, CS,A=0
.4 >LDYA L.CMD internal command ? .4 >LDYA L.CMD internal command ?
jsr CORE.LookupInputBuf jsr CORE.LookupInputBuf
bcc .41 bcc .41
@ -186,13 +193,17 @@ CORE.Run.5 >LDYA L.CORE.IO
jsr CORE.IO.JMP jsr CORE.IO.JMP
bcs CORE.Run.RTS bcs CORE.Run.RTS
bra CORE.Run.7 bra CORE.Run.7
CORE.Run.6 jsr CORE.ArgV.Add CORE.Run.6 jsr CORE.ArgV.Add
CORE.Run.7 jsr CORE.GetCharNB CORE.Run.7 jsr CORE.GetCharNB
bcs CORE.ExecCmd.1 Nothing to skip bcs CORE.ExecCmd.1 Nothing to skip
jsr CORE.IsEndCmd jsr CORE.IsEndCmd
bcs CORE.Run.5 bcs CORE.Run.5
cmp #'|' cmp #'|'
bne CORE.ExecCmd skip CR, ; bne CORE.ExecCmd skip CR, ;
jsr IO.Pipe.Out jsr IO.Pipe.Out
bcs CORE.Run.RTS bcs CORE.Run.RTS
@ -200,7 +211,15 @@ CORE.Run.7 jsr CORE.GetCharNB
and #$ff^S.PS.F.HOLD Run in the background... and #$ff^S.PS.F.HOLD Run in the background...
ora #S.PS.F.CLOSEONX ...and close PIPE on exit ora #S.PS.F.CLOSEONX ...and close PIPE on exit
sta CORE.PSFlags sta CORE.PSFlags
bra CORE.ExecCmd.1 Do not skip | jsr CORE.ExecCmd.1 Do not skip |
php
pha
jsr IO.Pop.Out restore Output
pla
plp
CORE.Run.RTS rts CORE.Run.RTS rts
*-------------------------------------- *--------------------------------------
* Input : ZPArgVBuf * Input : ZPArgVBuf
@ -228,6 +247,7 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags
lda CORE.PSFlags lda CORE.PSFlags
and #S.PS.F.HOLD and #S.PS.F.HOLD
bne .4 bne .4
txa txa
>PUSHA >PUSHA
>PUSHBI 1 >PUSHBI 1
@ -236,11 +256,13 @@ CORE.ExecExtCmd >PUSHB CORE.PSFlags
lda (pPS),y lda (pPS),y
>SYSCALL fprintf >SYSCALL fprintf
rts rts
.4 >SLEEP Suspend this PID .4 >SLEEP Suspend this PID
sec sec
ldy #S.PS.RC CPID will update S.PS.RC ldy #S.PS.RC CPID will update S.PS.RC
lda (pPs),y lda (pPs),y
bne .9 bne .9
.8 clc .8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------

View File

@ -15,16 +15,20 @@ IO.Load pha
>SYSCALL LoadTxtFile >SYSCALL LoadTxtFile
rts rts
*-------------------------------------- *--------------------------------------
IO.Pipe.In >LDA.G IO.hOut IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE
ldy #S.PS.hStdOut
sta (pPS),y
>STZ.G IO.hOut
>LEA.G IO.FIFO
ldx #O.RDONLY+O.TEXT
jsr IO.FOpenYAX
bcs IO.Set.RTS bcs IO.Set.RTS
pha
ldy #S.PS.hStdIn
lda (pPS),y
>STA.G IO.hIn
pla
ldy #S.PS.hStdIn
sta (pPS),y
rts
*-------------------------------------- *--------------------------------------
IO.Set.In pha IO.Set.In pha
jsr IO.Reset.In jsr IO.Reset.In
@ -35,9 +39,15 @@ IO.Set.In pha
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
sta (pPS),y sta (pPS),y
IO.Set.RTS rts IO.Set.RTS rts
*--------------------------------------
IO.Pop.In clc
.HS B0 BCS
*-------------------------------------- *--------------------------------------
IO.Reset.In >LDA.G IO.hIn IO.Reset.In sec
>LDA.G IO.hIn
beq .8 beq .8
bcc .1
pha pha
ldy #S.PS.hStdIn ldy #S.PS.hStdIn
@ -45,22 +55,32 @@ IO.Reset.In >LDA.G IO.hIn
>SYSCALL fclose >SYSCALL fclose
pla pla
ldy #S.PS.hStdIn
.1 ldy #S.PS.hStdIn
sta (pPS),y sta (pPS),y
>STZ.G IO.hIn >STZ.G IO.hIn
.8 clc .8 clc
IO.Reset.In.RTS rts IO.Reset.In.RTS rts
*-------------------------------------- *--------------------------------------
IO.Pipe.Out >PUSHWZ mode IO.Pipe.Out >PUSHWZ mode
>LEA.G IO.FIFO >LEA.G IO.FIFO
>SYSCALL MKFIFO >SYSCALL MKFIFO
bcs IO.Reset.In.RTS bcs IO.Reset.In.RTS Create a new PIPE
>LEA.G IO.FIFO jsr IO.Pipe.OpenW Open for OUTPUT
ldx #O.WRONLY+O.TEXT
jsr IO.FOpenYAX
bcs IO.Reset.In.RTS bcs IO.Reset.In.RTS
pha
ldy #S.PS.hStdOut
lda (pPS),y
>STA.G IO.hOut
pla
ldy #S.PS.hStdOut
sta (pPS),y
rts
*-------------------------------------- *--------------------------------------
IO.Set.Out pha IO.Set.Out pha
jsr IO.Reset.Out jsr IO.Reset.Out
@ -70,17 +90,25 @@ IO.Set.Out pha
pla pla
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
sta (pPS),y sta (pPS),y
clc
rts rts
*-------------------------------------- *--------------------------------------
IO.Reset.Out >LDA.G IO.hOut IO.Pop.Out clc
.HS B0 BCS
*--------------------------------------
IO.Reset.Out sec
>LDA.G IO.hOut
beq .8 beq .8
bcc .1
pha pha
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (pPS),y lda (pPS),y
>SYSCALL fclose >SYSCALL fclose
pla pla
ldy #S.PS.hStdOut
.1 ldy #S.PS.hStdOut
sta (pPS),y sta (pPS),y
>STZ.G IO.hOut >STZ.G IO.hOut
.8 rts .8 rts
@ -107,14 +135,18 @@ IO.Reset.Err >LDA.G IO.hErr
>STZ.G IO.hErr >STZ.G IO.hErr
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
IO.FOpenYAX phy IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT
pha .HS 2C BIT ABS
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
>LEA.G IO.FIFO
*--------------------------------------
IO.FOpenYAX pha
>PUSHWZ Aux type >PUSHWZ Aux type
>PUSHBI S.FI.T.TXT >PUSHBI S.FI.T.TXT
txa txa
>PUSHA >PUSHA
pla pla
ply
>SYSCALL fopen >SYSCALL fopen
rts rts
*-------------------------------------- *--------------------------------------
@ -228,6 +260,7 @@ IO.PrintErrMsg pha Save EC for PrintF
>PUSHA >PUSHA
>PUSHBI 3 >PUSHBI 3
>PUSHW L.MSG.ERROR >PUSHW L.MSG.ERROR
IO.PrintErr ldy #S.PS.hStdErr IO.PrintErr ldy #S.PS.hStdErr
lda (pPS),y lda (pPS),y
>SYSCALL fprintf >SYSCALL fprintf

View File

@ -7,24 +7,15 @@ NEW
* **In:** * **In:**
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
ARP.Clear lda hARPCache ARP.Clear jsr ARP.GetCache
bne .1
>LDYAI K.ARPCACHE.SIZE*S.ARPCACHE
>SYSCALL2 GetMem0
bcs .9
stx hARPCache
rts
.1 jsr ARP.GetCache
lda #0 lda #0
tay tay
.2 sta (ZPCachePtr),y .2 sta (ZPCachePtr),y
iny iny
cpy #K.ARPCACHE.SIZE*S.ARPCACHE cpy #K.ARPCACHE.SIZE*S.ARPCACHE
bne .1 bne .2
clc clc
.9 rts .9 rts

View File

@ -164,15 +164,27 @@ LIB.LOAD ldx RefCount
sta FD.DSOCK+S.FD.DSOCK.IOHANDLER sta FD.DSOCK+S.FD.DSOCK.IOHANDLER
sta FD.SSOCK+S.FD.SSOCK.IOHANDLER sta FD.SSOCK+S.FD.SSOCK.IOHANDLER
jsr ARP.CLEAR >LDYAI K.ARPCACHE.SIZE*S.ARPCACHE
>SYSCALL2 GetMem0
bcs .9
stx hARPCache
jsr DNS.CLEAR jsr DNS.CLEAR
.8 inc RefCount .8 inc RefCount
clc clc
rts .9 rts
*-------------------------------------- *--------------------------------------
LIB.UNLOAD dec RefCount LIB.UNLOAD dec RefCount
clc bne .8
lda hARPCache
beq .8
>SYSCALL2 freemem
.8 clc
rts rts
*-------------------------------------- *--------------------------------------
INCOMING sta hFrameIn INCOMING sta hFrameIn

View File

@ -42,13 +42,18 @@ K.UnloadLib pha
jsr K.GetMemPtr jsr K.GetMemPtr
>STYA .2+1 >STYA .2+1
jsr Mem.DecRefCnt ldy #S.MEM.REFCNT
lda (ZPMemMgrSPtr),y
dec
bne .8 bne .8
.1 ldx #LIBMGR.UNLOAD
ldx #LIBMGR.UNLOAD
.2 jsr $ffff Self Modified, Call LIB.UNLOAD function .2 jsr $ffff Self Modified, Call LIB.UNLOAD function
pla pla
jmp K.FreeMem jmp K.FreeMem
.8 pla
.8 sta (ZPMemMgrSPtr),y
pla
* clc * clc
rts rts
*/-------------------------------------- */--------------------------------------
@ -263,7 +268,7 @@ BIN.RelExe ldy #H.BIN.T+1
.HS 2C bit abs .HS 2C bit abs
*-------------------------------------- *--------------------------------------
BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
.1 iny .1 iny
lda (ZPPtr1),y HI in A lda (ZPPtr1),y HI in A