November 25, 2017

Hacking on a Digital Lightwave ASA-PKG-OC12 (part 3)


Floppy Connecting


Success! Kinda. I had to make a couple of modifications to get a floppy drive plugged in:
  1. The pins on the floppy header on the main board are a good bit shorter than typical 0.1" headers, so they did not reach far enough into my floppy cable connector to make contact. I had to sand about 1mm (0.050") from the connector face, and it now just barely makes electrical contact.
  2. Of my several floppy cables (yes, I have several; don't judge), all had pin 3 blocked. The main board's header did not, so I had to trim off pin 3 so the connector would mate. The odd pins on floppy connectors are all ground, so this is unimportant.
  3. The Digital Power VSL100-401 power supply has four 5-pin connectors on it. These output +5V, +12V, -12V and -5V, plus a single ground. I made an adapter cable that plugged into the +5 and +12V rails, and brought them to a female "Molex" floppy power splitter cable.
The sanded-down face of the floppy cable, the cut pin 3 of the main board header, and the Rube Goldberg PSU-to-floppy power cable.
The PCII/+ must be configured for boot-up floppy seek, since it did just that on the first power-up. Yay!


Floppy Loading


Now the machine was getting closer to my dusty memories of mid-'90s PCs. With a working floppy drive, I excitedly inserted an old DOS 6.2 (not 6.22, alas) boot floppy and was able to see a directory of the disk. Hey, let's try that old classic tool, MSD!

MSD.exe (Microsoft Diagnostics), one of my favorite tools in the old days.










This led to the (attempted) loading old DOS programs and games. WordPerfect seems to work, and a couple of (simple) late '80s DOS games too. Of course, I will have to try Wolfenstein 3D once I get everything working.

Most important to me, though, was the ability I now had to:
  • Backup the Flash-based boot environment to floppy
  • Copy the various files for investigation/modifications on a Windows PC with things like Notepad++
  • Run Edit, MS-DOS' included text editor, with which I could finally make changes to the "config.sys" and "autoexec.bat" boot files. 

 I REMed out the @ECHO OFF line of autoexec.bat so that I could see more of the file's execution. I didn't want to change too much; one wrong move and I might make the board unbootable from its C: drive, and I'd have no way of recovering from that (yet).


Floppy Booting?


I copied what I thought was a minimal boot environment to a floppy disk and tried booting from that. It churned a while on boot, ticking and tocking around the tracks. Definitely executing the autoexec.bat! Then the drive halted and... nothing. No display at all. Dang.

This began a long and confusing series of experiments that made very little sense. Eventually I got the machine to boot from floppy and show something on a screen, but more often than not, the screen remained blank. Boot configurations that worked minutes before were occasionally unsuccessful.


This Always Happens


Once, while poking around inside the box after another unsuccessful boot, the display flickered and briefly showed an A:\ prompt. What? More poking revealed that the goofy video cable assembly seemed really touchy, but holding it in just the right position would show a display.

A few minutes of continuity testing against the pinouts I made at the beginning showed several video connections were no longer present. Aha! The microscope revealed the faults on the flexible polyimide circuit:
Both of the traces leading from the pads to the vias are cracked!

All of my plugging and unplugging of connectors finally resulted in the predictable casualty. I'll have to repair this and re-run my boot floppy experiments.

November 16, 2017

Hacking on a Digital Lightwave ASA-PKG-OC12 (part 2)

Main Board


Some photos of the main board. I marked up important stuff with a silver sharpie (pretty sure it's non-conductive...) Most of the interesting stuff hails from PC104 board's 96-pin connector, so I marked the corner pins (1A and 32C) and put a mark for every fifth row. This made beeping out connections much easier.

The keyboard connector is on the opposite side in the lower-right part of the board, near the video adapter cable thing, marked "KBD". The touchscreen controller's serial port is the small white connector at the bottom edge, marked "COM2".

Note all the Xilinx ICs. There's a National Instruments GPIB controller near the top, under the COM1 serial connector. Next to it are the driver and receiver ICs for the GPIB connector in the upper right.

The main board's topside shows the square brown PC104 board and all of the rear panel connectors. That high-density IDC connector on the left site goes to a PCMCIA daughterboard through a cable. The right half of the board seems to be telecom stuff exclusively, and there are several 82C55s, presumably to interface to the PC104's ISA bus.


Attaching a Keyboard


Fortunately, Goodwill had a cheap PS/2 keyboard. After lopping off the PS/2 connector and figuring out the weird wire colors, I terminated the cable with a cheap 0.1" connector. I desoldered the keyboard connector and wired in a mating connector, and I had a working keyboard:



I'm in?


With the keyboard attached, I finally had some means of affecting the boot-up process. The Pause key works, and gave me a glimpse of the POST screen:





The good old CTRL-ALT-DELETE three-finger salute allowed me to restart whenever I wanted to. Despite trying every BIOS key I could remember, I could not get into any sort of BIOS setup screen. Fortunately, CTRL-C also worked, so I was able to halt the boot process and get a DOS prompt:


Yay, MS-DOS 6.22!





I Don't Remember DOS Very Well


The boot-up process seems to go something like this:

  1. The Autoexec.bat file creates a RAMDISK at D:
  2. Three .ZIP files on the C: drive (BOOT.zip, IMAGE.zip and ND.zip) are uncompressed into D: and various commands are executed there to set up the MS mouse driver for the touch screen, etc.
  3. One of the unzipped programs is called MEGA.EXE. This seems to be the main Digital Lightwave GUI program, which unfortunately still seems to go nowhere, even after 10 minutes of waiting.
I can't figure out a good way of editing the autoexec.bat file. All I remember is the TYPE command, which doesn't have a way to display only a page at a time, so I have to be quick with the PAUSE keyboard button. The MORE program isn't present, so I can't pipe the output to that. How the heck do I edit BAT files in a crippled DOS?


Exfiltrating Files 


The next question is: how can I pull files off this thing (or put new ones on)?  If I could do that, I could edit the autoexec.bat (in a roundabout way, anyway).

INTERSVR.EXE is present, but as far as I can tell, there's no way to connect with modern Windows, and the process takes a while.

The network port is probably working, but I've never done anything with DOS and networking, so I'm totally in the dark there. I've read that PC-DOS has some networking capabilities built in, so if I can boot to a floppy I might be able to get something working there. But I'd need an FTP client (and set up an FTP server) to exfil anything. Ugh.

I don't have any kind of Flash storage card for the PCMCIA socket. Building a cable to connect the 26-pin SCSI port to one of my dusty old SCSI drives might work, but I'm lazy and this would have some knock-on complications as I'd have to get SCSI working on a Windows computer to read the drive. Additionally, I really don't like SCSI.

That leaves me with Floppy exfiltration. I think the contents of the C drive will fit on a single floppy, so this is probably the way to go. All I'll have to do is make a custom power cable to plug the floppy drive into the PSU. I'll still have to put a floppy drive on a Windows machine, but that will take less time than the other options.

November 14, 2017

Hacking on a Digital Lightwave ASA-PKG-OC12

I often cruise the "Business and Industrial" categories of eBay looking for things that are 1) cheap 2) interesting and 3) "For Parts or not working". This device seemed to fit all three:

