Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-27 15:00:56 +00:00
parent 19433211e8
commit 4988ec02fc
15 changed files with 94 additions and 77 deletions

Binary file not shown.

View File

@ -39,6 +39,7 @@ L.MSG.Init .DA MSG.Init
L.MSG.LINENUM .DA MSG.LINENUM L.MSG.LINENUM .DA MSG.LINENUM
L.MSG.CTRLCHAR .DA MSG.CTRLCHAR L.MSG.CTRLCHAR .DA MSG.CTRLCHAR
L.ASCII .DA ASCII L.ASCII .DA ASCII
L.MSG.STACK .DA MSG.STACK
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT CS.INIT
@ -162,6 +163,8 @@ CS.RUN bra .11
CS.RUN.PRINT sty BytesRead Y,A = Bytes read CS.RUN.PRINT sty BytesRead Y,A = Bytes read
stz ByteIndex stz ByteIndex
* jsr PrintStack
>INCW.G LineNum >INCW.G LineNum
>LDA.G bSuppressBlankLine >LDA.G bSuppressBlankLine
@ -293,8 +296,15 @@ CS.RUN.CLOSE ldy #hFILE
CS.DOEVENT sec CS.DOEVENT sec
rts rts
*-------------------------------------- *--------------------------------------
PrintStack >PUSHW pStack
>PUSHBI 2
>LDYA L.MSG.STACK
>SYSCALL printf
rts
*--------------------------------------
CS.END CS.END
*-------------------------------------- *--------------------------------------
MSG.STACK .AZ ">%H:"
OptionList >PSTR "ANSans" OptionList >PSTR "ANSans"
OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine
*-------------------------------------- *--------------------------------------

View File

@ -219,11 +219,11 @@ CS.RUN.DUMPNIC ldy #DCB.NIC+S.DCB.NIC.MAC+5
>PUSHEA.G DIB+S.DIB.IDS >PUSHEA.G DIB+S.DIB.IDS
ldx IPCFG+S.NETCFG.DevID ldx IPCFG+S.NETCFG.DevID
lda Dev.Table,x lda Dev.Table-1,x
clc clc
adc #S.FD.DEV adc #S.FD.DEV
tay tay
lda Dev.Table+1,x lda Dev.Table,x
adc /S.FD.DEV adc /S.FD.DEV
>PUSHYA >PUSHYA

View File

@ -59,10 +59,14 @@ L.FD.T .DA FD.T.REG
CS.INIT clc CS.INIT clc
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN jsr DumpDev CS.RUN lda #1
>STA.G Table.Index
jsr DumpDev
bcs .9 bcs .9
>STZ.G Table.Index lda #2
>STA.G Table.Index
jsr DumpNod jsr DumpNod
bcs .9 bcs .9
@ -77,9 +81,9 @@ DumpDev >LDYA L.MSG0
>LDA.G Table.Index >LDA.G Table.Index
.1 tax .1 tax
lda Dev.Table,x lda Dev.Table-1,x
sta ZPFDPtr sta ZPFDPtr
lda Dev.Table+1,x lda Dev.Table,x
sta ZPFDPtr+1 sta ZPFDPtr+1
beq .8 beq .8
@ -103,7 +107,7 @@ DumpDev >LDYA L.MSG0
.7 >INC.G Table.Index .7 >INC.G Table.Index
>INC.G Table.Index >INC.G Table.Index
cmp #K.DEV.MAX cmp #K.DEV.MAX*2+1
bne .1 bne .1
.8 clc .8 clc
@ -191,14 +195,14 @@ DumpNod >LDYA L.MSG3
.1 tax .1 tax
lda Nod.Table.hPath,x lda Nod.Table.hPath-2,x
beq .7 beq .7
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>PUSHYA >PUSHYA
>LDA.G Table.Index >LDA.G Table.Index
tax tax
lda Nod.Table.hFD,x lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPFDPtr >STYA ZPFDPtr
@ -208,7 +212,7 @@ DumpNod >LDYA L.MSG3
>LDA.G Table.Index >LDA.G Table.Index
tax tax
lda Nod.Table.hFD,x lda Nod.Table.hFD-2,x
>PUSHA >PUSHA
txa txa
>PUSHA >PUSHA
@ -218,7 +222,7 @@ DumpNod >LDYA L.MSG3
>SYSCALL printf >SYSCALL printf
.7 >INC.G Table.Index .7 >INC.G Table.Index
cmp #K.OF.MAX cmp #K.NOD.MAX+2
bne .1 bne .1
clc clc
@ -239,8 +243,8 @@ MSG2.B .AZ "%10u\r\n"
MSG2.C .AZ "n/a\r\n" MSG2.C .AZ "n/a\r\n"
MSG.SFLAGS .AS "BWRLNEIO" MSG.SFLAGS .AS "BWRLNEIO"
*-------------------------------------- *--------------------------------------
MSG3 .AZ "ID hFD Type Filepath" MSG3 .AZ "hNod hFD Type Filepath"
MSG4 .AZ "%03d $%h %5s %s\r\n" MSG4 .AZ "%03d $%h %5s %s\r\n"
FD.T.REG .AZ "REG" FD.T.REG .AZ "REG"
FD.T.DIR .AZ "DIR" FD.T.DIR .AZ "DIR"
FD.T.CDEV .AZ "CDEV" FD.T.CDEV .AZ "CDEV"

