NEW PREFIX /A2OSX.BUILD AUTO 4,1 *--------------------------------------- FIO.Init ldy #S.PS.hARGS lda (pPS),y >SYSCALL GetMemPtr.A >STYA ZPPtr1 ldy #$ff .2 iny lda (ZPPtr1),y sta ASM.T.FILENAME,y bne .2 ldx #0 .3 lda ASM.T.DEFAULT,x sta ASM.T.FILENAME,y beq FIO.LOAD.ASM.T inx iny bra .3 *--------------------------------------- FIO.LOAD.ASM.T ldy #ASM.T.hMem lda (pData),y beq .1 >SYSCALL FreeMem.A ldy #ASM.T.hMem lda #0 sta (pData),y .1 >PUSHW L.ASM.T.FILENAME >LDYA L.MSG.T.FILE >SYSCALL PrintF.YA >PUSHWI 0 Aux type >PUSHBI 6 S.FI.T.BIN >PUSHBI SYS.FOpen.R >PUSHW L.ASM.T.FILENAME >SYSCALL LoadFile bcs .9 txa ldy #ASM.T.hMem sta (pData),y .9 rts *--------------------------------------- FIO.OpenFileA >SYSCALL GetMemPtr.A >STYA ZPPtr1 >PUSHW ZPPtr1 >LDYA L.MSG.SRC.FILE >SYSCALL PrintF.YA ldy #SRC.COUNT lda (pData),y cmp #SRC.IN.MAXDEPTH bne .1 lda #ERR.SRC.TOO.MANY.IN sec rts .1 >PUSHW L.FIO.Stat >PUSHW ZPPtr1 >SYSCALL Stat bcs .99 lda FIO.Stat+S.STAT.P.TYPE cmp #$04 TXT ? bne .2 >PUSHWI 0 >PUSHBI 4 >PUSHBI SYS.FOpen.R+SYS.FOpen.T bra .3 .2 cmp #$FA S-C/BAS? bne .98 >PUSHWI 0 >PUSHBI $FA >PUSHBI SYS.FOpen.R .3 >PUSHW ZPPtr1 >SYSCALL FOpen bcs .99 pha ldy #SRC.COUNT lda (pData),y clc adc #SRC.hFILES tay pla sta (pData),y ldy #SRC.COUNT lda (pData),y clc adc #SRC.hFILETYPES tay lda FIO.Stat+S.STAT.P.TYPE sta (pData),y ldy #SRC.COUNT lda (pData),y inc sta (pData),y clc rts .98 lda #ERR.SRC.INV.TYPE sec .99 rts *--------------------------------------- FIO.ReadLine stz SRC.BufPtr ldy #SRC.COUNT lda (pData),y clc adc #SRC.hFILETYPES-1 tay lda (pData),y bmi .10 >PUSHWI 256 >PUSHWI UsrBuf256 jsr FIO.ReadFromFile bcs .19 lda #0 replace ending $0D with $00 sta UsrBuf256,y .19 rts .10 >PUSHWI 3 >PUSHW L.SRC.Buffer jsr FIO.ReadFromFile bcs .9 lda SRC.Buffer+1 sta SRC.LINENUM lda SRC.Buffer+2 sta SRC.LINENUM+1 lda SRC.Buffer LEN sec sbc #3 bcc .9 LEN should be at least 3 tay lda #0 >PUSHYA >PUSHW L.SRC.BUFFER jsr FIO.ReadFromFile ldy #0 ldx #0 .1 lda SRC.Buffer,y bmi .2 sta UsrBuf256,x beq .8 Ending 00 inx beq .99 iny bne .1 bra .99 .2 cmp #$C0 REPEAT char? bne .5 iny beq .99 lda SRC.Buffer,y iny beq .99 .3 pha lda SRC.Buffer,y sta UsrBuf256,x pla inx beq .99 dec bne .3 iny bne .1 bra .99 .5 and #$3F Compute blank count .6 pha lda #$20 sta UsrBuf256,x pla inx beq .99 dec bne .6 iny bne .1 bra .99 .8 clc .9 rts .99 lda #ERR.LINE.TOO.LONG sec rts *-------------------------------------- FIO.ReadFromFile ldy #SRC.COUNT lda (pData),y clc adc #SRC.hFILES-1 tay lda (pData),y >PUSHA >SYSCALL FRead bcs .9 tax $100 byte transfered ? beq .9 lda #ERR.LINE.TOO.LONG sec .9 rts *--------------------------------------- FIO.FileClose ldy #SRC.COUNT lda (pData),y beq .8 clc adc #SRC.hFILES-1 tay lda (pData),y >SYSCALL FClose.A ldy #SRC.COUNT lda (pData),y dec sta (pData),y .8 clc rts *--------------------------------------- FIO.EmitByte clc rts *--------------------------------------- MAN SAVE /A2OSX.BUILD/BIN/DEV/ASM.S.FIO LOAD /A2OSX.BUILD/BIN/DEV/ASM.S ASM