It's some kind of portable computer used to troubleshoot various old high-speed telecommunication links, like T1, SONET, etc.

I thought it would be fun to hack on. Maybe the LCD/touchscreen could be used with a Raspberry Pi or something? What kind of OS would it run?

The device was in pretty sorry shape, and the plastic surround was in tatters (it was cheap). Underneath, though, was a quality aluminum chassis without a dent or scratch.

Contents

Of course I took it apart before turning it on. The insides were somewhat surprising:
  • Three PCBs in a sort-of mezzanine arrangement, containing all of the huge old ICs for the various telecom functions, and about a billion Xilinx PLCC devices, some socketed.
  • The main PCB had the real prize: a Megatel PC/II+ PC104 board. This is an old 386SL, with embedded RAM, flash "disk", Ethernet, three serial ports, a VGA/LCD display controller, printer ports, SCSI (!) port, etc. Neato, I've always wanted to tinker with a PC104 PC.
  • The LCD is an old NEC NL6448AC30-12, 640 x 480 with 12-bit RGB color (total of 4096 colors!) and a functioning backlight.
  • Attached to the LCD is some kind of capacitive MicroTouch touchscreen, with standalone controller. It's quite similar to this one from 3M (who bought MicroTouch), except without the light pen interface. It connects to the main board via RS-232 serial. Neato!
  • A nice, beefy +5, +12, -12, -5V switching supply.
  • Socketed Lucent OC12 modules, I guess? They have long fiber optic connections to the back panel.
  • A gross, decaying, leaking Lithium battery on the main board
  • A dead CR2032 on the PC104 (thankfully not leaking). No doubt any BIOS settings are long gone.

