[Coco] quick basic09 copy program

Willard Goosey goosey at virgo.sdc.org
Wed Jan 30 06:53:50 EST 2008


Quicky program to copy all files from the current data directory to
/dd/foo.  Hack on it as you wish.

I'd like to say I just threw this together, but BASIC-09 is subtle and
quick to anger. ;-)  Actually, this did teach me a couple of things
about BASIC09.

But it's still pretty much quick and dirty.  Not very efficient, as it
forks a shell for every file it copies.


PROCEDURE wcopy
(* copy all files from cwd to another dir
DIM cwd:BYTE
DIM origin,fc:STRING[32]
DIM dest:STRING[128]

OPEN #cwd,".":READ+DIR
WHILE NOT(EOF(#cwd)) DO 
GET #cwd,origin
RUN entry2name(origin)
fc=LEFT$(origin,1)
IF fc<>CHR$(0) AND fc<>"." THEN 
dest=" /dd/foo/"+origin
SHELL "copy "+origin+dest
ENDIF 
ENDWHILE 
CLOSE #cwd
END 

PROCEDURE entry2name
PARAM entry:STRING
(*arguement:  a OS-9 directory entry:  32 bytes long, 29 byte max. filename
(*3 byte LSN, filename's last character has 8th bit set
(*
(*output:  The filename, with the last character's 8th bit cleared
(*If you have a dir. entry that doesn't have the 8th bit set on the 
(*last character, OS-9 crashed when you read the directory...

(*Willard Goosey
(*goosey at sdc.org

DIM i,tv:INTEGER
DIM fname,lc:STRING

i=1
LOOP 
tv=ASC(MID$(entry,i,1))
EXITIF tv>127 THEN 
fname=MID$(entry,1,i-1)
lc=CHR$(tv-128)
fname=fname+lc
ENDEXIT 
i=i+1
ENDLOOP 
entry=fname
END 


-- 
Willard Goosey  goosey at sdc.org
Socorro, New Mexico, USA
"I've never been to Contempt!  Isn't that somewhere in New Mexico?"
   --- Yacko



More information about the Coco mailing list