On 2013-01-06 02:46, Brian Schenkenberger, VAXman- wrote:
Johnny Billquist <bqt at softjar.se> writes:
{...snip...}
One of them is a simple optimization for the PDT-11. It's not strictly
neccesary, but apparently DEC thought the time gain was enough to make
it worth exploiting. Code looks like this:
.IF DF L$$SI1
MOVB @(R5)+,-(SP) ;;; COPY CHARACTER FOR WORD MOVE
MOV (SP)+,(R4) ;;; (SAVES 85 USECS ON PDT-11)
.IFF ; DF L$$SI1
MOVB @(R5)+,(R4) ;;; OUTPUT A CHARACTER
.ENDC ; DF L$$SI1
OK, I'll bite. Why is moving a character in the deferred location in
R5 to the stack and then, from the stack to the address in R4 faster
than just going from the deferred R5 location to the R4 address?
I'll have to make a guess, since I don't have the hardware, nor have I checked if
any documentation at that level can be found anywhere.
But it seems very likely that it's the byte write that is the problem. That becomes a
read-modify-write cycle on the bus, since everything on the bus is accessed as words. And
accessing the DUV-11 on a PDT-11 is extremely slow. Just guessing, mind you...
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic
trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" -
B. Idol