KERNEL 0.94-2:Fixes for TELNETD/BBSD

This commit is contained in:
burniouf 2021-07-26 15:45:29 +02:00
parent 64b71db7b3
commit 222b03c048
7 changed files with 79 additions and 82 deletions

View File

@ -77,7 +77,7 @@ Y,A = Ptr to installed driver
## RETURN VALUE ## RETURN VALUE
CC = OK, CS = ERROR CC = OK, CS = ERROR
Y,A = FD Y,A = FD
X = hDev X = hFD
# GetDevStatus # GetDevStatus
@ -108,7 +108,7 @@ Create a hDEV
# IOCTL # IOCTL
## C ## C
`int ioctl(short int DevID, short int request, void *param);` `int ioctl(short int hFD, short int request, void *param);`
## ASM ## ASM
`>PUSHB hDEV` `>PUSHB hDEV`
@ -399,17 +399,6 @@ Y,A = PTR to MemBlock
CS : CS :
A = EC A = EC
# LoadStkObj
Load a file in AUX memory (Stock Objects)
PUSHW = PATH (Handled by....
PUSHB = MODE ...
PUSHB = TYPE ...
PUSHW = AUXTYPE ...FOpen)
## RETURN VALUE
Y,A = File Length
X = hMem of Loaded Object in AUX mem
# GetStkObjPtr # GetStkObjPtr
## ASM ## ASM
@ -490,6 +479,17 @@ A = Child PSID
## RETURN VALUE ## RETURN VALUE
# LoadStkObj
Load a file in AUX memory (Stock Objects)
PUSHW = PATH (Handled by....
PUSHB = MODE ...
PUSHB = TYPE ...
PUSHW = AUXTYPE ...FOpen)
## RETURN VALUE
Y,A = File Length
X = hMem of Loaded Object in AUX mem
# LoadTxtFile # LoadTxtFile
Load TXT a file in memory (with ending 0) Load TXT a file in memory (with ending 0)

Binary file not shown.

View File

