Hardware Feature #31
Name Manufacturer Price
Basicare System Basicare Microsystems Varies - See below

Basicare System


The following article was taken from Sinclair User March 1983

BASICARE seems to be intent on revolutionising the world of microcomputing by providing all the facilities of a computer except the CPU and the language, outside the micro. The system contains RAM and can be extended to Centronics printers, character generators, battery -backed RAM, RS232, with no worry about where to fit them in the 64k of the memory map.

When fully expanded the Basicare system could have 112 peripherals, divided into SLOTs on each page of the
memory map. Sixteen pages of 32k worth of dynamic memory, 512k of memory for use by Basic or machine code, four 8k areas of DATA plus four 8K areas of TOOLKIT routines – ROM/RAM or battery-backed RAM. Total memory size of the system is 576k. Since they take up most of the expense of any system, Basicare has made them compatible with most computers by linking them via a 64-way edge connector. The computer is connected to that via a PERSONA module, which fits into the computer memory map. That way the modules can remain the same: it’s only the position on the memory map which Changes.

The basic system must consist of a computer - at present the only PERSONA's available are for the ZX-81 and
the Spectrum - and the PERSONA for that computer.

Having established the system for accessing all those extra boxes, you are still limited to 64K of memory – 16k ROM, 8k for SLOT and PATH areas, and the rest can be RAM unless you buy a MINIMAP module to switch the pages in the system. That would seem essential, otherwise there are many other cheaper systems which stay within 64K.

Extra memory may be added in l6K or 64K dynamic portions or 2K chips of static memory. Dynamic memory can be used only in the 48K-64K regions of the memory map. The RAM pack containing static chips may have
a FRONT option fitted to allow you a programmable character set.

The SLOT area in the memory map - 44K-48K -is used to store all the input/output devices such as Centronics printer module - Pericon c - and the two types of 24-line input/output ports available - Pericon a and b - The SLOT is also used to access the MINIMAP by POKEs to change the pages. Another 4K area. called PATH is not specified in the documentation and presumably will act like the BBC computer TUBE interface to connect other micros.

The file area - dynamic RAM - can be used to hold segments of a program like subroutines. Those subroutine pages can be called by a Basic POKE to change from one routine to another.

Product Descriptions

NAME PRICE DESCRIPTION
Persona 45.00 Interface required to connect all other modules.
RAM 16 26.75 16k RAM module.
RAM 64 76.25 64k RAM module.
MINIMAP 35.95 Memory mapping/switching module.
DROM 39.50 2k of battery-backed ROM.
Toolkit 22.50 8k of ROM for users programs.
Pericon A 27.90 General purpose programmable 24-line I/O module.
Pericon B 33.75 Heavey duty programmable I/O module.
Pericon C 41.75 Centronics printer module.
Sonus 31.15 Sound synthesiser module.

The following review was taken from Your Spectrum

Towering above competitive add-on units for the Spectrum, the Basicare system offers a wealth of new applications for the ‘professional’ user. SQ Factor finds out whether the system measures up...

The early adverts for the mould-breaking ZXS I suggested that the Cambridge miniscule miracle was capable of controlling a power station. While others choked, turned purple, or rolled chortling in the aisles between the card sorters of their doomed mainframes, Basicare quietly designed a power house that the ZXS I could run - a modular one, limited only by the height of your ceilings. And now it’s available for the Spectrum.

The ceiling height is significant because the expansion modules stack neatly on top of each other, and because the accompanying literature gives several different figures for the maximum memory that can be added to your ZX, ranging from 256K to a gigabyte (this last from a reprint of a review by another magazine and hence, highly suspect). At just under an inch and 64K per module, a one megabyte memory will stand about a foot and a half high, counting the two modules needed for interface and paging. Personally, I’d stop there, but real maniac with six feet of clearance between desk and ceiling, or who is willing to compute in a stairwell will be pleased to know that the Basicare documentation definitely says that four megabytes of address space is possible. Not all of this is available for RAM, however, as the paging system devotes some areas to other uses.

Non-maniacs who have not yet left us may well be more interested in these other options: such as the eight-channel A/D converter; the non-volatile, auto-start CMOS memory module; Centronics interface; EPROM module; and more. There are even hints of a 16-bit add-on processor to come, but at that pint you’d probably sling out the original computer as a drag on the system, and run the expansion on its own!

READ WHAT’S WRIT