View File

@ -50,10 +50,11 @@ CS.INIT clc
CS.RUN >LDYA L.MSG0 CS.RUN >LDYA L.MSG0
>SYSCALL puts >SYSCALL puts
>LDA.G FILE.ID lda #1
>STA.G FILE.ID
.1 tax .1 tax
lda OF.Table.hFD,x lda OF.Table.hFD-1,x
beq .7 beq .7
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
@ -62,18 +63,18 @@ CS.RUN >LDYA L.MSG0
>LDA.G FILE.ID >LDA.G FILE.ID
tax tax
lda OF.Table.hPath,x lda OF.Table.hPath-1,x
bne .2 bne .2
lda OF.Table.hFD,x lda OF.Table.hFD-1,x
tax tax
lda Dev.Table,x lda Dev.Table-1,x
sta ZPFDPtr sta ZPFDPtr
clc clc
adc #S.FD.DEV adc #S.FD.DEV
tay tay
lda Dev.Table+1,x lda Dev.Table,x
sta ZPFDPtr+1 sta ZPFDPtr+1
adc /S.FD.DEV adc /S.FD.DEV
@ -89,7 +90,7 @@ CS.RUN >LDYA L.MSG0
>LDA.G FILE.ID >LDA.G FILE.ID
tax tax
lda OF.Table.hFD,x lda OF.Table.hFD-1,x
>PUSHA >PUSHA
txa txa
>PUSHA >PUSHA
@ -99,7 +100,7 @@ CS.RUN >LDYA L.MSG0
>SYSCALL printf >SYSCALL printf
.7 >INC.G FILE.ID .7 >INC.G FILE.ID
cmp #K.OF.MAX cmp #K.OF.MAX+1
bne .1 bne .1
.8 lda #0 tell TSKMGR that all done ok, but .8 lda #0 tell TSKMGR that all done ok, but

View File

@ -12,7 +12,7 @@ K.MEM.nALIGNm1 .EQ $F0
*K.MEM.nALIGNm1 .EQ $C0 *K.MEM.nALIGNm1 .EQ $C0
*-------------------------------------- *--------------------------------------
K.IRQDEV.MAX .EQ 4 K.IRQDEV.MAX .EQ 4
K.DEV.MAX .EQ 28 K.DEV.MAX .EQ 14
K.FLT.MAX .EQ 4 K.FLT.MAX .EQ 4
K.NOD.MAX .EQ 32 K.NOD.MAX .EQ 32
K.PS.MAX .EQ 32 K.PS.MAX .EQ 32

