2018-01-18 06:49:41 +00:00
|
|
|
|
NEW
|
2019-06-02 08:58:46 +00:00
|
|
|
|
AUTO 3,1
|
2016-10-29 19:58:21 +00:00
|
|
|
|
.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
|
|
|
|
*--------------------------------------
|
2020-02-14 07:21:56 +00:00
|
|
|
|
IO.Load >PUSHYA
|
2019-04-04 15:44:20 +00:00
|
|
|
|
>PUSHBI O.RDONLY
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>PUSHBI S.FI.T.TXT
|
|
|
|
|
>PUSHWZ Aux type
|
2019-04-04 15:44:20 +00:00
|
|
|
|
>SYSCALL LoadTxtFile
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-10-25 15:09:13 +00:00
|
|
|
|
IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE
|
|
|
|
|
bcs IO.Set.RTS
|
2019-02-15 16:38:17 +00:00
|
|
|
|
|
2019-10-25 15:09:13 +00:00
|
|
|
|
pha
|
2019-02-26 16:50:42 +00:00
|
|
|
|
|
2019-10-25 15:09:13 +00:00
|
|
|
|
ldy #S.PS.hStdIn
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>STA.G IO.hIn
|
|
|
|
|
|
|
|
|
|
pla
|
|
|
|
|
|
|
|
|
|
ldy #S.PS.hStdIn
|
|
|
|
|
sta (pPS),y
|
|
|
|
|
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-10-25 15:09:13 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.Pop.In clc
|
|
|
|
|
.HS B0 BCS
|
2019-04-04 15:44:20 +00:00
|
|
|
|
*--------------------------------------
|
2019-10-25 15:09:13 +00:00
|
|
|
|
IO.Reset.In sec
|
|
|
|
|
>LDA.G IO.hIn
|
2018-11-07 16:11:02 +00:00
|
|
|
|
beq .8
|
2019-10-25 15:09:13 +00:00
|
|
|
|
bcc .1
|
|
|
|
|
|
2018-11-07 16:11:02 +00:00
|
|
|
|
ldy #S.PS.hStdIn
|
2019-10-26 14:33:37 +00:00
|
|
|
|
jsr IO.Close.Y
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
|
|
|
|
.1 ldy #S.PS.hStdIn
|
2018-11-07 16:11:02 +00:00
|
|
|
|
sta (pPS),y
|
|
|
|
|
>STZ.G IO.hIn
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
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-10-25 15:09:13 +00:00
|
|
|
|
bcs IO.Reset.In.RTS Create a new PIPE
|
2019-02-18 06:42:17 +00:00
|
|
|
|
|
2019-10-25 15:09:13 +00:00
|
|
|
|
jsr IO.Pipe.OpenW Open for OUTPUT
|
2019-08-02 14:36:49 +00:00
|
|
|
|
|
2019-06-04 06:31:54 +00:00
|
|
|
|
bcs IO.Reset.In.RTS
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
|
|
|
|
pha
|
|
|
|
|
ldy #S.PS.hStdOut
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>STA.G IO.hOut
|
|
|
|
|
pla
|
|
|
|
|
ldy #S.PS.hStdOut
|
|
|
|
|
sta (pPS),y
|
|
|
|
|
|
|
|
|
|
rts
|
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
|
2019-10-25 15:09:13 +00:00
|
|
|
|
clc
|
2018-11-07 16:11:02 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-10-25 15:09:13 +00:00
|
|
|
|
IO.Pop.Out clc
|
|
|
|
|
.HS B0 BCS
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
IO.Reset.Out sec
|
2019-10-31 10:30:27 +00:00
|
|
|
|
IO.Reset.OutC >LDA.G IO.hOut
|
2018-11-07 16:11:02 +00:00
|
|
|
|
beq .8
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
|
|
|
|
bcc .1
|
|
|
|
|
|
2018-11-07 16:11:02 +00:00
|
|
|
|
ldy #S.PS.hStdOut
|
2019-10-26 14:33:37 +00:00
|
|
|
|
jsr IO.Close.Y
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
|
|
|
|
.1 ldy #S.PS.hStdOut
|
2018-11-07 16:11:02 +00:00
|
|
|
|
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
|
2019-10-26 14:33:37 +00:00
|
|
|
|
|
2018-11-07 16:11:02 +00:00
|
|
|
|
ldy #S.PS.hStdErr
|
2019-10-26 14:33:37 +00:00
|
|
|
|
jsr IO.Close.Y
|
|
|
|
|
|
2018-11-07 16:11:02 +00:00
|
|
|
|
ldy #S.PS.hStdErr
|
|
|
|
|
sta (pPS),y
|
|
|
|
|
>STZ.G IO.hErr
|
|
|
|
|
.8 rts
|
|
|
|
|
*--------------------------------------
|
2019-10-26 14:33:37 +00:00
|
|
|
|
IO.Close.Y pha
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>SYSCALL fclose
|
|
|
|
|
pla
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2019-10-25 15:09:13 +00:00
|
|
|
|
IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT
|
|
|
|
|
.HS 2C BIT ABS
|
|
|
|
|
|
|
|
|
|
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
|
|
|
|
|
>LEA.G IO.FIFO
|
|
|
|
|
*--------------------------------------
|
2020-02-14 07:21:56 +00:00
|
|
|
|
IO.FOpenYAX >PUSHYA
|
2019-08-02 14:36:49 +00:00
|
|
|
|
txa
|
|
|
|
|
>PUSHA
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>PUSHBI S.FI.T.TXT
|
|
|
|
|
>PUSHWZ Aux type
|
2019-08-02 14:36:49 +00:00
|
|
|
|
>SYSCALL fopen
|
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
2020-01-07 13:44:38 +00:00
|
|
|
|
IO.StatArgVBufPtr
|
|
|
|
|
>LDYA ZPArgVBufPtr
|
2020-02-14 07:21:56 +00:00
|
|
|
|
IO.StatYA >PUSHYA
|
2020-01-07 13:44:38 +00:00
|
|
|
|
>PUSHW ZPCLBuf
|
2019-11-15 14:40:48 +00:00
|
|
|
|
>SYSCALL STAT
|
2020-01-07 13:44:38 +00:00
|
|
|
|
bcs .9
|
|
|
|
|
|
|
|
|
|
ldy #S.STAT.P.TYPE
|
|
|
|
|
lda (ZPCLBuf),y
|
|
|
|
|
|
|
|
|
|
.9 rts
|
2019-11-15 14:40:48 +00:00
|
|
|
|
*--------------------------------------
|
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
|
2019-11-30 13:37:55 +00:00
|
|
|
|
|
2019-03-01 14:36:20 +00:00
|
|
|
|
>LDYA ZPInputCmdPtr
|
|
|
|
|
bra .11
|
2019-11-30 13:37:55 +00:00
|
|
|
|
|
2019-03-01 14:36:20 +00:00
|
|
|
|
.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
|
|
|
|
|
.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
|
2020-02-14 07:21:56 +00:00
|
|
|
|
|
|
|
|
|
.6 ldy #S.PS.hStdErr
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>PUSHA
|
|
|
|
|
|
|
|
|
|
>PUSHW L.MSG.BATCHLINE
|
|
|
|
|
>PUSHW ZPCLBuf
|
2019-06-04 15:49:58 +00:00
|
|
|
|
|
|
|
|
|
>PUSHBI 2
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>SYSCALL fprintf
|
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
|
|
|
|
|
2020-02-14 07:21:56 +00:00
|
|
|
|
.8 ldy #S.PS.hStdErr
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>PUSHA
|
|
|
|
|
>PUSHW L.MSG.BATCHERR
|
2019-06-04 15:49:58 +00:00
|
|
|
|
>PUSHW ZPCLBuf
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>PUSHW ZPTmpW
|
2019-06-04 15:49:58 +00:00
|
|
|
|
>PUSHBI 4
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>SYSCALL fprintf
|
|
|
|
|
rts
|
2018-11-10 14:30:09 +00:00
|
|
|
|
*--------------------------------------
|
2019-11-30 13:37:55 +00:00
|
|
|
|
IO.PrintErrMsg ldx L.ERR.Codes
|
2016-10-29 19:58:21 +00:00
|
|
|
|
stx ZPPTR1
|
|
|
|
|
ldx L.ERR.Codes+1
|
|
|
|
|
stx ZPPTR1+1
|
|
|
|
|
|
2019-11-30 13:37:55 +00:00
|
|
|
|
ldy #S.PS.RC
|
|
|
|
|
lda (pPs),y
|
|
|
|
|
|
2016-10-29 19:58:21 +00:00
|
|
|
|
ldy #0
|
|
|
|
|
|
|
|
|
|
.1 cmp (ZPPTR1),y
|
|
|
|
|
beq .2
|
|
|
|
|
iny
|
|
|
|
|
cpy #ERR.Count
|
|
|
|
|
bne .1
|
|
|
|
|
|
2017-03-19 21:47:54 +00:00
|
|
|
|
.2 lda L.ERR.Messages
|
2016-10-29 19:58:21 +00:00
|
|
|
|
sta ZPPTR1
|
|
|
|
|
lda L.ERR.Messages+1
|
|
|
|
|
sta ZPPTR1+1
|
2017-03-19 21:47:54 +00:00
|
|
|
|
.3 dey
|
|
|
|
|
bmi .8
|
2018-07-13 14:38:24 +00:00
|
|
|
|
|
2016-10-29 19:58:21 +00:00
|
|
|
|
lda (ZPPTR1)
|
2019-07-31 15:10:59 +00:00
|
|
|
|
jsr AddAp1Ptr1
|
2016-10-29 19:58:21 +00:00
|
|
|
|
bra .3
|
2019-11-30 13:37:55 +00:00
|
|
|
|
|
2020-02-14 07:21:56 +00:00
|
|
|
|
.8 ldy #S.PS.hStdErr
|
|
|
|
|
lda (pPS),y
|
|
|
|
|
>PUSHA
|
|
|
|
|
>PUSHW L.MSG.ERROR
|
2019-11-30 13:37:55 +00:00
|
|
|
|
|
|
|
|
|
ldy #S.PS.RC
|
|
|
|
|
lda (pPs),y
|
|
|
|
|
|
2017-09-11 15:29:08 +00:00
|
|
|
|
>PUSHA
|
2020-02-14 07:21:56 +00:00
|
|
|
|
>PUSHW ZPPTR1
|
|
|
|
|
|
2018-10-08 05:55:28 +00:00
|
|
|
|
>PUSHBI 3
|
2019-10-25 15:09:13 +00:00
|
|
|
|
|
2018-10-08 05:55:28 +00:00
|
|
|
|
>SYSCALL fprintf
|
2016-10-29 19:58:21 +00:00
|
|
|
|
rts
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MAN
|
2019-02-08 16:13:43 +00:00
|
|
|
|
SAVE USR/SRC/BIN/SH.S.IO
|
|
|
|
|
LOAD USR/SRC/BIN/SH.S
|
2016-10-29 19:58:21 +00:00
|
|
|
|
ASM
|