Monday 23 September 2013

Panasonic FS-A1WSX MSX2+

After ZX Spectrum, the MSX was the second computer I had some good hands-on experience with. I remember the BASIC programming environment fondly, it was a breath of fresh air after the idiosyncrasies of the Spectrum. Although I disliked the idea of a "screen mode" (A Speccy does not know the concept) sprites and sound commands made life much easier.

Now I have a look at the MSX2, a Panasonic FS-A1WSX MSX2+ (huh!) which indeed is a +. I never saw an MSX2 back in the day and the platform seemed a bit uninteresting given that Atari ST and Amiga existed. More memory, more screenmodes, (usually) better sound and other tiny improvements were what made the second generation of MSX computers.

"Case felt the edge of the deck sting his palm as he slapped MAX REVERSE. The matrix blurred backward..."
The outward design is quite rhetorical, bit like 1980s stereo units, it has an appearance of sophistication and complexity with all the labels, buttons and light indicators, not to speak of the muscular, jagged protrusions. It's what I expected a cyberspace deck to look like. Given how large and complex the machine seems, the connector options are actually quite sparse. Then again, it's the two cartridge ports that are really at the heart of the expandability of the MSX. I've also understood the joystick ports can be rigged for output too, so there's more than meets the eye here.
Although the MSX-DOS is not included with the computer itself, it seems to be quite an integral part of the MSX2 experience. The MSX-DOS is a disk operating environment with executable commands, compilers and editors, so the BASIC side of things can be skipped. In this respect the MSX2 might be compared to the Amstrad 6128/Commodore 128 generation of computers which had CP/M compatibility.

The old workhorse, the Z80, is showing its age. It's not that great for pushing stuff around, even if there is a turbo mode for roughly 1.5x speed. Fortunately the VDP video chip has new tricks up its sleeve and the sound chip works independently too. This particular MSX features MSX Music extensions, meaning that a synthesizer engine can produce up to 9 simultaneous channels of tunes and sounds.

This is what hits you upon boot-up if you're not careful...

The Panasonic's own ROM-bundle is filled with word processing, card file, address book, calendar and such. All work in kanji characters, so I don't have much hope of deciphering what each of them does. To be honest they seem a bit slow for what they are. The menu screen, complete with music, deserves a mention. It may seem frivolous but then again we're talking about a computer that probably needed to compete against typewriters which were less "gendered" products. The screen appearance is at odds with the overall technical appearance of the computer, though.
The "Color Word Processor"
This is a bit speculative, but having joyful and bit silly screens in a computer was in fact ahead of its time. In US and in Europe most electronic consumer products and especially computers were driven by an engineering/masculine ideology and aesthetic. This has changed ... for better or worse. Many people might be persuaded to buy a computer device for very limited out-of-the box uses, much like smartphones are nowadays. So in a way this kind of package foreshadowed the more "user experience" driven design of later days.

Sure, the ROM bundle seems a hindrance now and makes one suspect incompatibilities. Fortunately the creators had the great wisdom of including a physical switch that bypasses the software package. Exiting each of the tools is through the STOP key, and the ensuing menus are navigated with the keys left and right to the space key, so I suppose they work as OK/CANCEL or YES/NO keys.

Although some of the kanji were present in western MSX character sets, I don't recall if they could be actively used. Here, Japanese writing characters are much more integrated to the overall setup. There's a "kanji lock" key in the keyboard that enables the characters displayed on the keys. It's possible to CALL KANJI to enter a really chunky text-mode, with big 16x16 kanji characters.

The "Kanji Lock" key left to the Hardware PAUSE key.
The music extensions can be simply invoked by CALL MUSIC and then using PLAY #2,"CDEFG" and the like. The Music Macro Language is a rather complex way for creating tunes, especially for nine channels, so many would these days prefer to use a tracker software. 
Messing around in MSX-DOS.

The MSX-DOS itself is pretty solid and easy to learn if you've ever worked in CP/M or MS-DOS. An RGB cable gives a good enough picture to work on the 80-characters wide screenmode, but if it's hard on the eyes the MODE command may be used to switch to an arbitrary width. (And I mean arbitrary! Try MODE 1...)
The screenmodes are quite flexible. The aforementioned KANJI mode can also be used in DOS.
I tried compiling some z80 after typing in a piece of code in APED, a text editor. It's not unbearably slow, so developing software on the MSX2 itself is within the realms of possibility. Of course, cross-compilation from a more current platform (with an emulator) is more sensible, but there's a nice feeling writing small snippets and see them run directly on the hardware. This blog post serves as a little primer on different compilers and a rough estimate of their relative speeds. From a learning point of view it needs to be noted that the MSX does not have a straightforward memory-mapped screen modes. Getting stuff on screen with machine code is slightly more complex than with many other 8-bitters.