@ -49,7 +49,7 @@ CS.START cld
*-------------------------------------- *--------------------------------------
.1 .DA CS.INIT .1 .DA CS.INIT
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE L.MSG.USAGE .DA MSG.USAGE
L.MSG.REG1 .DA MSG.REG1 L.MSG.REG1 .DA MSG.REG1
@ -71,7 +71,7 @@ J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
CS.INIT clc CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN CS.RUN
stz bIsTTY stz bIsTTY
jsr CS.RUN.ISATTY jsr CS.RUN.ISATTY
@ -85,21 +85,21 @@ CS.RUN
bne .4 bne .4
ldy #1 ldy #1
lda (ZPPtr1),y lda (ZPPtr1),y
ldx #OptionVars-OptionList-1 ldx #OptionVars-OptionList-1
.2 cmp OptionList,x .2 cmp OptionList,x
beq .3 beq .3
dex dex
bpl .2 bpl .2
>PUSHW L.MSG.USAGE >PUSHW L.MSG.USAGE
>PUSHBI 0 >PUSHBI 0
>SYSCALL PrintF >SYSCALL PrintF
lda #E.SYN lda #E.SYN
sec sec
rts rts
.3 ldy OptionVars,x .3 ldy OptionVars,x
lda #$80 lda #$80
sta (pData),y sta (pData),y
@ -115,17 +115,17 @@ CS.RUN
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
jsr InitSrcDirYA jsr InitSrcDirYA
bcs .9 bcs .9
.8 >PUSHEA.G TIME.SysTime .8 >PUSHEA.G TIME.SysTime
>SYSCALL Time >SYSCALL Time
>LDYAI S.PW >LDYAI S.PW
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
>STYA ZPPW >STYA ZPPW
txa txa
>STA.G hPW >STA.G hPW
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem >SYSCALL GetMem
bcs .9 bcs .9
@ -190,14 +190,14 @@ CS.RUN.LOOP
bcs .99 bcs .99
dec bPass2 dec bPass2
bra .1 bra .1
.9 >LDA.G bSummary .9 >LDA.G bSummary
bne .91 bne .91
jsr CS.RUN.PrintDirSumm jsr CS.RUN.PrintDirSumm
jsr CS.RUN.PrintCwd jsr CS.RUN.PrintCwd
jsr CS.RUN.NewLine jsr CS.RUN.NewLine
.91 dec bDirLevel .91 dec bDirLevel
jsr LeaveSubDir "cd .." jsr LeaveSubDir "cd .."
@ -278,7 +278,7 @@ CS.RUN.PRINT.REG bit bPass2
bne .3 (4) bne .3 (4)
>PUSHBI 4 >PUSHBI 4
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
jsr CS.RUN.PrintCwd jsr CS.RUN.PrintCwd
>PUSHW L.MSG.REG2 >PUSHW L.MSG.REG2
>PUSHW ZPFileName (2) >PUSHW ZPFileName (2)
@ -312,7 +312,7 @@ CS.RUN.PRINT.BDEV bit bPass2
>PUSHW L.MSG.BDEVEXT >PUSHW L.MSG.BDEVEXT
>PUSHW ZPFileName >PUSHW ZPFileName
ldy #S.STAT.P.SLOT ldy #S.STAT.P.SLOT
>PUSHB (ZPFileStat),y >PUSHB (ZPFileStat),y
iny DRIVE iny DRIVE
@ -325,11 +325,11 @@ CS.RUN.PRINT.BDEV bit bPass2
>PUSHB (ZPFileStat),y >PUSHB (ZPFileStat),y
dey dey
>PUSHB (ZPFileStat),y >PUSHB (ZPFileStat),y
>PUSHBI 8 >PUSHBI 8
>SYSCALL PrintF >SYSCALL PrintF
bcs .9 bcs .9
jsr CS.RUN.NewLine jsr CS.RUN.NewLine
bcs .9 bcs .9
@ -365,7 +365,7 @@ CS.RUN.PrintDirSumm >LEA.G BlkCounters
>PUSHA >PUSHA
dey dey
lda (ZPPtr1),y lda (ZPPtr1),y
>PUSHA >PUSHA
>PUSHBI 4 >PUSHBI 4
>SYSCALL PrintF >SYSCALL PrintF
@ -373,11 +373,11 @@ CS.RUN.PrintDirSumm >LEA.G BlkCounters
lda #$00 lda #$00
sta (ZPPtr1),y sta (ZPPtr1),y
dey dey
sta (ZPPtr1),y sta (ZPPtr1),y
dey dey
sta (ZPPtr1),y sta (ZPPtr1),y
dey dey
sta (ZPPtr1),y sta (ZPPtr1),y
rts rts
*-------------------------------------- *--------------------------------------
@ -401,9 +401,7 @@ CS.RUN.NewLine lda #C.CR
CS.RUN.ISATTY ldy #S.PS.hStdOut CS.RUN.ISATTY ldy #S.PS.hStdOut
lda (pPS),y lda (pPS),y
tax tax
lsr lda hFDs-1,x
bcc .9
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
@ -420,12 +418,12 @@ CS.QUIT jsr LeaveSubDir
beq .3 beq .3
>SYSCALL FreeMem >SYSCALL FreeMem
.3 >LDA.G hPW .3 >LDA.G hPW
beq .4 beq .4
>SYSCALL FreeMem >SYSCALL FreeMem
.4 lda hLineBuf .4 lda hLineBuf
beq .8 beq .8
>SYSCALL FreeMem >SYSCALL FreeMem
.8 clc .8 clc
rts rts

View File

@ -106,23 +106,24 @@ CS.RUN >LDYA L.MSG0
*-------------------------------------- *--------------------------------------
CS.RUN.GetDevName CS.RUN.GetDevName
tax tax
lsr lda hFDs.hName-1,x
bcc .1 bne .8
lda Dev.Table-1,x lda hFDs-1,x
>SYSCALL GetMemPtr
pha
tya
clc clc
adc #S.FD.DEV adc #S.FD.DEV
tay tay
lda Dev.Table,x
pla
adc /S.FD.DEV adc /S.FD.DEV
* clc * clc
rts rts
.1 lda Nod.Table.hFD-2,x .8 >SYSCALL GetMemPtr
>SYSCALL GetMemPtr
rts rts
*-------------------------------------- *--------------------------------------
CS.EVENT sec CS.EVENT sec

