So I've finally got this Soviet 'Microtrainer' МТ1804 up and running, but I'm experiencing problems with the execution of the example programs. Basically the memory seems to be working fine - I can assign values to memory locations using the front switches and they stay put. I can also assign values to registers programmatically, and I can see the results on the LEDs marked "microcommand/микрокоманда" when I run those lines of instructions. However, all other instructions I have tried seem to return a zero value (the LEDs show nothing). This is true for rotate, increment and add, as per the sample programs, and the commentaries on the programs suggest (and in one case explicitly states) you should be able to see the results right away on the LEDs.

As far as I can see there are two possible explanations, there may be more.

1) I've assumed that the LEDs in question will show me the results of operations, when in fact they only show me when values are being initially assigned to registers. However the commentary on the rotation programme specifically says that you will see the results of the rotation on the LEDs, and I don't see that.

2) There is something wrong with the "arithmetic-logical unit" (ie the CPU?) or with something downstream of it.

If 2 is the case, I'm wondering why I can assign values to registers, or is that a different kind of operation, not involving the "arithmetic-logical unit"?

As I understand it, the chip in question is based on the AM2900 from AMD,and the Microtrainer is functionally identical to the AM 2900 Learning and Evaluation Kit.

I wonder if people with more experience on or knowledge of this or similar machines might be able to advise as to what the likely problem is.

  • Neat machine, I like it. On such machines switches/lights are not an in/output device of the computer but a front panel with the sole function of examining (and changing) ram/register data. You need to store the result somewhere and then examine that location to see it. – Raffzahn Dec 21 '19 at 20:42
  • I hear you, but in this case the programs are manipulating the same register whose contents display to start with, and the commentary for the rotation programme specifically says that you will see the changes happening on the LEDs. I see only the first step (the assignment of the value to the register), but not the subsequent steps. – harlandski Dec 21 '19 at 20:57
  • 1
    Then, maybe you have to execute the steps somehow? Like having the trainer set to singlestep? – Raffzahn Dec 21 '19 at 22:00

So I solved it. You can set different monitor options when running programs using the "multiplexer" switches. When set to 0 (as I had it), you see the output of the К1804ВУ1 chip (ie data going into memory). If you set the multiplexer to 1, you see data coming out of the К1804ВС1 (ie after logical operations).

Also I should say that the different sets of LEDs provide different information with different settings. So the data going into memory appears on the middle set of LEDs when the multiplexer is set to 0. When set to 1, you can see the same data on the left hand set of LEDs, while the right hand set show the number of the all-purpose register being used. The results of operations only appear on the left hand set of LEDs, with the multiplexer set to 1.

I couldn't see the results of operations as I hadn't changed the monitor settings (the multiplexer) correctly.

With the multiplexer set to 1, I was able to see incrementation, rotation etc. as expected when the corresponding program lines were running.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.