My first computer was an Exidy Sorcerer, bought in the late '70s. It featured a full keyboard including lower case, on screen text of 64 B&W characters by 30 rows, 2 MHz z-80 processor, up to 48 kbytes of RAM, 8 kbyte ROMpacs (an msBASIC pac came standard), ROM-based diagnostic monitor program, etc. As far as full-featured computer, it was significantly ahead of its competitors such as the Apple II, TRS-80, and Commodore Pet. (Prologue because apparently no one here has talked about this computer before.)

It did not have conventional graphics - the computer was always in text mode. A text ROM defined a full set of 256 8x8 characters. However, the top 128 characters were loaded into RAM at bootup. This meant programs could dynamically redefine those characters, giving the computer a limited form of pixel-mapped graphics at a 512x240 resolution. Even within those limitations, clever programmers achieved some very nice effects and even images.

/edit add 2017.01.04 07:35 EST

General comment to many of the answers: I should have excluded the case of a computer having both definable characters and a traditional bit-mapped screen. In that event the definable characters simply allow for non-Latin character sets, and programmers are not forced to jump through hoops to display graphics at the best resolution possible. But when your display is limited only to text mode, programmers need to be pretty darn creative. Especially on the Sorcerer, where the 128 definable characters would only fill in 2 of the 30 display lines in a brute-force approach.

Similarly, computers that had no text mode, only bit-mapped, aren't the same as the Sorcerer either. Of course the characters were redefinable -- everything was! 🙃 This is not meant to downplay the existing answers, which responded to the question as asked. But for any future answers, please limit them to computers with redefinable characters in a text-mode only environment.


