Kernel 0.92+

This commit is contained in:
Rémy GIBERT 2019-02-28 16:45:33 +00:00
parent 0d729cd34e
commit ce366a221e
9 changed files with 60 additions and 72 deletions

Binary file not shown.

View File

@ -65,6 +65,8 @@ CS.RUN >LEA.G MemStat
>LDYA L.MSG0
>SYSCALL puts
>INC.G MEM.COUNT skip slot 0
CS.RUN.LOOP >LDA.G bSTOP
beq .1
@ -282,9 +284,9 @@ CS.QUIT clc
rts
*--------------------------------------
CS.END
MSG0 .AZ " # Flags PID REF PTR LEN BINPATH/DATA"
MSG0 .AZ "hMem Flags PID REF PTR LEN BINPATH/DATA"
MSG1.INV .AZ "\e[7m"
MSG1 .AZ "$%h %s %3d %3d $%H %5D "
MSG1 .AZ "$%h %s %3d %3d $%H %5D "
MSG1.BIN .AZ "{%s}\e[0m\r\n"
MSG1.STR .AZ "[%03d:%s]\e[0m\r\n"
MSG1.HEX .AZ "?HEX:%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h.%h%h\e[0m\r\n"

View File

@ -519,23 +519,7 @@ CORE.PSFree sta .10+1 Save PS ID
bcs .9
>STYA ZPPtr1
ldy #S.PS.hStdOut
lda (ZPPtr1),y
tax
lda OF.Table.hFD-1,x
bit #1 hDev ?
bne .11
jsr K.GetMemPtr hNod, get FD
>STYA pFD
lda (pFD)
cmp #S.FD.T.PIPE
bne .11
txa
>SYSCALL fclose
.11 ldy #S.PS.hSS
ldy #S.PS.hSS
jsr .8
ldy #S.PS.hDS
@ -556,7 +540,23 @@ CORE.PSFree sta .10+1 Save PS ID
.1 ldy #S.PS.hPREFIX
jsr .8
ldy #S.PS.hStdOut
lda (ZPPtr1),y
tax
lda OF.Table.hFD-1,x
bit #1 hDev ?
bne .10
jsr K.GetMemPtr hNod, get FD
>STYA pFD
lda (pFD)
cmp #S.FD.T.PIPE
bne .10
txa
>SYSCALL fclose
.10 lda #$ff Self Modified
ldx #0

View File

@ -7,7 +7,7 @@ AUTO 4,1
* ## RETURN VALUE
* CC = OK, CS = ERROR
* Y,A = FD
* X = DevID
* X = hDev
*\--------------------------------------
K.GetDevByName >STYA ZPPtr1 requested dev name

View File

@ -15,15 +15,15 @@ AUTO 4,1
* A = EC
*\--------------------------------------
K.OpenDir jsr PFT.CheckPathYA
bcs .99
bcs K.ReadDir.RTS
>LDYAI S.FD.DIR
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
bcs .99
bcs K.ReadDir.RTS
>STYA pFD
stx .8+1
stx IO.hFD
ldy #S.FD.T
lda #S.FD.T.DIR
@ -42,17 +42,12 @@ K.OpenDir jsr PFT.CheckPathYA
jsr IO.MLIOPEN
bcs .98
.8 lda #$ff Self Modified
.8 lda IO.hFD
jsr STDIO.NewHFile
bcc .99
bcc K.ReadDir.RTS
.98 pha save MLI error
lda .8+1
jsr K.Close
pla get back MLI error
sec
.99 rts
.98 jmp IO.OPEN.ERR
*/--------------------------------------
* # ReadDir
* ## C

View File

@ -141,7 +141,6 @@ Kernel.Init3 sta SETALTZP
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDWR
>LDYAI DEV.CONSOLE
>SYSCALL fopen
bcs *

View File

