31-JUL-2011 22:01 Posted by urbancamo

I realised from the outset when attempting to create a meaningful last post that I was going to be thwarted at every hurdle today. It was just going to be one of those days.

Firstly, I realised that I'd left all my HX-20 software relating to transfer of data to a PC back on my home server. Normally this wouldn't be a problem as I'd ssh in and sftp the code back. However, for some reason my record of open ports on my home router doesn't tie in with reality, so I was left without connection.

As is often the case when trying to do things quickly I found and then lost several of the resources I'd used to determine how to transfer software in the space of a few hours. Eventually I got bored of this and actually took the time to bookmark some of the web pages.

So, what have I achieved. I downloaded one of the two available word processors for the HX-20, Deskmaster II. In this case it was chosen purely as the easiest one to install, and attempted to transfer it to the HX-20. Back home I'd had some success transferring files, however for whatever reason I couldn't get it to work with the 13KB BASIC file. It took the best part of two hours to get the file onto the HX-20 successfully. This was using minicom on the ubuntu laptop using a USB serial adapter.

On the HX-20 I used the following command (the arguments for which are explained below):

LOAD "COM0:(28N2B)"
            |_____ 300 BAUD
             |______ 8 BIT
              |_______ NO PARITY
               |_________ 2 STOP BITS
                 |__________ HANDSHAKING/CONTROL

On Linux, load minicom, setup comms as /dev/ttyUSB0 
(or whichever comms port) then 300 baud, 8 bit, no parity, 2 stop bits.
Use the Ctrl-A S command to send an ASCII file.

I then had to modify RS/232 configuration in the BASIC program listing for the word processor so that printing to an external 'printer' happened at 300 baud and not 150 baud as specified (I suspect this is the speed of the built in printer). I could then capture the output using minicom on the linux laptop. This is what I managed:

Wow, what a convoluted route I've taken 
to get to the point where I can use a   
word-processor on the HX-20. The        
software I'm using is DM2 from Eclectic 
Systems 1983 and was downloaded to the  
HX-20 as a BASIC programme using minicom
on a linux laptop at 300 baud. It took  
me about 2 hours to get here. I also    
tried to use hxtape but kept getting    
errors. The software, being BASIC, is   
very slow and I'm deliberately having to
slow my typing otherwise I drop         
characters. It doesn't do word wrap,    
it essentially emulates a typewriter.   
I'm not sure how much longer I can stand
it - 2 hours to get here and 10 mins of 
typing and I've had enough.             
There is a ROM based word processor for 
the HX-20 called SIDHA Writer which     
involves installing the ROM chip in a   
spare slot at the bottom of the machine 
but I couldn't locate one.              

Impressive, eh?

The other way to get software onto the HX-20 is via the external casette interface, and there is a PHP based packaged called hxtape which provides programs to output the 'tape-screech' necessary. This didn't work today either, I had it working previously, but it may just be down to the substantial size of the BASIC program causing it to fall over half way through. A valiant goal of this project is to provide a central resource for HX-20 software

I have to conclude that as a word-processor the HX-20 sucks. Even with a machine-code based word processing program the screen is simply too small to do meaningful work. I also have to conclude that programming in BASIC is probably similarly masochistic. Hell, the Cambridge Z88's screen felt small till I fired it up the other day in comparison and basked in that 80-column glory. The Z88 is also substantially smaller than the HX-20 (especially with the expansion pack) - clearly Sir Clive certainly knew what would work for a word-processor (except maybe his obsession with rubber keyboards).

So, no HANGMAN. To be honest when I thought about it I came to the conclusion that at 20x4 characters the interface would have to be seriously clunky. ADDENDUM: I've just noticed that there is a version of HANGMAN for the HX-20 already. I will give this a go in the next couple of days, just for a laugh...

What I have achieved is a lot of head banging with small measures of success this retrochallenge. I haven't had the time to really get into anything in depth. The AlphaServer 1000A soaked up a lot of my initial nights swapping bad RAM modules and fathoming that SCSI is nowhere as near as simple as I thought. The end result of that nightmare period was, however, a working machine on which I now have an OpenVMS 8.4 installation with fully shadowed system, user and applications disks, plenty of spare drives and a well configured boot sequence, several queues, printer support, etc, etc...

