Monday, June 27, 2022

Fix it 'til it's broke - Part Deux

I decided that I was going to look at my collection of three floppy drives that have been sat in a box for a long while. They generally work but as no-one uses floppy drives any more I thought I'd explore the art of 'calibrating' a floppy drive, safe in the knowledge that it wouldn't matter too much if I borked one of them doing so. But this is not the subject of this post (next time).

So, break out the spare A500+ motherboard and get that floppy drive plugged in. Annndd... green screen. To be fair, Agnus' socket was busted so that was the first job to sort out. I didn't have any more PLCC sockets so had to order some for a few quid from everyone's favourite, eBay. I won't go into too much detail about the socket replacement other than to say the old one had gone brittle anyway and broke off quite easily.

It's broke.

With a new socket installed I put Agnus back in and tried again. No change so I decided to try and improve the contact of the pins on the chip by gently manipulating the bottom of the legs to push them out slightly. This would, in theory, increase the pressure of the pins into the socket. But, tragedy struck. As I gently pushed pin 81 I noticed it moved far too easily. And then, it fell off.

Oh. 

Arghhhh!!

Pin 81 is HSYNC_ and, as the name suggests, is somewhat important for making sure that Agnus can provide the relevant data at the right time to give a coherent display. 

So, this is it. Agnus is toast. And these particular Agni are the 8375 version, used in the A500+. They are getting more difficult to get at sensible prices (a couple of years ago I bought a complete, non-working A500+ motherboard with chips for a tenner - now just the 8375 Agnus will set you back over £100, if you can find one). 

After posting my woes on twitter, several people suggested using a Dremel (other rotary tools are available) to remove the outer casing above the broken pin and see if a replacement leg could be soldered to whatever was left of the original pin. Given that the chip was broken, I had nothing to lose. A helpful YouTube video from _C64 Customs_ also gave some useful info on what to do - although it isn't specifically about this type of chip. So, I threw caution to the wind. If it didn't work I'd still just have a broken Agnus.

Break out the generic rotary tool from the defunct UK high street electronics supplier. I used the narrowest, pointy milling tool in the box and carefully pinned down Agnus with some insulating tape. 

Grinding away the casing took only a few minutes but I really took my time, allowing the tool to touch the chip very gently and then checking how much material had been removed. Eventually I had managed to expose the part of the original leg in the casing. I carefully cleaned it with IPA and a cotton bud. It was the most terrifying thing I've ever done to a vintage computer chip.

Prior to attempting to solder anything to the exposed leg, I tinned it with a little solder. I still had the original part of the leg that had fallen off so I decided to try and re-use it. It was a bit tricky to get it to stay in place so I used a piece of insulating tape to hold it. This worked pretty well and allowed a good solid blob of solder to flow between the leg and the chip resulting in what looked like to be a good solid repair.

Hole drilled, leg held in place...

Close up of the horror.


Repair complete. Phew!

Close up - a clean is required

Will it work?

There was a big hole in the chip now, even though the leg was repaired. I did not want to leave it like this so I took some epoxy and filled in the hole. It ended up a slightly bigger 'blob' than I had hoped but I was careful to make sure that the epoxy did not interfere with the socket. These sockets are tight.

Agnus pimple

Don't squeeze it! It'll spread!

Epoxy cured - ready for testing

Incidentally, it's worth noting that Fat Agnus (the original version was just 'Agnus') was the absolute largest chip that CBM/MOS could manufacture in the late 1980s. It took the original DIP Agnus and combined various additional bits and pieces - it's all about that cost reduction - including, in further updates, the ability to address chip memory up to 1Mb i.e. memory that can be directly accessed by the custom chips. Hence, Fat Agnus. The 8375 model here is the last ECS version and it can address 2Mb of memory and so is unofficially known as 'Fatter Agnus' or 'Obese Agnus'. 

