Retro Space logo

The Philips P2000T home computer

The obscure Philips home computer that took over the Dutch classrooms in the early eighties

In 1980 Philips created the P2000M computer to have its share in the new 8-bit home computer market. The market was new and the first notable contenders were the Sinclair ZX80, the Commodore VIC-20 and the Radio Shack TRS-80 Color Computer. The M in P2000M stands for Monitor, and refered to a special green screen monitor with dual floppy drives to be put on top of the computer. As this "professional" machine had limited succes, Philips came in 1981 with a cheaper version aimed at the home user. This was the P2000T, with the T for Television. You were supposed to hook up the computer to a television over either RF or via SCART. The more complex black and white bitmap video circuit of the P2000M was replaced by a much simpler circuit around the SAA5050 teletext generator IC.

There were basically two camps in 1980: computers with a MOS Technology 6502 processor, and the ones with a Zilog Z80. Philips designed the P2000T around the Zilog Z80, running at 2,5 MHz. The machine was everything the other Z80 machine by Sinclair was not. Where Sinclair made a very bare bones machine with low production costs, Philips wanted a great out of the box plug-and-play experience. The machine included a built-in power supply, a fully automated tape drive for loading programs and storing files, and a decent full size keyboard with num-pad.

The machine was delivered in a brown box with a power cable, a manual, a demo tape and the BASIC cartridge. Basic was bought from Microsoft and adapted to the Dutch or German language. The cartridge had a 16 kB ROM chip and should be in slot 1. Besides the BASIC ROM, the machine also has a monitor-ROM that contains basic routines for boot up, testing hardware, reading the keyboard, connecting to a printer and utilising the tape drive.

The mighty Mini Cassette System

The main selling point of the P2000T was the fully automated cassette drive. Philips was the inventor of the cassette tape, and created a smaller version for dictation machines. The factory for the mini tapes was located in Wien in Austria. The tape has a regular play time of 15 minutes per side, but Philips engineers managed to speed up the drive so it could spool a 15 minute tape in 93 seconds. As the tape can hold 42 data blocks of 1024 bytes with a header of 32 bytes, the tape stores 42 x 1056 = 44352 bytes or roughly 43 classic kB. If you take the small blank sections between blocks into account, we get to 6000 bits per second, which was amazing for its time. Unlike other tape systems the P2000T does not store data as block pulse, but frequency-modulated.

You can use 60 minute tapes in the P2000T, but it needs a hack of the monitor-ROM. In the regular form, the tape routine times-out after roughly 100 seconds. A 60 minute tape with 30 minutes per side, would need the tape mechanism to run for about 186 seconds. So to reverse the tape you need 2 search actions and open the drive door in between. Writing will only succeed for about 50 blocks. After that the system thinks the end of the tape is reached.

Not only was the drive speedy, it also took care of the file management. The files on the tape have a 16 character filename and a 3 character extension. The file name may include all characters except the quotation marks and is case sensitive. This is amazing! In comparison, DOS only allows 8 characters and all have to be capitals. Even though the file name may be up to 16 characters, only the first one is used as file identifier. So you could have both "Space Fight.BAS" and "space mission.BAS" on a tape, but if you want to add "Space Fight II.bas" as well, it asks if it may overwrite "Space Fight.BAS".

If you press SHIFT-1 on the num-pad the computer will make a list of every file on the tape. If you press reset, the first program will be loaded automatically. To load a certain file, you type CLOAD"filename" and to run the program you type RUN. As a shortcut, you can also type RUN"filename". If you need to remove clutter from the end of your tape, load the last file you want to keep, then type "DEFUSR=24:?USR(1.1)". The P2000T will write and end-of-tape flag after the last file you selected.

The tapes work remarkably well after 40 years. Some give a read error, but in most cases a wipe of the tape head with isopropyl alcohol (IPA) will get things going, or you can try the tape in a second P2000 machine. Weird enough, the mini cassette tapes are still sold new. Not the rugged ones for the high speed P2000 drive, but they will do the job.

Basic module

