Category Archives: Passéism

Arraid AEM-1 setup

The Arraid AEM-1 is a professional SMD hard drive emulator, which is usually quite expensive, but I managed to acquire a pair from work when they were ready to be scrapped. I subsequently traded one for two Sun 2/120 CPU cards and kept one intending to use it with my Sun 2/120, but until now I didn’t have time to figure out how to set it up, which turned out to be a bit tricky because there was only a small “cheat sheet” describing only a few commands (DFD, CT, CD, CV, CW, CLEAN) in the shortest of terms, so some detective work was necessary, but fortunately the majority of commands don’t appear to be essential.

Serial connection

In order to configure the AEM-1, it is necessary to connect a serial cable and null modem to the serial port on the back of the unit. It is configured as a DTE and the DSUB-9 port is male. There is also another DSUB-9 port, female, which I think is for connecting to an UPS (but don’t quote me on that!)

The factory settings are 9600bps 8N1. If these don’t seem to work, it is possible that someone has altered the settings from within the serial console. It should be possible to reset the unit to system defaults by holding down “WRITE PROTECT” and “FAULT” buttons while powering on.

Prerequisites

It’s important to note that the drive bay must be locked with the key or else the SCSI drive will not be accessible! Took me awhile to figure this one out…

Power on

After connecting to the unit, and powering on, one will be presented with something like this:

 AEM-1 SMD DRIVE EMULATION SYSTEM –
(c)1995-1997 by ARRAID Inc.  Revision 2.03 1-Sept-1997
ARRAID Technical Support TEL: 602-582-4592

Configuration is: CDC1.2GB_55S_HSDP
RDY>

The “RDY>” is the ready prompt, meaning that it’s waiting for commands. Invalid commands will give an “INV>” prompt, failed commands will give a “FAIL>” prompt, and rejected commands will give a “REJ>” prompt.

Configuration

The “cheat sheet” I got with the AEM-1 unit basically just said:

“Configuration of Arraid AEM-1 SMD disk drive

1) Connect a terminal to the disk. Enable power.
Disk will respond eg: CONFIGURATION IS 7_CDC300MB_40S_UDP
RDY>
2) Type DFD [*]
This brings up a table with available disks and interfaces to choose from.
3) Type CT X
where X is a number between 0-15 that identifies the disk and interface to choose.
4) Cycle power
5) Type CD
This brings up a list of the chosen configuration.
To change eg the unit address:
6) Type CV UNIT_ADDR=0
7) Type CW
This saves the configuration.
8) Cycle power
9) Type CLEAN
The disk will spin up and be erased.
10) Cycle power
11) The disk will spin up and formatting can be performed.”

[*] DFD appears to be the incorrect command, DIR is probably what’s intended.

This is enough if there happens to be a suitable configuration in one of the 16 available tables. Mine only had various CDC drives though and I want to emulate the Fujitsu M2322 drive. Fortunately the tables are just shorthands for configurations and it’s possible to make your own.

Commands

Here follows a short description of commands and parameters that I’ve figured out.

BACK

Probably to make a backup copy, if the unit is supplied with such an option.
Not investigated further.

CC

Configuration Check: check if the currently chosen configuration is okay.

CCS

Configuration Check System: check if the current system configuration is okay.

CD

Configuration Display: display the variables of the currently chosen configuration. Ex:

RDY>cd
MAX_CYL          1634       PRI_SEL_MD          0
MAX_HD               14       UNIT_ADD             0
TRACK_LEN    50400        ONL_SAVE            0
NUM_SCTRS         55        WP_SAVE             0
SCTR_LEN         1818       UNIT_ID               0
SMD_MODE            3       HOLD_ONC          0
AM_MODE              0       SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                0        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0

CDS

Configuration Display System: display the variables of the current system configuration. Ex:

MEM_SIZE                  1
MEM_SIMMS              4
NUM_TB                 128
DP_SIZE                1024
OP_TYPE                    0
REMOV                      1
REMOVB                    0
AEM_SCSI_ID              7
BACKUP_ID                0
COPY_ID                    0
MIRROR_ID                0
UPS_DELAY            500
UPS_FLAGS                0
COMM1_BAUD     9600
COMM1_FLAGS        52
0

