Wednesday, February 8, 2017

Waiting for disk tool test time, meanwhile restoring a Heathkit HW-100 ham transceiver

ALTO DISK TOOL

All is ready for testing but I have to get to Marc's house to do this, which means a couple of days of waiting.

HEATHKIT HW-100 SSB TRANSCEIVER RESTORATION

I pulled out a HW-100 that I had bought a few years ago with the quixotic intent of converting it into a kit (desoldering everything, buying new components for all resistors, capacitors etc) and then building it 'as if' I had bought the kit way back when.

Heath HW-100 SSB Transceiver

I actually have many of the replacement components but have changed track. At this point, given how nicely it appears to have been built, I will simply restore the unit to operation and align it carefully. In order to do this, I need to buy the power supply, which was an external unit called an HP-23A/B/C that furnished the 800V, 300V, filament and other power needed for the transceiver itself.

Inside the HW 100

I opened it up and began checking out the vacuum tubes inside. I know that several of them are quite rare and very pricey to buy, such as the 6GW8 audio amplifier tube. Of the 20 tubes that are used in the unit, 18 were in place and astoundingly, every one of them tested good. The only two that are missing are pretty common and reasonably priced tubes - a 6AU6 and a 12AT7.

Testing the vacuum tubes

I found that the electrolytic capacitors inside the unit had been replaced by a previous owner, thus were modern and safe substitutes for the originals that would have been dangerously aged. Of course, I still need to deal with the big electrolytics coming in the HP23 power supply, but this unit is in good shape.

There are three rubber belts which turn variable capacitors to tune and load the RF sections, which had turned to brittle material and already snapped in one case. I have bought a replacement set on Ebay. I am also ordering the two missing tubes so that I can be ready to move forward when the rest of the testing and restoration is complete.

Cracked and broken rubber belts needing replacement

I will go through the unit and check out components, to the maximum possible extent without unsoldering them. The high impedances of vacuum tube components makes this more feasible than with low ohmage solid state components.

Until I have the power supply in hand, restored and checked out, I can't actually check out the operation of any part of this. I will need a dummy load before I can test the transmit functions and should have some sort of an antenna to test reception. 

Tuesday, February 7, 2017

Found cause of errant data for first sector when writing an entire cartridge

ALTO DISK TOOL

I confirmed that the WriteEntireCartridge transaction does not set up the cylinder, head and sector to 0 as it starts up, thus it will initially point to some random place in RAM which is written by the first WriteSector transaction. This flaw is also present in the ReadEntireCartridge transaction.

The solution is to have a couple of steps in the FSM for the startup of the transactions, which are detected and used to reset the three registers that define the next sector upon which operations will take place. I built that logic and prepared for testing which I will do at Marc's house where the drive is currently located.

FREQUENCY COUNTER CHECKOUT

I pulled out a Heathkit SM 2420 frequency counter that I bought on ebay a few years ago but never turned on until now. The good news is that it is working properly, although I don't have a good standard to check its internal 10MHz oscillator against.

I decided to use my modern Tektronix scope and see what frequency it detected. The scope claimed it was oscillating at 9,999,970 Hz, which is quite close although not exactly 10MHz. It started off just above 10MHz but as it warmed up the oscillator sagged down to be 30 Hz low.

If I am bothered by an error of 30Hz, I can pick up a Rubidium clock module with or or GPS receiver to further discipline the timing. That should reduce oscillator error to within hundredths or thousands of one Hz of 10MHz. I have no need for that level of accuracy right now.


Monday, February 6, 2017

This and that

ALTO DISK TOOL

Still working through my logic to understand why the first sector is written incorrectly I don't have the drive here so I have to be certain I know why the error is occurring and validate the correctness of my solution.

CHIP SUPPLIES

Xerox PARC was ready to toss their collection of spare ICs and other parts, but instead donated them to the Alto restoration effort. I picked up 12 small cabinets filled with various 7400, 9000 and MECL chips, RAM and other parts.

DUMONT OSCILLOSCOPE REPAIR FOR UPCOMING DGM EVENT

Digital Game Museum will display Tennis for Two, possibly the first video game, which displays on an oscilloscope. It was created in 1958 thus we need a period authentic scope for the exhibit. A friend loaned his Dumont 304A scope to the museum, but it was non operational.

I replaced some bad parts and restored it to operation, delivering it to the museum today to allow them to set up their exhibit in advance of the Game Developer Conference at the end of the month.  

Saturday, February 4, 2017

Working on small flaw in disk tool, also repairing an old vacuum tube oscilloscope

Been distracted by a number of things for the last few weeks, but time to get back to work and back to posting.

ALTO DISK TOOL

In a previous testing session with the Alto, I had brought the disk tool to attempt to archive several cartridges plus write a 'games' image to an available cartridge. For reasons that are still not clear, the tester did not smoothly and rapidly move through the cylinders when attempting to read packs, nor was the written cartridge able to boot.

We also found power supply problems, with the supply dropping with apparent thermal outages jn spite of its low demand and low temps. During one of those dropouts, the first 12 sectors (one cylinder on one head) was overwritten with garbage, so that our main boot cartridge was unusable.

I brought the tool back to debug it in my lab, found that it seemed to work flawlessly here, smoothly seeking through the pack and reading with no errors. The power supply did not act up either. We decided to transport the entire setup, including the Diablo drive itself, for the next test session with the Alto in Marc's lab.

The tool operated smoothly on my drive in our session yesterday, but the Smalltalk cartridge I brought did not boot. We did some extensive diagnostic collections and determined that the first sector (cyl 0, head 0, sector 0) had been properly written with improper data.

That is, some gibberish had been formatted into proper header, label and data records in that sector, given proper checksums and thus read without error, but the resulting words in memory were random, not boot code.