Us aged duffers, hands crippled with solder bums and minds cluttered with the characteristics of the thermionic valves, nevertheless possess one clear advantage over most whizzkids when it comes to coping with new toys. Endless and repeated experience has taught us to read the instructions before doing anything else. Basicare’s literature is nostalgia reborn. I love it. Phrases like ‘Connections to the aluminum strips can be made with small crocodile clips" brings small crocodile tears to my eyes. Before computers became consumer products we enthusiasts drooled for hours over documents like these in search of enlightenment. It does eventually come, provided you are sufficiently enthusiastic. The information is all there, but it’s not too well presented.

What you get is a flock of photocopied ‘technical sheets’, the mix depending on which modules you have acquired. Most of them were originally written from the ZX8 I and are accompanied by an update sheet for the Spectrum, to be read in conjunction. The business of memory paging, without which no eight-bit micro can address more than 64K, is not beyond the understanding of anyone - but it’s beyond the patience of lots of people, I reckon, especially if they have to work from this documentation. Some of the confusion arises from uncertainty about whether the piece of paper you’re reading is meant to apply to the Spectrum or the ZX81 or both, particularly where addresses are concerned. These and other numbers are also given sometimes in Hex and sometimes in decimal, with no indication of which is which. However, most of the complexity is in the concept itself and, therefore, these products should be regarded as not for beginners, unless the beginner is determined to become an expert the hard way.

GOING ORGANIC

The ‘Organic Bus’ is a marvel of tidiness compared to the bread board tangle that this sort of equipment usually results in. Stacking the modules chains them onto the bus via a 64-way plug/socket out of the top and bottom of each module. Once plugged together, they stay put very firmly and the stack can be handled as a unit.

All the modules have pins sticking out the back which are used for various purposes, On the memory modules, pins are linked together to select appropriate positions in the memory maps, while the in/out modules also use them for guess what? Linking clips are supplied, placed in ‘get-you-going’ positions. The Centronics port has a proper 26-pin connector with grips.

The edge connector that plugs into the Spectrum has something of a homemade look, being held together mostly by a large dollop of cold-pour rubber compound; but it is serviceable.

Further Spectrum add-ons are not catered for, as there’s no carry-through of the edge connector. However; Basicare says the system is completely compatible with the Microdrive, and it did indeed work with ours. The two would seem to be good companions, with the Network and RS232 of the Microdrive filling a gap in Basicare’s range.

I asked whether the PrismVTX5000 Prestel adapter was compatible but Basicare has yet to investigate the idea, and I am too chicken to just plug it all together and see if it melts. For the moment I access Prestel with an unadorned Spectrum plus VTX5000.

Two further modules which we did not review are Sonus, a three-channel sound generator, and Toolkit, which can house 8K of your own utilities in EPROM. Other developments are promised for the future.

OVERALL

What we have here is a failure to communicate. The Basicare gear is tidy, powerful, robust and complex. It can give Sinclair users access to advance techniques for specialised applications which they would be unable to find elsewhere, and all in an integrated system - provided they are able to understand how to use it, that is! What it needs most is a complete re-write of the documentation, with separate versions for ZXS 1 and Spectrum, preferably written by someone who doesn’t do Hex to decimal conversion in their head.

Anyone who merely wants to bump the 16K Speccy up to the full 48K and no more, would be well advised to go for a simpler and cheaper alternative. This route is for the user with an application in mind, and the ability to implement it alone. Commercial programs for the Spectrum that use more than 48K and can cope with paging are not noticeably available.

If you want to turn your Spectrum into a sophisticated tool you’ll find the necessary building blocks in this system. The rest is up to you.

The Basicare System Disassembled Before Your Eyes

Persona SP (45.00)

This is the main module whereupon all others are stacked - the foundation of the tower block. By itself, it does nothing. Its function is to provide a buffered 64-way bus, regulated power supply (using the unregulated power supply from the Spectrum’s supply via the edge connector), and various decoding and paging signals for the other modules.

The buffering is a good idea from a safety point of view. I accidentally plugged the expansion into my 48K Spectrum without having previously made an essential modification to the innards (of the Spectrum) and got away with having two different lots of memory chips trying to control the data bus at the saint time. Not recommended, but not a disaster either.

The 16K Spectrum mates up to the Basicare system with no hardware mods but the 48K version has to have a connection made internally between one pin of a decoder chip and the edge connector. The purpose of this is to turn off the top 32K of memory whenever the Persona is attached. Unfortunately, this part of the memory can not be used with the Basicare system; it does seem a little odd to start an expansion by removing 32K of RAM and then presumably replacing it externally, and this feature will make the system rather less attractive to users of the larger model.

The Persona can power up to five modules, using the power pinched from the Spectrum supply. Larger expansions will require an additional power pack to be attached to the Persona.

Pericon A (27.90)

