mirror of
https://github.com/A2osX/A2osX.git
synced 2024-09-30 15:57:29 +00:00
188 lines
3.6 KiB
Plaintext
188 lines
3.6 KiB
Plaintext
PR#3
|
||
PREFIX /A2OSX.BUILD
|
||
LOMEM $A00
|
||
INC 1
|
||
AUTO 6
|
||
*/--------------------------------------
|
||
* # LoadTxtFile.YA
|
||
* Load TXT a file in memory (with ending 0)
|
||
* ## In:
|
||
* Y,A = File Path
|
||
* ## Out:
|
||
* Y,A = File Length (without ending 0)
|
||
* X = hMem of Loaded File
|
||
*\--------------------------------------
|
||
K.LoadTxtFile.YA
|
||
pha
|
||
>PUSHWI 0 Aux type
|
||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
||
>PUSHBI SYS.FOpen.R
|
||
pla
|
||
>PUSHYA
|
||
sec
|
||
.HS 90 BCC
|
||
*/--------------------------------------
|
||
* # LoadFile
|
||
* Load a file in memory
|
||
* ## In:
|
||
* PUSHW = AUXTYPE (Handled by....
|
||
* PUSHB = TYPE ...
|
||
* PUSHB = MODE ...
|
||
* PUSHW = PATH ...FOpen)
|
||
* ## Out:
|
||
* Y,A = File Length
|
||
* X = hMem of Loaded File
|
||
*\--------------------------------------
|
||
K.LoadFile clc
|
||
ror K.LoadFile.bTXT
|
||
|
||
jsr K.FOpen
|
||
bcs .9
|
||
sta K.LoadFile.hFile
|
||
|
||
jsr K.LoadFile.GetSize
|
||
bcs .99
|
||
|
||
>LDYA K.LoadFile.FSize
|
||
|
||
bit K.LoadFile.bTXT Add 1 to buffer size for ending 0
|
||
bpl .1
|
||
iny
|
||
bne .1
|
||
inc
|
||
bne .1
|
||
lda #K.E.FTB
|
||
bra .99
|
||
|
||
.1 jsr K.GetMem.YA
|
||
bcs .99
|
||
>STYA K.LoadFile.Mem
|
||
stx .8+1
|
||
|
||
>PUSHW K.LoadFile.Mem
|
||
>PUSHW K.LoadFile.FSize
|
||
>PUSHB K.LoadFile.hFile
|
||
jsr K.FRead
|
||
bcs .98
|
||
|
||
sty .6+1
|
||
sta .7+1 Save Bytes read
|
||
|
||
jsr .99 close file
|
||
|
||
bit K.LoadFile.bTXT
|
||
bpl .6
|
||
|
||
clc set ending 0
|
||
lda .6+1
|
||
adc K.LoadFile.Mem
|
||
sta .5+1
|
||
lda .7+1
|
||
adc K.LoadFile.Mem+1
|
||
sta .5+2
|
||
|
||
.5 stz $ffff Self Modified
|
||
|
||
.6 ldy #$ff Self Modified
|
||
.7 lda #$ff Self Modified
|
||
.8 ldx #$ff Self Modified
|
||
clc
|
||
.9 rts
|
||
|
||
.98 pha
|
||
lda .8+1
|
||
jsr K.FreeMem.A
|
||
pla
|
||
|
||
.99 pha
|
||
lda K.LoadFile.hFile
|
||
jsr K.FClose.A
|
||
pla
|
||
sec
|
||
rts
|
||
*--------------------------------------
|
||
K.LoadFile.GetSize
|
||
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 #K.E.FTB
|
||
.99 rts
|
||
*--------------------------------------
|
||
K.LoadFile.bTXT .BS 1
|
||
K.LoadFile.hFile .BS 1
|
||
K.LoadFile.FPos .BS 4
|
||
K.LoadFile.Mem .BS 2
|
||
K.LoadFile.FSize .BS 2
|
||
*/--------------------------------------
|
||
* # ChTyp
|
||
* ## In:
|
||
* PUSHB = TYPE
|
||
* PUSHW = PATH
|
||
*\--------------------------------------
|
||
K.ChTyp jsr PFT.CheckPathSTK
|
||
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
|
||
*--------------------------------------
|
||
MAN
|
||
SAVE /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||
ASM
|