• Please review our updated Terms and Rules here

Replacing the boot harddisk in a MAI Basic Four System 2000

ard

Member
Joined
Jan 28, 2017
Messages
15
Location
Krefeld, Germany
DSC03409.JPG

DSC03414.JPG I got the system some time ago (i think in 2005) from the US and replaced the original Maxtor XT-1140 harddisk with a Micropolis HH1050 at that point in time.

I have done this with a lot of try and error using the diagnostics for writing / restoring partitions in combination with regular backups and some magic i do not remember to transfer the config record to the “new” disk. This time i want to do it in a cleaner way. My goal is to recreate an install tape based on what i have installed. I found a tape for a 3000 (ftp://computermuseum.informatik.uni-stuttgart.de/mai/) that is incompatible but i can at least analyze the structure.

The machine came with a diagnostics tape but without an os tape. I bought an installation tape some 10 years ago from BCP Systems but was only able to read the first 10 files from that tape (belt). Hope this is enough to recreate a bootable install tape.

DSC03415.JPG

Now the Micropolis has new errors and no longer boots at all.

DSC03412.JPGBought a new old stock Kalok 330 from a seller in Germany, had a shorted tantal on the 12V rail but works now without any errors.

Basic Four was paranoid someone would use products not bought from them so they introduced the config record (i remember when i worked with that machine the os was not renamed from CRDS UNOS to BOSS/IX and had no such record).

The config record is somehow encrypted and will only work in a machine with the correct serial number. The serial number and some checksums are stored in the nvram and can only be written after changing a pal.
The config record contains the allowed operating system version, maximum disks/disksize, floppy yes/no, maximum memory and so on. This the one i have:

Code:
User SSN......................2000-97894
Creator SSN...................W10-30969
System name...................TN0396/S.D.SCOTT PRINTING
System type...................2000
Release level.................7.5B
Main memory size..............1280 KB
Number of hard disk drives....2
Hard disk configuration.......120MB <2>
Number of floppy drives.......0
Number of 4-way controllers...2
Number of 8-way controllers...0
Number of parallel ports......1
Number of comm ports..........1
LAN controller................NO
MCS controller................YES
MTS controller................NO

This record is stored somewhere on the disk but not within the filesystem. Without a config record the machine can boot from the boot partition but the root can not not be mounted.

So the first step would be to rescue the config record. There is an option to copy the config record from one disk to another but that does not work.

Booted diagnostics and loaded dutil:

Code:
exec>load dutil
 Loading: dutil....
 D U T I L     Disk UTILity, Rev C3.1   10:05:33  03/24/88

DISK CONTROLLER CONFIGURATION
Cont.  Address     Type     Logical Units   Status

 0     00CC0000    Single board  0, 1       Present: OK
 1     --------    Unknown       2, 3       Not present

LOGICAL UNIT CONFIGURATION
UNIT  STATUS       TYPE
 0    Ready        Micropol 1050

<dutil>conf
                                                     ELAPSED TIME: 00:00:00
    Config record utility menu
1   Copy unit 0 to 1
2   Copy unit 1 to 0
3   Destroy the config record
4   Display the config record

Enter selection,
(r=last menu, c/r=item 1, ?=help) >> 4

                                                     ELAPSED TIME: 00:00:00
    Unit selection menu
1   Unit 0, primary unit
2   Unit 1, second unit

Enter selection,
(r=last menu, c/r=item 1, ?=help) >> 1

 ADDR   00   02   04   06   08   0A   0C   0E
0030000  1340 7EAA 8012 853E C073 AA66 9994 AE62 .@~*...>@s*f...b
0030010  1B89 AB84 5AEB E8AF 20AC AEBC A295 B396 ..+.Zkh/ ,.<".3.
0030020  C6A8 0F32 A0D6 56BD D43E 1588 707A 7EF8 F(.2 VV=T>..pz~x
0030030  FA41 5BB7 E9A8 B436 BABC 0F94 4E51 12DF zA[7i(46:<..NQ._
0030040  D6A3 781E 080C 94C1 BB63 9DE9 8C1A F505 V#x....A;c.i..u.
0030050  125E 856E 9909 1487 3CF1 7350 988B 0C21 .^.n....<qsP...!
0030060  67AC 6D73 A159 B222 B0C2 3C22 1AA2 D1C2 g,ms!Y2"0B<"."QB
0030070  A3E2 26C2 3602 CA62 D682 1BC2 A502 E742 #b&B6.JbV..B%.gB
0030080  5162 81A2 3902 7CE2 05E2 A6C2 48E2 5AE2 Qb."9.|b.b&BHbZb
0030090  19E2 6562 8DE2 D982 7362 1622 9422 BA22 .beb.bY.sb.".":"
00300A0  6302 EFE2 14C2 DE22 B262 B282 87A2 3A42 c.ob.B^"2b2..":B
00300B0  8022 BA22 21A2 F382 9702 B9E2 3EE2 4542 .":"!"s...9b>bEB
00300C0  FB02 9D42 BCE2 8DA2 1922 2442 8A62 0A02 {..B<b."."$B.b..
00300D0  EB22 D562 A8E2 E522 BE02 A5A2 30E2 4322 k"Ub(be">.%"0bC"
00300E0  FB02 DEA2 B942 0B62 3D62 81A2 E182 96A2 {.^"9B.b=b."a.."
00300F0  8822 8282 D562 EDA2 A362 C862 CAA2 96E2 ."..Ubm"#bHbJ".b

>> C/R TO CONTINUE, SPACE-RET. TO STOP >>

 ADDR   00   02   04   06   08   0A   0C   0E
0030100  3030 3039 3738 3934 0000 0100 1078 0000 00097894.....x..
0030110  0000 0000 0000 0000 0000 0000 0000 0500 ................
0030120  0000 0000 0280 0000 0000 0000 0200 0100 ................
0030130  07D0 0502 0001 0100 5731 3033 3039 3639 .P......W1030969
0030140  0000 0000 0000 0000 0000 0000 0000 0000 ................
0030150  544E 3033 3936 2F53 2E44 2E53 434F 5454 TN0396/S.D.SCOTT
0030160  2050 5249 4E54 494E 4700 0000 0000 0000  PRINTING.......
0030170  0000 0000 0000 0000 0000 0000 0000 0000 ................
0030180  A6E2 97E2 52E2 EDC2 5622 1BE2 1662 5482 &b.bRbmBV".b.bT.
0030190  0942 04E2 7A02 E3C2 81E2 F962 E222 A7C2 .B.bz.cB.bybb"'B
00301A0  30E2 01C2 FEA2 60E2 9502 AE02 D022 0B22 0b.B~"`b....P"."
00301B0  5AA2 D362 5BA2 7A02 0622 E102 F382 74A2 Z"Sb["z.."a.s.t"
00301C0  5AC2 44C2 B2C2 4802 8962 2202 4442 F0A2 ZBDB2BH..b".DBp"
00301D0  9742 DE02 E982 5F02 3BE2 92C2 E1C2 FC22 .B^.i._.;b.BaB|"
00301E0  2F22 1A02 3A82 4082 1F62 C382 7DA2 6602 /"..:.@..bC.}"f.
00301F0  5DA2 85E2 74E2 1B22 93E2 3E82 564C 75D0 ]".btb.".b>.VLuP

Copied that to my linux machine and convert it to a 512 byte binary file. Then i took the config tape from the MAI 3000 (first i had to write a small program to convert the .tap file to single files). There are 3 files on that tape, a header, a saveset (list of files) and the config record. Patched the saveset to rename the file to what seems to be expected by the installer (/sys/config.2000-97894) and wrote a new config record tape on linux. Hope this can be used later when doing a new install.

Formatting the new disk
Disk formatting can be done from the diags after loading dutil. The command dutil shows options to format the disk. However, only disk types sold by Basic Four can be used. When i replaced the disk the first time, i already had analyzed the structure of the diagnostic programs (s-record files with an additional header) and wrote a simple program that allows editing the table of disk types. So i added the Kalok, wrote a new diag tape on linux and was able to format the disk:

Code:
ad@e5 dutil]$ ./dutilpatch
Reading dutil.2000
Dutil Date: "10:05:33  03/24/88"
Dutil Version: " C3.1   "
-------------------------------------------------------------------------------
0: Micropolis 50   Cyl:  830 rwc:  400 wpc:  400 ?1:0xBA ?2:0xAC hds: 6 ?3:0x10
1: Maxtor 140 Meg. Cyl:  918 rwc:  919 wpc:  919 ?1:0xBA ?2:0xB0 hds:15 ?3:0x21
2: Kalok 330 20M   Cyl:  615 rwc:  616 wpc:  616 ?1:0xBA ?2:0xB4 hds: 4 ?3:0x00
3: Drem 115MB      Cyl: 1550 rwc: 1551 wpc: 1551 ?1:0xBA ?2:0xB8 hds: 9 ?3:0x01
4: Rodime 53 Meg.  Cyl:  640 rwc:  641 wpc:  641 ?1:0xBA ?2:0xBC hds: 8 ?3:0x02
5: Seagate st1100  Cyl: 1070 rwc: 1071 wpc: 1071 ?1:0xBA ?2:0xC0 hds: 9 ?3:0x20
6: Maxtor 85 Meg.  Cyl: 1024 rwc: 1025 wpc: 1025 ?1:0xBA ?2:0xC4 hds: 8 ?3:0x22
7: Maxtor 190 Meg. Cyl: 1224 rwc: 1225 wpc: 1225 ?1:0xBA ?2:0xC8 hds:15 ?3:0x23
8: Unknown         Cyl:    0 rwc:    0 wpc:    0 ?1:0xBA ?2:0xCC hds: 0 ?3:0xF0

Enter Number to change or (S)ave, (Q)uit:
Now i have to figure out how the structure of the install tapes is and write install tapes.

Btw, the machine was originally equipped with a QIC-24 drive (Tandberg with s separate formatter board to provide QIC-02). I replaced that drive with an archive 150 MB to be able to write tapes on a linux machine that can be read by the 2000.
 
My terminalserver (an old datability 16 port one) died. There are faulty caps in the power supply, ordered new ones. When it is up and running again, i will continue trying to create the installation tape.
 
My terminalserver power supply is recapped and works fine now.

After formatting, it makes sense to install the diagnostics onto the harddisk, it loads much faster than from tape. To do this, load diag from tape and use the sbinit and install commands to install the diags on the harddisk.

Code:
dutil>service
Enter required password for Function Select enable.b4bus
Function Select Access Enabled.
<dutil>sbinit
Destroy: M A I    B A S I C   F O U R    I N C. This disk drive was formatted by DUTIL.   (y/n)? y

Diagnostic Partition size (in sectors)?2500

Partition too large.  Setting size to maximum of: 2048
Destroy: JXB~ZZJXB~ZZ (y/n)? y

Disk Name: ARMINBOSSIX

Initializing: arminbossix
<dutil>install
Destroy: arminbossix (y/n)? y

Disk Name: arminbossix

Initializing: arminbossix
Copying : exec.....

From the fragements of the installation tape and the MAI 3000 tape i have i figured out that the bootable installation tape consist of

  • 1: 512 bytes Tape Header (took it from the 2000 install tape)
  • 2: 2K loader (took it from the 2000 install tape)
    This one loads the next 3 files into memory and executes the first one
  • 3: UNOS - BOSS/IX kernel, load address and bss/data size is specified in the header (as in the unos header file sys/obj.h) (from my running system)
  • 4: config, the kernel config file contains the size of the ramdisk and the devno where root is on (from the 2000 install tape)
  • 5: ramdisk filesystem, from the 2000 tape, contains some utils like usb (=fdisk), makefs, trestore, starts a simple sccript allowing to initialize root, install config record and install the operating system
  • 6,7: tapemark
  • 8: saveset (=backup header and directory from tsave) for the boot filesystem
  • 9: boot filesystem including a header tsave writes
  • 10: tapemark
  • 11: saveset for the first installable package (EOS=operating system)
  • 12... files with header
i had restored 1..8 from my defect 2000 boottape. The bootpart came from my running system. After writing the first 7 files using linux, i was able to append the bootpart to the tape using tsave. Before that, i had to change /etc/conf on the boot device so the boot device is not the root partition (15,3) but the boot one (15,1) using vconf. After a few tries, the tape actually booted and i was able to create the root partition as well as install the config record.

Code:
                            MAI 2000

System Self Test B4.3: SSN 2000-97894
cmb                                   pass
memory   [size=1280 kbytes]           pass ^c<alt load>
fd                                    pass
fw       [modules= 0,1]               pass
wd       [modules= 0]                 pass
cs                                    pass

Boot device: cs

System file: 


Booting from cs0
Loading operating system
...............................................................................................................................................................................................................................................................................................................................................................................................................................................................
Loading configuration file
.
Loading ramdisk
.........................................................................................................................................................................................................................................................................................................................................................
Executing

         *** Installation system load complete! ***

This installation system  will be used to perform  one of three functions.
The first  is a  complete restore  of the  winchester disk  boot partition
including creation of default partitions.  The second option also restores
the boot partition files, but does not change the current partitions.  The
last choice is used to restore the loader to the winchester disk.   Select
the desired option and type the corresponding letter followed by 'RETURN'.

   A - Restore boot partition, CREATE DEFAULT PARTITIONS

   B - Restore boot partition, PRESERVE CURRENT PARTITIONS

   C - Restore loader to winchester disk

   D - Install configuration record

   E - Redisplay this screen

   <CTL-D>, 'shutdown' - Reboot the system


OPTION>a
Creating default partitions.../dev/rwd0:
volume id: M A I    B A S I C   F O U R    I N C. This disk drive was formatted by DUTIL.  
last revised on Tue Apr 17 1990 15:57:07
device type: save
       class: 0
       capacity: 161375
       number of cylinders: 1070
       number of heads: 9
       number of sectors per track: 17
       number of bytes per sector : 512
       diagnostic partition:  start: 161381  length: 2048
partition:  0    start:      0    end: 161374    length: 161375  ( 82.62 Mb)
partition:  1    start:      0    end:   4095    length:   4096  (  2.10 Mb)
partition:  2    start:   4096    end:   8191    length:   4096  (  2.10 Mb)
partition:  3    start:   8192    end: 161374    length: 153183  ( 78.43 Mb)

Transferring boot partition to disk...
................................................................
Procedure Complete.  'E' to redisplay menu, <CTL-D> 'shutdown' to reboot.

OPTION>OPTION>d
Insert CONFIGURATION tape, press 'RETURN'...
Configuration Record Information (/sys/config.2000-97894)
User SSN......................2000-97894
Creator SSN...................W10-30969
System name...................TN0396/S.D.SCOTT PRINTING
System type...................2000
Release level.................7.5B
Main memory size..............1280 KB
Number of hard disk drives....2
Hard disk configuration.......120MB <2>
Number of floppy drives.......0
Number of 4-way controllers...2
Number of 8-way controllers...0
Number of parallel ports......1
Number of comm ports..........1
LAN controller................NO
MCS controller................YES
MTS controller................NO
Writing new configuration

Procedure Complete.  'E' to redisplay menu, <CTL-D> 'shutdown' to reboot.

OPTION>
<EOF>
single or shutdown? shutdown

Press 'RETURN' key to reboot ('^C'=alt-load, '^S'=self-test):
I had to use linux as without the c compiler, the only way to write to tape is the supplied backup program (tsave/trestore/theader) and that one writes a proprietary format. The c-compiler seems to be from "Silicon Valley Software, Inc." or "Green Hills Software, Inc", i found binaries but they will not start, i assume they are for an 68020 while i have an 68010.

Next thing is to create the installable packages on the 2000. I already have some running but the original install routines will delete some files after installation, e.g. /sys/installetc, the binary from the 3000 tape does not work (it is compiled for an 68020) and the shell/copy has not way to not overwite files.
I have to create some more tapes and test it.
 
Back
Top