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" OptionList >PSTR "ANSans"
OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine 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.LINENUM .AZ "%5D:"
MSG.CTRLCHAR .AZ "[%S]" MSG.CTRLCHAR .AZ "[%S]"
*-------------------------------------- *--------------------------------------
@@ -347,5 +350,5 @@ DS.END
.ED .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/BIN/CAT.S SAVE USR/SRC/BIN/CAT.S
ASM ASM

View File

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

View File

@@ -11,7 +11,7 @@ AUTO 4,1
.INB INC/A2OSX.I .INB INC/A2OSX.I
.INB INC/KERNEL.I .INB INC/KERNEL.I
*-------------------------------------- *--------------------------------------
pPD .EQ ZPBIN ZPFDPtr .EQ ZPBIN
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@@ -54,24 +54,24 @@ CS.RUN >LDYA L.MSG0
.1 tax .1 tax
lda Nod.Table.hPath,x lda OF.Table.hPath,x
beq .7 beq .7
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>PUSHYA >PUSHYA
>LDA.G FILE.ID >LDA.G FILE.ID
tax tax
lda Nod.Table.hFD,x lda OF.Table.hFD,x
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA pFD >STYA ZPFDPtr
lda (pFD) lda (ZPFDPtr)
tax tax
>PUSHW L.FD.T,x >PUSHW L.FD.T,x
>LDA.G FILE.ID >LDA.G FILE.ID
tax tax
lda Nod.Table.hFD,x lda OF.Table.hFD,x
>PUSHA >PUSHA
txa txa
>PUSHA >PUSHA
@@ -81,7 +81,7 @@ CS.RUN >LDYA L.MSG0
>SYSCALL printf >SYSCALL printf
.7 >INC.G FILE.ID .7 >INC.G FILE.ID
cmp #K.NOD.MAX cmp #K.OF.MAX
bne .1 bne .1
.8 lda #0 tell TSKMGR that all done ok, but .8 lda #0 tell TSKMGR that all done ok, but
@@ -114,5 +114,5 @@ DS.END
.ED .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/BIN/LSOF.S SAVE USR/SRC/BIN/LSOF.S
ASM 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.OK .AZ "BMP Size : %D x %D pixels\r\n"
MSG.HEADER.KO .AZ "Invalid Input File Format\r\n" MSG.HEADER.KO .AZ "Invalid Input File Format\r\n"
MSG.DONE .AZ "All Done!!!\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 .DUMMY
.OR 0 .OR 0

View File

@@ -10,6 +10,7 @@ K.IRQDEV.MAX .EQ 4
K.DEV.MAX .EQ 32 K.DEV.MAX .EQ 32
K.NOD.MAX .EQ 32 K.NOD.MAX .EQ 32
K.PS.MAX .EQ 32 K.PS.MAX .EQ 32
K.OF.MAX .EQ 32
K.FLT.MAX .EQ 4 K.FLT.MAX .EQ 4
K.EVT.MAX .EQ 4 K.EVT.MAX .EQ 4
*-------------------------------------- *--------------------------------------
@@ -438,19 +439,19 @@ S.FD.DEV .EQ 16
*-------------------------------------- *--------------------------------------
* S.FD.LNK * S.FD.LNK
*-------------------------------------- *--------------------------------------
S.FD.DSOCK.HSKT .EQ 2 S.FD.DSOCK.IOHANDLER .EQ 2
S.FD.DSOCK.OPEN .EQ 3 S.FD.DSOCK.OPEN .EQ 3
S.FD.DSOCK.CLOSE .EQ 4 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.WRITE .EQ 6
S.FD.DSOCK.STATUS .EQ 7 S.FD.DSOCK.STATUS .EQ 7
* *
S.FD.DSOCK .EQ 8 S.FD.DSOCK .EQ 8
*-------------------------------------- *--------------------------------------
S.FD.SSOCK.HSKT .EQ 2 S.FD.SSOCK.IOHANDLER .EQ 2
S.FD.SSOCK.OPEN .EQ 3 S.FD.SSOCK.OPEN .EQ 3
S.FD.SSOCK.CLOSE .EQ 4 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.WRITE .EQ 6
S.FD.SSOCK.STATUS .EQ 7 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.Hits .EQ $0CC0 K.PS.MAX
PS.Table.Stats .EQ $0CE0 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 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 Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b

View File

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

View File

