Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/rename.asm @ 2848:94197db917c9 lwtools-port
Makefiles: Call OS9ATTR with multiple files (part 1)
Instead of spawning a os9 process for each file, call
it once with the whole bunch of files.
This can speed up the build process significantly when applied
globally. For now, do the special cases having "notdir".
author | Tormod Volden <debian.tormod@gmail.com> |
---|---|
date | Fri, 12 Jul 2013 00:01:00 +0200 |
parents | 84ea83668304 |
children |
line wrap: on
line source
******************************************************************** * Rename - Rename a file * * $Id$ * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 6 ????/??/?? * From Tandy OS-9 Level One VR 02.00.00. nam Rename ttl Rename a file * Disassembled 98/09/11 01:35:46 by Disasm v1.6 (C) 1988 by RML ifp1 use defsfile endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $00 edition set 6 mod eom,name,tylg,atrv,start,size org 0 parmptr rmb 1 u0001 rmb 1 u0002 rmb 2 u0004 rmb 1 nextparm rmb 2 u0007 rmb 1 u0008 rmb 24 pathopts rmb 26 u003A rmb 2 u003C rmb 2 rmb 2 rmb 401 size equ . name fcs /Rename/ fcb edition start cmpd #$0004 at least 3 chars + CR on cmd line? lbcs bpnam branch if less than stx <parmptr save parameter pointer lda #WRITE. write mode os9 I$Open open file to rename in write mode bcc L0032 branch if ok cmpb #E$FNA file not accessible? bne Exit branch if any other error ldx <parmptr else get pointer to file lda #DIR.+WRITE. and try open as directory os9 I$Open try opening again bcs Exit branch if error L0032 stx <nextparm save off updated param pointer ldb #SS.Opt leax <pathopts,u os9 I$GetStt get path options bcs Exit branch if error os9 I$Close close path to file bcs Exit branch if error ldb <pathopts cmpb #$01 bne bpnam bsr L00AE bcs Exit ldx <u0002 lda #C$CR sta -1,x ldx <parmptr lda #READ.+WRITE. os9 I$ChgDir bcs Exit ldx <nextparm ldb <u0008 decb lda b,x ora #$80 sta b,x incb cmpb <u0004 bne L0075 leay ,x ldx <u0002 os9 F$CmpNam bcc L0082 L0075 ldx <nextparm lda #READ. os9 I$Open bcc bpnam cmpb #E$PNNF bne bpnam L0082 leax <Dot,pcr point to . lda #DIR.!UPDAT. open as directory in update mode os9 I$Open do it! bcs Exit branch if error ldx <u003A get file directory entry ptr (PD.DCP) ldu <u003C os9 I$Seek seek bcs Exit branch if error ldx <nextparm get ptr to name to rename ldy <u0007 os9 I$Write bcs Exit os9 I$Close bcs Exit clrb Exit os9 F$Exit bpnam ldb #E$BPNam bra Exit Dot fcc "." fcb C$CR L00AE ldx <parmptr bsr L00F6 ldu <parmptr lda ,u cmpa #PDELIM beq L00C7 lda ,y cmpa #PDELIM beq L00C7 leau <Dot,pcr stu <parmptr bra L00CD L00C7 leax ,y bsr L00F6 bcs L00F2 L00CD stx <u0002 stb <u0004 leax ,y bsr L00F6 bcc L00CD ldb <u0004 beq L00F2 ldx <nextparm os9 F$PrsNam bcs L00F2 lda ,y cmpa #PDELIM beq L00F2 cmpb #$1E bcc L00F2 stx <nextparm clra std <u0007 rts L00F2 comb ldb #E$BPNam rts L00F6 os9 F$PrsNam bcc L0119 clrb leau ,x L00FE lda ,u+ bpl L0107 incb cmpa #C$PERD!$80 bne L010C L0107 incb cmpa #C$PERD beq L00FE L010C decb beq L0118 leay -1,u cmpb #$03 bcc L0118 clrb bra L0119 L0118 coma L0119 rts emod eom equ * end