PDP7-Unix/cmd/chrm.s

" chrm: chrm dir file [file file ...]
"
" chdir into the named directory and unlink the files that are in there
"
" The code depends on a "dd" directory existing which holds the named dir

   lac 017777			" Go to the argc
   tad d5			" Skip past the argc and argv[0]
   dac 1f			" Save argv[1] in the chdir arg below
   dac 2f			" and in the unlink as well? Yes, we skip it
   lac 017777 i			" How many arguments do we have?
   sad d4
     sys exit			" None, so exit
   tad dm4			" Subtract 1
   dac 017777 i			" and save in the argc

   sys chdir; dd		" chdir to dd
   sys chdir; 1:0		" and then into the first argument
1:
   lac 017777 i			" Any arguments left?
   sad d4
     sys exit			" No, exit the program
   tad dm4			" Subtract 4 from the argc and update it
   dac 017777 i
   lac 2f			" Move up to the next filename
   tad d4
   dac 2f			" and save it in the unlink arg
   sys unlink; 2:0		" Unlink the file
   sma
     jmp 1b			" Loop back if the unlink was OK, or issue err
   lac 2b			" Copy the filename pointer below
   dac 2f
   lac d1			" Write the filename on stdout
   sys write; 2:0; 4
   lac d1
   sys write; 1f; 2		" Write " ?\n" on stdout
   jmp 1b			" and loop back

1:
   040077;012000		" String literal " ?\n"
dd:
   <dd>;040040;040040;040040	" Filename dd
d1: 1
d4: 4
d5: 5
dm4: -4