Basic screenshot The computer came with a 16 kB Basic ROM module programmed by Microsoft. It uses the same BASIC language as you could find on most other home computers, with some adaptations to the system. CLOAD, CSAVE and RUN were customised for the cassette drive, and special characters were defined to control the display. PRINT CHR$(12) empties the screen for example. And PRINT CHR$(129) "Hello World" types Hello World in red. Basic execution was not very fast, so many programs switch to machine code after a few lines of BASIC. Unlike say Commodore BASIC on the C64, P2000T BASIC has the full set of lower and upper case characters available as we use keyboards today, and thanks to the EDIT command and insert at the cursor behaviour, writing code on the P2000T is much easier than on a C64 or ZX Spectrum. The only other BASIC that comes close in easy of use is Amstrad Locomotive BASIC for the CPC 464 and 6128 computers.

Teletext graphics

Philips was an important manufacturar of TV-sets, so they decided to use one of TV components for generating the display signal: the British Mullard SAA5050 chip that was also used in the Acorn System 2 and the BBC Micro. If you would run the test screen for the BBC Ceefax Teletext system on a P2000T, the result is this: Mullard SAA5050 test screen on the P2000T If you take a closer look at the image, you can see some curious limitations. First of all the chip is capable of displaying 8 colours: the result of setting each RGB channel either high or low. To make a change in the colour, you need to place an invisible character with ASCII value 1-31. 1-7 define the colour (red,green,yellow,blue,magenta,cyan,white), 17-23 activate the same colours, but tell the chip to display the 2x3 pixel graphic character instead of ASCII. 8 tells to blink, 12 tells to make characters double height, 24 conceils a portion of the screen, 26 spaces the graphical elements, 29 sets the background colour and 30 repeats a graphical element until a colour change occurs.

Then there is the option to use ASCII values 128-255. They deliver the same as if the value was 128 less, but the foreground and background color get swapped. The screen buffer is 2 screens in size, 80 characters by 24 rows, and runs from memory address 0x5000 to 0x577F. You can pan the viewport by setting the upper left X coordinate between 0 and 40. This is often used to recude flicker, as the Z80 has not enough power to refresh the entire screen each PAL TV cycle. As you can imagine the SAA5050 delivers serious limitations to what you can do on screen. At the other hand, even in 2023 we still have a Teletext graphics festival where artist try to make the nicest images possible on the teletext chip.

With a modification you can switch the P2000T display output to show all 80 colums at once. This modification was often done by people who used the Word processor ROM module next to the Basic module. Another modification you will find on various P2000T machines is the B&W mod. The RF module is removed, and the RGB signals are mixed with resistors and fed to a BNC or RCA connector. I had a model with a BNC connector, but I replaced it with a yellow RCA chassis connector, so people can tell how to use the video out. The idea was to create a cleaner B&W signal for monochrome monitors. It does away with blurry edges often found on red and blue text.

The teletext chip has one addition that is unique to the Philips P2000T, and helped to make certain games like Ghosthunt possible. If a byte contains a value of 160-255, the SAA5050 shows the character that goes with a value 128 lower, in the normal 32-127 range, but with inversed colours. With clever programming you can use this to change colour at more locations than the teletext protocol would allow.

The great educational machine

Because the P2000 was so well built, and the cassette player was easy to use, Philips managed to take a big part of the project to promote computers in elementary schools. They offered 465 P2000T computers for the "100 Schools Project". Another important push for the P2000 came from the project Input by the Dutch Savings Bank.

Former teacher Chris de Boer travelled to every corner of the Netherlands to promote the P2000 in schools. He partnered with Educabook to publish the "Basic Probeerboek", and wrote one of the books kids received at their local Savings Bank. A second book under the Input program "Hoe de micro-computer werkt en wat je er mee kunt doen" was bought from the English publisher Usborne, and it was a translated and localised version of the book "Understanding the Micro: How It Works and What It Can Do". The text was translated by famous writer Jan Terlouw, and they added a section on the P2000T, absent fromt he original english book. Another force behind the project was Chriet Titulaer, the Dutch Bob Ross of technology education.

Philips had a solid share in schools: in 1985 it had 2136 machines in high schools, after Commodore with 4450 machines, but way ahead of number 3 Tandy, who had 695 computers in Dutch high schools. Strange enough they did not manage to get their machines into schools from OMO, the very large Catholic school organisation that runs the majority of schools in and around Eindhoven. OMO chose Commodore as partner.