Now I have a slightly lumpy looking Agnus but I'm actually quite pleased with it. The repair seems pretty sturdy and, other than the pimple, looks almost new. So, to test. Well, first, I put it into the faulty motherboard and the behaviour of that board didn't change. This was a good sign as I would have expected either an unstable image or a green screen if I'd damaged other parts of Agnus. But I have been having trouble fixing that board - another future post - so I threw caution to the wind (again) and carefully removed it from the faulty board and put it into my 'daily driver' A500+ which has the most excellent A500++ re-made board, in purple. 

Agnus' final resting place.

And...

The most excellent FrogFind by Action Retro


AGNUS IS ALIVE! Yes! And it will stay in there as I really don't want to tempt fate by trying to remove it again from a really, really tight socket.

Phew!

Saturday, May 14, 2022

Pin. Pin. Pin. Pin.

Pinouts. Lots of pinouts. Or at least I thought I should properly document the pinouts of the UD-80. This will be the last post on this for a little while as I still have lots of other stuff to look at, including a TV with a faulty SCART input...

First up, SCART.

RGB Cable - 6-pin DIN to SCART

The socket is a 6 pin DIN (240 degrees) socket arranged in the following order:


UD80   Pin            Pin  SCART

GND    1: ---------- : 18  GND

CSYNC  2: ---------- : 20  SYNC (via 470R resistor & 10uf cap)

RED    3: ---------- : 15  RED

GREEN  4: ---------- : 11  GREEN

BLUE   5: ---------- : 7   BLUE

+5V    6: ---------- : 16  RGB BLANKING


Diagram below:

What a lovely diagram.

One key thing here is that I'm not convinced I've got the RGB in the right order. But I would point out that the PX-8 and UD-80 are monochrome, so what difference does it make? :) At least I'm fairly sure that GREEN is in the right place at least...

The CSYNC signal was measuring 5v which is TTL level and a bit over the top for the SCART standard. Sticking the resistor in there, when it's connected to the 75 ohm impedance TV connector, means the output is a much more standard 520mV (thanks to the video by Voultar where he describes the issues with old equipment - see here for that video). The capacitor de-couples any DC bias in the signal.

Here's one I made earlier:

GAAAH!!

And here's one where I put the SCART plug screw on before I re-soldered the plug back on:


Remembered this time...

And, of course, I must not forget the patented DIN plug 'Maximum Assistance Super Hold' (MASH) device i.e. a potatoe:

Hmmmm. Potatoes....

One of the best things to hold the DIN plug so the pins stay in place and don't fall out while you're trying to solder the plug. An excellent tip there. As you can see I did the 8 pin and the 6 pin DIN plugs for the UD-80 with this particular MASH.

Does it work? Of course.

WordStar. You youngsters don't know you're
born. 

A whole 2k free on the A: drive!

Rather interestingly, there is some slight distortion towards the bottom of the screen that looked similar to the composite interference. I suspect this may be related to the UD-80 rather than any issue with my cable but I might investigate at some point.

Next up, the UD-80 connection itself.


UD-80 Serial Cable - 8-pin DIN to 8-pin Mini-DIN


The socket on the front of the UD-80 is an 8-pin 270 degree DIN socket. It can accommodate a 5-pin 180 degree plug since only pins 1 to 5 are actually used. The pins are arranged as follows:

    UD80  Pin            Pin  PX-8 RS232

  GROUND  2: ---------- : 1   GROUND

 DATA IN  1: ---------- : 2   DATA OUT

DATA OUT  3: ---------- : 3   DATA IN

     CTS  5: ---------- : 4   DTR

     DTR  4: ---------- : 5   CTS

     N/C  6:            : 6   N/C

     N/C  7:            : 7   N/C

     N/C  8:            : 8   N/C




The PX-8 can, apparently, use either the RS232 or Serial ports with the UD-80. Everything I have done so far has been with the RS232 port.


UD-80 Operation


The UD-80 replicates and extends the display of the PX-8 from an 8 line LCD display to an 80 or 40 column display with 24 lines via a composite or RGB output (see above for info on RGB). The UD-80 comes with a built-in extension for WordStar to allow the use of the additional screen real-estate. Other applications need to be specifically modified to make use of the additional screen space so they are likely to be few and far between.

