User Tools

Site Tools


tymcom-x-tape

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tymcom-x-tape [2018/03/25 02:31]
jms [Putting TITO.SAV on disk using FILDDT]
tymcom-x-tape [2018/04/24 07:59] (current)
jms [Putting TITO.SAV on disk using FILDDT]
Line 103: Line 103:
  
   #!/bin/bash   #!/bin/bash
 +  reelid=${1?"tape number needed"}
   tape=/dev/nrst0      # non-rewind mode   tape=/dev/nrst0      # non-rewind mode
-  cd /home/jms/pdp10/169270 +  mkdir -p /home/jms/pdp10/$reelid 
-  i=100 +  cd /home/jms/pdp10/$reelid 
-  ss=0+  i=100    # First one is "file.101" 
 +  ss=0     # First saveset is "ss1"
   while cp $tape file.$((++i)); do   while cp $tape file.$((++i)); do
     ls -l file.$i     ls -l file.$i
Line 114: Line 116:
   done   done
  
-Stop the bash job when the files are 0 bytes.  Each file copied from tape corresponds to one user. Look for files that are 25 bytes long; these are the saveset headers.+Stop the bash job when the files are 0 bytes.  Each file copied from tape contains all the files for one user. Look for files that are 25 bytes long; these are the start-of-saveset headers.
  
-Create two saveset images.  (Saveset ss0 is an unwanted partial save.)+Create two saveset images.  (Saveset ss1 is an unwanted partial save on tape 169270.)
  
