Sinclair Library

Basicare Persona SP

Hardware: Add-on

Basicare Micro System · 1983 · Pound sterling 45.00

Not rated yetSign in to rate it

Initial interface for the Basicare 'Tower Of Power'. Once the interface was connected, you could then add any of the other Basicare modules. Buffered 64-way bus.

Discussion

Nobody has started a thread about this yet.

Start a thread

Remarks

price for basic Persona module; various prices for extra add-ons

SPOT: hardware extension modules: Persona SP, Pericon A, Pericon C, Link A, Autostart DROM, etc

In the magazines 31

Your Spectrum #3May 1984 · p.33

Your Spectrum

Ian McKinnell

THE TOWER OF POWER Towering above competitive add-on units for the Spectrum, the Basicare system offers a wealth of new applications for the 'professional' user. SQ Factor funds out whether the system measure up... The early adverts for the mould-breaking ZX81 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 powerhouse that the ZX81 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 a 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 point 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 burns and minds cluttered with the characteristics of 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 aluminium 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 ZX81 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 breadboard 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 whetherthe Prism VTX5000 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 ZX81 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.

A BASIC program giving an interrupt driven MEM function, in answer to Toni Baker's request for a method of using Interrupt 2 on 16K machines. Opaque, isn't it? 10 CLEAR 32330 20 FOR i=32334 TO 32398: READ a: POKE i,a: NEXT i 30 DATA 62, 40, 237, 71, 237, 94, 201, 62, 63, 237, 71, 237, 86, 201, 255, 243, 245, 229, 213, 197, 58, 59 40 DATA 92, 203, 95, 32, 31, 62, 191, 219, 254, 31, 56, 24, 237, 91, 101, 92, 42, 178, 92, 237, 82, 68 50 DATA 77, 205, 43, 45, 205, 227, 45, 62, 191, 219, 254, 31, 48, 249, 193, 209, 225, 241, 251, 237, 77 60 SAVE "mem16k" CODE 32334,66 70 REM LET on=USR32334 80 REM LET off-32341 90 REM Delete REM from one of the lines above to activate it

THE BASICARE SYSTEM DISASSEMBLED BEFORE YOUR VERY EYES FOUNDATION MODULE Persona SP 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 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 same 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. CONTROL MODULE Pericon A 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, you just slap on another module, up to a limit of perhaps four. Well, at least four, say. It would seem that more might 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 la 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 to... CENTRONICS MODULE Pericon C 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 further 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 LLIST and LPRINT. This driver is placed at address 32300 decimal, and I 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 Autostart 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 listings 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. ANALOG MODULE Link A 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 module's 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 POKEs. 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. FUNCTIONS MODULE Autostart DROM 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 1) 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 applomb. 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. The 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 only snag 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 MODULE Clock This is a proper real time clock with battery back-up and its own timing circuitry. It's therefore much more accurate than the Spectrum's 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. MEMORY MODULE RAM 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 ZX81, 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 RAMTOP. Basic programs longer than the normal 16K versions (which are really restricted to about 9K) cannot be run 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 16Kof 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 Hi-res screens and zapping them into the real screen memory in turn to produce a second of Disney quality animation? That would need three 64K modules. 0000 ;MEMCHECK 0000 ; 0000 ;ACTIO- HOLD ENTER KEY TO SEE INDICATIO 0000 ;OF FREE MEMORY- ONLY APPLIES DURING EDIT 0000 ;MODE WITH K CURSOR- THIS VERSION MEANT 0000 ;FOR USE WITH BASICARE AUTOSTART SOFTWARE 0000 ;BUT SEE BOX BELOW AND BASIC VERSION 0000 ; 5C3B = FLAGS EQU 23611 5CB2 = RAMPTOP EQU 23730 5C65 = STKEND EQU 23653 0000 ; E2C5 = ORG 58053 E2C5 C326E3 JP 58150 ;REPLACES RETURN E2C8 ; INSTRUCTION E2C8 ; E2C8 ;******************************************* E2C8 ;* TO ADD MEMCHECK TO TONI BAKERS RESET, * E2C8 ;* REPLACE HER 'RETI' INSTRUCTION WITH A * E2C8 ;* JUMP RELATIVE TO THE END OF HER ROUTINE,* E2C8 ;* THEN ADD ON THE FOLLOWING (IGNORING THE)* E2C8 ;* ABOVE AND THE ADDRESSES) * E2C8 ;******************************************* E2C8 ; E326 = ORG 58150 E326 F3 DI E327 F5 PUSH AF E328 E5 PUSH HL ;YOU KNOW IT E329 D5 PUSH DE ; MAKES SENSE E32A C5 PUSH BC E32B 3A3B5C LD A,(FLAGS) E32E CB5F BIT 3,A ;K CURSOR? E330 201F JR NZ,SKIP E332 3EBF LD A,0BFH E334 DBFE IN A,(0FEH) E336 1F RRA ;ENTER PRESSED? E337 3818 JR C,SKIP E339 ED5B655C LD DE,(STKEND) E33D 2AB25C LD HL,(RAMTOP) E340 ED52 SBC HL,DE ;CALCULATE MEM E342 44 LD B,H E343 4D LD C,L E344 CD2B2D CALL 02D2BH ;STACKBC USEFUL E347 CDE32D CALL 02DE3H ;PRINTFP ROM ROUTES E34A 3EBF LOOP LD A,0BFH E34C DBFE IN A,(0FEH) E34E 1F RRA ;ENTER STILL PRESSED? E34F 30F9 JR NC,LOOP E351 C1 SKIP POP BC ;IT ALL COMES BACK E352 D1 POP DE ; TO ME NOW E353 E1 POP HL E354 F1 POP AF E355 FB EI E356 ED4D RETI E358 E358 = END