View File

@ -522,8 +522,11 @@ CORE.PSFree sta .10+1 Save PS ID
ldy #S.PS.hStdOut ldy #S.PS.hStdOut
lda (ZPPtr1),y lda (ZPPtr1),y
tax tax
lda OF.Table.hFD,x lda OF.Table.hFD-1,x
jsr K.GetMemPtr bit #1 hDev ?
bne .11
jsr K.GetMemPtr hNod, get FD
>STYA pFD >STYA pFD
lda (pFD) lda (pFD)
cmp #S.FD.T.PIPE cmp #S.FD.T.PIPE

View File

@ -11,14 +11,14 @@ AUTO 4,1
*\-------------------------------------- *\--------------------------------------
K.GetDevByName >STYA ZPPtr1 requested dev name K.GetDevByName >STYA ZPPtr1 requested dev name
ldx #0 ldx #1
.1 lda Dev.Table,x .1 lda Dev.Table-1,x
clc clc
adc #S.FD.DEV adc #S.FD.DEV
sta ZPPtr2 sta ZPPtr2
lda Dev.Table+1,x lda Dev.Table,x
beq K.GetDev.NODEV beq K.GetDev.NODEV
adc /S.FD.DEV adc /S.FD.DEV
sta ZPPtr2+1 sta ZPPtr2+1
@ -33,14 +33,14 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
ora (ZPPtr2),y Both char are 0 ? ora (ZPPtr2),y Both char are 0 ?
bne .2 no....loop bne .2 no....loop
.3 ldy Dev.Table,x .3 ldy Dev.Table-1,x
.4 lda Dev.Table+1,x .4 lda Dev.Table,x
clc clc
rts rts
.7 inx .7 inx
inx inx
cpx DevMgr.DevCnt cpx #K.DEV.MAX*2+1
bne .1 bne .1
K.GetDev.NODEV lda #MLI.E.NODEV K.GetDev.NODEV lda #MLI.E.NODEV
@ -59,9 +59,9 @@ K.GetDev.9 rts
K.GetDevStatus tax K.GetDevStatus tax
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
lda Dev.Table+1,x lda Dev.Table,x
beq K.GetDev.NODEV beq K.GetDev.NODEV
ldy Dev.Table,x ldy Dev.Table-1,x
>STYA pFD >STYA pFD
lda #S.IOCTL.STATCODE.GETDIB lda #S.IOCTL.STATCODE.GETDIB
@ -88,8 +88,8 @@ K.GetDevStatus.I
*\-------------------------------------- *\--------------------------------------
K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
ldx DevMgr.DevCnt ldx DevMgr.DevIdx
cpx #K.DEV.MAX cpx #K.DEV.MAX*2+1
beq .9 beq .9
ldy #$ff ldy #$ff
@ -109,10 +109,10 @@ K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
>STYA pFD >STYA pFD
>STYA .4+1 >STYA .4+1
ldx DevMgr.DevCnt ldx DevMgr.DevIdx
sta Dev.Table+1,x
tya
sta Dev.Table,x sta Dev.Table,x
tya
sta Dev.Table-1,x
ldy #S.FD.DEV-1 ldy #S.FD.DEV-1
@ -149,7 +149,7 @@ K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
inx inx
inx inx
cpx #K.IRQDEV.MAX*2 cpx #K.IRQDEV.MAX*2+1
bne .5 bne .5
.9 lda #E.OOH .9 lda #E.OOH
@ -161,9 +161,9 @@ K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
lda pFD+1 lda pFD+1
sta IRQ.Vectors+1,x sta IRQ.Vectors+1,x
.8 lda DevMgr.DevCnt .8 lda DevMgr.DevIdx
inc DevMgr.DevCnt inc DevMgr.DevIdx
inc DevMgr.DevCnt inc DevMgr.DevIdx
* clc * clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -140,8 +140,8 @@ Kernel.Init3 sta SETALTZP
>PUSHWI 0 Aux type >PUSHWI 0 Aux type
>PUSHBI S.FI.T.TXT >PUSHBI S.FI.T.TXT
>PUSHBI O.RDWR >PUSHBI O.RDWR
>LDYAI DEV.CONSOLE >LDYAI DEV.CONSOLE
>SYSCALL fopen >SYSCALL fopen
bcs * bcs *

