Northstar Horizon Repair

In mid 2015 I was lucky enough to acquire a Northstar Horizon computer from a fellow collector who was disposing of his equipment.  

After seeing my father work with MDL (MicroProcessor Developments Limited of Pah Road, Auckland, New Zealand) S-100 bus machines at the Auckland University Medical School back in the early 1980's, I had always wanted to restore an S-100 bus machine.  

It may also have been something to do with this guy who appeared frequently in Byte Magazine in 1979 - having gear like that to write software sounded so cool back in 1979!

Shugart MiniFloppy Advertisement from Byte July 1979 - featuring a Northstar Horizon

I believe that this Northstar Horizon was used by the New Zealand Northstar agents "Anderson Digital Equipment" as a support/test machine. It is in stock Horizon configuration with a ZPB Z80 CPU board, HRAM-64 Dynamic Memory board and MDS Floppy Disk Controller board.  It came with a large pile of manuals with "Anderson Digital Equipment" labels.  Only a single floppy disk drive is installed in the case and a small panel with a push button and switch is installed where the second drive would normally be.  

The Northstar Horizon with the ZPB Z80 CPU board in the extender....

Tracing the wiring showed that the push button was an extension of the back panel reset switch.  For a test machine that would make sense being a lot easier to access.

The switch is used to enable or disable the PROM option installed on the Z80 CPU board.  The installed PROM was a 2708 containing the Northstar HDT "Horizon Debug Tool" monitor program.  With the switch in "PROM Enabled" position the machine would boot into the HDT monitor and in "PROM Disabled" it would attempt to execute boot code at 0xE800.  In a Northstar this is commonly the boot code of the MDS Floppy Disk Controller. I know all this now... but it took some time to get there.  

ZPB Z80 CPU, HRAM-64 and MDS Floppy Controller Boards in the Northstar Horizon

The first test step was to confirm the main power supply worked.  I had no idea if this was in 110V or 240V configuration or the state of the large capacitors.  Reforming the capacitors and then slow powerup with a variac confirmed that the power supply worked and the transformer was wired for 240V.  That was the easy part.....

Powering up the Horizon with only the Z80 CPU board installed (the documentation said that the HDT ROM did not require RAM on the machine.) and a terminal connected to the left serial port (commonly the console) I expected some activity on the terminal but got nothing.  

The first check was to use the logic probe to check for activity on the Z80 CPU.  This showed activity on /MREQ and /IORQ so the Z80 wasn't dead.  Time to check the serial ports....

The Horizon serial ports are driven by two Intel 8251 UART on the motherboard.  Checking the /CS pin (pin 11) on the 8251's showed activity which I assumed would be the HDT polling the UART's for received characters.  The DTR lines (pin 24) were pulled low which is required for the 8251 to transmit data (subject to the loaded configuration).  The clock inputs into the 8251 were correct for 9600 baud.  Everything looked right.... but no output to the terminal.

At this point the Z80 seemed to be running but that was all I really knew.  There were plenty of questions:

  • Was the HDT ROM OK?
  • Did HDT really work with no RAM in the machine?
  • Was there a problem with the Z80 CPU board?  
  • Was there a problem with the Motherboard?  
  • Had I not understood the Northstar manual and got the serial configuration wrong? 

Faced with this many questions I went down the track of removing unknows.  The first was the HDT ROM.  

Having never seen HDT before I didn't really know what to expect.  Executing known code seemed a good way to start the debugging so I wrote a small text program in Z80 assembler that would send 'A' continually to the left serial port and 'B' continually to the right serial port.

Writing the code wasn't difficult but getting it onto the Z80 board was a roadblock.  The PROM option on the ZPB Z80 board uses a 2708 EPROM.  The 2708 is an early generation part and requires +5V, -5V and +12V (higher for programming).  My cheap chinese programmer (a Genius G540) won't even read a 2708 let alone program one.