Read it at Your Spectrum Unofficial Archive

Sinclair User #15Jun 1983 · p.36

Sinclair User

Stephen Adams

MAXIMUM EXPANSION WITH BASICARE Stephen Adams reviews a system which gives the ZX-81 limitless flexibility. The Basicare system consists of a set of modules all housed in the same long, flat, silver, shaped boxes. The boxes are stacked vertically on top of each other, connected by a 64-way white edge connector. The edge connectors act as the spine of the system and have additional control signals to those from the back of the ZX-81. The extra control signals are used to expand the memory size beyond the 64K limit of the computer and also give it its flexibility in design. The system can be expanded at any time by plugging-in another module on to the top of the stack and the range of modules allows you to have as much RAM as you need in small or large jumps and to attach any number of printers and ports to the system. The basic module is the Persona which has to be at the bottom of the stack and is the device through which the computer communicates with the RAM and other devices. The Persona contains refresh circuitry so that the dynamic RAM does not have to rely on the REFRESH address from the computer. As the REFRESH (R) register is used for a different purpose on the ZX-81 that is a good idea. It also means that if the computer is changed to a type which did not have a refresh signal for dynamic RAM - a Vic, for instance - dynamic memory could still be used. The reason for using dynamic memory is that it reduces the number and size of the chips dramatically when compared to static RAM. The Persona also buffers all the address and data lines so that no great strain is placed on the signals from the ZX-81. The Sinclair ROM and 1K internal RAM can be turned-off if required to insert your ROM - the internal RAM on the ZX-81 has to be turned-off when using any other RAM pack anyway but that facility is provided to give the user a choice. Two pins are provided to re-set the system without pulling-out the power plug. Basicare even supplied a switch mounted across those pins on the system I was using. On a larger system each page has to be set up using the reset switch on powering-up the system, so that can be very useful. The other thing about the re-set switch is that it effects only the page of RAM on which you are at the moment and so does not erase any of the program or data in other pages. The other two pins are for selecting DATA or Toolkit sections of memory using the Minimap or changing the use of a particular RAM pack. In that case a jumper wire must be used with a plug on each end to connect between the back of the Persona and the module concerned. Basicare can supply the jumpers if required. All the modules have one or two holes in the back either for connection to other equipment - in the case of the Pericon printer module - or choice-selection pins. The selection is made usually by inserting small blue pins on to the Molex pins to join them together. All the blue pins required are supplied by Basicare when you buy the module. It is a pity that some standardisation could not have gone into the positioning of the choice pins, as every module seems to have a different set-up and the pins on the Pericon module have even been moved to the right-hand side of the case. The RAM modules for 16K and 64K have to be allocated a bank number and a page number via the choice pins. Each bank is made up of four 16K pages. On the 16K RAM modules the RAM can be put into any page of any bank so long as there is not another module allocated there. On the 64K modules the RAM must all be in the same bank because they use single 64K chips. The system is set up for four banks when using the Minimap module and only one when it is omitted. If you want more than 32K of dynamic memory on the system you have to include the Minimap in your calculations. The memory map under the Basicare system is divided into 16K sections, with some sections divided into 4K and 8K sections due to the way the ZX-81 hardware was designed. The two biggest sections, called File A and File B on the normal ZX-81 system, would be covered by the l6K RAM pack as it appears twice in the memory map. That is because the File A area is used to store the program and data and the File B area used to display the screen created in File A. On the Basicare system those two areas are switched together, even though the two RAM areas may be split to make better use of the RAM. Some provision for a TV display must be made in Page 0 so that the user can see that the system is working. In other pages the File B area may be used as a data store, but not by Basic, or as an alternative TV display. Basicare suggests that alternating between two File Bs would be a good way of providing animation. Any dynamic RAM must be located into one or both of the File areas. Under a non-Minimap system that would limit the user to a maximum of 16K, as File B would have to be a reflection of File A to see any results. The bank and page number of each module and whether it appears in File A/B or both is on without crashing the system. Using only the Persona and RAM packs, 56K of RAM can be used as the system needs a Minimap module to control the extra RAM. The Persona plugs into the ZX-81 expansion port - the large hole at the back - and the only device you can use with the Basicare system is the Sinclair printer. That is because it is an I/O-mapped device which is excluded from the Basicare system, which operates only on memory-mapped devices. I/O ports could be used but the ports must provide a PCB edge on which to connect the Basicare system and they must not draw too much power. Power must be a consideration on such a system as the ZX-81 is supplied only with a 700ma power pack, unless you have bought a printer with a larger 1.2 amp power supply. Every module you use must be supplied with power from somewhere; at the moment that is from the ZX-81 power supply via the 9V output on the edge connector and the internal +5V regulator in the Persona. Provision is made at the back for power to be provided direct into the back of the Persona but a power pack is not yet available from Basicare as a standard item. Users therefore will have to limit their systems to what the Sinclair power pack can provide - a 16K RAM and Persona on the 700ma power pack - or build their own. The connections at the back are via standard Molex plugs - 0.1in. spacing - and the system can be driven from a +12V or a full +12V/-12V/+5V supply. A car battery, for instance, could be used as a standby or main supply for the system. The other set of Molex pins on the back Of the Persona module selects the different set-ups which can be required, determined by the pins on the back Of each RAM module. Switching between RAM pages - 16 in all, from banks of four pages - is done by one POKE to a memory location inside the Minimap. The Minimap is located in the SLOT area at Slot 0 or memory location 45440. By PEEKing at that location the page number for both the File A/B and the Data/Toolkit areas can be determined. That is the main area where machine code can be stored and EPROMs and user-deftnable graphics modules can be located. It is 8K long and is over-used at the moment on the ZX-SI for every thing from speech to graphics add-ons. None of them will work with the Basicare system, as no Sinclair PCB connection is provided on any of the available modules. Putting them on the computer PCB and then plugging-in the Basicare system at the back would knock out both systems. Basicare provides two modules which can go into that area. Both are based on 6116-type static RAM chips. RAM 08 can give up to 8K of RAM and the DROM provides up to 8K of battery-backed memory - a nickel-cadmium cell inside the module charged by the computer. The DROM module can have a USERFONT option fitted which gives user-definable graphics. The RAM 08 can also contain EPROMs up to the same 8K and the DROM can have 2K sections write-proteCted so that you cannot wipe out data or machine code accidentally. With the Minimap in place and a few jumpers the Toolkit section can have four different pages using the same POKE to switch pages as the dynamic RAM. The Toolkit and Data areas are switched together and the page numbers can be different from the dynamic RAMs. Using the Toolkit or Data areas to store variables is the only way to exchange them between programs in different pages. For example, to transfer number A from the current page to page 0 would require to use a program like this: 100 LET PAGE=PEEK 45440 110 LET FILEAPAGE=INT (PAGE/16) 120 LET TOOLKITPAGE = PAGE - INT (FILEAPAGE*16) 130 REM FIND TOOLKIT PAGE NUMBER AND CURRENT FILE A PAGE NUMBER 140 POKE RAM08,A 150 REM MUST BE 0 TO 255 160 LET FILEAPAGE=0*16 170 POKE 45440,FILEAPAGE + TOOLKITPAGE The program would find from the Minimap the current Toolkit and File A (program) page numbers. The Minimap number is always made up of File A "Page" number multiplied by 16 plus the Data/Toolkit page number. Then POKE the RAM - RAM08 - in the Toolkit area with A.Strings and decimal numbers would take more than one memory location to store them, so the user must devise a system to transfer them correctly. The new POKE to be made to the Minimap must then be calculated to keep the Toolkit page the same but to alter the File A page to 0. When the POKE has been done the program in the File A section of Page 0 will then be operating, so the number must be retrieved by a LET A=PEEK RAM08 somewhere in the program. Basicare has provided no hints in the documentation on how variables should be passed between pages and has left it to the user to devise a system which will lead to non-compatible software on the same system. Apart from some printer routines, the user is left to make up his software. Each system may be individual to the user but it would have been pleasant to see some software available. The Data area can also be used to transfer variables from one page to another but cannot be used for machine code. That is because of the way the ZX-81 hardware was designed. On a non-Minimap system that can be used as part of Basic memory by POKEing two of the system variables to alter RAM-TOP. On the Minimap system, however, the program must be stopped from using that area for Basic as it would destroy the program when any switching was done. The same method as used in the Toolkit area therefore must be used to transfer variables from page to page. Using that area - 8K long - for the transfer of variables leaves the Toolkit area free for the controlling routines in EPROM or RAM. The RAMOS module can be used only in that area and requires a jumper wire to change it from its normal Toolkit area place. The use of the path area is not mentioned in the documentation but I assume that it might be something similar to the BBC computer TUBE interface which allows you to have a common memory area between various computers. The SLOT area is where all the input-output devices are located, such as printers, disc drives and ports for controlling devices outside the computer. It is divided into seven SLOTs and each has its own set of addresses with the 4K area of memory. The device types-in each SLOT which can be divided into four device types and each device type has up to 32 addresses allocated to it. The Pericon and Minimap are the only devices available for that area. The Minimap uses SLOT 0 and the Pericon SLOT 7. The Pericon modules contain 8255-type, three-port chips, one of which is used to drive a parallel Centronics-type printer. The Pericon-C module can be used to drive any printer as the software program is stored in one of the File A pages. Storing different routines in different pages allows you to use them as one long program, since when you jump to a new page all the system variables are changed, too, so you continue where you ceased when you last used the page. When you set up a program you must go through all the pages to be used and RUN the program in them, so that when you return to a page you do not have only a LIST of the program. Menus in each page would help to give you the choice of jumping to another page or using the routine in the current page. The hardware is fairly simple to use; if there are any complications with a particular module Basicare provides a program of part Basic and part machine code which will help you. That is true only of the USERFONT and the Pericon printer modules. The details on the system are of a technical nature and very sparse on how the system works inside the modules. The details are split into sections to go with each module and although there is a brief description of the system at the beginning, it is not sufficient to help the first-time, non-professional user. Programs and routines to enable you to make an easier use of the system, which is complex, are nonexistent. It would have been better if Basicare had produced a manual which described the system in its entirety than to split the information into details on the individual modules. Some software routines should be made available on tape or in EPROMs to allow the user to control the system he is trying to use. Routines such as the automatic transfer of certain variables between pages using a specified module in the Data or Toolkit areas would help. The storage of printer routines, for instance, should not occupy RAM space in the main program - File A - area. I know that restricts the use of the system but it allows users to swap software or for Basicare to provide some standard programs on tape. The minimum usable system would therefore have to consist of a Persona Minimap - because there are cheaper ways on the ZX-81 to have more memory in a 64K memory map - at least two pages of RAM and a RAMOS module in which to store data and machine code routines. All of the software would have to be run in from tape, unless you invested in a DROM module or had someone program it into a ROM. That means that the program and data would first have to be loaded into the File A area and then transferred to the Toolkit area. In that case the high-speed cassette system or disc system Basicare says it is producing would be useful, as well as some machine code routines to transfer data from one area of memory to another. Dynamic memory of 52K and up to 64K of Toolkit/Data area memory can be provided on the system - not 1MB as the advertising suggests - and this will take some organising. Any commercial software bought for use on the ZX-81 will have to be limited to 16K, unless modifications are made to it to make use of the Basicare system way of doing things. The hardware works well and so long as the power can be supplied will allow the user to extend the RAM and ports to its maximum. The connection to the ZX-81 is good and the system should not suffer from white-outs. The user can extend the system as and when he wants but is restricted at the moment to Basicare modules; none of the Sinclair equipment apart from the printer will work. The software and documentation with the system needs to be expanded to make it easier to use. Its popularity will depend on whether Basicare can produce Personas for different computers and whether it and other manufacturers produce sufficient modules for it. The cost must be compared to the need to have extra memory, as its initial cost is reasonably high.

