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

View File

@ -952,16 +952,14 @@ CMD.FOR.EXEC jsr CORE.ArgV.NextChar skip "`"
>LDYA ZPArgVBufPtr
>SYSCALL execl
bcs FOR.FILE.9
>LDA.G IO.hOut
ldy #S.PS.hStdOut
sta (pPS),y
>STZ.G IO.hOut
>LEA.G IO.FIFO
ldx #O.RDONLY+O.TEXT
jsr IO.FOpenYAX
jsr IO.Pop.Out Restore OUT (NO close)
jsr IO.Pipe.OpenR
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
bcs FOR.FILE.9

View File

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

View File

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

View File

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

View File

@ -164,15 +164,27 @@ LIB.LOAD ldx RefCount
sta FD.DSOCK+S.FD.DSOCK.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
.8 inc RefCount
clc
rts
.9 rts
*--------------------------------------
LIB.UNLOAD dec RefCount
clc
bne .8
lda hARPCache
beq .8
>SYSCALL2 freemem
.8 clc
rts
*--------------------------------------
INCOMING sta hFrameIn

View File

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