mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-25 02:33:17 +00:00
Kernel 0.93+
This commit is contained in:
parent
29a219bcfa
commit
9be1af0109
Binary file not shown.
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user