[Simh] pdp11 i/o addressing

Paul Koning paulkoning at comcast.net
Fri Feb 16 10:15:28 EST 2018


Mike,

You should get yourself a good intro to the PDP-11, for example one of the PDP-11 Processor Handbook copies you can find on Bitsavers.  It answers that question and many others.

The key point is that you have to distinguish virtual addresses from physical ones.  The I/O device addresses are physical addresses.  The program uses virtual addresses.  Physical addresses can be 16, 18, or 22 bits depending on the model; virtual addresses are always 16 bits.

The power on default mapping is that physical addresses 0-157777 map to physical addresses with leading zeroes; virtual addresses 160000 and up map to physical adddresses with leading ones.  So, for example,

	mov	#101, @#177566

moves the value 0101 (decimal 65, the ASCII code for "A") to physical address 17 777 566 which should result in A appearing on the console output.

On machines with an MMU (which is most of them) the mapping from virtual to physical can be changed, and for example the "I/O page" (top 4kW of physical memory) might not be accessible.  But by universal software convention, in kernel mode 160000 and up (MMU page 7) are always mapped to the physical I/O page address range.  

	paul


> On Feb 16, 2018, at 10:05 AM, Mike Stramba <mikestramba at gmail.com> wrote:
> 
> Greetings,
> 
> I'm trying to figure out how console I/O works with the PD11.
> 
> Or more generally I/O addressing
> 
> E.g.
> A  "sh TTO"  gives :
> 
> TTO, address=17777564-17777567, vector=64, 7p
> 
> And 17777564 (octal) is 4,194,164 dec, which is obviously out of range
> of the 64K addressable by any MOV instruction.
> 
> But various diagnostic routines, e.g. below, are using
>     movb rX,@#177566       ; output to console
> 
> https://www.ak6dn.com/PDP-11/M9312/23-248F1/23-248F1.mac
> 
> Are I/O devices always at the "top 64k" of memory ?
> 
> If so, why doesn't  SH DEV display :
> 
> xxx xxx-177 777  ?
> 
> Mike
> _______________________________________________
> Simh mailing list
> Simh at trailing-edge.com
> http://mailman.trailing-edge.com/mailman/listinfo/simh



More information about the Simh mailing list