@@ -3,7 +3,14 @@ PREFIX
AUTO 4,1 AUTO 4,1
.LIST OFF .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 jsr SKT.FindMatchingLocRem
bcs TCP.IN.JMP.CLOSED no socket, go discard 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 LIB.LOAD ldx RefCount
bne .8 bne .8
sta FD.DSOCK+S.FD.DSOCK.IOHANDLER
sta FD.DSOCK+S.FD.HANDLER sta FD.SSOCK+S.FD.SSOCK.IOHANDLER
jsr ARP.CLEAR jsr ARP.CLEAR
@@ -426,8 +426,8 @@ SA.REMOTE .DA #AF.INET S.SOCKADDR.AF
.BS 2 S.SOCKADDR.PORT .BS 2 S.SOCKADDR.PORT
*-------------------------------------- *--------------------------------------
FD.DSOCK .DA #S.FD.T.DSOCK FD.DSOCK .DA #S.FD.T.DSOCK
.BS 1 S.FD.HANDLER .DA #0 S.FD.HANDLER
.BS 1 S.FD.DSOCK.HSKT .BS 1 S.FD.DSOCK.IOHANDLER
.DA #0 S.FD.DSOCK.OPEN .DA #0 S.FD.DSOCK.OPEN
.DA #0 S.FD.DSOCK.CLOSE .DA #0 S.FD.DSOCK.CLOSE
.DA #LIBTCPIP.Recv .DA #LIBTCPIP.Recv
@@ -440,8 +440,8 @@ FD.DSOCK .DA #S.FD.T.DSOCK
FD.DSOCK.SIZE .EQ *-FD.DSOCK FD.DSOCK.SIZE .EQ *-FD.DSOCK
*-------------------------------------- *--------------------------------------
FD.SSOCK .DA #S.FD.T.SSOCK FD.SSOCK .DA #S.FD.T.SSOCK
.BS 1 S.FD.HANDLER .DA #0 S.FD.HANDLER
.BS 1 S.FD.SSOCK.HSKT .BS 1 S.FD.SSOCK.IOHANDLER
.DA #0 S.FD.SSOCK.OPEN .DA #0 S.FD.SSOCK.OPEN
.DA #0 S.FD.SSOCK.CLOSE .DA #0 S.FD.SSOCK.CLOSE
.DA #LIBTCPIP.Read .DA #LIBTCPIP.Read

View File

@@ -69,8 +69,9 @@ CS.RUN ldy #S.PS.ARGC
>STA.G hDEV >STA.G hDEV
bra CS.RUN.LOOP0 bra CS.RUN.LOOP0
.90 >LDYA L.MSG.USAGE .90 >PUSHBI 0
>SYSCALL puts >LDYA L.MSG.USAGE
>SYSCALL printf
lda #E.SYN lda #E.SYN
sec sec
.9 rts .9 rts
@@ -253,7 +254,10 @@ Wait.TimeOut sec
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.END 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.GREETINGS .AZ "\r\nA2osX-GeTTY %d.%d\r\n"
MSG.DEBUG .AZ "{%h}" MSG.DEBUG .AZ "{%h}"
*-------------------------------------- *--------------------------------------
@@ -277,6 +281,7 @@ ENV.TERM .AZ "TERM"
.OR 0 .OR 0
DS.START DS.START
hDEV .BS 1 hDEV .BS 1
bCloseOnExit .BS 1
TimeOut .BS 1 TimeOut .BS 1
IAC.CMD .BS 1 IAC.CMD .BS 1
IAC.SUBCMD .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.SKTERR .DA MSG.SKTERR
L.MSG.ABORT .DA MSG.ABORT L.MSG.ABORT .DA MSG.ABORT
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
@@ -142,24 +143,28 @@ CS.RUN.SERVER >LDA.G hSrvSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Accept >LIBCALL hLIBTCPIP,LIBTCPIP.Accept
bcs .8 bcs .8
>STA.G hClientSocket
pha
ldy #hSockets ldy #hSockets
ldx #CONN.MAX ldx #CONN.MAX
.1 lda (pData),y .1 lda (pData),y
beq CS.RUN.CLIENT bne .2
iny pla
sta (pData),y
bra CS.RUN.CLIENT
.2 iny
dex dex
bne .1 bne .1
>LDA.G hClientSocket pla
>LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown >LIBCALL hLIBTCPIP,LIBTCPIP.Shutdown
.8 clc .8 clc
rts rts
*--------------------------------------
CS.RUN.CLIENT sta (pData),y CS.RUN.CLIENT >STA.G hClientSocket
>SYSCALL GetMemPtr >SYSCALL GetMemPtr
>STYA ZPSktPtr >STYA ZPSktPtr
@@ -188,6 +193,7 @@ CS.RUN.CLIENT sta (pData),y
>LEA.G NodBuf >LEA.G NodBuf
>SYSCALL mknod >SYSCALL mknod
bcs .9 bcs .9
>STA.G hClientFile
>PUSHEA.G NodBuf >PUSHEA.G NodBuf
>PUSHBI 2 >PUSHBI 2
@@ -201,6 +207,13 @@ CS.RUN.CLIENT sta (pData),y
>PUSHBI S.PS.F.DUPENV >PUSHBI S.PS.F.DUPENV
>LEA.G CmdBuf >LEA.G CmdBuf
>SYSCALL execl >SYSCALL execl
bcc .8
>PUSHA
>PUSHBI 1
>LDYA L.MSG.EXECERR
>SYSCALL printf
.8 clc .8 clc
.9 rts .9 rts
@@ -264,9 +277,10 @@ MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly"
MSG.SKTERR .AZ "TELNETD:Listen Error." MSG.SKTERR .AZ "TELNETD:Listen Error."
MSG.ABORT .AZ "TELNETD:User Aborted." MSG.ABORT .AZ "TELNETD:User Aborted."
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 "${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 SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
.BS 1 .BS 1
@@ -280,6 +294,7 @@ hSockets .BS CONN.MAX pData
SktIndex .BS 1 SktIndex .BS 1
hSrvSocket .BS 1 hSrvSocket .BS 1
hClientSocket .BS 1 hClientSocket .BS 1
hClientFile .BS 1
TimeOut .BS 1 TimeOut .BS 1
NodBuf .BS 11 NodBuf .BS 11
CmdBuf .BS 65 CmdBuf .BS 65

