The COMX-35 was a home computer that was one of the very few systems to use the RCA 1802 microprocessor, the same microprocessor that is also used in some space probes. From the outset the 1802 has also been available fabricated in Silicon on Sapphire semiconductor process technology, which gives it a degree of resistance to radiation and electrostatic discharge.
The COMX-35 had a keyboard with an integrated joystick in place of cursor keys. It was relatively inexpensive and came with a large collection of software. COMX-35 was manufactured in Hong Kong by COMX World Operations Ltd.
- CPU: CDP 1802 at 2.813 (PAL) or 2.835 MHz (NTSC)
- RAM: 35KB (67KiB max.)
- ROM: 16KB with Basic interpreter
- VIS: (Video Interface System) CDP1869/CDP1870
- Text modes: 40 columns x 24 lines. Alternative 20x24, 40x12 and 20x12
- Character set: 128 Programmable characters, the default character set displayed only uppercase characters
- Character size: 6x9 (PAL) or 6x8 (NTSC) pixels, alternative up to 6x16
- Graphics modes: None, but the character-set was re programmable to simulate a 240x216 High Resolution display
- Colours: 8 foreground colors (with a limited choice of characters that would be displayed in each color) + 8 background colors (for the whole screen)
- Sound: 1 channel "beep generator" with an 8 octave span, 16 volume steps and special effects.
|| Type |
|| Basic system ROM |
|| System Parameters |
|| Basic Program and Data storage |
|| Reserved for DOS |
|| Interface card expansion ROM |
|| Expansion box ROM |
|| Not used |
|| Character Memory |
|| Screen Page Memory |
The 'COMX 35' was called '35' due to the amount of 35K RAM in the machine, this included 32K actual user RAM of which roughly 30K was available for actual basic the rest was used for system parameters and reserved for use by the basic system ROM. An additional 3 K was included as video RAM, for details see the Video Interface System chapter.
Video Interface System
The COMX used the RCA CDP1869 and CDP1870 Video Interface System (VIS), consisting of the CDP1869 address and sound generator and the CDP1870 colour video generator.
The COMX automatically selected operation in PAL or NTSC, this was done via the PAL/NTSC input on the VIS. Also during start-up the system ROM detected PAL/NTSC by checking EF2. EF2 gave PAL/NTSC information before the first pulse on the Q line, after this EF2 was used for keyboard handling.
The VIS ran on 5.626 MHz for a PAL and 5.67 MHz for an NTSC machine. This frequency was divided by 2 and output via CPUCLK (pin 38) to the CDP 1802 for timing of the CPU (2.813 and 2.835 MHz). The VIS was also responsible for the timing of the interrupt (50/60 Hz) and timing of the non display period via PREDISPLAY (pin 1). Video memory could only be accessed during the non display period which allowed for execution of 2160 machine cycles on a PAL and 1574 on an NTSC machine. Provided that not more instructions were executed than the indicated maximum number of machine cycles video memory could be accessed during the interrupt routine. Alternatively the program could be paused by waiting for a non display period by checking EF1.
The Video memory consisted of 2 parts, 1K RAM page memory and 2K RAM character memory.
The page memory stored the ASCII code for each character position on the screen. The screen had 960 characters where position 0 (left top corner) could be accessed by memory location @F800 (before scrolling). The character memory stored the character definition of each ASCII character and could be accessed by memory location @F400-@F7FF. Character memory could be accessed via different methods see also the VIS data sheet.
The COMX 35 came in two colours, either a white or black keyboard. Later models also included a monitor connection. The second COMX home computer was called the COMX PC1 which was basically the same hardware as the COMX-35 with a better keyboard and a joystick connection.
The COMX 35 had one 44 pin external connector for additional expansion options in the form of interface cards. Memory location @C000-DFFF was reserved for use by any interface card, either to connect ROM, additional RAM or for other purposes. The following HW was available:
The expansion box allowed up to 4 interface cards to be connected to the COMX 35. The expansion box also included a firmware ROM connected to memory location @E000-@EFFF which extended basic with commands and logic to switch between different interface cards. Next to the standard firmware ROM there was an adaptation made by F&M (Frank and Marcel van Tongeren) this ROM added a screen editor feature to COMX basic.
Floppy Disk Controller
The COMX Floppy disk controller allowed connection of 5.25 disk drives. The controller used the WD1770 with a speed of 8 MHz. The DOS ROM was selected between address C000-DFFF and was also mapped over address DD0-DDF of the basic ROM. COMX DOS supported 35 tracks for both single and double sided disks and 70 tracks on single sided disks. Every track consisted of 16 sectors and every sector of 128 bytes, resulting in disk files of max 140K.
The COMX Printer card allowed connection of parallel and serial printers. Depending on what type of printer was connected the firmware ROM was selected either with the parallel firmware between memory location @C000-@CFFF and the serial firmware between memory location @D000-@DFFF or the other way around.
Thermal Printer and Card
The COMX Thermal Printer came including a dedicated interface card, printing was done on thermal paper by using a head that with 9 pins which could heat the paper and as such print both text and images. You needed to be careful when writing your own printer drivers, which was needed for graphic printing, as it was very easy to 'burn' the printer head.
32K RAM Card
The COMX 32K RAM card placed additional RAM from address @C000 to @DFFF, i.e. only one 8KB bank of the available 32K at a time. To switch to a different 8K bank the OUT 1 instruction needed to be used via 1802 assembler code. Bit 5 and 6 were used for the RAM bank selection (bit 1 to 4 were used for the expansion box slot selection).
80 Column Card
The COMX 80 Column card added possbility to use basic with a text mode of 80x24. The MC6845
was used as video chip.
F&M Joy Card
This card was not developed by COMX but was a home made extension by F&M: only a handful were ever made. The card had connections for 2 joysticks and came with a simple game and supporting software.
The company importing the COMX in The Netherlands, West Electronics, provided almost all their software for the COMX for free and without copyrights (or for a small fee for tape, disk and/or shipment). West Electronics also organized different competitions for home made software.
Probably the most popular game on the COMX was 'Worm' known in The Netherlands as 'Eet een wurm'. This was a very basic game where you had to direct a snake over the screen and eat all the worms. If you managed to play 'Worm' long enough it would eventually run out of places to put new 'food' and as such slow down the game almost to a stop! There was a correction made for the game by F&M including some additional improvements.
The COMX was probably most popular in The Netherlands mainly due to the efforts from West Electronics to provide free software. As a result of the competitions quite a few excellent games were written by enthusiastic users like:
- Get Your Gadget by JunioR (Jeroen Griffioen and Robbert Nix)
- Boulderdash by AHON (Arjan Houben and Oscar Nooy)
- Donkey The Kong by MP-Soft (Michel Peters)
- Happiehap by F&M (Frank and Marcel van Tongeren)
and many more!
A COMX emulator running on windows is available and can be downloaded from the Dutch COMX Clubsite
. The screenshots shown here are generated with this emulator! The emulator also supports other 1802 systems like the Elf, Studio II and Cidelsa.
The most famous bug in the COMX basic ROM was when you typed in line number 65535 this resulted in the COMX hanging and the screen getting all messed up. Not very funny after spending hours typing in some basic program!
A similar thing as when using line number 65535 was typing in 'READY', after this the COMX was not 'READY' anymore! F&M discovered this one when they designed the F&M screen editor and pressed 'CR' (return) on the 'READY' prompt. As such they decided to change the prompt into 'OK' to avoid too many accidental hangings when using a screen editor. This fault was actually caused by the basic READ command, when a READ Y (or any other READ x) instruction is given when there is no DATA statement in the loaded basic program the COMX hangs.
Another bug in the standard character set was the '!' it had a funny red dot just above the black dot.