ITS wiki

The Incompatible Timesharing System

User Tools

Site Tools


rename

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
rename [2015-09-10 18:05] – created victorrename [2020-11-16 16:08] (current) – [Updating INQUIR via source code changes] victor
Line 9: Line 9:
  
  
-SYSHST;H3TEXT >  +''SYSHST;H3TEXT >'' 
-    change name of address or add new entry +  change name of address or add new entry 
-SYSTEM;CONFIG > +''SYSTEM;CONFIG >'' 
-    copy IFE MCOND MD,[ ... ] to IFE MCOND XY,[ ... ], make changes inside +  copy ''IFE MCOND MD,[ ... ]'' to ''IFE MCOND **XY**,[ ... ]'', make changes inside 
-SYSTEM;TTYTYP > +''SYSTEM;TTYTYP >'' 
-    copy MCONDX MD,{ ... } to MCONDX XY,{ ... }, no changes needed? +  copy ''MCONDX MD,{ ... }'' to ''MCONDX **XY**,{ ... }'', no changes needed? 
-SYSNET;TELSER > +''SYSNET;TELSER >'' 
-    maybe add a line over TCPOL +  maybe add a line over TCPOL 
-SYSEN2;MLDEV > +''SYSEN2;MLDEV >'' 
-    add to where NX appears (twice) - only needed on OTHER systems to reach THIS ONE! +  add to where NX appears (twice) - only needed on OTHER systems to reach THIS ONE! 
-SYSEN1;PWORD >+''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
  
-        add to mchtab (don't forget to up mchcnt) +===== Recompile: =====
-        add to bltspc, corresponding spec (copy from mdspec-mdspe) +
-        add to devtab(?)+
  
-SYSEN1;DDT > (this is not mentioned in distrib.its) 
  
-        add to mchtab +TELSER 
-        add after RFLNSC +    :midas .temp.;_sysnet;telser 
-        maybe add to nodflt+    :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) !!
  
-L;*LISP > +===== Dump new ITS for KLH10 ===== 
-    after UDIRSET, add your name  +Dump .temp.;its bin as described in {{distrib.its.txt|distrib.its}} and restart with the new ITS. 
-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+
  
 +===== Purify =====
 +Let programs repurify: run each of these once
 +<code>
 +:peek
 +:name
 +:probe
 +:meter
 +:prufd
 +:sysmsg
 +</code>
 +and purify MIDAS:
 +<code>
 +midas$j
 +$l sysbin;midas 458bin
 +purify$g
 +</code>
 +Patch DUMP so it knows where it's running (you could also just recompile SYSENG;DUMP).
 +<code>
 +dump$j
 +$l sysbin;dump bin
 +setsc1+34//$1'XY$ (note double slash, insert your system name for XY here)
 +:pdump sysbin;dump bin
 +</code>
  
 +===== Make LISP etc =====
 +First make a new LISP. LISP knows its shared image is in ''SYS; PURQIO >''.
 +<code>
 +:midas .temp.;_l;*lisp
 +^C (midas guesses ITS anyway)
 +*lisp$j
 +$l .temp.;*lisp bin
 +$g
 +purify $g
 +:pdump sys;purqio >
 +</code>
 +Now re-create some LISP-based programs: 
 +==== Create new COMPLR (lisp compiler) ====
 +<code>:lisp comlap;ccload</code>
 +===== 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:
 +
 +<code>
 +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
 +</code>
 +
 +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.
 +<code>
 +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
 +</code>
 +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.1441901147.txt.gz · Last modified: by victor