wickensonline.co.uk
Retrochallenge 2010 Winter Warmup Entry
Babcock
|
Retrochallenge 2010
Winter Warmup
Mark Wickens
9-Jan-2010
68k/VFD Retrochallenge Rollcall!
This will have be a short entry as the clock has just struck midnight and I am
only just beginning.
This evening was another session with the 68k SBC, this time focussing on
driving a Babcock Vacuum Flourescent Display. This behemoth of an output device
utilises similar construction materials to CRTs with a corresponding weight to
match. The display was bought off ebay a few years ago when I was on the lookout
for a VFD to go with the SBC. I struck gold with this one as getting them this
size (40x6 character matrix) is no mean feat. The display 'tube' is a sandwich
of thick glass with the display gubbins in the middle and is about 11 inches
wide by 5 inches tall. This is mounted on two double sided PCBs with a border of
about an inch all round the display. The whole lot must weigh close to 1kg! The
display has an RS/232 serial interface.
I'd previously played with the display and initially couldn't get it to do
anything. It turned on and displayed a cursor (which incidently is a 'segment'
on its' own) but wouldn't display anything sent to it. At the point of giving up
I decided to ignore the manual regarding the DIP switch settings for baud rates,
created a boolean map and tried each combination one at a time. Sure enough, the
manual was lying and a completely random combination of switch settings produced
the correct baud rate.
It got to the point previously where I had modified the Tutor firmware to
duplicate anything sent to serial port 1 (normally the port to which your
PC/terminal is attached) to serial port 2 where the Babcock was attached. I
burnt a set of ROMs like this, and probably still have them somewhere.
You can see from the above image that each character is formed by using a 5x7
pixel grid, with a separate horizontal bar underneath for the cursor, if
required. All that needs to be sent to the display is a stream of ASCII
characters, and it honours several control characters such as newline. I've yet
to explore whether it will do backspacing and the like.
The display draws about 5 Watts (1 Amp @ 5V) when running. It gets warm to the
touch. If you look closely you can see the heater wires that run horizontally
across the display glow red. This is the kind of technology I love - anything
that can double as a room heater.
I had a bit of trouble converting my cstart assembly code to produce text on
this display rather than the terminal. This was because the Tutor firmware
doesn't have a 'write a character' TRAP #14 routine when writing to serial port
2 - the only convenient routine is a 'write a string' routine which requires
register A5 to point to the start address of a string in memory and A6 to point
to the character after the string. It took me a while to work out the magic
assembler incantation to get the __putch() function working to redirect display
to the VFD instead of the terminal:
__putch: ; Basic character output routine
link A6,#0
movem.l D7/A5/A6,-(A7)
lea 8(A6),A5
addl #3,A5
move.l A5,A6
add.l #1,A6
move.b #242,D7 ; trap #14 function 248 - OUTCH
trap #14
movem.l (A7)+,D7/A5/A6
unlk A6
rts
xdef __getch
Once this was sorted I got a Hello World working and wondered what to do next.
Since it was too late in the day to start thinking about a game, I decided to do
a Roll Call, and post a video on YouTube[1].
Sorry for missing the Hunt, but at that point I was on a roll, and anyway, I
still haven't read the instructions, so would only have got hammered again.
ENDNOTES
1. RC Roll Call!