Kernel 0.92

This commit is contained in:
Rémy GIBERT 2018-11-19 08:43:00 +01:00
parent 3db734ce9e
commit 022f5921ac
23 changed files with 265 additions and 101 deletions

View File

@ -289,7 +289,10 @@ CS.END
OptionList >PSTR "ANSans"
OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine
*--------------------------------------
MSG.USAGE .AZ "Usage : CAT File1 [File2...]\r\n -A : Show All non printable caracters\r\n -N : Number all output lines\r\n -S : Suppress repeated empty output lines\r\n"
MSG.USAGE .AS "Usage : CAT File1 [File2...]\r\n"
.AS " -A : Show All non printable caracters\r\n"
.AS " -N : Number all output lines\r\n"
.AZ " -S : Suppress repeated empty output lines\r\n"
MSG.LINENUM .AZ "%5D:"
MSG.CTRLCHAR .AZ "[%S]"
*--------------------------------------
@ -347,5 +350,5 @@ DS.END
.ED
*--------------------------------------
MAN
SAVE USR/SRC/BIN/BIN/CAT.S
SAVE USR/SRC/BIN/CAT.S
ASM

View File

@ -9,9 +9,9 @@ AUTO 4,1
.INB INC/MACROS.I
.INB INC/MLI.I
.INB INC/A2OSX.I
.INB INC/KERNEL.I
*--------------------------------------
ZPPTR1 .EQ ZPBIN
ZPPTR2 .EQ ZPBIN+2
ZPFDPtr .EQ ZPBIN
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -38,24 +38,47 @@ L.MSG2.ERR .DA MSG2.ERR
L.MSG2 .DA MSG2
L.MSG2.C .DA MSG2.C
L.MSG2.B .DA MSG2.B
L.MSG3 .DA MSG3
L.MSG4 .DA MSG4
L.FD.T .DA FD.T.REG
.DA FD.T.DIR
.DA FD.T.CDEV
.DA FD.T.BDEV
.DA FD.T.LNK
.DA FD.T.DSOCK
.DA FD.T.SSOCK
.DA FD.T.PIPE
.DA 0
*--------------------------------------
CS.INIT clc
rts
*--------------------------------------
CS.RUN >LDYA L.MSG0
CS.RUN jsr DumpDev
bcs .9
>STZ.G Table.Index
jsr DumpNod
bcs .9
.8 lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
.9 rts
*--------------------------------------
DumpDev >LDYA L.MSG0
>SYSCALL puts
>LDA.G DEV.ID
.1 >SYSCALL GetDevByID
bcs .7
>LDA.G Table.Index
.1 tax
lda Dev.Table.hFD,x
beq .7
>STYA ZPPTR1 S.FD
txa
>STA.G DEV.FD
>SYSCALL GetMemPtr
>STYA ZPFDPtr S.FD
jsr DumpFD
jsr DumpDevFD
bcs .9
>PUSHEA.G DEV.DIB
@ -71,41 +94,40 @@ CS.RUN >LDYA L.MSG0
bcs .9
bra .7
.6 jsr DumpDIB
.6 jsr DumpDevDIB
.7 >INC.G DEV.ID
.7 >INC.G Table.Index
cmp #K.DEV.MAX
bne .1
.8 lda #0 tell TSKMGR that all done ok, but
sec we do not want to stay in memory
clc
.9 rts
*--------------------------------------
DumpFD ldy #S.FD.DEV.DRVPTR+1
>PUSHB (ZPPTR1),y
DumpDevFD ldy #S.FD.DEV.DRVPTR+1
>PUSHB (ZPFDPtr),y
dey
>PUSHB (ZPPTR1),y
>PUSHB (ZPFDPtr),y
lda #S.FD.DEV.NAME
clc
adc ZPPTR1
adc ZPFDPtr
tay
lda /S.FD.DEV.NAME
adc ZPPTR1+1
adc ZPFDPtr+1
>PUSHYA
>PUSHB.G DEV.FD
>PUSHB.G DEV.ID
>PUSHB.G Table.Index
>PUSHBI 6
>LDYA L.MSG1
>SYSCALL printf
rts
*--------------------------------------
DumpDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1
DumpDevDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1
>PUSHB.G DEV.DIB+S.DIB.VERSION
>PUSHEA.G DEV.DIB+S.DIB.IDS
@ -156,6 +178,46 @@ DumpDIB >PUSHB.G DEV.DIB+S.DIB.VERSION+1
.8 >SYSCALL printf
.9 rts
*--------------------------------------
DumpNod >LDYA L.MSG3
>SYSCALL puts
>LDA.G Table.Index
.1 tax
lda Nod.Table.hPath,x
beq .7
>SYSCALL GetMemPtr
>PUSHYA
>LDA.G Table.Index
tax
lda Nod.Table.hFD,x
>SYSCALL GetMemPtr
>STYA ZPFDPtr
lda (ZPFDPtr)
tax
>PUSHW L.FD.T,x
>LDA.G Table.Index
tax
lda Nod.Table.hFD,x
>PUSHA
txa
>PUSHA
>PUSHBI 6
>LDYA L.MSG4
>SYSCALL printf
.7 >INC.G Table.Index
cmp #K.OF.MAX
bne .1
clc
.9 rts
*--------------------------------------
CS.EVENT sec
rts
*--------------------------------------
@ -170,11 +232,22 @@ MSG2 .AZ "%s $%h/$%h %16S %03d.%03d "
MSG2.B .AZ "%10u\r\n"
MSG2.C .AZ "n/a\r\n"
MSG.SFLAGS .AS "BWRLNEIO"
*--------------------------------------
MSG3 .AZ "ID hFD Type Filepath"
MSG4 .AZ "%03d $%h %5s %s\r\n"
FD.T.REG .AZ "REG"
FD.T.DIR .AZ "DIR"
FD.T.CDEV .AZ "CDEV"
FD.T.BDEV .AZ "BDEV"
FD.T.LNK .AZ "LNK"
FD.T.DSOCK .AZ "DSOCK"
FD.T.SSOCK .AZ "SSOCK"
FD.T.PIPE .AZ "PIPE"
*--------------------------------------
.DUMMY
.OR 0
DS.START
DEV.ID .BS 1
Table.Index .BS 1
DEV.FD .BS 1
DEV.DIB .BS S.DIB
DEV.SFLAGS .BS 9

