A2osX/BIN/SH.S.IO.txt

265 lines
4.2 KiB
Plaintext
Raw Normal View History

NEW
2019-06-02 08:58:46 +00:00
AUTO 3,1
.LIST OFF
*--------------------------------------
2018-11-07 16:11:02 +00:00
IO.Reset jsr IO.Reset.In
jsr IO.Reset.Out
jsr IO.Reset.Err
2019-02-26 16:50:42 +00:00
IO.Reset.9 rts
2019-04-04 15:44:20 +00:00
*--------------------------------------
IO.Load pha
2019-07-24 05:53:09 +00:00
>PUSHWZ Aux type
2019-04-04 15:44:20 +00:00
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDONLY
pla
>SYSCALL LoadTxtFile
rts
*--------------------------------------
2019-02-26 16:50:42 +00:00
IO.Pipe.In >LDA.G IO.hOut
2019-02-18 06:42:17 +00:00
ldy #S.PS.hStdOut
sta (pPS),y
>STZ.G IO.hOut
2019-02-15 16:38:17 +00:00
2019-07-24 05:53:09 +00:00
>PUSHWZ auxtype
2019-07-31 05:42:04 +00:00
>PUSHBI S.FI.T.TXT
>PUSHBI O.RDONLY+O.TEXT
2019-06-04 06:31:54 +00:00
>LEA.G IO.FIFO
2019-02-26 16:50:42 +00:00
>SYSCALL fopen
2019-04-01 06:07:56 +00:00
bcs IO.Set.RTS
2019-04-04 15:44:20 +00:00
*--------------------------------------
2018-11-07 16:11:02 +00:00
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
2019-04-01 06:07:56 +00:00
IO.Set.RTS rts
2019-04-04 15:44:20 +00:00
*--------------------------------------
2018-11-07 16:11:02 +00:00
IO.Reset.In >LDA.G IO.hIn
beq .8
pha
2019-02-19 11:30:45 +00:00
2018-11-07 16:11:02 +00:00
ldy #S.PS.hStdIn
lda (pPS),y
2019-02-25 16:36:09 +00:00
2018-11-07 16:11:02 +00:00
>SYSCALL fclose
pla
ldy #S.PS.hStdIn
sta (pPS),y
>STZ.G IO.hIn
2019-02-15 16:38:17 +00:00
.8 clc
IO.Reset.In.RTS rts
2019-04-04 15:44:20 +00:00
*--------------------------------------
2019-07-24 05:53:09 +00:00
IO.Pipe.Out >PUSHWZ mode
2019-06-04 06:31:54 +00:00
>LEA.G IO.FIFO
>SYSCALL MKFIFO
2019-02-15 16:38:17 +00:00
bcs IO.Reset.In.RTS
2019-02-18 06:42:17 +00:00
2019-07-24 05:53:09 +00:00
>PUSHWZ auxtype
2019-07-31 05:42:04 +00:00
>PUSHBI S.FI.T.TXT
2019-02-26 16:50:42 +00:00
>PUSHBI O.WRONLY
2019-06-04 06:31:54 +00:00
>LEA.G IO.FIFO
2019-02-18 06:42:17 +00:00
>SYSCALL fopen
2019-06-04 06:31:54 +00:00
bcs IO.Reset.In.RTS
2019-07-25 06:13:56 +00:00
pha
>LDA.G CORE.PSFlags
ora #S.PS.F.CLOSEONX
sta (pData),y
pla
2018-11-07 16:11:02 +00:00
*--------------------------------------
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
2019-02-25 16:36:09 +00:00
2018-11-07 16:11:02 +00:00
>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
*--------------------------------------
2018-11-10 14:30:09 +00:00
IO.PrintBatchErrMsg
2019-02-14 14:51:24 +00:00
>LDYA ZPInputBuf
2018-11-10 14:30:09 +00:00
>STYA ZPPtr1
2019-03-01 14:36:20 +00:00
ldy #S.PS.RC
lda (pPs),y
2019-03-05 16:49:34 +00:00
cmp #E.SYN
2019-03-01 14:36:20 +00:00
beq .10
>LDYA ZPInputCmdPtr
bra .11
.10 >LDYA ZPInputBufPtr
.11 >STYA ZPPtr2
2019-07-31 15:10:59 +00:00
stz ZPTmpW Line Count
stz ZPTmpW+1
2018-11-10 14:30:09 +00:00
2019-07-31 15:10:59 +00:00
.1 inc ZPTmpW
2018-11-10 14:30:09 +00:00
bne .2
2019-07-31 15:10:59 +00:00
inc ZPTmpW+1
2018-11-10 14:30:09 +00:00
2019-02-14 14:51:24 +00:00
.2 ldy #$ff
.3 iny
lda (ZPPtr1),y
beq .4 EoF
cmp #C.CR
bne .3 Scan until EoL
2018-11-10 14:30:09 +00:00
2019-02-14 14:51:24 +00:00
.4 tya
clc
adc ZPPtr1
tax
2018-11-10 14:30:09 +00:00
lda ZPPtr1+1
2019-02-14 14:51:24 +00:00
adc #0
pha
2019-03-01 14:36:20 +00:00
cpx ZPPtr2
sbc ZPPtr2+1
2019-02-14 14:51:24 +00:00
pla
bcs .41
inx
bne .40
inc
.40 stx ZPPtr1
sta ZPPtr1+1
bra .1
2018-11-10 14:30:09 +00:00
2019-02-14 14:51:24 +00:00
.41 ldy #$ff
2018-11-10 14:30:09 +00:00
2019-02-14 14:51:24 +00:00
.5 iny
lda (ZPPtr1),y
2019-06-04 15:49:58 +00:00
sta (ZPCLBuf),y
2018-11-10 14:30:09 +00:00
beq .6
2019-02-14 14:51:24 +00:00
2019-06-04 15:49:58 +00:00
eor #C.CR
bne .5
2019-02-14 14:51:24 +00:00
2019-06-04 15:49:58 +00:00
sta (ZPCLBuf),y
2018-11-10 14:30:09 +00:00
2019-06-04 15:49:58 +00:00
.6 >PUSHW ZPCLBuf
>PUSHBI 2
>PUSHW L.MSG.BATCHLINE
jsr .80
2018-11-27 21:26:03 +00:00
2019-02-14 14:51:24 +00:00
ldy #$ff
2019-06-04 15:49:58 +00:00
ldx #'-'
2019-02-14 14:51:24 +00:00
.7 iny
2019-06-04 15:49:58 +00:00
lda (ZPCLBuf),y
2019-02-14 14:51:24 +00:00
beq .8
2019-06-04 15:49:58 +00:00
txa
sta (ZPCLBuf),y
2019-02-14 14:51:24 +00:00
bra .7
2019-06-04 15:49:58 +00:00
2019-07-31 15:10:59 +00:00
.8 >PUSHW ZPTmpW
2019-06-04 15:49:58 +00:00
>PUSHW ZPCLBuf
>PUSHBI 4
2018-11-27 21:26:03 +00:00
>PUSHW L.MSG.BATCHERR
2019-06-04 15:49:58 +00:00
.80 ldy #S.PS.hStdErr
2018-11-27 21:26:03 +00:00
lda (pPS),y
>SYSCALL fprintf
2018-11-10 14:30:09 +00:00
2019-06-04 15:49:58 +00:00
.9 rts
2018-11-10 14:30:09 +00:00
*--------------------------------------
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
2018-07-13 14:38:24 +00:00
lda (ZPPTR1)
2019-07-31 15:10:59 +00:00
jsr AddAp1Ptr1
bra .3
2018-11-08 14:23:06 +00:00
.8 >PUSHW ZPPTR1
pla
>PUSHA
2018-10-08 05:55:28 +00:00
>PUSHBI 3
>PUSHW L.MSG.ERROR
ldy #S.PS.hStdErr
lda (pPS),y
>SYSCALL fprintf
rts
*--------------------------------------
MAN
2019-02-08 16:13:43 +00:00
SAVE USR/SRC/BIN/SH.S.IO
LOAD USR/SRC/BIN/SH.S
ASM