Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-05-16 17:51:19 +02:00
parent aa16022baa
commit 9f844defbb
7 changed files with 121 additions and 117 deletions

Binary file not shown.

View File

@ -212,9 +212,8 @@ CS.RUN.PAUSE >PUSHBI 0
bcc .5
cmp #MLI.E.EOF
bne .99
bra .90
beq .90
rts
.5 inc LineNum
bne .6
@ -257,7 +256,15 @@ CS.RUN.GETLINE >PUSHWI 256
lda (pPS),y
.1 >SYSCALL fgets
rts
bcs .9
lda #'\'
>PUSHA
ldy #S.PS.hStdErr
lda (pPS),y
>SYSCALL fputc
.9 rts
*--------------------------------------
CS.RUN.PRINT lda bLineNum
bpl .1

View File

@ -249,17 +249,17 @@ STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
clc
rts
.3 cmp #S.IOCTL.STATCODE.GETRC
.3 cmp #S.IOCTL.STATCODE.EOF
bne STATUS.9
lda DIB+S.DIB.S
and #S.DIB.S.OPENED
beq .8
beq OPEN.E
.DO SSCIRQ=1
lda INBUF.TAIL
eor INBUF.HEAD
beq .4 NO DATA? eof + TRUE
beq .4 NO DATA? eof = TRUE
lda #1
@ -295,13 +295,13 @@ CONTROL jsr STATUS.CONTROL.Init
*--------------------------------------
OPEN lda DIB+S.DIB.S
bit #S.DIB.S.OPENED
beq .1
beq OPEN.1
lda #MLI.E.OPEN
OPEN.E lda #MLI.E.OPEN
sec
rts
.1 php
OPEN.1 php
sei
ldx DEVSLOTn08F
@ -424,11 +424,11 @@ READ php
clc
rts
.9 lda #C.EOF
.9 lda #MLI.E.IO
.HS 2C BIT ABS
.99 plp
lda #E.NODATA
.99 lda #E.NODATA
plp
sec
rts
*--------------------------------------
@ -445,7 +445,7 @@ WRITE php
.3 .DO SSCIRQ=1
lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDSR true when 0
bne .90
bne .9
lda OUTBUF.HEAD
cmp OUTBUF.TAIL Buffer Empty?
@ -471,7 +471,7 @@ WRITE php
inc
and #BUF.MASK
cmp OUTBUF.TAIL
beq .9 Buffer Full!!
beq .99 Buffer Full!!
sta OUTBUF.HEAD
@ -486,7 +486,7 @@ WRITE php
.ELSE
.4 lda SSC.STATUS-$8F,x
bit #SSC.STATUS.nDSR true when 0
bne .90
bne .9
bit #SSC.STATUS.TDRE Outgoing char?
beq .4
@ -505,9 +505,9 @@ WRITE php
clc
rts
.90 lda #E.NODATA
.9 lda #MLI.E.IO
.HS 2C BIT ABS
.9 lda #C.EOF
.99 lda #E.NODATA
plp
sec
rts
@ -520,17 +520,20 @@ STATUS.CONTROL.Init
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBufPtr
iny
lda (ZPIOCTL),y
sta ZPBufPtr+1
* ldy #S.IOCTL.BYTECNT
iny
iny #S.IOCTL.BYTECNT
lda (ZPIOCTL),y
eor #$ff
sta ZPCount
iny
lda (ZPIOCTL),y
eor #$ff
sta ZPCount+1

View File

@ -367,8 +367,7 @@ S.IOCTL.STATCODE.STATUS .EQ 0
S.IOCTL.STATCODE.GETDCB .EQ 1
S.IOCTL.STATCODE.GETNL .EQ 2
S.IOCTL.STATCODE.GETDIB .EQ 3
S.IOCTL.STATCODE.GETRC .EQ 4
S.IOCTL.STATCODE.GETWC .EQ 5
S.IOCTL.STATCODE.EOF .EQ 4
S.IOCTL.CTRLCODE .EQ 4 1 BYTE
S.IOCTL.CTRLCODE.RESET .EQ 0
S.IOCTL.CTRLCODE.SETDCB .EQ 1

View File

