diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 15dadf1c..dc3c4fff 100644 Binary files a/.Floppies/A2OSX.BUILD.po and b/.Floppies/A2OSX.BUILD.po differ diff --git a/BIN/MEMDUMP.S.txt b/BIN/MEMDUMP.S.txt index 3b34f7c2..ab13d5b2 100644 --- a/BIN/MEMDUMP.S.txt +++ b/BIN/MEMDUMP.S.txt @@ -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" diff --git a/SYS/KERNEL.S.CORE.txt b/SYS/KERNEL.S.CORE.txt index d1aab3ef..d5a204cf 100644 --- a/SYS/KERNEL.S.CORE.txt +++ b/SYS/KERNEL.S.CORE.txt @@ -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 diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index 99890e68..a1390d81 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -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 diff --git a/SYS/KERNEL.S.DIRENT.txt b/SYS/KERNEL.S.DIRENT.txt index aaf30bb3..e023fe69 100644 --- a/SYS/KERNEL.S.DIRENT.txt +++ b/SYS/KERNEL.S.DIRENT.txt @@ -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 diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index a27d5af8..a55cbdd8 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -141,7 +141,6 @@ Kernel.Init3 sta SETALTZP >PUSHBI S.FI.T.TXT >PUSHBI O.RDWR >LDYAI DEV.CONSOLE - >SYSCALL fopen bcs * diff --git a/SYS/KERNEL.S.IO.txt b/SYS/KERNEL.S.IO.txt index 48968bc6..7f6beeaf 100644 --- a/SYS/KERNEL.S.IO.txt +++ b/SYS/KERNEL.S.IO.txt @@ -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 diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index be701716..b9537ff8 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -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 diff --git a/SYS/KERNEL.S.STDIO.txt b/SYS/KERNEL.S.STDIO.txt index 1f923b99..553c8803 100644 --- a/SYS/KERNEL.S.STDIO.txt +++ b/SYS/KERNEL.S.STDIO.txt @@ -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