mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-28 21:29:42 +00:00
Kernel 0.9.1 : Code reorganization & move to CSTR
This commit is contained in:
parent
78cfec8668
commit
278104b43c
Binary file not shown.
Binary file not shown.
|
@ -46,7 +46,7 @@ CS.RUN >SYSCALL GetArgC
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx hFullPath
|
stx hFullPath
|
||||||
>SYSCALL MKDirYA
|
>SYSCALL MKDir.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
|
|
@ -379,7 +379,7 @@ CS.RUN.DIR jsr CS.RUN.DIR.MSG
|
||||||
.3 ldy #hDstFullPath
|
.3 ldy #hDstFullPath
|
||||||
jsr CS.RUN.GetPathY
|
jsr CS.RUN.GetPathY
|
||||||
|
|
||||||
>SYSCALL MKDirYA
|
>SYSCALL MKDir.YA
|
||||||
|
|
||||||
.4 jsr CS.RUN.CheckErr
|
.4 jsr CS.RUN.CheckErr
|
||||||
bcs CS.RUN.DIR.RTS
|
bcs CS.RUN.DIR.RTS
|
||||||
|
|
|
@ -202,7 +202,7 @@ SYS.STAT .EQ $34
|
||||||
SYS.OpenDirYA .EQ $38
|
SYS.OpenDirYA .EQ $38
|
||||||
SYS.ReadDirA .EQ $3A
|
SYS.ReadDirA .EQ $3A
|
||||||
SYS.CloseDirA .EQ $3C
|
SYS.CloseDirA .EQ $3C
|
||||||
SYS.MKDirYA .EQ $3E
|
SYS.MKDir.YA .EQ $3E
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* .EQ $40
|
* .EQ $40
|
||||||
SYS.SScanF .EQ $42
|
SYS.SScanF .EQ $42
|
||||||
|
@ -233,12 +233,12 @@ SYS.Sleep .EQ $6C
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.GetArgC .EQ $70
|
SYS.GetArgC .EQ $70
|
||||||
SYS.GetArg.A .EQ $72
|
SYS.GetArg.A .EQ $72
|
||||||
SYS.ExpandPStrYA .EQ $74
|
SYS.ExpandStr.YA .EQ $74
|
||||||
* .EQ $76
|
* .EQ $76
|
||||||
SYS.PutEnvYA .EQ $78
|
SYS.PutEnv.YA .EQ $78
|
||||||
SYS.SetEnv .EQ $7A
|
SYS.SetEnv .EQ $7A
|
||||||
SYS.GetEnvYA .EQ $7C
|
SYS.GetEnv.YA .EQ $7C
|
||||||
SYS.UnsetEnvYA .EQ $7E
|
SYS.UnsetEnv.YA .EQ $7E
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.GetDevByIDA .EQ $80
|
SYS.GetDevByIDA .EQ $80
|
||||||
SYS.GetDevByNameYA .EQ $82
|
SYS.GetDevByNameYA .EQ $82
|
||||||
|
|
|
@ -67,7 +67,7 @@ CS.INIT >SYSCALL GetArgC
|
||||||
>SYSCALL GetArg.A
|
>SYSCALL GetArg.A
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
|
|
@ -64,7 +64,7 @@ CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LDYA L.FILENAME
|
CS.RUN >LDYA L.FILENAME
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
txa
|
txa
|
||||||
ldy #hFileName
|
ldy #hFileName
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
|
@ -86,7 +86,7 @@ CS.RUN lda #0
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA L.SHELL
|
>LDYA L.SHELL
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx .3+1
|
stx .3+1
|
||||||
|
|
|
@ -63,7 +63,7 @@ Cmd.Normalize.Next
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.ExecYA stz bStartProc
|
Cmd.ExecYA stz bStartProc
|
||||||
|
|
||||||
Cmd.ExecYA.1 >SYSCALL ExpandPStrYA
|
Cmd.ExecYA.1 >SYSCALL ExpandStr.YA
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
stx Cmd.ExecYA.Exit.1+1
|
stx Cmd.ExecYA.Exit.1+1
|
||||||
|
|
|
@ -499,7 +499,7 @@ SetPWD ldy #S.PS.hPREFIX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintPrompt >LDYA L.ENV.PS1
|
PrintPrompt >LDYA L.ENV.PS1
|
||||||
>SYSCALL GetEnvYA
|
>SYSCALL GetEnvYA
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
phx
|
phx
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG.PROMPT
|
>LDYA L.MSG.PROMPT
|
||||||
|
|
|
@ -48,7 +48,7 @@ CFG.Read.HOSTNAME
|
||||||
stz CFG.hCfgPath
|
stz CFG.hCfgPath
|
||||||
|
|
||||||
>LDYA L.HOSTNAME
|
>LDYA L.HOSTNAME
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stx CFG.hCfgPath
|
stx CFG.hCfgPath
|
||||||
|
@ -103,7 +103,7 @@ CFG.Read.TCPIP.CONF
|
||||||
stz CFG.hCfgPath
|
stz CFG.hCfgPath
|
||||||
|
|
||||||
>LDYA L.TCPIP.CONF
|
>LDYA L.TCPIP.CONF
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stx CFG.hCfgPath
|
stx CFG.hCfgPath
|
||||||
|
|
|
@ -13,7 +13,7 @@ AUTO 6
|
||||||
K.LoadDrv.YA >STYA K.LoadDrv.CmdArray
|
K.LoadDrv.YA >STYA K.LoadDrv.CmdArray
|
||||||
|
|
||||||
>LDYAI ENV.DRV push ENVNAME=DRV
|
>LDYAI ENV.DRV push ENVNAME=DRV
|
||||||
>SYSCALL GetEnvYA get value for ENV=DRV
|
>SYSCALL GetEnv.YA get value for ENV=DRV
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHYA Push $DRV value
|
>PUSHYA Push $DRV value
|
||||||
|
@ -70,7 +70,7 @@ K.LoadDrv.CmdArray .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadLib.YA >STYA K.LoadLib.Name SAVE LIBname for K.FileSearch
|
K.LoadLib.YA >STYA K.LoadLib.Name SAVE LIBname for K.FileSearch
|
||||||
>LDYAI ENV.LIB push ENVNAME=LIB
|
>LDYAI ENV.LIB push ENVNAME=LIB
|
||||||
>SYSCALL GetEnvYA get value for ENV=LIB
|
>SYSCALL GetEnv.YA get value for ENV=LIB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHYA Push $LIB value
|
>PUSHYA Push $LIB value
|
||||||
|
|
|
@ -93,125 +93,6 @@ K.GetDevStatusA jsr K.GetDevByIDA
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
ldx #DEVMGR.STATUS
|
ldx #DEVMGR.STATUS
|
||||||
jmp (ZPPtr1)
|
jmp (ZPPtr1)
|
||||||
*/--------------------------------------
|
|
||||||
* # MkNodYA
|
|
||||||
* return a hFile for a given Device Name
|
|
||||||
* ## IN:
|
|
||||||
* Y,A=DevName
|
|
||||||
* ## OUT:
|
|
||||||
* CC = OK, CS = ERROR
|
|
||||||
* A = hFILE
|
|
||||||
*\--------------------------------------
|
|
||||||
K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
|
|
||||||
bcs .9
|
|
||||||
>STYA pDev
|
|
||||||
stx .1+1
|
|
||||||
|
|
||||||
ldy #S.DEV.S
|
|
||||||
lda (pDev),y
|
|
||||||
bit #S.DEV.S.BLOCK
|
|
||||||
bne .99
|
|
||||||
|
|
||||||
txa Pass DEV.ID to OPEN
|
|
||||||
ldx #DEVMGR.OPEN
|
|
||||||
jsr pDevJmp
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYAI S.NODE.DEV
|
|
||||||
jsr K.GetMem0YA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr3 Ptr3=S.NODE
|
|
||||||
|
|
||||||
ldy #S.NODE.T
|
|
||||||
lda #S.NODE.T.CDEV
|
|
||||||
sta (ZPPtr3),y
|
|
||||||
|
|
||||||
ldy #S.NODE.DEV.ID
|
|
||||||
|
|
||||||
.1 lda #$ff Self Modified
|
|
||||||
sta (ZPPtr3),y
|
|
||||||
|
|
||||||
ldy #S.NODE.DEV.JMP
|
|
||||||
lda pDev
|
|
||||||
sta (ZPPtr3),y
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda pDev+1
|
|
||||||
sta (ZPPtr3),y
|
|
||||||
txa
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.99 lda #MLI.ERR.IO
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # MkNodA
|
|
||||||
* return a hFile for a given Socket
|
|
||||||
* ## IN:
|
|
||||||
* A=hSocket
|
|
||||||
* ## OUT:
|
|
||||||
* CC = OK, CS = ERROR
|
|
||||||
* X = hFILE
|
|
||||||
* Y,A = pFILE
|
|
||||||
*\--------------------------------------
|
|
||||||
K.MkNodA sta .1+1
|
|
||||||
>LDYAI S.NODE.SSOCK
|
|
||||||
jsr K.GetMem0YA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
ldy #S.NODE.T
|
|
||||||
lda #S.NODE.T.SSOCK
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
|
|
||||||
ldy #S.NODE.SSOCK.HSKT
|
|
||||||
.1 lda #$ff
|
|
||||||
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
>LDYA ZPPtr1
|
|
||||||
.9 rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # MKFIFO
|
|
||||||
* return a S.FILE to a new FIFO
|
|
||||||
* ## IN:
|
|
||||||
* ## OUT:
|
|
||||||
* CC = OK, CS = ERROR
|
|
||||||
* A = hFILE
|
|
||||||
*\--------------------------------------
|
|
||||||
K.MKFIFO >LDYAI 256
|
|
||||||
jsr K.GetMemYA
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
stx .1+1 save FIFO buffer
|
|
||||||
|
|
||||||
>LDYAI S.NODE.FIFO
|
|
||||||
jsr K.GetMem0YA
|
|
||||||
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
ldy #S.NODE.T
|
|
||||||
lda #S.NODE.T.FIFO
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
|
|
||||||
iny S.NODE.FIFO.hMem
|
|
||||||
.1 lda #$ff Self Modified
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
txa
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 pha save error code
|
|
||||||
lda .1+1 get back FIFO buffer
|
|
||||||
jsr K.FreeMemA
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
|
|
||||||
.99 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||||
|
|
|
@ -6,7 +6,7 @@ AUTO 6
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # OpenDirYA
|
* # OpenDirYA
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PATH (PSTR)
|
* Y,A = PATH (C-String)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* CC : success
|
* CC : success
|
||||||
* A = hDIR
|
* A = hDIR
|
||||||
|
@ -24,13 +24,9 @@ K.OpenDirYA jsr PFT.CheckPathYA
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx K.ReadDirA.hDir
|
stx K.ReadDirA.hDir
|
||||||
|
|
||||||
lda (ZPPtr2)
|
ldy #1
|
||||||
cmp #1 One char ?
|
lda (ZPPtr2),y One char ?
|
||||||
bne .7 No, Go open dir....
|
beq .8 No, Go open dir....
|
||||||
tay Y=1
|
|
||||||
lda (ZPPtr2),y
|
|
||||||
cmp #'/' Root required ?
|
|
||||||
beq .8 Yes, Go for ONLINE Call (S.DIR.PRODOS.REF=0)
|
|
||||||
|
|
||||||
.7 >MLICALL MLIGETFILEINFO
|
.7 >MLICALL MLIGETFILEINFO
|
||||||
bcs .98 file/dir does not exists....quit
|
bcs .98 file/dir does not exists....quit
|
||||||
|
@ -147,7 +143,6 @@ K.ReadDirA.ROOT ldy #S.NODE.DIR.FC did we already returned something ?
|
||||||
beq .88
|
beq .88
|
||||||
|
|
||||||
tax
|
tax
|
||||||
jsr K.ReadDirA.AddToBuf
|
|
||||||
inc
|
inc
|
||||||
sta K.MLI.PATH
|
sta K.MLI.PATH
|
||||||
lda #'/'
|
lda #'/'
|
||||||
|
@ -161,6 +156,9 @@ K.ReadDirA.ROOT ldy #S.NODE.DIR.FC did we already returned something ?
|
||||||
dex
|
dex
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
|
txa Add ending 0 for C String
|
||||||
|
jsr K.ReadDirA.AddToBuf
|
||||||
|
|
||||||
jsr K.ReadDirA.ClrStat
|
jsr K.ReadDirA.ClrStat
|
||||||
|
|
||||||
lda (ZPPtr2)
|
lda (ZPPtr2)
|
||||||
|
@ -436,13 +434,13 @@ K.ReadDirA.ADD. ldx #1 filename="1."
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
K.ReadDirA.ADD..
|
K.ReadDirA.ADD..
|
||||||
ldx #2 filename="2.."
|
ldx #2 filename="2.."
|
||||||
txa
|
|
||||||
jsr K.ReadDirA.AddToBuf Add LEN
|
|
||||||
lda #'.'
|
lda #'.'
|
||||||
|
|
||||||
.1 jsr K.ReadDirA.AddToBuf Add X dot(s)
|
.1 jsr K.ReadDirA.AddToBuf Add X dot(s)
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
txa
|
||||||
|
jsr K.ReadDirA.AddToBuf Add Ending 0
|
||||||
|
|
||||||
jsr K.ReadDirA.ClrStat
|
jsr K.ReadDirA.ClrStat
|
||||||
|
|
||||||
|
@ -559,7 +557,6 @@ K.ReadDirA.AddFNToBuf
|
||||||
.7 lda (ZPPtr3)
|
.7 lda (ZPPtr3)
|
||||||
and #$0F get filename len
|
and #$0F get filename len
|
||||||
tax
|
tax
|
||||||
jsr K.ReadDirA.AddToBuf
|
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
|
@ -568,6 +565,10 @@ K.ReadDirA.AddFNToBuf
|
||||||
iny
|
iny
|
||||||
dex
|
dex
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
|
txa
|
||||||
|
jsr K.ReadDirA.AddToBuf
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDirA.AddToBuf
|
K.ReadDirA.AddToBuf
|
||||||
|
@ -599,34 +600,6 @@ ADDF.DST .DA #S.STAT.P.TYPE,#S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||||||
*\-------------------------------------
|
*\-------------------------------------
|
||||||
K.CloseDirA .EQ K.FCloseA
|
K.CloseDirA .EQ K.FCloseA
|
||||||
K.CloseDirA.1 .EQ K.FCloseA.1
|
K.CloseDirA.1 .EQ K.FCloseA.1
|
||||||
*/-------------------------------------
|
|
||||||
* # MKDirYA
|
|
||||||
* ## In:
|
|
||||||
* Y,A = DIR name
|
|
||||||
* ## Out:
|
|
||||||
* CC : success
|
|
||||||
* CS : error
|
|
||||||
* A = EC
|
|
||||||
*\-------------------------------------
|
|
||||||
K.MKDirYA jsr PFT.CheckPathYA
|
|
||||||
>STYA K.MLI.PARAMS+1
|
|
||||||
lda #S.FILEINFO.ACCESS.FULL
|
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.ACCESS
|
|
||||||
lda #S.FILEINFO.TYPE.DIR
|
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.TYPE
|
|
||||||
lda #S.FILEINFO.STORETYPE.DIR
|
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.STORETYPE
|
|
||||||
|
|
||||||
* jsr DATETIME
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
.1 lda DATELO,x
|
|
||||||
sta K.MLI.PARAMS+8,x
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
>MLICALL MLICREATE
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
||||||
|
|
|
@ -34,9 +34,9 @@ K.FileSearch >PULLW ZPPtr2 DstBuf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandStr.YA
|
||||||
>PULLYA Get Search list
|
>PULLYA Get Search list
|
||||||
>SYSCALL ExpandPStrYA Expand it (SYSCALL to BNK1)
|
>SYSCALL ExpandStr.YA Expand it (SYSCALL to BNK1)
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stx .98+1
|
stx .98+1
|
||||||
|
@ -237,7 +237,6 @@ K.SaveFile jsr K.FOpen
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
|
||||||
.9 pha
|
.9 pha
|
||||||
>POP 4 Discard SrcPtr & SrcLen
|
>POP 4 Discard SrcPtr & SrcLen
|
||||||
pla
|
pla
|
||||||
|
@ -260,15 +259,6 @@ K.ChTyp jsr PFT.CheckPathSTK
|
||||||
>MLICALL MLISETFILEINFO
|
>MLICALL MLISETFILEINFO
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ChMod
|
|
||||||
* ## In:
|
|
||||||
* PUSHW = MODE
|
|
||||||
* PUSHW = PATH
|
|
||||||
*\--------------------------------------
|
|
||||||
K.ChMod
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # ChOwn
|
* # ChOwn
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = UID
|
* PUSHW = UID
|
||||||
|
|
|
@ -145,7 +145,7 @@ Kernel.Init3 sta SETALTZP
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
|
|
||||||
>LDYAI STARTUP.CMDLINE
|
>LDYAI STARTUP.CMDLINE
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandStr.YA
|
||||||
phx Save Expanded CMDLINE for discard
|
phx Save Expanded CMDLINE for discard
|
||||||
>SYSCALL CreateProcessYA
|
>SYSCALL CreateProcessYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -794,15 +794,15 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYAI I.ENV.PATH
|
>LDYAI I.ENV.PATH
|
||||||
>SYSCALL PutEnvYA
|
>SYSCALL PutEnv.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYAI I.ENV.LIB
|
>LDYAI I.ENV.LIB
|
||||||
>SYSCALL PutEnvYA
|
>SYSCALL PutEnv.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYAI I.ENV.DRV
|
>LDYAI I.ENV.DRV
|
||||||
>SYSCALL PutEnvYA
|
>SYSCALL PutEnv.YA
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 Global Page...\n"
|
MSG.Init2 >CSTR "A2osX[Stage2]:Init\nInstalling KERNEL...\n - $BE00 Global Page...\n"
|
||||||
|
|
|
@ -42,7 +42,7 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
||||||
.DA K.OpenDirYA
|
.DA K.OpenDirYA
|
||||||
.DA K.ReadDirA
|
.DA K.ReadDirA
|
||||||
.DA K.CloseDirA
|
.DA K.CloseDirA
|
||||||
.DA K.MKDirYA
|
.DA K.MKDir.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Bank 2
|
* Bank 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -22,7 +22,7 @@ K.PFTRemove
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PFT.CheckPath___
|
* PFT.CheckPath___
|
||||||
* In :
|
* In :
|
||||||
* PULLW/Y,A = PATH (PSTR)
|
* PULLW/Y,A = PATH (C-String)
|
||||||
* Out :
|
* Out :
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PFT.CheckPathSTK
|
PFT.CheckPathSTK
|
||||||
|
@ -38,23 +38,29 @@ PFT.CheckPathYA
|
||||||
>LDYAI FltMgr.Table
|
>LDYAI FltMgr.Table
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
.1 lda (ZPPtr2) Get Filter Len
|
.1 lda (ZPPtr2) Get Filter char....
|
||||||
beq .9 End Of Table, Exit
|
beq .9 End Of Table, Exit
|
||||||
tay
|
|
||||||
lda (ZPPtr1),y is there a "/" at this point in SRC path?
|
|
||||||
cmp #'/'
|
|
||||||
bne .8
|
|
||||||
|
|
||||||
.2 lda (ZPPtr1),y
|
ldy #0
|
||||||
|
|
||||||
|
.2 lda (ZPPtr2),y
|
||||||
|
beq .3 end of filter string....
|
||||||
|
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq .8
|
||||||
cmp (ZPPtr2),y
|
cmp (ZPPtr2),y
|
||||||
bne .8
|
bne .8
|
||||||
dey
|
iny
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
|
.3 lda (ZPPtr1),y
|
||||||
|
cmp #'/'
|
||||||
|
bne .8
|
||||||
|
|
||||||
ldy #S.PFT.HANDLER
|
ldy #S.PFT.HANDLER
|
||||||
lda (ZPPtr2),y get hLib
|
lda (ZPPtr2),y get hLib
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
>STYA .3+1
|
>STYA .7+1
|
||||||
|
|
||||||
lda S.PFT.SYSCALL getback #SYSCALL
|
lda S.PFT.SYSCALL getback #SYSCALL
|
||||||
sec
|
sec
|
||||||
|
@ -65,7 +71,7 @@ PFT.CheckPathYA
|
||||||
pla
|
pla
|
||||||
|
|
||||||
>LDYA ZPPtr1 restore passed params
|
>LDYA ZPPtr1 restore passed params
|
||||||
.3 jmp $ffff
|
.7 jmp $ffff
|
||||||
|
|
||||||
|
|
||||||
.8 lda ZPPtr2
|
.8 lda ZPPtr2
|
||||||
|
|
|
@ -72,6 +72,162 @@ K.Stat.SRC .DA #S.FILEINFO.TYPE
|
||||||
K.Stat.DST .DA #S.STAT.P.TYPE
|
K.Stat.DST .DA #S.STAT.P.TYPE
|
||||||
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
||||||
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||||||
|
*/-------------------------------------
|
||||||
|
* # MKDir.YA
|
||||||
|
* ## In:
|
||||||
|
* Y,A = DIR name
|
||||||
|
* ## Out:
|
||||||
|
* CC : success
|
||||||
|
* CS : error
|
||||||
|
* A = EC
|
||||||
|
*\-------------------------------------
|
||||||
|
K.MKDir.YA jsr PFT.CheckPathYA
|
||||||
|
>STYA K.MLI.PARAMS+1
|
||||||
|
lda #S.FILEINFO.ACCESS.FULL
|
||||||
|
sta K.MLI.PARAMS+S.FILEINFO.ACCESS
|
||||||
|
lda #S.FILEINFO.TYPE.DIR
|
||||||
|
sta K.MLI.PARAMS+S.FILEINFO.TYPE
|
||||||
|
lda #S.FILEINFO.STORETYPE.DIR
|
||||||
|
sta K.MLI.PARAMS+S.FILEINFO.STORETYPE
|
||||||
|
|
||||||
|
* jsr DATETIME
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
.1 lda DATELO,x
|
||||||
|
sta K.MLI.PARAMS+8,x
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>MLICALL MLICREATE
|
||||||
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # MkNodYA
|
||||||
|
* return a hFile for a given Device Name
|
||||||
|
* ## IN:
|
||||||
|
* Y,A=DevName
|
||||||
|
* ## OUT:
|
||||||
|
* CC = OK, CS = ERROR
|
||||||
|
* A = hFILE
|
||||||
|
*\--------------------------------------
|
||||||
|
K.MkNodYA jsr K.GetDevByNameYA Ptr1=NAME
|
||||||
|
bcs .9
|
||||||
|
>STYA pDev
|
||||||
|
stx .1+1
|
||||||
|
|
||||||
|
ldy #S.DEV.S
|
||||||
|
lda (pDev),y
|
||||||
|
bit #S.DEV.S.BLOCK
|
||||||
|
bne .99
|
||||||
|
|
||||||
|
txa Pass DEV.ID to OPEN
|
||||||
|
ldx #DEVMGR.OPEN
|
||||||
|
jsr pDevJmp
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYAI S.NODE.DEV
|
||||||
|
jsr K.GetMem0YA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPPtr3 Ptr3=S.NODE
|
||||||
|
|
||||||
|
ldy #S.NODE.T
|
||||||
|
lda #S.NODE.T.CDEV
|
||||||
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
|
ldy #S.NODE.DEV.ID
|
||||||
|
|
||||||
|
.1 lda #$ff Self Modified
|
||||||
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
|
ldy #S.NODE.DEV.JMP
|
||||||
|
lda pDev
|
||||||
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda pDev+1
|
||||||
|
sta (ZPPtr3),y
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.99 lda #MLI.ERR.IO
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # MkNodA
|
||||||
|
* return a hFile for a given Socket
|
||||||
|
* ## IN:
|
||||||
|
* A=hSocket
|
||||||
|
* ## OUT:
|
||||||
|
* CC = OK, CS = ERROR
|
||||||
|
* X = hFILE
|
||||||
|
* Y,A = pFILE
|
||||||
|
*\--------------------------------------
|
||||||
|
K.MkNodA sta .1+1
|
||||||
|
>LDYAI S.NODE.SSOCK
|
||||||
|
jsr K.GetMem0YA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
ldy #S.NODE.T
|
||||||
|
lda #S.NODE.T.SSOCK
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
ldy #S.NODE.SSOCK.HSKT
|
||||||
|
.1 lda #$ff
|
||||||
|
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
>LDYA ZPPtr1
|
||||||
|
.9 rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # MKFIFO
|
||||||
|
* return a S.FILE to a new FIFO
|
||||||
|
* ## IN:
|
||||||
|
* ## OUT:
|
||||||
|
* CC = OK, CS = ERROR
|
||||||
|
* A = hFILE
|
||||||
|
*\--------------------------------------
|
||||||
|
K.MKFIFO >LDYAI 256
|
||||||
|
jsr K.GetMemYA
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
stx .1+1 save FIFO buffer
|
||||||
|
|
||||||
|
>LDYAI S.NODE.FIFO
|
||||||
|
jsr K.GetMem0YA
|
||||||
|
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
ldy #S.NODE.T
|
||||||
|
lda #S.NODE.T.FIFO
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
iny S.NODE.FIFO.hMem
|
||||||
|
.1 lda #$ff Self Modified
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
txa
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 pha save error code
|
||||||
|
lda .1+1 get back FIFO buffer
|
||||||
|
jsr K.FreeMemA
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
|
||||||
|
.99 rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # ChMod
|
||||||
|
* ## In:
|
||||||
|
* PUSHW = MODE
|
||||||
|
* PUSHW = PATH
|
||||||
|
*\--------------------------------------
|
||||||
|
K.ChMod
|
||||||
|
sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STAT
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.STAT
|
||||||
|
|
|
@ -448,11 +448,11 @@ K.PutCharA.1 sta K.PutC.Node
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.PutCharA.Jmp jmp (.1,x)
|
K.PutCharA.Jmp jmp (.1,x)
|
||||||
.1 .DA K.PutCharA.REG
|
.1 .DA K.PutCharA.REG
|
||||||
.DA K.CHR.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA K.PutCharA.CDEV
|
.DA K.PutCharA.CDEV
|
||||||
.DA K.CHR.IOERR BDEV
|
.DA STDIO.IOERR BDEV
|
||||||
.DA K.CHR.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA K.CHR.IOERR DSOCK
|
.DA STDIO.IOERR DSOCK
|
||||||
.DA K.PutCharA.SSOCK
|
.DA K.PutCharA.SSOCK
|
||||||
.DA K.PutCharA.FIFO
|
.DA K.PutCharA.FIFO
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -551,11 +551,11 @@ K.GetCA sta K.PutC.Node
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA K.GetC.REG
|
.1 .DA K.GetC.REG
|
||||||
.DA K.CHR.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA K.GetC.CDEV
|
.DA K.GetC.CDEV
|
||||||
.DA K.CHR.IOERR BDEV
|
.DA STDIO.IOERR BDEV
|
||||||
.DA K.CHR.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
.DA K.CHR.IOERR DSOCK
|
.DA STDIO.IOERR DSOCK
|
||||||
.DA K.GetC.SSOCK
|
.DA K.GetC.SSOCK
|
||||||
.DA K.GetC.FIFO
|
.DA K.GetC.FIFO
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -625,7 +625,7 @@ K.FGetS
|
||||||
K.GetSYA
|
K.GetSYA
|
||||||
bra *
|
bra *
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.CHR.IOERR lda #MLI.ERR.IO
|
STDIO.IOERR lda #MLI.ERR.IO
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
|
|
@ -30,9 +30,7 @@ A2osX.D1 .PH $D000
|
||||||
.DA #RRAMWRAMBNK1
|
.DA #RRAMWRAMBNK1
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STAT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STAT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.TIME
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.BIN
|
.INB /A2OSX.SRC/SYS/KERNEL.S.BIN
|
||||||
.EP
|
.EP
|
||||||
|
@ -40,6 +38,7 @@ A2osX.D2 .PH $D000
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #RRAMWRAMBNK2
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STRING
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STRING
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
||||||
|
.INB /A2OSX.SRC/SYS/KERNEL.S.TIME
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PS
|
.INB /A2OSX.SRC/SYS/KERNEL.S.PS
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.ARG
|
.INB /A2OSX.SRC/SYS/KERNEL.S.ARG
|
||||||
|
@ -53,6 +52,7 @@ A2osX.E0 .PH $E000
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DAT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DAT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||||
|
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||||
.EP
|
.EP
|
||||||
A2osX.E0.E .EQ *
|
A2osX.E0.E .EQ *
|
||||||
|
|
Loading…
Reference in New Issue
Block a user