@ -17,7 +17,9 @@ AUTO 4,1
K.Open.FLAGS .BS 1
K.Open.TYPE .BS 1
K.Open.AUXTYPE .BS 2
IO.hDev .BS 1
IO.hFD .BS 1
IO.hFILE .BS 1
IO.Counter .BS 2
*--------------------------------------
K.Open jsr PFT.YAToMLIPATH
@ -65,7 +67,8 @@ IO.Open.I ldx #5 $/DEV/
lda Nod.Table.hFD-2,x return hFD
sta IO.hFD
jsr K.GetMemPtr
bra .7
bra .71
.3 inx
cpx #K.NOD.MAX+2
@ -75,12 +78,11 @@ IO.Open.I ldx #5 $/DEV/
* sec
rts no OF found
.7 >STYA pFD
phx DEVID/NODID
.7 stx IO.hDev
.71 >STYA pFD
lda (pFD) #S.FD.T
tax
pla
jmp (.8,x)
.8 .DA STDIO.IOERR REG
@ -118,14 +120,14 @@ IO.OPEN.REG.E >LDYAI S.FD.REG
bcs IO.OPEN.RTS
>STYA pFD
stx .8+1 save hFD
stx IO.hFD
* ldy #S.FD.T Done by GetMem0
* lda #S.FD.T.REG
* sta (pFD),y
jsr IO.MLIOPEN
bcs .9
bcs IO.OPEN.ERR
lda K.Open.FLAGS
bit #O.WRONLY
@ -141,10 +143,10 @@ IO.OPEN.REG.E >LDYAI S.FD.REG
bra .21
.11 >MLICALL MLIGETEOF
bcs .9
bcs IO.OPEN.ERR
>MLICALL MLISETMARK
.21 bcs .9
.21 bcs IO.OPEN.ERR
.20 lda K.Open.FLAGS
and #O.TEXT Text Mode ?
@ -155,29 +157,27 @@ IO.OPEN.REG.E >LDYAI S.FD.REG
lda #C.CR
sta K.MLI.PARAMS+3
>MLICALL MLINEWLINE
bcs .9
bcs IO.OPEN.ERR
.8 lda #$ff SELF MODIFIED
.8 lda IO.hFD
rts
.9 pha Save Error Code
lda .8+1
IO.OPEN.ERR pha Save Error Code
lda IO.hFD
jsr K.Close
pla
sec
rts
*--------------------------------------
IO.OPEN.CDEV
IO.OPEN.BDEV sta .1+1 A=DEVID
pha
jsr K.IOCTL.GetPDrv
IO.OPEN.BDEV jsr K.IOCTL.GetPDrv
ldx #IOCTL.OPEN
pla pass A=DEVID To Driver
lda IO.hDev
jsr K.IOCTL.pDrvJmp
bcs .9
.1 lda #$ff SELF MODIFIED
lda IO.hDev
.9 rts
*--------------------------------------
@ -254,6 +254,7 @@ IO.CLOSE.SSOCK
rts
*--------------------------------------
IO.CLOSE.PIPE ldy #S.FD.PIPE.S
lda (pFD),y
bmi .1 remote PS closed its end
@ -290,6 +291,9 @@ IO.CLOSE.NOD ldx #2
.2 inx
cpx #K.Nod.MAX+2
bne .1
lda #E.INVH
* sec
rts
*/--------------------------------------
* # read (BLOCKING)
@ -419,7 +423,7 @@ IO.READ.SSOCK ldy #S.FD.SSOCK.READ
* (pStack)+0 buf
*--------------------------------------
IO.READ.PIPE ldy #S.FD.PIPE.Used+1
lda (pFD),y Data ?
dey
ora (pFD),y
@ -436,7 +440,7 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
rts
.10 >PULLW .3+1 get buf
>PULLA get cnt lo
eor #$ff
sta IO.Counter

View File

@ -255,7 +255,7 @@ K.MKFIFO
* jsr K.pipe
* bcs .9
* sta K.S.STAT+S.STAT.DEV
* sta IO.hFD
* stz K.S.STAT+S.STAT.MODE
* stz K.S.STAT+S.STAT.MODE+1
@ -264,10 +264,7 @@ K.MKFIFO
* jsr K.MkNod.I
* bcc .9
* pha
* lda K.S.STAT+S.STAT.DEV
* jsr K.Close
* pla
* jmp IO.OPEN.ERR
sec
rts

View File

@ -1072,19 +1072,12 @@ K.FOpen jsr PFT.CheckPathYA
>PULLW K.Open.AUXTYPE
jsr IO.Open.I
bcs .9
bcs K.FClose.RTS
sta .1+1 save hFD
jsr STDIO.NewHFile
bcc .9
bcc K.FClose.RTS
pha save MLI error
.1 lda #$ff SELF MODIFIED
jsr K.Close
pla get back MLI error
sec
.9 rts
jmp IO.Open.ERR
K.FOpen.RET4 >RET 4
*/--------------------------------------
@ -1099,25 +1092,23 @@ K.FOpen.RET4 >RET 4
* ## RETURN VALUE
*\--------------------------------------
K.FClose jsr PFT.CheckNodeA
bcs .9
bcs K.FClose.RTS
sta .1+1 store hFile
jsr IO.Close.I
bcs .9
bcs K.FClose.RTS
.1 ldx #$ff SELF MODIFIED
stz OF.Table.hFD-1,x
lda OF.Table.hPath-1,x
beq .9 special files have no path
beq K.FClose.RTS special files have no path
stz OF.Table.hPath-1,x
jmp K.FreeMem discard filename
* clc
.9 rts
K.FClose.RTS rts
*/--------------------------------------
* # FRead (BLOCKING)
* Read bytes from file