A2osX/SYS/KERNEL.S.FIO.txt

212 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PR#3
PREFIX /A2OSX.BUILD
LOMEM $A00
INC 1
AUTO 6
*/--------------------------------------
* # GetFullPath.YA
* ## In :
* Y,A = Filename (C-String)
* ## Out :
* CC : success
* Y,A = FullPath (C-String)
* X = hMem of FullPath
* CS : A = Error Code
*\--------------------------------------
K.GetFullPath.YA
>STYA ZPPtr1
ldx #0
lda (ZPPtr1)
beq .8
cmp #'/' full path starting with '/'?
beq .2 yes, do not append to current prefix
ldy #S.PS.hPREFIX
lda (pPs),y
jsr K.GetMemPtr.A
>STYA ZPPtr2
ldy #0
.1 lda (ZPPtr2),y
beq .2
sta K.Buf256,x
iny
inx
bne .1
.2 ldy #0
.3 lda (ZPPtr1),y
beq .8
sta K.Buf256,x
iny
inx
bne .3
.8 stz K.Buf256,x
>LDYAI K.Buf256
jsr K.NewStr.YA
rts
*/--------------------------------------
* # LoadFile
* ## In:
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
* PUSHW = PATH ...FOpen)
* ## Out:
* Y,A = File Length
* X = hMem of Loaded File
*\--------------------------------------
K.LoadFile lda (pStack) read PTR.LO on top of stack
pha
ldy #1
lda (pStack),y read PTR.HI on top of stack
pha
>PUSHWI K.S.STAT
pla
ply
>PUSHYA
jsr K.Stat
bcs .10
lda K.S.STAT+S.STAT.SIZE+3
ora K.S.STAT+S.STAT.SIZE+2
bne .11
>LDYA K.S.STAT+S.STAT.SIZE push len
jsr K.GetMem.YA
bcs .10
>STYA K.LoadFile.Mem
stx K.LoadFile.hMem
jsr K.FOpen
bcs .9
sta K.LoadFile.hFile
>PUSHW K.LoadFile.Mem
>PUSHW K.S.STAT+S.STAT.SIZE
>PUSHB K.LoadFile.hFile
jsr K.FRead
bcs .97
phy
pha Save Bytes read
jsr .99
pla
ply
ldx K.LoadFile.hMem
clc
.9 rts
.11 lda #SYSMGR.ERRFTB
.10 pha
>POP 6
pla
sec
rts
.97 pha
lda K.LoadFile.hMem
jsr K.FreeMem.A
pla
.99 pha
lda K.LoadFile.hFile
jsr K.FClose.A
pla
sec
rts
*--------------------------------------
K.LoadFile.hFile .BS 1
K.LoadFile.hMem .BS 1
K.LoadFile.Mem .BS 2
*/--------------------------------------
* # SaveFile
* ## In:
* PUSHW = SrcPtr
* PUSHW = SrcLen
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
* PUSHW = PATH ...FOpen)
*\--------------------------------------
K.SaveFile jsr K.FOpen
bcs .9
sta .90+1
>PUSHA
jsr K.FWrite
bcs .99
jsr .99
clc
rts
.99 pha
.90 lda #$ff
jsr K.FClose.A
pla
sec
rts
.9 pha
>POP 4 Discard SrcPtr & SrcLen
pla
sec
rts
*/--------------------------------------
* # ChTyp
* ## In:
* PUSHB = TYPE
* PUSHW = PATH
*\--------------------------------------
K.ChTyp jsr PFT.CheckPathSTK
>PULLW K.MLI.PARAMS+1
>PULLB .1+1
>MLICALL MLIGETFILEINFO
bcs .9
.1 lda #$ff
sta K.MLI.PARAMS+S.FILEINFO.TYPE
>MLICALL MLISETFILEINFO
.9 rts
*/--------------------------------------
* # ChMod
* ## In:
* PUSHW = UID
* PUSHW = PATH
*\--------------------------------------
K.ChMod
sec
rts
*/--------------------------------------
* # ChOwn
* ## In:
* PUSHW = UID
* PUSHW = PATH
*\--------------------------------------
K.ChOwn
sec
rts
*/--------------------------------------
* # ChGrp
* ## In:
* PUSHW = GID
* PUSHW = PATH
*\--------------------------------------
K.ChGrp
sec
rts
*--------------------------------------
MAN
SAVE /A2OSX.SRC/SYS/KERNEL.S.FIO
LOAD /A2OSX.SRC/SYS/KERNEL.S
ASM