Talk:PSI Comp 80
![]() | This article is rated Stub-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||
|
PSI Comp 80 design
[edit]I built a PSI Comp 80 and used it for a while. It had some virtues but it was deeply flawed in a number of ways. Possibly the most glaring was the keyboard handling. Pressing a key on the keyboard triggered the Z80 non-maskable interrupt (NMI). The NMI routine placed the corresponding key code into the accumulator of the Z80 and then returned. This more or less guaranteed that any code running at the time that the key was pressed would be corrupted. The only safe time to press a key was when the processor had been halted by execution of a Z80 HALT code. I made a very simple modification to the code that created a keyboard buffer into which the keycode was placed the accumulator then being restored in the usual way before the routine returned.
The 'co-processor' may have looked like a good idea and it must have avoided writing a lot of code to implement the mathematical routines however every function performed by the co-processor took 1/10 of a second. I suspect that had the trig routines been implemented in Z80 code they would have been quicker than that but I am sure that simple additions would have been. One consequence was that in the 'high level' language supplied (BURP, standing for BASIC using Reverse Polish) a for-next loop took at least 1/10th of a second for each time around the loop, regardless of what was inside the loop. One thing to be said for this was that it made Z80 machine-code far more attractive than it might otherwise have been. I certainly learned a lot from this computer, but it wasn't until I got one of the first BBC micros that I discovered what a decent language like BBC BASIC could achieve. None of this can really be added to the article because it probably counts as original research which I cannot back up with sources. treesmill (talk) 10:01, 7 December 2010 (UTC)