View File

@ -11,7 +11,7 @@ AUTO 4,1
.INB INC/A2OSX.I
.INB INC/KERNEL.I
*--------------------------------------
pPD .EQ ZPBIN
ZPFDPtr .EQ ZPBIN
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -54,24 +54,24 @@ CS.RUN >LDYA L.MSG0
.1 tax
lda Nod.Table.hPath,x
lda OF.Table.hPath,x
beq .7
>SYSCALL GetMemPtr
>PUSHYA
>LDA.G FILE.ID
tax
lda Nod.Table.hFD,x
lda OF.Table.hFD,x
>SYSCALL GetMemPtr
>STYA pFD
>STYA ZPFDPtr
lda (pFD)
lda (ZPFDPtr)
tax
>PUSHW L.FD.T,x
>LDA.G FILE.ID
tax
lda Nod.Table.hFD,x
lda OF.Table.hFD,x
>PUSHA
txa
>PUSHA
@ -81,7 +81,7 @@ CS.RUN >LDYA L.MSG0
>SYSCALL printf
.7 >INC.G FILE.ID
cmp #K.NOD.MAX
cmp #K.OF.MAX
bne .1
.8 lda #0 tell TSKMGR that all done ok, but
@ -114,5 +114,5 @@ DS.END
.ED
*--------------------------------------
MAN
SAVE USR/SRC/BIN/BIN/LSOF.S
SAVE USR/SRC/BIN/LSOF.S
ASM

View File

@ -330,6 +330,25 @@ MSG.FILE.OK .AZ "BMP Loaded, %D Bytes Read\r\n"
MSG.HEADER.OK .AZ "BMP Size : %D x %D pixels\r\n"
MSG.HEADER.KO .AZ "Invalid Input File Format\r\n"
MSG.DONE .AZ "All Done!!!\r\n"
*--------------------------------------
* LOWRES Patette : https://comp.sys.apple2.narkive.com/lTSrj2ZI/apple-ii-colour-rgb
*--------------------------------------
0 #000000
1 #e31e60
2 #604ebd
3 #ff44fd
4 #00a360
5 #9c9c9c
6 #14cffd
7 #d0c3ff
8 #607203
9 #ff6a3c
a #9c9c9c (yes it is the same as #5!)
b #ffa0d0
c #14f53c
d #d0dd8d
e #72ffd0
f #ffffff
*--------------------------------------
.DUMMY
.OR 0

View File