Control applications requiring a lot of TTL in/out can be implemented with this module, or for heavier use, the buffered version, Pericon B. There are three eight-bit ports which can be either input or output at your option, giving 24 in/out lines. If you want any more, just slap on another module, up to a limit of perhaps four. Well, al least four, say. It would seem that more moght possibly be managed using paging, which requires a Minimap module.
The Technical sheets on this one are technical indeed. Suffice to say that the inputs and outputs are low power Schottky TTL equivalent (can't be bad), and that up to 2mA can be had on output for driving a transistor, LED, or whatever if you don’t mind the voltage dropping below TTL levels. A few circuit examples are included to get you started, driving relays or the like. There is even a fairly ambitious project for making yourself a membrane keyboard out of kitchen foil and Sellotape (plus small crocodile clips). This is the kind of experiment that I prefer to conduct mentally, a Ia Einstein, but it would not be out of place in a classroom.

From the computer end, the ports appear as simple memory locations and are accessed by PEEKs and POKEs. Complexity appears in the shape of the control port which is used to set the others to input output or modes beyond, strobing and even bi-directional modes being available with a reduction in the number of lines. At this point I moved on...

Pericon C (41.75)

This is the Centronics interface module for use primarily with proper size printers. I was unable to test it as I have no Centronics equipment about the place (we’re RS232. we are).

However, I’m forced to recommend it anyway, as you’ll be unable to use the cheap and cheerful Sinclair printer with any of this gear. Nothing exotic like the clash of mismatched memory maps, merely the fact that the Persona module does not have a carry-through edge connector for the attachment of other Sinclair stuff; also, the one on the Sinclair printer, which does allow chaining, is not the full width, so the Persona can’t plug into it. Right daft, but who to blame? Both companies seem to have goofed here. You won’t be able to fit your joystick, either.

You get a cassette with the Pericon C which when loaded allows you to specify width (maximum 80 columns) and lines per page (maximum 66 lines) and then sets up a machine code driver to run the Centronics printer directly from LLI ST and LPRINT. This driver is p laced at address 32300 decimal, and l have no idea if it can be moved as the cassette seems to supplant any technical sheet concerned with this module, and there are no REMs in the program. I would have thought this was an ideal candidate for inclusion in the non-volatile memory of the Autotstart Drom. As it stands it would seem to limit one to a 16K Basic program, however much more memory you might have. (See also the RAM section on this point.)

Whatever niggles a conscientious (or contentious) reviewer might feel the need to grub up, real black-on-white listing instead of the standard ‘silver streak’ are a heartfelt need long denied to magazine editors and the like, and any piece of kit that can bring about this Jerusalem cannot be decried.

Link A (40.00)

Eight channels of analog input can be handled by this module, and you can, again, have up to four modules at least. The analog voltages must be between zero and plus five volts, and while a simple resistive divider will bring larger voltages into the modules range, other techniques are recommended for accuracy and safety. In particular, the inputs must never be allowed to go negative or over five volts. This is not a problem with resistive probes such as thermistors or strain gauges, but if you’re thinking of spectro-analysing your Hi-Fi then it’s a point to watch.

Unfortunately, what seems to be a diagram of a ratiometric input arrangement in the ‘tech’ sheet only had the labels printed, with the drawing itself left out. I would expect that anyone having a use for this module would probably already be familiar with instrumentation electronics, buffer amps and the like, so maybe it doesn’t matter.

The computer reads the module with PEEKs and selects the required input with POKE. Accuracy is stated to be one bit, working out to 0.4 per cent, which is better than any probe is likely to give. This one would seem to be suited to genuine scientific monitoring purposes.

Autostart DROM (48.00)

This is the point where the Basicare system came alive for me. Not only does this module give you up to 8K of non-volatile memory for your own routines, but it can actually cut out the Spectrum ROM at power-up, run its own initialisation routine, and leave you with a bunch of extra interrupt driven functions. It came supplied with resident software providing an auto-number routine for Basic lines, a machine code reset (derived from Toni Baker’s article in YS issue one), and a routine to read the Clock module in a convenient way. I’ve added my own bit of code to give an instant reference ‘free memory’ function (see listing) just to show that anyone who wants to re-write Sinclair’s operating system can do it with this module.

However, I must confess (having gone on a bit about us old hands always reading the instructions) that I switched off the write protection before I knew what I was doing, and somehow wiped the supplied program. Basicare kindly sent me a cassette with which to restore the code, if not my aplomb. As to why it wiped, either I was reading the wrong piece of paper (there were three lots for this module), or I was attempting to alter code which was actually running at the time, once every interrupt; on the other hand, just possibly my ‘reviewer mode’ simulation of the new user, a necessary ability for an article like this, is more advanced (read ‘naive’) than I thought.

The module is supplied with internal sockets for four CMOS 2K RAM chips, but you needn’t pay for more memory than you need. Ours had 4k fitted and two empty sockets. Write protection is selected for each chip by its own diddy switch at the back of the module, and the autostart feature can be enabled or disabled by the positioning of a link nearby. Write enables should only ever be switched on when you are entering or LOADing in code, and I would personally never touch them without SAVEing the relevant section of memory to tape first.

The obvious appeal of having your own idiosyncratic printer routines, utilities, or alternative character sets all ready on-board and operative at power-up needs no further elaboration, and makes this the most interesting module in the system.

The onlys nag I found was that the autostart routine that reads the Clock module places the time and date info into the Basic variable, t$. This means that a simple PRINT t$ command will put the time and date on the screen. However, it also means that a RUN or CLEAR command, which clears the variables area, confuses the interrupt routine and drops you into a sort of semi-crash. Furthermore, LOADing in a Basic program also seems to mess up, with the program apparently unable to recognise its own variables. But you can write a program while the feature is active, using t$ to PRINT the time if you want without any trouble, so I should think the debugging of this feature did not progress much past the EDIT mode. Too bad, because it will stop you using the autostart software unless Basicare fix it.

However, I can exclusively reveal that if you POKE 57866,24, then the t$ update is bypassed and you don’t get any more trouble. You don’t get the time, either (there are other ways to read the clock), but you can still use the other added features, auto-number, reset and my own mem bit. This POKE replaces a conditional relative jump (20 Hex or 32 decimal) with an unconditional one (18 Hex), so you know how to put it back. Don’t forget the write enable switches. This dodge is not needed unless the clock module is in place, as all it does is tell the software that there is no clock to read.

Clock (45.00)

This is a proper real time clock with battery back-up and its own timing circuitry. It’s therefore much more accurate than the Spectrums internal 50-cycle counter, and it doesn’t lose time during BEEP, etc. Besides the time, down to tenths of a second, it also keeps track of the day, day of the week, month and year, with the appropriate software. A cassette is supplied with two programs, one to set the clock and one to read it.

The internal nicad battery will keep the clock going for three months on a full charge, and it charges automatically.

Our module didn’t work at first, in fact the whole system hung, but it only needed setting. We couldn’t load the setting program because it hung on power-up, as we were using the autostart module, which accesses the clock every 50th of a second - said clock being hung up because it needed setting. Get the picture? No problem at all in fact, and a line of text in the documentation would have saved us having to phone Basicare (again) and do our Increasingly familiar moron act. If it happens to you just ditch the autostart long enough to use the setting program. The other problem with the autostart and clock we have already discussed.

RAM (24.50 8k, 26.75 16k, 76.25 64k)

We got the smaller RAM module, the 16K. A 64K version is available, but requires paging which would require a Minimap module. Unless you are prepared to get involved in such techniques, you’re limited to a 16K RAM expansion (not counting the additional 8K of the DROM) This would seem to be a hangover from the ZX8 I. which had a very different memory map to the Spectrum.

The major limitation here is that paging is only possible with a RAMTOP or 32768 or lower, which is to say within the Spectrum’s own on-board RAM. You obviously cannot page the stack in and out of the memory map without giving yourself problems! This plainly means that the mucho memory craziness with which we opened this piece applies only to machine code programs and data that can be stored above RAM TOP. Basic programs longer than the normal 16K versions (which are really restricted to about 9K) cannot be fit if you are going to use paging.

However, if you eschew paging for the duration, you can CLEAR to 48983 and still have room for the UDGs. In fact, the ROM does this automatically on power-up. You can then write or LOAD about 15K of Basic. This is short of the standard 48K machine’s capability, and you’ll not be able to LOAD commercial 48K software. To be fair, that is not what the Basicare system is about, but it does seem a little perverse to have a Megabyte of memory, but still not enough room for The Hobbit.

The reason a further 16K cannot be simply added on top is that the last 16K of addresses is set aside for the DROM and in/out modules. And that is what Basicare is all about. Perhaps there is a way to get a RAM module to sit in that slot. There are, after all, scads of pins sticking out the backs of all these boxes, with which to play all kinds of memory swapping tricks, but I can’t find it in the docs, and it’s beside the point anyway.

For The Hobbit you just carefully remove the Basicare equipment and hide it somewhere where it won’t get smashed up by adventure loonies.

If you don’t quite see what a lot of separate 16K pages that can’t be used for Basic are good for, how about storing, say, 24 Hires screens and zapping them into the real screen memory in time to produce a second of Disney quality animation? That would need three 64K modules.

[ Main Page ] [ Features ]