Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/tee.a @ 1755:28d21787be81
test case for new as6809
author | boisy |
---|---|
date | Wed, 23 Mar 2005 03:21:28 +0000 |
parents | |
children | a8bb0834424e |
line wrap: on
line source
;******************************************************************* ; Tee - Split output to multiple devices ; ; $Id$ ; ; Edt/Rev YYYY/MM/DD Modified by ; Comment ; ------------------------------------------------------------------ ; 2 ????/??/?? ; From Tandy OS-9 Level One VR 02.00.00. .include "/Users/boisy/Projects/nitros9/defs/const.d" .include "/Users/boisy/Projects/nitros9/defs/io.d" .include "/Users/boisy/Projects/nitros9/defs/ioman.d" .include "/Users/boisy/Projects/nitros9/defs/errno.d" .include "/Users/boisy/Projects/nitros9/defs/syscall.d" .include "/Users/boisy/Projects/nitros9/defs/module.d" .module tee,Prgrm+Objct,ReEnt+1,3,dsize .area DATA u0000: .blkb 1 parray: .blkb 13 pcount: .blkb 1 buff: .blkb 256 .blkb 450 dsize == . start: clrb clr pcount,u ; clear path counter cmpy #0h0000 ; any parameters? lbeq exitok ; exit if none leay parray,u ; else point Y to path array ; Walk the command line parameters parse: lda ,x+ cmpa #C$SPAC beq parse cmpa #C$COMA beq parse cmpa #C$CR lbeq parsex ; We've found a file or device name leax -1,x lda #WRITE. ldb #PREAD.+UPDAT. os9 I$Create ; open a path to the device or file bcs exit ; branch if error ldb pcount,u ; else get path counter sta b,y ; save new path in the array offset incb ; increment counter stb pcount,u ; and save bra parse ; continue parsing command line parsex: stb pcount,u ; Devices on command line are open, start pumping data L0044: clra leax buff,u ldy #256 os9 I$ReadLn bcc L0057 cmpb #E$EOF beq exitok coma bra exit L0057: inca os9 I$WritLn tst pcount,u beq L0044 clrb L0060: leay parray,u lda b,y leax buff,u ldy #256 os9 I$WritLn bcs exit incb cmpb pcount,u bne L0060 bra L0044 exitok: clrb exit: os9 F$Exit