You may have seen ads, or heard about a “Timex 1000 clone” called the PC8300, available from a company in New Jersey doing business as “American Design Components.” The price is certainly attractive ($29.95), as are the claims that are made for this device. A TS1000 clone with music and sound, auto line numbering, moving keys, joystick port, TV/monitor option, high-res capability, and even a color addon? For 29.95? How can this be?
As an avowed ZX81 programmer (perhaps one of the last), I couldn’t resist the ad; especially since I’ve been interested in this machine for over two years! That’s right, the history of the PC8300 goes back that far. About two years ago, it was reviewed in a British magazine, and was said to be available from a Canadian company for Cdn. $29.95. A colleague contacted them, only to get the reply that they would not be carrying it after all, and didn’t know where it could be obtained. Imagine our surprise and gratification when it suddenly reappeared.
On receiving my PC8300, the plot thickened even further. It is made in Hong Kong, but no indication is given as to the manufacturer, designer, or ROM programmers. The box is labelled “YOUR COMPUTER.” Apparently, in true Hong Kong style, the manufacturer left it open for any distributor to stick his own label on the unit.
What you get is the computer, a TV/monitor cable, cassette cable, power supply, and two “manuals.” I put the last in quotes, since neither of these publications is what I would consider an adequate user manual. The first is entirely in Chinese, except for the sample BASIC listings. The other is a very crude translation beleagured with typos, and might as well be in Chinese. It’s so crude that it’s cute; one sentence starts with, “If you don’t see the blinding cursor….” Neither gives much technical information; only the bare minimum to get up and running, and program in BASIC, is provided.
If you’re expecting an actual ZX81 clone with superior capabilities, forget it. Though it is similar, it is different enough to be useless with any Sinclair programs that contain machine-code. More about that later. However, if like me you’re running a computer orphanage, this machine is a MUST HAVE. It is eccentric yet capable, simple yet complex, and absolutely charming.
The machine is reminiscent of the TS1500 or Spectrum, in that it has rubber chiclet keys. Dual shift keys are provided (thankfully, since the key spacing is larger than the 1500). The keyboard is sloped, giving a nice feel. The keys have an unfortunate tendency to stick; perhaps this tendency will decrease as the keys “break in.”
The case is ivory colored, quite sturdy, and sits nicely on the table. The case comes apart by removing three Phillips screws, then snapping it apart. The power supply has an actual AC power cord running into it; a nice feature if, like me, you have octopuses (octopi?) of adaptors and extension cords always underfoot.
The TV/monitor cable has an RCA plug at one end (to go to the computer), and an “F” connector at the other. You may have to change this to an RCA plug, depending on your monitor or TV. A “TV/GAME” switch is not provided. The display is in preferred (to me) “reverse video” (white characters on dark background).
Looking inside, it looks definitely Sinclairese. There is of course the 7805 regulator and heatsink, Z80 CPU, ROM, and a 2116 static 2K RAM. There is also space on the board for four 2114’s. Near the (soldered in) keyboard tail is a 74LS05. The last major component is a custom chip, analogous to the Sinclair’s ULA. If you thought that the ZX81 ULA was an interesting “black box,” you’ll love this one. It apparently handles all the jobs of the Sinclair ULA, and then some. For instance, it seems to take care of the sound, blinking (blinding?) cursor, and probably has something to do with the color add-on. Sundry diodes and transistors round out the semiconductor complement. A small 1″ speaker delivers a surprisingly loud “beep.”
The machine’s sound capability is obvious the first time you turn it on. After that, any keypress elicits a beep. Each key has a different tone, making routine typing sound a John Cage composition. Thankfully, this can be turned off by entering NOBEEP. To quote from the manual,
“‘So many sound!’ you may think. ‘May I play my computer more quietly?’ The answer is sure. You can simply type NOBEEP then ENTER. Now the computer is in No BEEP mode, and no any sound will be responded when you press the keys. Later, if you like to have beep sound again, you type BEEP then ENTER. Now the computer already in BEEP mode, and the keys will respond it’s lively sound if you activated any key.”
Syntax errors give a flatulent Bronx cheer, even if NOBEEP was invoked; this machine really likes to rub it in! The machine also has TEMPO, SOUND and MUSIC commands. These are actually pretty neat, even though only a single voice is possible, and no envelope or waveform control is provided. Also, they behave differently in SLOW than in FAST; some interesting noises are possible because SLOW mode modulates the sound with a 50 Hz. buzz (yes, 50 Hz. not 60).
This points out the first difference between the PC8300 and American ZX81’s. Running a 50 Hz. makes it slightly faster (though not twice as fast as some have claimed). However, it might be out of range for the vertical hold control on some TV’s.
Another major difference is in the memory map. Unlike the ZX81, the display file is in a fixed location, starting at 16509. The display file is always fully padded out. (Presumably, by getting rid of all the collapsed display-file stuff, the designers were able to fit the additional command routines into the 8K ROM.) The system variable D_FILE is replaced by PROGRAM, which gives the start of the program area (normally 17302d). The fact that a system variable is used for this, suggests that this can be moved (perhaps to accomodate a high-res display file). The end of the program area is marked with an FFh. The variables are next, pointed to as before with variable VARS. The end of the variables area is still marked with an 80h.
System variable VERS apparently identifies the PC8300; it contains 40h after reset, 00 after NEW or power-up, and FF after SAVE. Variables NXTLIN and E_PPC are exchanged to 16394 and 16425, respectively. The “not used” variable at 16417 is called MUNIT, and has to do with TEMPO. The unused variable at 16507 is now a two-byte variable called BLINK.
The rest of the system variables remain the same. Also, organization and storage of variables appears identical. However, the difference in the memory map makes every known ZX81 machine-code program inoperable on the PC8300. Also, the ROM has been drastically changed around, so any ROM calls would have to be readdressed for this machine. In light of this, I don’t feel that the claim of “ZX81 compatibility” is justified.
Now for some good news. The PC8300 WILL load all-BASIC ZX81 programs. If you think about it for a moment, you’ll realize that this is no small feat, since the display file and program area are interchanged. Also, some of the token codes are different. Again, the custom chip appears to be involved in this. When the PC8300 saves a program, the 5-second “silence” is replaced by a continuous tone; perhaps this is how it tells its own programs from ZX81 programs, changing things around if required.
You guessed it, even with all-BASIC there are incompatibilities. Most importantly, the variables area of ZX81 programs are NOT loaded by the PC8300. So any program that relies on its saved variables for data is completely useless on the PC8300. Also, some of the punctuation has been replaced by space-invaders and suchlike. Specifically, colon is a space invader, question mark is a pac-ghost, and the British pound sign is another space invader. Also, the grey graphics are now different; CHR$ 8 and 136 (the grey squares) are now a race car, and the rest are right-triangle graphics. Sure looks funny on some ZX81 screens! The final incompatibility is that PC8300 programs will NOT load into the ZX81 or TS1000. (Obviously, since it will be trying to run the display file in its program area. CRASH!!!)
There is better news in the hardware department. The extension bus is identical to the ZX81/TS1000. Timex 16K RAMpacks work fine, as does our SCRAM board. I’ve also tried a John Oliger EPROM reader. Interestingly, the Memotech 64K does NOT work; I haven’t tried any others. As we find out more, we’ll keep you informed if the interest is there.
If you’re used to the keyboard layout of the ZX81, you’ll be lost when you first use the PC8300. Nothing is where you expect it to be. The FUNCTION mode has been done away with entirely; all you have is the shifted keys, and graphics mode (shift ENTER). Shifted keys give the symbols and some of the tokens. The only available command keyword is PRINT (shift Z, of all things); all the rest are functions like SIN, ACS, etc. The rest of the function and keyword tokens have to be entered manually. However, they are tokenized in the listing, just as on the ZX81. Spaces during line entry are insignificant, and are automatically inserted between tokens.
The designers obviously went for the programmable calculator market; there is even a chapter in the manual on using it as a calculator. While they were at it, they tried to suggest that it is a games machine by including a few (otherwise useless) space invader characters. The rest of the shifted keys are things like cursor control (C through N), EDIT (M), DELETE (.), auto LINE NO. (X) and BREAK (space). BREAK is interesting in that it can be used much like EDIT to delete an entire input line; however, it does not bring down the line number with the cursor, as EDIT does.
Scanning the ROM, you’ll find very little in common with the ZX81. The restarts have been completely changed, as have the various data tables. The character font table is nowhere to be found; one correspondent suggested that these are stored in the custom chip. In fact, the area from 1E6B-1FFF is blank (all FF)… suggesting that EPROMs with additional features could be used.
During operation, the I register contains 0! This suggests that the font table is at 0000 (which it is not). Changing it has no visible effect, so it might be usable by m/c programmers. IX is still used in display, but in a different fashion. In both SLOW and FAST mode it vectors to 1334h; looking at this address shows code that isn’t even vaguely similar to the old display routines. Perhaps IX is freed for programmer use during computing time, being revectored only during the interrupt. IY seems to still be used to access system variables, but reading it gives the same as the contents of IX! Weird. AF’ is still used as in the Sinclair system.
USR still passes and returns the contents of BC. The “1 REM” address for machine-code is now 17307 (instead of 16514). Without the color module attached, the PAPER and INK commands are accepted (values 0-255), but without visible effect.
High-res capability is hinted at, but no mention is made in the manual. Perhaps there’s something in the Chinese manual; I’ll let you know if my Chinese friend can find anything about this. Similarly, the color module is a mystery box; I don’t have one (yet), and doubt whether I’d be much inclined to mess with it even when I get one.
The box claims auto-repeat on some keys; not so, at least not on my machine.
Before I end off, I’ll point out one last feature that is simultaneously a blessing and a curse. That’s the RESET button, which is in the upper right corner. No, it’s not just a CPU RESET switch. It’s actually a “soft” reset! After a reset, your BASIC program is still there! However, more likely than not your variables area will be zoofed. The curse is that it is very easy for ZX81 users to hit this by mistake in reaching for 0 or DELETE.
This is truly an orphan with personality; I like it, and suspect that others will also. If I can convince myself that there is enough of a market for software for this machine, (including adaptations of Timex software), I will readily support it. Let me know if you’re interested.
As a brief footnote to this article, Fred will soon be offering a replacement ROM for the PC8300 to make it TS1000 compatible (isn’t that an IBM word?). We’ll have complete details in a future issue of SyncWare News. If you can’t wait that long, send a self-addressed envelope and an IRC (International Reply Coupon, available from the Post Office) to: Silicon Mountain Computers, C-12, Mtn. Stn. Group Box, Nelson, BC V1L 5P1, Canada.-ed.