@ -10,12 +10,23 @@ NEW
.INB INC/NET.TELNET.I
*--------------------------------------
TIMEOUT.MAX .EQ 100 10 sec.
IAC.BUF.MAX .EQ 32
*--------------------------------------
.DUMMY
.OR ZPBIN
ZS.START
ZPPtr1 .BS 2
TimeOut .BS 1
hErr .BS 1
ArgIndex .BS 1
ArgDev .BS 1
ArgProg .BS 1
hFILE .BS 1
bExitOnClose .BS 1
IAC.CMD .BS 1
IAC.SUBCMD .BS 1
IAC.SB.CMD .BS 1
IAC.SB.LEN .BS 1
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
@ -48,6 +59,15 @@ L.ENV.TERM .DA ENV.TERM
*--------------------------------------
CS.INIT clc
rts
TEST lda ArgProg
>SYSCALL ArgV
>PUSHYA
lda hErr
>SYSCALL fputs
rts
*--------------------------------------
CS.RUN ldy #S.PS.ARGC
lda (pPs),y
@ -55,7 +75,8 @@ CS.RUN ldy #S.PS.ARGC
bcc .9
.1 >INC.G ArgIndex
.1 inc ArgIndex
lda ArgIndex
>SYSCALL ArgV
bcs .8
@ -65,18 +86,18 @@ CS.RUN ldy #S.PS.ARGC
bcs .9
beq .1 valid option, check next arg
>LDA.G ArgDev
lda ArgDev
bne .2
>LDA.G ArgIndex
>STA.G ArgDev
lda ArgIndex
sta ArgDev
bra .1
.2 >LDA.G ArgProg
.2 lda ArgProg
bne .9
>LDA.G ArgIndex
>STA.G ArgProg
lda ArgIndex
sta ArgProg
bra .1
.9 >PUSHBI 0
@ -86,15 +107,19 @@ CS.RUN ldy #S.PS.ARGC
sec
.99 rts
.8 >LDA.G ArgDev
.8 lda ArgDev
beq .9
>LDA.G ArgProg
lda ArgProg
beq .9
ldy #S.PS.hStdErr
lda (pPs),y
sta hErr
>PUSHWI 0 auxtype
>PUSHBI 0 type
>PUSHBI O.RDWR
>LDA.G ArgDev
lda ArgDev
>SYSCALL ArgV
>SYSCALL fopen
@ -107,7 +132,7 @@ CS.RUN ldy #S.PS.ARGC
iny #S.PS.hStdErr
sta (pPs),y
>STA.G hFILE
sta hFILE
CS.RUN.LOOP0 >SLEEP
@ -149,7 +174,7 @@ CS.RUN.LOOP1 >SLEEP
.1 lda TimeOut
bne CS.RUN.LOOP1
>LDA.G ArgDev
lda ArgDev
>SYSCALL ArgV
>PUSHYA
>PUSHWI K.VER
@ -160,16 +185,15 @@ CS.RUN.LOOP1 >SLEEP
bcs CS.RUN.EXIT unable to send greetings...
.2 >PUSHBI S.PS.F.HOLD
>LDA.G ArgProg
lda ArgProg
>SYSCALL ArgV
>SYSCALL ExecV
>SLEEP
CS.RUN.EXIT >LDA.G bExitOnClose
CS.RUN.EXIT lda bExitOnClose
bmi .8
jmp CS.RUN.LOOP0
.8 lda #0
@ -179,15 +203,14 @@ CS.RUN.9 rts
CS.RUN.IACMODE >SYSCALL GetChar Wait for IAC CMD (or SB)
bcs CS.RUN.9
>STA.G IAC.CMD
sta IAC.CMD
>SYSCALL GetChar Wait for IAC SUBCMD
bcs CS.RUN.9
>STA.G IAC.SUBCMD
tax
ldx IAC.SUBCMD
>LDA.G IAC.CMD
lda IAC.CMD
cmp #SB
beq CS.RUN.IAC.SB
*--------------------------------------
@ -216,9 +239,9 @@ CS.RUN.IAC.CMD cmp #WILL
CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
bcs .9
>STA.G IAC.SB.CMD
sta IAC.SB.CMD
>STZ.G IAC.SB.LEN
stz IAC.SB.LEN
.2 >SYSCALL GetChar
bcs .9
@ -226,21 +249,17 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
cmp #IAC
beq .4 end of DATA, go wait SE
pha
ldy IAC.SB.LEN
>LDA.G IAC.SB.LEN
clc
adc #IAC.SB.DATA
tay
pla
sta (pData),y
iny
lda #0
sta (pData),y
>INC.G IAC.SB.LEN
bra .2
sty IAC.SB.LEN
cpy #IAC.BUF.MAX
bne .2
bra .8
.4 >SYSCALL GetChar
bcs .9
@ -248,15 +267,15 @@ CS.RUN.IAC.SB >SYSCALL GetChar Wait for IAC SB.IS or SEND
cmp #SE
bne .8
>LDA.G IAC.SUBCMD
lda IAC.SUBCMD
cmp #TELOPT.TTYPE
bne .8
>LDA.G IAC.SB.CMD
lda IAC.SB.CMD
cmp #SB.IS
bne .8
>PUSHEA.G IAC.SB.DATA
>PUSHW pData IAC.SB.DATA
>LDYA L.ENV.TERM
>SYSCALL SetEnv
@ -274,7 +293,7 @@ CS.DOEVENT lda (pEvent)
.9 sec do not discard TIMER event
rts
*--------------------------------------
CS.QUIT >LDA.G hFILE
CS.QUIT lda hFILE
beq .8
>SYSCALL fclose
@ -337,16 +356,7 @@ ENV.TERM .AZ "TERM"
.DUMMY
.OR 0
DS.START
ArgIndex .BS 1
ArgDev .BS 1
ArgProg .BS 1
hFILE .BS 1
bExitOnClose .BS 1
IAC.CMD .BS 1
IAC.SUBCMD .BS 1
IAC.SB.CMD .BS 1
IAC.SB.LEN .BS 1
IAC.SB.DATA .BS 32
IAC.SB.DATA .BS IAC.BUF.MAX
DS.END .ED
MAN
SAVE USR/SRC/SBIN/GETTY.S