Most software was developed by members of P2000 user groups. If you read the Philips P2000 software brochure, you see two groups were behind the development of programs. You had the P2C2 group, made up by employees of Philips that had a P2000T at home. There also was the NatLab Thuis computer club (home computer club), and after a while they opened it for people outside Philips. June 27th in 1981 the P2000GG (P2000 Gebruikers Groep or P2000 User Group) was founded as subsidairy of the nation wide Home Computer Club (HCC). You could get access to programs either online via Viditel or on tape via the P2000GG. Viditel was built by the national telecom coorporation PTT Telecom, and allowed dial-up connection to a server with P2000 software.

Most programs were written by enthusiast users of the machine. There was hardly any commercial software. People who wrote programs for Viditel distribution got a gift card of 100 guilders for their work. Some programs from the catalog that may spark a memory are "Androide Nim", "Doolhof", "In de ban van de Ring", "Kleurendemonstratie", "Korenvliet", "Maanlander", "Othello", "Pak de muis", "Schatzoeken", "Speelpaleis" en "Vluchtsimulator".

The horrible gaming machine

While the computer did well in education, it had less success in gaming. Many P2000T machines found their way to the Dutch families, but to become a big succes there, games were essential. Console gaming never fared well in the Netherlands, as the market was tiny and localisation of software was still expected by buyers. So copying tapes was the norm in the early eighties. The P2000T could be copied fairly well, but not as easy as regular size tapes in a double cassette deck.

The major hurdle though for game developers was the hardware. 2 aspects of the hardware architecture were killing for succes in gaming. First hurdle was the SAA5050. Not only was the design of graphics limited by the low resolution of 78x72 pixels, the invisible characters needed to change a colour created gaps in game screen designs. Another problem with the SAA5050 was that you could only update the memory buffer during blank time, the moment the electronic ray from the TV tube travels back to the top left position. If you changed bytes in the buffer during the display cycle, the image would show serious artefacts. So programmers needed to make another buffer for all the changes that were needed on screen, and push them in one go in the blank moment.

Second hurdle was the way the monitor ROM read the keyboard. Any normal hardware design would scan the rows of buttons, and put the position of each key in a bit array where 1 is pressed down, and 0 is released. This way you could make routines that react to press, hold and release of each individual key. The monitor ROM processed the keys differently. Instead of storing the current situation, it puts each key press in a linear buffer. So if you press A,B,A, those buttons get in a cue, from which you can read the key that is longest in the cue. After reading a key it gets discarded from the cue. As you can imagine, this makes it very hard to registrate multiple keys at once, and this translates to bad behaviour of the controls in 4-way games. If you want Pac-Man or a platform game to play nice, using a linear cue of key presses is horrible.

Nevertheless some developers were able to make some great games for the P2000T. Many of them were clones of famous hits in the arcade. The Pac-Man for the P2000T was called "Ghosthunt". It was one of the games that hit the limit of what was possible with the machine. It was 100% made in Z80 machine code, and the developers even wrote their own assembler system to create the game: Zemon. Ghosthunt title screen

Despite the limitations of the teletext chip, Ghosthunt is a remarkable Pac Man clone. It has a nice difficulty progression through 8 stages, after which the game loops and the speed goes up. The levels have nice variation, and some have a rotating door around the ghost home. In the higher levels some areas are only accessible through this door, which can be very dangerous considering the ghosts are revived there.

If you manage to loop the game a second time, the speed gets really insane. Another nice achievement is the way it displays 4 colours. By using a yellow background, the walls of the maze can be created with any colour change character in the inverted 128-255 value range. The ghosts and pac-man are red, but when the power pill is eaten, the ghosts get the inverse treatment and become cyan. Ghosthunt even uses the blink function to let the power pills blink. So despite the crappy graphics of the Teletext chip, this is actually a really good Pac-Man game, feeling better than the real arcade version and most game console ports. Even the sound effects are nice! That is amazing as the Z80 had to been taken out of other tasks to do some block wave output on the sound port.