I discovered FAFNER, a large VAX 7000/820 running OpenVMS 7.2. The machine is available 24/7 and in some ways is more useful to me than the Deathrow Cluster which is the obvious other OpenVMS online choice.

With regard to the HX-20, which I bought for the challenge, I replaced the defunct NiCAD battery pack with new cells, which is holding charge well. I replaced the printer ribbon and paper and got the cassette drive working (for a while at least!)

I have managed to get software and data on and off the HX-20 and got a rudimentary feel for the machine. Plus points mainly revolve around the keyboard. If Sir Clive's baby had a similar keyboard it would be an awesome machine. I've also taught my girls and their cousins (all aged under 8) to write a small program in BASIC to generate a multiplication table, the novelty being with the HX-20 that they can instantly create the table using the built in printer. It would be hard to see with a modern computer how you could get such instant programming satisfaction.

Oh, and not to forget that I got an MS-DOS version of Kermit communicating with aliennerd's BBS using the LK250 keyboard driver. It would have been nice to connect to Sampsa's OpenVMS modem, but it wasn't up in time.

Lastly, I used the wayback machine to retrieve the main content of a defunct geocities website containing BASIC programs for the HX-20 and have created a page on my site to archive the contents for fellow HX-20 experimenters.

I'm afraid that's all I have. Good luck to all competitors. I've enjoyed reading your blogs.

Right, where is that bottle of wine....

Modem Fun

26-JUL-2011 22:18 Posted by urbancamo

Insipred by aliennerd's BBS I thought I'd dig out a portable external modem I bought last year with the intention of connecting it to the Cambridge Z88. It never got used and has sat in the box until dusted off today.

Actually, apart from initially hunting down a suitable DB25-DB9 cable (serial cables are so much fun!) getting the modem working was trivial. After last retrochallenge I'd made the point of installing a standard 3.5" floppy drive in my Linux server, so downloading and unpacking MS-DOS Kermit 3.16 was very straighforward. I dug out an MS-DOS boot floppy I'd made in 1998, powered up the DELL Inspiron 7500 laptop and soon had Kermit up and running. By using an external modem connected to Serial Port 1 (COM1) I bypassed any attempt at having to configure networking or internal modems in MS-DOS. I'd forgotten how primitive it is. Amazing how stuff that was second nature 'back in the day' now really strikes you as odd. Like, I deliberately stole a PS/2 mouse of my server and plugged that and the LK250 into the back of the Inspiron via a PS/2 Y-adaptor cable, only to finally realise that a mouse wasn't going to really be of any use...

I installed the LK250 keyboard driver, then ran Kermit, then issued a SET KEY LK command, at which point the 'Special' light on the keyboard was extinguished, signifying that the keyboard was now in native DEC mode. I couldn't believe how relatively painless this had all been.

Connecting to aliennerd's BBS was equally trivial. Kermit was setup for 2400 baud comms to the modem, which is what the modem was expecting, so that bit just worked. One ATDT command later and we had a connection. I had a play with various parameters in Kermit, but after I'd set ANSI terminal mode most things worked without any issue.

Here are the obligatory victory photos:

Running MS-DOS Kermit after the LK250 keyboard driver .COM file has been run - The command 'set key lk' utilises the driver from within Kermit to switch the keyboard into native DEC mode.
The external Datatronics modem. Bought new in box last year it is a battery powered modem supporting speeds up to 2400 baud.
The DELL Inspiron 7500 was the dogs gonads back-in-the-day, with one of the first 15.4" LCD displays running native at 1280x1024. Mine has an LS-120 super floppy drive and DVD drive with CD-writer. Oh, and one USB 1.0 port. The power!
The LK250 keyboard is a basically an LK201 with PC interface gubbins instead of DEC interface gubbins. It operates in a PC-compatible mode by default, but can be switched with the MS-DOS Kermit driver magic into native mode which supports all the special VMS keys.
The 'special' light indicates that the keyboard is operating in PC-compatible mode.
When the 'set key lk' kermit command is issued the 'Special' light extinguishes to indicate that DEC native mode has been enabled.
Playing Blackjack on aliennerds BBS. It's really quite a nice implementation of the venerable classic, with quite a spritely interface.
Front of the Datatronics modem box.
All the technical blurb on the back of the box indicating that you're gonna max out at 2400 baud. Luxury I say! What ever happened to good old 300 baud. Believe me aliennerd, if you get an acoustic coupler you'll remember what 300 baud is all about!