I still want to solve the reading problem to get a dump of the HDT code (I can't find this archived anywhere on the net) but worked around the problem by building an adaptor for a 28C16 EEPROM. 

28C16 EEPROM in 2708 Adaptor

With the 28C16 installed I could see activity on the /CS pin (pin 11) of both 8251 which confirmed my code was reading or writing to the correct IO port and that some of the address decoding on the motherboard was working but still no output from the TxD pin (pin 19) on either.

The test code configured the 8251 to require DTR low to transmit data, checked that DTR (pin 11) was low which it was.  

Further probing of the 8251 pins showed unexpected activity on the RESET pin (pin 21) of both 8251 which sent me back to the schematics for further research.

The Northstar motherboard will reset the 8251 on first power up using the S100 Bus /POC line (bus pin 99) but can also be reset in software by writing 0x00 to Z80 IO Port 6.

I knew my software wasn't writing to IO Port 6 so I spent some time studying the motherboard schematic and checking signals with the logic probe.

  • The 8251 reset line is driven from the output a 74LS132 NAND gate at board position 8D.
  • The pin 8 output of the 74LS132 showed continuous activity.
  • The S100 /POC input to pin 9 of the 74LS132 was stable (as expected).
  • The "software controlled reset" to pin 10 of the 74LS132 showed continuous activity (not expected).
  • The "software controlled reset" is decoded by a 74LS138 at board position 9B and output on pin 15 connecting to pin 10 on the 74LS132.
  • The 74LS138 should drive pin 15 low only when the byte written to Z80 IO Port 6 is in the block 0x00 - 0x0F (which my test code was not doing).


74LS138 -> 74LS132 -> UART RESET

At this point I was suspecting the 74LS138 but wanted to be sure before I went to the effort of removing the motherboard from the case and heading off to the local Jaycar store to pick up a replacement part.

I connected the Saleae Logic analyser (a great tool for retrocomputing repairs) to the board and triggered on the pin 15 output going low.  

The capture shown below confirmed that the 74LS138 seemed to be at fault.  

The value on the data bus was in the range 0x00 - 0x0F the Y0 output on pin 15 should not be going low.

Note:  The rows use Northstar schematic notiation so U4 = 74LS138 A2, U5 = 74LS138 A1 and U6 = 74LS138 A0, E6 = 74LS138 G1, E5 = 74LS138 G2B and E6 = 74LS138 G2A.

Saleae Logic Analysis of 74LS138 at board position 9B

Replacing the 74LS138 stopped the activity on the 8251 RESET pins and solved the serial port problem.  After replacement and with the test code running, each serial port would send the stream of 'A' and 'B' characters.

Reinstalling the HDT ROM confirmed that also worked with the power on prompt displayed on the console.

It is quite impressive that the machine required only a single part changed.  There is a label on the motherboard suggesting the last service was in 1981.

Next step..... testing the Northstar HRAM-64 memory board.


Replacement 74LS138 in board position 9B



IOT for the Small Block - Part 1

There has been much written about IOT (Internet of Things..... devices that we wouldn't initially think of as computers connected to the internet.... smart thermometers, refrigerators, coffee machines, etc) and while there are some interesting, fun and possibly limited utility applications of IOT for the average apartment dweller, for those of us that live on lifestyle blocks IOT devices really can help.

This is the first in a series of posts describing how I have used an IOT device (a little computer really) that connects to my block wide WIFI network and does really useful things.

The basis for all my IOT devices to date is the BlockTECH WIFI Controller board.  


Assembled BlockTECH WIFI Controller v2

On my block I use the BlockTECH WIFI Controller for the following:

  • Monitoring inputs and triggering outputs when the input state changes (a smart burgler alarm - great for the workshop).
  • Automatic monitoring on/off at configured times (no need to remember when to enable the alarm).
  • Manual output control from my smart phone (switching off the electric fence before I walk out of the house so the horses, always happy to see me and their breakfast don't zap themselves).
  • Monitor bore and pump running state and chart the results (find out which neighbor has the leak that causes the shared bore to run 24 hours a day).

The BlockTECH WIFI Controller is modular and can be assembled with only the components required for the task at hand.  

  • If only monitoring then exclude the relays and drivers.
  • If you only want to control the electric fence or the front gates from your smart phone then exclude the input circuits and install a single relay.  
  • If you want to monitoring the bore and pump then exclude the relays and use a single input.

I will write a seperate posts for each showing how the board is assembled and the software configured.


BlockTECH WIFI Controller v3 Schematic



MS11-JP MOS Memory SN#1958348/78

The MS11-JP (M7847-DJ) is a MOS memory board for Unibus PDP11's. In the PDP11/04 I am restoring there are two fully populated boards, each with 32K words of dynamic memory.... and neither board works when accessed from the front panel.

The first board I worked on is SN#1958348/78.

Using the front panel the board did respond to read and write requests to RAM in the assigned memory block but reading data did not show the value that had just been written.  This behaviour was consistent at any address I tested.

The voltages (+5v, -5v and +12v) were correct on the dynamic RAM chips so I used a logic probe to check for activity on the dynamic RAM chips with both no front panel activity and when reading and writing to memory.  

When not attempting to access the memory using the front panel there was activity on CAS (Column Address Strobe) and RAS (Row Address Strobe) which suggested that the refresh circuit was doing something and may even be working.

Attempting to write to memory from the front panel showed activity on WR (Write) which was also expected.

What I did not see was activity on CS (Chip Select).  If CS does not go low then the chips are not selected which means the write does nothing and the read shows random data from the Unibus.


Working backwards from CS through the schematic shows that CS is generated by a 7440 NAND Buffer (E114).  I could see activity on the input (pins 9,10,12 and 13) but no activity on output (pin 8).

Replacing E114 with a "new" 7440 sourced from eBay (with what appears to be a 1973 date code) fixed the problem.  It is now possible to write data to RAM and read it back.  I haven't done a full RAM test yet and can't do this until I get the processor board operational.  

These notes are written with the benefit of having solved the problem. The MS11 memory board is a lot more complex than I am used to in microcomputers.  It has it's own refresh circuit independant of the processor that identifies and gives priority to processor requests.  There are also circuits for address mapping (configurable) and Unibus bus interfacing so a lot of time was spent trying to understand how the board worked.  The EK-MS11E-OP-001_Oct76 and MP00019_1104_EngrDrws_Feb78 documents were invaluable in understanding the board and eventually fixing it.

The other MS11 does not exhibit the same symptoms.  Attempts to access the board give a Bus Error.  Initial indications are that the issue is in the refresh generation circuit.  We will see.....



Kaypro 4/83 Floppy Disk Woes.....

I have written in earlier posts of my project to interface the FreHD hard disk emulator to my Kaypro 4/83.  

The standard Kaypro ROM does not include hard disk support so a third party ROM is required, the most common being KayPlus from MicroCode Consulting or the Advent TurboROM from Plu*Perfect Systems.  

The initial project work was done using KayPlus because there was no known source for the Advent TurboROM compatible with the Kaypro 4/83 (the version for the 4/84 was readily available but the two machines are sufficiently different that it can not be used).  The KayPlus ROM worked but there were a few odd behaviours running some CP/M applications that needed further investigation.

In May 2014 a Kaypro II was purchased from eBay by phorgen on the Vintage Computer Forum that included the rare '83 version of the Advent TurboROM and phogren was generous enough to share a copy of the ROM to help with this project.

Between June and September 2014 the Kaypro sat untouched while "real life" got in the way and I finally got back to it on October.

Working with FrankS (also of Vintage Computer Forum fame) we got the 4/83 + FreHD to boot using the Advent TurboROM (details will be included in a future post) but I had problems reading and writing floppy disks.  

The initial symptoms where that Advent CP/M would not recognize standard Kaypro format floppy disks.  Nor would it read a disk that it just formatted.  

My initial thoughts were that the Advent ROM was not compatible in some way with the KayPro 4/83 so I swapped back to the standard Kaypro ROM.  That wouldn't boot either.

Now suspecting the floppy drive I tried a number of different drives and none would read a disk.  

Finally after closely watching the drive while formatting a new disk I realized that the heads were not stepping even though the formatting program was counting up the tracks.

Given that track stepping is directly controlled by the Western Digital WD-1793 Floppy Disk controller, I replaced the Kaypro WD-1793 with a known good part from a TRS-80 Model 3

The known good WD-1793 worked fine in the Kaypro which was a big relief.  Not sure if it was old age or caused by my handling of the Kaypro PCB but at least now I knew what to replace.

On eBay I learned a few things about the WD-1793 (or FD-1793).

  • The WD-1793 (or FD-1793) is expensive.  
  • They are also frequently described as "collectible" or "super rare" which doesn't inspire confidence that a working part will be had for the money.  
  • The Soviets made a compatible part called a KR1818VG93.  This was even more expensive and collectible.  They may also be metric pin spacing so even if a working part was obtained it wouldn't fit well into a Kaypro socket.
  • Mitsubishi made a compatible part called a M5W1793 which were readily available as NOS parts from China at a much better price. 

The M5W1793 seller (no relationship.... just a satisfied customer) had good eBay feedback so I ordered 2 units hoping they would be genuine.

Two weeks later (very quick.... normally it takes 3-4 weeks from China to New Zealand) and the parts had arrived when installed in the Kaypro worked perfectly.  



The Model 3 can have it's FD-1793 back.



Page 6 of 30

Powered by Easytagcloud v2.1

Contact Andrew Quinn