HB,
The behavior on a real PDP-8/I (or any -8 for that matter) with extended memory is as follows: For purposes of Deposit and Exam, IF is ignored. Only DF is signficant. If you set the Switch Register to any
DIAAAA
where D is a Data Field, I is an Inst Field, and AAAA is a 4k memory address, both Exam and Dep will be reading and writing from extended memory address DAAAA. Example:
On a real PDP-8/I with at least 28k memory:
1) Hit Stop (HALT on an 8/e, 8/m, 8/f)
2) Set the SR to 543210, Hit Load Add (Set SR = 0045, hit EXT ADDR LOAD, set SR = 3210, hit ADDR LOAD on an 8/e, 8/m, 8/f)
3) Hit Exam. You will now see the contents of extended memory address 53210 in the Memory Buffer (MD on an 8/e,8/m,8/f). It is likely to be 0000 but could be anything.
4) Hit Load Add (ADDR LOAD) to reset the Memory Address to 53210 because the Exam incremented the MA
5) Hit Dep (raise DEP)
6) Hit Load Add (ADDR LOAD) to reset the Memory Address to 53210 because the Dep incremented the MA
7) Hit Exam (EXAM). You will now see 3210 in the Memory Buffer (MD).
HA! I just remembered. All boot scripts in the PiDP-8/I contain the line "set df disabled" so that USB Media can be selected. So yes, the PiDP-8/i does not behave like a real PDP-8/I. Load Add on a PiDP-8/I does not write to DF. Meaning you are restricted to Field 0 when using Dep and Exam on the front panel. And it is intentional.
The defined behavior on all real -8 hardware is that DEPositing or EXAMining from 7777 through to 0000 does not affect DF. Specifically, if the current extended memory address is 57777 and you either DEP or EXAM, the new EMA will be 50000, not 60000.
EXAMining non-existent memory will either give you 0000 or 7777 depending on if the Data Bus is pulled low vs. pulled high. The -8, -8/I, -8/L, -/S are all negative logic, 0v = 0, -3v = 1. On the other hand, -8/e, -8/m, -8/f, and -8/a all positive logic, 0v = 0, 3v (TTL high) = 1. I believe, but I wouldn't guarantee, that you'd always get 0000 on an EXAM on any -8. DEPositing into non-existent memory is ignored.
If machine code reads or writes non-existent memory, it behaves exactly the same as EXAM or DEP do through the front panel. Specifically, there's no hardware trap on non-existent memory. On any real -8, if you want to see if Field X is present you have to write a value that's not 0000 or 7777 in that field and then read it back and check if it's the same as what you wrote. Having determined that any address in a field exists, then you know that the entire 4k field exists because real -8 memory doesn't come in units smaller than 4k.
Cheers,
-- steve