ITS wiki

The Incompatible Timesharing System

User Tools

Site Tools


Renaming your ITS system

Ideally (as written in distrib.its), you'd like to have a file somewhere where you set your system name, IP address and other configuration data, and let ITS read it at startup. Unfortunately, that's not the way it works…

NOTE that all $ below are ESCAPEs!! Also, where it says XY, you should substitute your new system name.

NOTE that you should read distrib.its before you do any of this, so you know what you're doing! This is just summing up the stuff, filling in some details. If you're happy with one of the standard names (AI, ML, MC, MD, MX…) and don't plan on interacting with other ITS systems, it's much easier to forget the whole thing.

Edit some files

?? SYSHST;H3TEXT > ::    change name of address or add new entry !!
?? SYSTEM;CONFIG > ::     copy IFE MCOND MD,[ ... ] to IFE MCOND **XY**,[ ... ], make changes inside !!
?? SYSTEM;TTYTYP > ::     copy MCONDX MD,{ ... } to MCONDX **XY**,{ ... }, no changes needed? !!
?? SYSNET;TELSER > ::     maybe add a line over TCPOL !!
?? SYSEN2;MLDEV > ::     add to where NX appears (twice) - only needed on OTHER systems to reach THIS ONE! !!
  *    add to mchtab (don't forget to up mchcnt)
  *    add to bltspc, corresponding spec (copy from mdspec-mdspe)
  *    add to devtab(?)
?? SYSEN1;DDT > 
:: (this is not mentioned in distrib.its)
  *    add to mchtab
  *    add after RFLNSC
  *    maybe add to nodflt
?? L;*LISP > ::     after UDIRSET, add your name !!
?? L;STRUCT > ::    search for MRA [ITS,AI,ML,MC,MD,MX and add your name !!
?? SYSEN1;SENDER > ::     search for MX, add similar code !!
?? SYSENG;LUSER > ::     add a MACTAB entry, add to lists following !!


??  TELSER :: <code>
  :midas .temp.;_sysnet;telser
  :copy .temp.;telser bin,sysbin;telser bin </code> !!
??  DDT :: <code>
  :midas .temp.;_sysen1;ddt
  $l .temp.;ddt bin
  :pdump sys;atsign ddt </code> !!
??  PWORD/PANDA :: <code>
  :midas .temp.;_sysen1;pword (twice, answer no and yes)
  :copy .temp.;pword bin,sysbin;
  :copy .temp.;panda bin,sysbin; </code> !!
?? Make links ::  if you haven't already done this, <code>
  :link sys;atsign pword,sysbin;pword bin
  :link sys;ts panda,sysbin;panda bin
  :link sys;atsign hactrn,sysbin;pword bin </code> !!
??  ITS :: <code>
  :midas .temp.;_system;its </code>     (type in your new system name IN UPPERCASE) !!

Dump new ITS for KLH10

Dump .temp.;its bin as described in distrib.its and restart with the new ITS.


Let programs repurify: run each of these once


and purify MIDAS:

$l sysbin;midas 458bin

Patch DUMP so it knows where it's running (you could also just recompile SYSENG;DUMP).

$l sysbin;dump bin
setsc1+34//$1'XY$	(note double slash, insert your system name for XY here)
:pdump sysbin;dump bin

Make LISP etc

First make a new LISP. LISP knows its shared image is in SYS; PURQIO >.

:midas .temp.;_l;*lisp
^C			(midas guesses ITS anyway)
$l .temp.;*lisp bin
purify $g
:pdump sys;purqio >

Now re-create some LISP-based programs:

Create new COMPLR (lisp compiler)

:lisp comlap;ccload


There are two approaches you can take.

  1. You can patch INQUIR (doesn't require any additional assets)
  2. You can rebuild INQUIR from sources (requires some additional assets for which an ITS tape image exists)

Updating INQUIR via source code changes

In order to be able to build INQUIR from sources, you will need various dependent files that were not included in the public (PI) ITS distribution. These files include:

reader 28 (Kent Pitman (KMP) provided this source)
fake-s 28 (found on the Internet)
lsrrtn 31 (found on the Internet)
netrtn fasl (found on the internet; FASL only; no source)

You can find these files, in the collection of files found on the newinquire.tps tape image that can be downloaded here: You will need to load this tape onto your ITS system, which will result in these additional files being added/modified in your INQUIR; directory:

fake-s.28    fake-s.unfasl  inquir.182   inquir.unfasl  lsrrtn.fasl  reader.28    reader.readme  -read-.-this-
fake-s.fasl  inqbin.182     inquir.fasl  lsrrtn.31      netrtn.fasl  reader.fasl  reader.unfasl

The PI distribution should have contained INQUIR 181 and this tape adds the file INQUIR 182. The difference between these two versions are:

  1. added definition for ES ITS machine (you will need to add your machine name here)
  2. changed reference to TURNIP; READER to INQUIR; READER
  3. changed reference to SPACY; FAKE-S to INQUIR; FAKE-S
  4. changed reference to SPACY; LSRRTN to INQUIR; LSRRTN
  5. changed reference to SPACY; NETRTN to INQUIR; NETRTN

In order to build INQUIR 182 from source, follow these steps:

?? compile READER :: '':complr inquir; reader'' !!
?? compile FAKE-S :: '':complr inquir; fake-s'' !!
?? compile LSRRTN :: '':midas inquir;_inquir;lsrrtn'' !!

Update INQUIR; INQUIR 182 to add your ITS machine name. Write out your changed INQUIR as INQUIR >

?? compile INQUIR :: '':complr inquir;inquir'' !!
?? dump out a new INQUIR; INQBIN > :: '':lisp inquir;inquir (dump)'' !!

Verify that the link INQUIR; TS INQUIR points to the new INQUIR; INQBIN >. If it doesn't, update it so that it does.

Your INQUIR should now be updated with the new machine name.

Patch INQUIR (if you didn't rebuild as above)

The first patch (starting with “qai”) is to change the value of (STATUS SITE) which is used as default “network-address” field. The second line (starting with “udirse+7”) is to patch an immediate sixbit value of AI, so it's really important that you get the three spaces right.

$l inquir;inqbin 181
qai/$$q/⟨LINEFEED⟩⟨TAB⟩$$q/"  (should show $0"AI$) $0"XY$⟨ENTER⟩
udirse+7/$1'   XY$$>	(three spaces followed by your name, overwrite AI's entry)
:pdump inquir;inqbin 182
:delete inquir;ts inquir
:link inquir;ts inquir,inquir;inqbin 182

I hope other lisp-based programs are as easy…

IF you have users without homedirs, update INQUIR;DMUNCH > with your local host tables (copy MD's entries), compile it as directed in the file, and force INQUPD to update the database (e.g. by changing something insignificant) in order for DIRS BIN to be included in LSR1 1.

Notes after going through all this

If you write new programs, never use hardcoded data if you can avoid it at all. Read a config file, or construct data on-the-fly. To find the names of local ITSes, read .GETSYS ITSNMS. You can find silly examples in *LISP, which uses a hardcoded list of machine names in order to convert from sixbit to atom. Why not use the SIXATM routine to create the atom on-the-fly? (There may possibly be reasons, such as other MIDAS code using QMX as the known address of 'MX. I'll see when I try it.)

rename.txt · Last modified: 2015-12-30 15:25 by victor