Jerry, Noel,

    Thanks for your feedback. Also, Noel was correct on the typos I made on 
DD1, DE1, and DF1. I was copying from a scanned .pdf and some strange OCR 
translation was occurring and I missed correcting those.

    Yesterday I stuck the ADV11-A in a MINC-23 with 256 KB memory and verified 
that it worked. The CSR is different than a MNCAD and the voltage range bits 
may be different, but when I connected a 40 pin cable and a IDE to screw 
terminal connector on the I could match up the +4.5 and -4.5 reference voltage 
signals with the diagram with the screw terminals and then make voltage changes 
on channel 0 and see the A/D counts change.

  Today, I cut the BDAL18 BC1 trace to ground, verified it still worked in the 
MINC, then moved it to a PDP-11/73 RSX11M+ system I use for hardware testing. 
The RSX system was not configured for this card and the default 400 vector 
conflicts (I think) with the bottom of kernel stack so I’ll need to either move 
the vector switches on the card down or re-sysgen this test RSX system. Thus, 
the only quick testing I could do is via the CSR. 

   Also, to make it easy to see values change I used the 2 digit LED display 
next to the console port to display the least significant bits of the readings. 
This is a technique I use to debug interrupt routines as you can write a 2 
digit octal number with a simple MOV.

    I didn’t loop on the status bit because RSX is multiuser/tasking, but just 
used a 1 second mark time to assure the conversion was done. This would be 
changed to an interrupt service routine once I fix the vector issue. Using the 
LED display made the test code very simple:

        .TITLE ADTST
        .ENABL LC
        .IDENT /280118/

; TKB commands: IDLE/PR:5/-FP=IDLE
        .MCALL EXIT$S MRKT$S WTSE$S

LEDCSR = 177524
ADCSR  = 170400
ADBUF  = 170402

        .even

LEDS:   MOV     #177777,R0
        MOV     #100,R1         ; COUNT
10$:    MOV     R0,@#LEDCSR     ; Display inverted contents of R0
        CLR     @#ADCSR         ; Clear A/D status register
        INC     @#ADCSR         ; START A/D
        MRKT$S  #1,#1,#2        ; Set Mark Time for 1 sec on eflg #1
        WTSE$S  #1              ; Wait for eflg #1
        MOV     @#ADBUF,R0      ; Get A/D value
        BIS     #177700,R0      ; Set all bits high but lower 100
;       DEC     R0              ; this line counts to 77 octal on display
        SOB     R1,10$
        MOV     #177777,@#LEDCSR        ; Reset LEDs to .
        EXIT$S
        .END    LEDS

  So Noel and Jerry, you are correct it is that simple. If the A/D was DMA, 
that would be another situation (like the RX02 controller).

Best Regards,
Mark 
 

Reply via email to