One of the best shmups ever conceived: Fraxxon

Fraxxon title screen Even though the P2000T can be considered as being a bad machine for gaming, it has a great surprise for us: Fraxxon. This space shooter pushed the limits of the P2000T. The programmer L.B. Kruijswijk created an awesome experience by tying together various ideas he found in the arcades of Amsterdam and the physics classroom at school. A bit of Galaga, a bit of Phoenix and a couple of concepts from mechanics class resulted in one of the most exciting shooters ever made. Each wave has enemies with total fresh attack patterns, the game is hard but you will get further with lots of playing, you get bonus rounds and it has a serious final boss.

Tips for buying

The best chance to find a P2000T is on the Dutch classifieds site Marktplaats. Most machines were sold in the Netherlands. Getting a foreign version might be expensive and difficult. It is recommended to do a pick up yourself, there is a lot to check.

What things do you need to check when picking up a P2000T? First of all make sure it has the BASIC Interpreter 16K cartridge. If you know up front the cartridge is missing, order a multi-cart from Ivo Filot. Without a cartridge, there is little to test. You can easily check if it works by hooking it up to a TV. This does not necessarily have to be a CRT, even 4K OLED TV's will work.

Best is to bring a standard RF video cable if you visit a seller, in case they don't have one. It is also wise to bring a standard IEC grounded 240V power cord. I've come across P2000's with no cables at all. Plug both in and switch the TV to Analog. Tune to channel C35 or C37, most P2000T RF modulators use either of the two channels.

If the machine works correctly you will see the screen above. If it says "14966 bytes vrij" it means the machine has the default 16 kB RAM, if it says "31350 bytes vrij" it means you have 32 kB RAM. "39542 bytes vrij" means is has the maximum 40 kB of RAM. Well, most of the time it means it has 80 kB of RAM, the base 16 kB plus an additional 64 kB, but only 40 kB is available within the address space. The base 16 kB and the first 16 kB of the expansion are tied to address 0x6000-0x9FFF and 0xA000-0xDFFF.

You can switch the upper 8 kB with the command OUT 148,x where x is the number of the active bank. The address space for the active bank is 0xE000-0xFFFF. With the full 64 kB ROM addition, there are 6 banks of 8 kB available, numbered 0-5.

If you have no means of hooking up a display, you can check if the boot sequence goes well by inserting a tape. If it starts spinning back after power-up you know the tape motor works. If you hear the tape hit the beginning, and then hear it starts a reading sequence, you can assume the logic board, the ROM and the tape drive all work. Typical for loading is that the tape spins back after reading one block as if it reads that block again, the normal behaviour on the first block of data.

If you see an image by now and the RAM amount is known you should check the keyboard. Try all buttons, including the combination with shift. All should result in on-sreen characters, except for shift, caps-lock and CODE. You can try shift and caps-lock in combination with letters. CODE is only used in some other cartridges and gives a beep in Basic.

If they don't sell the computer with tapes, try to bring a Philips Mini Cassette System tape. Without you can't test the tape drive. Listen to the sound, it should sound pretty smooth. Shift-numpad-1 should scan a tape for files. You don't need a pre-recorded tape, just bring an empty one. It is recommended to fill the hole in the upper corner with the original black plug, or just with a drop of hot-glue. This makes the tape write enabled. If you have an empty tape hit shift-numpad-7 to erase the tape, and type J to confirm. Now type something like 10 REM TEST, en then CSAVE"TEST". The tape should spin and the file should be written. Reset the machine and try CLOAD "TEST" and LIST to see if your program was saved.

Check the optical condition of the machine. Most cases, except those from the last batch, are painted with a metallic paint. Check the corners for missing paint. It tells something about the amount of use it had. Some people modded the P2000. Look for signs of that, for example extra holes for switches or connectors.

The P2000T came in three versions. There is an original version, which can be recognised by a translucent cover to hold a paper with notes. Later models don't have the cover, they have a sticker in that position saying P2000T/38. Both versions have a sloped textured slider to open the tape drive. The last model has the sticker as well, but now the tape drive has a small lever to open it, and they stopped spray painting the light grey plastic in silver. The versions with a sticker have a lower quality tape drive, with a bigger chance they are broken.