Oh, and just for good measure, a couple of youtube videos (the first is a rerun of the second but in focus)!


25-JUL-2011 23:36 Posted by urbancamo

What to do when you're making no progress #2 - take some photos!

Manipulating a camera on a tripod in a basement is like dealing with cabling - always a pleasure!

Here are some photos of the AlphaServer 1000A I was harping on about earlier in my Retrochallenge.

The command line utility I use to control the power distribution box via the Mirrorbow Ethernet IO Interface.
The power distribution strip is connected to the Mirrorbow interface via a parallel cable. Inside the box is a power supply and an eight way relay board.
A closeup of the AlphaServer 1000A front panel. ZEN 4.254 is the name and DECnet address of the machine.
The AlphaServer on the right is connected to the BA356 storageworks enclosure on the left via a narrow SCSI cable. The cream blanking panel in the internal drive array is required because the CDROM is connected to the same SCSI bus at address 4. Addresses start at zero at the top of the array. The BA356 has two redundant power supplies in the bottom two slots.
Booting off the system disk. Drives DKA0: and DKA100: form a RAID-1 array or 'shadowset' in VMS speak. In this case drive DKA100 has been chosen for read operations when booting. Each drive in the array is either 18GB or 36GB.
With the drive array door closed you can see the access lights through the smoked window.
The VT520 terminal, with OpenVMS layout keyboard attached. That's sat on top of BUBBLE, a VAXstation 4000/90 which is also attached to a BA356 storageworks array. Note the drive behind the keyboard - the enclosure is referred to as an SBB or 'brick'.
The Mirrorbow Ethernet IO Interface. The LCD dislay shows the power state of the equipment being controlled via the power distribution box.
OpenVMS boot complete and the login prompt displayed. The terminal is connected both to a DECserver 90M and atom a linux box.
A comms stack. At the top is a gigabit ethernet switch. Below is a 100MB switch only powered on when computers that are connected to it are also powered on. Below that is the DECserver 90M which serves up each of the serial consoles to the network via telnet listeners. For example: 'telnet decserv 2005' will connect you to the console of the AlphaServer 1000A

If I get a chance I'm going to try MS-DOS Kermit 3.16 as I have a DEC LK250 keyboard (an LK201 designed for use with early DEC PCs such as the VAXmate) which has a specific driver written for it for MS-DOS kermit to make use of the DEC specific function keys and layout. I use this keyboard normally with a PC via DIN5->PS/2->USB adapters but so far I've not been able to get it to work with all the specific function keys. Kermit emulates a VT320 so this should be a good combination. I'm going to try this with my DELL Inspiron 7500 laptop, as this has a PS/2 keyboard port and a floppy drive.

Brief Update

23-JUL-2011 22:00 Posted by urbancamo

What can I say? It's been a baron couple of weeks! I've just got back from a trip to the Isle of Man for work. I didn't take any kind of computing contraption because my baggage has to be transported on the back of the motorbike, then on a plane. This is a fine art in weight management, and I just can't take any possible rejection from the check-in ladies. That and luggage on bikes and planes always gets a hard time. Not one for delicate gear from a retro-year.

Went to the Windermere Air Show today. I guess watching the Avro Vulcan majestically float round the sky then thunder off with those four Olympus engines lit up was not a retro-computing spectacle but certainly comparisons can be drawn. The sensory spectacle of such an awesome old bird could be likened to the difference between running a multiple cabinet VAX and a modern PC, for example. First time the beast was at Windermere was in 2009 it was a little disappointing as they were clearly trying to conserve fuel. This time round we were treated to more of a spectacle, including the spine tingling 'Vulcan Howl'. It's always great to see Vulcan XH558 - I was at the last official flight of the Vulcan back in 1984 when it was taken out of service soon after the Falklands War.

Anyway I searched for 'Vulcan on Board Computers' believing that maybe there was some interesting retro-tie-in, but the most interesting thing I found was this video of a B-2 crashing due to problems with on-board computers.


