Showing posts with label z88. Show all posts
Showing posts with label z88. Show all posts

Thursday, 31 August 2023

Z88 serial before and after OZ upgrade

Detailing my further adventures with the Z88, both before and after getting the Rakewell Flash Card/OZ 4.7.1 upgrade.

Just a little note first. I changed the batteries first time. To my joy, the capacitor held the charge long enough and no memory was erased.

But it did behave weirdly at first. The screen refused to light, and when I got it running the system began to complain about BAT LOW fairly soon. But this was a false alarm, the computer began behaving normally and the battery alarm was removed.

Serial port

As with pretty much everything about Z88, this is already rather well documented in a number of places and I'll just relate my own experience.

Here I'm first discussing the Z88 without the OS upgrades, then with the OS upgrade that improves the serial performance and has Xmodem and Ymodem protocols.

This is how I soldered the cables, and it seemed to work.

Nominally the standard Z88 can handle 9600 and faster, but for receiving data the Z88 cannot handle the speed and presumable the buffer becomes overrun very quickly. I had to add delay of at least 5 milliseconds after each character to get the transfer to work.

Furthermore, without any protocols, binary bytes have to be sent as [ESC]B [High][Low] so [ESC]B1F means sending 0x1F over. This means sending 4 times the data you mean to send! 

The ultimate test was sending the binary of the Jet Set Willy conversion over, called jsw.c. This is 19388 bytes long. Using the binary method, the overall data sent is 77552 bytes! Using the reliable 5 millisecond delay gives 387.76 seconds of "loading" time, nearly 7 minutes.

The speed can be improved slightly by sending ASCII 32-127 as direct characters, and 0-31 and 128-255 in this binary mode. However you'd expect less than 50% of data in a binary file to fall within the 32-127 range. For example the jsw.c file has 12941 bytes to send in binary mode and only 6447 direct characters. So the data-to-send is reduced from 77552 to 58211 which is still quite ridiculous for a 20K file.

JSW has to scroll or squish on the Z88

Later, with my upgraded Z88 I was accidentally using only 1 millisecond delay for transferring files in 9600 baud rate to the Z88, and it worked well enough.

All this became rather academic as the OZ 4.7 has built-in X/Y modem protocols, which are both faster and more reliable.

With Xmodem you have to type in the filename to be received, and the file lengths may be mis-adjusted to multiples of block length. With Ymodem both these problems go away, and also I don't have to bother about the "4 bytes to send 1 byte" dilemma as all is transferred in binary.

Receiving the 19388 bytes of jsw.c took a little under 30 seconds in 9600 baud. I got closer to 15+ seconds using 19200. I did experience some hiccups in getting the Z88 to catch the file in the first place, though.


Getty

I used getty to give login access to the Linux computer through the USB-COM adapter.

Initially this looked fine as the login and password prompts appeared and I was in.

Again, using 9600 on the basic Z88, any commands that produced more text, for example, listing the folder using ls, or using "more" to display a plain text file, would overrun the buffer.

Upgrading a Linux remotely

So, switching to 2400.

sudo /sbin/agetty 2400 ttyUSB0 vt52

...yielded better results. Keys like TAB don't seem to work and, what would you use for Control? Apparently nothing, although these should be alterable from the receiving end.

Trying getty with the Upgraded OZ 4.7 did not behave better, 9600 was still unusable and I had to revert to 2400. This was a little surprising, not sure why this should be.


The upgrade itself

The Rakewell Flash/512K RAM card fits into the Z88 card slot. The Flash portion can be semi-permanently written and the content won't be destroyed even if the batteries run out. There's a bunch of RAM so it's unlikely I need to keep the other cards in.

Importantly, this card also holds the operating system version 4.7, without having to do any changes to the insides of the Z88.

The physical cartridge is a 3D print which is fine, although not as smooth as the original Cambridge cards. When it is mounted I'm not going to see it anyway.

There are now multiple keyboard settings, which makes sense as there's no point in compiling the ROM for different Z88 keyboard. So I can choose Finnish keyboard. The funny thing is the keyboard layout choice also affects language in date displays etc., it's a nice bonus but really ought to be separate.

New functions relate to the flash card, as it's now possible to haul files from the flash card over to the RAM, but also "burn" files to the flash, just as the EPROM cards supposedly worked. Again, deleting the files will not actually remove them but mark them away from the flash card list. So, eventually the space will run out and it may need reformatting. Luckily this can be done from the system itself, but I'll discuss it more if that day arrives.

I can also appreciate that files can be peeked with a hex/ASCII viewer.

BBC BASIC has been given that graphics patch built-in. Use MODE 1 to activate, the screen is split into text portion and a 256 x 64 "graphic window". 

It's not very fast

