mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-14 02:29:33 +00:00
Kernel 0.9.2
This commit is contained in:
parent
c971b6da80
commit
1210f3d810
Binary file not shown.
Binary file not shown.
|
@ -24,7 +24,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 S.PS.F
|
||||
.DA #0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA DS.END-DS.START Data Segment to Allocate
|
||||
.DA #16 SS
|
||||
|
|
|
@ -171,11 +171,11 @@ CS.END
|
|||
DEVSIG.Offset .HS 05070B0C
|
||||
DEVSIG.Value .HS 38180131
|
||||
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
|
||||
MSG.DETECT .DO SSCIRQ=1
|
||||
.AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver (IRQ Enabled)."
|
||||
.ELSE
|
||||
.AZ "Apple SSC (Super Serial Card,//c Serial Port) Driver."
|
||||
MSG.DETECT .AS "Apple SSC (Super Serial Card,//c Serial Port) Driver"
|
||||
.DO SSCIRQ=1
|
||||
.AS " (IRQ Enabled)"
|
||||
.FIN
|
||||
.AZ "."
|
||||
MSG.DETECT.OK .AZ "SSC Installed As Device : %s\r\n"
|
||||
MSG.DETECT.KO .AZ "No SSC Found."
|
||||
SSCANF.ARGS .AZ "%u,%d,%d,%s,%s"
|
||||
|
@ -211,13 +211,11 @@ DRV.CS.START cld
|
|||
.DA WRITE
|
||||
.DO SSCIRQ=1
|
||||
.DA IRQ
|
||||
.ELSE
|
||||
.DA A2osX.BADCALL
|
||||
.FIN
|
||||
.DA 0 end or relocation
|
||||
*--------------------------------------
|
||||
STATUS >STYA ZPIOCTL
|
||||
|
||||
STATUS jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.STATCODE
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
@ -225,20 +223,13 @@ STATUS >STYA ZPIOCTL
|
|||
cmp #S.IOCTL.STATCODE.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldx #S.DIB-1
|
||||
ldy #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
.1 ldx #3
|
||||
.1 ldy #3
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+1
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+2
|
||||
|
||||
.2 lda DIB,x
|
||||
.3 sta $ffff,x SELF MODIFIED
|
||||
dex
|
||||
.2 lda DIB,y
|
||||
sta (ZPIOCTL),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
clc
|
||||
|
@ -247,18 +238,11 @@ STATUS >STYA ZPIOCTL
|
|||
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
|
||||
bne STATUS.9
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+1
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+2
|
||||
ldy #S.DCB.COM-1
|
||||
|
||||
ldx #S.DCB.COM-1
|
||||
|
||||
.2 lda DCB,x
|
||||
.3 sta $ffff,x SELF MODIFIED
|
||||
dex
|
||||
.2 lda DCB,y
|
||||
sta (ZPIOCTL),y
|
||||
dey
|
||||
bpl .2
|
||||
|
||||
clc
|
||||
|
@ -268,25 +252,18 @@ STATUS.9 lda #MLI.E.BADCTL
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CONTROL >STYA ZPIOCTL
|
||||
CONTROL jsr STATUS.CONTROL.Init
|
||||
|
||||
ldy #S.IOCTL.CTRLCODE
|
||||
lda (ZPIOCTL),y
|
||||
cmp #S.IOCTL.CTRLCODE.SETDCB
|
||||
bne STATUS.9
|
||||
|
||||
.1 ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta .2+1
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta .2+2
|
||||
ldy #S.DCB.COM-1
|
||||
|
||||
ldx #S.DCB.COM-1
|
||||
|
||||
.2 lda $ffff,x SELF MODIFIED
|
||||
sta DCB,x
|
||||
dex
|
||||
.2 lda (ZPIOCTL),y
|
||||
sta DCB,y
|
||||
dey
|
||||
bpl .2
|
||||
*--------------------------------------
|
||||
OPEN php
|
||||
|
@ -339,33 +316,14 @@ CLOSE php
|
|||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
READ >STYA ZPIOCTL
|
||||
|
||||
php
|
||||
READ php
|
||||
sei
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
|
||||
* ldy #S.IOCTL.BYTECNT
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
jsr READ.WRITE.Init
|
||||
|
||||
stz ZPCount2
|
||||
stz ZPCount2+1
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
|
||||
.10 inc ZPCount
|
||||
bne .11
|
||||
inc ZPCount+1
|
||||
|
@ -400,13 +358,11 @@ READ >STYA ZPIOCTL
|
|||
.2 lda SSC.STATUS-$8F,x
|
||||
bit #SSC.STATUS.nDSR true when 0
|
||||
bne .9
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
lda SSC.STATUS-$8F,x
|
||||
|
||||
and #SSC.STATUS.RDRF incoming char?
|
||||
bit #SSC.STATUS.RDRF incoming char?
|
||||
beq .8
|
||||
|
||||
lda SSC.DATA-$8F,x
|
||||
sta (ZPBufPtr)
|
||||
inc ZPBufPtr
|
||||
bne .13
|
||||
|
@ -419,49 +375,30 @@ READ >STYA ZPIOCTL
|
|||
|
||||
.8 lda ZPCount2
|
||||
bne .81
|
||||
ldx ZPCount2+1
|
||||
ora ZPCount2+1
|
||||
beq .99
|
||||
lda ZPCount2
|
||||
|
||||
.81 ldy #S.IOCTL.BYTECNT
|
||||
sta (ZPIOCTL),y
|
||||
iny
|
||||
txa
|
||||
lda ZPCount2+1
|
||||
sta (ZPIOCTL),y
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.90 lda #0
|
||||
.HS 2C BIT ABS
|
||||
.9 lda #C.EOF
|
||||
|
||||
.99 plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
WRITE >STYA ZPIOCTL
|
||||
|
||||
php
|
||||
WRITE php
|
||||
sei
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
|
||||
sta ZPBufPtr
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
|
||||
* ldy #S.IOCTL.BYTECNT
|
||||
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
jsr READ.WRITE.Init
|
||||
|
||||
.2 inc ZPCount
|
||||
bne .3
|
||||
|
@ -469,8 +406,6 @@ WRITE >STYA ZPIOCTL
|
|||
beq .8
|
||||
|
||||
.3 .DO SSCIRQ=1
|
||||
ldx DEVSLOTn08F
|
||||
|
||||
lda SSC.STATUS-$8F,x
|
||||
bit #SSC.STATUS.nDSR true when 0
|
||||
bne .90
|
||||
|
@ -495,7 +430,7 @@ WRITE >STYA ZPIOCTL
|
|||
|
||||
.5 lda OUTBUF.HEAD
|
||||
|
||||
.6 tax
|
||||
.6 tay
|
||||
inc
|
||||
and #BUF.MASK
|
||||
cmp OUTBUF.TAIL
|
||||
|
@ -508,19 +443,15 @@ WRITE >STYA ZPIOCTL
|
|||
bne .7
|
||||
inc ZPBufPtr+1
|
||||
|
||||
.7 sta OUTBUF,x
|
||||
.7 sta OUTBUF,y
|
||||
|
||||
bra .2
|
||||
.ELSE
|
||||
|
||||
ldx DEVSLOTn08F
|
||||
|
||||
.ELSE
|
||||
.4 lda SSC.STATUS-$8F,x
|
||||
|
||||
* and #SSC.STATUS.DCD+SSC.STATUS.nDSR
|
||||
* beq .9
|
||||
bit #SSC.STATUS.nDSR true when 0
|
||||
bne .90
|
||||
|
||||
and #SSC.STATUS.TDRE Outgoing char?
|
||||
bit #SSC.STATUS.TDRE Outgoing char?
|
||||
beq .4
|
||||
|
||||
lda (ZPBufPtr)
|
||||
|
@ -544,6 +475,31 @@ WRITE >STYA ZPIOCTL
|
|||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
READ.WRITE.Init ldx DEVSLOTn08F
|
||||
|
||||
STATUS.CONTROL.Init
|
||||
>STYA ZPIOCTL
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
sta ZPBufPtr+1
|
||||
|
||||
* ldy #S.IOCTL.BYTECNT
|
||||
iny
|
||||
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount
|
||||
iny
|
||||
lda (ZPIOCTL),y
|
||||
eor #$ff
|
||||
sta ZPCount+1
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* IRQ Handler
|
||||
* on exit, CC if handled
|
||||
*--------------------------------------
|
||||
|
|
|
@ -18,7 +18,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 S.PS.F
|
||||
.DA #0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
|
@ -40,10 +41,13 @@ L.ENV.TERM .DA ENV.TERM
|
|||
L.MSG.DEBUG .DA MSG.DEBUG
|
||||
.DA 0 End Of Reloc Table
|
||||
*--------------------------------------
|
||||
CS.INIT ldy #S.PS.ARGC
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN ldy #S.PS.ARGC
|
||||
lda (pPs),y
|
||||
cmp #2
|
||||
bne .90
|
||||
bcc .90
|
||||
|
||||
>PUSHBI 0
|
||||
|
||||
|
@ -61,35 +65,32 @@ CS.INIT ldy #S.PS.ARGC
|
|||
sta (pPs),y
|
||||
|
||||
>STA.G hDEV
|
||||
|
||||
lda #2
|
||||
>SYSCALL GetArg
|
||||
bcs .9
|
||||
|
||||
lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
bra CS.RUN.LOOP0
|
||||
|
||||
.90 >LDYA L.MSG.USAGE
|
||||
>SYSCALL puts
|
||||
lda #0
|
||||
sec
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN >LDYA L.ENV.TERM
|
||||
|
||||
CS.RUN.LOOP0 >LDYA L.ENV.TERM
|
||||
>SYSCALL UnSetEnv
|
||||
|
||||
>PUSHWI TELNETOPTS.LEN
|
||||
.1 >PUSHWI TELNETOPTS.LEN
|
||||
>PUSHW L.TELNETOPTS
|
||||
ldy #S.PS.hStdOut
|
||||
lda (pPs),y
|
||||
>SYSCALL write
|
||||
bcs CS.RUN.9
|
||||
|
||||
>PUSHWI K.VER
|
||||
bcc .2 sent!
|
||||
|
||||
tay
|
||||
bne CS.RUN.9 error ?
|
||||
|
||||
>SLEEP
|
||||
|
||||
bra .1 no data sent, loop
|
||||
|
||||
.2 >PUSHWI K.VER
|
||||
>PUSHBI 2
|
||||
>LDYA L.MSG.GREETINGS
|
||||
>SYSCALL printf
|
||||
|
@ -98,7 +99,7 @@ CS.RUN >LDYA L.ENV.TERM
|
|||
|
||||
jsr Init.Timeout
|
||||
|
||||
CS.RUN.LOOP >SLEEP
|
||||
CS.RUN.LOOP1 >SLEEP
|
||||
|
||||
>SYSCALL GetChar
|
||||
bcs .1
|
||||
|
@ -108,18 +109,22 @@ CS.RUN.LOOP >SLEEP
|
|||
>SYSCALL PutChar
|
||||
bcc .2
|
||||
|
||||
bra CS.RUN.8
|
||||
bra CS.RUN.LOOP1
|
||||
|
||||
.1 jsr Wait.Timeout
|
||||
bcc CS.RUN.LOOP
|
||||
bcc CS.RUN.LOOP1
|
||||
|
||||
.2 lda #2
|
||||
>SYSCALL GetArg
|
||||
>SYSCALL ExecPSNewEnv
|
||||
bcs CS.RUN.9
|
||||
|
||||
>SLEEP
|
||||
|
||||
jmp CS.RUN.LOOP0
|
||||
|
||||
CS.RUN.8
|
||||
CS.RUN.9 clc
|
||||
rts
|
||||
clc
|
||||
CS.RUN.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.IACMODE >SLEEP Wait for IAC CMD (or SB)
|
||||
>SYSCALL GetChar
|
||||
|
@ -158,7 +163,7 @@ CS.RUN.IAC.CMD cmp #WILL
|
|||
lda (pPs),y
|
||||
>SYSCALL write
|
||||
|
||||
.8 jmp CS.RUN.LOOP
|
||||
.8 jmp CS.RUN.LOOP1
|
||||
*--------------------------------------
|
||||
CS.RUN.IAC.SB
|
||||
.1 >SLEEP Wait for IAC SB.IS or SEND
|
||||
|
@ -211,7 +216,7 @@ CS.RUN.IAC.SB
|
|||
>LDYA L.ENV.TERM
|
||||
>SYSCALL SetEnv
|
||||
|
||||
.8 jmp CS.RUN.LOOP
|
||||
.8 jmp CS.RUN.LOOP1
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
bpl .9 is it a TIMER event?
|
||||
|
|
|
@ -19,7 +19,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 S.PS.F
|
||||
.DA #0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
|
@ -37,11 +38,8 @@ L.MSG.PASSWORD .DA MSG.PASSWORD
|
|||
L.SHELL .DA SHELL
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
clc Tell TskMgr To stay in memory
|
||||
.9 rts
|
||||
CS.INIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN lda #0
|
||||
ldy #hUSERNAME
|
||||
|
|
|
@ -130,10 +130,6 @@ CS.INIT jsr SetPWD
|
|||
jsr CMD.Init
|
||||
bcs .9
|
||||
|
||||
lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
|
||||
ldy #S.PS.ARGC
|
||||
lda (pPs),y
|
||||
|
||||
|
@ -184,11 +180,15 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
|||
|
||||
.1 >SLEEP
|
||||
>SYSCALL GetChar
|
||||
bcs .1 no char
|
||||
bcc .21 no char
|
||||
|
||||
cmp #C.EOF
|
||||
beq .9
|
||||
tay
|
||||
beq .1
|
||||
rts
|
||||
|
||||
.21 cmp #C.EOF
|
||||
beq .9
|
||||
|
||||
jsr CL.CHARIN
|
||||
|
||||
>LDA.G bCmdBufExec Something to execute ?
|
||||
|
|
|
@ -51,10 +51,6 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||
>SYSCALL LoadLib
|
||||
sta hLIBTCPIP
|
||||
|
||||
lda (pPs)
|
||||
ora #S.PS.F.EVENT Now accept events
|
||||
sta (pPs)
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -167,6 +163,7 @@ CS.RUN.SERVER >LDA.G hSrvSocket
|
|||
>SYSCALL printf
|
||||
bcs .9
|
||||
|
||||
>PUSHW L.NOD.NAME
|
||||
>LDA.G hClientSocket
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.MkNod
|
||||
bcs .9
|
||||
|
@ -236,6 +233,9 @@ MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly"
|
|||
MSG.SKTERR .AZ "TELNETD:Listen Error."
|
||||
MSG.ABORT .AZ "TELNETD:User Aborted."
|
||||
MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
|
||||
CMD.LINE .AS "${A2OSX}SBIN/GETTY "
|
||||
|
||||
.AZ " ${A2OSX}SBIN/LOGIN"
|
||||
*--------------------------------------
|
||||
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||
|
@ -245,6 +245,8 @@ Socket.Src.Addr .BS 4
|
|||
Socket.Src.Port .DA TCP.PORT.TELNET
|
||||
Socket.Dst.Addr .BS 4
|
||||
Socket.Dst.Port .BS 2
|
||||
*--------------------------------------
|
||||
NOD.Name .AZ "TTY%h"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
|
@ -254,6 +256,7 @@ SktIndex .BS 1
|
|||
hSrvSocket .BS 1
|
||||
hClientSocket .BS 1
|
||||
TimeOut .BS 1
|
||||
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
|
|
@ -2,7 +2,7 @@ NEW
|
|||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*/--------------------------------------
|
||||
* # ExecPSNewEnv.
|
||||
* # ExecPSNewEnv
|
||||
* # ExecPS (Blocking Parent PID)
|
||||
* # CreatePSNewEnv
|
||||
* # CreatePS (Non Blocking)
|
||||
|
@ -268,10 +268,18 @@ PS.Load jsr BIN.Load Y,A=filename full path
|
|||
ldy #S.PS.hCS
|
||||
sta (ZPPtr3),y save CS hMem in S.PS
|
||||
|
||||
jsr K.GetMemByID
|
||||
jsr PS.SetMemOwner Set Ownership
|
||||
* jsr K.GetMemByID
|
||||
* jsr PS.SetMemOwner Set Ownership
|
||||
|
||||
ldy #H.BIN.DS.SIZE+1
|
||||
ldy #H.BIN.F Get Bin S.PS.F
|
||||
lda (ZPPtr4),y
|
||||
beq .1
|
||||
|
||||
ldy #S.PS.F update PS S.PS.F
|
||||
ora (ZPPtr3),y
|
||||
sta (ZPPtr3),y
|
||||
|
||||
.1 ldy #H.BIN.DS.SIZE+1
|
||||
lda (ZPPtr4),y Load DS.SIZE HI
|
||||
tax
|
||||
dey
|
||||
|
@ -350,7 +358,7 @@ PS.DupEnv jsr K.GetMemPtr
|
|||
|
||||
>STYA ZPPtr2
|
||||
|
||||
jsr PS.SetMemOwner Set Ownership
|
||||
jsr PS.SetMemOwner Set Ownership
|
||||
|
||||
ldy #0
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user