All in all, the MSX world is quite diverse. I'm really only a novice, as back in the day I just fiddled with BASIC and played some crappy European games. The direct Spectrum conversions (slower than the original) gave the platform a bad name around here... Yes, Konami cartridges were good but also expensive. It still is a pretty fun computer to mess with, and as with other popular platforms like C64 and Spectrum, new hardware and adapters make it that much more friendly for this day and age.

Thursday 12 September 2013

Canon X-07

A little beauty, this one. The computer is book-sized and fits into a VHS-case sized plastic binder. It offers pretty much what a home micro would have around 1983, except in a very small portable size. The language is Microsoft BASIC, which was state of the art at the time. Well, the memory is not that impressive, only 8K of which roughly 6 are available to BASIC.

Despite the looks the X-07 is not really a scientific calculator. For example, the math symbols are not directly available but behind SHIFT-combinations as on an ordinary micro. It's of course possible to write some calculator software! The BASIC offers very direct access to screen features such as text and bitmap graphics with commands like PSET, LINE, CIRCLE and FONT$ which can be used for the 5x8 user character definition. I suppose for graphing purposes these are fine and to me this is more flexible than the clunky TI-BASIC found in Texas Instruments calculators, even the newer ones.

On the negative side, the connectors are a bit non-standard. For a tinkerer it's nothing, but of course an ordinary RS232 port would have been nice (It's not even that much smaller). Sadly the resolution is very small, 120x32 pixels, and the display is not backlit. Apparently there's a display adapter which would give an 8-colour display on a television. This would make X-07 even more interesting, although then it would no longer be portable.

The Z80-compatible chip is likely to be on the slow side to conserve power, my hunch is 1mhz. (Edit: Nope, it seems the NSC800N variant is 2.5mhz) Printing and graphics commands are quite slow via BASIC. I don't know how long the battery life is, but I'd assume that the display is not that greedy.

What I like about this machine is that the "booting" time is non-existing. The RAM "disk" is permanent as long as the batteries last. The user chooses a suitable portion of the memory for the RAM files, and code snippets can be stored and retrieved via SAVE and LOAD commands. DIR brings up the file list. It's also possible to RUN "filename" to execute a file without loading it into the text memory.

The RAM is battery-backed and it's also possible to put the display to SLEEP and continue later from where you left. There are some interesting possibilities for using this computer to "upload" tiny pieces of data via the RS232, and I might be tempted to try this later. An "autobooting" command can also be created, for running the program in memory, for example. This makes me think the computer is meant to be customized into a variety of one-purpose devices, possibly a controller for industrial machines.

The eight bits between the nybbles. We've seen this before.
Tape options are of course available and using Audacity on my MiniMac I could store and reload a BASIC program. The format seems straightforward enough and if there's nothing about it on the internet I might examine it a bit further. (Edit: Actually, it's all in the manual. Silly me. Also, there's a webpage about the tape formats.)

I feel positive about this tiny computer. The build quality is high and the Canon competence in calculators also shows here. Everything there is, is pretty well made and thought out.

The memory upgrade:

A Toshiba TC5565PL-15 memory chip adds 8K memory, to a total of 16K. The whole system may need resetting before the memory becomes active. The RAMdisk use becomes a bit more reasonable with this expansion.

How to build an RS-232 cable between Canon X-07 and a PC:

Edit: I'd recommend NOT connecting this serial port directly to a Mac/PC! They have a different voltage level.

It is quite fortunate that a piece like the one below can be stuck into the existing port, by ever so slightly twisting the pins. However, the pin order is not standard so a special cable or an adapter needs to be built.

The diagram below shows how to connect between two port types. A cable between two Canons would of course be symmetrical. Note that the numbering in Canon port follows the order in the manual. (1=LTxD, FG, N.C., TxD, RxD, CTS, RTS, SG, VBB) 

The manual also tells the signal level is not standard, but this did not seem to cause problems when connecting between Canon and a Mac. I just went away and tried, although they should not be compatible. I'd be careful. What I see the RS232 in Canon is likely to be TTL level ("5v") whereas serial ports can be 12v. I suspect modern computers and USB/serial adapters may be accommodating, but I'd be wary of connecting different kinds of computers.

The serial port, seen from the outside.

On the Canon end, you do this to set the port:

INIT #1,"COM:",2400,"B"

4800 is the highest speed. The "B" combines the various parity and bit length parameters into a single letter. B seems to work ok with 8 bits, no parity.

After initializing the channel you can:

PRINT #1,"HELLO" to send a string of characters.

...or OUT #1,65 to send characters out.

...or LIST #1 to output the BASIC listing in ASCII.

Some good resources:

The Canon is quite well documented on the net. There seems to be a whole scene focusing on collecting and enthusing about hand-helds, calculators and even digital wrist watch computers.

Here's a page that tells everything you need to know about various peripherals and extension cards:

Programs for creating tape files: