A2osX/BIN/SH.S.IO.txt

326 lines
5.1 KiB
Plaintext
Raw Normal View History

NEW
2019-06-02 08:58:46 +00:00
AUTO 3,1
*--------------------------------------
2018-11-07 16:11:02 +00:00
IO.Reset jsr IO.Reset.In
jsr IO.Reset.Out
2020-12-15 13:23:22 +00:00
jmp IO.Reset.Err
2019-04-04 15:44:20 +00:00
*--------------------------------------
2019-10-25 15:09:13 +00:00
IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE
2020-12-15 13:23:22 +00:00
bcs .9
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
2020-12-15 13:23:22 +00:00
.9 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
2020-12-15 13:23:22 +00:00
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
2020-12-15 13:23:22 +00:00
rts
2019-04-04 15:44:20 +00:00
*--------------------------------------
2021-07-24 20:42:23 +00:00
IO.Pipe.Out >PUSHEA.G IO.DEVFIFO
2020-03-10 16:42:07 +00:00
>PUSHWZ mode
2019-06-04 06:31:54 +00:00
>SYSCALL MKFIFO
2020-12-15 13:23:22 +00:00
bcs .9
2019-02-18 06:42:17 +00:00
jsr IO.Pipe.OpenW Open for OUTPUT
2020-12-15 13:23:22 +00:00
bcs .9
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
2020-12-15 13:23:22 +00:00
.9 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
*--------------------------------------
2019-10-25 15:09:13 +00:00
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
*--------------------------------------
2018-11-07 16:11:02 +00:00
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
2020-02-28 07:21:46 +00:00
>SYSCALL FClose
2019-10-26 14:33:37 +00:00
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
2020-12-15 13:23:22 +00:00
>LEA.G IO.DEVFIFO
2019-10-25 15:09:13 +00:00
*--------------------------------------
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
2020-03-09 16:24:08 +00:00
>SYSCALL FOpen
2019-08-02 14:36:49 +00:00
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
2020-03-09 16:24:08 +00:00
>SYSCALL Stat
2020-01-07 13:44:38 +00:00
bcs .9
2021-02-17 16:15:43 +00:00
ldy #S.STAT.MODE+1
2020-01-07 13:44:38 +00:00
lda (ZPCLBuf),y
2021-02-17 16:15:43 +00:00
and #$F0
2020-01-07 13:44:38 +00:00
.9 rts
2019-11-15 14:40:48 +00:00
*--------------------------------------
* set A = `sh -C ls|grep test`
2020-08-20 13:20:33 +00:00
IO.Exec >PUSHW ZPArgVBufPtr
>PUSHBI S.PS.F.CLOSEONX
>SYSCALL ExecL
rts
* >LDYAI 256
* >SYSCALL GetMem
* bcs .99
* >STYA ZPPtr1
* phx
* >PUSHYA
* >PUSHW L.EXECC
* >PUSHW.G SH
* >PUSHW ZPArgVBufPtr
* >PUSHBI 4
* >SYSCALL sprintf
* bcs .98
* ldy #S.PS.hStdErr
* lda (pPS),y
* >PUSHA
* >PUSHW ZPPtr1
* >SYSCALL fputs
* >DEBUG
* >PUSHW ZPPtr1
* >PUSHBI S.PS.F.CLOSEONX
* >SYSCALL ExecL
*.98 plx
* php
* pha
* txa
* >SYSCALL freemem
* pla
* plp
*.99 rts
2020-08-20 13:20:33 +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
2020-08-25 06:01:56 +00:00
2019-03-01 14:36:20 +00:00
ldy #S.PS.RC
2020-02-28 07:21:46 +00:00
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
2020-08-25 06:01:56 +00:00
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
2021-05-11 18:44:13 +00:00
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
2020-08-25 06:01:56 +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
2020-08-25 06:01:56 +00:00
2019-02-14 14:51:24 +00:00
inx
bne .40
2020-08-25 06:01:56 +00:00
2019-02-14 14:51:24 +00:00
inc
2020-08-25 06:01:56 +00:00
2019-02-14 14:51:24 +00:00
.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
2020-02-14 07:21:56 +00:00
>PUSHW L.MSG.BATCHLINE
>PUSHW ZPCLBuf
2019-06-04 15:49:58 +00:00
>PUSHBI 2
2020-03-09 16:24:08 +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-03-09 16:24:08 +00:00
>SYSCALL FPrintF
2020-02-14 07:21:56 +00:00
rts
2018-11-10 14:30:09 +00:00
*--------------------------------------
2020-05-17 17:34:32 +00:00
IO.PrintErrMsg ldy #S.PS.RC
2020-02-28 07:21:46 +00:00
lda (pPS),y
2020-05-17 17:34:32 +00:00
>PUSHA
2019-11-30 13:37:55 +00:00
2020-05-17 17:34:32 +00:00
>PUSHW ZPCLBuf
2021-05-04 17:31:21 +00:00
>SYSCALL GetErrMsg
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
2020-02-28 07:21:46 +00:00
lda (pPS),y
>PUSHA
2020-05-17 17:34:32 +00:00
>PUSHW ZPCLBuf
2018-10-08 05:55:28 +00:00
>PUSHBI 3
2019-10-25 15:09:13 +00:00
2020-03-09 16:24:08 +00:00
>SYSCALL FPrintF
2020-05-17 17:34:32 +00:00
rts
*--------------------------------------
MAN
2020-05-26 14:23:09 +00:00
SAVE usr/src/bin/sh.s.io
LOAD usr/src/bin/sh.s
ASM