CLEAN

Initialize the SCSI disk with proper block structure according to current configuration.

COPY

Probably to make a copy, if the unit is supplied with such an option.
Not investigated further.

CS <NAME>

Configuration Set, give a name to the current configuration.

CSS <NAME>

Configuration Set System: give a name to the current system configuration.

CT <0-15>

Configuration Table: choose the currently active configuration.

CV <VAR>=<VAL> ..

Configuration Variable: set the currently active configuration’s variable VAR to VAL.

HELP

Displays the available commands (and nothing else! But still somewhat helpful…)
On older firmware (such as in my other unit) HELP didn’t even seem to be available.

CW

Configuration Write: write the current configuration to flash.

CWS

Configuration Write System: write the current system configuration to flash.

DIR

Display the available configurations. Ex:

RDY> dir
TABLE  DESCRIPTION
00    CDC80MB_40S_UDP
01    CDC160MB_40S_UDP
02    CDC300MB_40S_UDP
03    CDC340MB_40S_UDP
04    CDC675MB_40S_UDP
05    CDC300MB_40S_IOP
06    CDC300MB_32S_UDP
07    CDC675MB_32S_UDP
08    CDC340MB_32S_UDP
09    CDC40MB_23S_9010
10    CDC80MB_23S_9010
11    CDC160MB_23S_9010
12    CDC300MB_23S_9010
CUR13    CDC1.2GB_55S_HSDP
14    CDC858MB_54S_HSDP
15    FACTORY_TST
SYS        AEM1_B_RMV_OP0

 F

Display SMD fault status.

MM

Maintenance Mode: enables extra debug commands (CHMOD, DFD, FW, FR, MT, SCAP, SDB, SFB, SFIFO, SINQ, SMSN, SRBLK, SRST, SRTRK, SSNS, SSTOP, SSTRT, STEST, STMSL, STMSN, STRBK, STRTK, STRW, STUR, STWBK, STWH, STWTK, SWBLK, SWTRK, T, TBD, TBDIR, TBF, TD, TS, TX, WF, WO.)

P

Print statistics, such as accesses and misses.

POFF

Power off SCSI drive.

PON

Power on SCSI drive.

R

Toggles between three states (0, 1, 2). Might be “read ahead” mode (RD_AHD).

REST

Probably to restore a backup copy made with BACK.
Not investigated further.

RS

Unknown, just prints RS=0.

S

Display status.

SDODW

Secure DOD Wipe: securely erase the SCSI drive.

SFMT

Unknown. Probably something with format?

SS

Display system status.

SVFY

Unknown.

US

Display UPS status.

VCOPY

Volume Copy.
Not investigated further.

VER

Display the firmware version.

W

Toggle write-back mode.

Z

Reset statistics.

Debug commands

These are available if enabled by the MM command.

CHMOD

Unknown.

DFD

Display Flash Data: displays data stored in the flashrom. Includes the configuration tables (see DIR).

FW

Unknown. Might be flash write for firmware updates?

FR <ARG1> <ARG2>

Unknown. Might be flash read for firmware downloads?

MT

Unknown.

SCAP

Probe for SCSI drive capacity.

SDB

SCSI Dump Buffer: display SCSI buffer?

SFB

Unknown.

SFIFO

SCSI FIFO test.

SINQ

SCSI Inquiry.

SMSN

Unknown.

SRBLK

Unknown.

SRST

SCSI Reset?

SRTRK

SCSI Read Track?

SSNS

Unknown.

SSTOP

SCSI stop?

SSTRT

SCSI start?

STEST

SCSI test. Performs a CLEAN and then several read/write tests.

STMSL

Unknown.

STMSN

Unknown.

STRBK

Unknown.

STRTK

Unknown.

STRW

Unknown.

STUR

Unknown

STWBK

Unknown.

STWH

Unknown.

STWTK

Unknown.

SWBLK

Unknown.

SWTRK

Unknown.

T

Print status.

TBD

Track Buffer Display: display the track buffer contents.

TBDIR

Track Buffer Directory?

TBF

Track Buffer Fill?

TD

Unknown.

TS

Unknown.

TX

Unknown.

WF

Unknown.