View File

@ -45,9 +45,9 @@ IO.Open.I ldx #5 $/DEV/
jsr K.GetDevByName jsr K.GetDevByName
bcc .7 bcc .7
ldx #0 ldx #2
.10 lda Nod.Table.hPath,x .10 lda Nod.Table.hPath-2,x
beq .3 beq .3
jsr K.GetMemPtr jsr K.GetMemPtr
@ -62,13 +62,13 @@ IO.Open.I ldx #5 $/DEV/
cmp #0 end of string ? cmp #0 end of string ?
bne .2 bne .2
lda Nod.Table.hFD,x return hFD lda Nod.Table.hFD-2,x return hFD
sta IO.hFD sta IO.hFD
jsr K.GetMemPtr jsr K.GetMemPtr
bra .7 bra .7
.3 inx .3 inx
cpx #K.NOD.MAX cpx #K.NOD.MAX+2
bne .10 bne .10
lda #MLI.E.NODEV lda #MLI.E.NODEV
@ -274,21 +274,21 @@ IO.CLOSE.FD lda (pFD),y
.1 lda IO.hFD .1 lda IO.hFD
jmp K.FreeMem jmp K.FreeMem
*-------------------------------------- *--------------------------------------
IO.CLOSE.NOD ldx #0 IO.CLOSE.NOD ldx #2
lda IO.hFD lda IO.hFD
.1 cmp Nod.Table.hFD,x .1 cmp Nod.Table.hFD-2,x
bne .2 bne .2
stz Nod.Table.hFD,x stz Nod.Table.hFD-2,x
lda Nod.Table.hPath,x lda Nod.Table.hPath-2,x
stz Nod.Table.hPath,x stz Nod.Table.hPath-2,x
jmp K.FreeMem jmp K.FreeMem
.2 inx .2 inx
cpx #K.Nod.MAX cpx #K.Nod.MAX+2
bne .1 bne .1
rts rts
*/-------------------------------------- */--------------------------------------
@ -620,11 +620,11 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
* Y,A = ... * Y,A = ...
*\-------------------------------------- *\--------------------------------------
K.IOCTL tax K.IOCTL tax
lda Dev.Table+1,x lda Dev.Table,x
beq K.IOCTL.9 beq K.IOCTL.9
sta pFD+1 sta pFD+1
lda Dev.Table,x lda Dev.Table-1,x
sta pFD sta pFD
jsr K.IOCTL.GetPDrv jsr K.IOCTL.GetPDrv

View File

@ -748,8 +748,7 @@ MEM.NextCharPtr2
DevMgr.Stat .DA DevMgr.FreeMem DevMgr.Stat .DA DevMgr.FreeMem
DevMgr.Free .DA DevMgr.FreeMem DevMgr.Free .DA DevMgr.FreeMem
.DA DevMgr.HiMem .DA DevMgr.HiMem
DevMgr.DevCnt .DA #0 DevMgr.DevIdx .DA #1
DevMgr.NodCnt .DA #0
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/SYS/KERNEL.S.MEM SAVE USR/SRC/SYS/KERNEL.S.MEM

View File

@ -93,15 +93,15 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta .81+1 Save hFILE sta .81+1 Save hFILE
tax tax
lda OF.Table.hFD,x /DEV/NULL = 0! lda OF.Table.hFD-1,x
beq .9 beq .9
sta IO.hFD sta IO.hFD
ldy OF.Table.hPath,x if 0, its a hDEV ldy OF.Table.hPath-1,x if 0, its a hDEV
bne .10 bne .10
tax tax
lda Dev.Table+1,x ldy Dev.Table-1,x
ldy Dev.Table,x lda Dev.Table,x
bra .11 bra .11
.10 jsr K.GetMemPtr .10 jsr K.GetMemPtr