@ -10,6 +10,7 @@ K.IRQDEV.MAX .EQ 4
K.DEV.MAX .EQ 32
K.NOD.MAX .EQ 32
K.PS.MAX .EQ 32
K.OF.MAX .EQ 32
K.FLT.MAX .EQ 4
K.EVT.MAX .EQ 4
*--------------------------------------
@ -438,19 +439,19 @@ S.FD.DEV .EQ 16
*--------------------------------------
* S.FD.LNK
*--------------------------------------
S.FD.DSOCK.HSKT .EQ 2
S.FD.DSOCK.OPEN .EQ 3
S.FD.DSOCK.IOHANDLER .EQ 2
S.FD.DSOCK.OPEN .EQ 3
S.FD.DSOCK.CLOSE .EQ 4
S.FD.DSOCK.READ .EQ 5
S.FD.DSOCK.READ .EQ 5
S.FD.DSOCK.WRITE .EQ 6
S.FD.DSOCK.STATUS .EQ 7
*
S.FD.DSOCK .EQ 8
*--------------------------------------
S.FD.SSOCK.HSKT .EQ 2
S.FD.SSOCK.OPEN .EQ 3
S.FD.SSOCK.IOHANDLER .EQ 2
S.FD.SSOCK.OPEN .EQ 3
S.FD.SSOCK.CLOSE .EQ 4
S.FD.SSOCK.READ .EQ 5
S.FD.SSOCK.READ .EQ 5
S.FD.SSOCK.WRITE .EQ 6
S.FD.SSOCK.STATUS .EQ 7
*

View File

@ -110,6 +110,9 @@ PS.Table.hPS .EQ $0CA0 K.PS.MAX
PS.Table.Hits .EQ $0CC0 K.PS.MAX
PS.Table.Stats .EQ $0CE0 K.PS.MAX
*--------------------------------------
OF.Table.hPath .EQ $0D00 K.OF.MAX
OF.Table.hFD .EQ $0D20 K.OF.MAX
*--------------------------------------
Evt.Table .EQ $0D60 K.EVT.MAX*S.EVT.SIZE=4*8=32b
*--------------------------------------
Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b

View File

@ -36,7 +36,6 @@ SKT.Socket.DSOCK
>SYSCALL GetMem0
bcs .9
>STYA ZPTmpPtr1
stx FD.DSOCK+S.FD.DSOCK.HSKT
jsr SKT.Socket.FindFree
bcs .9
@ -61,7 +60,6 @@ SKT.Socket.STREAM
>SYSCALL GetMem0
bcs .9
>STYA ZPTmpPtr1
stx FD.SSOCK+S.FD.SSOCK.HSKT
jsr SKT.Socket.FindFree
bcs .9

View File

@ -3,7 +3,14 @@ PREFIX
AUTO 4,1
.LIST OFF
*--------------------------------------
TCP.IN jsr FRM.GetTargetSKT.TCPUDP
TCP.IN
* ldy #S.TCP.OPTIONS
* lda (ZPFrameInPtr),y
* cmp #S.TCP.OPTIONS.ACK
* bne .1
* >DEBUG
*.1
jsr FRM.GetTargetSKT.TCPUDP
jsr SKT.FindMatchingLocRem
bcs TCP.IN.JMP.CLOSED no socket, go discard

View File

@ -180,8 +180,8 @@ L.MSG.SKT.Dump .DA MSG.SKT.Dump
*--------------------------------------
LIB.LOAD ldx RefCount
bne .8
sta FD.DSOCK+S.FD.HANDLER
sta FD.DSOCK+S.FD.DSOCK.IOHANDLER
sta FD.SSOCK+S.FD.SSOCK.IOHANDLER
jsr ARP.CLEAR
@ -426,8 +426,8 @@ SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
.BS 2 S.SOCKADDR.PORT
*--------------------------------------
FD.DSOCK .DA #S.FD.T.DSOCK
.BS 1 S.FD.HANDLER
.BS 1 S.FD.DSOCK.HSKT
.DA #0 S.FD.HANDLER
.BS 1 S.FD.DSOCK.IOHANDLER
.DA #0 S.FD.DSOCK.OPEN
.DA #0 S.FD.DSOCK.CLOSE
.DA #LIBTCPIP.Recv
@ -440,8 +440,8 @@ FD.DSOCK .DA #S.FD.T.DSOCK
FD.DSOCK.SIZE .EQ *-FD.DSOCK
*--------------------------------------
FD.SSOCK .DA #S.FD.T.SSOCK
.BS 1 S.FD.HANDLER
.BS 1 S.FD.SSOCK.HSKT
.DA #0 S.FD.HANDLER
.BS 1 S.FD.SSOCK.IOHANDLER
.DA #0 S.FD.SSOCK.OPEN
.DA #0 S.FD.SSOCK.CLOSE
.DA #LIBTCPIP.Read