WO

Toggle write-only mode.

Setup Fujitsu M2322

Here I will describe the steps I took to set up a configuration for the Fujitsu M2322 SMD drive.

Drive specifications

  • Capacity (unformatted): 168,550,400 bytes
  • Number of cylinders: 823
  • Tracks per cylinder (heads): 10
  • Cylinder capacity: 204,800 bytes
  • Track capacity: 20,480 bytes
  • Number of sectors: 128 (max)

The M2322 can work in either fixed or variable sectors mode. To be honest, I’m not sure exactly what use this is, so I decided to just go with fixed mode. This requires calculating the number of sectors and the sector size according to:

Track capacity / Number of sectors = Number of bytes per sector

For no particular reason I decided to go with 512 bytes sectors which means the number of sectors per track becomes 40.

Configuring the AEM-1

For starters, I decided to clean the existing configurations.

First changing the system configuration name from AEM1_B_N_RMV_OP0 to SUN_2_120:

RDY>css SUN_2_120

Then clearing out all the configuration names to SPARE:

RDY>ct 1
Configuration is: CDC160MB_40S_UDP
RDY>cs SPARE
RDY>ct 2
Configuration is: CDC300MB_40S_UDP
RDY>cs SPARE
etc…

Then deciding to use configuration 0 as the one for the Fujitsu drive:

RDY>ct 0
Configuration is: CDC80MB_40S_UDP
RDY>cs FUJITSU_M2322_168MB

Note: so far only the names have been changed, now it’s time to adjust the parameters for the Fujitsu drive (I leave the rest unchanged.) First list the old variables:

RDY>cd
MAX_CYL             822      PRI_SEL_MD          0
MAX_HD                 4       UNIT_ADD             0
TRACK_LEN    20160        ONL_SAVE            0
NUM_SCTRS         40        WP_SAVE             0
SCTR_LEN         1008       UNIT_ID               0
SMD_MODE           0        HOLD_ONC          0
AM_MODE             1        SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                2        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0

Then change the affected variables according to the drive specifications:

RDY>cv MAX_CYL=822 MAX_HD=9 TRACK_LEN=20480 SCTR_LEN=1024 RD_AHD=0

MAX_CYL             822      PRI_SEL_MD          0
MAX_HD                 9       UNIT_ADD             0
TRACK_LEN    20480        ONL_SAVE            0
NUM_SCTRS         40        WP_SAVE             0
SCTR_LEN         1024       UNIT_ID               0
SMD_MODE           0        HOLD_ONC          0
AM_MODE             1        SET_SIZE             32
BLOCK                   1        XLAT_TBL             0
FREEZE                  0        SEL_MODE           0
JAMB                    0         SCSI_PARAM0   208
CLOCK                  0        SCSI_PARAM1   208
NONC_BLOCK       0        SCSI_PARAM4   208
RD_AHD                0        SCSI_PARAM6   208
WB_MODE            1                                   0
RTZ_TICKS           20                                  0
REL_TICKS           50                                  0
OK to write config flash (y/n) – y

After entering the command, I answered yes to the question about writing to flash. If instead answering no here, one can still save the config later via the cw command.

A couple of notes: the MAX_CYL and the MAX_HD should be one less than the actual number. NUM_SCTRS is automatically calculated and is ignored if entered. SCTR_LEN appears to be in nybbles, not bytes, hence me entering twice the sector size according to the specification. Finally, I’ve disabled the RD_AHD (read-ahead) variable by setting it to 0. This has nothing to do with the Fujitsu drive but is only an emulator parameter.

Next it’s time to cycle power to get the emulator to use the new configuration.

Setting up the SCSI disk

After setting a new configuration, the SCSI disk must be initialized accordingly, which is done with the CLEAN command:

 AEM-1 SMD DRIVE EMULATION SYSTEM –
(c)1995-1997 by ARRAID Inc.  Revision 2.03 1-Sept-1997
ARRAID Technical Support TEL: 602-582-4592

Configuration is: FUJITSU_M2322_168MB
RDY>clean
Clean SCSI drive? (y/n) – y
Volume = 0
Number of tracks = 8230
Heads = 10, Cylinders = 823
Tracks= 8230