I have to dig through the logic of my WriteEntireCartridge transaction, which I suspect is not setting up the memory address correctly to access the appropriate part of the RAM for this sector, but the logic to increment sector, head and cylinder clears things up for all the remaining sectors.

It also means that I should be able to write just the first sector with an individual WriteSector transaction, hopefully giving us usable Smalltalk and Games images. I have left the drive and other gear at Marc's lab, but should be able to stop by to verify my quick fix (rewrite just sector 0) sometime soon.

Ken Shirriff brought his ethernet tool for testing, as well. He was able to collect good information by using the file transfer protocol of the Alto to drive various packets out on the Ethernet port. He receives a substantial portion of the packet correctly and can now dig into the anomalies before the next session.

RESTORE DUMONT 304A SCOPE FOR DIGITAL GAME MUSEUM

A friend is loaning an old 1950s oscilloscope to the DGM for use at an upcoming game developers conference (GDC) where they will recreate a very early video game, Tennis for Two, which displays on a scope such as this.

It had a block capacitor, two faulty tubes, and noisy controls, at least as far as I have taken it so far. The bad parts are replaced and it is powered up, but the controls have not yet been cleaned. I need to get this working sufficiently with an X-Y drive to display the game, so more work is needed.

Thursday, January 19, 2017

Setting up emulator role testbed and building out test mechanisms

ALTO DISK TOOL

I am using a short breakout board from Digilent to give me access to all forty of the IO pins that exist on the FX2 connector of the fpga. I use these 40 pins to drive outputs and receive inputs from the Alto (or the Diablo for driver mode), with the custom PCBs I made used to convert voltages between 3.3 and 5V, provides terminator and pull-up resistances, and drive outputs with over 100ma apiece.

Short breakouit board

FPGA board

I don't need 5V nor the high current support for my testing, thus the short board allows me to wire up the input and output signals to the other IO pins of the FPGA so that I can drive my logic within the same board.

The PMOD connectors support 28 such signals (plus 4 that are shared with LEDs). Since I only use 15 input and 12 output signals for the emulator, the 28 PMOD signals are sufficient to driver/check all the signals.

I spent the day assigning the PMOD pins for each of the active input and output pins on the FX2, but didn't wire it up because I will be bringing the FPGA board to the Alto session tomorrow to do the archiving and other work. However, with the assignments known, wiring will be quick and I can set up all the test mechanisms that will drive the testing.

Tomorrow we will use the disk tool to archive all the cartridges on hand, then write over the previously erased cartridge to give us the 'games' archive image with a plethora of games that were used on Altos. 

Wednesday, January 18, 2017

Building out testbed to work on emulator role of Alto disk tool

ALTO DISK TOOL

I worked out a method to inject the proper signals to test out both reading and seeking operations of the emulator role, using loopback from diagnostic output signal ports back to the relevant input pins. Although it was my day to join the 1401 Restoration team at CHM, in the late afternoon I coded up the mechanisms to produce the signals that an Alto would.

When slide switch 2 is turned on, with the emulator board attached, the emulator testbed will loop back SelectUnit1In and ReadGateIn which will cause SectorMarkOut, SectorNumberOut, FileReadyOut and Ready2ReadWriteSeek to be generated if a virtual cartridge is mounted on the emulator.

If I push button2 while a virtual cartridge is mounted and switch 2 is on, it will trigger a sequence of loopback signals to drive a seek. That is, the loopback will deliver TrackNumberIn and StrobeIn. If the emulator responds correctly, I should see AddressAckIn and Ready2ReadWriteSeekIn respond, with the new cylinder value I injected in TrackNumberIn appearing on the seven segment displays.

Independently, I will loop back HeadIn based on switch (1) just to verify that the Head value in the seven segment displays changes appropriately. I don't have an easy way to test writing to the emulated disk, especially to update some but not all records of a sector.


Tuesday, January 17, 2017

All drive boards and cables working correctly, buffed up documentation

ALTO DISK TOOL

Board 2 with the new Diablo cable was not working properly, not reacting to when I turned on the SelectUnit1 signal via the slide switch. That signal is driven by one chip on my driver board which began to work when I pressed down on the leads. This tells me there is a bad solder joint there which I need to correct. When it worked, the file was extracted flawlessly.

After closely examining both boards 2 and 3 under the microscope and redoing any connection that was not clearly perfect, I retested the two with my new cable. Board 3 still does not select the disk with SelectUnit1 and let the FileReady signal activate, but board 2 now works perfectly. The extracted file matches 100%

Back to the microscope and the continuity tester for board 3 - this one is annoying me. The problem has to be in the lines for SelectUnit1 or the incoming FileReady signal, so it won't take too long to check it out (again).

Well, I had checked that the lines had continuity from input and output connectors and that the solder connections on the eight pins of the chip looked good, but I obviously didn't look to closely at the chip itself. It was soldered on upside down (not rotated 180 degrees but with the face downward on the PCB). Doh.
Chip mounted with bottom face upwards
It was a quick matter to remove the chip with a hot air rework tool, clean up the pads and solder on a new chip, this time oriented correctly. With that done, I took it over to the testbed and attempted to use it to read the cartridge image again.

This time it worked perfectly, extracting the entire cartridge and that image compared word for word with the known contents. Now I have three good boards and two good cables. I will be delivering a set to Al Kossow for use in archiving all the Alto cartridges he has.

I spent a bit of time updating the documentation to deliver with the tool. It should be usable immediately but I will go over its use one time when I deliver it.

The remaining time on Tuesday I put into planning for testing of the emulator role functionality for the tool. First come the schemes for how to drive the tool without a real Alto computer, then the mechanisms to implement the schemes, and finally the instrumentation needed to debug the tool as it attempts the various actions driven by the schemes.