[HECnet] DU11 vs. DUV11

Johnny Billquist bqt at softjar.se
Sat Jan 5 17:31:36 PST 2013


On 2013-01-03 22:19, Johnny Billquist wrote:
On 2013-01-03 18:37, John Wilson wrote:
Trivia question:   what are the major differences between programming
the DU11 and the DUV11?   At least from the handbook descriptions, it
sounds like the DUV11's isochronous (= async?) mode works and the DU11's
doesn't, but that's the only difference I can see and I don't see how
it matters for DDCMP use.   And yet, DECnet/RSX has different names for
them, as if it's using separate drivers for each.

If DECnet/RSX uses different names, then it is also definitely using
different drivers.
However, who knows if the actual contents of the drivers differ, or if
they just liked having different names for them. :-)

(I can check next week. Please remind me...)

Ok. Just checked.
There are about two differences between the DU and DUV driver in DECnet under RSX.

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


The other difference is probably more important. It appears there might be a hardware glitch on the DUV-11. Code looks like this:

              .IF DF   L$$SI1
              INHIB$                                   ;;; LOCK OUT INTERRUPTS
              .ENDC     ; DF L$$SI1

              BIC         #TXINT,(R3)         ;;; CLEAR TRANSMIT INTERRUPT ENABLE

              .IF DF   L$$SI1
              ENABL$                                   ; ENABLE INTERRUPTS AGAIN
              .ENDC     ; DF L$$SI1

the only way I can understand that code is that there might be a spurious interrupt when manipulating the interrupt enable bit on the controller.
All else in the code is the same between the two controllers, and (as you might have guessed) the source code is shared, with just a conditional selecting which version to assemble.

	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



More information about the Hecnet-list mailing list