And hopefully that’s it!

Sun 2/120 power supply

The standard power supply for the Sun 2/120 was the huge Boschert XL750-2636R power supply:

Sun 2/120 PSUIt can be hardwired for either 110V or 220V operation, through soldered jumpers in the above hole, which usually has a rubber cover, but in the photo I’ve removed it. Coming from the USA, mine was naturally set for 110V so I needed to change it to 220V, which meant desoldering the three lower jumpers and solder in a top jumper:

Sun 2/120 PSU 110/220VWith the three jumpers desoldered and one reused to set operation for 220V:Sun 2/120 PSU 220VSpecifications (maybe for those planning a modern replacement):

Sun 2/120 PSU specsThe seven connections that go to the Multibus backplane:

Sun 2/120 PSU backplane connectionsThe power supply has a large external EMI filter:

Sun 2/120 PSU EMI filter

The IEC connector goes to the EMI filter, and there should be a fuseholder in between the two black cables, but is missing here, and I’ll have to get a replacement:

 

Sun 2/120 PSU IEC connectorThe connections’ side of the power supply, obviously I should replace the “115 VOLT” label with a “230 VOLT” one:

Sun 2/120 PSU connections

Rebuilding a Sun 2/120

What would you do if you were to cross paths with the slaughtered remains of a Sun 2/120?

For me, the answer was simple: emergency resuscitation of course!

The poor beast consisted of merely the skeleton: the card cage and backplane, the cables and panel connectors, and the power supply and harness.

What I have acquired so far:

  • Sun 2/120 power supply (huge Boschert XL750-3626R 1200W!)
  • Card cage (9 slots)
  • Multibus backplane (Sun 501-1090)
  • Sun 2 CPU card, ROM Rev R (Sun 501-1007)
  • Sun 2 CPU card, ROM Rev R (Sun 501-1051)
  • Sun 1MiB RAM card (Sun 501-1048)
  • Sun 10MBit/s ethernet card (Sun 501-1004)
  • Sun bwone monochrome video card (Sun 501-1003)
  • Xylogics 450 SMD card (Sun 370-1012)
  • Xylogics 472 9-track pertec tape card (Sun 370-1067)
  • Serial port panel and cable
  • Ethernet panel and cable
  • Video + keyboard & mouse port panel and cable
  • SMD hard drive (Fujitsu M2322K via Arraid AEM-1)
    • SCSI emulator for CF-cards
  • SunOS 3.5 on five QIC-11 tapes.

What’s missing:

  • The beautiful chassis, I so desire this!! 🙁
  • SMD cables
  • More memory cards
  • Multibus SCSI card (Sun 501-1006)
  • Sun type-2 keyboard and mouse

Hopefully I’ve got an Intel Ethernet (Sun 501-1004) network card coming in soon-ish *fingers crossed*

The plan

Thanks to an opportunity at work, I managed to get a hold of two Arraid AEM-1 SMD emulators, one of which I could trade with a fellow retro Sun enthusiast for two CPU cards and a 1MiB memory card so my Sun 2/120 project suddenly looks very viable, without having to resort to cloning! Although I’m still considering making a 4MiB RAM card, because although originally standard, 1MiB is pretty tight.
I would certainly like to acquire a proper Sun 2/120 deskside chassis, but I’m considering re-purposing a large PC tower case meanwhile.

Progress

2015-04-05:

Finally started doing something, prompted by my SCSI CF emulator arriving. First stop is trying to get the power supply up and running again. Managed to resolder the jumpers from 110V to 220V and figuring out how everything is to be connected, in the process realizing a fuseholder (and fuse) is missing, so getting a replacement tomorrow.

2015-04-12:

Programmed two 27C128 EPROMs with Rev R bootprom images.

2015-04-18:

First test run of the PSU with no load. The two 5V rails measure fine, but the +12V, -12V, and -5V measure very low (+-1V.) I hope it’s because there is no load connected.

2015-04-21:

Connected the PSU to the card cage with the 501-1007 CPU card, the 501-1048 memory card, and the 501-1003 video card inserted. No chassis, so all spread out on the floor. Serial cable with null modem connected to my workstation, 9600bps 8N1.