This brief 'start-up' guide is based on an PX-8 with no batteries installed and, as such, a lot of the steps taken here would, in the day, only have been required once, particularly if the RAMDisk was fitted (I have one but it's broken. :( ).

Step 1 - Plug in the UD-80 to PX-8 interface cable.
Step 2 - Plug in either composite or RGB monitor according to taste.
Step 3 - Switch on the PX-8 which should default to the start menu.
Step 4 - Switch on the UD-80 which should display a UD-80 banner at the top of the monitor screen.



Step 5 - Run CONFIG.COM and configure 3 blocks of User BIOS space (run the program, select 'B' then press '3' and enter, then ESC twice to get back to the menu).



Step 6 - From the menu or from the CP/M prompt run FILINK.COM
Step 7 - Press 'R' to receive files and then 'Enter' when prompted for a filename.
Step 8 - Press the button on the front of the UD-80. A 'Transmitting...' message should appear and FILINK should indicate it is receiving UD80-DRV.COM and the WSX.COM.




Step 9 - When the downloads in FILINK have completed quit back to the menu and run the UD80-DRV.COM file that will be shown in the A: drive.



Step 10 - Switch the UD-80 off then on again to reset to 'normal' mode. A message should appear indicating that the driver is resident and can be cleared by a 'Reset'.




At this point anything that is typed on the PX-8 will appear on the monitor connected to the UD-80. In the event that the PX-8 manages to get back to it's default menu just press 'Esc' to return to the CP/M prompt and the UD-80 will spring back into life. Note that some 'garbage' appears at the top of the screen when the PX-8 returns to the menu with the UD-80 driver active.

Note garbage at the top from the PX-8 menu


During the use of this device I did have some situations where the UD-80 and PX-8 got out of step. A quick switch off and back on of the UD-80 normally resolved things (the more things change, the more they stay the same...).

So, there you go. A slightly dull but informative post for anyone with an Oval Automation UD-80 serial display adaptor for the Epson PX-8. I promise I'll stop going on about it now.


Friday, May 06, 2022

Read. The. Freakin'. Manual.

Those of you who know me will know that I am a bit of an idiot. Not as much as the young man who just rode past my house on a bike, on the wrong side of the road, busy looking at his phone. But a bit of an idiot nonetheless.

The PX-8 came with a massive amount of stuff and the donor had mentioned the documentation that he provided with it included the technical manual etc. I didn't remember seeing it but while I was tidying up the workspace (which does happen every now and again), I came across a non-descript folder that had an Epson printer manual tucked into the front cover. It was the documentation. Original documentation. An original Technical Manual. With A3 schematics and everything. Nice.

But most importantly, it contained this:


Is this the info I need??


YES! The Holy Grail!
UD80 I/O Port Pinout!

So, after looking at this innocent piece of paper I realised that my efforts to get the UD80 to work were never going to work, because I was connecting up the wrong wires (I was trying to use DTR and DSR). As mentioned above, I am an idiot.

There are five wires, and they are actually:

  • Ground
  • TxD
  • RxD
  • DTR (Handshake in)
  • CTS (Handshake out)

More importantly, the pin numbers are specified at the UD80 side! 

A quick re-configure of the cables and....


Correctly wired up.


....no difference. I did see that if I try to send the B:WS.COM file to the UD80 I actually got 'R's instead of garbage. This is good though, as it is the FILINK program indicating it's waiting to send a file. Obviously, we're waiting to receive a file so the UD80 isn't listening.

Then I remembered the push button on the front. I pushed it. No difference. But was the switch actually working? To cut a long story short, it wasn't really. It had a resistance of over 50 ohms when the switch was pressed, which is probably not really what a push button switch is supposed to do. To get around this I soldered a couple of wires to the bottom of the original switch, fed them through the hole in the front and attached an Acorn Electron keyswitch (not a pristine one I should add).


A bit Heath-Robinson.
Electron keyswitch at the end of the
red and black wires.


After booting up the PX-8, connecting all the cables, switching the UD80 on and firing up FILINK I got... Nothing. 

Then I remembered and pushed the button. *DOH*  And, would you believe it, this is what I got:


WHAT??

It only bloody works!

I was so surprised it worked I hadn't made a note of exactly what I'd done. In my haste I also managed to download the WSX.COM file and copy it over the UD80-DRV.COM file. So I had to go back to the beginning and try again. 

To say this is finicky is putting it mildly. Everything has to be switched on in the right order, at the right time. I can successfully download the UD80 driver to A: but it tries to overwrite the UD80 driver with the WSX.COM file. If I stop it and try to give it another name I get 'ERROR' on the UD80 although it's probably because it's just sending it and doesn't expect me to get in the way trying to find the 'X' key... (Of course, it turns out that I don't need to enter a filename and, if I don't, then the files are received as they are named from the UD80 ROM. Doh.)


ERROR - Also out of focus...


Once the UD80 driver is run, there doesn't seem to be anything to do and the output of the screen is sent to the UD80. It's confusing at first because the PX-8 has a 'menu' system it runs by default and the UD80 sees this as graphics characters. Pressing 'Esc' switches out of that and brings the display on the UD80 back to a system prompt.

And from there, it looks just like any other early 80's PC like computer running CP/M. 


The PX-8 'CONFIG' program

WordStar but without the extension installed..

Basic operation - note garbage at the top from the 'Menu'
system on the PX-8

Running a DIR and STAT command from the command 
prompt. Looks almost like any early PC like computer.

Of course the first thing I did after recovering from the shock, was try the games. They don't work. Boo! The UD80 automatically switches to 40 column mode and instead of graphics characters there's a random selection of letters and block graphics. I didn't think that they would work properly but it was worth a go. :)

Things left to do:

1) Document exactly what I need to do to get this running properly. The big issue here is that there are no batteries in any of this kit, having been removed for preservation reasons. As a result a lot of what's needed to configure this setup would only have needed to have been done once back in the day, as the resulting config would be retained in the RAM/RAMDisk. Everytime I turn the PX-8 on it's like I'm turning on a brand new unit with no non-volatile storage. If I leave the mains charger plugged in then it keeps the settings and the driver file stays in memory but as soon as it is unplugged they are gone. But this is a minor inconvenience to ensure that this system does not die from battery vomit...

