This is an old revision of the document!
When files are copied from TOPS-20 (36-bit byte size) with KERMIT, they are stored in ANSI ASCII mode.
Joe wrote type36
to display 36-bit files on *nix systems to determine if
they are ANSI ASCII binaries or DEC compatible core-dump binaries.
Linux% type36 Usage: type36 [-s] [-a|-c|-d] filename [[-a|-c|-d] filename] -a = ANSI ASCII mode, -c = Core dump mode, -d = doubleword mode -s = input is in SIMH tape emulation format. Linux% type36 -a ../m33/tito-ansi.sav | head -7 36-bit dump of ../m33/tito-ansi.sav as ANSI ASCII (4x7-bit + 1x(1+7)-bit address even word odd word SIXBIT 7-bit bytes in hex ASCII text 000000|777775, 117| 36564, 140|__] !/#UT !@ 7F7F6800A70757200030 ..h.'.W .0 000002| 0, 36564|260740, 34273| #UT6'@#B[ 0000003D3A2C1E0038DD ...=:,..8] 000004|777777, 132| 36563, 36777|___ !:#US#W_ 7F7F78002D0757183DFF ..x.-.W.=. 000006|777652, 136| 16, 3|_^J !> . # 7F7A50002F0000700081 .zP./..p.. 000010|200740, 24642| 47000, 0|0'@"FB$X 201E0029510960000000 ..)Q.`...
This shows that the file is in *.SAV format.
IOWD 3,120: .JBSA=36564,,140 .JBFF=36564 .JBPFH=PUSHJ P,34273 IOWD 1,133: .JBCOR=36563,,36777 IOWD n,137: .JBVER=16,,3 .JBDA=MOVE P,24642 141=CALLI 0
When a core image is saved to tape, TOPS-10 writes a 4-word dummy file (to indicate there is no high-seg) and EOF before writing the SAV file,
Linux% ls -l 20bytes -rw-r--r-- 1 jms jms 20 Mar 19 23:44 20bytes Linux% od -c 20bytes 0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0000020 \0 \0 \0 \0 0000024
Joe wrote to-simh
to convert an ANSI ASCII file to core dump format and write the file out as a SIMH tape image (each block is proceeded and followed by the byte count in little-endian format).
Linux% to-simh Usage: to-simh [-a|-c|-d|-b 128] filename [filename...] Linux% to-simh -a 20bytes ../m33/tito-ansi.sav >tito.tape Reading from 20bytes - Words read (octal): 4 Reading from ../m33/tito-ansi.sav - Words read (octal): 200 200 ... 141
This builds a SIMH tape image. Verify it using type36 -s -c
.
Linux% type36 -s -c tito.tape | less 36-bit dump of tito.tape as Core Dump (4x8-bit + 1x(4+4)-bit address even word odd word SIXBIT 7-bit bytes in hex ASCII text --- block_size (0x14) = 20 bytes ( 4 words) leading 000000| 0, 0| 0, 0| 00000000000000000000 .......... 000002| 0, 0| 0, 0| 00000000000000000000 .......... --- block_size (0x14) = 20 bytes ( 4 words) trailing --EOF-- --- block_size (0x280) = 640 bytes (128 words) leading 000000|777775, 117| 36564, 140|__] !/#UT !@ 7F7F6800A70757200030 ..h.'.W .0 000002| 0, 36564|260740, 34273| #UT6'@#B[ 0000003D3A2C1E0038DD ...=:,..8] 000004|777777, 132| 36563, 36777|___ !:#US#W_ 7F7F78002D0757183DFF ..x.-.W.=. 000006|777652, 136| 16, 3|_^J !> . # 7F7A50002F0000700081 .zP./..p.. 000010|200740, 24642| 47000, 0|0'@"FB$X 201E0029510960000000 ..)Q.`... 000012|402000, 34267|260740, 35712|@0 #BW6'@#O* 40400038DB2C1E003B65 @@.8[,..;e
Search for known plaintext.
/oper 005660|222372, 42644|406511,751100|23Z$6D@U)]) 244F50455241544F5220 $OPERATOR 005662|462230,342634|516124, 44646|F28<6<IQ4$FF 4C4943454E5345204953 LICENSE IS 005664|202351,752100|516132,427000|03I]1 IQ:BX 204E4F54205345542E00 NOT SET.. 005666|777777, 2| 26, 11|___ " 6 ) 7F7F7800010001300084 ..x....0.. 005670|222511,152236|201212,600000|25)-2>0**P 245449544F2028560000 $TITO (V.. 005672| 0, 13646|576200, 0| !>FOR 00000017535F48000000 ....S_H... 005674| 21754, 21755|272771, 0|"/L"/M77Y 043E6023F62E5F480000 .>`#v._H.. 005676| 21754, 21757| 0, 13642|"/L"/O !>B 043E6023F70000001751 .>`#w....Q 005700|245011, 42644|425010,152100|4H)$6DBH(-1 29204845524520415420 ) HERE AT 005702|576300, 0| 21761, 21762|OS "/Q"/R 5F4C000000043F082379 _L....?.#y 005704| 731, 13532|440700, 13533| '9!=:D' !=; 001D48172D481C0017AD ..H.-H...- 005706| 0, 21710|222473,151650| "/(24[-.H 00000023642453595354 ...#d$SYST 005710|426324, 57640|777761, 21773|BS4%^@__Q"/[ 454D205F507F7F0823FD EM _P...#} 005712| 21770, 21771| 0, 15|"/X"/Y - 043F4023FC0000000086 .?@#|..... 005714|422132,644606|425644, 0|B1:TF&BND 4445564943453A200000 DEVICE: .. 005716|522032, 42500|472372,420256|J0:$5 G3ZB"N 54415045204E4F542057 TAPE NOT W 005720|512232,442500|502451,752212|I2:D5 H4I]2* 524954452050524F5445 RITE PROTE 005722|416510,542032| 50000, 0|AU(L0:% 435445440D0A00000000 CTED...... 005724|522032, 42500|446464, 53644|J0:$5 DTT%>D 54415045204953205752 TAPE IS WR 005726|446510,520240|512372,442606|DU(J"@I3ZD6& 4954452050524F544543 ITE PROTEC 005730|522130,406424|777560, 22013|J18@T4_]P"0+ 5445440D0A7F77002485 TED...w.$.
Jump to end of file.
020340|254000, 140|712000, 0|5@ !@Y0 2B0000003072 +...0r --- block_size (0x1E5) = 485 bytes ( 97 words) trailing --EOF-- --EOF--
Attach the physical tape drive to the NetBSD system. Copy the savesets (dozens of tape files) to disk.
#!/bin/bash reelid=${1?"tape number needed"} tape=/dev/nrst0 # non-rewind mode mkdir -p /home/jms/pdp10/$reelid cd /home/jms/pdp10/$reelid i=100 # First one is "file.101" ss=0 # First saveset is "ss1" while cp $tape file.$((++i)); do ls -l file.$i [ -s file.$i ] || break [ `wc -c <file.$i` == 25 ] && mkdir ss$((++ss)) mv -v file.$i ss$ss done
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 ss1 is an unwanted partial save on tape 169270.)
to-simh -t ss2/* > ../simh-ks/saveset1.tape to-simh -t ss3/* > ../simh-ks/saveset2.tape
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.
.r filddt File: tito.sav $$a $$h 0$n
Edit the saved file, removing extra lines. Then add “D+” to each line.
2. Edit REFSTR.MAC, copying and pasting the code that creates CRASH.SAV to create TITO00.SAV
Set the file size using MOVEI T4,^D33
(pages) and update ITEM macro X TIT,TITO00,SAV,555000,31
.
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.
.^E sim> attach rp2 tymb00.dsk sim> go
5. Patch the raw disk unit. (Load symbols to get a writeable symbol table)
.r filddt File: sys:mon14/s File: rpa2:/u/p
6. Track down the data pages for (SYS).UFD (RIB address at 1023). Search all 7 data pages for TITO00.
$$A $$H 1023/ 1450 1450000<1450777>0$N 1450051/ 200000,,1440 $$6t 1440000<1447777>0$n TITO00.SAV 200000,,15
7. Display the RIB. First data page pointer is at 15051, it points to page 16.
0,,15000/ 15000<15777>0$n 15051/ 200000,,16
8. Define D
as 16000.
16000/ d:
9. Use terminal's Send ASCII function to send contents of tito.txt
to FILDDT.
Transfer to simh's console is about 61 characters per second; 127 minutes to transfer TITO with DDT loaded (457K).
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
16000<37777>0$n
12. End Receive ASCII and on local machine (Cygwin) execute the following to verify the transfer:
cygwin% perl -pi.bak -e 's/^(\d+)/sprintf "D+%o",oct($1)-016000/e' tito2.txt cygwin% diff tito.txt tito2.txt
13. Exit FILDDT and detach rp2
from the TOPS-10 simh.
^Z sim> detach rp2
14. Boot TYMCOM-X in production mode. Due to Y2K8 problem, must use date from 28 years ago.
./pdp10 tym-prod.ini (Hit Enter twice to get logged in, then ''set date mm dd 1990'' and ''set time hhmm''.) 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. To automatically login, login over shut. X14, hardware *B*, KS-4257, base 6760, X14-P035/E02, 6-3-92, M02654 End of ONCE; starting null job Hi there! Please type your user name: 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 time 2041 Date/time is now 22-Mar-1989 22:41:00 Thursday --- System is SHUT --- !r tito00 TITO (V16.3) HERE AT 14:37 19-MAR-90 SYSTEM X14-P035/E02 DEVICE: mta0 TRACKS: 9 DENSITY(1600,800): 1600 TAPE NOT WRITE PROTECTED *rewind *^E sim> attach tu0 saveset1.tape sim> go *dir all INPUT TAPE POS RANGE: 1-e
At this point, TITO appears to be hung. Using restore all
also fails. — Joe Smith 2018/03/25 02:27 Will try TITO with DDT loaded next.
Overview page, SIMH Setup page, TYMCOM-X Startup page, TITO on disk page, Status page.