View File

@ -69,8 +69,9 @@ CS.RUN ldy #S.PS.ARGC
>STA.G hDEV
bra CS.RUN.LOOP0
.90 >LDYA L.MSG.USAGE
>SYSCALL puts
.90 >PUSHBI 0
>LDYA L.MSG.USAGE
>SYSCALL printf
lda #E.SYN
sec
.9 rts
@ -253,7 +254,10 @@ Wait.TimeOut sec
.9 rts
*--------------------------------------
CS.END
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>"
OptionList >PSTR "Ee"
OptionVars .DA #bCloseOnExit,#bCloseOnExit
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>\r\n"
.AZ " -E : Close DEV on exit\r\n"
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n"
MSG.DEBUG .AZ "{%h}"
*--------------------------------------
@ -277,6 +281,7 @@ ENV.TERM .AZ "TERM"
.OR 0
DS.START
hDEV .BS 1
bCloseOnExit .BS 1
TimeOut .BS 1
IAC.CMD .BS 1
IAC.SUBCMD .BS 1

View File

@ -46,6 +46,7 @@ L.MSG.TCPIPERR .DA MSG.TCPIPERR
L.MSG.SKTERR .DA MSG.SKTERR
L.MSG.ABORT .DA MSG.ABORT
L.MSG.INCOMING .DA MSG.INCOMING
L.MSG.EXECERR .DA MSG.EXECERR
L.NOD.Template .DA NOD.Template
L.CMD.Template .DA CMD.Template
.DA 0
@ -142,24 +143,28 @@ CS.RUN.SERVER >LDA.G hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept
bcs .8
>STA.G hClientSocket
pha
ldy #hSockets
ldx #CONN.MAX
.1 lda (pData),y
beq CS.RUN.CLIENT
iny
bne .2
pla
sta (pData),y
bra CS.RUN.CLIENT
.2 iny
dex
bne .1
>LDA.G hClientSocket
pla
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
.8 clc
rts
CS.RUN.CLIENT sta (pData),y
*--------------------------------------
CS.RUN.CLIENT >STA.G hClientSocket
>SYSCALL GetMemPtr
>STYA ZPSktPtr
@ -188,6 +193,7 @@ CS.RUN.CLIENT sta (pData),y
>LEA.G NodBuf
>SYSCALL mknod
bcs .9
>STA.G hClientFile
>PUSHEA.G NodBuf
>PUSHBI 2
@ -201,6 +207,13 @@ CS.RUN.CLIENT sta (pData),y
>PUSHBI S.PS.F.DUPENV
>LEA.G CmdBuf
>SYSCALL execl
bcc .8
>PUSHA
>PUSHBI 1
>LDYA L.MSG.EXECERR
>SYSCALL printf
.8 clc
.9 rts
@ -264,9 +277,10 @@ MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly"
MSG.SKTERR .AZ "TELNETD:Listen Error."
MSG.ABORT .AZ "TELNETD:User Aborted."
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"
CMD.Template .AZ "${A2OSX}SBIN/GETTY %s ${A2OSX}SBIN/LOGIN"
CMD.Template .AZ "${ROOT}SBIN/GETTY %s ${ROOT}SBIN/LOGIN"
*--------------------------------------
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1
@ -280,6 +294,7 @@ hSockets .BS CONN.MAX pData
SktIndex .BS 1
hSrvSocket .BS 1
hClientSocket .BS 1
hClientFile .BS 1
TimeOut .BS 1
NodBuf .BS 11
CmdBuf .BS 65

View File

@ -385,7 +385,7 @@ CORE.ScrSel and #$0F
stx A2osX.ASCREEN set active screen
>SYSCALL GetDevByID
jsr K.GetDevByID
bcs .8
phx

View File

@ -161,7 +161,6 @@ K.MKDev >STYA .1+1
inc DevMgr.DevCnt
clc
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DEV

View File

@ -595,7 +595,7 @@ K.ReadDir.ConvertTime
tay
lda ZPPtr3+1
adc #0
>SYSCALL PTime2Time
>SYSCALL PTime2Time BANK2
rts
*/-------------------------------------
* # CloseDir

View File

@ -204,7 +204,7 @@ K.FileSearch.YA >STYA .4+1
.5 >PUSHWI K.S.STAT
>LDYAI K.Buf256
>SYSCALL STAT -> BNK1
>SYSCALL STAT BANK1
bcs .1 Failed...retry next path...
lda K.S.STAT+S.STAT.P.TYPE

