Uno interfacing to system with scanned keypad

Hi, thanks for the informative reply - FPGAs are something I know absolutely nothing about, unfortunately. Although I have been involved with microprocessors for a long time (the retro system I have been talking about is the first 'computer' I ever bought) things like PLDs and FPGAs came in later under my radar - the main problem with them is that they tend not to be available in human-usable form, ie, not in DIP packages, so unless I have access to printed circuit design / manufacturing facilities (I do not) they are normally impossible for me to use.

I actually do know a great deal about the original system, which is running a 4Mhz National Semiconductor INS8060, more commonly referred to as the 'SC/MP'. I even have the operating system / monitor code listing for it. I know exactly how the machine scans the keyboard, which is roughly as outlined in the drawing above. I believe you may be right, in that I might have to go to pure assembly language or at least direct register access via 'C' in order for the Uno to react quickly enough, but I think that the 16Mhz speed of the Uno may make native Arduino code worth trying at least.

As you may already have read, I did do this already with a PIC and optocouplers across all the keyswitches. It works beautifully, but it was a nightmare to wire up and so is not easy to reproduce. Even if I made the full schematic diagram and the code for the microcontroller available, I doubt that many other people would have the heart to build it.

There are a few other people around who have one of these systems in working order but have the same problem, which is that the only way to get code into it initially is to type it in. Programs are held in RAM, so when the machine is switched off, all code which has been typed into it vanishes instantly. Worse still, one uncorrected error in the code will almost certainly lead to the program running wild and trashing its own code.

That very much discourages anyone from trying to do anything with them.

The original PIC / Optocoupler interface version of the project also includes an RS232 input and Intel Hex code receiving code, so basically, I write code for the system with an assembler on any system which has an SC/MP assembler plus a serial interface, then send the assembled code to the interface, which then types the code into the target machine at very high speed - about thirty times faster than the optional cassette tape interface which was originally available for the system. If I do this and the program code crashes and erases itself because I made a mistake, not a problem. I correct the error, assemble it and it takes about ten seconds for the interface to type the whole program in again.

My aim now is to make something similar with ready-built hardware (so now you see why I am considering the Arduino) and using a simpler direct wired interface to the target system - four row lines, eight column lines, plus 5V power, so that other people can more easily build it and use it. I envisage that the Arduino interface will be powered by the target system's 5V supply and will not be connected to or disconnected from it while the target system is on - so the potential problem of powering the Arduino via its I/O ports would not arise.