A2osX/SYS/KERNEL.S.FIO.txt

180 lines
3.3 KiB
Plaintext
Raw Normal View History

2015-03-14 21:48:35 +00:00
PR#3
PREFIX /A2OSX.BUILD
LOMEM $A00
2015-03-14 21:48:35 +00:00
INC 1
AUTO 6
*/--------------------------------------
* # LoadFile
* ## In:
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
2017-01-12 17:43:45 +00:00
* PUSHW = PATH ...FOpen)
* ## Out:
* Y,A = File Length
* X = hMem of Loaded File
*\--------------------------------------
K.LoadFile jsr K.FOpen
bcs .9
sta K.LoadFile.hFile
jsr K.LoadFile.GetLen
bcs .99
>LDYA K.LoadFile.FSize
jsr K.GetMem.YA
bcs .99
2016-09-21 15:20:37 +00:00
>STYA K.LoadFile.Mem
2017-09-29 06:36:27 +00:00
stx .8+1
2016-09-21 15:20:37 +00:00
>PUSHW K.LoadFile.Mem
>PUSHW K.LoadFile.FSize
2016-09-21 15:20:37 +00:00
>PUSHB K.LoadFile.hFile
2017-01-12 17:43:45 +00:00
jsr K.FRead
bcs .97
phy
pha Save Bytes read
jsr .99
2016-09-21 15:20:37 +00:00
pla
ply
2017-09-29 06:36:27 +00:00
.8 ldx #$ff Self Modified
clc
2016-09-21 15:20:37 +00:00
.9 rts
.97 pha
2017-09-29 06:36:27 +00:00
lda .8+1
jsr K.FreeMem.A
pla
2016-09-21 15:20:37 +00:00
.99 pha
2016-09-21 15:20:37 +00:00
lda K.LoadFile.hFile
jsr K.FClose.A
pla
sec
2016-09-21 15:20:37 +00:00
rts
*--------------------------------------
K.LoadFile.GetLen
stz K.LoadFile.FPos
stz K.LoadFile.FPos+1
stz K.LoadFile.FPos+2
stz K.LoadFile.FPos+3
>PUSHWI K.LoadFile.FPos
>PUSHBI SYS.FSeek.END
>PUSHB K.LoadFile.hFile
jsr K.FSeek
bcs .99
>PUSHWI K.LoadFile.FPos
>PUSHB K.LoadFile.hFile
jsr K.FTell
bcs .99
lda K.LoadFile.FPos+2
ora K.LoadFile.FPos+3
bne .98 too big!
>LDYA K.LoadFile.FPos
>STYA K.LoadFile.FSize
stz K.LoadFile.FPos
stz K.LoadFile.FPos+1
>PUSHWI K.LoadFile.FPos
>PUSHBI SYS.FSeek.SET
>PUSHB K.LoadFile.hFile
jmp K.FSeek
.98 lda #SYSMGR.ERRFTB
.99 rts
*--------------------------------------
K.LoadFile.hFile .BS 1
K.LoadFile.FPos .BS 4
K.LoadFile.Mem .BS 2
K.LoadFile.FSize .BS 2
*/--------------------------------------
* # SaveFile
* ## In:
* PUSHW = SrcPtr
* PUSHW = SrcLen
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
2017-01-12 17:43:45 +00:00
* PUSHW = PATH ...FOpen)
*\--------------------------------------
2017-01-12 17:43:45 +00:00
K.SaveFile jsr K.FOpen
bcs .9
sta .90+1
>PUSHA
2017-01-12 17:43:45 +00:00
jsr K.FWrite
bcs .99
jsr .99
clc
rts
.99 pha
.90 lda #$ff
jsr K.FClose.A
pla
sec
rts
.9 pha
lda pStack Discard SrcPtr & SrcLen
clc
adc #4
sta pStack
pla
sec
rts
*/--------------------------------------
* # ChTyp
* ## In:
* PUSHB = TYPE
* PUSHW = PATH
*\--------------------------------------
K.ChTyp jsr PFT.CheckPathSTK
2017-10-04 15:12:03 +00:00
jsr STDIO.PullMLIPath
>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
*/--------------------------------------
* # ChOwn
* ## In:
* PUSHW = UID
* PUSHW = PATH
*\--------------------------------------
K.ChOwn
*/--------------------------------------
* # ChGrp
* ## In:
* PUSHW = GID
* PUSHW = PATH
*\--------------------------------------
K.ChGrp
sec
rts
*--------------------------------------
2015-03-14 21:48:35 +00:00
MAN
SAVE /A2OSX.SRC/SYS/KERNEL.S.FIO
LOAD /A2OSX.SRC/SYS/KERNEL.S
2015-03-14 21:48:35 +00:00
ASM