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 P2000T 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. 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 16kB 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 256 bytes, the tape stores 42 x 1280 = 53760 bytes or 52 classic kB. If you divide that through 93, the data rate is 578 bytes per second. With correction bits added, we get to 5780 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. Another weird mystery of the tape is that the headers of each block are a huge 256 bytes. Which is weird, as only bytes 48-79 of the header are actually used. The rest of the header is not empty, but you can erase it and the tapes still work.

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 it might help to try the tape again, or 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 16kB 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.

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.

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 In theory you could even make a replacement interrupt routine that reads the keyboard in a more suitable way for games. But this was probably out of scope for the mainly 17 year old teens that wrote the majority of P2000T games.

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. You could also choose to bring a standard IEC grounded 240V power cord. 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 16kB RAM, if it says "31350 bytes vrij" it means you have 32kB RAM. "39542 bytes vrij" means is has the max 40kB RAM.

Now we have image 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.

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. The case is 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. 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 fun!

If all feels well, you can start the negotiation. A working nice looking P2000T with Basic Interpreter, 32kB of RAM and 1 or 2 tapes is worth 100€. Add 20€ for a floppy/48kB board. Subtract 20€ for the later model without translucent note cover. Subtract 25€ for a missing Basic Interpreter module. Subtract 25€ for a faulty tape drive. 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€. 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 2 ways. You can use the classic M2000 emulator by Marcel de Kogel. If you can't run DOS programs, you have to wrap the M2000 program in DOXBox, a DOS PC emulator. Downside of M2000 is the SAA5050 chip is not emulated very well. If you run the test image above, you will see that quite some characters are missing.

Also make sure you have an image of the keyboard layout. You will need the START and STOP buttons quite often, and they are on the num-pad under SHIFT-NUMPAD 3 and SHIFT-NUMPAD DEL. Tape search is under SHIFT-NUMPAD 1. On a smaller keyboard like on a windows laptop, you can type FN+SHIFT+M to get a list op tape contents, or FN+SHIFT+. for START. Be aware that most symbols above the numerical keys have a different position than today. On a MacBook using START, STOP and tape index is impossible.

The second option is MAME. The P2000T module is currently being developed, and can be downloaded as beta. Be aware that MAME emulates the tape drive including realistic timing. This means loading a tape can take a minute. The Tape routine is not free from bugs. Right now MAME throws "Cassette Error E" quite often, and tape listings are often incorrect.


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

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