View File

@ -448,18 +448,15 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
tax
iny
sbc (pFD),y
bcc .12
pla A,X = cnt
bcc .12 cnt < Used
pla
dey
lda (pFD),y
pha
iny
lda (pFD),y
tax
dey
lda (pFD),y A,X = Used
.12 pla
sta .80+1
.12 sta .80+1
stx .81+1
eor #$ff
sta IO.Counter
@ -475,7 +472,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
sty .2+1
ldy #S.FD.PIPE.Tail+1
* clc
clc
adc (pFD),y
sta .2+2
@ -529,19 +526,21 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
ldy #S.FD.PIPE.Tail
sta (pFD),y
lda .80+1
ldy #S.FD.PIPE.Free
clc
adc (pFD),y
lda (pFD),y
adc .80+1
sta (pFD),y
iny
lda .81+1
adc (pFD),y
lda (pFD),y
adc .81+1
sta (pFD),y
ldy #S.FD.PIPE.Used
iny #S.FD.PIPE.Used
sec
lda (pFD),y
sbc .80+1
@ -613,7 +612,7 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
eor #$ff
sta IO.Counter+1
pla
ldy #S.FD.PIPE.Used+1
iny #S.FD.PIPE.Used+1
adc (pFD),y
sta (pFD),y
@ -766,21 +765,8 @@ IO.EOF.TRUE lda #$ff
* clc
IO.EOF.REG.RTS rts
*--------------------------------------
IO.EOF.CDEV >LDYAI K.IOBuf
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
lda #S.IOCTL.STATCODE.GETRC
jsr K.GetDevStatus.I
bcs IO.EOF.REG.RTS
lda K.IOBuf
ora K.IOBuf+1
beq IO.EOF.TRUE
IO.EOF.FALSE lda #0
* clc
rts
IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
jmp K.GetDevStatus.I
*--------------------------------------
IO.EOF.SSOCK ldy #S.FD.SSOCK.EOF
@ -802,7 +788,10 @@ IO.EOF.PIPE clc
iny
ora (pFD),y
beq IO.EOF.TRUE
bne IO.EOF.FALSE
IO.EOF.FALSE lda #0
* clc
rts
*--------------------------------------
IO.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN+S.MEM.F.NOMOVE

View File

@ -62,13 +62,13 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB
clc
rts
.3 cmp #S.IOCTL.STATCODE.GETRC
.3 cmp #S.IOCTL.STATCODE.EOF
bne .9
ldy #S.DCB.TTY.STATUS
lda (ZPDCBPtr),y
and #S.DIB.S.OPENED
beq .8
beq DRV.TERM.OPEN.E
jsr DRV.TERM.CURBLNK
@ -76,24 +76,20 @@ DRV.TERM.STATUS jsr DRV.TERM.GetIOCTLBufCntDCB
lda (ZPDCBPtr),y
iny
sec
sbc (ZPDCBPtr),y OUTHEAD
and #$F
eor (ZPDCBPtr),y OUTHEAD
bne .8
bit bActive
bpl .8
bpl .7
bit OPENAPPLE
bmi .8
bmi .7
bit KBD
bpl .8
bmi .8
inc
.8 sta (ZPBufPtr)
ldy #1
lda #0
sta (ZPBufPtr),y
.7 lda #$ff
.HS 2C BIT ABS
.8 lda #0
clc
rts
@ -108,13 +104,13 @@ DRV.TERM.OPEN tax DEV.ID in A
ldy #S.DCB.TTY.STATUS
lda (ZPDCBPtr),y
bit #S.DIB.S.OPENED
beq .1
beq DRV.TERM.OPEN.1
lda #MLI.E.OPEN
DRV.TERM.OPEN.E lda #MLI.E.OPEN
sec
rts
.1 txa
DRV.TERM.OPEN.1 txa
ldx #0
.2 ldy A2osX.SCRNDEVS,x
@ -760,8 +756,8 @@ DRV.TERM.G1 ldy #S.DCB.TTY.bG1ALT
.1 ror
sta (ZPDCBPtr),y
clc
rts
lda #0
jmp DRV.TERM.SETMODE
*--------------------------------------
DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
lda (ZPDCBPtr),y