PDP11 Support Board Errata: "(assuming 9600 Baud), jumper P3 5-6 (third row from the RHS). " Pin 1 of P3 is lower left. THE BAUD RATES ON THE SCHEMATIC ARE INCORRECT. With RSA == RSB == 1, F5 provides 16*9600 (153.6Khz). Adding U9 is missing from the instructions (Console output, TU58 Output) "Boot up the V2 PDP11 CPU board. Go to the "W" menu and use the '0' option to send the '3' character to the TTY terminal 60 times. A line of '3's should appear on your TTY terminal. The Board Select LED (D8) should briefly flash. The other LED's are undefined at the moment - normally they are all off." This is at the very least, confusing. First of all, there is no '0' option - presumably 'O' was intended. Even with that, no "TTY terminal" is necessarily connected at this point. The builder is instructed to do that in the immediately following step. So, there is nowhere for the '3' characters to appear. Finally, "O" outputs to 177426 (0xFF16), which does not exist at this point because we have not yet switched the console over to the support board. Suggest that this should read: Go to the "W" menu and use the 'A' option to send '3' characters to the TU58 UART port. The board select LED (D8) should flash. "Add U53, U20, U37 & U5." The instructions already had the builder insert U5 earlier (though doing so was not necessary) In the schematic, the printer port status bits low order 74LS244 is labelled "16 Bit TU68 Receive Status Register" "Please note this very simple test routine simply uses the Support Board parallel (P14) at port 1F4EH and strobes each character on port 1F4FH (P14 pin 1). No interrupts are utilized. A proper routine would either look at the busy bits on port FF4DH (U6) or utilize interrupts." Several errors: 1F4E should read FF4E and 1F4F should read FF4F Secondly, the monitor does NOT strobe. It just shoves the data out the data port to the 8212. It also does not check status. This test routine will, in most if not all cases, not actually work. Thirdly, the PLD code as it is by default causes a POSITIVE going strobe. Note on LP11 compatibility. As U8 is currently set up, this interface is NOT currently LP11 compatible. One big reason is that the strobe signal has to be generated in software. On a real LP11, loading the data into the data buffer ALSO generates the strobe signal to tell the printer it has data. So, if this were ever going to work with DEC software, one would have to modify the PLD to assert a strobe at the same time as LP11_PRINT_WRITE. (Not difficult to do). To quote from the LP11 manual (Page 4-5) "7-bit ASCII character buffer. Characters are transferred to the line printer by loading this buffer". Also, the the top 8 buts are marked as "unused" "If these bits are loaded, data is lost in these bits". Also, the RDY/DONE status bit is notimplemented. "The UART Brake Signal" and "The RS232 "Brake Signal" s/Brake/Break/g ;) =========================================================================================== PDP11 Support Board Build Notes My PDP11V2 board uses TMAXPU to activate, rather than TMA0*. So, I needed to do a 3-way wire-wrap jumper on the PDP11V2 board to work with the support board: PDP11V2: P10 1-2-3 Support Board: Stage 1: Check power regulator with no chips installed. Install U8, ATF1508, and program. Stage 2: JUMPERS P19 1-2 (Activate on TMA0*) P3 5-6 (9600 bps. Third *COLUMN* (or vertical row, if you like) of P3 from the LEFT hand side. P4 1-2 U11 RSA == VCC P4 3-4 U11 RSB == VCC P11 1-3 (RS232 Output from UART to DB9 pin 2 RXD), 2-4 (RS232 Input to UART, DB9 Pin 3 TXD), 5-7 (RS232 DTR, DB2 pin 4), 6-8 (RS232 DSR, DB2 pin 6) (These are HORIZONTAL jumpers. This jumpering is appropriate for DTE - Female connector.) P12 (Pin 1 is TOP LEFT) 3-4 CLS1==1, 5-6 CLS2==1, 7-8 (2 stop bits) (So, bottom 3 pairs) SUGGESTION: This should probably be set for ONE stop bit, P12 3 to P15 2 P12 1-2 is OPEN - not using parity. K5 1-2 (S100 Bus RESET* to board reset) Oscillator is 1.8432 MHz. A, B are '1', so use "X64" column. UART wants 16X clock, 153.6 KHz Target should be 153.6 KHz which is F5, which is pins 5 to 6. THE BAUD RATES ON THE SCHEMATIC ARE INCORRECT. CHIPS Add U11 MC14411 Baud Rate Generator (and perhaps test clock frequency) Add U1 74LS04 Console Error Lines, bRESET*, PHI Receiver, Printer Error Logic , Printer Busy Logic Add U4 74LS123 D8 (Board Select) and Print Strobe (D12) LED Visibility, Add U5 74LS04 S100 DO0 Buffer, Delay_INTA Logic, Printer ACK* Receiver, Add U9 74LS08 Console and TU58 Trasmitted Data to RS232 (Also 2 spare gates) NOTE: U9 is missing in instructions Add U12 74LS244 LED Driver Add U13 74LS245 Odd/High Byte -> CPU Add U15 74lS245 Word/Even/Low Byte To/From CPU Add U16 74LS04 (Interrupt logic, parallel port reset, TU58 UART Error lines, S100 sINTA, S100 sINP) Add U19 74LS07 SIXTN* Driver, Vector Interrupt Driver, Printer Strobe Driver, Add U21 74LS27 (TU58 Error Lines, Console Error Lines, Console BREAK) Add U23 74LS00 Console and TU58: Receive & Transmit Interrupt Logic Add U25 74LS245 Odd/High Byte Data Out from CPU Add U27 74LS74 TU58 Receiver Interrupt Logic Add U28 74LS08 TU58 Receiver Interrupt Logic, Printer Interrupt Logic Add U29 74LS244 TU58 Reciever Status Register Buffer Add U32 74LS244 TU58 Transmitter Status Register Buffer Add U33 74LS74 TU58 Transmitter Interrupt Logic Add U34 74LS08 TU58 Transmitter Interrupt Logic, Printer Interrupt Logic Add U36 74LS04 Delayed bpWR*, S100 DO6 Buffer, Printer INT* Driver, TU58 Break Bit Add U38 MAX232 RS232 Line Driver / Receiver Add U40 74LS244 S100 Bus address input buffer (Least significant bits) Add U41 74LS244 S100 Bus address input buffer (Most significant bits) Add U43 74LS244 S100 Bus control signals input buffer Add U46 74LS244 Zeros for high order bits of status read Add U52 74LS244 TU58 Receive Buffer High Bits Add U58 6402 TU58 UART Stage 3 TU58 / UART Menu Test W (to get to TU58 Menu) O -- Nothing happens. Instead "A" should be used. D8 on Support Board should blink. Connect a terminal/emulator to TU58 serial port A -- 60 '3' characters should appear B -- Input entered on the TU58 serial port should show up on you console (S100 or PDP11V2 UART) Try and test most or all seven data bits (eight if you can). Test LF and CR and Ctrl-G You will be typing blindly. on the TU58 UART (not the console) ends the test. C -- Output entered on console should show up on the TU58 data port. The console does not echo, so you will be typing blindly. on console to end the test Stage 4 TU58 Receive Interrupt Logic JUMPERS On *PDP11V2* Jumper VI0* for the interrupt. P15 1-2. On New Support Board: P9 1-2 VI0* for the interrupt. P2 3-4 TU58 Receive interrupt. P10 3-4 TU58 Clear Receive interrupt. CHIPS Add U20 74LS148 Common Interrupt Logic Add U37 74LS138 Common Interrupt Logic Add U53 74LS373 Common Interrupt Logic CABLE Build the special 6 pin ribbon cable. Pin 1 - 1 and so on. Pin 1 is the same on both boards. TEST W (To get to the TU58 Menu) G (Receive characters with interrupts test) The LED TU58 RCV (D5) should light indicating interrupts are enabled. Enter characters on the TTY attached to the TU58 DB9 port. When you enter one, the interrupt at 0x38 should trigger and the character should appear. In between the test prints periods while it is waiting. (IMHO it prints the periods wayyyy wayyyy too fast.) on the ODT/S100 console ends the test. Stage 5 TU58 Transmit Interrupt JUMPERS P2 7-8 TU58 Transmit Interrupt P10 7-8 TU58 Clear transmit interrupt TEST W (To get to the Tu58 Menu) H (Transmit characters with interrupts test) The LED TU58 XMT (D6) should light indicating interrupts are enabled. Enter characters at your ODT / Monitor console. Each one should appear at the TU58 TTY destination, and a message should appear on the ODT/S100/Monitor Console indicating the itnerrupt routine was triggered. Stage 6 Printer Port Jumpers If you are using a real printer, this will vary. K2 2-3 (Connects LP11 Strobe* to P14 Pin 1) [For TESTING I connected P14 1 to P14 19 - i.e., the support board gets an IMMEDIATE ack. I could then monitor data using my 'scope.] CHIPS Add U2 8212 Parallel Port Chip Add U6 74LS244 LP11 status port high order bits Add U30 74LS74 LP11 Interrupt Logic Add U31 74LS244 LP11 status port low bits TESTING FYI, STROBE* (Pin 1) has its own pullup (RR3-1) It should be changing - but isn't. BUG IN MONITOR: It does NOT strobe. For the test: Jumper P28 2-3 (BUSY without inversion) Jumper K4 2-3 (ACK* with inversion) Jumper P1 1-2 (ERROR* with inverstion) So, instead: BO,FF4F,00 Look for the red printer strobe LED to light (Note: Ouput of ANYTHING causes a POSTIVE going strobe) BO,FF4E,00 (Then 01, 02, 04, 08, 10, 20, 40, 80) checking each data pin of P14 (ideally for each output) BI,FF4D 0x8000 should reflect ERROR* inverted at P14-4 0x2000 should reflect BUSY at P14-21 0x1000 should reflect ACK* inverted at P14-19 (To get a "1", connect P14 pin mentioned above to P14-25) (One could also PE* this way by changing P1, but its just a different pin on P14) To test Interrupts, Jumper P14 19 (ACK*) to P14 1 (STROBE*) Jumper K4 2-3 as before Jumper P27 3-4 Jumper P2 15-16 Jumper P10 15-16 This did not QUITE work, because INT* was only active as long as ACK*, which was just a pulse. Instead, touch the ACK* line P14 pin 19 to P14 pin (or, just discconecting and reconnecting to P14 pin 1 will do). The manual activation of the strobe bit at FF4F is not LP11 compatible. On a real LP11 interface, loading the data also generates a strobe. Stage 7 Move Console UART function to the Support Board JUMPERS PDP11V2: Change K14 from 2-3 to 1-2. Support Board: P16 1-3 (RS232 Output from UART to DB9 pin 2 RXD), 2-4 (RS232 Input to UART, DB9 Pin 3 TXD), 5-7 (RS232 DTR, DB2 pin 4), 6-8 (RS232 DSR, DB2 pin 6) (These are HORIZONTAL jumpers. This jumpering is appropriate for DTE - Female connector.) P2 3 to the existing P3 5-6 CHIPS U3 74LS244 Console UART Receive Buffer U7 MAX232 Console UART RS232 Driver/Receiver U17 74LS74 Console Receive Interrupt Logic U18 74LS08 Console Transmit & Receive Interrupt Logic U22 74LS244 Console UART Receive Status U24 74LS244 Console UART Transmit Status register U26 74LS74 Console Transmit Interrupt Logic U10 6402 Console UART (ALL chips should now be populated) TESTING Boot the PDP11 - but now the UART console is on the Support board Use W to get to TU58 Menu D to send 3's to new console UART E to enter characters from the new console UART ( to exit, as before) F to enter characters on S100/Monitor console and have them appear on new console UART ( to exit, once again) Stage 8 Enable Console ODT UART Interrupts JUMPERS P2 1-2 P2 5-6 P10 1-2 P10 5-6 TESTING Use W to get to TU58 Menu I to test console UART receive interrupts Dots will appear. When a character is typed, you should see an interrupt routine message, and the character entered. J to test console UART transmit interrupts Stage 9 Test the "Debug" UART (on the PDP11V2 Board) (which is now at a new address) Use W to get to TU58 menu M to send a bunch of '3' characters N to test input from Debug UART ( on Debug UART to exit) O to test output to the Debug UART ( on S100/Monitor console to exit)