Power on and…all 8 LEDs on the CPU light up and…stay lit…and…nothing…

Despair…

At least all the PSU rails now measure properly, but what’s going on?

Out of the blue I think of swapping sockets of the two 27C128 EPROMs, and…

Sun Workstation, Model Sun-2/120 or Sun-2/170, Sun-2 keyboard
ROM Rev R, 1MB memory installed
Serial #7524, Ethernet address: 8:0:20:1:18:6

Probing Multibus:
Using RS232 A input.
Auto-boot in progress…
No default boot devices

Oh, yeah! We’re in business, big endian confusion be damned!

2015-04-25:

Placed orders for some 28AWG 60-way and 26-way cables, the corresponding IDC connectors, as well as an el cheapo IDC crimp tool, preparing to make me some SMD cables.

2015-05-03:

Figured out how to set up the Arraid AEM-1 to emulate a Fujitsu 2322K hard drive. Now I just have to wait for my SMD cables and my ethernet card to arrive before I can continue testing…

2015-05-06:

What looks like a NOS Sun 501-1004 ethernet card arrived at my doorstep today! Packaged inside a Multibus to VME adapter, but I’ve since released it from its prison, and put it in its proper cage.

2015-05-25:

Hopefully getting a 1/2″ 9-track tape multibus interface card in a few weeks. Could help with OS installations.

2015-06-05:

Xylogics 472 Pertec tape multibus interface card arrived. Unfortunately, probing the multibus either hangs or fails to find it. I’ve double checked the configuration jumpers and they appear to be correct. Could the EPROM have failed?

2015-07-10:

I received five QIC-11 tapes containing SunOS 3.5 for 68010! I doubt I will actually use these (probably not even readable anymore) but great for posterity!

2015-12-29:

Very long break, but finally cramming in some Sun restoration before the new year: made use of the IDC crimp tool, some cables, and some connectors so now I have an SMD control cable (60-pin) and an SMD data cable (26-pin.) Also starting to repurpose a large PC fulltower case to hold all the components. Looking good so far, I think I will be able to fit everything in a semi-decent manner. I ought to be able to run the 140mm and 200mm fans builtin to the case from the Boschert power supply. Finally starting to make a video cable to hookup to an RGB interface to hopefully get me some video so that no longer have to be content with just the serial connection.

Problems

  • The PSU must be switched from 115V to 230V and tested.
  • The CPU cards are missing bootproms. This one is easy to fix, I just need burn two 27C256 EPROMs with a bootprom image, luckily I have one.
  • The 501-1003 bwone framebuffer only outputs TTL levels and I don’t have a compatible monitor. I must figure out a way to convert the signal to display on a more modern monitor.
  • I need to figure out how to operate the Arraid to get the emulator set up. Serial command line interface is not so obvious.
  • I need to figure out how to do a network install. Will NetBSD with ndbootd be enough?
  • I don’t have a Sun type 2 keyboard/mouse; later models are electrically compatible but the connectors are different (RJ-11) so I’ll need to make an adapter. I think there was an official adapter for the DB-15 type 3 keyboard to RJ11, that might also be an option.
  • Must solve the chassis situation: it won’t do much longer to have the guts of the machine sprawling next to my desk. Would love to get a genuine Sun 2/120 deskside case, but I’m considering modding a fullsize PC tower case, if possible.
  • Make SMD cables: one 60-pin (A = control) and one 26-pin (B = data) with IDC connectors.

Old plan:

Before I managed to get a hold of a genuine Sun 2/120 CPU card I was planning on creating a clone based on the original schematics.

Components sourced so far:

CPU card

  • Motorola MC68010L10 (microprocessor)
  • 39.3216MHz crystal oscillator
  • Zilog Z8530A (serial ports)
  • AMD 9413 (timer)
  • National Semiconductor 58167 (real-time clock)
  • 2x 27128 EPROM (bootprom)
  • Xilinx XC2S200 FPGA (MMU, misc.registers and control logic)

I was planning to make my own CPU card and was drawing up a 1:1 copy of the schematic in Altium, including all the discrete logic chips, but would probably move the MMU and the control logic into the FPGA later, in order to save space/components/work. This plan now looks obsolete, though you never know.