Mmmm, Vintage...


The newest ICs I have found on the boards date from very early 1997, so this thing is more than 20 years old. There are some nice throwback ICs on there that I remember from my ADC days, from the likes of Level One and TransSwitch.


Probing for Connections

The PC104 board plugs in to several connectors on the main board, from which it also derives power. After stripping it all down to gather information on the parts, I re-assembled it to see if it booted. It does! Kinda.

After the quickest possible flash of a POST success screen, I see an image like the one at the top of the page, which basically freezes with one square on the progress bar. Probably because two of the boards full of telecom peripherals aren't even attached anymore.

There is no obvious keyboard connection, so no chance to interrupt POST. But there are several connectors on the main board that were not connected to any of the telecom stuff. Checking out some hypotheses against the PC/II+ datasheet, I found that Digital Lightwave was very helpful, bringing out many of the unused features of the PC/II+ to handy connectors on the main board:
  • 34-pin FDD header, probably with the correct floppy pinout
  • 26-pin SCSI header, possibly with the correct pinout
  • 5-pin weird Molex connector for a keyboard. It even has the correct pin sequence for a PS/2 keyboard. I don't have the matching Molex connector, so I'll either hardwire an old PS/2 keyboard in, or something.
  • The PC/II+ COM2 is used for the MicroTouch controller
Additionally, some of the main PC/II+ features are right where I'd hoped:
  • The PC/II+ COM1 is wired directly to the main serial port on the back of the box
  • The PC/II+ Ethernet port is wired directly to the RJ45 on the back of the box

The LCD

I also probed out the fiddly LCD adapter cable. It is pretty simple, as it turns out. Oddly, the two LSBs of each of the RGB colors is tied together, so the display is really only uses 512 colors.

The backlight inverter seems to be dead simple, though I can't find a datasheet for it. It's powered by +12V from the supply, but there is one single conductor going all the way back to the main board, and a loop of wire connecting two of the inverter board pins together. I'm guessing the loop is some kind of safety interlock. The single conductor is held near 0V in normal operation, and when I chased down the trace on the inverter board, it went to a little SOT-23 part. I'm guessing that SOT-23 is a P-channel MOSFET, since the single conductor goes where I'd expect the gate pin to be, the usual drain pin is connected to the main chip's power pin, and the probable source pin is connected to +12V.

New Things I've Learned

One of many ICs on the main board is a Hitachi HD44238P. In hunting down a datasheet, I learned a bit about A-law and μ-law algorithms (though I confess I don't entirely understand the math behind them). Now that I think about it, it makes total sense to encode the quietest parts of audio with more bits than the louder parts, especially when you only have 8 bits to work with. The chip looks easy to work with, so I may desolder it and do some breadboard experiments.

End

That's as far as I've gotten reverse-engineering it so far. Once I get a keyboard hooked up, I'll see if I can get into the PC/II+ BIOS. Or see if it will boot from a floppy...