14-JUL-2011 22:57 Posted by urbancamo

This update was to be more of the same 'not really done anything', then I thought, 'I'll make a a video'.

I recently met up up with a guy who still makes his living with VMS systems. He gave me some equipment and books, some of which were about the PDP. I don't know much about PDPs, but feel I should do as many folk who come to DECLegacy are specifically interested in PDPs and, quite frankly, couldn't give a hoot about VMS systems.

I've been running various terminals off the DECserver 90M currently hooked up on the dining room table. My VT320 worked fine (apart from amnesia) and the VT520, which was practically new when I bought it, works a treat.

Interestingly, accessing emacs on my atom box where this post is being written was a horrible experience. I've gone back to 'vi'

The system on hecnet which keeps the master list for DECnet areas and machines is MIM which is an emulated PDP 11/75. I decided to have a play, it is accessible from the DECserver 90M via DECnet, and has a guest account (at least for us hecnetters).

Although it would be nice to get a bit of PDP kit or setup my own emulation, I'm tempted to follow the old adage 'What's better than owning a boat' for now at least...

I've posted a video on youtube:

Receiving some very interesting documentation from Colin got me to thinking that I should preserve some of it that isn't already out there - there are several industry magazines and DIGITAL brochures and information leaflets that I've not seen before.

A quick summary of the internet wisdom suggested that I would be looking at spending at least a couple of hundred quid on a machine that would do the job, then I had a brain wave. My wife is an administrator at a school and has a very nice multifunction photocopier. Having asked nicely I gave her a thin brochure to try out, and was pleasantly surprised by the results.

I give you a brochure about OpenVMS Clusters

For now I'm afraid that is all. I've been a bit sick and tired, literally, lately and even retrocomputing hasn't got me to the terminal. Hopefully the worst of it is over now!

Who Am I Again?

Sun Jul 10 08:21:49 BST 2011 @348 /Internet Time/ Posted by urbancamo

It's been a frustrating old time of late, although I have made some small progress.

The issues I had with the AS1000A continued in the form of memory error faults and external SCSI disk weirdness. I reached a status quo this morning where I have half the memory slots populated and working, and I've gone back to a narrow SCSI card and eight-bit personality module to hook up the BA356 in a known good configuration. I've spent too much time swapping both memory and SCSI gear down in the basement to be healthy for now anyway.

On the upside, a very nice man from Holland has posted me 16 SIMMs for the AS1000A which, if labelled as 16MB like mine will equate to 1GB of memory. I know, the maths doesn't add up whichever way you look at it, but that's how it pans out when they're installed in the AlphaServer.

I dug the VT320 out of the garage yesterday and found after a suitable delay it worked fine. However, give it a day and it's now throwing NVR errors - 'non-volatile RAM' which basically means it now really is a dumb terminal and forgets any saved configuration between reboots. I view this as a condition I can live with - it just means I have to go into the setup and change a configuration option each time it is turned on.

On the upside again, I managed to reconfigure a DECserver 90M as a terminal server for the lounge. These boxes allow you to connect to hosts via telnet and LAT. They have their own internet configuration, so you literally can access a text-based web using only one of these and a terminal. I've broken more DECservers than I care to admit, mainly due to my own stupidity, but now having three 90Ms working is great. The distinguishing characteristic of the 90M is that it has a 10baseT network connection, meaning I don't have to mess with thin-wire ethernet.

I also found FAFNER, which is a VAX 7000 available on the net 24/7 for hobbyist use, running OpenVMS 7.2. It's a nicely configured box, with 512 MB of memory (yes 512 MB on a VAX!) and has been helping me keep my electricity bills manageable here, given that the AS1000A is running at the moment.

On my own personal hangman challenge, I've written some BASIC on FAFNER with the help of a DEC 'Introduction to BASIC' manual to compress the phrases file I put together and output it as a series of BASIC DATA statements. This is still a work in progress...

Fun and Games

Wed Jul 06 07:29:09 BST 2011 @311 /Internet Time/ Posted by urbancamo

Oh, have I been having fun and games!

I dragged my AlphaServer 1000A from the garage to the basement last week, and proceeded to install OpenVMS 8.3 on it. The AS1000A has a Storageworks array built in which can house upto seven 3.5" SCSI SCA drives, in canisters which are referred to as SBBs.