'Apart from printer routines, the user is left to make up his software'

'The user is restricted at the moment to Basicare modules'

Memory map of the ZX-81 using Basicare. 0K to 8K: ROM Area (Not Switched) 8K to 16K: Toolkit Area (Switch 1) 8K 16K to 32K: File A Area (Switch 2) 16K 32K to 48K: Data Area (Switch 1) 8K 48K to 52K: Path Area (Not Switched) 4K 52K to 56K: Slot Area (Not Switched) 4K 56K to 64K: File Area B (Switch 2) 16K The two switches shown are independent of each other and switch 2 can choose only the first four pages.

Sinclair User #12Mar 1983 · p.26

Sinclair User

BASICARE TURNS THE MICRO INSIDE OUT 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 of the ZX-81. 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 576KB. 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 bus via a PERSONA module, which fits into the computer memory map. That way the modules can remain the same: it is only the position on the memory map which changes. The basic system must consist of a computer - at present the only PERSONAs 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 map - 8K or 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 16K or 64K dynamic portions or 2K chips of static memory. Dynamic memory can be used only in the 16K-32K and 48K-64K regions of the memory map. The RAM pack containing static chips may have a USER-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 to 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. Basicare Microsystem Ltd is at [redacted].

Basicare expansion system

Personal Computer News #2Mar 1983 · p.51

