A2osX/BIN/SHELL.S.IO.txt
2019-02-05 21:50:17 +00:00

220 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
PREFIX
AUTO 4,1
.LIST OFF
*--------------------------------------
IO.Reset jsr IO.Reset.In
jsr IO.Reset.Out
jsr IO.Reset.Err
rts
*--------------------------------------
IO.Pipe.In clc
rts
*--------------------------------------
IO.Pipe.Out >SYSCALL pipe
bcs .9
clc
.9 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 ZPInputBufPtr
lda ZPPtr1+1
sbc ZPInputBufPtr+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 ZPInputBufPtr
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