View File

@ -288,7 +288,7 @@ GO.EXIT.SaveY ldy #$ff
GO.EXIT.SaveX ldx #$ff
GO.EXIT.SaveA lda #$ff
plp
GO.EXIT.JMP jmp $FFFF Self Modified
GO.EXIT.JMP jmp $FFFF SELF MODIFIED
*--------------------------------------
* Called from ProDOS IRQ Manager (LCBNK1)
* A,X,Y, $FA->$FF Already Saved

View File

@ -102,9 +102,7 @@ Kernel.Init3 sta SETALTZP
sta IRQ.InKernel
jsr SysScrInit
jsr MemMgrInit
>LDYAI FD.NULL
>SYSCALL MKDev
@ -293,6 +291,7 @@ PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
>PUSHWI 0
>PUSHBI 0
>LDYAI DEV.SYS
>DEBUG
>SYSCALL fopen
bcs .9
@ -523,6 +522,11 @@ MemMgrInit >LDYAI Mem.MHiMem
dex
bpl .3
ldx #K.OF.MAX*2-1
.4 stz OF.Table.hPath,x
dex
bpl .4
rts
*--------------------------------------
* Setup AuxLC $FFFE->Kernel IRQ Handler

View File

@ -36,7 +36,7 @@ IO.Open.I ldx #5 $/DEV/
dex
bne .1
*--------------------------------------
* /DEV/xxxxxx (CDEV,BDEV,DSOCK,SSOCK,PIPE)
* /DEV/xxxxxx (CDEV,BDEV,LNK,DSOCK,SSOCK,PIPE)
*--------------------------------------
>LDYAI K.MLI.PATH+6 skip $/DEV/
@ -59,7 +59,7 @@ IO.Open.I ldx #5 $/DEV/
cmp #0 end of string ?
bne .2
txa return hFILE
lda Nod.Table.hFD,x return hFD
clc
rts
@ -72,11 +72,11 @@ IO.Open.I ldx #5 $/DEV/
rts no OF found
.7 >STYA pFD
phx DEVID/hFILE
phx DEVID
lda (pFD) #S.FD.T
tax
pla
pla hFILE
jmp (.8,x)
.8 .DA STDIO.IOERR REG
@ -269,11 +269,13 @@ IO.CLOSE.PIPE clc
* CC: Y,A = bytes read
* CS: A = EC
*\--------------------------------------
K.Read jsr K.GetMemPtr
K.Read pha save hFD
jsr K.GetMemPtr
>STYA pFD
IO.Read.I lda (pFD) #S.FD.T
tax
pla
jmp (.1,x)
.1 .DA IO.READ.REG
@ -298,11 +300,13 @@ IO.Read.I lda (pFD) #S.FD.T
* CC: Y,A = bytes written
* CS: A = EC
*\--------------------------------------
K.Write jsr K.GetMemPtr
K.Write pha save hFD
jsr K.GetMemPtr
>STYA pFD
IO.Write.I lda (pFD) #S.FD.T
tax
pla
jmp (.1,x)
.1 .DA IO.WRITE.REG
@ -351,20 +355,20 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
.HS 2C BIT ABS
*--------------------------------------
IO.READ.SSOCK ldy #S.FD.SSOCK.READ
IO.READ.SSOCK sta .1+1 hFD
ldy #S.FD.SSOCK.READ
>DEBUG
lda (pFD),y
tax Function Offset in LIB
ldy #S.FD.HANDLER
ldy #S.FD.SSOCK.IOHANDLER
lda (pFD),y
jsr K.GetMemPtr
>STYA .1
>STYA .2+1
ldy #S.FD.SSOCK.HSKT
lda (pFD),y
.1 lda #$ff SELF MODIFIED
.1 jmp $ffff
.2 jmp $FFFF SELF MODIFIED
*--------------------------------------
IO.READ.PIPE >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT

View File

@ -59,7 +59,7 @@ PFT.CheckPathYA stx .71+1 Save SYSCALL #
>LDYAI K.Buf256 pass full path to handler
.71 ldx #$ff SELF MODIFIED SYSCALL #
.72 jmp $ffff
.72 jmp $ffff SELF MODIFIED
.9 rts
@ -102,7 +102,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta .81+1 Save hFILE
tax
lda Nod.Table.hFD,x
lda OF.Table.hFD,x
beq .9
jsr K.GetMemPtr
@ -121,7 +121,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
ldx .80+1 restore SYSCALL #
lda .81+1 restore passed hFILE
.1 jmp $ffff
.1 jmp $ffff SELF MODIFIED
.8 lda (pFD) #S.FD.T
bne .80

