IMD 1.17: 4/04/2010 21:51:03 Cromemco Cromix 11.24 disk 2 0628 CSDSDDST  >@8!!>z4y0= 400 x2z43>048÷0g(CSDSDD2!"!"222>2̀8͹ !:(A!x2"!N":(>22: := :<22:*o0$~2͛8+8&*["R(0:<2G: >2zSD >2ɗ2|DD >2*~#~   < Sfdboot version 00.11 Copyright (c) 1983 Cromemco, Inc.  acromixT"3$~}|{+RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~> 2c `c(Uͫ:::ˇ2222c  (ͫ7 (ͫ:O7ɗ2224804W =0>0͍W͛@ ͆4W 0>014W 0>27ɗ4:3O:2:1ʆ804W 0@͍O>04W 00.2@ - @ ͆$:W(_(7:͆!dͨ027:2'048484O 0͆02͆>27BWbƈ_z4{͛Wbƨ_z4{04848 K40͆͛027:O͜8 483͆027{7'K88A043#43#43#43#403>*E3*O4(2D4͍_:(!!: :g:2 4 ͛! Nͨx2>2:G7G:W(G(x 4/ >ɯ42H4͍!'͍ͨ:(}x!:W ! +}  1=!"! nfe!!mut6:_sr nf e~ S!8E}8@@ 8;!!m͎=!R8"KfC>2:2>2BKh, vCannot boot CROMIX   !@ 84!m!͎!m 8!m~(͗ fncromix.sys! !qpu t s r 66^V n f e~(7!N(75 (k m8!Km+}::!FN 0Oͱ G~ͱ # A[  . Gk!  O6 XsS A66{2>2D4>͛w ${_ut                   @(4~= s@(~5y?>"!  ^#Ve$+~ ~~~wf ^ V.)jutsr>"7>C( = z {?>70BB0 =  Ru(t)!K>utsrqp!  DM= !u*t+s,r-^(V)V^fnu.t/s0r1u2t3s4r5s6r7n*f+^,V-z1 {0 |/ }.0uMlcZ*8m n.f/^0V1N*F+BN,F6666  @A n " ~ ~7i&:o:o:on f ^ V ^V &kjxo ! y ! q(x=(! ͯ !9>2n f ^ V z { | } 0A| }8$f V(U m ͛81 8, 2 8!6z { >  66:wnf|(:wF U S:ˇ2m ͛8 8*"ݧnf"!"n}2>F ~(2} 22 ~2:V(2^V$(H%R0 K-Bz R0BDMn4f5B8( u4t5&N4F5^6V7z 7>n6f7 u6t7n*f+^,V- 0u*t+s,r-^2V3s2r3z }8)B0}lcZ'?z } xn(f):m8 x(x7(_V^fnh&)))zݾ {ݾ |ݾ }ݾ(utsrz(NFnfnfT]6!KNF dN(,2}2:(n f ^{2r6k6̀ͫ 8,>2!"͛ͫ 88 ͌ ʹ ͠ 66F ~w!&f V(F  n&N()+NF Kf V <<^Vu t srzSD ~TD |DD xSC(LC(SB(lB( *~#~{! < = ]( b(lMtM( (MM       @ OS :!S 72T &S #0 OS :S 7T &S ## OS :S 7!T &S # OS :S 7T %:S #@ T ->ROS ;S T 'S $,rOS ;S T &8S $$OS :8S ;+T &2S $} OS : S 6#T %3S #JOS :S 6T %-S # LO(S 99S 57T %&S #OS 94S 3&T %S "+OS :3S ;T &,S $OS :.S ; T &&S $ OS :&S 9T &S $OS 5S 8T &S )8  OS 9/S 3T %S "$~.OS 9+S .T %S "z{|}:OS 9&S 2-T % S "yOS 9!S 2#T %S "vwx%O S 8S +2T #S  5o&OS 8S  T #S  .'OS 8S 1T # S  +R(OS 8 S *T #S  &  8OS 85S .T $S !<=>tOS 81S .T $S !;OS 8,S -7T #8S !-./0123456789: OS 8(S - T #0S !+'1O S 7)S '6T "S ;2OS 7&S 'T "S 43OS 7#S :!T " S 1 4OS 7S &*T " S -OS 9S 2T $:S " stu OS 3S 2T $4S ,pqrOS 9S 1-T $/S "bcdefghijklmnoOS 9S 08T $'S !:^_`a)OS 8S +T #S  #   *OS 8S */T "9S  l+OS 7;S *"T "5S  ,OS 77S * T "0S   H!OS 8$S ,;T #,S !%&'()*"OS 8 S ,!T #%S !"#$#OS 8S ,T # S  8 !$OS 0S ,T #S )/5OS 7S &T "S )6OS 7S &T !;S &7OS 7S %0T !7S "8OS +S %T !2S )&OS 9 S 0T $!S !3\]OS 9S 0T $S !.YZ[OS 9S /2T $S !(WX-*OS 89S /"T $S !#?@ABCDEFGHIJKLMNO.-OS 74S )4T "+S   .OS %S )&T "&S )k/OS 70S )T "!S  0OS 7-S (1T "S    t9OS 8S %T !.S , r:OS 7S %T !*S ;O S 8S $'T !%S +"<OS 7S #4T !S MT +T +TNT *T *T O`T )T )T **,PT )T )T 9i EQS 0 S 0 T S !_`abcdFQ S 0S  T S STUVWXYZ[\]^"GQS 0S 0T S @ABCDEFGHIJKLMNOPHT /T /TYZ[\=O S 7 S #T !S >OS 7S ";T !S I?OS 7S "#T !S  3@PS 1T T 7QT (T (T "?RSTIT /T /T JT .T .T +KT -T -T +qLT ,T ,T]^_`APS  T 2T 02BPS -T ) T .opqrstuvwxyz{|}~CPT ;T  T 'jklmnDQS 0 S 0T S $efghUVWX  abcduvwxmnopK S 0S  T *:S "KS 0S 0T *3S rstuvwxyz{|}~OS  S T *(S )opOS S  T *!S ) nefghyz{|qrstTOS S T *S )lmOS S .T *S (5ghijkOS  S  T * S (*efOS S  +T *S ( cdijkl}JS (S )T +S -(~KS 0 S 0T + S $ KS #S #T +S -#1K S S T +S -  OS S  T *S (ab4OS 8S  %T )6S ( \]^_`OS 3S  T )/S (WXYZ[wOS S  0T )(S *VOS ;S T '#S %mOS ;S /T 'S % OS ;S T 'S % hOS ;S /T 'S %OSS T (S +9     OS ;:S T (S &OS ;5S  T ( S & dOS ;1S 8T (S &equQetcPhelpOlibNmailMpkgLqueryKspoolJuser1Iuser2HOS :S  "T )"S *TU*OS ,S  T )S '4=>?@ABCDEFGHIJKLM0OS $S  T )S '%#$%&'()*+,-./0123\OS S %T )S '!"OS ; S T 'S $4 OSS ,T ';S +.NOS ;,S  T '5S %4OS ;'S +T '.S %,AOS ;"S T '(S %$jsysequ.z80Gmodeequ.z80Fstructs.z80Etmodeequ.z80D 2OS  3S T (7S , wOS S  T (.S &6ROS  S  T (&S &,OS S 4T ( S &"   list off ; list noxref ; (Permitted only with ASMB versions 03.08 or higher) stdin equ 0 ;standard input channel stdout equ 1 ;standard output channel stderr equ 2 ;standard error channel argc equ 40H ;location for argument count argv equ 42H ;location for argument list vector arg0 equ 0 ;arg offset arg1 equ 2 ;arg offset arg2 equ 4 ;arg offset arg3 equ 6 ;arg offset arg4 equ 8 ;arg offset ; ; C-register modes for .create, .open ; op.re2 ;program id id.hl equ 3 ;id contained in HL register ; ; Signals ; sigabort defv 1 ;CNTRL-C key siguser defv 2 ;user-specifiable key sigkill defv 3 ;kill sigterm defv 4 ;terminate (catchable) sigalarm defv 5 ;alarm clock sigpipe defv 6 ;broken pipe sighangup defv 7 ;modem hang up sigmax defv 8 ;maximum signal number ; ; SYSTEM CALL NUMBERS ; .makdev equ 00H ;makdev(d,e,hl) make device entry .makdir equ 01H ;makdir(hl) make a directory .getdir equ 02H ;getdir(equ 5 ;d = other access, e = mask st.ftype equ 6 ;d = file type st.size equ 7 ;dehl = file size st.nlinks equ 8 ;de = number of links st.inum equ 9 ;de = inode number st.device equ 10 ;de = device number of file system containing inode st.tcreate equ 11 ;de-> time created st.tmodify equ 12 ;de-> time last modified st.taccess equ 13 ;de-> time last accessed st.tdumped equ 14 ;de-> time last dumped st.devno equ 15 ;de = device number if inode is a device ; ; fi,de,hl) write n bytes .rdbyte equ 16H ;a=rdbyte(b) read 1 byte .wrbyte equ 17H ;wrbyte(b,a) write 1 byte .rdline equ 18H ;de=rdline(b,de,hl) read a line .wrline equ 19H ;de=wrline(b,hl) write a line ; equ 1AH .printf equ 1BH ;printf(b,hl) print formatted string .error equ 1CH ;error(a,b,de,hl) print error message .fstat equ 20H ;fstat(c,de,hl) get file status (inode) .cstat equ 21H ;cstat(b,c,de) get channel status (inode) .fchstat equ 22H ;ad equ 0 ;read only op.write equ 1 ;write only op.rdwr equ 2 ;read and write op.append equ 3 ;append only op.xread equ 4 ;exclusive read only op.xwrite equ 5 ;exclusive write only op.xrdwr equ 6 ;exclusive read and write op.xappend equ 7 ;exclusive append only op.truncf equ 80H ;truncate on create flag op.condf equ 40H ;conditional create flag ; ; C-register file position modes for .setpos ; fwd.begin equ 0 ;forward from the beginning of the file fwd.hl) get current directory name .setdir equ 03H ;setdir(hl) change current directory .mount equ 04H ;mount(c,de,hl) mount file system .unmount equ 05H ;unmount(hl) unmount file system .delete equ 06H ;delete(hl) delete file .chkdev equ 07H ;chkdev(d,e) check for device driver .create equ 08H ;b=create(c,hl) create & open file .open equ 09H ;b=open(c,hl) open file .chdup equ 0AH ;c=chdup(b) duplicate channel .close equ 0BH ;close(b) close filele types for st.ftype ; is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file ; ; access bits for access flags ; ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit ; ; C-register modes for .setuser, .getuser, .setgroup, .getgroup ; id.effective equ 0 ;effective id id.login equ 1 ;login id id.program equ fchstat(c,de,hl) change file status .cchstat equ 23H ;cchstat(b,c,de) change channel status .flink equ 24H ;flink(de,hl) link to file .clink equ 25H ;clink(b,de) link to open channel .faccess equ 26H ;faccess(c,hl) test file access .caccess equ 27H ;caccess(b,c) test channel access ; equ 28H ; equ 29H .getdate equ 30H ;d,e,h,l=getdate() get date .setdate equ 31H ;setdate(e,h,l) set date .gettime equ 32H ;e,h,l=gettime() get time .settime equ current equ 1 ;forward from the current file position fwd.end equ 2 ;forward from the end of the file bak.current equ -1 ;backward from the current file position bak.end equ -2 ;backward from the end of the file ; ; C-register modes for .fstat, .cstat, .fchstat, .cchstat ; st.all equ 0 ;all of inode (128 bytes) st.owner equ 1 ;de = owner st.group equ 2 ;de = group st.aowner equ 3 ;d = owner access, e = mask st.agroup equ 4 ;d = group access, e = mask st.aother  .exchg equ 0CH ;exchg(b,c) exchange data in files .trunc equ 0DH ;trunc(b) truncate open file .pipe equ 0EH ;b,c=pipe() create a pipe ; equ 0FH .getpos equ 10H ;dehl=getpos(b) get file position .setpos equ 11H ;setpos(c,dehl) set file position .getmode equ 12H ;d=getmode(b,c) get device characteristics .setmode equ 13H ;d=setmode(b,c,d,e) set device characteristics .rdseq equ 14H ;de=rdseq(b,de,hl) read n bytes .wrseq equ 15H ;de=wrseq(b  33H ;settime(e,h,l) set time .getuser equ 34H ;de,hl=getuser() get user id .setuser equ 35H ;setuser(hl) set user id .getgroup equ 36H ;de,hl=getgroup() get group id .setgroup equ 37H ;setgroup(hl) set group id .getprior equ 38H ;l=getprior() get process priority .setprior equ 39H ;setprior(l) set process priority .getproc equ 3AH ;hl=getproc() get process id ; equ 3BH ; equ 3CH .ksam equ 3DH ;ksam(c,de,hl) ksam call .lock equ 3EH ;lock(c,de, ;device not mounted ?nochild defv 25 ;no child processes ?nomemory defv 26 ;not enough memory ?ovflo defv 27 ;divide overflow ?argtable defv 28 ;argument table exhausted ?arglist defv 29 ;bad argument list ?numlinks defv 30 ;too many number of links ?difdev defv 31 ;cross-device link ?nodevice defv 32 ;no special device ?usrtable defv 33 ;user process table exhausted ?badvalue defv 34 ;value out of range ?notconn defv 35 ;I/O device not connected ?devopen defv 36 ;device open error ?diruse  55H ;hl=version() get system version # .boot equ 56H ;boot(hl,de) boot new operating system form ;* error code definitions -- RVH Jan 30,1979 ?badchan defv 1 ;bad channel # ?toomany defv 2 ;channel already open ?notopen defv 3 ;channel not open ?endfile defv 4 ;end-of-file ?ioerror defv 5 ;I/O error ?filtable defv 6 ;file table exhausted ?notexist defv 7 ;file does not exist ?badname defv 8 ;bad file name ?diraccess defv 9 ;directory access ?filaccess defv 10 ;file access ?existsle defv 50 ;lock table exhausted ?tapeio defv 51 ;tape I/O error ?badio defv 52 ;bad I/O ; list xref ; (Permitted only with ASMB versions 03.08 or higher) list on hl) lock key .unlock equ 3FH ;unlock(c,de,hl) unlock key .signal equ 40H ;signal(c,hl) set up to receive a signal .kill equ 41H ;kill(c,hl) send a signal .sleep equ 42H ;sleep(hl) sleep for hl seconds .alarm equ 43H ;alarm(hl) set alarm clock .pause equ 44H ;pause() pause for alarm clock .wait equ 45H ;c,de,hl=wait() wait for child process .exit equ 46H ;exit(hl) exit process (close files) ; equ 47H .fshell equ 48H ;fshell(de) fork a sQR defv 11 ;file already exists ?nospace defv 12 ;no disk space left ?noinode defv 13 ;no inodes left ?inotable defv 14 ;inode table exhausted ?badcall defv 15 ;illegal system call ?filsize defv 16 ;file size too big ?mnttable defv 17 ;mount table exhausted ?notdir defv 18 ;not a directory ?isdir defv 19 ;is a directory ?priv defv 20 ;privileged system call ?notblk defv 21 ;not a block special device ?fsbusy defv 22 ;file system busy ?notordin defv 23 ;not an ordinary file ?notmount defv 24 list off list noxref ; (use this line only with ASMB version 3.08 or later) ; ; Cromemco Inc. ; October 4, 1983 ; ; ----------------------------------------------------------------------------- ; mode definitions for terminals and printers, ; TTY, QTTY, MTTY, LPT, SLPT, QSLPT, and TYP ; c-register values for .GETMODE and .SETMODE system calls MD_ISPEED defv 0 ; input speed MD_OSPEED defv 1 ; output speed MD_MODE1 defv 2 ; flags: RAW, ECHO, etc. MD_MODED defv 3 ; delays for NL, CR, etchell process .shell equ 49H ;shell(de) transfer to shell process ; equ 4AH .fexec equ 4BH ;fexec(bc,de,hl) fork and execute program .exec equ 4CH ;exec(bc,de,hl) execute program ; equ 4DH ; equ 4EH ; equ 4FH ; equ 50H .indirect equ 51H ;indirect(a,b,c,de,hl) system call in A-register .update equ 52H ;update() update disk I/O buffers .mult equ 53H ;dehl=mult(bc,hl) multiply .divd equ 54H ;de,hl=divd(dehl,bc) divide .version equ defv 37 ;directory in use (delete) ?filuse defv 38 ;file in use (exclusive access) ?nomatch defv 39 ;no match on ambiguous name ?chnaccess defv 40 ;channel access ?notcromix defv 41 ;not a cromix disk ?badfree defv 42 ;bad free list ?badinum defv 43 ;bad inode number ?readonly defv 44 ;device mounted for read only ?noproc defv 45 ;process does not exist ?signal defv 46 ;system call was aborted ?badpipe defv 47 ;bad call on a pipe ?locked defv 48 ;locked ?deadlock defv 49 ;deadlocked ?lcktab  . MD_MODE2 defv 4 ; flags: PAUSE, XFF, etc. MD_MODE3 defv 5 ; flags: CBREAK, VRAW, etc. MD_ERASE defv 6 ; auxilliary erase character MD_DELECHO defv 7 ; erasure echo character MD_LKILL defv 8 ; line kill character MD_USIGNAL defv 9 ; SIGUSER signal key MD_LENGTH defv 10 ; page length (lines) MD_WIDTH defv 11 ; page width (columns) MD_BMARGIN defv 12 ; bottom margin (lines) MODELEN defv MD_BMARGIN + 1 ; more c-register values for .GETMODE and .SETMODE system calls MD_STATUS defv -100 efv 03H ; (pairs of bits) TABDELAY defv 0CH ; CRDELAY defv 30H ; FFDELAY defv 40H ; (single bits) BSDELAY defv 80H ; ; d-register & e-register bits for MD_MODE2 calls PAUSE defv 0 ; wait for CNTRL-Q after a page is output NOTIMMECHO defv 1 ; do not echo characters typed-ahead NOECNL defv 2 ; do not echo NLs SGENABLE defv 3 ; send SIGUSER signal if MD_USIGNAL key pushed ABENABLE defv 4 ; send SIGABORT signal if CNTRL-C key pushed XFF defv 5 ; expand FFs WRAP defv 6 ; wrap-around if page v 10 ; 1800 baud S_2400 defv 11 ; 2400 baud S_4800 defv 12 ; 4800 baud S_9600 defv 13 ; 9600 baud ; defv 14 ; External A ; defv 15 ; External B S_19200 defv 16 ; 19200 baud S_CTSWAIT defv 125 ; wait for Clear To Send S_NOCHG defv 126 ; no change of baudrate S_UNINIT defv 127 ; baudrate has not been initialized yet Sfl_AUTO defv 7 ; (bit 7) input CRs from keyboard to set baudr ; d-register & e-register bits for MD_MODE1 calls TANDEM defv 0 ; send XOFF/XON to control filling of  ; no function-key decoding. RETYPE defv 6 ; use of edline allowed DISCARD defv 7 ; discard the device when it is no longer open ; d-register bits for MD_STATUS calls INOTEMPTY defv 0 ; there is a character in the input buffer ; (but if not CBREAK, RAW, or BINARY mode, ; it won't be accessible until a whole line ; is entered) ; .GETMODE d-register bits for MD_MODEM calls RXDA defv 0 ; Receiver Data Available TXBE defv 2 ; Transmitter Buffer Empty DCD defv 3 ; Data Carrier ; check whether input queues empty MD_IFLUSH defv -101 ; flush input queues MD_FNKEYS defv -104 ; turn function keys on or off ; d-register = 1 to enable fnkeys ; d-register = 0 to disable them MD_PSIGHUP defv -105 ; signal current process if hang up ; defv -106 ; (this value reserved) MD_MODEM defv -108 ; (QTTYs and MTTYs only) MD_TYP defv -109 ; (TYP only) ; more c-register values for TYP only struct 64 TYP_CWIDTH ds 1 ; character width in 1/120 inches TYP_LHEIGHT ds 1 width is exceeded SIGALLC defv 7 ; send SIGUSER signal for every key pushed ; d-register & e-register bits for MD_MODE3 calls ESCRETN defv 0 ; ESC causes input line to be returned FNKEYS defv 1 ; response to 3102 function keys enabled HUPENAB defv 2 ; hang up modem when device is finally closed SIGHUPALL defv 3 ; send SIGHANGUP signals to all processes which ; use this TTY device if modem hangs up CBREAK defv 4 ; on input, return after each character, ; no erase, linekill, or EOF chainput buf XTAB defv 1 ; expand TABs LCASE defv 2 ; convert alphabetics to lower case ECHO defv 3 ; echo input CRDEVICE defv 4 ; on input, map CR into NL, ; on output, change NL to CRLF. RAW defv 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncation, ; treat X-OFF & X-ON as regular input. ODD defv 6 ; parity function bits EVEN defv 7 ; ; d-register & e-register values for MD_MODED calls NLDELAY d Detect CTS defv 5 ; Clear To Send RXBREAK defv 7 ; Reciver data line broken ; .GETMODE e-register bits for MD_MODEM calls notRI defv 6 ; Not ringing notDSR defv 7 ; Data Set not Ready ; .SETMODE d-register and e-register bits RTS defv 1 ; Request to Send TXBREAK defv 4 ; Break the transmitter line DTR defv 7 ; Data Terminal Ready ; d-register bits for MD_TYP call TYPCHK defv 1 ; the 3355 printer is in a check condition TYPPAP defv 2 ; the 3355 printer is out of paper TYPRIB ; line height in 1/48 inches TYP_LMARGIN ds 1 ; left margin in columns (1/10 inches) TYP_FORMS ds 1 ; type of forms (ignored by the driver) ds 1 ; reserved TYPMODLEN defv $-64 mend ; d-register values for MD_ISPEED baudrate calls S_HANGUP defv 0 ; hang up phone ; defv 1 ; 50 baud ; defv 2 ; 75 baud S_110 defv 3 ; 110 baud ; defv 4 ; 134.5 baud S_150 defv 5 ; 150 baud ; defv 6 ; 200 baud S_300 defv 7 ; 300 baud ; defv 8 ; 600 baud S_1200 defv 9 ; 1200 baud ; defracters. BINARY defv 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncation, ; treat X-OFF & X-ON as regular input, ; no tandem mode (i.e., no input buf control), ; no abort signal (^C), no user signal, ; no changing or checking parity bit, ; no delays after control chars such as NLs, ; no echoing, ; no character transformations (i.e., ignore ; the LCASE, CRDEV, and XTABS modes)    defv 3 ; the 3355 printer is out of ribbon TYPOFL defv 4 ; the 3355 printer is off-line list xref ; (use this line only with ASMB version 3.08 or later) list on ted (bit in in.stat) if.lock defl 0 ;inode locked (in use by a process) if.want defl 1 ;inode wanted by another process if.modf defl 2 ;inode has to be written out if.modt defl 3 ;update time modified if.acct defl 4 ;update time accessed ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit eject ; ; directory format definitions ; struct 0 dr.name defs 24 ;name of entry namsize defs 0 ;size ooup id in.aowner defs 1 ;owner access in.agroup defs 1 ;group access in.aother defs 1 ;other access in.stat defs 1 ;file status in.nlinks defs 1 ;number of links to inode defs 1 in.size defs 4 ;file total size (in bytes) in.inode defs 2 ;this inode number in.parent defs 2 ;parent inode number (for directories only) in.sdevn defs 0 ;special device major & minor numbers in.dcount defs 2 ;number entries in a directory in.usage defs 4 ;number blocks actually used in file in.tcreate defs 6 ;timeer TPBLKNO equ tpmmin + 8 ; block number TPOBLKLN equ tpmmin + 9 ; block length for next block written TPIBLKLN equ tpmmin + 10 ; block length of first block read TPOBLKS equ tpmmin + 11 ; number of blocks written TPSTAT equ tpmmin + 12 ; get error (status-2, status-1) tpgmmin equ TPMODE ; minimum getmode number tpgmmax equ TPSTAT ; maximum getmode number tpsmmin equ TPABORT ; minimum setmode number tpsmmax equ TPOBLKLN ; maximum setmode number ; TPMODE bits EOFCLOSE equ 7 ; wr; ; super block definitions ; frbcount equ 80 ;free block list size fricount equ 80 ;free inode list size frbsize equ frbcount*4+2 ;free list size in bytes frisize equ fricount*2+2 ;free list size in bytes struct 0 sb.version defs 2 ;version number sb.cromix defs 6 ;'cromix' sb.istart defs 2 ;first inode block sb.isize defs 2 ;number of inodes sb.fsize defs 4 ;max block number sb.time defs 6 ;last modified time mend struct struct 512-frbsize-frisize sb.nfree defs 2 ;free block countf name defs 4 ;reserved dr.stat defs 2 ;status & flags dr.inum defs 2 ;inode number of file dirsize defs 0 ;directory entry size (32 bytes) mend struct ds.alloc equ 7 ;entry allocated bit  created in.tmodify defs 6 ;time last modified in.taccess defs 6 ;time last accessed in.tdumped defs 6 ;time last dumped (backed up) in.index defs 4*20 ;block pointers inosize defs 0 ;total inode size in bytes mend struct inocount equ 20 ;size of inode table is.type defl 7 ;file type mask (in.stat) is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file is.alloc defl 7 ;inode allocaite EOF to tape when device closes ; TPSTAT status bits, returned in e-register (obtained from PIO input port A) DRVBUSY equ 7 ; drive busy WRRDY equ 6 ; FIFO ready for input (used for write) RDRDY equ 5 ; FIFO output ready (used for read) LOADPT equ 4 ; load point FBUSY equ 3 ; formatter busy ONLINE equ 2 ; on line IDENT equ 1 ; ident? RDY equ 0 ; ready ; TPSTAT status bits, returned in d-register (obtained from PIO input port B) HISPEED equ 7 ; high speed status HARDERR  sb.free defs frbcount*4 ;free list address sb.ilist defs 0 ;i-list address sb.ninode defs 2 ;free inode count sb.inode defs fricount*2 ;free inodes mend struct eject ; ; inode buffer definitions ; struct 0 defs 2 ;avail list pointers defs 2 in.devn defs 2 ;inode device number in.inum defs 2 ;inode number in.flags defs 1 ;flags byte in.ucount defs 1 ;usage count in.begin defs 0 ;beginning of inode on disk in.owner defs 2 ;file owner's user id in.group defs 2 ;file owner's gr list off list noxref ; (use this line only with ASMB version 3.08 or later) ; mode definitions for TP tape devices ; c-register values for .GETMODE and .SETMODE system calls tpmmin equ -60 ; minimum mode number TPABORT equ tpmmin + 0 ; re-initialize tape driver TPFMARK equ tpmmin + 2 ; write file mark TPSECURE equ tpmmin + 3 ; security erase TPREWIND equ tpmmin + 4 ; rewind TPUNLOAD equ tpmmin + 5 ; rewind and unload TPMODE equ tpmmin + 6 ; mode bits TPFILNO equ tpmmin + 7 ; file numb  equ 5 ; hard error FLMARK equ 4 ; file mark CORERR equ 3 ; correctable error WRPROT equ 2 ; file write-protected EOT equ 1 ; end of tape RWINDING equ 0 ; rewinding list xref ; (use this line only with ASMB version 3.08 or later) list on  u͊8 !:wG F!^5(:O! i a2iy(!!*@}8*Bnf| >!;7 8x!!*@}8$*Bnf|(##~5018_!~2!>7ξͻ >!70> ͢x@  x  >!7! - %  *s! l*s"s~#͢z :Ox@  x ~ > w͢R~# Gxxxx {_0͢Rͻ >!7 y!:Ox- % ~#  #~(. 7|}@ ̀H<@##~#foBBB"CPC~CCCD6DdDDDDEJExEEEF0F^FFFFGDGrGGGG*HUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUioload.binCoctart.iopBoct_reset.binAquadart.iop@HHH!"B HI  $@DD0:8RS Only IO1, IO2, IO3, and IO4 allowed No input file IO processor is improperly addressed or not in system IO processor talking to serial line No response - the IO processor is busy No correct response from IO Monitor .iopU%(FL|.^#V#bkW%%+}<}o(!_(!g(!8]R:wG͈8tz8!>ݾ w# s#^#V#SsSu####!8&:wG͈0 *CS*[RDM[$$+K[*@q@ÏHWa!@#~#~#fo~#foP#M OCTART IOP System version 11.18 Copyright (c) 1983 Cromemco, Inc. Version 11.18.00_qtty_qslpt_iomem !@#~#( ## > 7~#fo!A@@s#r#  U!EOP!2LpP!IOP!MOP !SOP!SO"QO!MO!IO!HQ8 xݾ _Q!SO ͷO0 7*QO(= !~OR0!*QO!MO͓QP"QO!=Pw#!=P~( 0#7~wz!=PPzG7/w K>(7 0P~ 0P(ܻP~p>"7yGy/GPPɅo$˽˵oկ[A wwww"Q y>>6>} KJ|z(-͌K K@(x(z( KPK>>6nfP}>:J|*KfJ|>UKIG(GO͌K Kw ({y{0@W!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìWUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!B ##~#(# 7p+q+V+^BR}!BPw#w1@@|G^BPHhOSS!@B>> KHSK JJqJ IMP!EOQ8 z!w!mP7O!MO"QOܻO nf}7~w#~w+www#w+^Vut{ ut}|}( #V+^{7^V{  }|~(srww~#+~~# w~w ^V~#~w#~ww+w+w+w!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìW!ìWWMeW-XXXJYwYX!X!X!Wa81 [!Xutp*~(~"w"4(N6e~* K5>$7x^d͂K05 An(͂K0͂X.>UK͂X>ͫJI8 K"~( `~*~b KK`ww"Vȯw-NFxGdxʹdXe3[]N`~"O(o ~ |˿ >ͪ_|Ä\n_Ncyyhe͌cn-O?8 K!MOQ*K7I"Knf87}!EO"Q!VmPsISI"IH8:!H*I*I*I!9ut!MO"Q{I 8 > ͻI P !IO*K!9ut1@*K"Q!"KqJ IH8SKHGox (/(2(90A&))B^#V#N#Fo&y(( ~#fo_U BGH>GH>>"7!OSQ?##J_ JJ!KS"QJnfP^ ͺKG!KSQ8##p#q#s#r!OS"Q]T(>!KSP!Q@P!OSP!S0$oN#F!@@B B!T~( > P76#6#6#s#r#6!#q#pq#p@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!S0$o@@^q#Vpi`R(!ìW!ìW!ìW!  (ct- f>ëJf~nf"^J ^+V,zJw+w,͌K(((`GK]n+f,NndK͌Kg K͏K|()(;!Y Z`(D(g`GK.7Kn+f,|Yq+p,Kn+f,|YB`i>"7>ͪ_>.ͪ_x>9f"l =ˍͪ_u"|= dNfx(C>dx}(?~aZ8-x ~ | 6zZ0>.~ʹd8$`|p"FX|0͎X>.7>"7>UK~N~ʹd͆d8F ~ʹd8`Z0(+Z0( ! ( (ÉZw>ͫJIw7]  7(>ͩI0>ɐPa@a[awaPa:a<(2a aXH8rH2a:a K>$7 K!a5:àH#~ˆ*a}(+"a*a~#"a KNK͌KG*a}( +"a*ap#"a K͌Kg K͏KGK|( CaogB +"a!aƧ>"7!aP~+!aP6+6rf[ s{a8MXH8]b8Z.AP}aq#put}͢bwO}͗cJe>w yi`rHG^#V^#VnfB =>$7rH̀H̀HFxaNxcxcxcxYcw!5fP~!=fP~ͮbͮbͮbbnS8@ͮbMDnS8-bcnS8ͺbnS8c~#^_G O g o M>>>>!c~#^_%G O g o M>,f>$f>(f> f!c~#^_5G O g o M>4f>8f>0fãfèfèfèfãfffãf,gãfèfèfãfèfãfãffãfãfãfèfãfãfãfãfãfMgggggggggggggggagggggggg,ggggfgffg!i>P}o~#+ s#r+T]>P x SiW~(Knf4~5(}< )}o~(^#V+sr[is#r+"ih|h7_W~<(d=(~ A*i|!0! }h666!6$R6%6'66F `~ '! }h8QG"n VĦ[xͺ[ !}hGn ~"0 x˿( ~x( KNKGK>UK~ (_G!"n 4˿n "f (T(P#(K%(X f( xVPh8v͇]n !~"0 x˿ (((<"F(^i8M͇]˿ 0^i0y(~$R( ~%͇]>  qp6]v]v]G"n L~Ox(\\q v]yv]˸˿n (v(w !fO]& !^(K]!~xF(f'tͺ[>ëJ! h8|"nbc7jc7rc77N >0yNidg\Xe|((|(( Rc6eRc7Rc<7 >y ͺbͶTbͶTͮbͶTbͶTG(  G( _!|cP ˙xwC #+yG(  G( _!|cP ˙x/wC #+yyhec~!dPͻPxFwNx``ppN A dc͆d d>(éI͇cid 7 x id͇e x0ogXe*dxͩI0d6e>(PnS!"f~U!|c_x0*!afP~( W{!5fPNx( e{͗c{͌c>"7 yyO>yͪ_~ @͎_6a_ 5 4~'w!F(("n "n ~) v(6 |_v]"n f|_> ͪ_~ ͎_65~'w6> ͪ_~ 0"ngW|ͷ_ͪ_ͷ_n_!h8v Wn_N~(g> >g^`nf}(5~ 6+ut!/`P~: !}h8F"n ( }h84 ;nu( } i` i`}(nfPͫ`ɯhgFxc|!`"IJIͩIx͌c_ͫ`N~(>@N(>ëJ!`! `!`}h0!ÔP!͟P0](S^#V+Si~(^V{_s#r# 6#6#ututnfs44Oi{[i7W~(P5nf~5(} -}o~(^#V+{_sr[is#r+"ii|i7~!K]F`]!NFx˿ f(> \~ WS_>ͫJ_0]`nfJ~ V_~)"n>F^"n (A (1((#( 0 >^Ͷ]@v(~$R ]> ]>"^!V> ]> ~  7>͌Kg~ ~<0 K|"^>@UK> 8("n n ~(=^84ê_v ɧ "nʕ_ ^ (7 |_ ^ª_~ ~'8ͪ_~ Î_~=G~(=x"n 8&N  ͪ_~ Î_> "^~ !v7^_"n~)"n !n > >y>y Y QyheO 0!%fPyN!-fP!e~6a<!|c6#͙de!fPePeQeReSeTeUeVeWe~ f˩ f#y˱yyˡy ZIKikS[#+3;( 80H@XPh`xpTtLMNPlmnp :h<(g!h~O#~G(͙f#=oWgq#p>/!|c~#^_U_ G 5O g 1o %M_>> !fS0_w#w>>>!~  gumemt - OCT1, OCT2, OCT3, or OCT4 BUCS*[RDM[$$+K[*@r@ÏHVc _!@#~#~#fo~#foP#M z QUADART IOP System version 11.22 Copyright (c) 1983 Cromemco, Inc. Version 11.22.00_qtty_qslpt_iomem !@#~#( ## > 7~#fo!A@@s#r#%(FL|.^#V#bkW%%+}<!!O!~y#ξ~Up*~Only OCT1, OCT2, OCT3, and OCT4 allowed No arU@ ̀H<@##~#foBBB"CPC~CCCD6DdDDDDEJExEEEF0F^FFFFGDGrGGGG*HUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU  UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU!B ##~#(# 7p+q+V+^BR}!BPw#w1@@|G^BPiOSS!@B>> KHSK JJqJ IMP!EOQ8 z!w!mP7O!MO"QOܻO nf}7~w#~w+www#w+^Vut{ ut}|}( #V+^{7^V{  }|~(srww~#+~~# w~w ^V~#~w#~ww+w+w+wg~* K5>$7xf͂K05 An(͂K0xW.>UKxW>ͫJI8 K"~( ͻ_~*0e KKͻ_ww"Vȯw-NFxfxMgg Z\N`~"O(o ~ |˿ >͗^|q[n^NÊfyn-et- f>ëJf~nf"^J ^+V,zJw+w,͌K(((_GK\n+f,NgK͌Kg K͏K|()(;!XX_(D(g_GK.7Kn+f,|Xq+p,Kn+f,|XB`i>"7>͗^>.͗^x>9f"l =ˍ͗^u"|=͡fNfO?8 K!MOQ*K7I"Knf87}!EO"Q!VmPsISI"IH8:!H*I*I*I!9ut!MO"Q{I 8 > ͻI P !IO*K!9ut1@*K"Q!"KqJ IH8SKHGox (/(2(90A&))B^#V#N#Fo&y(( ~#fo_U BGH>GH>>"7!OSQ?##J_ JJ!KS"QJnfP^ ͺKG!KSQ8##p#q#s#r!OS"Q]T(>!KSP!Q@P!OSPoWgN#F!@@B B!S~( > P76#6#6#s#r#6!#q#pq#poWg@@^q#Vpi`R(!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!EOP!2LpP!IOP!MOP !SOP!SO"QO!MO!IO!HQ8 xݾ _Q!SO ͷO0 7*QO(= !~OR0!*QO!MO͓QP"QO!=Pw#!=P~( 0#7~wz!=PPzG7/w K>(7 0P~ 0P(ܻP~p>"7yGy/GPPɅo$˽˵oկ[A wwww"Q yx(Cfx}(?~NY8-x ~ | 6gY0>.~Mg8$ͻ_|p"FW|0̈́W>.7>"7>UK~N~Mgg8F ~Mg8ͻ_Y0(+Y0( ! ( (vYw>ͫJIw7\  7(>ͩI0>!0! Pi666!6$R6%6'66F `~ '! Pi8QG"n VēZxͧZ !PiGn ~"0 x˿( ~x( KNKGK>UK~ (^G!"n 4˿n "f (T(P#(K%(X f( xVPͳi8vt\n !~"0 x˿>>6>} KJ|z(-͌K K@(x(z( KPK>>6nfP}>:J|*KfJ|>UKIG(GO͌K Kw ({y{0@!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âV!âVͶVMXhV#WWW7XdXW!W!W!Vd81 Y!Wutp*~(~"w"4(N   (((<"F(1j8Mt\˿ 01j0y(~$R( ~%t\>  qp6ͺ\c\c\G"n L~Ox([[q c\yc\˸˿n (v(w !f<\& !^(8\!~xF(f'tͧZ>ëJ! ͳi8|"n~!8\FM\!NFx˿ f(> \~ W@^>ͫJ^\_nfJ~ V^~)"n>F^"n (A (1((#( 0 >^ͣ\@v(~$R ͸\> ͺ\>]!V> ͺ\> ~  7>͌Kg~ ~<0 K|]WNc^ LN!Pi8@ Pi84 ;nu( } Kc Kc}(n f P͍cɯͳigFxjf|!}c"IJIͩIxFfc͍cF~(>@ëJ!Pi0!ÔP!ßPPccd2dPPd:c<(2c cXH8rH2c:c K>$7 K!c5:c̀H#~ˆ*c}(+"c*c~#"c KNK͌KG*c}( +"c*cp#"c K͌Kg K͏KGK|( CcogB +"c!cƧ>"7!dP~+!dP6+6{͢d8;XH8K~e8H.AP}͢dq#put}Tewi`5~ 6+ut!_P~: !Pi8F"n ( Pi84 ;nu( } V_ V_}(nfP͘_ɯͳigFxjf|!_"IJIͩIxFf^͘_N~(>@N(>ëJ!_! _!_Pi0!ÔP!͟P\Xh_@`P[`~``^`!k`!2`!_d8! !`6!{`u t p ͠`~GK4 5>$7 K5 ~( ͤc~0eaNx˿`NcNÊfy͌KͰc͌Kg K͏K|!`8öcGKNfx~(|Mg8|Kf|Ff~p>"766@6B6 B66((~>īJ^np@ !j>P}o~#+ s#r+T]>P x SjW~(Knf4~5(}< )}o~(^#V+sr[js#r+"ji|i7_W~<(d=(~ A*j|(S^#V+Sj~(^V{_s#r# 6#6#ututnfs44"j{.j7W~(P5nf~5(} -}o~(^#V+{_sr[js#r+"jj|j7>@UK> 8("n n ~(=]84×^v ɧ "nʂ^ ] (7 i^ ]—^~ ~'8͗^~ {^~=G~(=x"n 8&N  ͗^~ {^> ]~ !v7]^"n~)"n !n > ͗^~ @{^6a^ 5 4~'w!F(("n "n ~) v(6 i^c\"n fi^> ͗^~ {^65~'w6> ͗^~ 0"ngW|ͤ^͗^ͤ^n^!ͳi8v Wn^N~(g> >g^n_nf}(rHG^#V^#VnfB =>$7rH̀H̀HFxͱdNxofxjfxefx fw!hP~!hP~`e`e`erenS8@`eMDnS8-xeenS8lenS8f7f7$f77N >0yNfg\g|((|(( fgf7f<7 >y leͱSxeͱS`eͱSreͱS !.fP xw>y!.fP x/w>y >(y ~!fPͻPxFwN &ayx ͡fefg͡f>(éIAff 7 x ~>īJc͌Kg^ (~Na8"~<0 K|a>@UK>Kf |!aͨa0 4>;6>bÂK~ o(w |*aͨa0w |~w+#~7# ~wSEQa0pp;:P12P345678P9P 8~= eb84 bɧb (m (& b |bb~ =w >b~b~ =G~=x8%N  b~ z> a~  v7pbͤb(!~ n > b~@b6 ~w ͤb f> b6 > b~b5 6 b~0gW|bbbNc!ͳif8h x0oggfxͩIfg>PQ>y>yR>y>dy(PnS_x0:! iP~(0W{!hPNx(&gfh{Kf{Ff{!hP͞g>"7hN>GyQ >yyO>yy=g!hP >yx>D >Ly hh͡fgyg>f> >yy >!h>>y>y Y Q8hx {8/w_hygO 0!hPyN!hP!Wh~6,gͱd<!.f6#!h"Nh#!hs#!hN#ͦgf g!h:iW͞g#!hNy#IKik@BDF`bdf( 80H@XPh`xpTtLMNPlm  g (first argument) contains three clusters of access flags separated by periods. The first cluster indicates owner permitted access, the second indicates group access, and the third indicates public access. Each cluster is composed of zero or more of the following flags, given in any order: + add the specified privileges r read access e execute access w write access a append access Refer to the discussion of file protection in Chapter 3 for additioaccess.hlp?backup.hlp>blink.hlp=boot.hlp filboot Floppy = 1, Hard disk = 2 Enter major root device number: 2 hd0 = 0, hd1 =1, hd2 =2 enter minor root device number: 0 Here, the Boot utility is executed and the Cromix Operating System reloaded. The root device is specified as hard disk (2) number 0 (0). If Boot is followed by a filename, the file is assumed to have a .sys extension. If the user needs to boot CDOS from the Cromix Operating System, the file cdos.com can be copied to the root directory ushes may be used in number) -w wait for manual dial and connection Description Ccall may operate at either 300 or 1200 baud. It must use an asynchronous modem such as the Cromemco MDM-1200, a Bell 212A, or a Bell 103 type. The modem used must be compatible with the modem on the remote system. The modem can be con- nected to any serial port on the Quadart using a 12-wire cable constructed for this purpose. The qtty driver is used to connect ccall with the IOP/Quadart and modem. The Cromix system  ename Divert all characters received from the remote system into the specified file. '>' may be followed by '>' to append the output to the file. Either '>' may be followed by ':' to specify that the output be sent only to the file. If ':' is omitted, output is written both to the file and to the standard output. If '>>' is not used then the file must not exist prior to issuing this command. Typing '~>' will terminate the diversion. (Full syntax: ~>[>][:] filename) ~sh Invoke  modem procedures. If the -n option and the -w option are not used Ccall attempts to establish an interactive dialog with the MDM-1200. The user can then use all of the features of the MDM-1200 to establish a connection with a remote system. (see MDM-1200 manual) stem. ~# Send a one-second break signal to the remote system. ~h Print a summary of these commands. Messages returned by ccall Now waiting for call to complete ... Ccall is waiting for a connection to be made with another modem over the phone lines. This call can either be dialed manually using Bell equipment or the MDM-1200 can dial the number and establish the connection automatically. No answer -- Call aborted If a connection is not established within 120 seconds Ccall exits back to the CromCromix format to CDOS format conversion takes place in the second example. The Cromix Operating System cannot read CDOS disks. Programs to be executed and data to be read under the Cromix Operating System must be transferred from CDOS formatted disks to Cromix formatted disks before execution begins. Where a file pathname is specified, CDOS considers the lowest level filename. This is the portion of the pathname to the right of the rightmost slash. For instance, the following command line puts tan interactive shell on the local system. ~sh cmd Run the command on the local system (via shell -c). ~put [-f] file-list Copy the specified files from the local system to the current directory on the remote system. If a filename already exists at the destination the force option (-f) must be used if you want the existing file to be overwritten, otherwise an error will be reported and the file will not be copied. ~put uses the Sfile and Rfile utilities to perform error-free block CDOSCOPY CROMIX Instruction Manual CDOSCOPY utility: CDOSCOPY purpose: This utility copies files to and from CDOS disks. user access: all users summary: cdoscopy [-belvw] devname file-list arguments: Cromix device name name(s) of the file(s) to be copied options: -b binary file -e erase file -l list CDOS directory -v verbose -w write CDOS file Description The Cdoscopy utility copies files from a Cromemco Disk Operating System (CDOS) format disk to a Croix shell. Options The -q option keeps Ccall from being too verbose. The -d option specifies which qtty device is to be the transmitter The -b option sets the baud rate of the transmitting device. The -n option specifies a phone number to be used by the MDM-1200 modem. The -w option specifies that Ccall is to wait for the connection to be manually originated. Notes If the -w option is used without a phone number then Ccall waits for the user to establish a connection manually using standard he file named memo onto the CDOS format disk in drive B. % cdoscopy -w fdb /usr/mary/memo Options The -b option copies binary files. When this option is used, the 1Ah (end of file mark) is not stripped from the end of the file. The -e option erases the specified file(s) from the CDOS disk. The -l option displays the contents of the CDOS directory. The -v option displays files while they are copied to and from CDOS disks. The -w option causes the file to be written to the CDOS disk. Notetransfers. Rfile must exist on the remote system. ~take [-f] file-list Copy the specified files from the remote system to the current directory on the local system. If a filename already exists at the destination the force option (-f) must be used if you want the existing file to be overwritten, otherwise an error will be reported and the file will not be copied. ~take uses the Sfile and Rfile utilities to perform error-free block transfers. Sfile must exist on the remote symemco Cromix Operating System format disk and vice versa. For example: % cdoscopy fdb letter % cdoscopy -w sfda notes The first of these command lines copies a CDOS file named letter (located on a large floppy disk in drive B) into the user's current directory. The second command line copies the Cromix file named notes from the user's current directory to a small floppy disk in drive A. In the first case, the file is converted from a CDOS format to a Cromix format. A    s When an ambiguous CDOS file reference is used, it must be enclosed in quotation marks. Examples: % cdoscopy -v fda "*.z80" % cdoscopy -vw hd1 ** % cdoscopy -l fdb These examples assume that the disks in drive A (fda) and B (fdb) and the hard disk (drive F or hd1) are CDOS disks. The first example copies all CDOS files on drive A having the filename extension z80 into the current directory. The ambiguous CDOS file reference was placed inside quotation marks. The second examCHOWNER CROMIX Instruction Manual CHOWNER utility: CHOWNER purpose: This program changes the owner or group of a file. user access: privileged user summary: chowner [-gv] ownername file-list arguments: name or number of the user to whom ownership is to be transferred or name or number of the group to which ownership is to be transferred and one or more filenames options: -g change group -v verbose Description The Chowner utility changes the ownCHECK CROMIX Instruction Manual CHECK utility: CHECK purpose: This program runs the Dcheck and Icheck utilities. user access: privileged user summary: check [-s] [devname] arguments: optional device name options: -s Description The Check command runs the programs Dcheck and Icheck on a file system. Check should be run after rebooting the system or any time the integrity of the file system is in doubt. The Startup command file program executed after every boot up indCMPASC CROMIX Instruction Manual CMPASC utility: CMPASC purpose: This program compares two ASCII (text) files. user access: all users summary: cmpasc file1 file2 arguments: 2 filenames options: none Description The Cmpasc utility compares two ASCII (text) files and reports differences in content. Differences are shown by displaying the text of the first file, followed by the corresponding line in the second file which differs from the first. Notes The Cmpple writes all files in the current directory to the CDOS hard disk designated as F (Cromix Operating System designation hd1). No quotation marks were used for the Cromix Operating System ambiguous file reference. The final example displays the directory of the CDOS disk in drive B (Cromix file designation fdb). Refer to Appendix D for a list of device names. er or group associated with any type of file. If the file abc is in the current directory and is owned by mark, the L utility might display it as: # l -l abc 27 1 rewa re-- re-- mark Mar-11 19:59 abc Using the Chowner utility, ownership can be transferred to cindy: # chowner cindy abc # l -l abc 27 1 rewa re-- re-- cindy Mar-11 19:59 abc Options The -g option allows the Chowner utility to change the group associated with the file. This option is used in the manner previously describeicates when the Check program needs to be run. See the Startup command file description in this chapter for more information on Check. Options The -s option is the salvage option used with Dcheck and Icheck to repair most file system problems. See the description of the Dcheck and Icheck utilities in this chapter for more information. The system is rebooted after running Check with the salvage option. asc utility adjusts for internal differences in the two files (insertions or deletions). Example: % cmpasc fileone filetwo -----> fileone This file is sample file one. -----> filetwo This file is sample file two. CDOSFIX CROMIX Instruction Manual CDOSFIX utility: CDOSFIX purpose: This program strips the ^Z's from the end of CDOS files. user access: all users summary: cdosfix [filename] arguments: file pathname options: none Description The Cdosfix utility strips the ^Z's from the end of files created using the CDOS operating system. d, substituting the group name for the owner name. The -v option displays the name of each file as its ownership is changed. Notes When the ownership of a file is changed, the group with which the file is associated changes to that of the new owner.   COMPARE CROMIX Instruction Manual COMPARE utility: COMPARE purpose: This program compares two files. user access: all users summary: compare file1 file2 arguments: 2 filenames options: -t terse Description The Compare program compares two files and reports differences in length and content. Compare lists differences between the files on a byte-by-byte basis. It displays an address in hexadecimal, then the byte in the first file at that address, followed bions The -d option allows directory and device files to be copied. If this option is not used, directory and device files are not copied. For example, a command such as: copy -d /dev/tty2 data can be used to transfer all characters typed at terminal 2 into the file named data until a terminating character is received. The terminating character for console devices is CNTRL-Z. The -f option makes the copied file overwrite an existing file with the same pathname. If this option is not spe file(s). In its simplest format, copy duplicates file abc as file xyz, with both files residing in the current directory: % copy abc xyz To copy to or from a directory other than the current directory is more complex: % copy abc /usr/fred/xyz Here the pathname of the destination file is specified. The file abc exists in the current directory. It is being copied to the directory /usr/fred and its name is to be xyz in that directory. In the command: % copy abc /usr/freddirectory are preserved. If a file list is specified, only files whose names match at least one of the names in the list are copied. Ambiguous filenames enclosed in quotation marks may be included in the file list. Options The -f option causes the copied files to overwrite any file with the same pathname. If this option is not invoked and another file exists with the destination pathname, an error is reported. The -t option causes a file to be copied only if: 1. the file does ny the corresponding byte in the second file. Compare does not adjust for offset, should one file lack one or more bytes in the middle (e.g., if part of a file was deleted). Use the Cmpasc utility to compare ASCII files. Options The -t option suppresses the list of differences. When this option is used, only a message is displayed to indicate whether the files are the same or different. ecified and another file exists with the destination pathname, an error is reported. The -t option causes a file to be copied only if: 1. The file does not exist in the destination directory; or 2. The source file has been modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option displays the name of each file as it is copied.  the pathname of the destination directory is specified. The file abc exists in the current directory and is being copied to the directory /usr/fred without having its name changed. The following form of the command can be used to create an archive of all C language programs in a given directory: % copy *.c /usr/archives This Copy command copies all files in the current directory with filenames ending in .c to the directory archives. The files maintain their original names. Optot exist in the destination directory, or 2. the source file has been modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option causes display of the name of each file as it is copied. COPY CROMIX Instruction Manual COPY utility: COPY purpose: This utility copies a file. user access: all users summary: copy [-dftv] source-file destination-file [-dftv] file-list dirname arguments: two single file pathnames or one or more file pathnames and a directory pathname options: -d directory & device files ok -f force -t time -v verbose Description The Copy utility copies one or more files. It does not alter the sourcCPTREE CROMIX Instruction Manual CPTREE utility: CPTREE purpose: This program copies a tree. user access: all users summary: cptree [-ftv] source destination [file-list] arguments: source directory destination directory optional file list options: -f force -t time -v verbose Description The Cptree utility copies the source directory, and all its descendant directories and files to the destination directory. Existing links within the source    CREATE CROMIX Instruction Manual CREATE Shell command: CREATE or CRE purpose: This command creates a file. user access: all users summary: cre file-list arguments: one or more pathnames options: none Description The Create command is used to create one or more files. The files are zero bytes in length and have default access privileges. They are owned by the user who created them and are in the domain of their creator's group. If the specified pathname alrear driver to be included in this system? 6 - Typewriter printer (0-2) <2> ? How many fully formed character printers to be included in this system? Slight memory saving with fewer printers. Respond with 0, 1 or 2. 7 - Serial printer (Tuart) (Y = Yes, N = No) ? Is the ON/XOFF serial printer driver which interfaces with TU-ART included in this system? 8 - IOP Memory (Y = Yes, N = No) ? Is this system to have a driver that allows you to read IOP memory for deacter drivers to the operating system. Crogen is a menu driven utility residing in the /gen directory. To use Crogen, select the /gen directory and begin execution of Crogen by giving the commands: # d /gen # crogen Crogen displays the prompts shown below. To give the default response, enter RETURN. CHARACTER DEVICE DRIVERS 1 - Console (Tuart) (Y = Yes, N = No) ? Are the standard tty drivers (16FDC, 4FDC, and TU-ART) to be included in this system? Respond with Y (for y to 68000 Cromix systems. 4 - SMD hard disk (Y = Yes, N = No) ? Are SMD hard disk drivers to be included in this system? Respond with Y or N. 5 - RAMdisk Not available for Z80 RAMdisk option available only on 68000 Cromix systems. DEFAULT ROOT DEVICE Should the system automatically select a root device number? Respond with Y or N. If you answer Y, Crogen responds with the following question: Major device number (1 = Floppy, 2 = Hard disk) [2] ? Is the root device a dy exists, an error is reported. Notes This command makes a standard data file. Refer to the Makdir command or the Makdev utility program if you need to make a directory or device file. bugging purposes? The default response here is No. Even though you have an IOP, you do not need to have an IOP memory driver. 9 - Serial printer (Quadart) (Y = Yes, N = No) [N] ? Is the XON/XOFF serial printer driver which interfaces with Quadart included in this system? 10- SDI (Y = Yes, N = No) ? Is this system to have a graphics interface? 11- Tape (Y = Yes, N = No) ? Is this system to have a TDS tape driver? 12- Network (Y = Yes, N = No) ? Is this es) or N (for no). 2 - Console (Quadart) (Y = Yes, N = No) ? Are the IOP/Quadart drivers to be included in this system? Respond with Y or N. 3 - System Must be present This is the main Cromix module and must be included. No user response is required for this driver. 4 - Timer Must be present The operating system clock must be included. No user response is required for this driver. 5 - Parallel printer (Y = Yes, N = No) ? Is the dot matrix printefloppy disk or a hard disk? Respond with 1 or 2. If the major device is a floppy (1), Crogen responds with the following question: Minor device number (0 = fda 4 = sfda) (1 = fdb 5 = sfdb) (2 = fdc 6 = sfdc) (3 = fdd 7 = sfdd) [0]? If the major device is a hard disk (2), Crogen responds with the following question: Minor device number (0 = hd0, 1 = hd1, 2 = hd2) [0] ? Which hard disk should be the root device? Respond with 0, 1, or 2. AutomCROGEN CROMIX Instruction Manual CROGEN utility: CROGEN purpose: This program generates a Cromix Operating System. user access: privileged user summary: crogen [pathname] arguments: optional pathname options: -u user defined character devices Description The Crogen utility generates a new operating system. It allows the user to add and delete system drivers to provide the largest possible number of system buffers and Shells. The user may add user-defined charsystem using C-NET? BLOCK DEVICE DRIVERS Disk drivers to be included in this system? If the answer is Y, Crogen responds with the following two questions: 1 - Floppy disk (Y = Yes, N = No) ? Are floppy disk drivers to be included in this system? Respond with Y or N. 2 - Hard disk (0-3) <3> ? How many hard disks will be used in this system? Slight memory saving with fewer disks. Respond with 0, 1, 2 or 3. 3 - Memory Not available for Z80 Memory drivers apply only  atic login name [none] ? Should this system automatically login when the system is booted? Respond with the login name if this function is desired or press RETURN if it is not desired. Default access for created files [rewa.re.re]? All files created under this Cromix system initially have these access privileges. Crogen now responds with the following message: Creating cromix.sys (or other filename if specified) This indicates Crogen is creating the new operating systdcheck.hlp/ddump.hlp.default.hlp-delete.hlp,deltree.hlp+directory.hlp*dump.hlp)echo.hlp(ed.hlp'exit.hlp&find.hlp%fixsb.hlp$free.hlp#goto.hlp"help.hlp!help.msg DAY CROMIX Instruction Manual DAY utility: DAY purpose: This program executes a command on the day specified. user access: all users summary: day [day-of-the-week command-line] arguments: day of the week command line options: none Description The Day utility executes a command on the day specified. Day checks the system clock for the specified day. This program is useful in applications that require certain tasks be done on certain days of the week. with fewer inodes and use the Cptree utility program to transfer the contents of the disk to the new disk. Cannot read inode xxxxx A disk I/O error occurred while trying to read the specified inode. Inode xxxxx, error reading directory A disk I/O error occurred while trying to read a directory. Inode xxxxx, cannot read inode A disk I/O error occurred while trying to read the specified inode. Inode xxxxx, directory with more than 1 parent A directory is linked to more than 1 parent directory. Use the Nem and writing it to the specified file. In this example, Crogen has written the operating system to the current directory (/gen/cromix.sys). If the optional pathname for Crogen is Crogen /cromix, Crogen overwrites the operating system in the root directory. If the new operating system is not correctly configured, it will not be possible to cold boot the system. Therefore, it is suggested that the new operating system be created in the /gen directory, tested by booting that operating systeDCHECK CROMIX Instruction Manual DCHECK utility: DCHECK purpose: This program verifies the integrity of a file system. user access: all users summary: dcheck [-s] [devname] arguments: optional device name options: -s salvage directory structure Description The Dcheck utility verifies the integrity of a file system's internal directory structure. If possible, Dcheck with the salvage option should be run on an unmounted file system. If the file system that needsNotes When used without an argument, Day displays the name of the current day. Example: The following command line will remind you of a weekly Wednesday meeting. %day wed echo "This is Wednesday, remember your meeting" check utility program to locate the names of the files and delete all but one link. Then run Dcheck with the -s option. Inode xxxxx, directory with wrong parent This error indicates the inode is pointing to the wrong parent. Use the Dcheck utility with the -s option to correct this error. Inode xxxxx, bad link count xxxxx, should be xxxxx The number of names pointing to this inode from various directories is greater or less than expected. Use Dcheck with the -s option to correct this error. Inode xxxxxm (boot /gen/cromix), and then moved into the root directory. Options The -u option is intended for those people who have the Cromemco Cromix Driver Software Package (CXDR) and are including their own character device drivers. Instructions for its use are included with the CXDR package.  to be fixed is the root, Dcheck should be run by itself, with no other users or tasks running concurrently. If another task is writing to the disk, the results of Dcheck may be incorrect. If the -s option is used while another task or user is using the disk, the directory on the disk may be irreparably damaged. MESSAGES RETURNED BY DCHECK Cannot read super block The super block cannot be read. Out of memory The disk contains too many inodes for Dcheck to check. Make a new disk    , more than 255 links There are more than 255 names for this inode. Use Ncheck to find all the names. Delete some names to bring the total number of names to 255 or less, then run Dcheck with the -s option. Inode xxxxx, bad inode number in inode Each inode contains its own inode number. This error means the inode specified has the wrong number. Use Dcheck with the -s option to correct this error. Inode xxxxx, unallocated inode with xxx links Although this inode is unallocated, names point t ibs=n input block size obs=n output block size cbs=n conversion buffer size cbufsz=n conversion buffer size iskip=n skip the first n input blocks before starting to copy oskip=n skip the first n output blocks before starting to copy icount=n copy only n input blocks conv=ascii convert EBCDIC to ASCII ebcdic convert ASCII to EBCDIC ucase convert alphabetic characters to upper case lcase convert alphabetic characters  the Boot utility for additional information. It is not necessary to reboot if the -s option is not used. to disk file file1. EBCDIC characters are converted to ASCII, uppercase to lower, and trailing blanks are not copied to file1. The end of the tape file is indicated by an EOF tape mark written when the tape was created. Notes The following is a list of default values for options. input file standard input output file standard output conversion buffer 80 bytes disk input buffer 512 bytes disk output buffer 512 bytes tape input buffer 8192 bytes tape output buffer 8192 bytes o it. Use Ncheck to find these names, then delete them. Inode xxxxx, allocated inode with 0 links This inode is still allocated, though there are no names for it. Use Dcheck with the -s option to correct this error. Inode xxxxx, bad directory entry count This inode is a directory. The number of directory entries in the inode differs from the actual number of directories. Use Dcheck with the -s option to correct this error. End of Dcheck (This is the last message) The program has finished eto lower case strip strip trailing blanks in the conversion buffer nostop do not stop processing on an error (such as a file read error) Several conversions, separated by commas, may be specified in one argument. Description Ddump converts and copies data from one file or device to another. Since the input and output block sizes can be specified, it is useful for gaining access to devices that store data in raw form. Conversions are done in the conveDDUMP CROMIX Instruction Manual DDUMP utility: DDUMP (Direct dump) purpose: This program converts and copies a file from one device to another. It can handle direct physical I/O from devices such as the tape driver. user access: all users summary: ddump options Option Function if=pathname specify input file pathname -i pathname specified input file pathname of=pathname specify output file pathname -o pathname specified output file pathname DEFAULT CROMIX Instruction Manual DEFAULT utility: DEFAULT purpose: This program sets default parameters for automatic boot up and log in. user access: privileged user summary: default pathname majornum minornum [login-name] arguments: pathname major device number minor device number optional login name options: none Description The Default utility allows the Cromix Operating System to use a default root device and login name when booting the operating xecuting. Options The -s option fixes problems reported by Dcheck. The program corrects an incorrect inode number when: 1. The inode is allocated; 2. The inode link is nonzero; and/or 3. The inode is being pointed to (i.e., is in use). The program does not correct an incorrect inode number if the inode is unallocated. Notes Immediately after running Dcheck with the -s option, run Icheck with the -s option. After both programs are run, the system must be rebooted. Refer torsion buffer. Each block read from the input file is transferred to the conversion buffer, one buffer at a time. The conversions specified are performed there before writing the result to the output file. For example, if the strip conversion option is specified, trailing spaces are stripped and a newline added before sending the result to the output file. Example: # ddump if=/dev/tp1 of=file1 conv=ascii,lcase,strip This example causes input to be read from /dev/tp1 and written   system. If the login name requires a password, the user is prompted for it; otherwise the boot and login procedure execute automatically. Pathname specifies the directory and filename of the cromix.sys file to be changed. The device number is that of the default root device (refer to Table 6-1). Notes This program is not in the /bin directory, but in the /gen directory. If the major and minor device numbers are both zero (0), then no default device is established and a prompt for the root d As the Cromix Operating System is shipped, the dummy file prt is linked to the dot matrix printer driver lpt1. In the first listing that follows, the link is shown by the 2 preceding each filename. When the file prt is deleted, the file lpt1 remains intact and the number of links is reduced to one. # l 5:5 C 2 lpt1 5:5 C 2 prt 6:5 C 1 typ1 # del prt # l 5:5 C 1 lpt1 6:5 C 1 typ1 . Notes To remove all links to a file, making it inaccessible, use the L command with the -i option to find the inode number of the file in question. Use that inode number as an argument to Ncheck, and find the names of all files linked to the file. A directory may be deleted by specifying a directory pathname. In order to delete a directory, it must not: 1. Contain any files; 2. Be the current directory for any user; or 3. Be the root directory of a device. Examples: In the followid. Options After asking for verification, the -a option deletes all files and subtrees automatically. evice is displayed when the system is booted. DELTREE CROMIX Instruction Manual DELTREE utility: DELTREE purpose: This program deletes a tree, including all files and subtrees. user access: all users summary: deltree [-a] pathname arguments: pathname options: -a suppresses user verification Description The Deltree utility deletes all files and subtrees in the tree (directory) specified. Normally, Deltree prompts the user with the file or directory name and (y,n). If the user types y, the file or directorng example, the file named schedule is deleted from the current directory. % l 3,016 1 letter 200 1 memo 1,408 1 schedule % del schedule % l 3,016 1 letter 200 1 memo If there is more than one link to a file and one of the links is deleted, the file is no longer accessible through that link. The file remains on disk and is accessible through the remaining links. The following example concerns itself with part of the /dev directory.DIRECTORY CROMIX Instruction Manual DIRECTORY Shell command: DIRECTORY or D purpose: This command displays the name of or changes the current directory. user access: all users summary: d [dir name] arguments: optional directory pathname options: none Description When given without an argument, the Directory command displays the pathname of the current directory. Given with a directory pathname, the Directory command makes the specified directory the curreDELETE CROMIX Instruction Manual DELETE Shell command: DELETE or DEL purpose: This command deletes a file. user access: all users summary: del [-v] pathname(s) arguments: one or more pathnames options: -v verbose Description The Delete command removes a link to a file. If there is only one link to the file, the file is no longer accessible and the space it occupied is made available. Options The -v option displays the name of each file as it is deletedy is deleted; otherwise it is not. If the -a option is used, Deltree asks once whether the user really wants to delete the entire tree, instead of prompting for verification of each file. If the user types y, all files and subtrees are deleted. If n is typed, Deltree returns to the Cromix prompt. If Deltree is called from within the specified directory, the program will not allow the deletion of that directory. All the files must be deleted from a directory before the directory itself is delete   nt directory. s to the standard error channel. The -n option suppresses the echo of a newline.  The -o option causes a specified offset to be added to all addresses displayed by Dump. Example: % dump -b 1000h -e 5000h filename This command dumps the file filename starting with the 1000th (hex) byte and ending with the 5000th (hex) byte.  command will cause the Screen Editor to create a Shell process, which will allow the user to execute any commands provided there is enough memory in the system. Even without any additional memory, any of the Shell commands, such as List and Type, may be used. The user can return to the Screen program at any time by entering the Exit command in response to the Shell prompt. DUMP CROMIX Instruction Manual DUMP utility: DUMP purpose: This program displays a file in hexadecimal and ASCII. user access: all users summary: dump [-b #] file-list [-e #] [-k #] [-s #] [-o #] arguments: one or more file pathnames options: -b first byte -e last byte -k first block -s width -o offset address Description The Dump program displays the file(s) specified by the pathname(s). Dump displays any type of file.SCREEN CROMIX Instruction Manual SCREEN utility: SCREEN purpose: This program allows the user to edit files. user access: all users summary: screen filename arguments: name of file to be edited options: none Description The Screen utility program enables the user to edit files. Please refer to the Cromemco Screen Editor Instruction Manual (part number 023-0081) for a complete discussion of the Screen Editor. This write-up only covers those features of the CrECHO CROMIX Instruction Manual ECHO utility: ECHO purpose: This program echoes its arguments to the terminal. user access: all users summary: echo text arguments: any text options: -e send to stderr -n do not print newline Description The Echo program echoes its arguments. Text may be enclosed within single or double quotation marks to insure correct interpretation by the Shell. Echo is a relocatable binary program. Options The -e option echoes argumentEXIT CROMIX Instruction Manual EXIT Shell command: EXIT or EX purpose: This command exits from a Shell. user access: all users summary: ex arguments: none options: none Description The Exit command is used to exit from a Shell. If no higher level Shell is active, the Cromix Operating System logs the user off the system.  The file is displayed in hexadecimal with an ASCII equivalent to one side. All numeric arguments to the Dump utility are assumed to be decimal numbers unless followed by an h (for hexadecimal). Options The -b option allows the user to specify the first byte of a file to be dumped. The -e option allows the user to specify the last byte of a file to be dumped. The -k option allows the user to specify the first block to be dumped. The -s option allows the user to specify the swath width of the dump. omemco Cromix Screen Editor which are different from the Cromemco CDOS Screen Editor. The Cromix Screen Editor is a special version of the Screen Editor, which was designed to take advantage of some of the features of the Cromix Operating System. It utilizes Cromix Operating System calls and does not use the CDOS Simulator. Because of this, full pathnames may be used when calling the Screen editor. The only outwardly apparent difference to the user is the addition of the % command. This   FIND CROMIX Instruction Manual FIND utility: FIND purpose: This program locates files. user access: all users summary: find pathname [!] expression arguments: pathname [!] expression(s) options: File specifiers: -name -type x -links n -user name or number -group name or number -size n -blocks n -mtime n Action Specifiers: -exec command-line -ok command-line -print Logical Operators: -a -o Deshe Find utility finds all files of the specified size in bytes. If the number is preceded by a plus sign, all files with more than that number of bytes are found; if a minus sign is used, all files with fewer than n bytes are found. -blocks n The file specifying keyword blocks is followed by a number, n. The Find utility finds all files using that number of blocks (actual number of blocks occupied by the file). If the number is preceded by a plus  finds all files that match the file list. -type b block device c character device f file d directory The file specifying keyword type is followed by either b, c, f, or d, as shown. The Find utility finds all files of that type. -links n The file specifying keyword links is followed by a number, n. The Find utility finds all files with that number of links. If the number is preceded by a plus sign, all files with more than that many links fying keyword ok is used in the same manner as exec. When ok is used, the Find utility prompts the user prior to executing each command line. The user may respond with a y to execute the command line, or n to prevent its execution. -print The action specifying keyword print is used to display the pathnames of files found. Logical Operators -a The -a operator is used to logically AND two items in the Find expression. -o The -o operator is used to logcription The Find utility locates a file. The pathname is the pathname of the tree, directory, or file to be searched, and the expression is the string to be found and what is to be done with it. Expressions are combinations of file criteria and operations. Refer to the following list. Parentheses may be used to change the order of evaluation of the items in the Find expression. Used with parentheses, the expression must be enclosed within quotation marks so that the Shell passes them to t sign, all files occupying more than the specified number of blocks are found; if a minus sign is used, all files with fewer than n blocks are found. -mtime n The file specifying keyword mtime is followed by a number, n. The Find utility finds all files modified n days ago. If the number n is preceded by a plus sign, all files modified n or more days ago are found; if a minus sign is used, all files modified fewer than n days ago are found. are found; if a minus sign is used, all files with fewer than n links are found. -user name The file specifying keyword user is number followed by a user name or number. The Find utility finds all files owned by the specified user. -group name The file specifying keyword group is number followed by a group name or number. The Find utility finds all files owned by the specified group. -size n The file specifying keyword size is followed by a number, n. Tically OR two items in the Find expression. Notes The expression used with the Find command is evaluated from left to right. Items to be found and actions to be performed may be combined logically by use of the -a and/or -o logical operators. Either operator combines the sum of the expression to its left with the subsequent item in the expression. For example: find / -name ted -a -print find / -name ted -o -name mary -a -print The first example finds all files with thhe Find utility. When one of the action specifiers is used to execute a program, the return code of that program can be evaluated and used within the expression. The ! operator may precede the expressions to negate the sense of the tests. Options File Specifiers -name file-list The file specifying keyword name is followed by a list of one or more unique or ambiguous filenames. If an ambiguous filename is used, it must be enclosed within quotation marks. The Find utilityAction Specifiers -exec command-line The action specifying keyword exec is followed by a command line. This may be any valid command line, that is, any line that can be entered in response to the Cromix prompt. This command line is then executed each time the Find utility finds a file meeting the find criteria. A pair of braces ({}) may be placed within the command line. They will be replaced by the name of the file found. -ok command-line The action speci  e filename ted and prints the pathnames of these files. If the print instruction is left out of this command line, all of the correct files are found and no action is taken: their names are not displayed. The second example demonstrates the use of the logical OR. All files with the filename ted OR mary are found and their pathnames printed. Examples: The following example finds all subdirectories of the current directory, then executes an l command with the -d and -e options. % find . -put of the Free utility. It shows the available free space in blocks, kilobytes, and bytes. /dev/root 7,513 blocks 3,756K 3,846,656 bytes ter restoring the Superblock, the Fixsb command automatically runs Icheck, to check inodes in the file. Notes Fixsb is only to be used on disks whose file systems were created with the default number of inodes. Refer to the Makfs utility for additional information.  z % this is a comment goto sample_label This sample command file causes repeated execution of the commands x, y, and z. The first line of the command file is a line label, as indicated by the leading percent sign. Notice that the percent sign indicates a comment on the fourth line of the file. The fifth (last) line of the file transfers control to the specified label (sample_label). type d -a -exec 1 -de {} The next example finds all entries with a .c extension, then lists the entry with the -l option. # find / -name "*.c" -a -exec l -l {} GOTO CROMIX Instruction Manual GOTO Shell command: GOTO or GO purpose: This command causes transfer of control within a command file. user access: all users summary: go label arguments: line label options: none Description The Goto command transfers control within a command file. Control is transferred to the line specified by label. This command is used to execute the same commands within a command file repeatedly. When used in conjunction wFREE CROMIX Instruction Manual FREE utility: FREE purpose: This program displays the amount of unused space remaining on a device. user access: all users summary: free [devname1 ... devnameN] arguments: optional list of device names options: none Description The Free program displays the amount of unused space remaining on a specified device. If no device is specified, the free space is displayed for all mounted devices. Example: The following is a sample outHELP CROMIX Instruction Manual HELP utility: H or HELP purpose: This program displays pages on Shell commands and utility programs from the Cromix manual. user access: all users summary: help [command-name] [utility-name] arguments: optional command or utility name functions: b beginning h help q quit r return to menu u up RETURN next line space next page Description The Help utility program provides a convenient online mFIXSB CROMIX Instruction Manual FIXSB utility: FIXSB purpose: This command file restores the Superblock. user access: privileged users summary: fixsb arguments: none options: none Description The Fixsb utility file restores the Superblock, should it be destroyed accidentally. This command file has the same function as the Makfs utility used with the -r option, but without the possible risks associated with running an older version of the Makfs utility. Afith the If and Shift commands, the Goto command becomes part of a conditional loop with varying parameters. A line label is any line within a command file that begins with a percent sign (%). If a percent sign appears as a character other than the first character on a line, the balance of the line is a comment and thus ignored by the Cromix Shell. The Goto command given with a nonexistent line label causes termination of command file execution. Example: %sample_label x y   anual for user reference. The Cromix Instruction Manual entries for Shell commands and utility programs are the only accessible entries. Information regarding system calls and other aspects of the system must be obtained from the Cromix Instruction Manual. Help can be called alone or with an optional program name. If unsure about the name of a utility or command, enter help and press RETURN. The Help program lists the available topics and asks you to select the desired topic. EnterinEType "help" for a directory of all topics. Type "help topic" for help with that topic. Type "help help" for more information on this program. Directory of topics: pic and the filename extension .hlp. Additional topics can be entered in the /usr/help directory. The files must have the .hlp filename extension so that the Help program can gain access to them. The message written on the terminal above the listing of Help topics is found in the file named /usr/help/help.msg and can also be modified. The file /usr/help/msg.msg contains the messages printed on the bottom line of the screen when the help program sends a file to the console. The msg.msg file mes are specified, Icheck checks the integrity of all mounted devices. The list of mounted devices is obtained from the file /etc/mtab. If no options are specified, Icheck produces a report on the file system, but does not alter it. A sample report and explanation follow. If the -s option is used while another task or user is using the disk, the directory on the disk may be irreparably damaged. % icheck Device: /dev/hd0 Blocks missing: 0 Bad free blocks: 0 g help with a program name lists the manual entry on that topic, omitting the list of available topics. The list of utilities and Shell commands may then be displayed by pressing the r key. Help displays the Cromix manual entry one page at a time. The percentage of the file yet to be viewed is displayed at the bottom of the screen. Several functions aid you in viewing the manual entry. Pressing the space bar displays the next page of the manual. Pressing RETURN displays the next line.icheck.hlpidump.hlpif.hlpinit.hlpinput.hlpinstall.hlpioprun.hlpkill.hlpl.hlpls.hlpmail.hlpmakdev.hlpmakdir.hlpmakfs.hlpmaklink.hlpmatch.hlpis linked to the file msg2.msg, which contains messages taking advantage of the attributes of the Cromemco 3102 terminal. If your system uses the Cromemco 3100 or 3101 terminal, the file msg1.msg should be linked to the file msg.msg by entering the following command: # maklink -f /usr/help/msg1.msg /usr/help/msg.msg  Duplicate blocks in free list: 0 Bad blocks: 0 Duplicate blocks: 0 Device files: 16 Ordinary files: 269 Directories: 44 Blocks used in files: 13,546 Indirect blocks: 172 Free blocks: 6,212 Free inodes: 3,871 Blocks missing All disks (also referred to as block devices) are divided into allocation units called blocks. A block is 512 bytes. Every block should appear either in a file or in the fr Pressing u displays the previous page. The u key and the space bar can be used to move the user back and forth through the text. The b key causes a jump to the beginning of the manual. The h key displays a list of available functions for the Help program (Up, Beginning, Return, Quit, and Help). To exit from the Help program, press q. Modifying the Online Manual The database for the online manual is located in the /usr/help directory. Each topic is contained in a file with the name of the help toICHECK CROMIX Instruction Manual ICHECK utility: ICHECK purpose: This program verifies the integrity of a file system. user access: all users summary: icheck [-s] [-b blk# ...] [devname ...] arguments: optional list of device names options: -s salvage -b blocks Description The Icheck utility verifies the integrity of the file system's inode structure. After a power failure or after the computer has been reset, run Icheck on all mounted devices. If no device na  ee list. Blocks appearing in files include those permanently assigned as either system or inode blocks. The free list is a list of all blocks available for use. A block is missing if it appears neither in a file nor in the free list. Missing blocks do not compromise the integrity of the file system and the problem does not need to be corrected immediately. If a block is missing, it is simply not available for use. The problem may be corrected by executing Icheck with the -s option. ot be read. Out of memory The disk contains too many inodes for Icheck to check. Make a new disk with fewer inodes and use the Cptree utility program to transfer the contents of the disk to the new disk. Cannot read inode xxxxx A disk I/O error occurred while trying to read the specified inode. Not a block device: "device name" The device specified is not a block device. Inode xxxxxx, ---- Bad usage count ---- This inode has an incorrect usage count. The usage count is used by the Usage utility de number of the bad blocks. The Ncheck utility is then used to determine the names of the files containing bad blocks. These files must be deleted. The file may be copied to another file before it is deleted; the new file should be carefully checked because it will probably not be correct. Duplicate Blocks This is similar to Duplicate blocks in free list except that the Duplicate blocks appear in files. Duplicate blocks do compromise the integrity of the file system and the problem shohe status of a certain block and the block is inthe free list. Block xxxxxx, ---- bad free block ---- Refer to the previous discussion of Bad free blocks. Cannot write free list block xxxxxx When running Icheck with the -s option, the free list isrecreated. This error message is printed when there isan error in writing the free list. Cannot read block xxxxxx This message is printed when a block cannot be read. Options The -s option salvages and recreates the free list. The -b option displays inf Bad free blocks This message pertains to blocks located in the free list. The term bad indicates that the block number is out of range. A block number can be out of range if it is: 1. Past the end of the disk; 2. In the system area of the disk; or 3. In the inode area of the disk. Bad free blocks do compromise the integrity of the file system and the problem should be corrected immediately by executing Icheck with the -s option. No files are affected. Duplicate Blocks iprogram to calculate the amount of disk space used. This error can be corrected by running Icheck with the -s option. Inode xxxxxx, ---- Cannot write to inode ---- This error message occurs when the Icheck utility is attempting to correct an inode and an error occurs. Block xxxxxx, inode xxxxxx, ---- block used in file ---- This is not an error message. This message is displayed when the -b option is used, indicating the number of the inode in which the specified block is used. Block xxxxxx, inode xxuld be corrected immediately. Icheck reports the inode number of the duplicate blocks. The Ncheck utility is then used to determine the names of the files containing duplicate blocks. At least one of these files must be deleted. The Icheck utility should then be run with the -s option. The file may be copied to another file before it is deleted and should be carefully checked because it will probably not be correct. MESSAGES RETURNED BY ICHECK Cannot read super block The super block cannormation about blocks. Notes When using the salvage option, Icheck must be used in conjunction with the Dcheck utility. Icheck is run after Dcheck. Both utilities should be run using the -s option. After both programs are run, the system must be rebooted. It is not necessary to reboot if the -s option is not used. Refer to the Boot utility for additional information. Do not execute the Icheck utility when other processes are being executed. This includes detached processes as well as otn Free List This message means the same block number appears twice in the free list. Duplicate blocks in the free list do compromise the integrity of the file system and the problem should be corrected immediately by executing Icheck with the -s option. No files are affected. Bad Blocks This is similar to Bad free blocks except that the Bad blocks appear in files. Bad blocks do compromise the integrity of the file system and the problem should be corrected immediately. Icheck reports the inoxxxx, ---- bad block number ---- Refer to the previous discussion of Bad blocks. Block xxxxxx, inode xxxxxx, ---- duplicate block number Refer to the previous discussion of Duplicate blocks. Block xxxxxx, ---- block missing ---- This message is printed when the -b option is used tofind the status of a certain block and the block is missing. Refer to the previous discussion of Blocks missing. Block xxxxxx, ---- block in free list ---- This message is printed when the -b option is used tofind t  her user processes. INIT CROMIX Instruction Manual INIT utility: INIT purpose: This program initializes a disk. user access: privileged user summary: init arguments: none options: none Description The Init program is used to initialize disks. Below is a sample script of a typical Init session to format a small (5-inch) Cromix floppy disk. The messages and questions are displayed by the Init program; the user's responses are descriptions of each part of the execution. scription The If command is used to place a condition on the execution of another command. It is frequently used in conjunction with the Goto command and is terminated by a semicolon (;). Referring to the summary above, the If command has three basic forms. The first form executes a command if the previous command returned an error. In its second form, the If command causes commands to be executed if a particular access method applies to the file specified. The third and fourth form and so on. Be sure to specify the device name correctly, as the Init program destroys all data on a disk. Init briefly tests the specified drive to check if it is operating correctly for disk formatting. Since drive speed is particularly important to correct formatting, it is reported by the program. When formatting hard disks, the program also verifies that the controller board is working properly. The next prompt asks about the type of disk to be formatted, that is, will it be used with thIDUMP CROMIX Instruction Manual IDUMP utility: IDUMP purpose: This program displays the contents of an inode. user access: all users summary: idump blockdev inode-list arguments: block device name list of one or more inode numbers options: none Description The Idump utility displays the contents of the specified inode(s).  Initialize Disks version xx.yy Press: RETURN to supply default answers ESC to abort formatting CTRL-C to abort program Warning: INIT can destroy all disk data Disk to initialize (devname)? sfdd Testing: Index pulses being received correctly Rotational speed: 300 RPM Formatting Disk type (C=CDOS, X=CROMIX)? RETURN Single or double sided (S/D)? RETURN Single or double density (S/D)> RETURN First cylinder (0-27H)? RETURN s of the If command cause command to be executed when the specified relational condition is true or false. Neither of these forms of the If command requires that the strings be enclosed in quotation marks. However, both forms do require a space on either side of the relational operator (= or !=). e CDOS or Cromix Operating System? Either type may be formatted under either operating system. If the disk to be formatted is a floppy, two more questions are asked about the combination of sides and density to be used in initialization. Next, the Init program asks for the first and last cylinder numbers to be formatted. When an entire disk is being formatted, supply the default responses by pressing RETURN each time. On occasion, it may be necessary to format a portion of a disk (e.g.IF CROMIX Instruction Manual IF Shell command: IF purpose: This command is used to conditionally execute another command. user access: all users summary: if -err command -rewa filename command string-1 = string-2 command string-1 != string-2 command arguments: error condition specifier or access method and a filename or two strings separated by the equal (=) or not equal (!=) relational operator and a command line options: none De Last cylinder (0-27H)? <27H> RETURN Surfaces (0-1,All)? RETURN Cylinder, Surface: restore 00H, 0 00H, 1 01H, 0 01H, 1 : : : : The Init program first asks for the device name of the drive containing the disk to be formatted. Legal responses are device names of the disk drives connected to your system, such as: fda, fdb, ..., sfda, sfdb, ..., hd0, hd1, ..., and so on. These may also be complete pathnames, such as: /dev/fda, /dev/fdb,  , one track that seems to have frequent errors). Next is a question about the surfaces to be initialized. The default response, that all surfaces are to be initialized, is made by pressing the RETURN key. However, you may format only one surface by typing its number, one of the values shown in the prompt. Having been supplied with answers to all these questions, the Init program proceeds to format the disk. It displays its progress by giving cylinder and surface numbers. The disk he same. Or you may type U for unassigned, and a previously declared alternate track is freed up. Init can format both 8" and 5-1/4" hard disks. Once a track is known to have hard errors and an alternate track is declared for it, Init makes no attempt to salvage the data stored on the bad track. It is best to recover as much of this data as possible before declaring the alternate track. The Hdtest program, supplied as a part of the Cromemco Diagnostics Software package (CDS), has spever possible, this should be changed to a legal declaration. Following the display of the alternate tracks originally defined, Init asks two questions: whether the user wishes to redeclare any of these already existing alternate tracks, and whether the user wishes to declare any new alternate tracks. It's usually best to keep the factory settings of the drive's alternate tracks unless you have a specific reason for changing them. The Init program cannot and should not be aborted dot in the Cromix /dev directory. Illegal Value The number supplied in response to a prompt is illegal. This usually means the number is out of range. Second number must equal or exceed first This error appears when the response to the Last cylinder? question is not greater than or equal to the response to the First cylinder? question. The Init program always formats disks from the outermost cylinders inward to provide consistent head positioning. Drive x is write-protected Diskette in Dri is always formatted from the outermost cylinders inward, for proper head positioning. Alternate Tracks Since hard disks are designed for long term use and reliability, there is a provision for declaring alternate tracks, that is, good tracks to be used in place of tracks which develop hard errors. Once declared, the locations of these tracks are stored in a special area of track 0 (cylinder 0, surface 0) called the alternate track table. When a hard disk is formatted with Init, the prograecial provisions for recovering this data. The procedure using Hdtest to recover data is quite complex and best left to your authorized Cromemco dealer. INIT ERROR MESSAGES Incompatible with operating system Use single-user or simulator CDOS xx.yy or higher A version of the Init program is being used with an earlier, noncompatible version of CDOS or the CDOS simulator program running under the Cromix Operating System. Use the version of CDOS specified in the error message. Initializaturing the process of declaring alternate tracks for a hard disk. Certain information about the drive is in volatile memory during this time so aborting the program causes this information to be lost. Finally, if you do choose to declare alternate tracks, the Init program prompts you with the alternate track number and requests the cylinder and surface numbers of the track containing hard errors. Alternately, you may press RETURN at this point and the alternate track declaration will remain tve x is write-protected The drive or floppy disk specified has been write protected and cannot be initialized until the write protection has been defeated. Drive x not ready The drive specified is not ready, which usually means it cannot be selected by the software. This occurs when a floppy disk has not been properly inserted in its drive or the door has not been properly closed. Can't Select Drive x, Status yy This occurs for reasons similar to those given for the previous drive errors. Howevem displays a list of previously declared alternate tracks and gives the user the chance to change these or declare new ones. The display of alternate tracks usually prints cyl xx, surf y to indicate the cylinder and surface numbers of the track containing hard errors, or unassigned to show that the alternate track has not yet been used. The message illegal entry is a warning that, as far as the Init program is able to determine, an illegal value has been stored in the alternate track table. Whenion inhibited in this machine Switch 4 of the 16FDC or 4FDC disk controller has been turned on. This switch prevents disk initialization in the computer system. 4FDC not capable of double density operation The user has attempted to initialize a double density floppy disk in a system containing hardware for only single density operation. The system contains a 4FDC disk controller board; it requires a 16FDC. Illegal device The device name given in response to the Disk to initialize? question is n  r, this message usually indicates a hardware failure and displays the error status associated with the malfunction. Can't Re-zero Drive x, Status yy This error occurs when a hard disk drive cannot be rezeroed, or restored, without error. The associated error status is reported. Init error: Drive x, Cylinder ww, Surface z, Status yy Restore error: Drive x, Cylinder ww, Surface z, Status yy Seek error: Drive x, Cylinder ww, Surface z, Status yy Write error: Drive x, Cylinder ww, Surface z, Status inute. Rotational speed: overflow Illegal drive speed (must be xxxx RPM +/- yy%) These error messages mean that the rotational speed calculated by the Init program is out of the legal range for this type of drive. This is generally an indication of a drive malfunction. ZPU clock must be set to 4MHz for correct operation of hard disk This error message is printed if the operator is attempting to use a hard disk in a 2MHz (rather than a 4MHz) computer system. The problem can be corrected by swit the WDI hard disk controller are not working correctly. The second message is displayed when the Init program sees the PIOs are working correctly. Memory-to-memory DMA not working Memory-to-memory DMA completed correctly The Init program tests the hard disk DMA circuitry by using it to perform memory-to-memory DMA. The first message is displayed if the WDI hard disk controller DMA is not working correctly. The second, an informational message, is printed if DMA is working correctly as m to go ahead and attempt to format the drive anyway. In this latter case, the alternate track table information is lost. Cannot be assigned an alternate track Since the alternate track table is stored on track 0 (cylinder 0, surface 0), this track can never be assigned an alternate track. PQRSTUVching the ZPU to 4MHz operation. Incorrect operation of WDI and hard disk This error message is displayed following any of several errors. It indicates a problem with the operation of either the hard disk or the WDI hard disk controller. Read error: alternate track register Do you wish to format drive anyway (Y/N)? A list of alternate tracks for the hard disk (to be used in case of hard errors on any normal data tracks) is stored for use by the operating system in a dedicated area of track 0far as the Init program is able to determine. No index pulses being received This error message appears if the program receives no index pulses from the drive during the test phase of initialization. This indicates the drive is not rotating, or is not properly connected to the controller. Index pulses being received correctly Rotational speed: xxxx RPM This informational message means that index pulses are being received from the drive and indicates the drive's rotational speed in revolutions per mINPUT CROMIX Instruction Manual INPUT utility: INPUT purpose: This program reads a line from the standard input and sends it to the standard output. user access: all users summary: input string arguments: none options: none Description This utility reads a string from the standard input and, upon reading a newline, sends that string to the standard output. This utility can be used to write interactive command language programs by redirecting the output ofyy The error occurred on the specified drive, cylinder, and surface, which has the reported error status associated with it. Formatting aborted just prior to writing cylinder ww, surface z Although not an error, this message shows how much of the disk was formatted before the user pressed the ESCape key and aborted initialization. PIO's not working PIO's and direction control transceivers OK The first of these is an error message displayed during the drive test phase of initialization if the PIOs on (cylinder 0, surface 0). This area is called the alternate track table. Before initializing the drive, the Init program attempts to read this register. Those tracks that have already been declared are then redeclared after initialization. This error message and question are displayed if the Init program is unable to read the alternate track table. Answering no to this question aborts the Init program until the problem is corrected. Answering yes to this question allows the Init progra   the utility to a file and then testing the contents of the file with the Testinp utility. Refer to the Testinp utility. Input reads a maximum of 255 characters from the standard input or 512 characters if input is redirected from a file. Input terminates reading upon reading a newline or the maximum number of characters, and does not output the newline to stdout. Example: % input > temp This command line reads one line from the standard input and sends it to the file temp. op directory. anual entry for Cdoscopy. Example % install fdb If the disk in floppy disk driver b was the recent Cromemco release of WriteMaster, for example, then the appropriate files needed to run WriteMaster under Cromix would be copied to /usr/pkg . If the disk in fdb is not set up to be copied by install then an error message will be sent to the console and the files will have to be copied using the CDOSCOPY utility program.  to the process. This option has the same effect as CNTRL-C from the keyboard, and aborts only interactive programs. Detached processes continue unaffected. The -2 option sends a user signal to the process. It is generated by a character typed at the terminal. The character that generates the signal is determined by the mode. The -3 option sends a kill signal to the process. This kill signal cannot be ignored or trapped. It is typically used to abort a program caught in an infiniINSTALL Cromix Instruction Manual INSTALL command file: INSTALL purpose: This program allows the user to copy certain Cromemco software packages that are on CDOS disks to Cromix. user access: all users summary: install devname arguments: Cromix device name options: none Description Install is an easy to use program for moving CDOS programs to Cromix. Install will copy only those files on the CDOS disk that need to be copied for the software package on the specifKILL CROMIX Instruction Manual KILL Shell command: KILL purpose: This command sends a signal to a process. user access: all users summary: kill [-12345678] [PID] arguments: process id options: -1 abort -2 user -3 kill -4 terminate (default) -5 alarm -6 broken pipe -7 reserved -8 reserved Description The Kill command sends a signal to the process specified. If the signal type is unspecified, Kill sends a terminate signal. When a signaIOPRUN CROMIX Instruction Manual IOPRUN utility: IOPRUN purpose: This program loads a program into an IOP. user access: privileged user summary: ioprun filename [address] arguments: filename of program to be loaded into IOP base address (in hex) of IOP (default CEh) options: none Description The Ioprun utility loads a file into an IOP. This utility is normally used to load the IOP/Quadart driver (cromix.iop) into the system IOP. Ioprun is found in the /dev/ite loop. The -4 option sends a terminate signal to the process. The terminate signal kills both interactive and background processes. This is the default type of signal sent by the Kill command. The -5 option sends an alarm signal to the process. The -6 option is sent by the operating system when a pipe is used improperly. The -7 and -8 options are reserved for future use. ied disk to run under Cromix. Install works only on Cromemeco software shipped on CDOS disks that contain a special file, install.crx. This file contains the neccessary information for performing the copy. Install will issue an error message if this file is not present and terminate execution. Thus, install will only work for certain CDOS disks which have this special file on them. To copy files from CDOS disks that are not designed to work with install, refer to the Cromix Instruction Ml is sent to process 0, the signal is also sent to all processes belonging to that user. If the user is a privileged user and a user signal is sent to process 1 (kill -2 1), system shutdown is initiated. Kill 0 aborts all background jobs attached to the user's terminal. Kill -1 1 consults the /etc/ttys file and allows any terminals that have been added to be logged on. It also logs off any terminals that have been deleted from the file. Options The -l option causes an abort signal to be sent  L CROMIX Instruction Manual L utility: L purpose: This program lists directory or file information. user access: all users summary: l [-abdeilrst] [file-list] arguments: optional file or directory pathname(s) options: -a all -b brief -d directory information -e everything -i inode number -l long list -r reverse order -s summary -t time modified Description The L program lists directory or file information in alphabe, and the filename. If the entry represents a directory, as in the first entry shown, the leftmost number shows the number of files in the directory. The D indicates it is a directory. The last two fields show the number of links and the directory name. 3 D 1 cromix.doc 1,559 1 default.fm0 A sample of the output of L using the -e option is shown below. This is the most complete display. The name of each file in the directory is displayed on the extreme left. To the right, on the same The -t option sorts the file list in order of time-last-modified. This order is from oldest to most recent unless the -r option is used. Notes The meaning of the first column of numbers displayed by the L utility is as follows. If the file listed is a regular (data) file, the number associated with the file is its size in bytes (or number of characters). If the file is a directory, the number is the number of files stored in that directory. If the file is a device file, the numbers are thectory created: Dec-21-1981 13:56:13 rewa re-- re-- modified: Dec-21-1981 13:56:13 karen pubs1 accessed: Jan-19-1982 12:49:33 links: 1 dumped: 000-00-1900 00:00:00 inode: 781 system.c 1,641 created: Dec-21-1981 13:56:10 rewa re-- re-- modified: Dec-21-1981 13:56:11 karen pubs1 accessed: Dec-31-1981 12:17:05 links: 2 dumped: 000-00-1900 00:00:00 inode: 782 The following example shows the L program output using the -i, or inode number, option. This dietical order. If no pathname is specified, it lists the contents of the current directory. If a directory pathname is given, the contents of that directory are listed. If a file pathname is given, information about that file is listed. Options The -a option lists the names of all files, including invisible files (those files whose names begin with a period). The -b option makes a brief list, which contains only filenames. The -d option lists information about the directory, rather than the  line, is the number of bytes in the file. The first column on the next line lists the operations performed on the file: created, modified, accessed, or dumped. To the right of each operation is the date the operation was last performed. A third column shows the time of execution. The rightmost column contains additional information. At the top the read, execute, write and access privileges for the owner, group, and all other users are shown. The second line is the login name of the  major and minor device numbers. Example: Samples of the output from the L utility follow. Each is preceded by a note as to the option utilized. The following shows an output of L with the -b option, containing only filenames. apa apa1 apb apc apd ape The following shows an output of L using the -d option. For a filename, the field on the extreme left contains the number of bytes in the file. This is followed by the number of links to the filsplay first shows the directory name. The names of all files and directories within the subject directory are listed on the right. The number of links to each file or directory is shown just to the left of the name. Moving left, the next field is either blank or contains a D. A blank indicates the entry is a file; a D means it is a directory entry. The leftmost column in this display is the inode number associated with the file or directory. Directory: cromix.doc 734 D 1 contents of the directory. The -e option lists everything about a file. The -i option lists an inode number, rather than the file size. The -l option makes a long list of information. This option does not display as much information as the -e option. The -r option performs the sort specified in reverse order. Thus, an alphabetical listing is given in reverse alphabetical order, and a time-date listing is listed most recent file first. The -s option generates a summary of disk space used.file owner. The third entry lists the number of links to the file, and the final entry is the inode number. To the extreme right of the owner's login name is an entry showing the group name of the user: in this case, pubsl. Directory: cromix.doc locktest 9 directory created: Dec-21-1981 13:56:57 rewa re-- re-- modified: Dec-21-1981 13:56:57 karen pubs1 accessed: Jan-19-1982 12:49:41 links: 1 dumped: 000-00-1900 00:00:00 inode: 734 pipetest 10 dire   locktest 781 D 1 pipetest 782 2 system.c The following example shows the L program output using the -l option. If the second field in the entry is a D, for directory, the leftmost field indicates the number of files in that directory. If the second field is blank, the entry is a file, and the leftmost field shows the number of bytes in the file. Moving to the right, the third field indicates the number of links to the file or directory. The next field shows the read, execute, write,ity (l.bin). When called without options, ls displays filenames only, arranged in a multi-column format. Since file length and link count information is not displayed, the display is produced much faster than in the standard List utility. The options to ls are exactly the same as the standard List utility and the use of any options (or merely the character "-") causes the program to act in the same manner as the standard List utility. Options Identical to those of l.bin. Refer to deThese files are listed in order of the time last modified. Directory: cromix.doc 1,641 2 system.c 10 D 1 pipetest 9 D 1 locktest  the mail. Saved mail is appended to the file mbox in the current directory. Given with one or more user names as arguments, the Mail utility sends mail to one or more users. To send mail, enter the message after pressing RETURN at the end of the command line. A CNTRL-Z terminates the message and returns the user to the Cromix Operating System prompt. In order to send mail a user must have write and append access to the current directory, since mail creates a temporary file mail.temp. Opti and append access of the directory or file for the owner, group, and all other users, in that order. Immediately to the right of the access privileges is the login name of the owner. The three rightmost fields in this format are the most recent date and time of file access, and the file or directory name. Directory: cromix.doc 9 D 1 rewa re-- re-- karen Dec-21 13:56 locktest 10 D 1 rewa re-- re-- karen Dec-21 13:56 pipetest 1,641 2 rewa re-- re-- karen Dec-21 13:56 sscription of l.bin for details. LS CROMIX Instruction Manual LS utility: LS purpose: This program lists directory or file information. user access: all users summary: ls [-abdeilrst] [file-list] arguments: optional file or directory pathname(s) options: -a all -b brief -d directory information -e everything -i inode number -l long list -r reverse order -s summary -t time modified Description LS is an enhanced version of the standard List utilons The -a option sends mail to all users. The list of users for this option is obtained from the /etc/passwd file. The -g option sends mail to members of a specified group(s). Group members are defined in the /etc/group file. The -n option causes mail not to be saved. The -v option displays the list of users who received mail. The -y option saves mail. Notes Upon logging in to the system, a user is informed if there is mail. ystem.c The following is a sample of L program output using the -s option. This display is similar to that obtained using the -d option, except that the last line of the display is a summary showing, from left to right, the number of files, number of blocks, and total bytes in the directory. Directory: cromix.doc 9 D 1 locktest 10 D 1 pipetest 1,641 2 system.c 3 files 6 blocks 2,313 bytes What follows is a sample of L program output using the -t option. MAIL CROMIX Instruction Manual MAIL utility: MAIL purpose: This program sends or displays mail. user access: all users summary: mail [-agnvy] [user-name] arguments: optional list of user names or optional list of group names options: -a all -g group -n do not save mail -v verbose -y save mail Description Given without arguments, Mail displays mail sent to the user. After the mail is displayed, the Mail utility asks whether the user wants to save  MAKDEV CROMIX Instruction Manual MAKDEV utility: MAKDEV purpose: This program creates a device file. user access: all users summary: makdev [-c] devname b/c majornum minornum arguments: device name block or character device specification major device number minor device number options: -c conditional Description The Makdev utility associates a device driver with a number and a name. After the program is executed, references to the device name refer to cks dedicated to the user. Makfs is run on all floppy disks and on some hard disks before the disk is mounted for the first time. The Makfs utility destroys any existing data on the device. It warns and prompts the user before destroying data. The Makfs utility stores the inode number in all of the inodes created. Options The -i option establishes a file system with a nonstandard number of inodes. This option is used only if you need more files than the default allows. Otherwise, MakMAKDIR CROMIX Instruction Manual MAKDIR Shell command: MAKDIR or MAKD purpose: This command creates a directory. user access: all users summary: makdir dir1 [ ... dirN] arguments: directory pathname(s) options: none Description The Makdir command creates directories. MAKLINK CROMIX Instruction Manual MAKLINK utility: MAKLINK purpose: This program makes a link to a file. user access: all users summary: maklink [-fv] file-list dirname [-fv] srcfile destfile arguments: filenames followed by a directory name or source file followed by a destination file options: -f force -v verbose Description The Maklink program will link one or more files into a directory. This program does not alter the source file. Option the device indicated by the device number. Options The -c option displays an error message if no device driver corresponds to the specified device number. Notes Makdev calls for two numbers in its arguments: a major device number, which is the driver number, and a minor device number, which is the device number. Some utilities demand that certain devices be owned by bin. For example, Spool expects the print devices to be owned by bin. Use the Chowner utility to change device ownership as fs decides how many inodes are needed and uses that number. The -r option restores the Superblock, should it be accidentally destroyed. This option should be used with caution. If you have an older version of the Makfs utility, using this option causes destruction of all data on the disk. After you have run Makfs -r, you must then run the Icheck utility to complete the restoration process. Notes A more prudent method of restoring the superblock is to use the Fixsb utility, which restores the SMAKFS CROMIX Instruction Manual MAKFS utility: MAKFS purpose: This program sets up the structure for a file system on disk. user access: privileged user summary: makfs [-ir #] devname arguments: device name options: -i number of inodes -r restore Superblock Description The Makfs utility sets up a structure for a file system on a block device. It establishes the number of inodes, the blocks dedicated to those inodes, blocks dedicated to the system, and blos The -f option causes the new link to overwrite another link with the same pathname (if one exists). If the -f option is not used and another file exists with the link name, an error will be generated and the Maklink program will be aborted. The -v option causes the names of files being linked to be displayed. Notes No link can be made between two different file systems. That is, links cannot extend between 2 different devices (disks). needed. uperblock and then runs Icheck automatically.   MATCH CROMIX Instruction Manual MATCH utility: MATCH purpose: This program finds all occurrences of a string within a file. user access: all users summary: match [-bcelr] string file-list arguments: string file list options: -b block numbers -c count -e exact match -l line number -r reverse match Description The Match utility searches through the specified files for all occurrences of the string and displays each line containingMODE CROMIX Instruction Manual MODE utility: MODE purpose: This program displays or alters the character device modes. user access: all users summary: mode [devname] [characteristic(s)] arguments: optional device name optional characteristic(s) options: -v verify Description The Mode utility program displays or alters the operational characteristics of a character device. If the program is run without any arguments, the current operational characteristihe search for the string is case insensitive unless the -e option is used. If the ambiguous characters * or ? are used, the string should be enclosed in quotation marks ("). If match is used to search a file that is not a text file, control characters may be sent to the terminal. This may lock up the terminal; press CNTRL-Reset, or turn the terminal off and then on again to restore terminal operation. Example: % who john tty1 roger tty2 % who|match roger roger tty2 is CNTRL-U. Character values may be expressed by either pressing the ASCII key itself, or by typing its hexadecimal value. For control characters, press the caret key (^) followed by the character. Thus, the line kill character can be changed to CNTRL-A by any one of the following methods: 1. Type mode lkill, then press the A key while holding down the CNTRL key; 2. Type mode lkill 01h; 3. Type mode lkill^A. All commands are entered by pressing the RETURN key. Methods 2 and 3 a match. Unless the -e option is used, Match is not case sensitive. If no file is specified, input is accepted from the standard input device. Options The -b option displays the block number with the matching line. The -c option prints a count of the matching lines. The lines themselves are not displayed. The -e option displays only lines that match the given string exactly - a case sensitive match. The -l option displays the line number together with the matching line. The -r option reverses cs of the device from which the system received the Mode command are displayed. To display the operational characteristics of another device, a device name must be specified as the first argument. If no characteristics are specified, Mode displays the characteristics of the specified device without altering them. Mode characteristics can be altered by specifying the desired settings as arguments. For example: # mode lpt1 width 132 -tabexpand Some characteristics are switches thamode.hlpmount.hlpmove.hlp msg.hlp msg.msg msg1.msg msg2.msg ncheck.hlp newdisk.hlpnewuser.hlppasswd.hlppatch.hlppath.hlppriority.hlppriv.hlpprompt.hlp are ways to make the RETURN key, for example, the user signal key. Either mode sigchar 0dh or mode sigchar ^M accomplishes this. When displayed, the first part of the name of a mode characteristic is capitalized: PAuse, for instance. The capitalized part of the name must be used in changing the characteristic. For example, either mode tty1 -pa or mode tty1 -pause, but not mode ttyl -p, can be used to turn off the pause mode of ttyl. Option The -v option verifies Mode changes by dithe sense of the match, displaying only lines that do not contain a match to the given string. Notes Strings of more than one word and ambiguous strings may be specified on the command line, surrounded by quotation marks. The same characters represent ambiguous strings as are used by the Cromix Shell (*, ?, []). In addition, the caret character (^) may be specified at the beginning or end of a string to force the match of that string at the beginning or end of a line of text, respectively. Tt may be turned on or off. A dash is used to turn a switch off (e.g., -tabexpand). Omit the dash turn it on. Some characteristics must be followed by numerical values, (e.g., width 132). Numerical values may be expressed as decimal or hexadecimal numbers, (e.g., delaycode 7fh). They may also be expressed by using the kilounit operator K, (e.g., outblkln 8K), where K = 1024. Some characteristics use ASCII characters as values. Terminal devices have a line kill character which, by default,   splaying the characteristics after changing them. Notes In CBREAK mode, RAW mode, and BINARY mode, no calls for reading characters (.rdbyte, .rdline, nor .rdseq) wait for a line terminator; they all return after a single byte is entered. The Shell, the program through which the Cromix Operating System reads command lines, sets the mode to nonCBREAK, nonRAW, and nonBINARY each time it prompts for a new command line. A program, PROG, can be run in BINARY mode, by typing % mode binary; prl devices TTY, QTTY, MTTY, and SLPT. To change the baud rate, use the argument baud followed by the desired buad rate. For example: mode tty5 b 9600 The baud rate designated Auto is a special case. This mode is used with a terminal and causes the driver to try different baud rates until it reads a RETURN from the input. BINary, CBreak, and RAW CBreak, RAW, and BINary are parameters of terminal devices TTY, QTTY, and MTTY. If any of these parameters is enabled, any read from be stated explicitly. A description of the mode characteristics for various kinds of devices follows. TIMER (System Clock) Correction This is the number of seconds per 100 days to be added to or subtracted from the system timer. The range is -32768 to +32767. Only a privileged user may change this value. Refer to the section in Chapter 6, Adjusting the System Clock, for additional information. TTY, QTTY, and MTTY (Terminal Devices) LPT, TYP, SLPT, and QSLPT (Printer Devices) ABortenable m of the page, a formfeed is generated. This takes the device to the top of the next page. The length of a page is determined by the parameter Length (see below). CBreak See BINary. CRDEVice This switch indicates whether or not the designated device is a carriage return device. For a carriage return device, each RETURN character read from the device is translated into a newline character by the driver before being passed to the calling program. The driver then echoes a RETURN, linefeed seog 3102 function keys are disabled and cause the terminal to beep when Cromix is initially booted up. They may be enabled with the Mode utility by using the command mode fn. The command mode -fn disables them again. Enabling the keys allows the actual 2-byte sequence generated by the 3102 to be passed to a program. This sequence consists of a CNTRL-B (^B) followed by another character. For example, CNTRL-B and p are transmitted when function key l is pressed. These 2-byte sequences mustthe device returns after each input character. These parameters serve to disable the action of various other parameters. These effects are listed in the table below. (+ means that the parameter causes the given effect, a space means it does not.) Effect CBreak RAW BINary Return after each character input + + + No erase, linekill, or EOF (CNTRL-Z) characters + + + No output PAuse or output Width truncation + + Treat XOFF (CNTRL-S), XON (CNTRL-Q) as regular in This switch indicates whether or not CNTRL-C functions as a special input character for the terminal devices TTY, QTTY, and MTTY. When this switch is off, CNTRL-C will be treated as any standard character. When on, pressing CNTRL-C sends a SIGABORT signal. In order to disable the signal function of CNTRL-C, the user can give the command mode -abortenable. The argument abortenable enables the signal function of CNTRL-C. Baud This parameter determines the baud rate of the seriaquence to the device. In the case of output to a carriage return device, newlines are translated into RETURN, linefeed sequences. If a device is not a carriage return device, then it is a newline device and these translations are not made. The hexadecimal code for the newline character is 0Ah, a single character that performs the function of a RETURN, linefeed sequence. DELAYcode The DELAYcode is the decimal equivalent of a byte determining the amount of delay inserted after certain cha then be intercepted by an application program to cause them to perform some command. If no device is specified, the device from which the Mode utility was called is assumed to be the device in question. It normally defaults to the terminal calling the Mode utility. However, if the Mode utility is called from a command file, the disk drive where the command file is stored is considered the source device. In summary, if a command file is to change the mode of the terminal, the device must put + + No tandem mode - no input buffer flow control + Treat CNTRL-C and SIGChar key as regular input + No checking or changing of input parity bit + No delays after any output control characters such as tabs + No echoing of input + No function key decoding + No character transformations - ignore the LCase, CRDEVice, and TABexpand settings + BMargin If a printer device, LPT, TYP, SLPT, or QSLPT is within BMargin lines of the botto  racters are sent to the output. For TTYs, the delay is accomplished by sending null characters to the output. For QTTYs, the interrupt process is suspended for multiples of one-tenth of a second. Two bits on DELAYcode determine newline delay, 2 bits determine tab delay, 1 bit determines backspace delay, and so on. These bit assignments are as follows: Character DELAYcode Bits QTTY Values TTY Values (seconds) (nulls) newline 0 and 1 0, .1, .2, .3 0, 4, 8, 12 tacarded. If the command mode tty2 discard is given, the data space for TTY2 is discarded as soon as the device TTY2 is closed. Then SLPT2 can be opened. ECho This switch determines whether characters entered on the terminal devices TTY, QTTY, and MTTY are echoed. In order to disable character echo, use the argument -echo. To enable the echo, use the argument echo. Erase This controls the auxiliary erase character for terminal devices TTY, QTTY, and MTTY. The auxiliary erase character may be uTTY, and MTTY. When the Mode utility displays the delete echo character, the word DELECho is followed by the selected character. If the letter R appears in place of a single character, it indicates that a three-character sequence will be echoed in response to a delete character. This sequence is space backspace space. To change the delete echo character, use the argument DELECho followed by a space and the delete character desired or the letter R. DIScard When a driver is first usVenparity ODDparity Function for Output Characters - - strips parity bit + - makes character even parity - + makes character odd parity + + leaves parity bit unchanged FFexpand If FFexpand is on, every formfeed character (0bh) used as an output to printer devices LPT, TYP, SLPT, QSLPT is converted to newlines so that subsequent output starts at the top of the next page. The length of a page is determined by the parameter Length. If FFexpand is offsed to erase characters entered on the current line. In addition, there are always two standard erase characters. These are DEL (7Fh) and CNTRL-H (08h, also referred to as backspace). To change the auxiliary erase character, use the argument erase followed by a space and the desired character. For example: % mode erase _ This command line causes the underscore to function as an auxiliary delete character. Note that DEL and backspace still function as delete characters. EVenparity The ed, a data area is allocated where its parameters (including its mode characteristics) are saved. This data area is reserved for the driver until it is DIScarded. For most drivers, the location of the data area depends on the port address of the interface board used. For example, terminal TTY2 and serial line printer SLPT2 both use the TU-ART interface board addressed at 20h. For this reason, after access to TTY2 is obtained, SLPT2 cannot be opened until the driver for TTY2 has first been dis, the formfeed character itself is an output to the device. FNkeys If FNkeys is enabled, the terminal drivers TTY, QTTY, and MTTY perform the handshaking that the Cromemco 3102 terminal expects whenever a function key is pressed. (The driver echoes a CNTRL-B for each of the two bytes the terminal sends.) This allows the 2-byte function key sequences of the 3102 to be transmitted to a program when a function key is pressed. HUPenable If this switch is on and an IOP terminal device, a QTTb 2 and 3 0, .1, .2, .3 0, 4, 8, 12 carriage return 4 and 5 0, .1, .2, .3 0, 4, 8, 12 formfeed 6 0, .8 0, 128 backspace 7 0, .1 0, 4 For example, mode qtty1 delaycode a3h sets the QTTY1 newline delay to 0.3 seconds, the RETURN delay to 0.2 seconds, the backspace delay to 0.1 seconds, and the TAB and formfeed delays to zero. DELECho This is the character to be echoed in response to any one of the delete characters for terminal devices TTY, Qtwo characteristics, ODDparity and EVenparity, produce four combinations. These are listed in the following table (where + means enabled and - means disabled). EVenparity ODDparity Function for Input Characters - - does not check parity but strips parity bit + - checks for even parity before stripping parity bit - + checks for odd parity before stripping parity bit + + leaves parity unchecked and unchanged E  Y or an MTTY, closes, the modem on the IOP device is hung up. SIGHUPall If this switch is on and the modem of an IOP terminal device, QTTY or MTTY, hangs up, the signal SIGHANGUP is sent to all processes controlled by the device. A process is controlled by the terminal with which the user who initiated the process logged in. For example, a user who has logged in on MTTY1 and hangs up without logging out is logged off by the resulting SIGHANGUP signal, provided SIGHUPall is enabled. Ier key. The terminal which controls a process is the terminal on which the owner of the process logged on to the system. If SIGenable and SIGALLchars are both on, pressing the SIGChar key causes the SIGUSER signal to be sent to all processes controlled by the terminal, but the SIGChar key character is also put into the input stream. If SIGALLchars is on but SIGenable is off, every terminal keystroke pressed before a system call to read input has been made sends the SIGUSER signal to all contro specified by Length have been output. The output resumes only after an XON (CNTRL-Q) is entered on the keyboard. RAW See BINary. RETYpe NOTE: Effective only on 68000 Cromix versions 20.25 and later. If RETYpe is on it is possible to retrieve the last command line entered by typing CONTROL-R prior to typing any other characters. The retrieved line (or any other command line) may also be edited using a simple editor with the following commands: DEL (delete key) delete the character to the ls should be conditioned to the same Baud rates, have RAW mode enabled, and ECho and CRdevice disabled. The receiving system should have TANdem mode enabled, and the receiving program or command file should already be executing before sending begins. Tandem mode causes the receiving system to transmit a DC3 (XOFF) character when the tty driver buffer is full. This causes the sending driver to stop sending. When the driver is ready to accept more characters, it transmits a DC1 (XON) character, Mmediateecho This determines the way that the terminal drivers TTY, QTTY, and MTTY treat type-ahead. If IMmediateecho is on, characters typed ahead are echoed immediately. They are echoed again when they are read. If IMmediateecho is off, they will be echoed only at the time they are read. Length This is the page length in lines of the designated device. When the Mode utility displays the page length, the word length is followed by the specified page length. To change the page lengtlled processes. (Only characters typed-ahead send signals.) The characters are also put into the input stream. Note that Shells are set up to ignore SIGUSER signals, so that a user is not logged off by them. Any program running in a nondetached mode that does not either ignore or trap SIGUSER signals is aborted by them. The .signal system call provides a means for ignoring or trapping signals. TABexpand If TABexpand is on, every tab character (09H) output is converted to enough spaces to breft of the cursor left arrow move cursor left right arrow move cursor CONTROL-i turn on insert mode ESC turn off insert mode SIGenable, SIGChar, and SIGALLchars If SIGenable is on and SIGALLchars is off, pressing the SIGChar key causes terminal devices TTY, QTTY, and MTTY to send a SIGUSER signal to all processes controlled by the terminal. The SIGChar key character is not put into the input stream. If SIGenable is off, then the SIGChar key is treated in the same manner as any othand the sending driver resumes sending. Width The Width function specifies the number of columns displayed before truncation or wrap-around. If Width = 0, no truncation or wrap-around occurs. WRAParound If WRAParound is on, and the device output column reaches the page Width, an extra newline is sent to the device. This allows the remainder of the output line to be printed on the next line. If WRAParound is off, the remainder of the line is truncated. If Width = 0, no truncation or wrap-aroundh, use the argument length followed by a space and the desired page length. LCase If LCase is on, terminal devices TTY, QTTY, and MTTY convert upper case alphabetic input characters to lower case. LKill The LKill character deletes the current input line for terminal drivers TTY, QTTY, and MTTY. This performs multiple deletes back to the last prompt character. ODDparity See EVENparity. PAuse If PAuse is on, terminal devices TTY, QTTY, and MTTY pause after of the number of lines ing the output to the next standard tab stop. Standard tab stops are multiples of 8 at columns 1, 9, 12, etc. on the terminal. TANdem Tandem mode is used to allow a receiving Cromix system to control the rate of input data using the DC1/DC3 handshaking protocol. The device sending data may be a Cromix system or another computer. When used to communicate between two Cromix systems, the ttys to be used in both the sending and receiving systems should not be selected in the ttys files. Both driver   occurs. MODES FOR TP (Tape Devices) Block To move to a block within a tape file, use the argument block followed by a space and the block number. Tape blocks are numbered 1, 2, 3, and so on. The following example moves to the second block within the current tape file on device TP1: % mode tp1 block 2 If the specified block is larger than the total number of blocks in the file, the device moves to the beginning of the next tape file. BLKSwritten BLKSwritten is a count of theMOUNT CROMIX Instruction Manual MOUNT utility: MOUNT purpose: This program enables access to a file system. user access: privileged users summary: mount [-r] devname dummyname arguments: device name file pathname options: -r read only Description The Mount utility enables access to a file system. When given without any arguments, Mount lists the currently mounted devices. The Mount utility looks on the disk to be mounted for the file /etc/passwd. Finding  the front of the tape drive until the ON-LINE light goes off. Inblkln Inblkln equals the length in bytes of the first block of the last file read from the tape device. It cannot be changed with the Mode utility. Outblkln Outblkln is the block length used by the driver writing files on a tape device. To set it, use the argument outblkln followed by a space and the desired size. The following command sets the output block length of tp3 to 8192 bytes, or 8K: % mode tp3 outblkln 8K REWind Tmounted. After unmounting, this name becomes a dummy filename once again. The Mount command is given with the device name where the file system is located. Refer to Appendix D for a complete list of device names. The L utility shows that the new file system has been mounted and gives the name of the root directory.  blocks written when the tape file was last written to the tape device. It cannot be changed with the Mode utility. EOFclose If the EOFclose switch is on, a filemark is automatically written on the tape when the tape device is closed. A filemark marks the end of a tape file. If the switch is off, no filemark is written. A filemark is written on a tape when a .setmode system call is made for the tape device with the c register containing TPFMARK (0C6H). File To move to a file on tape, usthat file, it looks for the special user name mount. If this name is present and has a password associated with it, Mount prompts the user for the password before mounting the disk. Thus, it is possible to protect disks from being mounted by an unauthorized user. Options The -r option causes the file system to be mounted for read only access. Notes A file system that has been mounted must be unmounted by use of the Unmount utility before the mounted disk is removed from the system. If tho rewind a tape device, use the argument rewind. For example: % mode tp1 rewind UNLOAD To unload a tape device, use the argument unload. For example: % mode tp2 unload MOVE CROMIX Instruction Manual MOVE utility: MOVE purpose: This program moves file(s) from one directory into another. user access: all users summary: move [-ftv] file-list dirname [-ftv] srcfile destfile arguments: two single file pathnames or one or more file pathnames and a directory pathname options: -f force -t time -v verbose Description The Move program moves one or more files from one directory to another directory. This proe the argument file followed by a space and the number of the file. Tape files are numbered 1, 2, 3, and so on. The following example moves to the sixth file on TP1: % mode tp1 file 6 If the specified file number is larger than the total number of files recorded on the tape, the device moves to the end of the tape reel. This motion may be aborted by taking the tape drive off-line and pushing the CNTRL-C key of the terminal keyboard. To take the drive off-line, push the ON-LINE button on is is not done, the integrity of the data on the mounted system cannot be assured. Do not attempt to mount a file system on a nonexistent device. Devices which do not exist may be deleted from the /dev directory. Example: % create newfilesys % mount fdb newfilesys % l . . . 145 D newfilesys % In the example above, the user first creates a dummy file. After mounting, the name of this dummy file becomes the root directory name of the file system to be   gram destroys the source file(s). The Move program does not change the access privileges of the moved files. If files are transported from directory A to directory B, the owner of directory B may not have full access privileges for the files. The program Chowner must be run to change the owner of these files. Options The -f option causes the moved file to overwrite another file with the same pathname if one exists. If this option is not used and another file exists with the destinativileged users are permitted to use this option. A message sent with the -a option is not transmitted until the entire message is given. Hence, when the -a option is specified, it may be followed on the command line by the name of a file that contains a broadcast message. The -n option causes incoming messages to be disabled. The -y option allows incoming messages to be received. The -2 option sends messages to the status line of a Cromemco 3102 terminal. Notes To clear the status line of a Cromem. If msg is typed and immediately followed by a RETURN, then a message is displayed to inform the user of the status of incoming messages. Incoming messages may be disabled or enabled by using the -n and -y options. Terminating a message with CNTRL-Z automatically sends the message End of message to the receiving user. The Msg command followed by (optionally the -2 option and) a user or device name and RETURN allows a message to be entered. The message is transmitted toTopic ? dP%d%% MOREd@ dPPRESS SPACE BAR TO CONTINUEd@ dPCOMMANDS: Begin Help Quit Return Up d@ on pathname, an error is generated and the Move program aborted. The -t option causes a file to be moved only if: 1. The file does not exist in the destination directory; or 2. The source file was modified more recently than the destination file. This comparison is performed on a file-by-file basis. The -v option displays the names of the files being moved. co 3102 terminal after receiving a message transmitted using the -2 option, type CNTRL-shift followed by CNTRL-1. If two-way communication is desired, a protocol should be established to prevent the confusion that arises when two messages are transmitted simultaneously. A suggested protocol follows: One user transmits at a time. A single o (short for over) is transmitted on a line by itself to indicate the end of the message. Upon seeing the o, the other user responds, terminating th the destination user after each RETURN is pressed. A CNTRL-Z terminates the message and returns the originating user to the Shell. Options The -a option broadcasts a message to all users currently logged on to the system. This can be used by the privileged user to warn other users of interruptions to system usage such as rebooting. This message is sent to all users whether or not they have message receiving enabled. The message is preceded by the warning Broadcast message. Only priTopic ? ------ MORE %d%% ------ ------ PRESS SPACE BAR TO CONTINUE ------ ------ COMMANDS: Begin Help Quit Return Up ------ MSG CROMIX Instruction Manual MSG utility: MSG purpose: This program sends messages between users. user access: all users summary: msg [-any2] [user-name or devname] arguments: text terminated by CNTRL-Z options: -a all -n disable -y enable -2 Cromemco 3102 terminal Description The Msg utility sends messages between users or from a user to a device. Sending a message to a device is useful when a device is online but no user is in attendancee message with an o. When the entire communication is finished, one user transmits oo (short for over and out) followed by a CNTRL-Z. The other user should type a CNTRL-Z also. Two-way communication can be established by the Msg utility. When a user receives a message: Message from xxxx the receiving user should type: msg xxxx This allows users to send each other messages. In the example above, xxxx represents a user name.   NCHECK CROMIX Instruction Manual NCHECK utility: NCHECK purpose: This program displays file information. user access: all users summary: ncheck [-i # # ...] [dirname or filename] arguments: directory or file pathname options: -i inodes Description The Ncheck program displays the inode number, link count, and pathname of all files contained in the specified directory and all subdirectories. If no arguments are supplied, Ncheck uses the / directory. Options The us version of the Cromix Operating System then you may skip to the "Updating" section by pressing the space bar once per page until the section appears on the screen. Note that the Cromix Operating System sometimes displays one full screen of information and then the terminal beeps. If this happens while you are viewing terminal output, simply press CNTRL-Q (hold the CNTRL key down and type Q) when you're ready to continue. You can also stop the display at any time by pressing CNTRL-S. Press CNTRL-Q whend in the copying process. If you are updating your Cromix System disk to a new version of the operating system, refer to the Update utility. mode of operation is as a non-privileged user. Current Cromix documentation ---------------------------- The current Cromix documentation consists of the manual, Cromemco Cromix Instruction Manual, 023-4022, December 1982 and the following Software Update Service Notes: Cromix-6 Part number 023-9560 This note describes the current release. Cromix-5 Part number 023-9540 Cromix-4 Part number 023-9532 Copying the distribution diskette --------------------------------- To make a c-i option displays information about the specified inodes only.  you're ready to continue reading. Throughout this note "version 11" refers to any version of the Cromix Operating System with a version of the form "11.xx". Information for new users of the Cromix Operating System -------------------------------------------------------- First, input the date and time as prompted. Note that each response must be terminated by depressing the RETURN key. Respond to the "Login:" prompt with the user name "system" to be a privileged user (to be used while NEWUSER Information for New Users of the Cromix Operating System NEWUSER This note contains information for both new users of the Cromix Operating System and existing users who are updating their systems to this version. Existing users should read the Software Update Service Note Cromix-7, part number 023-9575 for a description of the new features and changes to this version. If you are a new user of the Cromix Operating System then read the following section carefully. If you are updating a previoopy of this disk, type the command "newdisk" in response to the Cromix Operating System Prompt (#). The command "newdisk" must be followed by the name of the drive on which the new disk is to be created. The permitted names of the disk drives are: fda = large floppy disk A sfda = small floppy disk A hd0 = 1st hard disk fdb = large floppy disk B sfdb = small floppy disk B hd1 = 2nd hard disk fdc = large floppy disk C sfdc = small floppy disk C hd2 = 3rd hard disk fdd = large NEWDISK CROMIX Instruction Manual NEWDISK utility: NEWDISK purpose: This program copies the system disk. user access: privileged users summary: newdisk devname arguments: device name Description The Newdisk utility copies the system disk. Newdisk must be followed by the name of the device on which the disk is to be created. The Newdisk command file first executes the Init program. Be sure to specify the correct disk drive, as data on the disk specified is destroyecopying this disk, for example) and the user name "user1" or "user2" to be a non-privileged (or ordinary) user. Following this you will get the Cromix Operating System prompt (#). At this point you can enter commands and converse with the system. Refer to the Cromix Operating System manual for additional information. In particular, read the sections on passwords, groups, and accounting to learn how to change the login names and add password protection to them. The preferred   floppy disk D sfdd = small floppy disk D The "newdisk" command file will first execute the Init program. Init will prompt the user to determine which disk is to be initialized. Respond to this prompt with the correct disk drive name from the preceding list. Be sure to properly specify the correct disk drive as all data on the specified disk will be destroyed. All other questions may be answered by pressing the RETURN key as a response (thereby supplying the default answers---- Cromix contains a facility for generating your own Cromix operating system which can contain different device drivers than those supplied as part of the standard Cromix. The program for doing this is called "crogen" and is located in the /gen directory along with the libraries needed. The utility program default.bin is also located in the /gen directory. This program permits you to specify a default root device without running the crogen program. Please read moren: 1 console (tuart) yes 2 console (quadart) no 3 system yes 4 timer yes 5 parallel printer yes 6 typewriter printer yes 7 serial printer (tuart) no 8 IOP memory no 9 serial printer (quadart) no 10 SDI no 11 tape no 12 network no Block drivers 1 floppy yes 2 hard disk yes Default root device yes Boot disk yes Automatic login name no Default access privileges yes The cromix.iop.sys file in the root (i.e., /cromix.iop.sys) was generated to have the PASSWD CROMIX Instruction Manual PASSWD utility: PASSWD purpose: This program changes the passwd and group files. user access: all users summary: passwd [-dgn] [user1 user2...] arguments: user1 user2... options: -d delete -g group -n new user Description The Passwd utility has three functions. It may be used to change a user's own password. A privileged user may use it to add and delete from the listof users permitted to log on to the system. ). The "newdisk" command file will then execute several other programs and display the message "Finished creating disk fdx" when the new disk is completed. Note that "newdisk" may be executed only by privileged users. Updating from an older version 11 system to the current version --------------------------------------------------------------- The easiest way to update your present Cromix system is to boot up this new disk and execute the Update command (followed by a block devi about the crogen and default programs in Chapter 9 of the Cromix Instruction Manual. Configuring your Cromix system for multiple users ------------------------------------------------- The Cromix operating system is a multi-user, multi-tasking operating system, which means that it can accommodate more than one user and that each user can run one or more programs. The Cromix system as supplied on distribution diskettes is not fully configured for multi-user operation because of tfollowing configuration: 1 console (tuart) yes 2 console (quadart) yes 3 system yes 4 timer yes 5 parallel printer yes 6 typewriter printer yes 7 serial printer (tuart) no 8 IOP memory yes 9 serial printer (quadart) yes 10 SDI no 11 tape no 12 network no Block drivers 1 floppy yes 2 hard disk yes Default root device yes Boot disk yes Automatic login name no Default access privileges yes Configuring your own Cromix.sys file -------------------------------- By using the delete function followed by the add function, the privileged user may change the login status of any user. In any one of these three modes of operation, user name(s) are specified either on the command line or during the execution of the Passwd program. To change the password only, enter the command passwd followed by a RETURN. The Passwd program prompts for a user name and a new password. Options The -d option deletes a specified user or group. The -g option alters the /etc/grouce name -- see the "newdisk" description above). Do NOT mount the old disk to the new file system. This method will not preserve many of your old Cromix files. You can also do the updating manually with the copy and cptree programs; however, this is not recommended. Configurations of system files on distribution diskettes -------------------------------------------------------- The cromix.sys file in the root (i.e., /cromix.sys) was generated to have the following configuratiohe many hardware configurations possible with Cromemco products. You can reconfigure your system for multi-user operation on your specific hardware configuration quite easily by following the procedures described in Chapter 6 of the Cromix manual, "Booting and Setting up the Cromix Operating System"; Appendix A, "Setting up - Hardware"; and Appendix B, "Connecting Terminals with the IOP/Quadart".   p file (instead of the /etc/passwd file). The -n option adds new user(s) or group(s). Establishing a New User A new user may be added using the Passwd program. In the following example, the user logs on as the privileged user system and creates a new user fred with the password mountain: Login: system Logged in system Jun-24-1980 17:12:15 on console # passwd -n Name: fred Password: xxx User number: 5 Group number: 0 Directory: /usr/fred  the Passwd program as follows: % passwd Name: fred Password: xxx Name: RETURN % Notice that the password encryption is displayed only after the password and a RETURN have been entered. Changing User Characteristics If the privileged user has occasion to change user characteristics other than the password, the user must be deleted and added again with the new characteristics.  The user is the owner of this directory. If the home directory already exists, the Passwd utility prints this information. Finally, the Passwd program prompts for a Starting program. If RETURN is pressed in response to the prompt, the user has full use of the Shell program. If the name of a program is entered here, the user is brought up running the program specified and is logged off upon exiting from the program. Any valid Shell command line may be entered in response to this prompt. DelePATH CROMIX Instruction Manual PATH Shell command: PATH or PA purpose: This command finds the full pathname of an executable file. user access: all users summary: path file-list arguments: filename options: none Description The Path command searches the current directory for the specified file with an extension of .bin, .com, or .cmd. It then searches the /bin directory for a .bin or .com file and the /cmd directory for a .cmd file. If the specifi Starting Program: Name: # The Passwd program prompts for a user name. The response to this prompt is the user name typed in response to the Login: prompt. Press RETURN after entering the name. Next, the program prompts for a user password. If no password is desired, press RETURN in response to the prompt. If you do enter a password, it is encrypted, and the encrypted password displayed on the screen. When a user logs on, this password must be entered after the password PATCH CROMIX Instruction Manual PATCH utility: PATCH purpose: This program patches a file. user access: all users summary: patch filename arguments: filename options: none Description This program displays and alters specified bytes within a file. Enter the command name plus a filename, and press RETURN. The program displays a greater-than sign (>). The user must enter one of three subcommands: d for display, s for substitute, and e for exit. Notesting a User A user is deleted from the list of users (/etc/passwd file) by running the Passwd program with the -d option. In the following example, the user fred is deleted: # passwd -d Name: fred Name: RETURN # Note that only a privileged user may delete a user. Changing a Password When called without any options, the Passwd program allows the privileged user to change any user's password and any user to change his or her own password. To change a password, called command is a Shell command, Path notifies the user of that fact. Path locates only executable files. Path lets you make sure you are running the correct version of your program, rather than a copy that may have been altered. prompt. The program prompts for the user and group identification numbers. Each of these is an unsigned integer between 0 and 65535. A zero in the user field indicates a privileged user. A zero in the group field indicates the user is not a member of any group. Any other number has significance only within a given system. The Directory: prompt allows specification of an initial directory, which is the user's home directory. If this directory does not exist, the system creates one.  The d subcommand displays one sector of the file at a time, in a format similar to that used by the Dump utility. The s subcommand displays the file word by word, so it can easily be changed. The e subcommand allows you to exit from the program.   PRIORITY CROMIX Instruction Manual PRIORIT Shell command: PRIORITY or PRI purpose: This command changes the priority of a process. user access: all users (priorities 0 through +40) privileged user (priorities +40 through -40) summary: pri [+priority-number][command-line] arguments: priority number (optional) command line (optional) options: none Description The Priority command establishes the priority of a process. Priority numbers range from -40 (hPROMPT CROMIX Instruction Manual PROMPT Shell command: PROMPT purpose: This command changes the prompt. user access: all users summary: prompt [char] arguments: any character options: none Description The Prompt command changes the prompt. Char is the new character which the Cromix Operating System will use as a prompt. This must be a single character. If no character is specified, the prompt will be changed to the pound sign (#) for the privilegPRIV CROMIX Instruction Manual PRIV utility: PRIV purpose: This program allows any user to have the status of a privileged user. user access: all users summary: priv arguments: none options: none Description The Priv utility examines the /etc/passwd file for a user named system. If this user is not found, an error message is displayed and execution of the utility is aborted. If the user named system is found and if there is a password associated with thePSTAT CROMIX Instruction Manual PSTAT Shell command: PSTAT or PS purpose: This command displays the status of a process. user access: all users summary: pstat [-abl] arguments: none options: -a all -b brief display -l long display Description The Pstat command displays the following information on the status of a process: PID process identification number state state of process: Sleeping Ready Terminated usighest) to +40 (lowest). The highest priority a nonprivileged user may specify is 0, the lowest is +40. A privileged user may specify any priority. If the Priority command is executed without a priority number, the default value is +10. All processes run without using the Priority command are assigned a priority of 0. If a command line is given as an argument, the priority specified applies to the process(es) initiated by the command line. If no argument is given, the priority applied user and to the percent sign (%) for any other user. Notes Changing the prompt from a percent sign to a pound sign does not give a user the privileges of a privileged user.  user, the Priv utility prompts for the password. If the user responds with the correct password or if there is no password associated with the user system, a new Shell is formed in which the user has the status of a privileged user. Upon exiting from the newly created Shell, the user's previous status is reinstated. er id # group id # Ctty controlling tty, the tty of the user or user's process(es) Seconds number of seconds the process has executed bank memory bank in which the process resides command line the command line which invoked the process Options The -a option causes the status of all processes to be listed. If the -a option is not selected, only those processes with the id of the user giving the Pstat command will be displayed. The -b option caues to the current Shell and all children of the current Shell created after execution of the Priority command. pstat.hlpqslpt.hlpquery.hlprename.hlprepeat.hlprestore.hlprewind.hlprfile.hlproot.hlprunqd.hlpruntu.hlpscreen.hlp'sfile.hlpshell.hlpshift.hlpshutdown.hlp  ses a brief display of the statuses. The -l option causes a long list of the statuses to be displayed. e as follows: db 'SEQ' ; marker for command sequence tables seqtbl2p: dw seqtbl2 ;address of table-2 seqtbl1:; table for the initial characters of command sequences db ESC ; db ^CMDSEQ|^CSBEGIN ; may be a 2, 3, or n-character seq db DC2 ; db ^CMDSEQ|^CSBEGIN|^CSNXLAST;2-character sequence db DC4 ; db ^CMDSEQ|^CSBEGIN|^CSNXLAST;2-character sequence db 80H ; end of table seqtbl2:; table for the second characters of command sequences db ';' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db ':' ; db ^CMDSEQ|^CSNXLAST ;this is the next-to-last char in seq db '1' ; db ^CMDSEQ ;NUL-terminated sequence db '2' ; db ^CMDSEQ|^CSNXLAST ;this is the next-to-last char in seq db '3' ; db ^CMDSEQ ;NUL-terminated sequence db '4' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '5' ; db ^CMDSEQ|^CSLAST ; this  may be 2- or 3-characters long. They may also be of indefi- nite length. These latter are terminated by an ASCII NUL (00). An entry's data byte determines the characteristics of the command sequence according to the following bits: CMDSEQ equ 4 ; this character is part of a command sequence CSBEGIN equ 5 ; beginning of a command sequence CSNXLAST equ 6 ; this is the next-to-last character CSLAST equ 7 ; this is the last character The command sequence tables included in the drivers as shipped ar of the utility programs and Shell commands for the name given as an argument. When using Query without an argument, a listing of all one line descriptions of utilities and Shell commands is displayed. The Query program considers names that are part of other keywords. When the name fil is given, Query finds all occurrences of the name file as well. This is helpful when the correct spelling of a name is unknown. After using Query to find the name of the desired command, additional informatis further output until the printer responds by sending the driver an ACK character. The exception to this rule which is described below. Certain sequences of characters are reserved as command sequences by some printers. For example, sending an ESC character followed by ';' to one printer sets its width to 132 columns. The driver must not send its ETX in the middle of one of these sequences. The driver includes a pair of tables whose function is to describe the com- mand sequences of the printer. These tis the last char in the sequence db '6' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '7' ; db ^CMDSEQ|^CSLAST ; this is the last char in the sequence db '8' ; db ^CMDSEQ|^CSNXLAST ;this is the next-to-last char in seq db '9' ; db ^CMDSEQ|^CSNXLAST ;this is the next-to-last char in seq db 80H ; end of table   on is obtained by entering help, followed by the name of the command. For further details, refer to the Help utility. The Query program uses the file /usr/query/query_data as a database. This file may be edited using the Screen Editor. Options The -s option searches the file /usr/query/sys_data, /usr/query/jsys_data, and /usr/query/mode_data before searching the default file, which gives information on the programs only. The /usr/query/sys_data file gives a list of system calls associated with the REPEAT CROMIX Instruction Manual REPEAT Shell command: REPEAT or REP purpose: This command repeats a command. user access: all users summary: rep count command arguments: a count of the number of repetitions command options: none Description The Repeat command is used to repeat a command a specified number of times. Example: % repeat 5 echo "this line is displayed five times" this line is displayed five times this line is displayed fiveRENAME CROMIX Instruction Manual RENAME Shell command: RENAME or REN purpose: This command changes the name and/or directory of a file. user access: all users summary: ren oldfile1 newfile1 [ ... oldfileN newfileN] arguments: one or more pairs of file pathnames (existing pathname first, followed by new pathname) options: none Description The Rename command changes a filename and/or the directory where it is located. This command does not move a file frRESTORE CROMIX Instruction Manual RESTORE utility: RESTORE purpose: This program will restore data which has been saved by the Backup utility. user access: all users summary: restore [-lv] source-dev [file-list] arguments: source device and optional list of files to be restored options: -l list only -v verbose Description The Restore program will recreate files which have been saved by the Backup program. The Restore program always starts with command. The /usr/query/jsys_data and /usr/query/mode_data are linked to the files /equ/jsysequ.z80 and /equ/modeequ.z80, respectively. Example: The following example demonstrates the use of the Query program. % query delete query_data delete - removes a file or directory from a file system deltree - deletes a directory and its descendents passwd - change a user password, add or delete a user In the above example, the Query program has displayed all descr times this line is displayed five times this line is displayed five times this line is displayed five times % Notes The Repeat command may be terminated by a semicolon and in this case any command(s) following a semicolon are executed only once. This means that the following command displays the date three times and then displays the time once: % repeat 3 date; time Wednesday, November 12, 1980 Wednesday, November 12, 1980 Wednesdayom one device to another. the first disk (number 1), which was created by the Backup program and prompts the user for additional disks from the set of backup disks as necessary. If no filenames are specified, the entire directory, including all descendant directories and files, will be restored to its original structure. If one or more filenames are specified, the specified files will be restored into the current directory. If the optional file list is included, only files with names exactly matching those in the file list iptions of Shell commands and utility programs that contain the word delete in their descriptions. , November 12, 1980 Wednesday, November 12, 1980 18:54:04   will be restored. Options The -l option lists the names of all of the files which are backed up on the set disks. It may only be used with the first (number 1) disk in a set of backup disks. The -v option causes the names of the files to be displayed as they are restored. t on the Quadart using a 12- wire cable constructed for this purpose. The qtty driver is used to connect Rfile with the IOP/Quadart and modem. The Cromix system being used must include the IOP/Quadart drivers (see Crogen) and a device file for the qtty should be set up in the /dev directory using Makdev. The corresponding entry in the /etc/ttys file should have a 0 in the first column. Example % rfile -d qtty2 -b 300 recvtemp This command line sets the reception rate at 300 baud and stores all of RFILE CROMIX Instruction Manual RFILE utility: RFILE purpose: This program allows binary files to be received from users over the phone lines with error free results. user access: all users summary: rfile [-q] [-f] [-d device-name] [-b baudrate] dst-directory arguments: destination directory pathname (must already exist) options: -q quiet (default is verbose) -f force -d qtty device name (default is stdin/stdout) -b baudrate (de specified and another file exists with the destination pathname, an error is reported. The -d option specifies which qtty device is to be the receiver. The -b option sets the baud rate of the receiving device. Notes Rfile is used in conjunction with Sfile. Refer to the Sfile utility for additional information. When used without an argument, Rfile displays a summary of the command line syntax. REWIND CROMIX Instruction Manual REWIND Shell command: REWIND or REW purpose: This command restores the arguments with which a command file was called. user access: all users summary: rew arguments: none options: none Description The Rewind command is used to restore the arguments with which a command file was called. It nullifies the effect of any Shift commands given within the batch file. After the execution of the Rewind command, #1 will represent tthe data received from qtty2 into the existing directory named recvtemp. Messages returned by Rfile Waiting for phone call -- Rfile is in an idle state waiting for a connection from the Sfile utility. Rfile will remain in this mode indefinitely if Sfile fails to make a valid connection. Receiving from into A valid connection to the Sfile utility has been established and data is being transferred from the qtty device to the specified diskfile in the specified direfault is current baudrate) Description The Rfile utility allows binary disk files to be received by a user on one Cromix system from a user on another Cromix system that is using the Sfile utility to transmit files. Rfile may operate at either 300 or 1200 baud. It must use an asynchronous modem such as the Cromemco MDM-1200, a Bell 212A, or a Bell 103 type. The modem used must be compatible with the modem the Sfile utility is using to transmit the data. The modem can be connected to any serial porROOT CROMIX Instruction Manual ROOT utility: ROOT purpose: This program displays the name of the device containing the root directory. user access: all users summary: root arguments: none options: none Description The Root program displays the root directory's device pathname. Example: # root /dev/hd0 he first argument with which the command file was called, #2 the second, etc. ctory. Connection lost -- ABORT RFILE The line to Sfile was disconnected prematurely. ABORT RFILE A control-C character was received from the user at the keyboard; Rfile does an orderly exit back to the Cromix shell. Options The -q option specifies a different set of Rfile console messages. (Used by Ccall and when Rfile is running on a remote machine.) The -f option causes Rfile to overwrite any existing file with the same pathname as the file sent by Sfile. If this option is not   RUNQD CROMIX Instruction Manual RUNQD utility: RUNQD purpose: This program is used to switch from using the standard 16FDC or TU-ART console to using a console connected to the IOP/Quadart. user access: privileged user summary: runqd arguments: none options: none Description The Runqd program performs the sequence of steps to allow the IOP and Quadart to function with version 11 of the Cromix Operating System. The Runtu utility will return the opSFILE CROMIX Instruction Manual SFILE utility: SFILE purpose: This program allows binary files to be sent between users over the phone lines with error free results. user access: all users summary: sfile [-q] [-d devname] [-b baud] [-n phonenumber] [-l login-name] [-p password] file-list arguments: one or more filenames options: -q quiet (default is verbose) -d qtty device name (default is stdout) -b baudrate (default is current baRUNTU CROMIX Instruction Manual RUNTU utility: RUNTU purpose: This program reconfigures a system to run with a 16FDC or TU-ART console from a Quadart/IOP console configuration. user access: privileged user summary: runtu arguments: none options: none Description The Runtu program reconfigures a system to run with a 16FDC or TU-ART console from a Quadart/IOP console configuration. This program will effectively undo the modifications made by the Runqd utilie added onto the command line to perform automatic dialing. Otherwise the call must be man- ually originated using standard modem procedures. Example % sfile -d qtty1 -b 300 -n 555-1212 letter.txt This command line sets the transmission rate at 300 baud and transmits the file letter.txt using device qtty1 with a connected MDM-1200 that auto-dials the number 555-1212. Messages returned by Sfile Now waiting for call to complete ... Sfile is waiting for a connection to be made with another modem oerating system to the original set up. This program assumes that there is a cromix.iop.sys file in the root directory which contains the Quadart drivers. The program performs the following steps: 1. The file cromix.iop.sys is renamed cromix.sys. 2. The file /etc/iostartup.cmd is created and contains the commands to load the drivers in the IOP and other I/O drivers as well. 3. The file /etc/ttys is then properly configured for Quadart terminals. udrate) -n phone number (dashes may be used) -l login name -p password Description The Sfile utility allows binary disk files to be transmitted from a user on one Cromix system to a user on another Cromix system using the Rfile utility to receive files. Sfile may operate at either 300 or 1200 baud. It must use an asynchronous modem such as the Cromemco MDM-1200, a Bell 212A, or a Bell 103 type. The modem used must be compatible with the modem the Rfile utility is using to receive thety. ver the phone lines. This call can either be dialed manually using Bell equipment or the MDM-1200 can dial the number and establish the connection automatically. No answer -- Call aborted If a connection is not established within 60 seconds Sfile exits back to the Cromix shell. Transmiting to When a valid connection is established with the Rfile utility at the other end the specified file is then transmitted through the specified qtty device. Rfile not responding -- Sfile aborted If  4. The /dev/console is linked to /dev/qtty1, the first Quadart terminal driver. When Runqd finishes booting up the disk, press RETURN several times and you will automatically be logged in the first Quadart port.  data. The modem can be connected to any serial port on the Quadart using a 12- wire cable constructed for this purpose. The qtty driver is used to connect Sfile with the IOP/Quadart and modem. The Cromix system being used must include the IOP/Quadart drivers (see Crogen) and a device file for the qtty should be set up in the /dev directory using Makdev. The corresponding entry in the /etc/ttys file should have a 0 in the first column. If a Cromemco MDM-1200 modem is being used a telephone number can b  a connection is established with another modem Sfile determines if the Rfile utility is ready at that end. If Rfile is not running at the other end or if Rfile is running at an incompatible baud rate Sfile disconnects the line and exits back to the Cromix shell. Connection lost -- ABORT SFILE The line was disconnected in the middle of a transmission; Sfile then exits to the Cromix shell. ABORT SFILE A control-C character was received from the user at the keyboard; Sfile does an orderly exit back to the Cll), the commands will not be echoed to the console as they are executed. If the commands are to be echoed, the name of the command file should be preceded by the word shell on the command line. Refer to Chapter 7, The Cromix Shell, for additional information. Options These options are only needed when a program is calling a Shell. They are not useful when a Shell is called from the terminal. The -c option indicates that the command line being passed to the Shell is complete (i.e., it has nSHELL CROMIX Instruction Manual SHELL Shell command: SHELL or SH purpose: This command creates a Shell process. user access: all users summary: [shell] [cmd file] arguments: optional command file options: -c complete input line -p parsed input line -q quiet Description When given without an argument, the Shell command will create a Shell process. When given with the name of a file, the Shell command forces a specific command file to be used. Thnd, #1 represents the third argument, etc. The Rewind command nullifies the effects of the Shift command. Example: %abc screen #1 shift if "#1" != " "goto abc If the command file above (named abc.cmd) is called as follows: abc *.txt the Shell expands the ambiguous filename *.txt into a list of all files in the current directory with the txt extension. The command file abc is then called with this list as an argument. The first executable command within the comromix shell. Options The -q option specifies a different set of Sfile console messages. (used by CCall and when Sfile is running on a remote system.) The -d option specifies which qtty device is to be the transmitter The -b option sets the baud rate of the transmitting device. The -n option specifies a phone number to be used by the MDM-1200 modem. The -l option specifies a login name to be used on the remote Cromix system. The -p option specifies a password to be used on the remote Cromix systeot been parsed). The -p option indicates that the command line being passed to the Shell has been parsed. The -q option requests that lines from a command file not be echoed to the terminal (standard output). is can be useful if there are two files in the current directory with the same name, one having a filename extension of bin, the other cmd. If only the name of the file is entered, the bin file will be executed. If the Shell command is given with the cmd file, the command file will be executed. In all other cases, the Shell command is implicit when the name of a command file is entered. When a command file is executed by entering just the name of the command file (not preceded by the word shemand file is screen. Standard argument substitution causes replacement of #1 by the first argument from the command line. After screen is executed, the Shift command represents the second argument from the original command line #1. This command line argument is substituted for #1. If this file exists, the string filename is not equal to the string " ", and control is transferred to the line labeled abc. If this file does not exist, a null string is substituted for #1, the stringm. Notes Sfile is used in conjunction with Rfile. Refer to the Rfile utility for additional information. When used without an argument, Sfile displays a summary of the command line syntax. SHIFT CROMIX Instruction Manual SHIFT Shell command: SHIFT purpose: This command shifts the arguments in a command file. user access: all users summary: shift arguments: none options: none Description The Shift command is used to shift the arguments in a command file. After execution of the Shift command, #1 represents the second argument from the original command line, #2 represents the third, and so on. After another execution of the Shift comma   " " is equal to the string " ", and execution of the command file is terminated.  The Cdoscopy utility program is the only way to read files from or write files to CDOS format disks from the Cromix Operating System. Drive/File Access From CDOS Programs For CDOS programs to gain access to files on various drives, the CDOS Simulator converts disk specifiers to directory names. For example: B:Filename becomes /B/Filename If no disk specifier or the disk specifier A is used (as in A:Filename), the file is assumed to be in the current directory. To take full advantage osim.hlpsleep.hlpslpt.hlpsort.hlpspool.hlpstartup.hlptee.hlptestinp.hlptime.hlptype.hlpunmount.hlpusage.hlpversion.hlpwait.hlpwboot.hlpwho.hlpThis entry is the pathname of the CROMIX directory that the particular CDOS directory maps to. The dump utility may be used to display the contents of this table. The entry for CDOS directory A starts at location 509H the entry for CDOS directory B starts at location 519H, and so forth. To permanently change the mapping of one or more CDOS directories, the patch utility can be used to change the contents of this table. Note that the entry for drive A refers to the current directory and SHUTDOWN CROMIX Instruction Manual SHUTDOWN utility: SHUTDOWN purpose: This program shuts down the system. user access: privileged user summary: shutdown arguments: none options: none Description The Shutdown command file contains commands to shut down the operating system by killing all processes, flushing buffers, and logging off all users. It first warns users and provides a 5-second countdown. Shutdown also has a facility that works with the Startup commaf this scheme, Cromemco recommends a file structure be constructed as follows: 1. Create files B, C, D, etc. in the root directory. Each file corresponds to one of the disk drives in the system. 2. Mount each disk on the appropriate drive using the Mount utility: # mount fdb /b Note that these must be Cromix format disks. 3. The files on those disks may be read and written from CDOS programs. The CDOS Simulator, running under the SIM CROMIX Instruction Manual SIM utility: SIM purpose: This utility allows CDOS programs to run under the Cromix Operating System. user access: all users summary: (sim) progname arg0,arg1,...,argn arguments: program name and arguments to the program to be run options: none Description The Sim program allows CDOS programs to run under the Cromix Operating System. The CDOS simulator is automatically loaded when a file with the extension .com is executed. Notesshould not be changed. When changing an entry, there are a few requirements: * Each path name must have a '/' at the end. * Each string must be terminated with a null. * The path name, including ending '/' can not exceed 15 characters in length. The mapping of CDOS directories to CROMIX directories may be easily defined by the user when calling sim explicitly. For instance: sim -c /usr/lib program.com arguments will refer all references to the CDOS C directory to the CROMIX /usr/libnd to detect inadvertent system terminations. Run the Shutdown program whenever system operation is to be terminated. Cromix Operating System, automatically converts the CDOS drive specifiers to the appropriate directory names. 4. Each disk mounted must be unmounted before it is physically removed from the system. To do this, use the Unmount utility: # unmount fdb The permanent mapping of CDOS directories to CROMIX directories is defined by the contents of a table contained in sim.bin starting at byte location 509H. This table contains a 16 byte entry for each CDOS directory.    directory. Thus one or more CDOS directories may be remapped to a specific CROMIX directories by typing the letter of the CDOS directory as a flag and then typing the CROMIX directory as the next argument. Disks created in this manner are in the Cromix Operating System format and not CDOS compatible. his manual. Each line in a file is a record. A line is a string of characters terminated by a newline (0Ah). When Sort is used without the +x.y option, it sorts on the entire record. White space (blanks and tabs) separates fields within a record. Each field starts with a space or tab. Where no input or output file is specified, the input is assumed to be the standard input device, and output is sent to the standard output device. Options The -b option causes leading tabs and spaces to be ignoSORT CROMIX Instruction Manual SORT utility: SORT purpose: This utility sorts or merges files. user access: all users summary: sort[-bdfirmut][+x.y][+pos][-pos] ... [-o name]filename(s) arguments: input filename(s) options: -b leading spaces and tabs ignored -d dictionary order -f consider upper case as lower case -i ignore all control characters and 7Fh in sort keys -r reverse order -m merge sorted input files only -o output file in ASCII order: alphabetized, but having upper case entries first. Note that the blanks and tabs are retained in the sorted output, even though they are not considered in the ordering of the file. The -d option sorts the lines of the file in dictionary order. Dictionary order means that only letters, numbers, and blanks are considered when ordering the input file. This option discounts nonprinting characters and special characters that precede alphanumerics in ASCII order. Figure 9-4 SLEEP CROMIX Instruction Manual SLEEP Shell command: SLEEP purpose: This command suspends execution for a specified number of seconds. user access: all users summary: sleep time arguments: time in seconds options: none Description The Sleep command suspends execution for the number of seconds specified. Sleep can be used to execute a command after a certain amount of time. For example: sleep 60 ; command This example will execute the cored. Lines or fields are sorted according to their first nonblank character. The resulting output integrates lines or fields having leading blanks with the other lines or fields in the file. Figure 9-1 shows a sample input file containing leading blanks. Figure 9-2 represents the output when the -b option is not used, and Figure 9-3 represents the output generated using the -b option. maser McCormack MacDowell McKinley mace MacLeish make Figure 9-1: SAMPLE INPUT FILE WIe -u unique records only -t? use ? as field separator +x.y sort on keys Description The Sort utility has many options, each of which is described at length below. Before discussing these, the basic, or default, version of Sort is described. Sort arranges the lines in a file or files in ASCII order. ASCII order puts nonprinting characters first, followed by blanks, punctuation, digits, upper case and lower case alphabetic characters. The ASCII table is shown in Appendix E of t shows a file containing special characters, as well as alphanumerics. This file, db.in, when used as input for a sort without options, results in the sorted output shown in Figure 9-5. a +++ aaa BBBBB C +C BBB CC . 444 **a **b aAa AAA Figure 9-4: INPUT FILE db.in The following sort statement generates an output file, db2.out, that does not use the -d option: % sort -o db2.out db.in The output ismmand after 60 seconds, or one minute. The time specified must be less than 65536 seconds. TH LEADING BLANKS McKinley MacDowell McCormack MacLeish mace make maser Figure 9-2: SAMPLE OUTPUT USING NO OPTIONS MacDowell MacLeish McCormack McKinley mace make maser Figure 9-3: SAMPLE OUTPUT USING -b OPTION Figure 9-2 shows the output of a sort without the -b option. The record containing the most white space comes first in order, since blank spaces precede characters and letters in an ASCII sort. In Figure 9-3, the records ar   shown below: **a **b +++ +C . 444 AAA BBB BBBBB C CC a aAa aaa Figure 9-5: OUTPUT OF SORT OF db.in (NO OPTIONS) Sort used without a -d option puts lines starting with special characters, such as the asterisk (*), before lines that start with capital letters. This is a standard ASCII sort. Figure 9-6 is the same file after being sorted using the -d option. The sort statement: % sort -d -o db.out db.in produ option interleaves the records of each file, creating an ordered output only where input files are sorted according to the same scheme. Figure 9-10 shows the contents of a sample input file, sorted without using options, which is to be merged with itself. Bat Fat Hat at cat rat Figure 9-10: FILE m1.in To obtain a merged output file, the sort statement is given as follows: % sort -m -o m1.out m1.in m1.in The result is shown in Figure 9-11, below. Bat  CC Figure 9-7: SORT OUTPUT USING THE -f OPTION Note this sort comparison respects the precedence of special characters but ignores upper and lower case. The -r option reverses the sort order, so that a z precedes an a in a sorted list. The input shown in Figure 9-8 is in random order. A sort of this file using the -r option produces the file shown in Figure 9-9. The sort statement is % sort -r -o m.out m.in cat hat mat flat bat scat uation into consideration. The -t option substitutes the character immediately following the option statement for space and tab field separators. This option allows use of any character as a field delimiter. The implications of this option are illustrated using a file called fiz.in, shown in Figure 9-15. field fzield fizld Field fiezld fieLzd fieldz Figure 9-15: INPUT FILE fiz.in Figure 9-16 shows the output when fiz.in is sorteces a file in dictionary order. +++ . 444 AAA BBB BBBBB +C C CC **a a aAa aaa **b Figure 9-6: SORTED OUTPUT FILE IN DICTIONARY ORDER The file in Figure 9-6 is alphabetically ordered, upper case letters first. If a line contains only special characters, the program resorts to ASCII order and lists it first. Where a line contains both special and alphabetic characters, special characters are treated as blanks. Notice the Bat Fat Fat Hat Hat at at cat cat rat rat Figure 9-11: MERGED OUTPUT OF TWO ASCII SORTED FILES In this case, the merged output is in ASCII order, as were the input files. It is possible to merge more than two files: the actual limit is 29, provided there is adequate disk space to support the files and a work area. The -u option deletes the duplicate records in a file, leaving one copy of each record. For instance, the output of the merge operation, m1.out,sat pat knat splat slat 1 ! Fatty Vat Figure 9-8: RANDOM INPUT FILE scat sat pat mat hat flat cat bat Vat Fatty 1 ! knat splat slat Figure 9-9: SORTED OUTPUT USING -r OPTION Notice the -r option causes a complete reversal of the ASCII ordering scheme for blank space, letters, and numbers. The -m option merges previously sorted input files. The merge 456789:;< output of a dictionary sort is not in simple alphabetical order. In this dictionary sort, upper case letters precede lower case letters. The -f option considers upper case letters as lower case letters for the purpose of comparison. Special and nonprinting characters retain their order of precedence. Figure 9-7 shows the sorted output of db.in (Figure 9-4) using the -f option. **a **b +++ +C . 444 a AAA aAa aaa BBB BBBBB C should result in an output identical to m1.in when sorted using the -u option. The sort statement reads as follows: % sort -u -o u.out m1.out The result, shown in Figure 9-14, is as predicted. Bat Fat Hat at cat rat Figure 9-14: OUTPUT OF THE SORT OPTION -u For the -u option to identify two records as a match, they must be identical in all respects. Unless you specify differently, the -u option takes capitalization, blank space, and punct  d without options. This output file is a simple ASCII sort. Field fieLzd field fieldz fiezld fizld fzield Figure 9-16: ASCII SORT OF FILE fiz.in To use the letter z as a field delimiter in sorting the file, insert the -t option in the sort statement and specify z as the delimiter: % sort -tz -o fiz.out fiz.in The result, shown in Figure 9-17, is arranged very differently than the ASCII sort of the file shown in Figure 9-16. The -t option caused s to California. The five fields in each record are as follows: Last name First name Country of Origin Street County Suppose we wish to sort the file first by country of origin. Within each national group, we then sort by last name, then first name. The final sort is by county. In the surname field, it is desirable to ignore upper and lower case letters. The input file is: Lopez Jack Spain Bower Orange McNiff John England Rose SonoF gHI Jkl mNo Pqr StU vWx ABc dEF GHi jKL mnO pQR sTu VWx Figure 9-18: INPUT FILE ALPHA To sort the file using the second field in the record, def, the sort statement is written as follows: % sort -d +1.0 -o Alpha.out Alpha This statement sorts the file in dictionary order, using the second field in each record. The output file is shown in Figure 9-19. Notice the field is sorted starting with the first character in that field. aBC DeF gHI Jkl mNo Pqr StU vWx ABc dEF tion between Mcniff and McNiff was ignored, and the two records were ordered on the basis of the contents of the county field. a change in record order by varying the field length. Field fzield fizld fiezld fieLzd field fieldz Figure 9-17: fiz.in SORTED USING Z AS FILE DELIMITER The +x.y option causes the input file to be sorted by keys. The option specifies the place on the line where the key (or field) to be sorted on starts. When using this option, x is replaced by the number of fields to be skipped; y is replaced by the number of characters to skip within the selema Rizzo Jill Italy Bly Kings Ross Jerry Wales Green Placer Mcniff John England Greer Placer Figure 9-20: FILE who Each of these fields is separated by a tab, rather than blanks. The -t option is used in the sort statement to make the tab (CNTRL-I) the field separator. The sort statement is as follows: sort -ft^I +2.0 +0.0 +1.0 -0.0 -o who.out who The final field designation, -0.0, could instead have been stated as +4.0, had we wished to count fielGHi jKL mnO pQR sTu VWx Abc dEf ghI Jkl Mno pQr sTu Vwx abc def ghi jkl mno pqr stu vwx Figure 9-19: OUTPUT FILE alpha.out To sort this file using only the second and third characters in the field, the sort statement is written % sort +1.1d -0 Alpha.out Alpha The second letter in the second field is used to sort the file in dictionary order. The d option here follows the field to which it pertains. To take a more complex example, the file who contains information on immigrantSPOOL CROMIX Instruction Manual SPOOL utility: SPOOL purpose: This utility queues files and sends them to a printer. user access: all users summary: spool[-adhklqv][-c#][-m#][-p#][devname]pathname(s) arguments: device name If no device name is specified, output is directed to /dev/prt. The device name may be used to direct the output of the Spool program to any of the system's printers. pathname Filenames must be used to add files cted field. If x.y is specified as positive, the fields are skipped from the beginning of the line; if x.y is negative, the fields skipped are counted from the end of the line. When x=0, it indicates the first field on the line; x=-0 indicates the last field on the line. For example, Figure 9-18 shows an input file alpha containing four records, each of which is grouped into eight fields of 3 bytes each. abc def ghi jkl mno pqr stu vwx Abc dEf ghI Jkl Mno pQr sTu Vwx aBC Deds from left to right. All these fields are sorted starting with the first element in the field. Figure 9-21 shows the output file, who.out. Mcniff John England Greer Placer McNiff John England Rose Sonoma Rizzo Jill Italy Bly Kings Lopez Jack Spain Bower Orange Ross Jerry Wales Green Placer Figure 9-21: FILE who.out As indicated by the -f option in the sort statement, the difference in capitaliza   to the printing queue. Filenames or the sequence numbers assigned by the Spool program may be used to delete or change priority. options: Adding files -d enter and delete -h header -m multiple copies -p priority -v verbose RETURN message Listing files -l list -la list all Changing priority -c change priority Deleting files -k kill -q quit -qa quit all Description The Spool utility allows one or more users to send printing jobs to one orcome, first served basis. A user other than a privileged user has access only to files which that the user placed in the printing queue. The priority of a file in the printing queue can be changed by the user who initiated the printing request or by a privileged user. In a similar manner, only the privileged user or the user who added a file to the printing queue can delete the file from the queue by using the kill option. Any user can list all of the files in the printing queue by using uests are made to print additional files, the Spool program forms a print queue. Each file entered into the queue is assigned a unique sequence number. Once in the printing queue, files may be referenced by their filename or sequence number. If two or more files in the queue have the same filename, a reference to that filename refers to all files with the same name. For example, if the k (kill) option is used with a filename that appears more than once in the queue, all files with that name This restarts the spool at the beginning of the first job in the queue (the job that was interrupted). The second method, used when there are no more jobs to be spooled, is to enter the command line: # daemon /dev/yyy where yyy is the device name of the printer being spooled to (usually prt). This also restarts the spool at the beginning of the interrupted print job. The third method is to delete all spool jobs using the command line: # spool -qa and then respool all unprinted j more printers in an orderly sequence that may be changed at any time. If no file is specified, input is taken from the standard input device. This means the Spool utility can be used with redirected input or pipes. When the Cromix Spool utility is called to add files to the printing queue, the files are copied into a directory named /usr/spool. The execution of the Spool utility requires one bank of user memory. After the execution of the Spool program with any of its options, the specified files arethe la (list all) option. Ambiguous file references must be used with caution. When an ambiguous file reference is expanded, it generates a list of filenames matching files in the current directory. An ambiguous file reference can be used when giving the Spool program files to add to the printing queue. Ambiguous filenames are expanded from a directory, and not from a spool queue. An ambiguous file reference does not work properly when killing or changing the priority of files in the printi are deleted from the queue. The sequence number can always be used to refer to a specific file. Each file added to the printing queue is assigned a priority number ranging from 0 to 9. Zero is the highest priority and is reserved for a privileged user. If no priority is specified, a value of 5 is assigned automatically. A priority number must be specified when using the change priority option. If two users request a print job with the same priority, the requests are serviced on a first obs. Options for Adding Files The -d option adds all specified files to the spool queue and deletes them from the directory in which they reside. This option may include a device name, and must include a list of one or more filenames. The -h option causes all specified files to be preceded by a one page header. The first line of the header page contains the name of the user who spooled the file, the date and time, and the name of the file. This is followed by the same information displayed in larg sent to the printer without use of any user memory. This is accomplished by a function intrinsic to the Cromix Operating System. Output from the Spool program may be directed to any character device located in the device table (/dev). If no device is specified, /dev/prt is assumed. The Cromix Operating System is shipped assuming a dot matrix printer as the system printer. If a different printer is to be used as the system printer, refer to Chapter 6 to change the type of printer. As reqng queue if files of the same name as in the spool queue do not exist in the current directory. This is the case when the delete option is used as files are added to the printing queue, or if the current directory is changed by the user. If Spool is interrupted for any reason such as a power failure, jobs are left in the queue. There are three methods to restart Spool. Before restarting Spool, the printer should be manually brought to top-of-form. The first method is to spool another job.   e characters. The large character portion of the header page truncates the user and filenames to eight characters. Note that the header uses the full width of standard 132 column paper. The -m option prints files a specified number of times. The maximum number of copies is 255. The -p option assigns a priority number to a printing job at the time it is initiated. The option must be followed by the desired priority number and may include a device name. The -v option displays the list of filNOPQRS option sets the priority of all specified files in the spool queue to the specified value. This option is followed by a priority number, and must include a list of one or more filenames or sequence numbers. Options for Removing Files from the Spool Queue The -k option deletes all specified files from the spool queue. If a specified file is printing, the printing is aborted. This option must include a list of one or more filenames or sequence numbers. The -q option deletes all files which have  1 w fred 38 5:5 prt 5 1 42 1 x fred 39 5:5 prt 5 2 115 1 y fred 40 5:5 prt 5 2 115 1 z fred 41 5:5 prt 5 3 160 1 The arrow at the upper left of the listing indicates the file currently being printed. All jobs have a priority of five because no priority was indicated when the jobs were put in the queue. Next, change the priority of file y to 2 and change the priority of the file with the sequence number 39 (file x) to 3. es being processed. It may be used with all options except list and message. The RETURN option allows the user to place a message in the printing queue. To do this, type the program name spool followed immediately by a RETURN. Enter the desired message terminated by CNTRL-Z. This option may include a device name, and allows the Spool utility to use redirected input. Options for Listing Files The -l option lists all jobs in the printing queue that the user initiated. They are listed in a table -m 3 -p 1 filename The options that do not require arguments (h and v above) are grouped, preceded by a dash (-), and followed by a space. This group is followed by the option(s) which require arguments. Each option is preceded by a dash and followed by a space, a number, and another space. Additional option and argument pairs may follow. Finally, the filename(s) of the file(s) to be spooled are entered. In the following examples, assume the print files t, u, w, x, y, and z exist been directed to the specified device from the spool queue. The -qa option may be exercised only by a privileged user. It deletes all files that have been directed to the specified device from the spool queue. Notes Where no option is specified, the files specified by the pathname are added to the printing queue. A device name may be specified. If more than one option is used, and one or more of the options requires an argument, the following syntax should be followed. % spool -hv Then delete the file u from the queue using the -k option. Finally, add a message to the printing queue using the message option, and display the revised printing queue. % spool -c 2 y % spool -c 3 39 % spool -k u % spool this is a message ^Z% spool -l Filename User Seq Device Pri Pages Lines Copies -> t fred 36 5:5 prt 5 2 95 1 y fred 40 5:5 prt 2 2 115 1 x fred 39 5:5 prt 3 2 115 1 w fred 38 5:5 prt 5 1 42 with the following information: 1. Filename of print file 2. Name of user requesting printing job 3. Sequence number of printing job 4. Destination device of printing job 5. Priority of printing job 6. Pages in printing job 7. Lines in printing job, and 8. Copies to be printed. A privileged user always gets a list of all jobs in the printing queue. The -la option lists all printing jobs in a table. Refer to the list option. Options for Changing Priority The -c in the current directory. First, place each of these files in the printing queue: % spool -v t u w x y z t u w x y z % Because the verbose option is used, the Spool program listed each file as it was copied to the spool directory. The list option is then used to display the printing queue: spool -l Filename User Seq Device Pri Pages Lines Copies -> t fred 36 5:5 prt 5 2 95 1 u fred 37 5:5 prt 5 2 107   1 z fred 41 5:5 prt 5 3 160 1 ---- fred 42 5:5 prt 5 1 2 1 Remember a message must be terminated by a CNTRL-Z, which echoes to the console as ^Z. To spool multiple copies of a job, the -m option is used. Example: The command % spool -m 3 pay7000 prints 3 copies of the report pay7000. The command % spool -hm 3 pay7000 prints 3 copies of pay7000 with one header page at the beginning of each copy. A pipe can be used to redirect output from a progTESTINP CROMIX Instruction Manual TESTINP utility: TESTINP purpose: This program tests the contents of a file for a particular string. user access: all users summary: testinp [-dfr] file string1 [string2 ... ] arguments: file pathname one or more strings options: -d deletes -f compares first characters -r reverse sense of test Description This utility compares the contents of a file to a string or strings and sets an error return code if one of the strings dos last shutdown properly. If it was not, Startup informs the user the check program should be run to verify file system integrity. t utility to send the user's response to the file temp. On the third line, Testinp tests the contents of the file temp for occurrences of the strings YES, OUI, or SI. Testinp then deletes temp. If the file contains one of the control strings, the system is shut down using the Kill command. If the file temp does not contain one of the control strings, Testinp sets an error code. The command that follows passes control to the label noshutdown. If the user answers no to the question, the sram to the printer. The following command line generates a list of the current directory on the printer. % l | spool es not match the contents of the file specified. The test made by Testinp is case insensitive; a test string can be in upper, lower, or mixed case and matches a string that is in upper, lower, or mixed case. Options The -r option reverses the sense of Testinp by setting the error code if a match does occur. The -f option checks only the first character of the file passed as an argument against the first character of each of the control strings. The -d option deletes the file passed as an arDescription Tee takes input from the standard input file and sends it to the standard output, as well as to the file specified by the pathname provided in the argument. Example: % sort short | tee sort0 This command sorts the file short, and sends the sorted output to the terminal (standard output) and to the file named sort0 in the current directory. ystem is not shut down. STARTUP CROMIX Instruction Manual STARTUP utility: STARTUP purpose: This file contains commands that are executed whenever the system is started up. user access: all users summary: startup arguments: none options: none Description The startup.cmd file resides in the /etc directory. As shipped, the command file contains a command to execute the time program that sets the system clock and date. After the system is booted, Startup notices whether the system wagument after the test. This option is useful in many command files using a temporary file created during the command file execution. Example: echo "Do you want to shut down the system?" input > temp testinp -d temp YES OUI SI if -err goto noshutdown kill -2 1 %noshutdown The example above is a typical command file that uses Testinp and Input. The first line sends the string within quotation marks to the standard output. The second line uses the Inpu  TIME CROMIX Instruction Manual TIME utility: TIME purpose: This program displays or alters the time and date. user access: all users for display privileged user for changes summary: time [-sde2t] [hour:minute:second] [month/day/year] arguments: optional date optional time options: -s set -d date only -t time only -2 see 3102 -e European style display (dd/mm/yy) -s2 set 3102 clock Description The Time program displays or changes the time anTYPE CROMIX Instruction Manual TYPE Shell command: TYPE or TY purpose: This command displays a file in ASCII. user access: all users summary: ty [file-list] arguments: optional file pathnames options: none Description The Type command displays the file(s) specified by the pathname(s). Type may be used only to display ASCII (text) files. The reader is referred to the Dump utility for information on displaying other types of files. Type uses stdin if no fileto set the time of each user's terminal. The system time is maintained internally and is used for all system functions (such as the times associated with file creates, modifications, and dumps.) Notes The 3102 clock may be set by the -s2 option, but it is not utilized by the Cromix Operating System. The date should precede the time if both are given. If they are not supplied and the -s option is given, the Time utility prompts the user for them. Example: % time -s 03/26/82 14:30:24  is not done, the integrity of the data on the mounted system cannot be assured. Options The -x option causes a floppy disk not to be ejected when it is unmounted. d date. If no arguments are given, the current date and time are displayed. If the -s option is used, the user is prompted for the date and then the time. Although the date is displayed with the / separator, and time is displayed using the : separator, any convenient separator character (such as a space or a period) can be used when entering the date and time. Options The -s option causes the user to be prompted for a new date and time. The -e option causes the time to be displayed in  list is given, and the output is sent to stdout. This means that type may be piped to or from, and redirected to or from, as shown in the example. Example: # ty /dev/qtty5 > diskfile This command line accepts data from /dev/qtty5 and sends it to diskfile.  % time -sd 03/26/82 % time -st 14:30:24 USAGE CROMIX Instruction Manual USAGE utility: USAGE purpose: This program displays directory size information. user access: all users summary: usage [file-list] arguments: directory or file pathname(s) options: none Description The Usage utility will display the physical disk space in blocks and the logical file space in bytes which is occupied by a directory and all of its descendant directories and files. If only a single file is specified, then the size othe European style, with the day and month reversed. The -d option allows the user to set the date only. It is often used with the -s option. The -t option allows the user to set the time only. It is often used with the -s option. The -2 option allows the user to retrieve and display the time stored in the 3102 terminal of the user making the request. This option may be used to set the time on the user's 3102 terminal, if used in conjunction with the -s option. This option may be used UNMOUNT CROMIX Instruction Manual UNMOUNT utility: UNMOUNT purpose: This program disables access to a file system. user access: all users summary: unmount devname [-x] arguments: device name options: -x no disk eject Description The Unmount utility program disables access to a file system. A file system which has been mounted must be unmounted by use of the Unmount utility before the mounted disk is removed from the system or the system is powered-down. If this  f that file will be reported. If no pathname is given, the current directory will be assumed. Knowing the number of blocks occupied by a directory is useful when using the copy tree (Cptree) utility.  pathname of a file to be printed. The -c option causes the CRC value calculated for the file to be placed in the file for future comparison. on /bin The characters RB appearing in an entry indicate that the file is a Relocatable Binary file. This type of file may share a bank of memory with another process. Version (0.10 and higher) searches for the following string of bytes anywhere within a file: 0FDH 0EDH 0FDH 0EDH. The bytes immediately following are assumed to contain CRC information , version number, release number, and an optional logon message. For example consider the following portion of a file: db 0FDH 0EDH 0FDH 0EDHWBOOT CROMIX Instruction Manual WBOOT utility: BOOT purpose: This program initializes the boot track of a floppy disk. user access: all users summary: wboot devname arguments: device name options: none Description The Wboot utility writes the contents of the /etc/fdboot (large floppy disk) or /etc/sfdboot (small floppy disk) to the boot track of the disk in the specified device. VERSION CROMIX Instruction Manual VERSION utility: VERSION purpose: This program displays the version number of the Cromix Operating System or a utility program as well as checking the integrity of the file to a known CRC value (if a CRC value was calculated for the file using version 0.10 or higher). user access: all users summary: version [file and/or directory list] arguments: optional file and/or directory list options: -c calculate CRC -v verWAIT CROMIX Instruction Manual WAIT Shell command: WAIT purpose: This command suspends execution and waits for the PID specified to terminate. user access: all users summary: wait [PID] arguments: optional PID number options: none Description The Wait command causes the Cromix Operating System to suspend operation until the specified process id (PID) has terminated. If the process id (PID) is not specified, Wait will suspend execution of the current pr db 0, 0, 0, 0, db version, revision db 'logon message/n' When called with the -c option, Version will compute a CRC value for that file. This value will then be written in the two bytes immediately following the FDEDFDED pattern. When called without the -c option Version reports good or bad file integrity, by comparing a newly calculated CRC with the previously recorded CRC. The output of Version: % version l.bin RB CRC OK List version 00.12 Options The -v option causes theWHO CROMIX Instruction Manual WHO utility: WHO purpose: This program displays a list of users who are currently logged in. user access: all users summary: who [/etc/account] [am i] arguments: optional /etc/account or optional am i options: none Description When the Who utility is called without an argument, the /etc/who file is consulted and a report is displayed showing the users currently logged on, together with the time each one logbose Description When called without any argument, the Version utility will display the version of the Cromix Operating System which is being run. When called with the name of a utility program, Version will display the version number of that utility. When called with a directory name, Version will display the version number of each of the programs in the directory. The following command will display the version numbers of all of the programs in the /bin directory. % versiocess until all other detached processes which belong to that user have terminated.   ged on. When followed by am i, the name of the user calling the Who utility is displayed. If the Who utility is called followed by /etc/account, the information contained in the account file is displayed. equ 5 ;d = other access, e = mask st.ftype equ 6 ;d = file type st.size equ 7 ;dehl = file size st.nlinks equ 8 ;de = number of links st.inum equ 9 ;de = inode number st.device equ 10 ;de = device number of file system containing inode st.tcreate equ 11 ;de-> time created st.tmodify equ 12 ;de-> time last modified st.taccess equ 13 ;de-> time last accessed st.tdumped equ 14 ;de-> time last dumped st.devno equ 15 ;de = device number if inode is a device ; ; fiad equ 0 ;read only op.write equ 1 ;write only op.rdwr equ 2 ;read and write op.append equ 3 ;append only op.xread equ 4 ;exclusive read only op.xwrite equ 5 ;exclusive write only op.xrdwr equ 6 ;exclusive read and write op.xappend equ 7 ;exclusive append only op.truncf equ 80H ;truncate on create flag op.condf equ 40H ;conditional create flag ; ; C-register file position modes for .setpos ; fwd.begin equ 0 ;forward from the beginning of the file fwd.hl) get current directory name .setdir equ 03H ;setdir(hl) change current directory .mount equ 04H ;mount(c,de,hl) mount file system .unmount equ 05H ;unmount(hl) unmount file system .delete equ 06H ;delete(hl) delete file .chkdev equ 07H ;chkdev(d,e) check for device driver .create equ 08H ;b=create(c,hl) create & open file .open equ 09H ;b=open(c,hl) open file .chdup equ 0AH ;c=chdup(b) duplicate channel .close equ 0BH ;close(b) close filejsys_datamode_dataquery_datasys_datatmode_data~le types for st.ftype ; is.ordin defl 0 ;ordinary file is.direct defl 1 ;directory file is.char defl 2 ;character device is.block defl 3 ;block device is.pipe defl 4 ;pipe file ; ; access bits for access flags ; ac.read defl 0 ;read access bit ac.exec defl 1 ;execute access bit ac.writ defl 2 ;write access bit ac.apnd defl 3 ;append access bit ; ; C-register modes for .setuser, .getuser, .setgroup, .getgroup ; id.effective equ 0 ;effective id id.login equ 1 ;login id id.program equ current equ 1 ;forward from the current file position fwd.end equ 2 ;forward from the end of the file bak.current equ -1 ;backward from the current file position bak.end equ -2 ;backward from the end of the file ; ; C-register modes for .fstat, .cstat, .fchstat, .cchstat ; st.all equ 0 ;all of inode (128 bytes) st.owner equ 1 ;de = owner st.group equ 2 ;de = group st.aowner equ 3 ;d = owner access, e = mask st.agroup equ 4 ;d = group access, e = mask st.aother  .exchg equ 0CH ;exchg(b,c) exchange data in files .trunc equ 0DH ;trunc(b) truncate open file .pipe equ 0EH ;b,c=pipe() create a pipe ; equ 0FH .getpos equ 10H ;dehl=getpos(b) get file position .setpos equ 11H ;setpos(c,dehl) set file position .getmode equ 12H ;d=getmode(b,c) get device characteristics .setmode equ 13H ;d=setmode(b,c,d,e) set device characteristics .rdseq equ 14H ;de=rdseq(b,de,hl) read n bytes .wrseq equ 15H ;de=wrseq(b list off ; list noxref ; (Permitted only with ASMB versions 03.08 or higher) stdin equ 0 ;standard input channel stdout equ 1 ;standard output channel stderr equ 2 ;standard error channel argc equ 40H ;location for argument count argv equ 42H ;location for argument list vector arg0 equ 0 ;arg offset arg1 equ 2 ;arg offset arg2 equ 4 ;arg offset arg3 equ 6 ;arg offset arg4 equ 8 ;arg offset ; ; C-register modes for .create, .open ; op.re2 ;program id id.hl equ 3 ;id contained in HL register ; ; Signals ; sigabort defv 1 ;CNTRL-C key siguser defv 2 ;user-specifiable key sigkill defv 3 ;kill sigterm defv 4 ;terminate (catchable) sigalarm defv 5 ;alarm clock sigpipe defv 6 ;broken pipe sighangup defv 7 ;modem hang up sigmax defv 8 ;maximum signal number ; ; SYSTEM CALL NUMBERS ; .makdev equ 00H ;makdev(d,e,hl) make device entry .makdir equ 01H ;makdir(hl) make a directory .getdir equ 02H ;getdir(  ,de,hl) write n bytes .rdbyte equ 16H ;a=rdbyte(b) read 1 byte .wrbyte equ 17H ;wrbyte(b,a) write 1 byte .rdline equ 18H ;de=rdline(b,de,hl) read a line .wrline equ 19H ;de=wrline(b,hl) write a line ; equ 1AH .printf equ 1BH ;printf(b,hl) print formatted string .error equ 1CH ;error(a,b,de,hl) print error message .fstat equ 20H ;fstat(c,de,hl) get file status (inode) .cstat equ 21H ;cstat(b,c,de) get channel status (inode) .fchstat equ 22H ; 55H ;hl=version() get system version # .boot equ 56H ;boot(hl,de) boot new operating system form ;* error code definitions -- RVH Jan 30,1979 ?badchan defv 1 ;bad channel # ?toomany defv 2 ;channel already open ?notopen defv 3 ;channel not open ?endfile defv 4 ;end-of-file ?ioerror defv 5 ;I/O error ?filtable defv 6 ;file table exhausted ?notexist defv 7 ;file does not exist ?badname defv 8 ;bad file name ?diraccess defv 9 ;directory access ?filaccess defv 10 ;file access ?existshl) lock key .unlock equ 3FH ;unlock(c,de,hl) unlock key .signal equ 40H ;signal(c,hl) set up to receive a signal .kill equ 41H ;kill(c,hl) send a signal .sleep equ 42H ;sleep(hl) sleep for hl seconds .alarm equ 43H ;alarm(hl) set alarm clock .pause equ 44H ;pause() pause for alarm clock .wait equ 45H ;c,de,hl=wait() wait for child process .exit equ 46H ;exit(hl) exit process (close files) ; equ 47H .fshell equ 48H ;fshell(de) fork a sfchstat(c,de,hl) change file status .cchstat equ 23H ;cchstat(b,c,de) change channel status .flink equ 24H ;flink(de,hl) link to file .clink equ 25H ;clink(b,de) link to open channel .faccess equ 26H ;faccess(c,hl) test file access .caccess equ 27H ;caccess(b,c) test channel access ; equ 28H ; equ 29H .getdate equ 30H ;d,e,h,l=getdate() get date .setdate equ 31H ;setdate(e,h,l) set date .gettime equ 32H ;e,h,l=gettime() get time .settime equ  defv 11 ;file already exists ?nospace defv 12 ;no disk space left ?noinode defv 13 ;no inodes left ?inotable defv 14 ;inode table exhausted ?badcall defv 15 ;illegal system call ?filsize defv 16 ;file size too big ?mnttable defv 17 ;mount table exhausted ?notdir defv 18 ;not a directory ?isdir defv 19 ;is a directory ?priv defv 20 ;privileged system call ?notblk defv 21 ;not a block special device ?fsbusy defv 22 ;file system busy ?notordin defv 23 ;not an ordinary file ?notmount defv 24hell process .shell equ 49H ;shell(de) transfer to shell process ; equ 4AH .fexec equ 4BH ;fexec(bc,de,hl) fork and execute program .exec equ 4CH ;exec(bc,de,hl) execute program ; equ 4DH ; equ 4EH ; equ 4FH ; equ 50H .indirect equ 51H ;indirect(a,b,c,de,hl) system call in A-register .update equ 52H ;update() update disk I/O buffers .mult equ 53H ;dehl=mult(bc,hl) multiply .divd equ 54H ;de,hl=divd(dehl,bc) divide .version equ defv 37 ;directory in use (delete) ?filuse defv 38 ;file in use (exclusive access) ?nomatch defv 39 ;no match on ambiguous name ?chnaccess defv 40 ;channel access ?notcromix defv 41 ;not a cromix disk ?badfree defv 42 ;bad free list ?badinum defv 43 ;bad inode number ?readonly defv 44 ;device mounted for read only ?noproc defv 45 ;process does not exist ?signal defv 46 ;system call was aborted ?badpipe defv 47 ;bad call on a pipe ?locked defv 48 ;locked ?deadlock defv 49 ;deadlocked ?lcktab33H ;settime(e,h,l) set time .getuser equ 34H ;de,hl=getuser() get user id .setuser equ 35H ;setuser(hl) set user id .getgroup equ 36H ;de,hl=getgroup() get group id .setgroup equ 37H ;setgroup(hl) set group id .getprior equ 38H ;l=getprior() get process priority .setprior equ 39H ;setprior(l) set process priority .getproc equ 3AH ;hl=getproc() get process id ; equ 3BH ; equ 3CH .ksam equ 3DH ;ksam(c,de,hl) ksam call .lock equ 3EH ;lock(c,de, ;device not mounted ?nochild defv 25 ;no child processes ?nomemory defv 26 ;not enough memory ?ovflo defv 27 ;divide overflow ?argtable defv 28 ;argument table exhausted ?arglist defv 29 ;bad argument list ?numlinks defv 30 ;too many number of links ?difdev defv 31 ;cross-device link ?nodevice defv 32 ;no special device ?usrtable defv 33 ;user process table exhausted ?badvalue defv 34 ;value out of range ?notconn defv 35 ;I/O device not connected ?devopen defv 36 ;device open error ?diruse    le defv 50 ;lock table exhausted ?tapeio defv 51 ;tape I/O error ?badio defv 52 ;bad I/O ; list xref ; (Permitted only with ASMB versions 03.08 or higher) list on v 10 ; 1800 baud S_2400 defv 11 ; 2400 baud S_4800 defv 12 ; 4800 baud S_9600 defv 13 ; 9600 baud ; defv 14 ; External A ; defv 15 ; External B S_19200 defv 16 ; 19200 baud S_CTSWAIT defv 125 ; wait for Clear To Send S_NOCHG defv 126 ; no change of baudrate S_UNINIT defv 127 ; baudrate has not been initialized yet Sfl_AUTO defv 7 ; (bit 7) input CRs from keyboard to set baudr ; d-register & e-register bits for MD_MODE1 calls TANDEM defv 0 ; send XOFF/XON to control filling of  ; check whether input queues empty MD_IFLUSH defv -101 ; flush input queues MD_FNKEYS defv -104 ; turn function keys on or off ; d-register = 1 to enable fnkeys ; d-register = 0 to disable them MD_PSIGHUP defv -105 ; signal current process if hang up ; defv -106 ; (this value reserved) MD_MODEM defv -108 ; (QTTYs and MTTYs only) MD_TYP defv -109 ; (TYP only) ; more c-register values for TYP only struct 64 TYP_CWIDTH ds 1 ; character width in 1/120 inches TYP_LHEIGHT ds 1 width is exceeded SIGALLC defv 7 ; send SIGUSER signal for every key pushed ; d-register & e-register bits for MD_MODE3 calls ESCRETN defv 0 ; ESC causes input line to be returned FNKEYS defv 1 ; response to 3102 function keys enabled HUPENAB defv 2 ; hang up modem when device is finally closed SIGHUPALL defv 3 ; send SIGHANGUP signals to all processes which ; use this TTY device if modem hangs up CBREAK defv 4 ; on input, return after each character, ; no erase, linekill, or EOF cha list off list noxref ; (use this line only with ASMB version 3.08 or later) ; ; Cromemco Inc. ; October 4, 1983 ; ; ----------------------------------------------------------------------------- ; mode definitions for terminals and printers, ; TTY, QTTY, MTTY, LPT, SLPT, QSLPT, and TYP ; c-register values for .GETMODE and .SETMODE system calls MD_ISPEED defv 0 ; input speed MD_OSPEED defv 1 ; output speed MD_MODE1 defv 2 ; flags: RAW, ECHO, etc. MD_MODED defv 3 ; delays for NL, CR, etcinput buf XTAB defv 1 ; expand TABs LCASE defv 2 ; convert alphabetics to lower case ECHO defv 3 ; echo input CRDEVICE defv 4 ; on input, map CR into NL, ; on output, change NL to CRLF. RAW defv 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncation, ; treat X-OFF & X-ON as regular input. ODD defv 6 ; parity function bits EVEN defv 7 ; ; d-register & e-register values for MD_MODED calls NLDELAY d; line height in 1/48 inches TYP_LMARGIN ds 1 ; left margin in columns (1/10 inches) TYP_FORMS ds 1 ; type of forms (ignored by the driver) ds 1 ; reserved TYPMODLEN defv $-64 mend ; d-register values for MD_ISPEED baudrate calls S_HANGUP defv 0 ; hang up phone ; defv 1 ; 50 baud ; defv 2 ; 75 baud S_110 defv 3 ; 110 baud ; defv 4 ; 134.5 baud S_150 defv 5 ; 150 baud ; defv 6 ; 200 baud S_300 defv 7 ; 300 baud ; defv 8 ; 600 baud S_1200 defv 9 ; 1200 baud ; defracters. BINARY defv 5 ; on input, return after each character, ; no erase, linekill, or EOF characters, ; no output PAUSE or output width truncation, ; treat X-OFF & X-ON as regular input, ; no tandem mode (i.e., no input buf control), ; no abort signal (^C), no user signal, ; no changing or checking parity bit, ; no delays after control chars such as NLs, ; no echoing, ; no character transformations (i.e., ignore ; the LCASE, CRDEV, and XTABS modes) . MD_MODE2 defv 4 ; flags: PAUSE, XFF, etc. MD_MODE3 defv 5 ; flags: CBREAK, VRAW, etc. MD_ERASE defv 6 ; auxilliary erase character MD_DELECHO defv 7 ; erasure echo character MD_LKILL defv 8 ; line kill character MD_USIGNAL defv 9 ; SIGUSER signal key MD_LENGTH defv 10 ; page length (lines) MD_WIDTH defv 11 ; page width (columns) MD_BMARGIN defv 12 ; bottom margin (lines) MODELEN defv MD_BMARGIN + 1 ; more c-register values for .GETMODE and .SETMODE system calls MD_STATUS defv -100 efv 03H ; (pairs of bits) TABDELAY defv 0CH ; CRDELAY defv 30H ; FFDELAY defv 40H ; (single bits) BSDELAY defv 80H ; ; d-register & e-register bits for MD_MODE2 calls PAUSE defv 0 ; wait for CNTRL-Q after a page is output NOTIMMECHO defv 1 ; do not echo characters typed-ahead NOECNL defv 2 ; do not echo NLs SGENABLE defv 3 ; send SIGUSER signal if MD_USIGNAL key pushed ABENABLE defv 4 ; send SIGABORT signal if CNTRL-C key pushed XFF defv 5 ; expand FFs WRAP defv 6 ; wrap-around if page !   ; no function-key decoding. RETYPE defv 6 ; use of edline allowed DISCARD defv 7 ; discard the device when it is no longer open ; d-register bits for MD_STATUS calls INOTEMPTY defv 0 ; there is a character in the input buffer ; (but if not CBREAK, RAW, or BINARY mode, ; it won't be accessible until a whole line ; is entered) ; .GETMODE d-register bits for MD_MODEM calls RXDA defv 0 ; Receiver Data Available TXBE defv 2 ; Transmitter Buffer Empty DCD defv 3 ; Data Carriers of a file in hexadecimal echo - sends its argument to the console exit - exits from a Shell and/or logs the user off find - finds files free - displays the amount of unused space on a device goto - transfers control within a command file help - displays the online manual icheck - checks the integrity of a file system idump - displays the contents of an inode if - executes a command within a command file conditionally init - initializes a disk by erasing all data on UTILITY PROGRAMS and SHELL COMMANDS Cromix Instruction Manual access - changes access privileges of a file backup - backs up a directory and its descendant files blink - links files together, used with the Crogen utility boot - loads an operating system into memory and begins execution cdoscopy - copies files to and from a CDOS disk chowner - changes the owner or group of a file cmpasc - compares 2 text files compare - compares 2 files (any type) copy - copies a file cpes the user status to that of a privileged user prompt - changes the prompt to the specified character pstat - displays the status of a process query - locates Shell commands and utility programs rename - changes the name of a directory or a file repeat n - repeats a command n times restore - restores data saved by the Backup utility rewind - restores arguments in a command file to original positions root - displays the device containing the root directory runqd - reconfigu Detect CTS defv 5 ; Clear To Send RXBREAK defv 7 ; Reciver data line broken ; .GETMODE e-register bits for MD_MODEM calls notRI defv 6 ; Not ringing notDSR defv 7 ; Data Set not Ready ; .SETMODE d-register and e-register bits RTS defv 1 ; Request to Send TXBREAK defv 4 ; Break the transmitter line DTR defv 7 ; Data Terminal Ready ; d-register bits for MD_TYP call TYPCHK defv 1 ; the 3355 printer is in a check condition TYPPAP defv 2 ; the 3355 printer is out of paper TYPRIB it kill -1 1 - consults the ttys file for changes kill -2 1 - kills all processes and shuts down the system kill 0 - kills all detached processes started from your terminal kill n - sends a kill signal to process number n l - lists information about a file mail - handles mail between users makdev - creates a device file makdir - creates a directory makfs - makes a file system maklink - makes a link to a file match - finds all occurrences of string in a file mode -tree - copies a directory and its descendents to another directory create - creates a file crogen - generates a Cromix Operating System day - executes a command on the specified day dcheck - checks the internal structure of a directory default - sets the default root device and login name delete - removes a file or directory from a file system deltree - deletes a directory and its descendents directory - changes or displays the current directory dump - displays the contentres the system to use an IOP/Quadart console channel runtu - reconfigures the system to 16FDC console channel screen - calls the Screen Editor for editing files shell - creates a Shell process shift - shifts arguments within a command file shutdown - shuts down the Cromix Operating System sim - allows CDOS programs to run under the Cromix Operating System sleep n - puts a process to sleep for n seconds sort - sorts or merges files spool - spools files to a printer tee - T  defv 3 ; the 3355 printer is out of ribbon TYPOFL defv 4 ; the 3355 printer is off-line list xref ; (use this line only with ASMB version 3.08 or later) list on  displays or alters the mode of a device mount - enables or displays access to a file system move - moves a file from one directory to another msg - sends a message to another user ncheck - displays file information newdisk - copies the contents of the root device to a blank disk newuser - displays the contents of an information file passwd - changes a user password, adds, or deletes a user patch - patches files path - shows the path to a specified command priv - chang!  pipes output to a file as well as the standard output time - displays or alters the time type - sends the contents of a text file to the standard output unmount - disables access to a file system update - updates a disk with a newer version of Cromix usage - displays directory size information version - displays the version number of the Cromix Operating System wait - waits until all detached processes have finished wboot - initializes the boot track of a floppy disk who - tmode - returns the characteristics of a character device .getpos - returns the logical position of the file pointer .getprior - returns the priority number of the current process .getproc - returns the process id of the caller's active process .gettime - returns the current time of the system clock .getuser - returns the user id .indirect - executes the system call .kill - sends a signal to a process .lock - assists in locking records .makdev - creates a new name for a device .makdiSYSTEM CALLS Cromix Programers Manual SYSTEM CALLS .alarm - sends an alarm signal after a specified number of seconds .caccess - tests channel access .cchstat - changes access privileges .chdup - duplicates a channel .chkdev - checks for the presence of a device driver .clink - establishes a link to an open file .close - closes a file .create - creates and opens a new file .cstat - determines the status of an open file .delete - deletes a directory entry .divd - divides onncates an open file .unlock - assists in unlocking records .unmount - disables access to a file .update - updates all current files with the contents of their buffers .version - returns the system version number .wait - waits for the termination of a child process .wrbyte - writes a byte to the specified file .wrline - writes a line to the specified file .wrseq - write sequentially to the specified file  lists the users presently logged in < - redirects the standard input from a file > - redirects the standard output to a file >* - redirects the standard output and standard error to a file >> - appends the standard output >>* - appends the standard output and standard error to a file >< - sequentially pipes the standard output only ><* - sequentially pipes the standard output and standard error | - pipes the standard output only |* - pipes both the standard output and str - creates a new directory .mount - enables access to a file system .mult - multiplies one number by another .open - opens a file for access .pause - suspends execution and waits for a signal .pipe - creates input and output chan. for interprocess communication.printf - outputs a formatted string to a specified file .rdbyte - reads the next sequential byte from an open file .rdline - reads a line .rdseq - reads the next specified number of bytes .setdate - changes the Cromix ce number by another .error - displays an error message .exec - executes a program .exit - exits from a process .faccess - tests file access .fchstat - changes the status of a file .fexec - forks and executes a program .flink - establishes a link to a file .fshell - forks a Shell process .fstat - determines the status of a file .getdate - returns the current date from the system clock .getdir - returns the pathname of the current directory .getgroup - returns the group id .ge list off list noxref ; (use this line only with ASMB version 3.08 or later) ; mode definitions for TP tape devices ; c-register values for .GETMODE and .SETMODE system calls tpmmin equ -60 ; minimum mode number TPABORT equ tpmmin + 0 ; re-initialize tape driver TPFMARK equ tpmmin + 2 ; write file mark TPSECURE equ tpmmin + 3 ; security erase TPREWIND equ tpmmin + 4 ; rewind TPUNLOAD equ tpmmin + 5 ; rewind and unload TPMODE equ tpmmin + 6 ; mode bits TPFILNO equ tpmmin + 7 ; file numbandard error .. - refers to home directory lock to the specified date .setdir - changes the current directory .setgroup - changes the group id of the current process .setmode - changes the characteristics of a character device .setpos - changes the file position pointer to the place specified .setprior - changes the current process priority .settime - changes the system clock to the specified time .setuser - changes the user id .shell - transfers execution to a Shell process .signal - sets up to receive a signal .trunc - tru"  er TPBLKNO equ tpmmin + 8 ; block number TPOBLKLN equ tpmmin + 9 ; block length for next block written TPIBLKLN equ tpmmin + 10 ; block length of first block read TPOBLKS equ tpmmin + 11 ; number of blocks written TPSTAT equ tpmmin + 12 ; get error (status-2, status-1) tpgmmin equ TPMODE ; minimum getmode number tpgmmax equ TPSTAT ; maximum getmode number tpsmmin equ TPABORT ; minimum setmode number tpsmmax equ TPOBLKLN ; maximum setmode number ; TPMODE bits EOFCLOSE equ 7 ; wrsequence_number}ite EOF to tape when device closes ; TPSTAT status bits, returned in e-register (obtained from PIO input port A) DRVBUSY equ 7 ; drive busy WRRDY equ 6 ; FIFO ready for input (used for write) RDRDY equ 5 ; FIFO output ready (used for read) LOADPT equ 4 ; load point FBUSY equ 3 ; formatter busy ONLINE equ 2 ; on line IDENT equ 1 ; ident? RDY equ 0 ; ready ; TPSTAT status bits, returned in d-register (obtained from PIO input port B) HISPEED equ 7 ; high speed status HARDERR equ 5 ; hard error FLMARK equ 4 ; file mark CORERR equ 3 ; correctable error WRPROT equ 2 ; file write-protected EOT equ 1 ; end of tape RWINDING equ 0 ; rewinding list xref ; (use this line only with ASMB version 3.08 or later) list on "  #  #  $  P     $  %  %  &  &  '  '