Wednesday, 24 December 2008

Retrochallenge 2009 Winter Warmup Entry

I'm participating in the Retrochallenge 2009 Winter Warmup!

I will be using a VAX 4000/90 as my only computer during January 2009 and am planning on writing a character-cell terminal application.

The entry diary:

The main Retrochallenge website:

Monday, 8 December 2008

UK DEC Meeting in North West, Autumn 2009 - expression of interest please

I'm going to use my blog as a source of news on the UK DEC Meeting I'm trying to get sorted out.

Well, I've been banding this idea around to a few fellow DECheads in the UK, and thought it was about time I moved on to stage 2.

I am thinking about organising a meeting for people interested in the lines of computers created by Digital Equipment Corporation. It is likely that the meeting will be autumn next year, and would be run over a Saturday and Sunday in Windermere, Cumbria, UK.

This is in the very early stages of planning, and I'm initially looking to get an idea of numbers who might be interested. This is to ensure that I can organise the event without loss. In terms of numbers I would be looking for between 10 and 20 people to exhibit computers, and then another up to maybe 50 people as non-exhibitors. I'm sure we could get some interesting speakers involved.

Cost is likely to be in the order of GBP 10 for the two days, although we can discuss the option of providing catering if there is interest. I would be looking for firm commitment to buy a ticket say 3 months in advance.

So in the first instance, could anyone interested email me at: mark at wickensonline dot co dot uk. By emailing you agree for me to keep your email address on file so that I can inform you of any progress.

Please feel free to make suggestions either on this blog or direct by email.

Monday, 1 December 2008

Setting up OpenVMS DCPS for wide 132 column portrait printing to an LPD network printer

Summary: by using DCPS and a custom ANSI setup you can print 132 column in portait mode to a postscript LPD printer. My Kyocera FS1020D has a network card installed and is setup as an LPD printer server. 132 column portrait is useful for printing compiler or assembler list files.

Install DCPS. For hobbyists the license is included: DCPS-OPEN


I made the following alterations:

Define the DCPS_LIB logical to point to the standard control library located in SYS$LIBRARY:DCPS$DEVCTL.TLB, and a user defined library (to be created in a minute) called SYS$LIBRARY:DCPS$SITE.TLB. The directory and file extensions are not specified in the logical, but we must specify that our custom library contains ANSI control sequences:


If in Europe define the default paper size as A4:


Then define the printer execution queue:

SYS$PRINT - ! P1 - Execution queue name
"IP_LPD/" -! P2 - Interconnect protocol/device name
DCPS_LIB - ! P3 - Logical name for library(ies)
"SIDES=2" - ! P4 - Default queue parameters
"/SEPARATE=(NOBURST,FLAG)" - ! P5 - Default queue qualifiers
"" - ! P6 - Communication speed (serial only)
"" - ! P7 - Device characteristics
"" ! P8 - Verify on/off

Significant parts of this file are the parameters:

P1 - if you specify this as SYS$PRINT you'll not need to specify a queue name when printing
P2 - protocol of IP_LPD specifies we are printing to an LPD printer - followed by the IP address and the name of the print queue (the default remote queue name is normally lp)
P3 - this is the logical name defining the form library(s) the queue users (the one we defined earlier in this file)
P4 - SIDES-2 my FS1020D is a duplex printer - this specifies duplex printing

You need to define a setup module and add it to a text library. The setup module is a string of ANSI control sequences that are interpreted by the DCPS print engine. The setup module can either be defined directly in the PRINT command using the /SETUP parameter or via a FORM definition.

The following text file sets up the printer for 132 character portrait printing:

$ type sys$library:wide132.txt