2) Get some proper photos of everything and organise the ROM dumps. There's a superb resource on the PX-8 here and the curator of that site might find this sort of stuff useful.

3) Try the output in a different telly*. That monitor screen and driver really does NOT seem like that composite signal.

4) Build an RGB cable. I wonder if it will work with SCART..?

So, finally, a success. And one that I'm really pleased with. Without the documentation from the previous owner this would probably have been sat in a box for another twenty years having never been used again. As the title says, you should always Read The Freakin' Manual!


*BREAKING NEWS

I tried the output in a different TV and the output is still not great, so it's just the way it comes out of the UD80. So, time to try an RGB cable...

Hmmm.


Sunday, April 24, 2022

Lines! So many lines!

The PX-8 display is, you might say, not really up to modern standards. It's an eight line LCD with no backlight and only a contrast control to try and make it easier to read. Even back in the day, the display was criticised as being difficult to read, partly due to the dim display but also because the text does not have 'true descenders' i.e. the letters like 'y' are contained on the one line and don't dip into the line below. Apparently, this makes things difficult to read. The reviewer clearly had never used a ZX Spectrum... But I digress..

Not exactly 4K..


To get around this a company called Oval Automation came up with a clever box called the UD80 to extend the PX-8 display to a monitor that allowed for 40 or 80 columns (the LCD is actually 80 columns anyway) but with 24 lines of text. Ooooh! A whole 24 lines of text! Luxury.


UD80 on the bottom
DS8 on the top