Personal Computer News

Ian Scales

NAME: Organic Micro MANUFACTURER: BASICare Microsystems [redacted] PRICES: Persona £28.70, Minimap £34.45, RAM 08 (2K) £22.95, RAM 16 £25.25, RAM 64 £74.70, DROM (2K) £37.90, Toolkit £20.65, Pericon-a £26.40, Pericon-b £32.15, Pcricon-c £40.20. OPTIONS: Userfont £8, additional 2K for RAM 08 £6.32, additional 2K for DROM £7.48. ZX81 TOWER OF POWER The Organic Micro concept could give your ZX81 a gigabyte of memory. Ian Scale explains. Is the conventional concept of 'peripheral' outdated? Imagine a system that costs £49 to start with but grows in modules to provide megabytes of memory. It also enables you to tailor character and graphics sets, store programs in non-volatile memory, add a printer and magnetic storage and control robots or measuring equipment. These are the claims for BASICare's Organic Micro. It consists of a marriage between a Sinclair ZX81 and BASICare's range of modular memory and interface cards. BASICare's Organic Micro concept cuts across definable boundaries. It's technically a series of peripherals for a Sinclair ZX81, but it's also planned to offer a 16-bit processor that ousts the host micro - some peripheral. The idea is that you build your own system from a ZX81. You start with a couple of modules to organise the memory map and buffer the Sinclair signals. Then you just keep adding more memory and interfaces as you require them. The physical problem, of delivering such a system have been overcome by going high-rise. Instead of an untidy slum of boxes and wire, the modules interlock and are fastened with 64-way bus connectors on the bottom and top of each module. So long as your ceiling is high enough (see picture), it should be possible to keep stacking until the bank balance gives out. The Organic Micro, says BASICare, avoids the trauma of making the big leap to a new system and writing off the old one. When the system begins to show its limitations new modules are simply bought to bring it up to scratch. Eventually older, obsolete modules can be removed as new 'whizz-bang' gadgets are bought to replace them. Like its owner, the system can grow and change; continually replacing cells, but keeping its soul intact. The most immediate advantage to the ZX81 owner is mega memory - up to four megabytes. This sounds rather like towing a lorry with a mini when you consider that the ZX81 comes with 1K RAM and has a conventional address space of 64K. This means the processor is capable of dealing with only 64,000 characters of memory at one time. The BASICare system gets round this problem with a technique called paging, where the processor literally switches between 'pages' of memory. Imagine a telephone network. Telephone numbers of four or five digits can be exchanged between people in the same area. People living in another area could have the same local numbers, so when a connection is made between areas it is necessary to dial out of the local areas using an extra code of digits. The destination of the connection is then determined by a set of local digits. 'Paging' involves much the same technique (see diagram, page 53). Peter Choi, the man who developed the Organic Micro, sees a progressive increase in the viability of solid state storage to the point where it overhauls and replaces the magnetic disk. The micro of the mid to late '80s will therefore have several megabytes of memory. This will contain all the user's data files and programs, and back up could be provided by some form of tape system. The memory need never be cleared, although Mr Choi sees users initially saving memory onto tape at the end of a session and re-booting when the micro is used again. By this stage true 16- or even 32-bit microprocessors and their attendant software will have put paid to 8-bit chips, and the micro will be able to address megabytes of memory. Remember, too, that even an address space as large as one megabyte could be multiplied by page switching - so a user could conceivably have close to a gigabyte of data - not just a DOS away but literally at the fingertips. Heady stuff - but what has this to do with putting pep into a Sinclair. Pray, read on. Normally a manufacturer's visions of the rosy future must be taken with a grain of salt. Most would rather sell computers to an existing market they half understand, and leave the future for another day. The BASICare vision is actually being allowed for in the present range of products. The liftshaft of our fanciful high-rise comprises a full 64-way databus which could theoretically address data for a 32-bit processor. But in the medium term BASICare has its eye on the 8088 16-bit processor and the IBM PC operating system MS-DOS as a likely upgrade path for Organic Micro users. This is rather neat, as it resembles the breeding strategy of the cuckoo. The BASICare egg is deposited in the Sinclair nest, grows in value beyond the initial Sinclair investment then kicks the Sinclair out and takes over completely. BASICare is promising its 8088 housed in a replacement keyboard unit for the ZX81. It is also working on configuring the Spectrum and considering other makes and models. GROUND FLOOR MODULE Present configurations of the Organic Micro always start with the Persona. This 'ground floor' module links in the ZX81, and buffers its signals to perform a few organising tasks on the data flowing between the processor and the modules. The Persona gives you access to most of the features except memory over 64K. To go any higher the Minimap system must be configured. This acts as the telephone exchange for the different 64K areas of memory, and switches appropriate pages in and out to the processor when they are required by the program. RAM 08 is a low-cost memory module with 2K expandable to 8K by the inclusion of extra RAM chips. RAM 16 and RAM 64 are available for the more ambitious. TOOLKIT MODULE The DROM module is a taste of things to come, and relates to BASICare's concept of permanent memory. It uses low power CMOS static memory and 2 to 8K of development programs or routines can be held in place after power-down by a long-life nickel cadmium battery which is charged during normal operation. The 2K segments can be protected against accidental overwriting by manipulating 'shunts' with cap pins protruding from each module. EPROMs are configured into another class of module called Tool kit. The Tool kit is a conceptual receptacle for handy routines which can be called into a program. The idea is that routines are developed and tested on DROM and then committed to EPROM and left on standby for use with various programs. Userfont comes as an optional extra for purchasers of RAM 08 and DROM. Using it you can create your own characters, particularly lower-case characters, to give the otherwise rudimentary Sinclair text a bit of class. It also allows specially defined characters to be combined to create blocks of graphics for high-resolution animation of games or diagramatic displays. The Pericon modules provide a means of getting some of the results of these features to the outside world. Pericon-a is defined as a general purpose input/output tool. It provides three eight-bit ports for connection to LEDs or relays. Pericon-b also provides three eight-bit ports which consist of 24 lines of buffered output. It can be used to drive relays directly or very long signal lines. BASICare is also working on a fast-transfer cassette machine and an analog-to-digital, digital to analog converter. To make use of the Organic Micro you have to have a good grasp of programming - the modules are mostly for people who know what they are doing, or at least are prepared to sit down and start learning. BASICare suggests that a beginners' system could comprise a Persona and RAM 16, costing £46.90. From there extra modules could be added as the user becomes familiar with the system. This gradual approach would certainly be wise. Nothing is handed out on a plate. Commercial software is nil, except for those small programs currently available for the Sinclair. As these don't make use of the features you are buying it would be foolish to rely on them. The documentation is by no means comprehensive and a few listings demonstrating the animated graphics capabilities of the system at its various stages of growth would probably be appreciated. The fact that the information provided is rather terse shows that BASICare has yet to consider the potential of its products as an upgrade path for the massive crop of ZX81 users. Many of them have already outgrown their computers, and are hungrily watching for products which offer a reasonable up-grade path. But I am assured that BASICare has a mass-marketing plan in hand.

