NEW PREFIX AUTO 4,1 .LIST OFF *-------------------------------------- IO.Reset jsr IO.Reset.In jsr IO.Reset.Out jsr IO.Reset.Err rts *-------------------------------------- IO.Set.In pha jsr IO.Reset.In ldy #S.PS.hStdIn lda (pPS),y >STA.G IO.hIn pla ldy #S.PS.hStdIn sta (pPS),y rts *-------------------------------------- IO.Reset.In >LDA.G IO.hIn beq .8 pha ldy #S.PS.hStdIn lda (pPS),y >SYSCALL fclose pla ldy #S.PS.hStdIn sta (pPS),y >STZ.G IO.hIn .8 rts *-------------------------------------- IO.Set.Out pha jsr IO.Reset.Out ldy #S.PS.hStdOut lda (pPS),y >STA.G IO.hOut pla ldy #S.PS.hStdOut sta (pPS),y rts *-------------------------------------- IO.Reset.Out >LDA.G IO.hOut beq .8 pha ldy #S.PS.hStdOut lda (pPS),y >SYSCALL fclose pla ldy #S.PS.hStdOut sta (pPS),y >STZ.G IO.hOut .8 rts *-------------------------------------- IO.Set.Err pha jsr IO.Reset.Err ldy #S.PS.hStdErr lda (pPS),y >STA.G IO.hErr pla ldy #S.PS.hStdErr sta (pPS),y rts *-------------------------------------- IO.Reset.Err >LDA.G IO.hErr beq .8 pha ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fclose pla ldy #S.PS.hStdErr sta (pPS),y >STZ.G IO.hErr .8 rts *-------------------------------------- IO.PrintBatchErrMsg >LDA.G hFileBuf >SYSCALL GetMemPtr >STYA ZPPtr1 stz ZPPtr3 stz ZPPtr3+1 .1 >LDYA ZPPtr1 >STYA ZPPtr2 Save actual line start inc ZPPtr3 bne .2 inc ZPPtr3+1 .2 lda (ZPPtr1) beq .6 EoF inc ZPPtr1 bne .3 inc ZPPtr1+1 .3 cmp #$0D bne .2 Scan until EoL ldx ZPPtr1 cpx ZPFileBufPtr lda ZPPtr1+1 sbc ZPFileBufPtr+1 bcc .1 not this line.... .4 ldy #0 .5 lda (ZPPtr2),y beq .6 iny cmp #$0D beq .6 phy >PUSHA ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fputc ply bra .5 .6 >PUSHBI 0 >PUSHW L.MSG.ECHOCRLF ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf lda ZPFileBufPtr sec sbc ZPPtr2 beq .8 tay .7 phy >PUSHBI '-' ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fputc ply dey bne .7 .8 >PUSHW ZPPtr3 >PUSHBI 2 >PUSHW L.MSG.BATCHERR ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf rts *-------------------------------------- IO.PrintErrMsg pha Save EC for PrintF ldx L.ERR.Codes stx ZPPTR1 ldx L.ERR.Codes+1 stx ZPPTR1+1 ldy #0 .1 cmp (ZPPTR1),y beq .2 iny cpy #ERR.Count bne .1 .2 lda L.ERR.Messages sta ZPPTR1 lda L.ERR.Messages+1 sta ZPPTR1+1 .3 dey bmi .8 lda (ZPPTR1) sec adc ZPPTR1 sta ZPPTR1 bcc .3 inc ZPPTR1+1 bra .3 .8 >PUSHW ZPPTR1 pla >PUSHA >PUSHBI 3 >PUSHW L.MSG.ERROR ldy #S.PS.hStdErr lda (pPS),y >SYSCALL fprintf rts *-------------------------------------- MAN SAVE USR/SRC/BIN/SHELL.S.IO LOAD USR/SRC/BIN/SHELL.S ASM