View File

@ -73,7 +73,7 @@ PS.Exec jsr PS.CreateChild Child S.PS at ZPPtr3
sta (ZPPtr3),y
pla
>SYSCALL GetMemPtr
jsr K.GetMemPtr
jsr PS.Load
bcc .8

View File

@ -17,7 +17,7 @@ K.FStat jsr PFT.CheckNodeA
bcs K.FStat.9
tax
lda Nod.Table.hPath,x
lda OF.Table.hPath,x
jsr K.GetMemPtr
jsr PFT.YAToMLIPATH
@ -195,7 +195,7 @@ K.MkNod >STYA ZPPtr1 pathname
>LDYA ZPPtr1
ldx K.S.STAT+S.STAT.DEV
jsr STDIO.NewHFileYAX
jsr STAT.NewhNodeYAX
bcs K.MKDir.RTS
lda (pFD) #S.FD.T
@ -265,6 +265,41 @@ K.MKFIFO >LDYAI K.PIPE.SIZE
.99 rts
*--------------------------------------
STAT.NewhNodeYAX
pha
stx .4+1 Store hFD
ldx #0
.1 lda Nod.Table.hFD,x
beq .2
inx
cpx #K.Nod.MAX
bne .1
pla
lda #E.OOH
* sec
rts
.2 stx .3+1 Store hFILE
pla
jsr K.NewStr
bcs .9
txa
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath,x
.4 lda #$ff SELF MODIFIED
sta Nod.Table.hFD,x
txa hNODE
clc
.9 rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STAT
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -975,7 +975,6 @@ K.SScanF.Fwd tya Y=char count parsed
* CS : A = EC
*\--------------------------------------
K.FOpen jsr PFT.CheckPathYA
bcs .99
>PULLB K.Open.FLAGS
@ -985,11 +984,10 @@ K.FOpen jsr PFT.CheckPathYA
jsr IO.Open.I
bcs .9
sta .1+1 save hFD
tax
lda (pFD)
cmp
stx .1+1 save hFD
>LDYAI K.Buf256
jsr STDIO.NewHFileYAX
@ -1017,14 +1015,14 @@ K.FOpen jsr PFT.CheckPathYA
K.FClose jsr PFT.CheckNodeA
tax
lda Nod.Table.hPath,x
lda OF.Table.hPath,x
beq .9
stz Nod.Table.hPath,x
stz OF.Table.hPath,x
jsr K.FreeMem discard filename
lda Nod.Table.hFD,x
stz Nod.Table.hFD,x
lda OF.Table.hFD,x
stz OF.Table.hFD,x
jmp K.Close
.9 lda #E.INVH
@ -1284,11 +1282,11 @@ STDIO.NewHFileYAX
ldx #0
.1 lda Nod.Table.hFD,x
.1 lda OF.Table.hFD,x
beq .2
inx
cpx #K.NOD.MAX
cpx #K.OF.MAX
bne .1
pla
@ -1304,9 +1302,9 @@ STDIO.NewHFileYAX
txa
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath,x
sta OF.Table.hPath,x
.4 lda #$ff SELF MODIFIED
sta Nod.Table.hFD,x
sta OF.Table.hFD,x
txa hFILE

View File

@ -123,10 +123,10 @@ AT.INIT >LDYAI MSG.INIT
jsr PrintFYA
rts
*--------------------------------------
GO.WSCARD jmp $ffff Self Modifed
GO.OLDMLI jmp $ffff
GO.WSCARD jmp $ffff SELF MODIFIED
GO.OLDMLI jmp $ffff SELF MODIFIED
*--------------------------------------
.INB USR/SRC/BIN/X.PRINTF.S
.INB USR/SRC/X.PRINTF.S
*--------------------------------------
MSG.INIT .AZ "AppleTalk Driver For A2osX\n"
MSG.FAILED .AZ "AppleTalk Workstation Card Failed Power Up Diagnostics : EC=%h.\n"
@ -162,5 +162,5 @@ MLIGETPREFIX.PARAMS
.DA BUF.PREFIX
*--------------------------------------
MAN
SAVE USR/SRC/BIN/SYS/KM.APPLETALK.S
SAVE USR/SRC/SYS/KM.APPLETALK.S
ASM