You’re right about the index registers. Below the S/360 Model 25 the instruction set was limited and I/O was different. The Model 20 was interesting to say the least. :-)
Only RX instructions have a position for an index register. For those instructions the storage address is specified as D2(X2,B2) - and as you note, the registers are positional such that for base+displacement, you have to code D2(,B2) to indicate the absence of an index register.
I knew some people who did work on the Model 20, but the lowest model I ever actually used was the Model 25. When I was about 20 years old, I happened to substitute-teach an Assembly Language course at a local college for a few days. The school had a Model 25. It was the cheapest model that supported the full instruction set.
The course I was supposed to teach was heavy on decimal arithmetic, which I had never used. But fortunately, in my regular job I had a CP/67 timesharing account. That was the closest thing to a PC in those days. So, prior to my teaching engagement, I read up on the decimal instruction set in the Principles of Operation and wrote some practice programs to make sure I had it down cold.
That’s right. RI instructions don’t have a place for an index reg.