Anyway, to cut a long story short I also obtained a separate BA356 enclosure and a set of disks which I spent last night trying to get hooked up. The long and short of it is that I tried every combination of everything until eventually the problem was narrowed down to a bad SBB.

Now the drive map looks pretty awesome:


Device                  Device           Error    Volume         Free  Trans Mnt
 Name                   Status           Count     Label        Blocks Count Cnt
SLAVE$DKA0:             Mounted              0  SLAVESYSTEM   32517056   323   1
SLAVE$DKA100:           Online               0
SLAVE$DKA200:           Online               0
SLAVE$DKA300:           Online               0
SLAVE$DKA400:           Online wrtlck        0
SLAVE$DKA500:           Online               0
SLAVE$DKA600:           Online               0
SLAVE$DKC0:             Online               0
SLAVE$DKC100:           Online               0
SLAVE$DKC200:           Online               0
SLAVE$DKC300:           Online               0
SLAVE$DKC400:           Online               0
SLAVE$DKC500:           Online               0

That's a total of 12 drives available. The plan is to document the installation and (more importantly configuration) of OpenVMS with an emphasis on the tasks needed to make the box production-quality.

In HX-20 news I started writing some code that would read the bitmap masks required to processed my 'compressed' text. I've also pulled from the web a list of childrens films, books and nursery rhymes which will form the basis for the list of phrases available to guess in Hangman.

The code to read the bitmap masks (and print them out once read in) goes like this:

 10 DIM M(14)
20 FOR I=1 TO 14
30 READ M(I)
50 FOR I=1 TO 14
100 DATA 63,244,0
110 DATA 3,124,128
120 DATA 15,240,0
130 DATA 1,62,192
140 DATA 31,0,0

A Game for the HX-20

Sun Jul 03 21:57:55 BST 2011 @915 /Internet Time/ Posted by urbancamo

As my daughter is into hangman I've decided to implement a version for the HX-20.
  • Maximum number of phrases, memory permitting.
  • Child friendly interface.
  • Follow traditional rules.
  • Preparation of data on retro-hardware.
If phrases only contain the characters A-Z, plus a word boundary indicator and end of phrase indicator then we can fit a character in 5 bits, which means we can fit eight characters into five bytes. I've started working out the bit masks and BASIC data statements in order to decode the five-bit characters. I'll also consult TAOCP volumes 1-3 to see if there any fancy algorithms/data storage techniques that can be applied to improve compression.


Sun Jun 19 10:18:34 BST 2011 Posted by urbancamo

Preparation for retrochallenge has included:

  • Bought a HX-20 for £20, condition unknown. It includes an expansion unit and micro-cassette cartridge. The batteries were dead.
  • I found some Sub C cells on eBay for £1 each and built a new battery using the shrinkwrap from the old battery to keep everything nice and secure. The connector on the end of the old battery pack cable was badly corroded so I found a new connector that fit. The motherboard is clearly marked with the connector polarity. I've charged the batteries using a universal 6 volt power adapter rated at 300 mA. This appears to work quite well, I got about eight hours out of a full charge, but that included a fair amount of printing.
  • Bought a new printer ribbon and some printer paper off ebay. Printer is working fine.
  • Cleaned the heads on the tape unit with Isoprol alcohol. The tape drive was working, but at the moment I get an IO Error as it tries to read a tape. Bought three microcassettes off eBay.
  • I've trauled the internet for information about the HX-20. I've printed and bound the users manual, the BASIC manual and the software reference manual.
  • Got a word processor, SIDAH Writer, installed and working, although I've not tried to use it yet.
  • Made an RS/232 cable - cut the end of a 9 pin d-sub to 9 pin d-sub extension able and soldered on a 9 pin DIN connector. I can transfer BASIC programs between my laptop and the HX-20.
  • Had a play with hxtape to save/load programs using the audio cassette interface plugged into the ubuntu laptop's headphone/micrphone port. The program is capable of encoding text and binary files as an audio waveform on the fly.

Initial Thoughts

Sun Jun 19 08:56:50 BST 2011 Posted by urbancamo

Initial thoughts are that I will write some software for the Epson HX-20, preferably with a machine code element.