[comp.lang.forth] Simulate the RTX

gamber@cosmo.UUCP (Johannes Teich) (05/05/89)

Hi folks,
  I am sitting here in Germany in Olde Europe. Very surprisingly, I recently
received several mails from several countries (Holland, Sweden, Scotland,
California, India...) and I was asked several questions (the difference
between Harris' RTX and Novix; the difference between RTX2000 and RTX2001;
the features of an RTX board I had mentioned; addresses from where to get
RTX boards; and prices...). That is very surprising, because I am not a
Forth Guru (but I am very fond of Forth), and because I had almost zero
response on that topic in FidoNet. Nevertheless, I am aware of at least four
German RTX boards, and I am happy to have some contact to the manufacturers.
 
Last year, I decided to buy the blue box called "developing system" from
Harris, with an "engeneering sample" of the RTX2000. As I have already
mentiond here, I made a little demo program for the "electronica" exhibition
in Munich, November '88, and that demo took 4 voices out of a sine table,
playing Bach. I had the desire that the tones should fade (percussion/
sustain), and I meditated how to realize that. Instead of the sine table I
took a table with sine's logarithms in order to add rather than multiply.
It worked well on a demo of my demo on the PC's screen ----- and then I
realized all was wrong. Multiplying with the RTX is much more faster than
adding and shifting and inverting and...and...  Now the tones fade by
non-stop multiplication. I had to implant a DAC into my blue box, of course.
Then the program was adjusted to run on the recently mentioned singleborder.
 
Unfortunately, the RTX is not one of the cheapest chips. Two years ago, I
began to write a simulator program for the Novix chip in PL/M-86 (I had
no Forth on my PC), but I knew that this was a kind of blasphemy, and I
bought the UR/Forth compiler from LMI. When I got my blue case from Harris,
there was LMI's PC/Forth in the package. Now I began to translate that
simulator into Forth and at the same time for the RTX code, until the main
functions worked. Then I had no more time, and I forgot to finish it.
 
Now that I realize that there is much more interest on the RTX chip than I
had supposed (for nobody had needed my rapid chip), I remember my simulator.
If I feel that there is some interest on it, I will make a public domain
version for the PC. (I have also an Atari-ST, and Forth is portable...)
 
 +-------------- Return & Parameter Stacks --------------+ Stack Tops -+
 v  FA     FB     FC     FD     FE     FF     00     01  v <I>    <P>  v
 vFFFFF' FFFFF' FFFFF' FFFFF' FFFFF' FFFFF' FFFFF' FFFFF'v00000  00000 v
 v  FA     FB     FC     FD     FE     FF     00     01  v  N      T   v
 v FFFF   FFFF   FFFF   FFFF   FFFF   FFFF   FFFF   FFFF v FFFF   0000 v
 +------ On-Chip Peripherals -------+---- Registers -----+-------------+
 v IMR    SPR    SLR    IVR    IPR  v  I      CR     MD     SR     PC  v
 v 0000   0101   8080   0200   0000 v 0000   0000   0000   0000   0000 v
 v                                  +----------------------------------+
 v DPR    UPR    CPR    IBC    UBR    TC0    TC1    TC2    MLR    MHR  v
 v 0000   0000   0000   0000   0000   FFFF   FFFF   FFFF   FF00   FFFF v
 +------------------------ Ports ------------------------+-- Opcode ---+
 v  P0     P1     P2     P3     P4     P5     P6     P7  v 1st    2nd  v
 v FFFF   FFFF   FFFF   FFFF   FFFF   FFFF   FFFF   FFFF v A000        v
 +-------------------------------------------------------+-------------+
 
You are invited to take part in the design. The Novix version had the TOS
(top of stack) on the left side, because I wanted to have ascending addresses
from left to right. The RTX has the opposite order (as you see), and there
is no longer a discrepancy with the usual Forth notation (TOS on the right).
 
There should be some elegant way to simulate the driven "hardware" with
its feedback to the program flow. I do not plan to implement your hardware,
of course, but there should be some handy interface. Suggestions, please!
 
    Cheers                                      UUCP: inido!cosmo!gamber
            Johannes Teich                    ( mcvac!inido!cosmo!gamber )
                                                FidoNet: 2:507/414.20