mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.92+
This commit is contained in:
parent
d8d9c8c039
commit
9653f369c5
Binary file not shown.
@ -120,14 +120,39 @@ CORE.Run >LDYA ZPInputBufPtr Save Actual cmd for looping
|
||||
|
||||
.4 >LDYA L.CMD internal command ?
|
||||
jsr CORE.LookupInputBuf
|
||||
bcs .6 no...assume external...no IO token Expected
|
||||
bcc .41
|
||||
|
||||
jsr CORE.SkipCharsA
|
||||
jsr CORE.ArgV.Add
|
||||
bra .42
|
||||
|
||||
.41 jsr CORE.SkipCharsA
|
||||
|
||||
txa
|
||||
>STA.G CORE.IntCmd
|
||||
bra .7 internal, do not add token
|
||||
|
||||
cpx #C.FOR
|
||||
bcs .7 FOR...FI : always execute
|
||||
|
||||
.42 jsr CORE.StkGet IF,WHILE,FOR ?
|
||||
bcs .7 no particular context, exec...
|
||||
|
||||
and #$C0
|
||||
cmp #$C0
|
||||
beq .7 context/parent context is TRUE, exec
|
||||
|
||||
.43 jsr CORE.GetNextCharNB
|
||||
bcs .44 EOF
|
||||
|
||||
cmp #C.CR
|
||||
beq .44
|
||||
|
||||
cmp #';' TODO ";"
|
||||
bne .43
|
||||
|
||||
.44 jsr CORE.GetNextCharNB Skip EoL char
|
||||
clc
|
||||
rts
|
||||
|
||||
.5 >LDYA L.CORE.IO
|
||||
jsr CORE.LookupInputBuf
|
||||
bcs .6
|
||||
@ -165,32 +190,13 @@ CORE.ExecCmd jsr CORE.GetNextCharNB Skip EoL char
|
||||
CORE.ExecCmd.1 lda #0
|
||||
sta (ZPArgVBufPtr)
|
||||
|
||||
jsr CORE.StkGet IF,WHILE,FOR ?
|
||||
bcs .3 no particular context, exec...
|
||||
tax
|
||||
|
||||
>LDA.G CORE.IntCmd
|
||||
bmi .2 external ...
|
||||
|
||||
and #$3F
|
||||
cmp #C.FOR
|
||||
bcs .3 FOR...FI : always execute
|
||||
|
||||
.2 txa
|
||||
bpl .8 context is FALSE, skip line
|
||||
asl
|
||||
bpl .8 parent context is FALSE, skip line
|
||||
|
||||
.3 >LDYA ZPArgVBuf
|
||||
>LDYA ZPArgVBuf
|
||||
>STYA ZPArgVBufPtr
|
||||
|
||||
>LDA.G CORE.IntCmd
|
||||
bmi CORE.ExecExtCmd
|
||||
tax
|
||||
jmp (J.CMD,x)
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
CORE.ExecExtCmd >PUSHB.G CORE.PSFlags
|
||||
>LDYA ZPArgVBuf
|
||||
|
@ -457,7 +457,7 @@ S.FD.DSOCK.OPEN .EQ 3
|
||||
S.FD.DSOCK.CLOSE .EQ 4
|
||||
S.FD.DSOCK.READ .EQ 5
|
||||
S.FD.DSOCK.WRITE .EQ 6
|
||||
S.FD.DSOCK.STATUS .EQ 7
|
||||
S.FD.DSOCK.EOF .EQ 7
|
||||
*
|
||||
S.FD.DSOCK .EQ 8
|
||||
*--------------------------------------
|
||||
|
@ -382,44 +382,22 @@ SKT.shutdown.STREAM
|
||||
* `>PUSHWI count`
|
||||
* `>PUSHW buf`
|
||||
* `lda fd`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.read`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.read`
|
||||
* ## RETURN VALUE
|
||||
* CC: Y,A = bytes read
|
||||
* CS: A = EC
|
||||
*\--------------------------------------
|
||||
SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .90 bad skt
|
||||
jsr SKT.EOF.I
|
||||
bcs .9 I/O error
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .90 Bad Skt
|
||||
tay
|
||||
beq .9 exit with CC,Y,A = 0
|
||||
|
||||
jmp SKT.GetDataFromSktIn
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
bcc .92 Not yet established...no data
|
||||
cmp #S.SOCKET.TCP.S.FINWT2
|
||||
bcs .91 closing...IO err
|
||||
|
||||
jsr SKT.GetDataFromSktIn
|
||||
rts if CS, No data...
|
||||
|
||||
.90 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
|
||||
.91 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
||||
.92 lda #0
|
||||
sec
|
||||
.99 rts
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # Write (STREAM)
|
||||
* ## C
|
||||
@ -429,28 +407,15 @@ SKT.Read jsr SKT.PullhFDDataInPtrLen
|
||||
* `>PUSHWI count`
|
||||
* `>PUSHW buf`
|
||||
* `lda fd`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.write`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.write`
|
||||
* ## RETURN VALUE
|
||||
* CC: Y,A = bytes written
|
||||
* CS: A = EC
|
||||
*\--------------------------------------
|
||||
SKT.Write jsr SKT.PullhFDDataInPtrLen
|
||||
|
||||
ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.TCP.S.ESTBLSH
|
||||
bcc .90 Not yet established...no data
|
||||
bne .91
|
||||
jsr SKT.CheckStream
|
||||
bcs .9
|
||||
|
||||
jsr SKT.AddDataToSktOut will call SKT.GetTCB
|
||||
bcs .90
|
||||
@ -461,15 +426,7 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
|
||||
|
||||
.90 lda #0 no data transfered
|
||||
sec
|
||||
rts
|
||||
|
||||
.91 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
||||
.99 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # Recv (RAW,DGRAM,SEQPACKET)
|
||||
* # RecvFrom (RAW,DGRAM,SEQPACKET)
|
||||
@ -480,7 +437,7 @@ SKT.Write jsr SKT.PullhFDDataInPtrLen
|
||||
* **In:**
|
||||
* `>PUSHW addr` (RecvFrom)
|
||||
* `lda fd`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.Recv`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.Recv`
|
||||
* ## RETURN VALUE
|
||||
* CC: A = hMem
|
||||
* CS: A = EC
|
||||
@ -589,7 +546,7 @@ SKT.Recv clc
|
||||
* `>PUSHWI count`
|
||||
* `>PUSHW buf`
|
||||
* `lda fd`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.skt.send`
|
||||
* `>LIBCALL hLIBTCPIP,LIBTCPIP.send`
|
||||
* ## RETURN VALUE
|
||||
* CC: Y,A = bytes written
|
||||
* CS: A = EC
|
||||
@ -669,15 +626,47 @@ SKT.setsockopt >SYSCALL GetMemPtr
|
||||
sta (ZPPtrSKT),y
|
||||
* clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
SKT.EOF >SYSCALL GetMemPtr
|
||||
>STYA ZPPtrSKT
|
||||
|
||||
ldy #S.SOCKET.TCP.INUSED
|
||||
|
||||
SKT.EOF.I ldy #S.SOCKET.TCP.INUSED
|
||||
lda (ZPPtrSKT),y
|
||||
iny
|
||||
ora (ZPPtrSKT),y
|
||||
clc
|
||||
bne .8
|
||||
|
||||
jsr SKT.CheckStream
|
||||
bcs .9
|
||||
|
||||
lda #0 no DATA
|
||||
|
||||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
SKT.CheckStream ldy #S.SOCKET.T
|
||||
lda (ZPPtrSKT),y
|
||||
cmp #S.SOCKET.T.STREAM
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.O
|
||||
lda (ZPPtrSKT),y
|
||||
and #S.SOCKET.O.ACCEPTCONN
|
||||
bne .99
|
||||
|
||||
ldy #S.SOCKET.TCP.S
|
||||
lda (ZPPtrSKT),y
|
||||
beq .91
|
||||
cmp #S.SOCKET.TCP.S.CLWAIT
|
||||
bcs .91
|
||||
rts CC=ESTBLSH...or less
|
||||
|
||||
.91 lda #MLI.E.IO
|
||||
sec
|
||||
rts
|
||||
|
||||
.99 lda #ERR.SKT.BAD
|
||||
sec
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetTable
|
||||
@ -957,13 +946,8 @@ SKT.AddDataToSktIn
|
||||
*--------------------------------------
|
||||
SKT.GetDataFromSktIn
|
||||
jsr SKT.GetTCB
|
||||
lda SKT.Cache+S.SOCKET.TCP.INUSED
|
||||
ora SKT.Cache+S.SOCKET.TCP.INUSED+1
|
||||
bne .10
|
||||
sec
|
||||
rts A=0,NO DATA
|
||||
|
||||
.10 ldy #S.SOCKET.SQ.hInMem
|
||||
|
||||
ldy #S.SOCKET.SQ.hInMem
|
||||
lda (ZPPtrSKT),y
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPTmpPtr1 Make ZPTmpPtr1=buffer base
|
||||
@ -1042,11 +1026,7 @@ SKT.GetDataFromSktIn
|
||||
|
||||
.7 pla discard byte counter HI
|
||||
|
||||
.8 lda ZPTmpPtr3 Do we have transfered something?
|
||||
ora ZPTmpPtr3+1
|
||||
beq .9
|
||||
|
||||
>ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPTmpPtr3
|
||||
.8 >ADC16 SKT.Cache+S.SOCKET.TCP.INFREE,ZPTmpPtr3
|
||||
>SBC16 SKT.Cache+S.SOCKET.TCP.INUSED,ZPTmpPtr3
|
||||
|
||||
lda SKT.Cache+S.SOCKET.TCP.OUTACKNUM+3
|
||||
@ -1074,10 +1054,6 @@ SKT.GetDataFromSktIn
|
||||
>LDYA ZPTmpPtr3
|
||||
clc
|
||||
rts
|
||||
.9
|
||||
* lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
* From SKT.Write.TCP
|
||||
* Src : ZPDataInPtr/ZPDataInLen
|
||||
|
@ -117,17 +117,7 @@ CS.RUN.LOOP0 >LDYA L.ENV.TERM
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
>SYSCALL fwrite
|
||||
bcs .9 I/O error
|
||||
|
||||
.2 >LDA.G ArgDev
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHWI K.VER
|
||||
>PUSHBI 4
|
||||
>LDYA L.MSG.GREETINGS
|
||||
>SYSCALL printf
|
||||
|
||||
.9 bcs CS.RUN.9 unable to send greetings...reset..
|
||||
bcs CS.RUN.EXIT I/O error
|
||||
|
||||
jsr Init.Timeout
|
||||
|
||||
@ -148,23 +138,32 @@ CS.RUN.LOOP1 >SLEEP
|
||||
cmp #IAC
|
||||
beq CS.RUN.IACMODE
|
||||
>SYSCALL PutChar
|
||||
bcc .2
|
||||
bcs CS.RUN.EXIT
|
||||
|
||||
bra CS.RUN.LOOP1
|
||||
|
||||
.1 jsr Wait.Timeout
|
||||
bcc CS.RUN.LOOP1
|
||||
|
||||
>LDA.G ArgDev
|
||||
>SYSCALL ArgV
|
||||
>PUSHYA
|
||||
>PUSHWI K.VER
|
||||
>PUSHBI 4
|
||||
>LDYA L.MSG.GREETINGS
|
||||
>SYSCALL printf
|
||||
|
||||
bcs CS.RUN.EXIT unable to send greetings...
|
||||
|
||||
.2 >PUSHBI S.PS.F.HOLD
|
||||
|
||||
>LDA.G ArgProg
|
||||
>SYSCALL ArgV
|
||||
>SYSCALL ExecV
|
||||
bcs CS.RUN.9
|
||||
|
||||
>SLEEP
|
||||
|
||||
>LDA.G bExitOnClose
|
||||
CS.RUN.EXIT >LDA.G bExitOnClose
|
||||
bmi .8
|
||||
|
||||
jmp CS.RUN.LOOP0
|
||||
|
@ -23,7 +23,8 @@ CS.START cld
|
||||
jmp (.1,x)
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA #S.PS.F.EVENT
|
||||
.DA #0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
@ -51,9 +52,6 @@ CS.INIT >LDYA L.LIBTCPIP
|
||||
>SYSCALL LoadLib
|
||||
sta hLIBTCPIP
|
||||
|
||||
lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -63,18 +63,28 @@ CS.RUN jsr Init.Timeout
|
||||
>LDYA L.MSG.TCPWAIT
|
||||
>SYSCALL puts
|
||||
|
||||
.1 >LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
.1 >SLEEP
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.GETCFG is TCPIP loaded ?
|
||||
bcs .99
|
||||
>STYA ZPIPCfgPtr
|
||||
|
||||
lda (ZPIPCfgPtr) Configured ?
|
||||
bmi CS.RUN.INIT
|
||||
|
||||
>SLEEP
|
||||
jsr Wait.Timeout
|
||||
bcc .1
|
||||
bcs .99
|
||||
|
||||
ldy #S.PS.hStdIn
|
||||
lda (pPs),y
|
||||
>SYSCALL feof
|
||||
bcs .9 I/O err
|
||||
tay
|
||||
beq .1
|
||||
|
||||
>SYSCALL GetChar
|
||||
bcs .1
|
||||
bcs .9
|
||||
|
||||
cmp #$03
|
||||
bne .1
|
||||
jmp CS.RUN.ABORT
|
||||
@ -84,7 +94,7 @@ CS.RUN jsr Init.Timeout
|
||||
>SYSCALL puts
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
.9 rts
|
||||
|
||||
CS.RUN.INIT ldx #3
|
||||
ldy #S.IPCFG.IP+3
|
||||
@ -122,16 +132,14 @@ CS.RUN.PORTOK >PUSHBI 0 no protocol
|
||||
>SYSCALL puts
|
||||
|
||||
.2 >SLEEP
|
||||
jsr CS.RUN.SERVER
|
||||
bcs CS.RUN.ERR
|
||||
|
||||
* >SYSCALL GetChar
|
||||
* bcs .2
|
||||
>LDA.G hSrvSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
|
||||
bcs .2
|
||||
|
||||
* cmp #$03
|
||||
* beq CS.RUN.ABORT
|
||||
|
||||
bra .2
|
||||
jsr CS.RUN.SERVER
|
||||
bcc .2
|
||||
rts
|
||||
|
||||
.9 pha
|
||||
>LDYA L.MSG.SKTERR
|
||||
@ -144,15 +152,10 @@ CS.RUN.ABORT >LDYA L.MSG.ABORT
|
||||
>SYSCALL puts
|
||||
lda #3
|
||||
|
||||
CS.RUN.ERR sec
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.SERVER >LDA.G hSrvSocket
|
||||
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
|
||||
bcs .8
|
||||
|
||||
pha
|
||||
CS.RUN.SERVER pha
|
||||
ldy #hSockets
|
||||
ldx #CONN.MAX
|
||||
|
||||
@ -161,7 +164,7 @@ CS.RUN.SERVER >LDA.G hSrvSocket
|
||||
pla
|
||||
sta (pData),y
|
||||
|
||||
bra CS.RUN.CLIENT
|
||||
bra CS.RUN.CLIENT
|
||||
|
||||
.2 iny
|
||||
dex
|
||||
@ -172,7 +175,9 @@ CS.RUN.SERVER >LDA.G hSrvSocket
|
||||
.8 clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.CLIENT >STA.G hClientSocket
|
||||
CS.RUN.CLIENT >SLEEP give some time for TCPIP SYN/ACK
|
||||
|
||||
>STA.G hClientSocket
|
||||
>SYSCALL GetMemPtr
|
||||
>STYA ZPSktPtr
|
||||
|
||||
|
@ -1142,7 +1142,7 @@ I.ENV.ROOT .AZ "ROOT"
|
||||
I.ENV.PATH .AZ "PATH=${ROOT}SBIN/:${ROOT}BIN/"
|
||||
I.ENV.LIB .AZ "LIB=${ROOT}LIB/"
|
||||
I.ENV.DRV .AZ "DRV=${ROOT}DRV/"
|
||||
CTRLR.SHELL .AZ "${ROOT}BIN/SHELL"
|
||||
CTRLR.SHELL .AZ "${ROOT}BIN/SH"
|
||||
ETCINIT.CMDLINE .AZ "${ROOT}ETC/INIT"
|
||||
*--------------------------------------
|
||||
MLIOPEN00 .DA #3
|
||||
|
@ -404,9 +404,6 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
|
||||
|
||||
.9 >RET 4
|
||||
*--------------------------------------
|
||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
|
||||
.HS 2C BIT ABS
|
||||
*--------------------------------------
|
||||
@ -419,9 +416,24 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
lda IO.hFD
|
||||
lda IO.hFD
|
||||
|
||||
.1 jmp $FFFF SELF MODIFIED
|
||||
.1 jsr $FFFF SELF MODIFIED
|
||||
bcs .9
|
||||
|
||||
phy
|
||||
ply
|
||||
bne .9
|
||||
|
||||
tax
|
||||
bne .9
|
||||
|
||||
inc pStack CC, Y,A = 0
|
||||
inc pStack
|
||||
inc pStack
|
||||
inc pStack keep buf/count on stack
|
||||
sec BLOCKING I/O
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
* (pStack)+2 count
|
||||
* (pStack)+0 buf
|
||||
@ -702,6 +714,20 @@ IO.EOF.CDEV >LDYAI K.IOBuf
|
||||
ora K.IOBuf+1
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
|
||||
|
||||
lda (pFD),y
|
||||
tax Function Offset in LIB
|
||||
|
||||
ldy #S.FD.SSOCK.IOHANDLER
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+1
|
||||
|
||||
lda IO.hFD
|
||||
|
||||
.1 jmp $FFFF SELF MODIFIED
|
||||
*--------------------------------------
|
||||
IO.EOF.PIPE
|
||||
lda #MLI.E.IO
|
||||
sec
|
||||
|
@ -31,7 +31,7 @@ K.FPwr ldx #ROM.PWR
|
||||
jsr MATH.PullARG
|
||||
|
||||
plx
|
||||
bra MATH.Go
|
||||
jmp GP.RomCallPushFAC
|
||||
*/--------------------------------------
|
||||
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
|
||||
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
|
||||
@ -68,7 +68,7 @@ K.ATan ldx #ROM.ATAN
|
||||
jsr MATH.PullFAC
|
||||
|
||||
plx
|
||||
bra MATH.Go
|
||||
jmp GP.RomCallPushFAC
|
||||
*/--------------------------------------
|
||||
* # float
|
||||
* Return 'floated' long
|
||||
@ -92,7 +92,7 @@ K.Float ldx #4
|
||||
|
||||
ldx #ROM.LTOF
|
||||
|
||||
MATH.Go jmp GP.RomCallPushFAC
|
||||
jmp GP.RomCallPushFAC
|
||||
*/--------------------------------------
|
||||
* # lrintf
|
||||
* Return float rounded into a long
|
||||
|
Loading…
x
Reference in New Issue
Block a user