-    to-simh ss1/* > ../simh-ks/saveset1.tape +    to-simh -t ss2/* > ../simh-ks/saveset1.tape 
-    to-simh ss2/* > ../simh-ks/saveset2.tape+    to-simh -t ss3/* > ../simh-ks/saveset2.tape
  
  
Line 126: Line 128:
 ===== Putting TITO.SAV on disk using FILDDT ===== ===== Putting TITO.SAV on disk using FILDDT =====
  
-This operation was performed by using Van Dyke's SecureCRT terminal emulator and a Cygwin window on a Windows machine.  TOPS-10 already running and login 1,2 via ''telnet localhost 2020''.+This operation was performed by using Van Dyke's SecureCRT terminal emulator and a Cygwin window on a Windows machine.  TOPS-10 already running and login 1,2 via ''telnet localhost 2020''  Use a terminal emulator that has "Send ASCII" and "Receive ASCII" functions.
  
 +0. ''TITO.SAV'' is 66 blocks (17 pages).  With DDT it is 97 blocks (25 pages).
 1. Create ''tito.txt'' by using FILDDT and the Receive ASCII on the terminal emulator. 1. Create ''tito.txt'' by using FILDDT and the Receive ASCII on the terminal emulator.
     .r filddt     .r filddt
Line 135: Line 138:
  
 2. Edit REFSTR.MAC, copying and pasting the code that creates CRASH.SAV to create TITO00.SAV 2. Edit REFSTR.MAC, copying and pasting the code that creates CRASH.SAV to create TITO00.SAV
-Set the file size using ''MOVEI T4,^D17'' (pages) and update ITEM macro ''X TIT,TITO00,SAV,555000,31''.+Set the file size using ''MOVEI T4,^D33'' (pages) and update ITEM macro ''X TIT,TITO00,SAV,555000,00''.
  
-3. Rebuild monitor, use ''./pdp10 tym-fresh.ini'' to refresh the disk(s).+3. Rebuild monitor, copy it to ''SYS:'', use ''./pdp10 tym-fresh.ini'' to refresh the disk(s).
  
 4. Exit the TYMCOM-X simh, attach ''tymb00.dsk'' as ''rp2'' on the TOPS-10 simh. 4. Exit the TYMCOM-X simh, attach ''tymb00.dsk'' as ''rp2'' on the TOPS-10 simh.
Line 147: Line 150:
     .r filddt     .r filddt
     File: sys:mon14/s     File: sys:mon14/s
-    File: rpa2/u/p+    File: rpa2:/u/p
  
 6. Track down the data pages for (SYS).UFD (RIB address at 1023).  Search all 7 data pages for TITO00. 6. Track down the data pages for (SYS).UFD (RIB address at 1023).  Search all 7 data pages for TITO00.
Line 166: Line 169:
 9.  Use terminal's Send ASCII function to send contents of ''tito.txt'' to FILDDT. 9.  Use terminal's Send ASCII function to send contents of ''tito.txt'' to FILDDT.
  
-10. Update work count in RIB to be last word plus 1. +Transfer to simh's console is about 61 characters per second; 127 minutes to transfer TITO with DDT loaded (457K). 
-    15010/ 20342+ 
 +10. Update word count in RIB to be last word plus 1. 
 +    15010/ 20342        (40232 with DDT loaded)
  
 11. Enable Receive ASCII and store in ''tito2.txt'' 11. Enable Receive ASCII and store in ''tito2.txt''
Line 173: Line 178:
  
 12. End Receive ASCII and on local machine (Cygwin) execute the following to verify the transfer: 12. End Receive ASCII and on local machine (Cygwin) execute the following to verify the transfer:
-    perl -pi.bak -e 's/^(\d+)/sprintf "D+%o",oct($1)-016000/e' tito2.txt +    cygwin% perl -pi.bak -e 's/^(\d+)/sprintf "D+%o",oct($1)-016000/e' tito2.txt 
-    diff tito.txt tito2.txt+    cygwin% diff tito.txt tito2.txt
  
 13. Exit FILDDT and ''detach rp2'' from the TOPS-10 simh. 13. Exit FILDDT and ''detach rp2'' from the TOPS-10 simh.
-    .^E+    ^Z 
 +    !^E
     sim> detach rp2     sim> detach rp2
- 
-14. Boot TYMCOM-X in production mode. 
-    ./pdp10 tym-prod.ini 
-    (Hit Enter twice to get logged in, then ''set date mm dd yyyy'' and ''set time hhmm''.) 
          
-  Highest memory address is 3,,777777 +14. Create a respawn point via ''cp tymb00.dsk tymb00+tito.dsk; cp tymb01,dsk tymb01+tito.dsk''. 
-   + 
-  Checking all units on disk controller - reading UNIT ID from HOME pages+15. Boot TYMCOM-X in production mode.  Due to Y2K8 problem, must use date from 28 years ago
-   RMA0:DSKB00=B0    RMA1:DSKB01=B1    RMA2:-offline-    RMA3:-offline+(Hit Enter twice r Control-Z L to get logged in, then ''set date mm dd 1990'' and ''set time hhmm''.) 
-   RMA4:-offline-    RMA5:-offline-    RMA6:-offline-    RMA7:-offline+ 
-   +   ./pdp10 tym-prod.ini 
-  1024K of memory online.+
   To automatically login, login over shut.   To automatically login, login over shut.
   X14, hardware *B*, KS-4257, base 6760, X14-P035/E02, 6-3-92, M02654   X14, hardware *B*, KS-4257, base 6760, X14-P035/E02, 6-3-92, M02654
Line 199: Line 201:
   Remember to set date,time 27-SEP-1989 00:00:02  Date not set! <beep>   Remember to set date,time 27-SEP-1989 00:00:02  Date not set! <beep>
   !   !
-  !set date 03 22 1990     ;28 years in the past+  !set date 04 09 1990     ;28 years in the past
   !set time 2041   !set time 2041
-  Date/time is now 22-Mar-1989 22:41:00 Thursday+  Date/time is now 09-Apr-1989 22:41:00 Monday
   --- System is SHUT ---   --- System is SHUT ---
      
Line 211: Line 213:
   DENSITY(1600,800): 1600   DENSITY(1600,800): 1600
   TAPE NOT WRITE PROTECTED   TAPE NOT WRITE PROTECTED
-  *unload+  *rewind
   *^E   *^E
   sim> attach tu0 saveset1.tape   sim> attach tu0 saveset1.tape
   sim> go   sim> go
   *dir all   *dir all
 +  INPUT TAPE POS RANGE: 301-e
 +  CONTINUE ON DEVICE: ^E
 +  sim>attach tu0 ss2.tape
 +  sim>go
 +  mta0
 +  INPUT TAPE POS RANGE:
 +  LOGICAL END OF TAPE REACHED
 +  *exit
 +
 +It takes about 30 seconds to restore each tape (as long as output has been suppressed with Control-O).
 +
 +===== Creating the front-end file =====
 +
 +
 +    !gfd ks2020
 +    !run ksfefs
 +    Name of file containing bootstrap program {(SYS)BOOTS.DMP} : (sys)boots.dmp
 +    Name of file containing microcode {(SYS)MCODE} : (sys)mcode
 +    Name of file containing pre-boot program: {(SYS)KSBLOD.DMP} : (sys)ksblod.dmp
 +    Structure to write on {DSKB} : dskb
 +      DSKB0:  65536 pages starting at 12.   Writing HOM block in page 0
 +    Writing (SYS)BOOTS.DMP to page  13 14
 +    Writing (SYS)MCODE to page  15 16 17 18 19 20 21 22 23 24 25 26
 +    Writing (SYS)KSBLOD.DMP to page  27
 +    Writing 8080 directory to page 12
 +    Duplicating BOOTS in page  3 4 5
 +    Done.
 + 
 +The ''ksfefs'' misinterpreted the RIB pointer to ''FEFILE.SYS'' [200000,,14] as [xwd 65536,14] and wiped out the RIn and ''tito00.sav'' Edited REFSTR.MAC to return [xwd 64,^D<3*95> to point to the 64 pages on cylinder 3.
 +Copied monitor, refreshed, and re-transferred ''tito.ddt''.
 +
 +    !run ksfefs
 +    Name of file containing bootstrap program {(SYS)BOOTS.DMP} : (sys)boots.dmp
 +    Name of file containing microcode {(SYS)MCODE} : (sys)mcode
 +    Name of file containing pre-boot program: {(SYS)KSBLOD.DMP} : (sys)ksblod.dmp
 +    Structure to write on {DSKB} : dskb
 +      DSKB0:  64 pages starting at 285.   Writing HOM block in page 0
 +    Writing (SYS)BOOTS.DMP to page  286 287
 +    Writing (SYS)MCODE to page  288 289 290 291 292 293 294 295 296 297 298 299
 +    Writing (SYS)KSBLOD.DMP to page  300
 +    Writing 8080 directory to page 285
 +    Duplicating BOOTS in page  3 4 5
 +    Done.
 +
 +At this point, ''boot rp'' loads BOOTS, which defaults to ''(SYS)SYSTEM.SAV'', but that dies with ''IME'' stopcode.
 +
 +===== Copying MON14.SAV to the disk =====
 +
 +Since we don't have KERMIT or other file transfer program on TYMCOM-X, do it with ''FILDDT'' Two caveats: 1) (SYS)FILDDT does not allow patching of data files, but (MPL)FILDDT does.  2) Patching a zero length file goes only so far before dying with an Address Check.  Since the current (SYS)SYSTEM.SAV is unuseable, patch it instead.
 +
 +On TOPS-10, start a Receive ASCII operation and display the whole monitor in octal.
 +
 +  .r filddt
 +  File: mon14.sav/d
 +  $$a $$h 0$n
 +  0/   777777,,113
 +  1/   203141,,171100
 +     ...
 +  245643/   140
 +  245644/   254000,,203146
 +
 +Edit the saved text to remove the first lines, and change "/" to "!" The text file is 1.8 Mbytes in size.
 +
 +Set the terminal emulator to delay 17 milliseconds between characters for the Send ASCII operation.  Expect it to take 8.5 hours to transfer all that data.
 +
 +  !run (mpl)filddt
 +  File: (sys)system.sav/d/p
 +  $$a $$h
 +  0/   777777,,113
 +  1/   203141,,171100
 +     ...
 +  245643/   140
 +  245644/   254000,,203146
 +  ^Z
 + 
 +Exit the TYMCOM-X simh job and start fresh (to get the implied zeroing of memory).
 +
 +  ^E
 +  sim>quit
 +  Linux% ./pdp10 x14-prod.ini
 +  PDP-10 simulator V4.0-0 Current        git commit id: da31dfa7
 +  BOOTS:
 +  
 +  LOADING (SYS)SYSTEM.SAV
 +  X14, hardware *B*, KS-4257, base 6760, X14-P035/E02, 6-3-92, M02654
 +  
 +  Highest memory address is 3,,777777
 +  
 +  Checking all units on disk controller - reading UNIT ID from HOME pages.
 +   RMA0:DSKB00=B0    RMA1:DSKB01=B1    RMA2:-offline-    RMA3:-offline-   
 +   RMA4:-offline-    RMA5:-offline-    RMA6:-offline-    RMA7:-offline-   
 +  
 +  1024K of memory online.
 +  X14, hardware *B*, KS-4257, base 6760, X14-P035/E02, 6-3-92, M02654
 +  
 +  End of ONCE; starting null job
 +  INITIA starting DSKCLN on TTY0
 +  
 +  Hi there!  Please type your user name: oper
 +  proj code: 
 +  
 +  date not set, type date as mm-dd-yyyy 04-12-1990 
 +  type time as hh:mm 15:53
 +  
 +  .systat
 +  SYSTEM SHUT
 +  
 +  TYMSHARE X14-P035/E02 6-3-92 up 36:13 at  6:28:35 on Thu Apr 12,1990
 +  Null time = 36:13, Idle = 100% (Idle time per MIN. = 100%)
 +  2 jobs in use out of 31.  1 detached
 +  
 +  JOB  TYMNET       PROG   LO+HI(P) STATE       TRU  CONNECT USER NAME
 +    DETACHED      DSKCLN 16       TI         3.46  0:00:00 OPER +
 +   2*  -11327-   #10 SYSTAT 32      RN        20.30  0:36:09 OPER (OPER) +
 +  + means TYMSHARE inhouse user
 +  
 +  Users=2 Det=1 [1,1], Queues: RUN=1 DIO=0 TIO=1 IO=0 SPC=0
 +  2046 Physical pages available (MONITOR = 282P, User Area = 1764P)
 +  Virt. memory used (TPU/TPA): 48/1764 = 3%
 +
 +At this point, the systems programmer is expected to use the ''SETE'' command to set license (setting all privileges).  Due to forgotten SETE passwords, fake it by poking kernel memoryl
 +
 +Use DDT to get the address of JBTLIC (GETTAB table for job license).  In this case it is 11106.  Adding 2 for job #2 is 11110.  Then use ''DSKCLR 2,'' to clear the ''DSKCLN'' needed bit to write-enable the structure.
 +
 +  ^E
 +  sim>examine 11110
 +  sim>deposit 11110 777777777777
 +  sim>go
 +  !pjob
 +  Frame 2  TTY10  OPER[1,21] at X14
 +  
 +  !r ddt
 +  DDT
 +  dskclr 2,$x
 +  DDT
 +  ^C
 +
 +Use ''GFD SYS'' to change the effective PPN (and default directory) and edit ''ACCESS.MSG'' to have two lines of 80 blanks.  (The monitor wants to output "Date/time is now ..." at the same time ''LOGINN'' outputs the contents of ''ACCESS.MSG''.)
  
-At this point, TITO appears to be hung.  Using ''restore all'' also fails.  --- //[[joeinwap@gmail.com|Joe Smith]] 2018/03/25 02:27//+Success!   --- //[[joeinwap@gmail.com|Joe Smith]] 2018/04/13 05:10//
 ==== Other pages ==== ==== Other pages ====
  
-[[tymcom-x|Overview]] page, [[tymcom-x-simh|SIMH Setup]] page, [[tymcom-x-startup|TYMCOM-X Startup]] page, [[tymcom-x-tape|TITO.SAV]], [[tymcom-x-status|Status]] page.+[[tymcom-x|Overview]] page, [[tymcom-x-simh|SIMH Setup]] page, [[tymcom-x-startup|TYMCOM-X Startup]] page, [[tymcom-x-tape|TITO on disk]] page, [[tymcom-x-status|Status]] page.
  
tymcom-x-tape.1521945086.txt.gz · Last modified: 2018/03/25 02:31 by jms