The unit itself is in a very pleasingly 70's brown with a military grade metal case held together by four screws. There are three connectors on the front as well as a recessed button (the button may once have had a plastic insert that has since been lost but I don't know for sure). These are:

Serial I/O - 8-pin DIN connection to the back of the PX-8
RGB - 5-pin DIN RGB connector
Aerial type socket - this is actually composite (more on that later) and not RF

Opening the thing up shows a fairly chunky transformer which makes a period correct 'buzz' when switched on. It also means I need to be careful about touching anything that could make me very sad while it is on.

What's in the box??


Inside there is a Thompson EF9345 'semi-graphic microprocessor' that can generate 8 colours with 128 alphanumeric characters along with 128 'graphic' characters. By todays standards it's vey primitive, but for 1985(ish) it was a definite improvement over the PX-8 LCD display. Also inside are an EF6803 8-bit microprocessor, derived from the 6800 (the Dragon 32 used the 6809 of similar stock).

The question is, does it still work? After a couple of quick electrical safety checks I plugged it in and turned it on. No bangs or flashes. No magic smoke. So far, so good. Now to see if anything was actually coming out of it. So I took my oscilloscope and probed the 'Video' output. 


Is this a video signal I see before me?


With the scope showing what looked like a video output I went looking for a cable and found one in the bin (really) with the correct aerial plug on one end and phono on the other and plugged it into the back of my tiny Sony TV.

Yes! A video output! A very SMALL video 
output!

Success! But its a bit small. As it's composite I tried plugging it into my recovered laptop LCD panel. The composite on the control board isn't the best but it is much bigger than the Sony TV and it's clear to see that the unit is up and working.

That's bigger. 


Then I hit a snag. In the huge selection of cables I'd been given with the PX-8 I didn't have an 8-pin DIN to 8-pin mini-DIN that I would need to connect it to the UD80. 

After a lot of detective work i.e. I found a 5-pin DIN to 8-pin mini-DIN that is used to connect to DS8 to the PX-8 (did I mention the DS8 yet?), I think I have managed to establish that out of the 8 pins on the UD80 DIN connector, only five are actually needed.  These are:

  • Gnd
  • RxD
  • TxD
  • DTS
  • DSR

I did think that I could make a 'straight through' cable with all the parts I have, but a quick investigation of the port on the front of the UD80 revealed that pin 2 is GND. This is NOT the same as pin 2 on the PX-8 which is actually TxD. Other 5-pin DIN applications seem to fairly consistently use pin 2 as ground so the UD80 is possibly still wired up a standard way. I just don't know which of the other pins are which. Dangnabit.

But there's another issue. After an initial panic that I did not have the relevant driver file available for the PX-8 (which is called UD80-DRV.COM) I realised, after a couple of people prodded me, that this file is already in the ROM on the UD80 and using the FILINK app on the PX-8 I should be able to get it to download. I even checked that it is by dumping the ROM and having a look!

ROM Dump

Sadly, even though I can run FILINK I have no idea what I need to do to prompt the UD80 to download the driver. I have tried probably a few hundred combinations of the cables into the UD80 with limited success (although it does display some garbage with some combinations) but without the actual instructions on what to do in FILINK it's all a bit moot. Sad face.


Garbage - but it's displaying something!


UD80 end with 8-pin DIN to breakout


Breakout with one of hundreds of
combinations installed


PX-8 end


But, on the plus side, I have something that is so incredibly rare that if you search for it on Google, a lot of the top results are my posts on Twitter! And it does look like it would work, if I could find the step by step instructions..

One to re-visit.

More photos for anyone Googling:

DIP switches - changes things like 40-col or
80-col mode, background colour etc

Connections through DS8 switching box

EEPROM, video controller and 6803 CPU

Bottom of UD80 board

8-pin DIN lower left of board

Video RAM upper right of board

RGB Connector centre bottom of board

DS8 Switchbox with a bit of a design flaw!
Case screw screws into the cap!

Bottom of DS8 board. Pure art.

Screwed cap replaced.

Two units together.