View File

@ -50,7 +50,7 @@ K.FStat jsr PFT.CheckNodeA
bcs K.FStat.9 bcs K.FStat.9
tax tax
lda OF.Table.hPath,x lda OF.Table.hPath-1,x
jsr K.GetMemPtr jsr K.GetMemPtr
jsr PFT.YAToMLIPATH jsr PFT.YAToMLIPATH
@ -210,13 +210,13 @@ K.MkNod >STYA ZPPtr1 pathname
>PULLW K.S.STAT+S.STAT.MODE >PULLW K.S.STAT+S.STAT.MODE
>PULLB K.S.STAT+S.STAT.DEV >PULLB K.S.STAT+S.STAT.DEV
K.MkNod.I ldx #0 K.MkNod.I ldx #2
.1 lda Nod.Table.hPath,x .1 lda Nod.Table.hPath-2,x
beq .2 beq .2
inx inx
cpx #K.Nod.MAX cpx #K.Nod.MAX+2
bne .1 bne .1
lda #E.OOH lda #E.OOH
@ -231,9 +231,9 @@ K.MkNod.I ldx #0
txa txa
.3 ldx #$ff SELF MODIFIED .3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath,x sta Nod.Table.hPath-2,x
lda K.S.STAT+S.STAT.DEV lda K.S.STAT+S.STAT.DEV
sta Nod.Table.hFD,x sta Nod.Table.hFD-2,x
txa hNODE txa hNODE

View File

@ -1107,12 +1107,12 @@ K.FClose jsr PFT.CheckNodeA
bcs .9 bcs .9
.1 ldx #$ff SELF MODIFIED .1 ldx #$ff SELF MODIFIED
stz OF.Table.hFD,x stz OF.Table.hFD-1,x
lda OF.Table.hPath,x lda OF.Table.hPath-1,x
beq .9 special files have no path beq .9 special files have no path
stz OF.Table.hPath,x stz OF.Table.hPath-1,x
jmp K.FreeMem discard filename jmp K.FreeMem discard filename
* clc * clc
@ -1376,13 +1376,13 @@ K.Rename jsr PFT.CheckPathYA
*-------------------------------------- *--------------------------------------
STDIO.NewHFile sta .4+1 Store hFD STDIO.NewHFile sta .4+1 Store hFD
ldx #0 ldx #1
.1 lda OF.Table.hFD,x .1 lda OF.Table.hFD-1,x
beq .2 beq .2
inx inx
cpx #K.OF.MAX cpx #K.OF.MAX+1
bne .1 bne .1
lda #E.OOH lda #E.OOH
@ -1408,13 +1408,13 @@ STDIO.NewHFile sta .4+1 Store hFD
txa txa
.3 ldx #$ff SELF MODIFIED .3 ldx #$ff SELF MODIFIED
sta OF.Table.hPath,x sta OF.Table.hPath-1,x
.4 lda #$ff SELF MODIFIED .4 lda #$ff SELF MODIFIED
sta OF.Table.hFD,x sta OF.Table.hFD-1,x
txa hFILE txa hFILE
* clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
STDIO.IOERR lda #MLI.E.IO STDIO.IOERR lda #MLI.E.IO

View File

@ -1175,11 +1175,11 @@ DRV.TERM.Title.ON
ldy #S.DCB.TTY.DEVID ldy #S.DCB.TTY.DEVID
lda (ZPDCBPtr),y lda (ZPDCBPtr),y
tax tax
lda Dev.Table,x lda Dev.Table-1,x
clc clc
adc #S.FD.DEV adc #S.FD.DEV
tay tay
lda Dev.Table+1,x lda Dev.Table,x
adc /S.FD.DEV adc /S.FD.DEV
>STYA ZPTmpWord >STYA ZPTmpWord