Creating newlib for the HK68K

The existing 68K support in Newlib is laid out such that all boards using m68k cpu’s have their specific implementations in one directory under ‘libgloss’. The Makefile.in has specific build sections for each board/platform library. The platform specific library etc is linked by using the –T option on ‘ld’ to invoke a linker script. This script defines memory layout, .text, .data etc locations, size of memory and the libraries to link with to get platform specific functions.

Conveniently in this directory also reside all the syscall stubs, named io-xxx.c. These all return –1 when called but you get no link time errors. This means that I can start building an HK68K specific libgloss iteratively.

 

Links:

Resurrecting a Heurikon HK68K Multibus board

Way back, late 1980’s, I worked for AES Data. A Canadian company that was one of the early makers of word processing equipment. They had a cluster controller, the C20, and various Z80 based standalone devices. At one time they were also designing a Z8000 Multibus system to run Unix Sys V. CBC’s Venture made a program about about AES Data.

Ethernet was coming into popular use, and the C20 needed to add this capability. A team in Montreal was designing a 68000 board for the C20 to handle the interface. To get a jump start on software development, I was tasked with getting the protocol stack working on a Heurikon HK68K board along with an Ethernet controller.

Long story short, AES Data eventually went away. In the process of winding down the Toronto development lab in 1986, I bought 4-5 of the HK68K boards. At the time I had manuals, schematics and who knows what else. For a while at home I played with these, compiling Xinu on a Masscomp MC500 and loading it onto the HK68K via an Archive Scorpion streaming tape drive.

Fast forward to 2013 and here I am, trying to get one or more of these boards running. In the intervening years I had loaned/given away the manuals and the person was not responding to my attempts to get a copy. After some intensive searching on the WWW, I came across John Stewart who had posted a video of Heurikon’s production facility on YouTube. After running into dead-ends with the companies who serially took over the Heurikon support, I contacted him. He put an email out to the ex-Heurikon staff and several days later I received an email from Jeff Mattox, the designer of the board!

There was great amazement that one of these boards still existed, let alone 3 of them. Jeff very kindly sent me a manual, then schematics (with his notes on them) and lastly a manual for the Hbug monitor. I thought I had source code for this monitor but it seems someone else at AES Data decided to call their board monitor Hbug as well.

So, that is the story of how we got to the point of actually firing up one of the boards.

Cross slide DRO

One of the more irritating tasks while turning is measuring the rate of progress. You can remove metal, more difficult to add it back on!

I read on Start Model Engineering about using a digital tire depth gauge for this. For $8 (free shipping) one arrived in the post after a while.

A bit of machining and voila, a DRO. Still have to decide how to best mount it although I at the same time replaced the 8mm rods with longer ones. This should provide room for the DRO as well as allow me to mount a stop.

Lathe DRO

Lathe DRO

Various arbors and adapters

Because there aren’t too many options available for the Unimat DB/SL series, you often have to make your own or adapt things. Such is the case for slitting saws and boring heads.

I bought some .5 and 1mm thick 30mm diameter saws from CTC Tools. Excellent price and the look to be of good quality. I have some hex brass, this was drilled out to 11mm at one end and then tapped 12×1 for the spindle nose. Once on the spindle I turned part of it down to round, then cut a 13mm boss at the end. A piece of steel round was cut, counter bored to fit over the 13mm boss and then drilled to 13/64 to clear a 5×1 socket head cap screw. A test with one of the blades was a success. A bit of clean-up and finishing resulted in a nice looking unit.IMGP2698

To adapt my 30mm Soba boring head (bought from RDG Tools) I cut the end off the supplied MT1 adapter. This was again faced off, bored out to 11mm and then tapped 12×1. This was tough and you can see the vice marks as a result! I should have clamped this in the 3-jaw on the 10mm threads but instead I clamped it on the outer circumference. This resulted in excessive run-out. After some heavy work re-tapping the ole at an angle I got the unit to sit correctly on the spindle. Final run-out is minimal which is fine for a boring head.IMGP2666

 

Lastly I made a spindle adapter to mount a hand crank. Strange as it sounds, hand cranking the spindle makes for very controlled cutting, e.g. when tapping threads in spindle adapters.

IMGP2704

IMGP2705

Making spindle attachments

I need a boring head. I can buy one, I can make one. Being cheap, actually being selective on what I spend my $ on, I will make one. There are plenty of examples to base my design, some complex, some simple. The challenge is to build one without buying more tools such as dovetail cutters.

To get started, I ordered a 12×1 tap set (starting, regular and bottoming) from RDG Tools in UK. I had some scrap steel so off we went. Not sure what I will use the end result for but it proves to myself that I can make accurate gadgets.

The hole was bored out to 11mm using a boring tool and my Starrett hole gauge. The hole was counterbored to 12mm for 4mm or so to clear the unthreaded part of the spindle. The end was faced at the same time to ensure concentric seating on the lathe spindle. I then tapped the threads, using the hole in the tailstock to keep the tap inline with the hole. Tapping then moved to the vise in the building’s hobby room. I then trued and cleaned up the outer diameter after mounting the unit on the spindle. Now I know that I can safely buy the steel for the real thing!

IMGP2180 (1024x678) IMGP2182 (1024x678)
IMGP2183 (1024x678) IMGP2184 (1024x678)
IMGP2185 (1024x524)