I've had an IBM 9404 B-10 for some time and I'm curious about its assembly language. I'm fully aware the AS lines were designed with portability in mind as much IBM didn't seem to provide assembly language references as they did with the S/36 and S/38. I've searched for some time but couldn't find it even in archive.org.

Therefore, I would like to ask if someone had some sort of reference about its opcodes and mnemonics, as well as basic program structure.

  • 2
    The problem is that the AS/400 implements a "VM" (virtual machine) interface much like many other IBM systems and they did not support program development against the "native" ISA. Of course this allowed IBM to vary the machine's architecture (at they did when they transitioned to the POWER ISA) without impacting application software.
    – jwh20
    Jan 7 at 11:33
  • Yes, that's what I refering to with portability. It's been nearly 35 years since the AS were first deployed and it still seems nobody knows the underlying system under the VM.
    – Borg Drone
    Jan 7 at 13:02
  • 2
    I'm not sure I agree with "nobody" here but the point is the underlying ISA did not matter. Yes, IBM knows it since they had to write compilers and such for it but the publicly-documented ISA is the virtual machine's. IBM refers to the native ISA as "microcode" in the same way that current CPUs have undocumented microcode that implements the public ISA. It's my understanding that the IBM System/38 is very similar to the original AS/400 ISA. You might do some research on that system and see what you can find out.
    – jwh20
    Jan 7 at 14:01
  • Technically, the IBM compilers did not understand IMPI, they worked exclusively with TIMI, the portable layer. Even IBM's OS code was written and run this way. The only place IMPI had to be known was by the program loader or execution engine of IBM i, this would translate the TIMI into IMPI and cache it with the program (either the first time it was run, or whenever it was detected to be running on a different IMPI layer), sort of like JIT compiling.
    – paxdiablo
    Feb 25 at 8:04
  • I'm not even sure it was possible for anyone outside of a very small subset of the IBM i group (the SLIC people) to generate IMPI directly, not even the vast majority of developers inside IBM. As an aside, the IMPI on your 9404 is likely to be vastly different to the "IMPI" on IBM's latest hardware. But the TIMI code of yore will continue to run just fine, without having to recompile.
    – paxdiablo
    Feb 25 at 8:06


You must log in to answer this question.

Browse other questions tagged .