There's a bundle of applications and files already on the Flash card, including unzip/zip applications, ROM/EPROM digging and utilities for memory monitoring and disassembly. Some of the material is zipped, and it gives a kind of early 1990s feeling, delving into the text and materials an waiting for zips to unfold.

But if a plain Atari ST was slow at unzipping, then obviously a slightly compromised Z80 chip is going to be even slower! Luckily the files are not very large.

Sidenote: Chezz

One thing I wanted to try is the Chess program, converted from ZX Spectrum Cyrus chess. Previously there was no way to run it, because it was not possible to "install" software from RAM. 

It's chess alright

This was a huge process, as on the Linux side I compiled mpm-master, z88card-master, mthtoken-master, and then z88chess-master to get the chezz.app, chezz.ap0  and chezz.ap1 files. Then I transferred them via the serial to the Z88, selected the .app in Filer and used the <>INS command to install the application. After this it will be listed in the Index.

When listed alongside other applications it can be run. The screen is small and I'm forced to use the arrow keys to enter my moves. Fortunately the sound can be turned off! Playing a couple of fast games, I both won and lost to level 2.

Crashing?

After using the card, I experienced PipeDream crashing, even without doing much else with the computer after the hard reset. It happens rather often, and this is a little sad as I encountered nothing like that before, and I mostly used PipeDream before the upgrade.

The Z88 just becomes unresponsive, no keys work and I have to do a soft reset. The cursor keeps flashing, and if the beep is on the key presses cease to beep. The flashing cursor might not be indicative of anything really, it might be even a part of the LCD features.

I have no way to make really sure if the card is faulty or the computer has a problem which only becomes apparent with the card.

I resorted to using Diary app for random typing, which did eventually crash too, but far less often than with PD.

In Summary

I had good fun exploring the new capabilities of the system and the card contents. Much of it is interest only to developers and tinkerers, but the basic premise of Z88 is already greatly improved with the better comms section. I'm also hearing the OZ 5.0 might be arriving, overhauling many a thing in the process.

Thursday, 20 July 2023

Cambridge Computer Z88

Cambridge Z88

The mid-1980s: After the QL computer and the C5 electric vehicle debacle, the world waited with bated breath. What would Sir Clive Sinclair do next? Would a portable Super-Spectrum emerge? As it turned out, Sinclair and the brand was sold to Amstrad and any interesting developments got the axe. Or did they...

Cambridge Z88 from 1987 was Sir Clive's last hurrah in the computer markets. Well, obviously Clive had little to do with the functionalities of the computer, here credited to Protechnic Ltd., Colton Software Ltd., and Operating Systems Ltd. BBC Basic is courtesy of R.T. Russell (Originally by Sophie Wilson). 

Still, the computer continues Clive's focus towards smaller and portable computers and is supposed to have its roots in the Sinclair Pandora laptop concept.

For a short while, Z88 might have been a success in its own niche, but far from the kind of hit Clive would have needed at that point. What might have been game changing in 1984, was less so in 1988. At least Amstrad came up with their Z80-based NC100 as late as 1992!

Perhaps not the strongest slogan...

I saw pictures of the Z88 in the computer magazines around 1987–1988 and would have been excited to have a go at it.

Cambridge Computer's friendly approach to the Speccy press invited a curious kind of brand loyalty. This might have backfired a little, as the magazines were showing healthy scepticism towards the usual Sinclair hype and promises. Still, the most loyal Z88 fans were likely to be Spectrum aficionados.

By the way, magazines had apparently received a note from Amstrad dictating that this new machine from Clive should not be referred as a "Sinclair", a matter cheekily addressed in Sinclair User #61.

The Finnish press was positive. At least MikroBITTI 11/1988 described it as a "dream micro" and felt a Z80 chip was sufficient for typing on the go. It's interesting that the importer was PCI-Data (Commodore), not Hedengren (Sinclair).

Now, the definitely Sinclair-style appearance and the self-contained nature of Z88 makes it attractive to me. BASIC, spreadsheets and word processing, what else do you need in 2023?

Swedish version.

First impressions

Physically the computer fits into an A4 footprint. It is reminiscent of some of the sketches from Alan Kay's Dynabook concept, except the screen is not nearly as tall. I know a plastic protective cover exists, it would have been nice to have.

Overall, there's a little nod to the QL styling, it's a Rick Dickinson design again and as a physical object it is very attractive. All the flaps, buttons and openings are precise, meticulously placed. Because of the lightness it does give a somewhat flimsy impression, I wouldn't bend the plastic case too much.

The transparent, numbered door over the card slots is an especially juicy little design detail, hidden at a corner where it's barely visible.

The keyboard was at first a cause for alarm, as it harks back to Sinclair's rubbery explorations. Worry not, typing is much better than on the Spectrum, perhaps even better than the QL. The keys are extremely silent and responsive enough, a tad too sensitive though.