View File

@ -50,7 +50,6 @@ L.MSG.INITOK .DA MSG.INITOK
L.MSG.TCPIPERR .DA MSG.TCPIPERR L.MSG.TCPIPERR .DA MSG.TCPIPERR
L.MSG.SKTERR .DA MSG.SKTERR L.MSG.SKTERR .DA MSG.SKTERR
L.MSG.INCOMING .DA MSG.INCOMING L.MSG.INCOMING .DA MSG.INCOMING
L.MSG.EXECERR .DA MSG.EXECERR
L.NOD.Template .DA NOD.Template L.NOD.Template .DA NOD.Template
L.CMD.Template .DA CMD.Template L.CMD.Template .DA CMD.Template
.DA 0 .DA 0
@ -200,16 +199,7 @@ CS.RUN.CLIENT1 >PUSHEA.G NodBuf+5
>PUSHEA.G CmdBuf >PUSHEA.G CmdBuf
>PUSHBI 0 >PUSHBI 0
>SYSCALL ExecL >SYSCALL ExecL
bcc .8
pha
>PUSHW L.MSG.EXECERR
pla
>PUSHA
>PUSHBI 1
>SYSCALL PrintF
.8 clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.DOEVENT lda (pEvent) CS.DOEVENT lda (pEvent)
@ -242,7 +232,6 @@ MSG.INITOK .AZ "TELNETD:Init Ok, Listening."
MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly." MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly."
MSG.SKTERR .AZ "TELNETD:Listen Error." MSG.SKTERR .AZ "TELNETD:Listen Error."
MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n" MSG.INCOMING .AZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
MSG.EXECERR .AZ "TELNETD:ExecL failed $%h."
*-------------------------------------- *--------------------------------------
NOD.Template .AZ "/dev/tty%h" NOD.Template .AZ "/dev/tty%h"
CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login" CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login"

View File

@ -257,18 +257,8 @@ DEV.MkFD ldy #16 Y = Size, MAX=16 for S.FD.DIR
DEV.MkFDy sta .8+1 A = S.FD.T DEV.MkFDy sta .8+1 A = S.FD.T
ldx #1 jsr DEV.GetFreeFD
bcs .9
.1 lda hFDs-1,x
beq .2
inx
cpx #K.hFD.MAX+1
bne .1
lda #E.OOH
* sec
rts
.2 stx IO.hFILE .2 stx IO.hFILE
@ -297,6 +287,29 @@ DEV.MkFDy sta .8+1 A = S.FD.T
* clc * clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
DEV.GetFreeFD lda #0
DEV.GetFD ldx #1
.1 cmp hFDs-1,x
beq .8
inx
cpx #K.hFD.MAX+1
bne .1
tax
beq .9
lda #E.INVH
.HS 2C BIT ABS
.9 lda #E.OOH
* sec
rts
.8 clc
rts
*--------------------------------------
DEV.hFDFree lda IO.hFD DEV.hFDFree lda IO.hFD
beq .8 beq .8

View File

@ -240,20 +240,16 @@ K.MkNod >PULLB IO.hFD
jsr STAT.PM jsr STAT.PM
K.MkNod.I ldx #1 K.MkNod.I lda IO.hFD
jsr DEV.GetFD
.1 lda hFDs-1,x bcc .2
cmp IO.hFD
beq .2 jsr DEV.GetFreeFD
bcs .9
inx
cpx #K.hFD.MAX+1 lda IO.hFD
bne .1 sta hFDs-1,x
lda #MLI.E.IO
* sec
rts
.2 stx IO.hFILE .2 stx IO.hFILE
>LDYA ZPPtr1 >LDYA ZPPtr1