NEW AUTO 3,1 */-------------------------------------- * # LoadTxtFile * Load TXT a file in memory (with ending 0) * ## C * `int loadtxtfile ( const char * filename, short int flags, short int ftype, int auxtype );` * ## ASM * **In:** * `>PUSHW auxtype` * `>PUSHB ftype` * `>PUSHB flags` * `>LDYA filename` * `>SYSCALL loadtxtfile` * ## RETURN VALUE * Y,A = File Length (without ending 0) * X = hMem of Loaded File *\-------------------------------------- .DUMMY .OR ZPTMP FIO.bTXT .BS 1 FIO.hFILE .BS 1 FIO.MemPtr .BS 2 FIO.hMem .BS 1 FIO.BytesRead .BS 2 .ED *-------------------------------------- K.LoadTxtFile sec .HS 90 BCC */-------------------------------------- * # LoadFile * Load a file in memory * ## C * `int loadfile ( const char * filename, short int flags, short int ftype, int auxtype );` * ## ASM * **In:** * `>PUSHW auxtype` * `>PUSHB ftype` * `>PUSHB flags` * `>LDYA filename` * `>SYSCALL loadfile` * ## RETURN VALUE * Y,A = File Length * X = hMem of Loaded File *\-------------------------------------- K.LoadFile clc ror FIO.bTXT jsr K.FOpen bcs .9 .12 sta FIO.hFILE pha >PUSHWI K.S.Stat pla jsr K.FStat bcs .11 lda K.S.Stat+S.STAT.SIZE+3 ora K.S.Stat+S.STAT.SIZE+2 bne .10 >LDYA K.S.Stat+S.STAT.SIZE bit FIO.bTXT Add 1 to buffer size for ending 0 bpl .1 iny bne .1 inc bne .1 .10 lda #E.FTB .11 bra .99 .1 jsr K.GetMem bcs .99 >STYA FIO.MemPtr stx FIO.hMem >PUSHW K.S.Stat+S.STAT.SIZE >PUSHW FIO.MemPtr lda FIO.hFILE jsr K.FRead bcc .2 pha lda FIO.hMem jsr K.FreeMem pla .99 pha lda FIO.hFILE jsr K.FClose pla sec .9 rts .2 >STYA FIO.BytesRead bit FIO.bTXT bpl .5 pha set ending 0 tya * clc adc FIO.MemPtr sta .4+1 pla adc FIO.MemPtr+1 sta .4+2 .4 stz $ffff Self Modified .5 jsr .99 close file >LDYA FIO.BytesRead ldx FIO.hMem clc rts */-------------------------------------- * # ChTyp * Change The type of a ProDOS File * ## C * `int chtyp(const char *filepath, const char filetype);` * ## ASM * **In:** * `>PUSHBI filetype` * `>LDYA filepath` * `>SYSCALL chtyp` * ## RETURN VALUE *\-------------------------------------- K.ChTyp jsr PFT.CheckPathYA bcs .99 >PULLB .1+1 >MLICALL MLIGETFILEINFO bcs .9 .1 lda #$ff sta K.MLI.PARAMS+S.FI.T >MLICALL MLISETFILEINFO .9 rts .99 >RET 1 discard filetype */-------------------------------------- * # ChOwn * **In:** * PUSHW = mod * PUSHW = PATH *\-------------------------------------- K.ChOwn */-------------------------------------- * # ChGrp * **In:** * PUSHW = GID * PUSHW = PATH *\-------------------------------------- K.ChGrp sec rts *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.FIO LOAD USR/SRC/SYS/KERNEL.S ASM