EXPANDING MEMORY ON A SLIDING SCALE This slide-rule diagram illustrates the memory management of the Organic Micro using Minimap. Since an 8-bit address space is limited to 64K the Minimap's job is to organise a larger memory so the processor (represented by the slide rule cursor) doesn't find itself faced with two blocks of data sharing some of the same addresses. This is done by dividing the entire memory of the system into three memory groups. Each horizontal group is sub-divided into segments. These each use the same set of addresses. Memory group II has a series of 32K segments containing Basic programs. Memory Group III has 16K segments of machine code or Basic routines, while segment I must always have the Sinclair ROM with its Basic interpreter plus some extra information to organise the modules. Using our slide-rule analogy you can see that different memory groups can be 'slid' so any segment in group II can team up with any segment in group III under the cursor (processor). Together with group I they then present a vertical 64K 'page' of memory to the processor. Imagine the processor processing information from a 64K page and using some of the information gleaned from the program to direct the Minimap to slide a different configuration of groups II and III under the cursor. Because several programs can be in memory on different segments, it is possible to use the output of one program from one page configuration to provide input to a program on another, multiplying the memory available for one program. This is especially useful for animated graphics programs.

Full-page ad13
Advert5
News/Note3
Feature3
Two-page ad3

Reviews from people here

Sign in to write about this, or make an account. It takes a minute and lets you correct the catalogue too.

This entry100% complete

Everything ZXDB can hold about this is here.

Sign in to correct or add to this.

See what has changed about this entry

Share this entry

Hold the rights to this and want it taken down?