where ESC is the escape code Ctrl-[. You can create escape characters within EVE by typing Ctrl-V Ctrl-[

Breakdown of the ANSI control string:

ESC[15m - select line printer font
ESC[11w - select horizontal pitch
ESC[1;132s - select left and right margins

To create the custom control library (initially empty):
$ library/create/text sys$library:dcps$site.tlb

To replace the module in the custom control library (note that the library extension .TLB and text file containing the ANSI control sequence .TXT are not specified):
$ set def sys$library
$ library/replace/text dcps$site wide132

(If previously created) delete the form to use:
$ delete/form wide132

Create a form using the /setup parameter to define the module to use. The /stock-default is required unless you are using a specific stock:
$ define/form/width=132/setup=wide132/stock=default wide132 2

You should now be able to print using the following:
$ print/form=wide132 myfile.lst

The DCPS$STARTUP.COM and form definition commands needs to be added to the SYS$STARTUP:SYSTARTUP_VMS.COM file to get run automatically at startup.

Note: the only reference I could find to setting the horizontal pitch in relation to DCPS used the command ESC[4w which sets a pitch of 16.5 characters/inch. This apparently works on dot matrix printers but not on my Kyocera FS1020D because of the minimum margins imposed by the printable area (probably true of a number of laser printers). You get 131 character lines - very frustrating! The setting of ESC[11w uses a slighter tighter pitch of 17.1 characters/inch (which seems designed for this purpose in my opinion).

This is an excerpt from the the Digital ANSI-Compliant Printing Protocol Level 2 Programming Reference describing the horizontal pitch command:

DECSHORP—Set Horizontal Pitch
Selects character spacing for monospaced fonts.
Source: Application Destination: Levels 1, 2, 3
CSI Ps w
9/11 *** 7/7
The DECSHORP command determines the number of characters/inch (pitch)
that the device uses. This establishes the Horizontal Advance Increment
The selective parameters for DECSHORP are as follows:
Ps HAI Pitch
0 720 centipoints 10 characters/inch
1 720 centipoints 10 characters/inch
2 600 centipoints 12 characters/inch
3 545 centipoints 13.2 characters/inch
4 436 centipoints 16.5 characters/inch
5 1440 centipoints 5 characters/inch
6 1200 centipoints 6 characters/inch
7 1090 centipoints 6.6 characters/inch
8 872 centipoints 8.25 characters/inch
9 480 centipoints 15 characters/inch
11 420 centipoints Approximately 17.1 characters/inch or, more
accurately, 14/240 in.
12 840 centipoints Approximately 8.55 characters/inch or, more
accurately, 28/240 in.
13 400 centipoints 18 characters/inch
14 800 centipoints 9 characters/inch
15 720 centipoints 10 characters/inch

my WIDE132.TXT file

Saturday, 6 September 2008

Power Consumption of Computer Equipment and Household Appliances

Here is a list of the power consumed by random computer equipment and appliances littering the house:

AG Neovo F-419 19" LCD
30 W
Netgear Gigabit Switch
6 W
Vigor 2800 Router
10 W
IBM X60 power supplydisconnected2 W
IBM X60 Tabletcharging35 W

booting60 W

idle20 W

80% CPU35 W

standby3 W
VT520 terminal
30 W
Core 2 Duo 1.6Gz/3HD Server
100 W
HP ZX6000 2xItanium Workstation
370 W
Cambridge Audio Subwoofernormal15 W
Cambridge Audio Ampnormal30-40 W
Arcam Alpha 9 Ampquiet to loud20-65 W
Sky+standby18 W

on22 W
Playstation 3standby4 W

idle110 W

in game135 W
2500 W
1550 W
Panasonic 50" Plasmastandby4 W

on300-500 W
Dell 37" LCD TVstandby3 W

on180 W
Bedside light
20 W
VAXstation 4000/VLC
45 W
VAXstation 4000/90
106 W
DEC 3000/600 AXP
225 W
AlphaServer 300 4/266
100 W
Digital 21" monitor
110 W
DS10L Alpha 1U Rackmount
176 W
Quad Core 2 4GB Linux Server
110 W
DECserver 90TL
10 W
CentreCOM MR820TR Router
10 W

Notes: most appliances seem to consume about 4 watts on standby. Power adapters that are plugged in but not connected to anything still draw about 2 W. The X60 provides a very good performance to power consumption ratio! The ZX6000 workstation doesn't!

Preconceptions: I thought the audio amp and subwoofer would use much more electricity. Clearly, they use more the louder the sound output but the average consumption will remain low.

Tuesday, 2 September 2008

Running a remote VNC OpenVMS CDE Desktop

The HP Integrity ZX6000 workstation I bought recently is now running OpenVMS Version 8.3-1H1 flawlessly. The ZX6000 is the same as the RX2600 server except that it contains a combined AGP/PCI card cage instead of a straight PCI cage. The ATI AGP graphics card that it came with is not supported under OpenVMS. As an alternative I installed an ATI 7500 PCI card that was previously in an Alpha DS10L server, but the picture quality is really poor.

My day-to-day workstation runs SuSE 11. It will quite happily display OpenVMS terminals and applications via a remote X-Window configuration, and with a gigabit ethernet between the two network latency is not an issue. When I first started work in 1991 I remember running a complete window manager come session manager across a network and wondered if this might provide me with the remote desktop experience I was after.

Firstly, I started a vncserver on the linux box:

$ vncserver -geometry 1280x1024 -depth 24

In order that this vnc xserver session does not start it's own window manager (which in my case would normally default to KDE3) I edited my vnc xstartup file which is installed in my home directory:

$ vi ~/.vnc/xstartup

and removed the 'startkde' call at the end. This starts the vnc server with no window manager, but with a single xterm (undecorated of course).

I then start a vncviewer for that vncserver:

$ vncviewer linux:1

Then, I moved the vncviewer window to my 2nd kde desktop and maximised it. You can switch between the 1st and 2nd desktop in KDE using Ctrl-Tab.

As the viewer and server are on the same machine there is no network latency involved. Equally, however, if you want to view the vnc server session remotely there is nothing to stop this (and indeed this is what I am using now and it is certainly no slower than any other vnc connection I have used).

Within the single xterm enable your OpenVMS access to this display:

$ xhost +zx6000

In this case 'zx6000' should be replaced with your OpenVMS box hostname or IP address.
You can then login to your OpenVMS box normally using telnet and set the display back to the vncserver you have created:

$ set display/create/node=linux/server=1/trans=tcpip

The final step is to start the CDE session manager for this display. The logical CDE$SESSIONMAIN defines the command to start the CDE session manager:

$ show log cde$sessionmain
"CDE$SESSIONMAIN" = "mcr cde$system_defaults:[bin]dtsession" (LNM$SYSTEM_TABLE)

Run this in the xterm:

$ mcr cde$system_defaults:[bin]dtsession

and voila, an OpenVMS CDE session as if you had just logged in to the machine directly.

Addendum: you can use a font server running on the OpenVMS box to serve up fonts not normally available on a unix machine (such as double width fonts).

Start the font server on the OpenVMS box (I'm sure there is a more elegent way of doing this via the server startup scripts, DECW$PRIVATE_SERVER_SETUP.COM is the place to look):

$ xfs :== "$sys$system:decw$xfs.exe"
$ xfs

You can check if the font server is running by trying to telnet to the server with the given port:

$ telnet zx6000 7100

a connection will be establised if the font server is running (hitting return a few times will drop you out of the telnet session, as you're not talking font server speak).

Then ensure that the font path is set to include the OpenVMS nodes' font server. Either edit the 'fontPath' variable in the vncserver script, or issue an xset command on the Linux box prior to connecting to the OpenVMS box:

$ xset +fp tcp/zx6000:7100

where zx6000 is the hostname of the OpenVMS box.

Update 2: If you are running the traditional DEC Windows session manager run

Sunday, 10 August 2008

Fitting a Volvo XC90 Towbar

Here are my top five tips to fitting a non-detachable towbar to an XC90. All the cheaper variants appear to be the same design.
  1. You will need a 19mm open-ended spanner. The chassis hanger on the exhaust side uses three bolts - the front-most bolt is in a slot that will trap a ring spanner as you tighten the bolt. Elsewhere a ring spanner combined with ratchet 19mm spanner works well.
  2. Take care with the age of the car - the wiring changed in April 2004 - the earlier model uses a cheaper vehicle specific wiring kit (approx. £40) whereas later models require a kit costing £120.
  3. Expect the towbar fitting to take about 2 hours. It is a simple design - the crossbar fits inside the rear bumper and is secured with 10 bolts, but some of these are tricky to get to - you will need two people for about an hour whilst tightening the chassis bolts. Tighten the crossbar bolts on the left-hand side first (next to the exhaust) - these are more difficult to get to.
  4. If you take the right-hand floor support out to fit a vehicle specific wiring kit leave it out whilst fitting the towbar. Access to the chassis bolts on the inside is easier.
  5. Use the Volvo electric fitting instructions, available from the Volvo owners website. These tell you how to remove the internal trim without breaking it, and how to disassemble and reassemble the lower boot components to fit the wiring.
I wasn't sure whether to go for 7 or 13 pin electrics. I went for 13 pin electrics which will become the European standard in 2009 at the expense of being incompatible with existing twin 7 pin electrics. There are adapters available on eBay. Oh, and one last thing - wear glasses when tightening the chassis bolts next to the exhaust - all manner of stuff falls into your eyes otherwise!

Saturday, 9 August 2008


If you haven't happened across the Instructables website I'd highly recommend it. It is a website devoted to communicating how to do things.

A large variety of topics are covered, but I was especially interested in a couple of descriptions as I have been looking at the issues around creating a display out of seven-segment digits. I bought a whole load off ebay a while back and am looking at creating a display comprising 10 rows of 8 characters.

The maxim chip MAX6951 uses a technique called Charlieplexing. It trades complexity of the driving logic for number of connections. I'd come across the chip (and the technique) before without knowing how it came about. Anyway, if you're interested an explanation can be found on instructables here.

I haven't found an easy way of providing a display with so many characters. Multiplexing breaks down as a technique past about 8 characters, and this in turn means the chip count goes up.