View File

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

View File

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

View File

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

View File

@@ -204,7 +204,7 @@ K.FileSearch.YA >STYA .4+1
.5 >PUSHWI K.S.STAT .5 >PUSHWI K.S.STAT
>LDYAI K.Buf256 >LDYAI K.Buf256
>SYSCALL STAT -> BNK1 >SYSCALL STAT BANK1
bcs .1 Failed...retry next path... bcs .1 Failed...retry next path...
lda K.S.STAT+S.STAT.P.TYPE 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.SaveX ldx #$ff
GO.EXIT.SaveA lda #$ff GO.EXIT.SaveA lda #$ff
plp plp
GO.EXIT.JMP jmp $FFFF Self Modified GO.EXIT.JMP jmp $FFFF SELF MODIFIED
*-------------------------------------- *--------------------------------------
* Called from ProDOS IRQ Manager (LCBNK1) * Called from ProDOS IRQ Manager (LCBNK1)
* A,X,Y, $FA->$FF Already Saved * A,X,Y, $FA->$FF Already Saved

View File

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

View File

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

View File

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

View File

@@ -17,7 +17,7 @@ K.FStat jsr PFT.CheckNodeA
bcs K.FStat.9 bcs K.FStat.9
tax tax
lda Nod.Table.hPath,x lda OF.Table.hPath,x
jsr K.GetMemPtr jsr K.GetMemPtr
jsr PFT.YAToMLIPATH jsr PFT.YAToMLIPATH
@@ -195,7 +195,7 @@ K.MkNod >STYA ZPPtr1 pathname
>LDYA ZPPtr1 >LDYA ZPPtr1
ldx K.S.STAT+S.STAT.DEV ldx K.S.STAT+S.STAT.DEV
jsr STDIO.NewHFileYAX jsr STAT.NewhNodeYAX
bcs K.MKDir.RTS bcs K.MKDir.RTS
lda (pFD) #S.FD.T lda (pFD) #S.FD.T
@@ -265,6 +265,41 @@ K.MKFIFO >LDYAI K.PIPE.SIZE
.99 rts .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 MAN
SAVE USR/SRC/SYS/KERNEL.S.STAT SAVE USR/SRC/SYS/KERNEL.S.STAT
LOAD USR/SRC/SYS/KERNEL.S LOAD USR/SRC/SYS/KERNEL.S

View File

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

View File

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