annotate 3rdparty/utils/boisy/tee.asm @ 2353:d904d7740887

Fixed 6809 mistake
author boisy
date Mon, 18 Jan 2010 01:11:16 +0000
parents 0e08f0830fd8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * TEE - Tees input to multiple outputs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * By: Boisy G. Pitre
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 * Southern Station, Box 8455
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
6 * Hattiesburg, MS 39406-8455
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
7 * Internet: bgpitre@seabass.st.usm.edu
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
9 * Usage: Tee <dev> [...] [...]
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11 * Tee accepts input from StdIn. You may use a pipe to send it information,
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12 * or use the '<' operator of the shell to redirect StdIn.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
13 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 nam Tee
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 ttl Tees input to multiple outputs
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21
1260
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
22 mod Size,Name,Prgrm+Objct,ReEnt+1,Start,Fin
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
23
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 Name fcs "Tee"
1260
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
25 fcb $03 Replaces Tandy's Edition #2
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27 PathCnt rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28 BuffSize rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 StdOut rmb 1 StdOut path...
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 PathStk rmb 40 +40 = Handles 41 paths in all!
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 Buffer rmb 250 Max. chars per line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32 Stack rmb 200
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 Parms rmb 200
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34 Fin equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 Start lda #1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 sta PathCnt,u store a 1 in the path counter buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 sta StdOut,u and the StdOut buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 leay PathStk,u Position Y on the path queue
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40
1260
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
41 GetNext lda #WRITE. Set mode to write only
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
42 ldb #UPDAT.+PREAD. owner read/write, other read
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 os9 I$Create create the path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 bcs Error exit if error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 sta ,y+ store the path on path stack, inc Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 inc PathCnt,u inc path counter
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 CheckCR lda ,x See if last param on line
1260
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
50 cmpa #C$CR if cr, must be last parm
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 beq GoTee so start teeing out
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 leax 1,x inc X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53 bra CheckCR and check again
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 EOF cmpb #E$EOF Check for end-of-file
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56 bne Error nope, other error, abort
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 Done clrb else clear out nicely...
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59 Error os9 F$Exit and exit!
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 GoTee clra use StdIn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 ldy #250 Buffer holds 250 chars. per line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63 leax Buffer,u point X to buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 os9 I$ReadLn read a line from stdin
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 bcs EOF check EOF if error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 sty BuffSize,u else save bytes read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 ldb PathCnt,u load B with the Path counter value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
68 leay StdOut,u position Y at the StdOut path (1st)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 Service lda ,y+ load A with path number
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 pshs y save Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 ldy BuffSize,u get buffer size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 os9 I$WritLn write out
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 bcs Error Error if exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 puls y get Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 decb decrement B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 bne Service if not 0, service next path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78 bra GoTee else get more input from StdIn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 Size equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
82 end
1260
0e08f0830fd8 Changes pointed out by Rodney H.
boisy
parents: 0
diff changeset
83