The RS-232 port, fortunately not telephone-style

The space key feels a little weird, as it does not depress entirely but just squishes down at the spot you touch. Instead of Control and Alt keys, there are the original Diamond and Square keys.

The power is turned on and off by pressing both the SHIFT keys. And it's not a hard power on/off, the computer goes into standby and you can continue working from the same spot after turning it on.

A few times I was able to accidentally press both SHIFTs when trying to get my fingers around typing those silly :RAM.1/ device identifiers. Remember to set the default device from Control Panel.

The four AA batteries supposedly give 20 hours active use, or about a year in standby. This was one of the most doubted specs in the contemporary press, and Rakewell's site lists more accurate numbers. The real standby battery life is more like few months, depending on the battery type and RAM configuration. 

It's sensible to use the PSU and when the batteries need changing it better be connected. There's a small window of time in which the batteries can be changed without a PSU, but who knows the state of the capacitor after 35 years.

PSU connector, tiny reset switch and the contrast adjuster

The display is a surprisingly okay LCD-type screen, but without a backlight it's rather sensitive to lighting conditions. The resolution is 640*64, which is good enough for editing 8 lines of text.

But thinking about it, the display has less pixels than a ZX Spectrum! (256*192=49152 versus 640*64=40960) The pixels come in three intensities, though.

The CPU is a low-power Z80 variant, which at 3.2768 MHz should be a tiny bit slower than the Speccy.

There are three slots for RAM/ROM/EPROM cards. My Z88 fortunately came with three 128K RAM expansions. This gives a decent 384K extra memory on top of the measly 32K built-in, although one extra 128K might have been enough for me. Apparently the computer is really crippled if there's no extra memory present.

Two ROM/RAM slots and the EPROM/ROM/RAM slot, behind a transparent door.

Obviously the Z80 chip can't handle more than 64K directly, so there's a memory manager that seamlessly banks in memory.

The RAM has to be powered, which is a potential problem. If you remove one of the cards, the Z88 will become unresponsive and needs to be soft reset. Doing this will obviously empty the current memory and any suspended applications.

However, when removing card 3 the files "saved" in card 1 were still preserved. Using the reset key with the card door open will hard reset the computer and all the RAM card contents.

One of the ports takes in an EPROM cartridge, which can be used for storing data more permanently. Technically, only ROM cards can be used to add new applications, but later developments have made it possible to run apps from RAM. From around 2000–2010 there have been Flash memory cartridges for permanent storage instead of the EPROM solution.

A 128K RAM Cartridge

The cards are cute and remind me of Microdrive cassettes, although bigger and with no tape at sight. From the other end you can see an edge connector.

There's a fold-out stand in the bottom of the Z88, something I didn't discover until few hours of use.

OZ, PipeDream, BBC BASIC, apps

There's a plethora of tiny functions and apps built inside the 128K ROM. The computer has BASIC and PipeDream, a hybrid word processing/spreadsheet/database package. There's a calculator, diary, VT-52 terminal and a serial importer/exporter app. The Filer can be used for managing stored files and provides an interesting way of executing text files as key-command scripts.

Using INDEX key you can enter the app menu at any time and choose an app. If there are already instances of apps launched, they will be listed at the right side of the menu as "suspended activities". So I can continue a BASIC project or text editing exactly from where I left it the last time.

Some of the built-in apps

The system is not as graphical as the menus would make it appear at first. Some of the option and control panel screens are messy, but fortunately don't have many items in them anyway. When selecting files within apps, you may be prompted to type in the filename, with no assists provided. 

There's a HELP key, but apart from PipeDream it doesn't provide much information. Removing programs from the suspended activities list is fun: You have to type KILL after pressing the diamond key.

The Z80 chip chugs along slowly, so the menus aren't especially fast and neither is PipeDream the main software package. In QL style, the font is 6x8 rather than 8x8 to make more text fit.

I was tempted to write this blog post using PipeDream, but after sketching some paragraphs I gave up. I found I could type in fast enough, but making any changes to the existing text is a little too cumbersome. Maybe another time.

The peculiarities and compromises of the editor often arise from the needs of the integrated spreadsheet functionality, line splitting and moving between lines doesn't work exactly like in a modern text editor. Still, for a 1987 tiny portable computer it is quite an impressive package.

The software suite and the OS become better the more keyboard shortcuts you learn. Just as I've saved a text file, I can jump over to the RS-232, transmit it, and then press ESC to get back. Most of the important shortcuts for text editing are listed below the screen and this really is helpful. 

The lack of rows on screen is slightly alleviated by the overview map at the right side of the screen with one character represented by one pixel. This is the earliest editor where I've seen this, it's quite common in modern code editors like Sublime Text.

PipeDream's handy map

