Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-09-19 17:25:42 +02:00
parent c971b6da80
commit 1210f3d810
9 changed files with 128 additions and 157 deletions

Binary file not shown.

Binary file not shown.

View File

@ -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

View File

@ -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
*--------------------------------------

View File

@ -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?

View File

@ -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

View File

@ -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 ?

View File

@ -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
*--------------------------------------

View File

@ -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