Were there other retro-computers that used similar character-defined graphics technology exclusively?

  • 1
    I think the Apple II had an add-on that did this, but I can't find much information about it... retrocomputing.stackexchange.com/questions/152/…
    – fadden
    Commented Jan 4, 2017 at 1:15
  • @jdv I apologize for the broadness of how the question was originally stated. I did not want to throw answerers under the bus who provided well thought out answers to my badly stated question. So instead of rewriting it, I added the two limitations going forward. 1) Don't include computers with both a bit-mapped mode and a text mode available. 2) Don't include computers with no text mode at all. // Is that still difficult to understand?
    – RichF
    Commented Jan 4, 2017 at 21:33
  • @RichF it still needs work. Just get rid of the first graf and go right into the description of the memory mapped chars. Then pop the question, "did any other computer of the time also have user-accessible memory-mapped display characters?" The epilogue also adds some confusion, too. Might belong in a comment. Keep it simple so that potential answerers can just discern the meaning with minimal effort.
    – user12
    Commented Jan 4, 2017 at 21:52
  • So, exactly how was it "significantly ahead of its competitors such as the Apple II..."???
    – cbmeeks
    Commented Jul 14, 2017 at 12:30
  • @cbmeeks you either missed it in the first paragraph or we disagree on the importance of certain characteristics. It exceeded the Apple ][ in it's native lower case, a 64x30 crisp display, and a full keyboard including numeric keypad. If one bought floppy drive(s), they gained the cross-manufacturer operating system CP/M.
    – RichF
    Commented Jul 14, 2017 at 14:21

25 Answers 25

  • ZX Spectrum: has 21 user definable graphics (UDG) available to the user via POKE USR command. Also, main character set can be redirected to RAM (sysvar CHARS, 23606-23607) so it is fully definibled. It doesn't have a real text mode. All text is rendered into pixels by the firmware.

  • Jupiter ACE: has the entire character set in dedicated RAM (but available in the Z80 address space as write only RAM). You can change it anytime using POKE (you cannot use PEEK to this memory). It doesn't have a graphic mode. Text is rendered by the hardware.

  • Amstrad CPC: you can use the SYMBOL AFTER command to redefine all or part of the character set. It doesn't have a real text mode. Text is rendered into pixels by the firmware.

  • MSX: the VDP uses dedicated VRAM for storing character patterns when a text mode is used. From BASIC, you can use VPEEK and VPOKE to access this VRAM memory and alter character bitmaps. Don't remember if there is specific BASIC commands for changing character patterns, such as the one used in Amstrad or Sinclair machines.

  • Dragon/Coco: The MC6847 VDP inside these machines stores characters in its own ROM when a text mode is used, so not redefinable. However, there are several graphics modes, which would allow a redefinable character set, at the expense of using more memory for the screen bitmap and a slower printing, as done in Spectrum/Amstrad.

  • Commodore 64: The VIC-II uses a dedicated CHAR ROM where character patterns are stored when a text mode is in use, but you can instruct VIC to use RAM instead for a custom character set. However, the BASIC is quite limited and there are no specific instructions to assist you on altering the character set, so you are on your own using PEEK and POKE, mapping and unmapping memory blocks, changing the character generator ROM address, etc.

  • Oric Atmos: has a text mode but character patterns are stored in RAM so they can be changed. There is support for 80 user definable characters so you can use standard character patterns for text, digits and punctuation symbols, yet allowing enough custom character patterns for most applications.

  • 2
    For MSX: no dedicated commands for altering the pattern generator table (that's the name of the VRAM area that stores character patterns), but the BASIC command BASE can be used to get the starting address of the table, so the VPOKEs are always properly targeted.
    – Konamiman
    Commented Jan 3, 2017 at 13:24
  • 3
    All of the Commodore 8-bit home computers, the VIC-20, C64 (SX-64, C64c), Commodore 16/116, Plus/4, and Commodore 128, had redefinable character sets. Also, the Educator 64, which was basically a C64 in a PET-style case with a monochrome monitor.
    – Tim Locke
    Commented Jan 3, 2017 at 15:15
  • 4
    The Atari 8-bit computers all had fully definable character sets.
    – Tim Locke
    Commented Jan 3, 2017 at 15:16

The TI-99/4a has a CALL CHAR command to redefine one ASCII character at a time. The first argument is the ASCII code and the second is the 8x8 map expressed as a series of hex digits. (This is how I learned hexadecimal back in elementary school. Good times!)

  • Cool. Did the 99/4 have a normal graphics mode as well? I seem to remember that it had sprites, but I guess that doesn't require pixel-mapped graphics. Also do you remember if all characters could be redefined, or only certain ones? // #DEADBEEF !!
    – RichF
    Commented Jan 3, 2017 at 5:44
  • 1
    @RichF Yes, I believe all characters could be redefined. Even in TI EXTENDED BASIC that supported sprites, there was no other graphics mode. But somehow TI LOGO was able to draw lines. Commented Jan 3, 2017 at 6:17
  • 1
    @RichF No, not all characters could be redefined: with the standard basic you could redefine characters 96-156, whereas with the extended basic you could redefine only characters 96-143. See, e.g., Ti Extended Basic Manual, p. 56. As traal said, there was no normal graphic mode: if you wanted to draw pictures, you had to draw a grid of characters accordingly redefined. It was a pity because, afaik, the graphics processor supported a normal mode. Commented Jan 3, 2017 at 21:54
  • 1
    @MassimoOrtolano - having just read the manual for the TMS9918 I can confirm that there wasn't a normal graphics mode at all. It has three modes: text (40x24 text with 256 6x8 characters and only 2 colours on screen at once), "graphics 1" and "graphics 2". "Graphics 1" is the mode TI BASIC used -- it divides the screen into 3 horizontal bands and allows a different set of 256 8x8 tiles in each one, with each tile allowing 2 colours, but TI BASIC always used the same set of tiles in all 3 bands. "Graphics 2" is basically the same as "graphics 1", but the handling of sprites is different.
    – Jules
    Commented Sep 15, 2018 at 17:16
  • 1
    Note that with 3 bands of 32 columns x 8 rows = 256 "tiles", you can just set each tile to a unique index and use it as a full graphical mode. It's just that TI BASIC didn't allow you to do that, because it always applied changes to the tile definitions to all 3 bands. I've never used an MSX, but presumably that's how they used the system.
    – Jules
    Commented Sep 15, 2018 at 17:18

All Atari 8-bit computers supported redefining the character graphics. The default character set is stored in ROM, but you can tell the ANTIC chip to read the character bitmaps from any area in memory — so typically you'd copy the character set from ROM to RAM and edit whichever characters you want to change.

  • @KenJennings Please add the information from your Suggested Edit as a separate answer.
    – wizzwizz4
    Commented Dec 23, 2017 at 9:45
  • I used to set the character set map to zero page, so with all the counters and things being constantly updated, the (garbage) characters on the screen would appear animated.
    – LAK
    Commented Jan 7, 2021 at 17:14

The BBC model B had a range of 8 bit codes (224 to 255 by default) that could be redefined using the BASIC VDU 23 command like:

VDU 23,224,28,28,8,127,8,20,34,65

In that example 23 is the VDU code to redefine a character, 224 is the code of the character to be redefined, and the remaining 8 parameters are 8 bit bitmaps for the 8 rows of the character image.

The range of redefinable characters could also be expanded using OSBYTE &14.

  • This is true, however of course it didn't work in Mode 7 which used the fixed Teletext character set.
    – Chenmunka
    Commented Jan 3, 2017 at 10:50
  • It was also possible to intercept the OS calls that output characters and replace those with calls to put your own characters on screen (in bitmap modes) instead.
    – Alnitak
    Commented Jan 4, 2017 at 10:50

Some MS-DOS program did this in VGA text mode — notably Norton Utilities and Impulse Tracker. The latter dynamically redefined the characters under the mouse pointer to provide smooth, sub-character cell movement.

  • If I understand you correctly, they used the definable characters to dynamically emulate a sprite cursor. Clever!
    – RichF
    Commented Jan 5, 2017 at 22:19
  • Yes, exactly that
    – scruss
    Commented Jan 5, 2017 at 22:30
  • If you ever get the chance to run one of these apps in an older version of Windows, make the MS-DOS Prompt windowed rather than full screen. The windowed console doesn't support redefinable characters, so you can see the actual characters used and how they change to different (standard) symbols as you move the mouse cursor around the screen. It looks way more complicated than I expected it would!
    – Malvineous
    Commented Jul 15, 2017 at 23:59
  • see the Norton Utilities in action youtu.be/6NxuRa_MOsw?t=62
    – phuclv
    Commented Jan 7, 2021 at 14:04
  • youtu.be/4_btve9xKJ8?t=115
    – phuclv
    Commented Jan 7, 2021 at 14:05

The VIC-I used in the Vic-20 differs from the VIC-II of the C64 by not having sprites or bitmap modes. So your only option is software-defined tiles. All of them are always in RAM and they're seeded with the character set from the ROM.

The ZX80 and 81 have one of the most interesting display architectures in terms of moving parts, and when used as intended it conspires to give a character-based display.

For pixel fetching there is exactly one hardware counter. It's three bits large, increments each line and is reset on vertical retrace.

To display characters, the Z80 executes the character codes. Or, rather, it attempts to. RAM is mirrored above 32768; when the machine spots an attempt to read an instruction from that area it secretes away the byte that would have been read and forces the bus to 0. Which is Z80 for NOP. So the Z80 does nothing, but does so with regular timing and while incrementing its program counter.

The Z80 was built to provide dynamic RAM refresh signals, which it does while decoding instructions. So while decoding its NOP, it announces a refresh cycle and puts a refresh address on the bus. That address can be set programmatically, though the Z80 automatically increments the low seven bits, which the machine then uses to keep track of distance across the line.

If a video value was stashed, the machine replaces the low nine bits of the address bus with the low three bits of the line counter plus six of the bits it secreted away. The value then on the data bus is loaded into a shift register and output.

The ROM configures everything so that the net effect is a character-mapped display, character forms stored in ROM.

A quirk is that if the address generated for final video fetch isn't in the ROM range, the ROM doesn't respond as the ordinary address bus is being manipulated so the ordinary decoding rules apply.

So if you have RAM that puts a value on the bus during refresh cycles, you can tweak the Z80's refresh address and put your character set in RAM. The built-in 1k does, but expansions disable that RAM and may not.

Quicksilva and some others also sold an add-on to put suitable RAM atop where a ROM mirror usually sits, intended for character set redefinition. Those fit alongside any other RAM expansion.

Smart programmers have also managed to generate a pseudo-bitmap mode (use some other part of the ROM as a character set and try to hit useful patterns) and a full-bitmap mode (keep false triggering vertical sync in time with horizontal to negate the line counter and otherwise act appropriately).

So: the ZX80 and ZX81 as cgaracter-mapped devices on which it was discovered that the character patterns could be drawn from anywhere in ROM, or reprogrammed with suitable RAM, or at a stretch you could work around the whole system and create a bitmap. Almost certainly completely without any sort of intention of hardware design, but working nonetheless.

Beyond that, anything with a TMS99[1/2]8 has to be a candidate? That owns its own 16kb, off the main system bus, and has both a tile map and tiles; it contrasts an explicit 'text mode' with three 'graphics' modes but the main difference is that the former crops tiles to 6 pixels wide in order to fit 40 on the screen. You're really only picking between 6-pixel wide characters and 8-pixel wide characters. It also has 1-bit sprites, but no built-in scrolling so it's still not really the tile-and-sprite console-type thing that its successors evolved into (e.g. the Master System is a descendant, and the Mega Drive descends from that, retaining the Master System's additions but cutting the original TMS-compatible modes).

In computers, it's as seen in the MSX 1, ColecoVision Adam, the Sega SC-3000, various Spectravideos and elsewhere. Scanning the existing answers, it's the same chip that was in the TI-99/4a, as per traal's answer.

  • Downvoter: just the lack of editing? Or an actual disagreement as to the content? It was tapped out on a mobile, so I'll endeavour better to edit later, should that be the problem.
    – Tommy
    Commented Jul 13, 2017 at 20:15
  • Darn, I accidentally downvoted this due to clumsy handling of my smartphone. When I try to undo that and upvote it instead, a message comes up saying I already voted on this answer. It is a good answer that deserves up-votes.
    – RichF
    Commented Jul 13, 2017 at 20:17
  • 6
    @RichF haha, so our comments are: "sorry about the quality, I typed it on a phone", followed by "sorry about the vote, I typed it on a phone". Who said that mobile devices make life better?
    – Tommy
    Commented Jul 13, 2017 at 20:31
  • Due to your edit, the system allowed me to change my vote. That was a long message to type onto a smartphone!
    – RichF
    Commented Jul 13, 2017 at 20:37

Lots of homecomputers (or game consoles) had redefinable characters. Many game consoles (Atari, NES, SNES, Gameboy) are tile based in the first place, and a tile is nothing but a redefinable character. The Commodore 64 has a fixed charset in ROM, but can also use charsets in RAM. This tendency continued with the IBM PC, where graphics cards from EGA onwards also have a redefineable character set. I'm sure there's more.


Although not strictly redefinable characters, the IBM CGA was able to have the size of the character cells changed from the standard 8x8 to 8x2, which combined with certain characters turned its text mode into the equivalent of a 160x100 bitmapped display.

This worked by displaying a character in each cell such that the 8x2 character box would appear as two 4x2 blocks of solid colour, effectively functioning as "pixels" at 160x100 resolution. Each character's foreground and background colour controls the colour of each half of the 8x2 character cell.

Although 160x100 was a lower resolution than the CGA's 320x200 and 640x200 bitmapped modes, it allowed all 16 colours to be used instead of only the four colours available in the true bitmap modes.

So although it wasn't done via the use of redefinable characters, it did allow for bitmapped graphics to be displayed in text mode, at a higher resolution than for normal ASCII-art style graphics.

  • 1
    @wizzwizz4 I think he means that either the left half or the right half of a rectangular character block could be "on". The page he references says there are two characters (ASCII 221 and 222) used in this mode. Apparently each half could also be one of 16 independent colors, which would effectively add the capability to have both "on" (or "off").
    – RichF
    Commented Jul 15, 2017 at 16:37

The Sinclair ZX Spectrum (the Timex 2068 in the USA) had a system variable in RAM which by default pointed to a section of ROM holding 8*8 pixel character graphics. By changing the system pointer, RAM could be used to hold custom character definitions.


Regarding the TI 99/4A, the video functions were designed for games although the 64 bit representation of the real numbers made the computer pretty competent for scientific appplications. Redefinition of characters allowed a plot, but it was a lengthy process(see http://www.academic.ro/TI994A). TI itself is making the plot with the X on vertical, by using the same coding scheme, well, faster but unusual. Extended Basic allowed assembler code and thus direct access at the video memory("the missing link" solution-1990 by Texaments). Nowadays a compiler exists for Extended Basic. TI Logo requires the very expensive Peripheral Expansion Box. Nowadays, the CF7+ circuitry replaces that device, but of course, the computer itself it's not competing.

  • Yes, the floating point of the TI-99/4A was well above any other home computer of that time. What a surprize it was when I went from the TI-(Extended)-Basic to Applesoft, which couldn't even add 0.1 to a number without tripping ;-) Commented Jan 7, 2021 at 10:18

Sirius 1 (aka Victor 9000 in the US) had a programmable character generator on a nice 10x16 matrix giving a good 800x400 resolution. This was a very nice PC and much better than the crap IBM came up with. (8088@5Mhz, up to 896K RAM, MS-DOS or CP/M 86, 800K floppies, soft control for monitor,).


The Convergent Technologies IWS and NGen lines of business computers (marketed under several names, such as Burroughs B21 and B25, the Mohawk Data Sciences/Momentum HERO, the DataPoint VISTA-PC, the NCR WorkSaver, the Pr1me Producer, and others) both had RAM-based fonts which could be loaded at will (with a documented OS API call) by user programs. If I recall correctly, the IWS used a 10x15 cell and the NGen used a 9x12 cell, but the NGen also supported a half-pixel offset for any row of the cell.

  • 10x15 and 9x12 would be very useful in supporting accented characters and some non-Latin character sets. I wonder if the half-pixel offset was implemented within the character RAM for each character, or if they had a separate overlay bitmap for that.
    – RichF
    Commented Jan 3, 2017 at 13:06
  • It was not an overlay bitmap; the company had a Font Designer utility, and if you loaded a NGen font into the program while running on an IWS, you'd see that pixel 0 was set in each row where the NGen showed the half-pixel offset. Commented Jan 3, 2017 at 14:19

Amstrad CPC, PCW and Spectrum +3 under CP/M: The character set is held in banked memory, and all 256 characters can be redefined by a suitably-aware program. There is no true text mode; all characters are rendered by the CP/M XBIOS.

Character set addresses are:

CPC:            0x8000 in CP/M bank 0
PCW:            0xB800 in 'screen environment' bank
+3 (8x8 font):  0x3000 in CP/M bank 0
+3 (8x5 font):  0x3800 in CP/M bank 0

The VTech CreatiVision (also known as the Dick Smith Wizzard and the Hanimex Rameses amongst others) had redefinable characters if you were using the BASIC cartridge. If I remember correctly, the character was set with a HEX string, up to 16 characters long. Each HEX pair was one row of 8 pixels. The characters were divided into blocks (I can't remember how big) and each block could have its colour set independently of the others. So, for example, if you typed ZAP directly from the keyboard, it was possible to have the A a different colour from the Z and P.

  • 1
    I'm not familiar with this machine, and neither the wikipedia description nor a quick google search is giving any particular details, but that sounds very much like the behaviour of the TMS9918 display processor in "graphics 1" mode. See my comments about it attached to @traal's answer above - retrocomputing.stackexchange.com/a/1977/547 - which give a full description, but briefly: it divides the screen into 3 32x8 areas, each of which has a separate "tile map" that defines character appearance. Colours are associated with the tiles, rather than the cells.
    – Jules
    Commented Sep 15, 2018 at 17:40

When I saw the title of your query the first machine that came to mind was the Exidy Sorcerer and I was going to answer with that, but alas that was mentioned in your first sentence. So I'll answer with something much less known:

A third-party made an internal hardware add-on for the TRS-80 Model I that gave it a code-programmable character generator. I don't think they sold many, but a friend of mine (GB) marketed a space game (IIRC, like Defender) that used it, and it looked fantastic (especially compared to the stock 128x48 pixel graphics).

  • Heh, I just replied to your comment to my "excellent boot-up language" question. My reply mentioned the Sorcerer as well. Anyway, a code-programmable character generator could not have helped but improve the Model I.
    – RichF
    Commented Jan 5, 2017 at 21:32
  • Whoa, I didn't even realize that the first two topics I participated in were from the same person. Cool! Commented Jan 6, 2017 at 21:07

Many years ago I had a CP/M based machine called the Quark-100 by a small Canadian company called Megatel. The character generator was held in RAM so it could be any 256 characters desired from an 8*8 grid.

I even wrote a character set editor for the machine in the Z-80 version of Turbo-Pascal V3.

Those were the days...


Any computer with a serial terminal interface supports redefineable character sets. Just plug in a VT220 terminal.

This is a curmudgeonly way of saying it's not "the computer", it's a specific display device that supports loadable characters.

I recall that, in the days when VMS MAIL would happily display whatever it got in a mail message, sending around the "Australian font" was popular around April Fool's day in DEC. Subsequent text displayed upside-down.

  • Came here to post something like this. I hardly consider any computer with built-in graphical display to be "retro". Commented Jul 24, 2020 at 11:31
  • 1
    @StephenM.Webb: The PDP-1 wasn't "retro"?
    – supercat
    Commented Apr 1, 2021 at 21:40

The big value-add feature advertised for the Hercules Graphics Card Plus was RamFont, or re-definable character sets. Custom characters could be uploaded into the card, and rendered as part of a 3072 character set. (In contrast to the 256 fixed characters of the MDA, CGA, and original Hercules cards).

Driver support was available to use this feature in a few key applications of the time... at least Lotus 1-2-3 and Microsoft Word. (The original DOS version.)


  • As I recall, the Hercules was developed with this feature in mind because the inventor needed to write his PhD in Thai Commented Jul 28, 2020 at 14:24
  • That was actually the original Hercules (which added addressable graphics to an MDA display.)
    – mschaef
    Commented Jul 28, 2020 at 14:28

The Olympia People computer had a fully-redefinable character set. This was used to implement the 'national character support' its marketing touted. While a colour display with graphical add-in card was an optional extra the machine shipped by default with only a text mode.

IIRC font data was stored at $E4000 in memory with 32 bytes per character, although the default CRT controller was setup to only use half of those to display a 8x16 cells. The text-mode screen stored character/attribute pairs from $E0000. With its ability to produce four intensity levels on its monochrome monitor it was capable of very reasonable displays.

The startup screen that prompts for the boot drive shows this feature in action. The 'People' logo and surrounding box are actually characters $80+ (the 128 characters after the ASCII range) with a custom font loaded: Olympia People computer at boot screen


Terak had a fully downloadable font for its text mode.


Half of the character ROM of Digital Equipment Corporation's DECmate-II was user-definable. No one ever used this feature and it was dropped from subsequent models.

  • I remember using the Character Set Editor with the Gigi. Was the DECmate-II compatable?
    – supercat
    Commented Jul 23, 2020 at 19:49
  • 2
    No. You would think that a couple of odd duck wallflowers like the Decmate and the Gigi would end up together out of loneliness, but sadly, they remained completely ignorant of each other throughout their entire lives. Commented Jul 24, 2020 at 0:22

The Future Computers FX/20 and FX/30 models from the mid-1980s ran DOS or (C)CP/M. They loaded a character map during boot, and had a utility to edit the characters.


Redefinable character sets aren't limited to CRT-based computers. Many 5x7 or 5x8 dot matrix displays are driven using an HD44780 or compatible chip, which allows eight of the characters to be redefined. I don't know if any vintage portable computers used such displays, but there were certainly some that had text displays which were 4x40 or smaller, and it would hardly be surprising if some of them did use such displays.


On the Soviet home computers of the series BK (BK-0010, BK-0011, BK-0011M, which were clones of LSI-11), the fonts could be loaded directly into memory, when using many operating systems, like ANDOS, MKDOS, AO-DOS. The OS shell had an option to save the current appearance for the next OS load.

Below, an ANDOS file manager with a custom font enabled and a folder that contained a list of available fonts.

enter image description here

The font changing would be performed by pressing Enter on the font's file, which would load it into memory. The computer had no text mode though, but the fonts would be available in all applications that use the standard system functions.

Below, a text file viewed in file manager's viewer using a custom font:

enter image description here

And a disk utility, running after enabling a custom font: enter image description here

The font files were interchangeable between the OSes, below is ANDOS v3.30, using a font from the font folder of MK-DOS v3.17 distribution (opened on the right pane, as seen from the file system marker "MicroDOS", as ANDOS natively used FAT). Notice that all the font files have the same load address.

enter image description here


I guess one should add as well what might be the first computer with a redefinable character set: The Cogar 4

The 1971 Cogar 4 is not only a tight contender for the first desktop PC(*1), but as well did store the definition of its character set in RAM. All 128 possible characters could be defined as a 5x8 bitmap as describend on page 9 of the Systems Summary.

This (German language) entry of the HNF-Blog adds a bit background information about the system.

*1 - As in reassembling a whole computer with CRT, Keyboard, Processing and Storage in a single self contained unit, made to put and operated on a regular desk.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .