====== Renaming your ITS system ====== Ideally (as written in {{distrib.its.txt|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.txt|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! ''SYSEN1;PWORD >'' * 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 ===== Recompile: ===== TELSER :midas .temp.;_sysnet;telser :copy .temp.;telser bin,sysbin;telser bin DDT :midas .temp.;_sysen1;ddt ddt$j $l .temp.;ddt bin purify$g :pdump sys;atsign ddt PWORD/PANDA :midas .temp.;_sysen1;pword (twice, answer no and yes) :copy .temp.;pword bin,sysbin; :copy .temp.;panda bin,sysbin; Make links (if you haven't already done this): :link sys;atsign pword,sysbin;pword bin :link sys;ts panda,sysbin;panda bin :link sys;atsign hactrn,sysbin;pword bin ITS :midas .temp.;_system;its (type in your new system name IN UPPERCASE) !! ===== Dump new ITS for KLH10 ===== Dump .temp.;its bin as described in {{distrib.its.txt|distrib.its}} and restart with the new ITS. ===== Purify ===== Let programs repurify: run each of these once :peek :name :probe :meter :prufd :sysmsg and purify MIDAS: midas$j $l sysbin;midas 458bin purify$g Patch DUMP so it knows where it's running (you could also just recompile SYSENG;DUMP). dump$j $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) *lisp$j $l .temp.;*lisp bin $g purify $g :pdump sys;purqio > Now re-create some LISP-based programs: ==== Create new COMPLR (lisp compiler) ==== :lisp comlap;ccload ===== Update INQUIR ===== There are two approaches you can take. - You can patch INQUIR (doesn't require any additional assets) - 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: http://swenson.org/newinquire.tps. 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: - added definition for ES ITS machine (you will need to add your machine name here) - changed reference to TURNIP; READER to INQUIR; READER - changed reference to SPACY; FAKE-S to INQUIR; FAKE-S - changed reference to SPACY; LSRRTN to INQUIR; LSRRTN - 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. inquir$j $l inquir;inqbin 181 $g .VALUE... 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.)