Last thing to check is the availability of tapes. You need tapes to run the machine. They are pretty tough to get. Dictation tapes are still sold, at roughly 10€ per tape, and they are of less quality. I met sellers who brought 100 tapes to recycling, and only sell the computer! Such a shame. Don't accept no, ask again! We are working with the preservation community to arrange other means of loading software, but using tapes is easy and fun!


If all feels well, you can start the negotiation. A working nice looking P2000T with Basic Interpreter, 32 kB of RAM and 1 or 2 tapes is worth 100€. Nice looking means the keys are near-white, the metallic paint is without major scratches and worn corners, and the plastic door and note lid are looking nice. A working power switch is rare, so expect to have that replaced. New switches are like 5€.

Subtract 20€ if the model has only 16kB of RAM (which means no Fraxxon!). Subtract 25€ for a missing Basic Interpreter module (the price of an universal replacement cartridge). Subtract 25€ for a faulty tape drive, which is a real handicap. I personally would not get a P2000T with a faulty drive.

Add 20€ for a floppy/48 kB board, 30€ if it is the MiniWare model that includes RS-485 and real time clock. Subtract 20€ for the later model without translucent note cover and smaller cassette-door lever. Add 20-50€ for a box depending on the condition. Styrofoam and no water damage is 50€. Add 2-3€ for loose tapes, 5€ per working tape in its container with content. A tape box for 6 containers is worth 10€. Working Floppy drives can add serious value, those are very rare. There is not enough reference pricing to give a suggestion on those. The manual is worth 10€, and pay as you like for any other documentation you can get.

Hooking up to a modern computer

Since tapes are no longer easy to find, and those you have het older and less reliable, we need other means of getting programs on and off the P2000T. Your best option to communicate with modern machines, is obtaining a RS-232 USB cable. The green ones are like 15€.

If you want to put programs on your P2000T using a serial cable, you need to type a program in BASIC, see the files under downloads. The program is so compact it only occupies 1 block on tape. It is advisable to put it as first program on a tape. That way you can press reset, it will load the program, and starts listening to incoming serial data right away.

P2000T Emulation

The P2000T can be emulated in 3 ways. The easiest is the recent upgrade to the classic emulator by Marcel de Kogel. It is called M2000, and now comes in 32/64 bit Windows, MacOSX 10.13 and up and Linux versions. You can also use the original classic M2000 DOS emulator by Marcel de Kogel, but it has some Teletext render issues. Last option is to use MAME, but the P2000 emulator in there has serious issues as well.

The new updated emulator has many advantages over the original DOS version. It now supports clean tape files with proper 32 byte headers per block (.p2000t files), it has the option to switch between strict key layout mapping, and symbolic mapping for easier use on modern keyboards, it allows for screenshots and video-RAM dumps, you can tweak the emulation speed and you can do requests on Git Hub if you want extra options or find a bug.


MacToP2000.bas.txt: Basic program to load single P2000 program from Mac
Print and type on real P2000, then save with csave"MacToP2000"
P2000toMac.bas.txt: Basic program to dump full cassette over RS-232 to your Mac
Print and type on real P2000, then save with csave"P2000toMac"
MacOS Apps for sending and receiving programs coming soon.
MacToP2000.cas: Basic program to load P2000 programs from Mac in .cas format (Catch 22)
SAA5050.cas: Basic program to show the BBC Ceefax Engineering Test Page on a P2000T
Teletext graphics design page: Printable PDF to design Teletext graphics.


The information on this page is for a small part taken from the P2000GG newsletters. Another part of the text comes from a lot of experiments with my P2000 machines with various mods and add-ons. The most valuable resource was a bunch of conversations with people who made the P2000T tick. Game makers, people who were in the network of promotion and creating the eco-system, fans from Retroforum and Circuitsonline, and now 70+ year old engineers from Philips who created the machine.

Useful links

P2000 Preservation project, for software and documentation:
M2000 emulator by Marcel de Kogel:
P2000 page by Ivo Filot for replacement cartridge:
Working Serial adapter RS232-USB cable
© 2008-2023 Martijn Koch