|A new addition to my collection, to cleanup and get working|
- 1 12 September, 2017 received a P2000T in box
- 2 23 September, 2017 I have a 16K BASIC cartridge!
- 3 24 September, 2017 Keyboard is a mess!
- 4 25 September, 2017 Found the keyboard matrix layout
- 5 February 26, 2017 keyboard repair didn't work
- 6 1 October, 2017 Tried the P2000T that Awesome space has
- 7 3 October, 2017 Almost there!
- 8 7 October, 2017 All keys (but one) work, but still all is not well
- 9 25 October, 2017 found back BASIC Demo cassette and ran all the demo's
- 10 30 October, 2017 74LS145 replaced, nothing changed, a few keys still produce garbage after the correct character
12 September, 2017 received a P2000T in box
The Philips P200T I received from Benadski as a donation, came in a plain looking cardboard with large brown spill marks, it seemed sometime in the past had spilled a lot of coffee (or something like that) over it, and the computer looked like a mess, so I disassembled the computers, in an an attempt to estimate the damage the coffee had done. Remarkably the main board was as new, but the keyboard PCB wasn't as lucky, as the coffee had spilled all over it. After cleaning it thoroughly I assembled it, and took it home to test if it was working, which it did, but unfortunately I couldn't test if there was damage to the keyboard!
It also did not come with a manual, or anything else, beyond a power cable. Especially unfortunately was that the essential BASIC cartridge was missing, as was the transparent cover over the what I presume was a place to stick some indexing card or maybe just a logo, as can be seen in the project picture on the right here. Without the BASIC cartridge the machine is essentially non operational. It does have a 4K monitor ROM chip, but that contains just a kind of "BIOS" routines like memory testing, and serial printer and cassette drivers. It has no user interfacing code what so ever, not even a debug monitor. when you turn on such a P2000T you only get this screen, (see picture at the right) and a loud beep through the TV speaker, so at least it seems the system is still working:
There is no interaction at all. I noticed that when pressing the "down arrow key" an uppercase L started blinking somewhere on the top of the screen, no idea what that is about! I have read that the machine would automatically start loading a tape, but that wasn't noticeable on my machine, perhaps because it also came without any cassette tape. Note that the P2000T uses a very unusual tape system in the form of small dictaphone cassettes, (microcassette) much smaller than normal audio cassette tapes. Philips used specific hardware to get a baud rate of 6000 bits per second, using FM encoding, which was quite fast for the time, this was possible by using a directly coupled analog circuitry to the microcassette, instead of using a generic audio cassette and its limitations.
The P2000T was quite expensive when it was launched, about 3000 Dutch guilders, (equivalent to €2725 in 2015) and it didn't offer much for that money, just a 2.5Mhz Z80, (slower even than the at 3.25MHz clocked ZX81) with 4K RAM (expandable to 16K) and a Videotex compatible 40x24 screen with 8 colours. Sound was just a 1 channel speaker. outside of schools (it got a part of the 100-school project, that was actually won by Aster Computer which was a real Dutch computer, unlike the P2000T which was designed in Austria) it did not seem to have had much success, but at least it had colour through its SAA5050 and SAA5020 Teletext chipset, which Philips borrowed from its TV designs, so despite it not having any high resolution graphics, nor even re-programmable characters, it still has a small collection of games.
Unfortunately without a BASIC cartridge I cannot even test of the keyboard has survived the coffee disaster, I have looked under one of the keys (which are individually click mounted to the keyboard PCB, and use the rubber dome technique with a carbon pad) and saw some evidence of the sticky dried up liquid, but in this case it did not cover the keypad fingers, but other keys might not have been be so lucky. So I need to test all the keys to see if any of them has coffee damage.
My next task will be to somehow get or make a BASIC cartridge, so I can at least test if the keyboard is in working order. I also will need a copy of the user manual, which is not available online (and which I have read is of atrocious quality anyway, not even detailing the memory map, for example) but I still think I need it. Perhaps I can lend one from awesome space and photo copy it, Perhaps they also have a BASIC cartridge from which I can read out the ROM's, and create my own copy. I will also want to acquire at least one microcassette tape, although you cannot get tape files for this system, for some reason, so its of little use beyond saving small BASIC programs to see if the tape system still works.
23 September, 2017 I have a 16K BASIC cartridge!
I was just leaving Revspace (to get my logic probe) to go to Awesome Space in Utrecht to do some more work on the space invaders console there, when I ran into Benadski, who offered me the BASIC interpreter cartridge, a gracious donation of Hewlett of the circuits online forum, see: https://www.circuitsonline.net/forum/view/135755/9 Obviously I'm very pleased with it, as without one a P2000T is a good as useless (except when you have loadable tapes, with machine language programs on it, which I have heard will auto load).
I can report that the cartridge works, and has revision 1.1 of 16K Microsoft BASIC. I had also brought the same cartridge which I borrowed from Awesome space, just in case this one didn't work, but that one also did, but by the was a revision 1.0 version, so I don't need it after all.
I tested all the keyboard keys, but 2/3 of them are not working! So I plan to remove all keys (except the space bar, which is one of the working keys) to clean the PCB underneath them.
24 September, 2017 Keyboard is a mess!
I started replacing the matrix pull-ups with weaker ones, which meant desoldering a 10x4K7 resistor network, (with hot air) and after removing the solder from the holes (which was difficult) I soldered in ten loose 10K resistors, and connected their tops together and to pin-1 of the resistor network, to replace the ten 4K7 resistors with 10K ones. In the past this has helped with troublesome keyboards, as their keypads do not make as good contact as before.
After that I started systematically removing keycaps, starting from the top row. Unfortunately after removing a few keypads it became obvious that the coffee had left a right mess around the keypads, see this picture and shiver!
That didn't look good at all! After cleaning out the mess with keyboard cleaner (windex) and isopropranol (alcohol) I tested a few connections, and soon discovered there were traces that were in parts bad, parts of the traces had become discolored and dark, and there it seems they had "rotted through"! at at least a dozen places these dark spots were visible, and all of them seemed to be a disconnect! I have started to repair these, but it is slow going, and I will not finish it today!
I have found a technical reference document, and it shows the P2000T uses a BCD encoder (one out of ten), and eight inputs, (an eight by ten matrix, good for eighty keys, but the P2000T has only 66 keys, so at least 6 locations in the matrix are empty, or 7 if the two shift keys are wired in parallel) but nowhere does it say which key belongs to which matrix position. So that doesn't really help me much.
25 September, 2017 Found the keyboard matrix layout
The matrix is as follows:
February 26, 2017 keyboard repair didn't work
I fixed a few dozen "rotted through" traces, and thought I had found all of them, so I had good hopes that this would fix at least most of the non working keys, but when I tested the P2000T at home I found that most dead keys were still dead! I did found that the table above needed a few fixes, (X and Y seems to be interchanged, as lines are labeled Y 0 to 7 and X 0 to 9) especially the "right arrow" and the "1/4" symbols in column 4 of the table corresponded to the " ' " and the " [ " keys, and also that CLRLN was part of the numerical keys. When I encircled non working keys in the keymap I found that at least two columns were not working at all, the column lines of the columns 5 and 6 seem to be interrupted, as all the keys in these columns are not working. This warrants some more measuring of the connections between the motherboard (or the relevant buffer chip on it) and the keypads for this column line. I also noted that both the previous working space bar, and numerical keypad "0" key now produced long strings of spaces/zero's, interspersed with other characters, as if the keys were only intermittently seen. I suspect the P2000T actually has a bit of a design error in that there seems to be a timing criticality when reading keys, which are directly read as memory locations it seems. It might explain why the Z80 is clocked so low (2.5 MHz). Also it seems that for some odd reason the P2000T engineers thought the keyboard had to be interrupt based, but perhaps I'm missing something. Its just so hard to get good information about this system. I will stubbornly carry on trying to fix the keyboard, next mission is to measure the keyboard logic through to see what the problems are.
On a positive note, I was told by Benadski that he was trying to acquire a P2000T microcassette tape for me.
1 October, 2017 Tried the P2000T that Awesome space has
Just to see how the state of the keyboard of the only other P2000T I know, the one from Awesome Space, was like. I tried that one over there, but I couldn't turn it on as it had a broken power switch. I couldn't repair the switch itself as it was mechanically locked up, so I bypassed it, so that the P2000T would turn on if you plugged a power supply in it. perhaps someday I can source a replacement switch. I labeled the P2000T with what I had done, and tried out the keyboard, which was fully working on this P2000T. I can say that I have learned a few things, for example the key combination to format a cassette, and read its directory (catalog), and also the cload"name" command, and which keys were "dead" when using BASIC. so I now know what to expect. The -> and ] keys are not working in basic it seems. I have not discovered what the "code" key does.
3 October, 2017 Almost there!
I started with testing if there were interruptions in the connecting cable, by measuring for continuity between the interface IC's on the main board, and the connector pins on the keyboard, but found no interruptions, all connections were fine, so the problem is just in the keyboard itself. I decided to concentrate on finding broken column lines, as most problems seemed to exist in keys in the same column lines. First I tried to follow all keys of column 5, a column where none of the keys worked, so I removed all keys of that column in an attempt to find where the interruptions were between the column 5 connector pins and the individual keys of that column. I discovered that all these keys were connected to each other, but not to the connector pin, and I could not find the actual trace to that pin. So I decided to give up finding disconnects, as they probably were below an impenetrable thick brown lacquer layer, impossible to find where exactly the break was. So I decided to take the thinnest isolated wire I had and simply bypass the break by connecting the pin to the physically closest point of the column trace I could identify. I also did that to columns 4, 6 and 7. afterward I placed all the keys back, with the rubber domes underneath them, reconnected the keyboard to the motherboard and tried if I could test the P2000T by connecting its antenna output to the antenna input of the main large LCD TV/Monitor of the space, using a simple banana cord. After tuning the TV I found this primitive non coaxial cable worked remarkably well!
Unfortunately some dozen keys still did not work, but I managed to enter a small "hello world" basic program. Key "1" (one) did not work, so I started the program with line 20, also I couldn't run the program, because the "u" key wasn't working, but after some thought I used "GOTO 20", and that worked. Hurray! I also managed to get a catalog of the cassette (yes I have one now, thanks to benadski) which contained several BASIC demo programs, (it lasted at least a minute to find them all, but it still worked fine) none of which I could load, as they all had file names with missing letters (keys) in them.
I found out that all missing keys were in the same column line, (column 6) and I found three keys that repeated (garbage), all in the same row, (row 2) together with the space bar. Probably a weak pull down from the 1 of 10 decoder. Probably the wire that connects to connector pin for column 6 and the column 6 trace is loose on one end, or I made a mistake.
So I re-assembled the P2000T, and brought RevSpace member Peter to a hospital in Leiden South, because he had cut into his thumb very deeply and had to go to first aid, and I was the only one left with a car to drive him there, so it became very late before I could go to bed, but it was a well spent evening/night.
7 October, 2017 All keys (but one) work, but still all is not well
So I went to the repair Saturday at awesome space, and took my P2000T with me. There were not much things to repair, that others were not already working on, and the CD4006 did not yet arrive, so no further Space Invaders repair was possible, so I decided to work on the broken column 6 problem.
I quickly found out the wire I laid wasn't connecting, and pulling a bit on it revealed it had broken inside. After repairing that I noticed the B key wasn't working, and at first I thought it was because one of the carbon pads had "rotted off", so I had tinned that pad. Perhaps the problem was a small height difference between the carbon pad and the tinned pad, or the other carbon pad wasn't connected well to the copper beneath it, so I removed that carbon too and tinned it as well, in fat I retinned both and cleaned them up with solder wick. That didn't do the trick, so I started measuring between column, and row lines for the B key, and found no connection, so I traced to where there was a break in the connection, and found another tiny piece of rotten track, after repairing that the Key worked, but during a final test I found the M key was also bad, and after pulling it off I found another broken trace, which I also repaired.
Still the "00/Print" key wasn't working either, but I couldn't find the piece of broken track responsible for it, and as its every little used key (you can type two zero's instead, and without a printer its not useful at all) I opted to ignore it (for now).
so now finally all keys (except the useless "00" key) worked. however there was still the problem that some keys, mainly the space bar, acted weird producing a whole string of space and other characters from the same column, and other keys (the # and 0 keys for example) also repeated. The longer I thought about it the more I became convinced that it could not be just the keyboard matrix, a small program that disabled keyboard scanning, and read keys directly (using input(2) commands) showed that the space bar bit read out fine, always producing the same output reliably. Most curious was that for some odd reason not all keys on the same matrix row were affected, and some were more affected than others. The effect seemed to indicate that all columns were affected when column 2 was selected, so I looked at the schematic, and concluded that it could either be the 74LS145 binary decoder, OR the diode that was used with 9 other diodes to select all 10 columns at the same time, but replacing the diode for column 2 did not offer a solution.
So my conclusion is that the 74LS145 is somehow broken, and sometimes (briefly) selects other column lines when it is supposed to select only column 2.
I decided to test my theory that it wasn't the keyboard (matrix) by replacing the keyboard with the one in the P2000T that awesome space has in its collection. I noticed that that keyboard was constructed differently and used a single sided PCB, but with the tracks on the solder side with keys (or just keypads) that were soldered to the PCB from the solder side, also the keyboard cable was color coded (rainbow cable). But with this keyboard I had exactly the same repeating keys, (but the "00" key worked) so its NOT a problem with the keyboard, but with the 74LS145 chip (or at least with the main board)!
I also learned that the keyboard is read out by reading I/O locations 0 to 9, and this explains why there could be timing problems. I don't know if the P2000T has hardware to stretch (keyboard) I/O cycles, but if not it might explain why it is so under clocked at just 2.5MHz.
I ran a small program to print all characters from 0 to 255, but this resulted in a long period of varying frequency beeps. I suppose one of the first 32 characters acts like an ESC sequence to a routine that produces beeps from the characters printed instead of printable characters. printing characters in the range from 32 to 255, produced characters, and I could see coloured text and graphics appear, as well as double height characters and even blinking text. nice!
entering these programs was made difficult though, as some keys kept repeating garbage. Also I seemed to have misplaced my cassette tape, so I could still not run the demo programs. :-(
25 October, 2017 found back BASIC Demo cassette and ran all the demo's
Found back the micro-cassette tape, it seems I took it with me inside the cartridge compartment of the P2000T to Awesome space where it fell out unnoticed, and I found it back on the solder table where it fell out when I turned over the P2000T to unscrew it. Benadsky noticed it there and informed me he had found it there. So I went to Utrecht last Saturday, and recovered it, and at home I tested it. Now could get a catalog of files on the tape by pressing "Zoek", (shift 1 on the numerical keypad) found that the initial file on the tape started with "? " followed by the name of the file which indicated it was some kind of main menu program, so I did enter the CLOAD "?" command, which worked, and I could run the BASIC command of the main menu system, from which I could load the other demo's without typing in a lengthy CLOAD command. Alas, the P2000T sucks in the graphics department, and it is very slow, so the demo's where a bit disappointing, the most interesting being the kaleidoscope with "dots" the size of one character, so very-very coarse, just 40 x 25 "pixels" !
During that demo I could also see the P2000T does not have any video arbitration logic, so it generates what is know as "black snow", that is whenever the CPU writes to video logic it simply gets priority over the video logic, so the video logic simply "blacks out" the screen display, resulting in black sections of the video traces at random locations in the video signal. The only other system that had no video arbitration logic AFAIK was the original TRS-80 model 1.
Well at least I saw that the cassette system still worked, and found out how long it took (a minute or two or so) to load the first file on the tape ( a few hundred kilobytes), it didn't strike be as very fast, in fact it was simply slow, slower than say the Microdrive of the Sinclair spectrum.
In time I will repair the broken 74LS145 chip, but I'm not in a hurry with that right now.
30 October, 2017 74LS145 replaced, nothing changed, a few keys still produce garbage after the correct character
Well, I replaced the 74LS145 decoder, and it did not matter! Something other than the decoder is causing this problem, and I have no clue what it could be. Now I could try to get to the bottom of this problem by using an oscilloscope to try to find out exactly what is happening when the keys repeat, but actually I don't care. I regretfully give up in this case. The keyboard as is, is workable now. The problem IS in the main-board, not in the keyboard. As exchanging the keyboard for another one has shown. The problem could be systematic too, indicating a weakness in the design.
I'm marking this project as finished. I have repaired the keyboard, so I could run the BASIC DEMO tape in Revspace, as was my goal, and that is all I want to do with the P2000T.
I wrote a few short basic programs, and tried to save one to cassette, (I circumvented the ¨geen stopje¨ write protect error with a piece of scotch tape), but probably the tapes had no space left, as they gave ¨Cassette fout E¨ on both sides, and I have no new empty dictaphone tape.
I can see why there are very few demo programs for P2000T emulators and such, as its very hard to convert such tapes to a computer (.TAP) file or something like that. Still emulators do exist, (like MESS) and there are a few YouTube videoś showing P2000T programs, (running on emulators, no doubt,but very few.