annotate 3rdparty/utils/boisy/tee.asm @ 380:a814a6c1dab7

Added joypoll
author boisy
date Sat, 24 Aug 2002 15:24:16 +0000
parents 6641a883d6b0
children 0e08f0830fd8
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
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 mod Size,Name,Prgrm+Objct,Reent+1,Start,Fin
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 Name fcs "Tee"
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 Ed fcb $03 Replaces Tandy's Edition #2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 PathCnt rmb 1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
27 BuffSize rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
28 StdOut rmb 1 StdOut path...
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 PathStk rmb 40 +40 = Handles 41 paths in all!
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
30 Buffer rmb 250 Max. chars per line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
31 Stack rmb 200
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
32 Parms rmb 200
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
33 Fin equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
34
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
35 Start lda #1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
36 sta PathCnt,u store a 1 in the path counter buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
37 sta StdOut,u and the StdOut buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38 leay PathStk,u Position Y on the path queue
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 GetNext lda #write. Set mode to write only
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41 ldb #read.+write.+pread. owner read/write, other read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 os9 I$Create create the path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 bcs Error exit if error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45 sta ,y+ store the path on path stack, inc Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 inc PathCnt,u inc path counter
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
48 CheckCR lda ,x See if last param on line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
49 cmpa #$0d if cr, must be last parm
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50 beq GoTee so start teeing out
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 leax 1,x inc X
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52 bra CheckCR and check again
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
53
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
54 EOF cmpb #E$EOF Check for end-of-file
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
55 bne Error nope, other error, abort
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
56
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
57 Done clrb else clear out nicely...
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
58 Error os9 F$Exit and exit!
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
59
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60 GoTee clra use StdIn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 ldy #250 Buffer holds 250 chars. per line
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 leax Buffer,u point X to buffer
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63 os9 I$ReadLn read a line from stdin
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 bcs EOF check EOF if error
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 sty BuffSize,u else save bytes read
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66 ldb PathCnt,u load B with the Path counter value
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
67 leay StdOut,u position Y at the StdOut path (1st)
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
68
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
69 Service lda ,y+ load A with path number
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
70 pshs y save Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
71 ldy BuffSize,u get buffer size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
72 os9 I$WritLn write out
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
73 bcs Error Error if exit
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
74 puls y get Y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
75 decb decrement B
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
76 bne Service if not 0, service next path
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
77 bra GoTee else get more input from StdIn
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
78
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
79 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80 Size equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 end