In a recent lull in my work, I started
building a new workbench computer. I've had in mind doing this for many years, although improvements I was able to make to the existing one delayed or reduced the need. The work load is back up now, so the new workbench computer is on hold for a while. I'm using a half-rack-width 3U VME card cage, more portable, with batteries in the back so it can operate mobile, and will have a bigger display and keypad, more I/O, including more channels and more bits of A/D and D/A, be much faster, have 768 times as much RAM, etc.. This is to control processes and experiments on the workbench, take and analyze data, substitute for much more expensive equipment I don't have, and now even take data in the field, like the times I've recorded data in light aircraft (which we make communications products for) but with more flexibility now.
I've been doing some tests on the 65816's undocumented behaviors for one of the 6502.org forum members who has quite a knack for using external logic to trap unused op codes to do his special magic for ultra-fast I/O functions. The 65816 only has one unused (actually reserved, but they'll never do anything with it!) op code, and it has one operand byte, and then Jeff uses it to do both input and output at once (non-memory-mapped), plus optionally modify the next instruction (fooling the processor as to what it is) depending on the input results (so you don't have to branch), all in two clocks (100ns @ 20MHz). He has a similar thing for the 65c02
on my website, doing I/O bits in a single clock cycle (50ns @ 20MHz). The logic functions could of course be put into programmable logic. I'm looking forward to using his magic on the new computer.
15 or 20 years ago I wrote an extensive Forth kernel for the 65816, so the software is well on its way. I also plan to use the large look-up tables for super-fast 16-bit scaled-integer math, as discussed on
that section of my website. There's no interpolation, as every answer is pre-claculated, accurate to the last bit. In some cases like trig or log functions, it's
nearly a thousand times as fast as having to actually calculate the value. My HP-71 hand-held computer worked for a few weeks to generate all those tables and put them in Intel Hex format. The website section has the tables (which you can use with any processor), info on how each table was formed, how to use it, background info on how scaled-integer (notice I did not say "fixed-point" which is a limited subset of scaled-integer) can be used in many if not most situations where most people think you need floating-point, and how to interface.
So far I have the power-supply board and most of the mechanical work on the card cage done, but have not started on the CPU board yet or other separate board(s) for things like the analog I/O channels.