Moving around using TAB and shift-TAB, you can insert "expressions" into the positions and have the software calculate sums etc. Elsewhere you can just continue typing text without being limited to the cells.

The calculator is the most visual function in the device. It's clumsy and simple, but does have the virtue of being available even if you are in another program, by using [SQUARE]R. The clock and calendar can be invoked in a similar manner. Together with the suspended task switching, it gives a tiny sliver of sophistication without multi-tasking.

Instead of Sinclair BASIC, there's the BBC Basic, which seems a little funny considering how Sinclair and Acorn used to be in competition. The BBC dialect is pretty famous for its structuring and it even has an inline assembler. 

The manual also provides an interesting hack to use the Filer "CLI execute" function to tokenize ASCII files by first opening the BASIC and then virtually typing rest of the plain text file contents in as keypresses. Put AUTO as part of the macro and it doesn't even need line numbers. Ingenious or kludgy? At least this means PipeDream can be used for writing program listings, as BBC Basic can use named procedures.

The "CLI execute" can also be invoked through Basic, so a command can launch another app and type in commands there. The freedom given to the user is really mind-boggling, and even if you don't want BASIC or assembler, PipeDream is quite versatile in itself.

A BOOT.CLI can be used but on the non-upgraded Z88, this sadly only works from an EPROM. This could, for example, make the computer boot into BASIC after reset. However, seeing as the computer is either on or in standby, the most sensible use for the boot file is to manage preferences after reset.

I experienced a considerable slowdown at one time, especially after playing with these CLI execute functions. Typing with PipeDream was no longer comfortable, even if I had cleared all internal RAM of files and KILLed all unnecessary apps. I reset the computer and all was fine again. Perhaps there was some garbage management problem.

The BASIC has no graphics commands, I guess because it would be wasteful to hold a pixel buffer. I see the author of BBC Basic has created a patch that adds the graphics commands, though.

There are more recent versions of the operating system, done by enthusiasts after Cambridge Computer shut down. Some of the tiny problems I encountered might be fixed by upgrading the Z88.

Colton Software still makes PipeDream, not for the Z88 mind you!


A few thoughts at this point

Much like with the Sinclair QL, the Z88 felt a little iffy at first but I became more and more intrigued with the platform. The computer invites learning to use it better, finding shortcuts and tricks as you go along.

The Sinclair QL already provided a word processing and spreadsheet suite, but the execution was marred by hardware decisions. In a way Z88 continues this fixation but doesn't have similar problems.

This focus on business productivity means that many cool things are left out, such as graphics or sound. There's no mouse, but a computer like this does not really need one.

There's an estimate of some 60000+ units made.

One can't really blame Cambridge Computer for not succeeding, as far as I know no-one really scored it big with these small form factor computers in the 1980s. Typing on the go was a niche thing and buyers more likely put their money into more powerful computers, rather than tinier computers. Although 6 million TRS-80 Model 100 units sold, if true, is impressive. 

I could compare my tiny 8-bit computers Canon X-07, Atari Portfolio and the Z88. It's possible that because of the huge keyboard and the comprehensive feature list, the Z88 beats the others in terms of usefulness and features for the 2020s. Obviously Atari is the smallest of the trio, but without any programming language built-in, the fun factor is lower. I guess without extra memory Z88 would be limping too, so the comparison is not so straightforward.

Traveling silently

I might eventually look inside, if only to peep at the capacitors and any signs of dust or grime. I postponed this as it looks like a couple of screws are under the rubber feet and one is under the serial number label. The LCD and its ribbon are also notoriously fickle.


Serial transfer

I quickly built an RS-232 adapter cable for my USB-COM device, and it worked well enough. One brainfart had to happen though, using the wrong gender at the Z88 end of the cable. Well, gender-changer to the rescue. 

I can already say that sending data from Z88 at 9600 rate is ok, but it is hopeless at receiving at this speed.

Beam me up

Minicom was sufficient to test the connection.

If the device is called ttyUSB0 on Linux, then:

minicom -D /dev/ttyUSB0

I then set minicom to 9600, 8N1 (Parity none).

At the Z88 end, I launch the Control Panel (Square+S), set Parity None and Xon/Xoff to No.

Then I can use the VT-52 terminal in Z88 to send and receive characters and the Import/Export app to transmit and receive files.

With some more work I was able to store some of my first PipeDream jottings for historical purposes. I already feel more safe about resetting the Z88.


Some links:

Crash! magazine and Simon Goodwin on Z88: https://www.crashonline.org.uk/39/z88.htm

Rakewell has kept the name alive over the years: http://www.rakewell.com/z88/z88.shtml

More resources: https://cambridgez88.jira.com/wiki/spaces/welcome/overview?mode=global

Pictures of the insides at Old Crap: https://oldcrap.org/2019/10/28/cambridge-z88/