Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/makdir.asm @ 2898:28ed72477814 lwtools-port
Dummy merge of default branch into lwtools
hg -y merge --tool=internal:fail default
hg revert --all --no-backup --rev .
hg resolve -a -m
This dummy merge discards any changes from the default branch
so that the result is the same as what lwtools already had.
When merging back to default branch later, the discarded
changes will be discarded there also, so the result
will be that the default branch will contain what
the lwtools branch had before these merges.
Only scripts/burst was "rescued" from default branch.
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Sat, 11 Jan 2014 18:40:44 +0100 |
parents | 84ea83668304 |
children |
line wrap: on
line source
******************************************************************** * MakDir - Create directory file * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 4 ????/??/?? * From Tandy OS-9 Level One VR 02.00.00. * * 5 ????/??/?? Alan DeKok * Makes multiple directories from a single pathlist. nam Makdir ttl Create directory file * Disassembled 94/12/08 21:42:56 by Alan DeKok ifp1 use defsfile endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $00 edition set 5 mod eom,name,tylg,atrv,start,size org 0 param rmb 2 parameter area mflag rmb 1 made a directory yet from this pathlist? rmb 200 stack space size equ . name fcs /MakDir/ fcb edition Sk.1 leax 1,x go on to the next character Skip lda ,x get a character cmpa #C$SPAC space? beq Sk.1 if so, skip it rts * Any pathnames at all? * Exit with error if none Start bsr Skip skip the first bit, if applicable cmpa #C$SPAC is it a CR? bne start2 no, go ahead and make directories comb set carry ldb #E$BPNam a CR is a bad pathname... bra Exit and go exit * skip leading spaces or '/' and setup pointers start1 bsr Skip skip any non-zero characters, if applicable start2 ldb #$FF a non-zero value stb <mflag we haven't made a directory from this pathname yet stx <param save in the parameter area cmpa #PDELIM leading slash? bne S.020 if not, go get the name * find the pseudo-end of the pathname, stopping at space, cr, '/' S.010 leax 1,x S.020 lda ,x cmpa #C$SPAC space? beq S.030 cmpa #C$CR cr? beq S.030 cmpa #PDELIM slash? bne S.010 if none of these, then skip this character * force the pathname to be a subset of the full pathname S.030 pshs a,x save byte found, where we found it lda #C$CR force it to be a CR sta ,x *try to open it for reading, i.e. does it already exists? ldx <param get the start address of this pathname lda #DIR.+READ. open the directory for reading os9 I$Open check if the directory already exists bcs S.040 if there was an error opening it, go make it OS9 I$Close close the path to the file bra S.050 skip making this directory * The partial pathname doesn't exist, so create it S.040 ldx <param get the start address of this pathname ldb #^SHARE. everything but SHARE. os9 I$MakDir bcs Error clr <mflag clear the flag: we've successfully made a directory * make pathname full again, and continue S.050 puls a,x restore byte, address sta ,x restore it cmpa #PDELIM was it a slash? beq S.010 yes, make pathname full again, and find next one * searched this pathname, have we made a directory from it? tst <mflag have we made a directory? bne CEF if not, error out with fake E$CEF * check for end/continue flag cmpa #C$SPAC was it a space? beq start1 yup, go get another pathname to create ClnExit clrb no error Exit OS9 F$Exit and exit CEF comb set carry ldb #E$CEF we've just tried to create an existing file Error pshs b,cc save error code lda #2 to STDERR leax EMsg,pc to error found string ldy #Elen OS9 I$Write ldx <param get pathname we're trying to open ldy #200 a _very_ long pathname OS9 I$WritLn we're sure that the name ends in a CR... puls b,cc restore error code, condition bra Exit EMsg fcc /makdir: error creating / ELen equ *-EMsg emod eom equ * end