NEW AUTO 3,1 .LIST OFF *-------------------------------------- FILE.New >LDYAI 4096 >STYA BufLen >SYSCALL GetMem bcs .9 >STYA BufPtr txa >STA.G hBuffer FileLen already set to 0 lda #0 sta (BufPtr) stz FileLen stz FileLen+1 .9 rts *-------------------------------------- FILE.Load jsr BUF.ResetSel >PUSHEA.G STATBUF >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL stat bcs FILE.New >LDA.G STATBUF+S.STAT.P.TYPE cmp #S.FI.T.TXT beq FILE.Load.TXT cmp #$FA S-C/ASM? bne .9 jmp FILE.Load.ASM .9 lda #MLI.E.INCFF sec rts *-------------------------------------- FILE.Load.TXT stz FileLen stz FileLen+1 stz TmpByte hLineBuffer stz TmpIndex hFile >STZ.G FileType jsr FILE.GetBuffer bcs .99 >LDYA 256 >SYSCALL GetMem bcs .99 >STYA ZPPTR1 stx TmpByte >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.RDONLY+O.TEXT >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL fopen .99 bcs .9 sta TmpIndex .1 >PUSHWI 254 >PUSHW ZPPTR1 lda TmpIndex >SYSCALL fread bcs .8 lda #0 sta (ZPPTR1),y Y = line len lda (ZPPTR1) clc eor #C.LF bne .2 lda #2 >STA.G FileType sec .2 lda ZPPTR1 adc #0 tay lda ZPPTR1+1 adc #0 >PUSHYA >LDYA BufPtr >SYSCALL strcat bra .1 .8 cmp #MLI.E.EOF bne .9 >LDYA BufPtr >SYSCALL strlen >STYA FileLen clc .9 jmp FILE.Load.Cleanup *-------------------------------------- FILE.Load.ASM lda #MLI.E.INCFF sec rts *-------------------------------------- FILE.Load.Cleanup php pha lda TmpByte beq .1 >SYSCALL freemem .1 lda TmpIndex beq .2 >SYSCALL fclose .2 pla plp rts *-------------------------------------- FILE.Save >PUSHWZ Aux type >PUSHBI S.FI.T.TXT >PUSHBI O.CREATE+O.WRONLY >LDA.G hFileName >SYSCALL GetMemPtr >SYSCALL FOpen bcs .9 pha >PUSHW FileLen >LDA.G hBuffer >SYSCALL GetMemPtr >PUSHYA pla pha >SYSCALL FWrite bcc .1 tax pla phx >SYSCALL FClose pla sec rts .1 pla >SYSCALL FClose lda #$80 >STA.G bSaved jsr SCRN.UpdateTopBar .9 rts *-------------------------------------- FILE.GetBuffer >LDA.G STATBUF+S.STAT.SIZE+3 dey ora (pData),y bne .9 dey lda (pData),y Size HI cmp #16 bcs .1 lda #13 Min = 3k .1 adc #3 1K more ldy #0 Size LO >STYA BufLen >SYSCALL GetMem bcs .99 >STYA BufPtr txa >STA.G hBuffer lda #0 sta (BufPtr) rts .9 lda #E.FTB sec .99 rts *-------------------------------------- MAN SAVE USR/SRC/BIN/EDIT.S.FILE LOAD USR/SRC/BIN/EDIT.S ASM