Home
DEC PDP-11/23 SE
Contents
1. funk asciz I O Funktion was lt 200 gt re asciz READ asciz WRITE heaerr asciz lt 12 gt lt 15 gt Selected HEAD WAS see lt 200 gt cylerr asciz lt 12 gt lt 15 gt Selected CYLINDER was 200 Secerr asciz lt 12 gt lt 15 gt Selected SECTOR WAS lt 200 gt ererp asciz lt 12 gt lt 15 gt Contens of ERROR PRECOMP register was lt 200 gt ersto asciz lt 12 gt lt 15 gt Contens of STA2 COMMAND register was lt 200 gt dattxt asciz lt 12 gt Follow part of Winchester contains BAD Data dathea lt 12 gt lt 12 gt lt 15 gt dathe2 asciz Data good bad space asciz lt 200 gt ascii lt 12 gt lt 15 gt lt 200 gt full asecCis kkkkkkkkkkkkkkikkkkikkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk asciz dk k Program aborted through twice C dox ek ee ee Summ Asciz ERROR summary Report of Test Program abohar asciz lt 12 gt lt 15 gt Number of HARD Errors 200 abosof asciz lt 12 gt lt 15 gt Number of SOFT Errors 200 abobad asciz lt 12 gt lt 15 gt number of BAD Data RD50 200 end start Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 48 48
2. H 22 23 24 GRND 25 BEVNT L 50 Hrz Front Panel Steuerung und LED s Die Steuerung des Systems erfolgt mit 3 Schaltern DC ON HALT und RESET Bild 8 Die LED s zeigen den Zustand von HD Read HD Write 5Volt 12Volt 12Volt und Standby Power Die Schaltung dazu ist folgenden Bild 10 ersichtlich Bild 10 HD R HD W SRUNL 50Hz zZ oBEVNTL T l Power Supply START HALT A DC ONFV 5 E 741514 IC2 741 506 Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 10 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Hinweise Netzteil Das original Netzteil wurde durch ein Standard 350 Watt PC Netzteil ersetzt Ein solches Netzteil sollte folgende Minimal Leistung zur Verf gung stellen 5 Volt 25A 12 Volt 12 Volt 1A 5Volt Standby 1A Die 12 Volt werden lediglich f r die Serial Receive Transmit Chips 9636 und 9637 auf dem MXV 11 Modul ben tigt Die 5 Volt Standby wird nur f r die LED s ben tigt und steht sofort zur Verf gung wenn das PC Netzteil mit 220Volt versorgt wird Das Netzteil wird ber den Eingang Power Supply start eingeschaltet rechter Schalter am Front Panel DC ON Nach dem Einschalten sollten alle 3 gr nen LED s leuchten und zeigen somit die Verf gbarkeit von 5V 12V und 12 V an Signale Nach dem Einschalten werden die Power U
3. CTI BUS Converter Umgebung Im Prinzip wird die RD50 mit Testpattern beschrieben und die Lese Schreib Funktion mit RANDOM SEEKS berpr ft Im Fehlerfalle wird die genaue Ursache ausgegeben also betroffener HEAD CYLINDER SECTOR und den Inhalt der Controller Status Register als auch den Inhalt des betroffenen Sectors in Form einer Liste 4 Boot Programm f r RD50 Hard Disk BOOT MAC Siehe Seite 4 Im folgenden Anhang finden sie die Programme im Quellen Code jeweils in der Farbe wie sie obig in Punkt 1 bis 3 beschreiben wurden F r Fragen oder Anmerkungen k nnen Sie mich wie folgt erreichen Reinhard Heuberger Watzmannring 71 85748 Garching Tel 49 89 3205134 E Mail Reinhard Heuberger gmx de Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 20 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 MCALL MODULE MODULE RH RELEASE VO5 VERSION 5 COMMENT Q Bus CTI Bus Driver for RD50 gt iif ndf mmg t mmg t 1 11 ndf tim it tim it 1 sbttl description This RT 11 handler is meant to act as either a system or non system device handler It will support a special HW CTI Q bus converter to connect the RD50 or RD51 not improved yet with the PC300 wini controller to the Q Bus This special HW is responsible to convert the Q Bus timinig to the CTI Bus timing This means it will provide all CTI bus handshake s
4. Datei PDP1123SE sxw Autor Reinhard Heuberger Spezifikation Fassung v 12 08 2009 Seite 7 48 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Die Restaurierung Das gesamte System wurde 1987 in einem Kellerraum eingelagert ohne Klimatisierung und 2008 also nach gut 21 Jahren wieder versucht in Betrieb zu nehmen Zu meiner gro en berraschung konnte das System auch sofort gestartet wurden und das Betriebs System RT11 startete ohne Probleme von der 5 MB Hard Disk Allerdings dauerte dies nur 20 Minuten und dann verabschiedete sich das Netzteil f r immer Das allgemein bekannte Problem u A waren die Elkos ausgedrocknet Ersatzteile gibt es nicht mehr und ich entschied mich f r eine l nger anhaltende und flexiblere L sung Ersatz durch ein Standard PC Netzteil F r den Betrieb einer PDP 11 23 sind allerdings die Power Up Signale und als auch das System Clock Signal unbedingt erforderlich Da diese Signale in einen PC Netzteil nicht existieren mussten die Signale mit einer eigens daf r entwickelten Schaltung und Mechanik aufgebaut werden wie im folgenden Bild 6 ersichtlich ild 6 Datei PDP1123SE sxw Autor Reinhard Heuberger Spezifikation Fassung v 12 08 2009 Seite 8 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Im letzten Bild 6 ist der Line Clock Generator als angebautes Module mit dem dazugeh rigen Schaltplan zu erkennen Hiermit werden 20 5 50 Hz Impulse
5. queue pointer for PTWRD CALL QSPTWRD Put size in buffer MOV SP R4 the stack ENDC MMGST xm JMP RHROS Go out SBTTL EMPTY FILL THE CONTROLLER S SECTOR BUFFER SUBROUTINE Inputs H Word 1 of 2 in line arguments MOV R2 R4 fill sector buffer from user buffer write 3 MOV R4 R2 To empty sector buffer into user buffer read 3 Word 2 of 2 in line arguments d CLR R4 zero fill sector buffer write j MOV R4 R5 drop sector buffer data read 3 R5 Points to queue element at offset QSBLKN R4 Points to device registers 4 RO Subroutine link register Outputs BUFF Value of QSBUFF R5 incremented by 256 to point A at the next block in the user buffer for unmapped systems only S PAR Value of QSPAR R5 incremented by 256 32 to Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 30 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 z WCNT Value Registers changed R1 R2 R3 ENABL LSB MTFILL MOV R5 SP MOV R4 SP MOV RO 3 MOV RO 5 MOV R4 R3 ADD RHSTAT R3 ADD RHBUF R4 MOV OSBUFF R5 R2 MOV OSWCNT R5 R1 45 R1 WCNT CMP R1 256 BLOS 15 256 R1 1 TST FNFLAG BPL 100 ASL PC WORD 100000 BCS 10 100 SUB R1 WCNT 10 IF NE MMGST MOV OSPAR R5
6. Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 24 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Device size RHSIZ Default CSR address RHSCSR Default vector address RHSVEC DRDEF RH 200 FILSTS SPFUNS VARSZS USIZ50 RHSCSR RHSVEC DRPTR 0 V5 4 on DREST CLASS DVC DR V5 4 add on by H M DRSPF 373 V5 4 add on by H M DRSPF 376 V5 4 add on by H M DRSPF 377 V5 4 add on by H M SBTTL CONSTANT DEFINITIONS SYSPTR 54 Pointer to base of RMON P1EXT 432 Offset from RMON to external routine 3 CSR read bits CMDO 1 Command 0 CMD1 2 Command 1 CMD2 4 Command 2 CMD3 10 Command 3 CMD4 20 Command 4 CMD5 40 Command 5 CMD6 100 Command 6 CMD7 200 Command 7 Define the CSR addresses for the interrupt controll CSR that service the OP ENDED interrupt and the DATA REQUEST interrupt ICOPND ICDRO Define the device register addresses as offsets from the device CSR address RHSCSR RHERR OC Sope ENDED handled by VECTOR 350 QCSdrq DRQ handled by VECTOR 354 0 ERROR PRECOMP register Logged RHPRE 0 RHREV 2 REV SECTOR ID register RHSEC 2 Logged RHBUF 4 DATA BUFFER register RHCYL 6 CYLINDER ID register Logged RHHEAD 10 HEAD ID register Logged RHST2 12 STA 2 COMMAND register L
7. Get the real word count for a write Entry points for next block after successful completion of previous block during a multiblock READ X WRIT X RWNEXT inc TST BEQ CMP BHIS BR 2 CMP BHIS 25 mov BIC REPT ASR ENDR MOV BIC REPT ASR ENDR BIC CMP BHIS MOV MOV MOV Pt r3 ABSSEC 25 R3 RHASIZ JMPFUE 25 R3 RHUSIZ JMPFUE rs 1 SECMSK R1 SECBIT R3 R3 R2 SRFMSK R2 SRFBIT R3 CYLMSK R3 R3 RHSCYL JMPFUE R3 CRNTCYL R2 CRNTHD R1 CRNTSEC block log gt phy Is this an absolute sector read write not branch Is the requested block on the device User error Block number too large Merge below Is the requested block on the device User error Block number too large Copy block number H M Mask out all but Sector ID SECBIT shifts to get R3 RHSSEC Divide by 2 Copy Cylinder amp Head ID bits Mask out all but Head ID SRFBIT shifts to get R3 RHSSRF Cyl ID Divide by 2 Remove any propagated sign bit Trying to seek beyond highest track User error Cylinder ID too large Save current values of Cylinder Head and Sector ID S so calculations aren t repeated during retries amp write checks Entry point for READ X WRIT X retries RWRTRY MOV MOV MOV 15 tst bmi TST Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation CRNTCYL RHCYL R4 Load Cylinder ID registe
8. 2 1 BDAL 15 BDMGO ed ie fea al fod e p 2 E15 18 CTI BPDCOK 15 09 GROUND SS 12 gt 15 08 12Volt 5 gt 15 10 5Volt 12 gt 15 11 12Volt E10 01 CTI BDALOO E10 02 CTI BDALO1 E10 03 CTI BDALO2 E10 04 CTI BDALO3 E10 05 CTI BDALO4 E10 06 CTI BDALO5 E10 07 CTI BDAL06 E10 08 CTI BDALO7 t u E amp 2 E10 11 CTI BDALO8 E10 12 CTI BDALO9 E10 13 CTI BDAL10 E10 14 CTI BDAL11 E10 15 CTI BDAL12 E10 16 CTI BDAL13 E10 17 CTI BDAL14 E10 18 CTI BDAL15 Fassung v 12 08 2009 Seite 18 48 PDP 11 23 SE Spezifikation Reinhard Heuberger Autor PDP1123SE sxw Datei PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Hinweise zum Schaltplan Referenzen Timing Diagramme und Bus Spezifikationen Q BUS Siehe Ordner DEC DOKU ek Isifs sv 005 vol3 pdf CTI BUS Siehe Ordner DEC PRO 350 EK PC300 V1 001 pro300tecV1 pdf Der Aufbau wurde Ende 1985 begonnen und in Wire Wrap Technik durchgef hrt Das Interface Timing f r den Q BUS wurde mit 4mal I O DEC Chips DC005 realisiert und die Interrupt Steuerung mit den DEC Chip DC003 Die CSR Control Status Register Adressen und die Interrupt Vector Adressen sind fest verdrahtet mit folgender Zuweisung CSR 174030 OP Interrupt at vector 350 CSR 174034 DRQ Interrupt at vector 354 Da zwei eigene Interrup
9. Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 46 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 30 RTS Return DRQ Interrupt service routine to read write one Word BINT INTEN DEVPRI Switch to correct priority mov 5 2 get controller status bit 400 drqok test for an error bit beq 205 not set all 0 continue mov 100000 flag set flag for error minus br 30 and exit 205 bit 20 mode Should we do a write or a read bne 25 we should do write bit 4 set branch to 25 mov temp READ receive one of 256 words mov temp point bring this to buffer br 285 2 and skip write part 255 mov patter WRITE move test patterrn to buffer 285 count Increment test counter inc point Uptate pointer inc point to buffer 2 30 RTS PC Return Follow routine will be executed if the user was pressing tmice C C This routine will give a ERROR summary report and will reset the controller abo Mov 10 stat reset the rd controller call busy and wait untill finisch TST DROINT DISABLE interrupts TST QZOPEINT H P print newln New line print Hallo print Info print full print ende print full print newln print summ print newln print abohar Print Haeder of Hard Errors mov hard 5 and R4 to gi
10. INTERRUPT CSR address for DRQ interrupt vec 354 QCSPRI 4 Interrupt CONVERTERS interrupting prior 3 Base addresses for this handler based on the above RHSCSR QCSCSR Base device address for QC controller RHSVEC QCSVEC Base device interrupt vector address for QC s Device size limits and options For the RD50 the first block and the last cylinder are reserved for the hardware and cannot be accessed unless you re using the absolute read write SPFUN s RHSSEC 16 16 sectors per track RHSSRF 4 4 tracks per cylinder 4 heads RHSC50 153 153 cylinders per unit RD50 RH C51 306 306 CYLINDER per unit RD50 Absolute device size limits and their derivatives defined by the number of bits including those allocated for future expansion in the ID device registers as described in the PC RD50C hardware specification SECIDMX 5 Maximum number of bits in a Sector ID from spec SRFIDMX 3 Maxumum number of bits in a Head ID from spec CYLIDMX 10 Maximum number of bits in a Cylinder ID from spec MAXVAL SECIDMX MAXSEC Calculate maximum possible number of sectors MAXVAL SRFIDMX MAXSRF Calculate maximum possible number of heads MAXVAL CYLIDMX MAXCYL Calculate maximum possible number of cylinders Guarantee that the absolute maximum sized fields can contain the values specified at sysgen GT lt RHSSEC MAXSEC gt ERROR Max Sector ID bit fi
11. SBTTL VECTOR TABLE FRE Create table to associate vectors with interrupt entry points Note that both interrupts vector to the same entry point DRVTB RH RHSVEC RHINT DRQ ENDED interrupt DRVTB RHSVEC 4 RHINT OP ENDED interrupt SBTTL COMMAND DISPATCH DISPAT ASL RO Make function code into word offset ADD PC RO Add PIC address of next instruction ADD FNTBL RO Add offset from here to FNTBL ADD RO PC Add table entry to PC PC gt FNTBL JMPREF This label must follow ADD RO PC FNTBL WORD lt DSIZ JMPREF gt 5 373 Determine device size WORD lt RHFUE JMPREF gt 4 Unused slot WORD 0 3 375 Format track WORD lt ABSW JMPREF gt 2 376 Write absolute sector WORD lt ABSR JMPREF gt 1 377 Read absolute sector s READ X WRIT X function goes here Label must stay with code 0 FTBZER WORD lt RW JMPREF gt 0 READ X WRIT X Any positive functions can go here before label FTBEND Last table entry 2 Dispatch table statistics to check for legal function code when request is made 2 bytes per table entry FNEG FTBZER FNTBL gt 2 Number of SPFUN requests including unused slots FNUM FTBEND FNTBL gt 2 Total number of requests SBTTL HANDLER FUNCTIONS SECTION SBTTL ABSRW Read write absolute sector Pv These two SPFUN s allow the user to access any block sector on the device This includes the
12. wait untill controller is ready TST DROINT DISABLE interrupts TST OPEINT di mov er erprin save ERROR PRECOMP register mov sta2 stcoin save STA2 Command register inc retry INCREMENT retry counter cmp 5 retry retry limit reached beq 210 yes Now it is realy HARD ERROR print newln print new line and print bad ERROR Info message call errinf start the ERROR INFO subroutine call reginf and the Register info routine Mov 10 stat reset the controller call busy and wait untill reset is done br 2505 Fatal HARD I O Error give message clr Retry reset retry count inc Hard Increment Hard Error counter print newln print full print ioerr print full call errinf give status about last used cylinder call reginf sector head and Error registers print full TST DROINT enable interrupts TST OPEINT 5 5 id count clear I o tranfer counter return d ok k INTERRUPT Servive Routines ok ke e k x OP ended Interrupt service rountine initialized if one block of 256 words one sector was completly written or read INTEN DEVPRI Switch to correct priority MOV STA2 end get status tranfer completed o k bit 400 end CHECK error bit and branch beq 20 in case of error free to 205 mov 100000 flag E RRO R gt set flag to minus br 305 and exit inc flag Datei PDP1123SE sxw
13. 100000 BMI 15 Busy RETURN SBTTL HEADER SECTION 3 Create the header Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 26 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 DRBEG BR RHENT Branch over the protection table RHWPRO WORD 0 Unit 0 DRETRY WORD RETRYS Number of retries default is 8 H SBTTL INITIATION SECTION DEE EE NE MMGST MOV SYSPTR R4 R4 gt monitor base MOV 1 4 Get address of externalization routine SP1EXT WORD P1EXT Pointer to externalization routine ENDC NE MMGST SSS SSS See Sen see ses an MOV RHSCSR R4 Point to QC device registers TST RHSTAT R4 Is controller busy busy bit 15 set ASSUME lt STBUSY gt EQ 100000 BMI JMPFD1 Fatal error Nothing s been initiated ASL PC Do we know what we re on WORD 100000 BCC 10 If yes branch BIT STDCAP RHSTAT R4 RD50 BNE 10 MOV RHSC51 RHSCYL RD51 CYLINDER MOV ASIZ51 RHASIZ RD51 ABSOLUTE SIZE MOV USIZ51 RHUSIZ RD51 AVAILABLE SIZE 10 MOV DRETRY RETRY Initialize retry count CLR INREST Clear restore in progress flag CLR FNFLAG Clear flag assuming a special function CLR WRFLAG Clear write fault catcher bit MOV R5 Point to QSBLKN MOV R5 R3 Get block number Extract the unit number and check if legal MOVB QSUNIT R5 RO Ge
14. 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 PIN Assignment Q BUS Row A Row B Same as Row C Same as Row D Module Side 1 Component Side AA1 BSPARE 1 BA1 BDCOK H 1 BSPARE2 BB1 BPOK H 1 BAD16 BC1 SSPARE4 AD1 BAD17 BD1 SSPARES AE SSPARE 1 DEI SSPARES AF1 SSPARE2 BF1 SSPARE7 1 SSPARE3 BH1 SSPAREB AJ1 GND BJ1 GND MSPARE BK1 MSPARE B AL1 MSPARE A BL1 MSPARE B AM 1 GND BM1 GND ANI BDMR L BN1 BSACK L AP1 BHALT L BP1 BSPARES ARI BREF L BR1 BEVNT L AS1 PSPARE3 851 PSARE4 ATI GND BT1 GND AUT PSPARE1 PSPARE2 AV1 5B BV1 5 Module Side 2 Solder Side AA2 5 BA2 5 AB2 12 BB2 12 AC2 GND BC2 GND AD2 12 BD2 4 12 AE2 BDOUT L BE2 BDAL L AF2 BRPLY L BF2 BDAL3 L 2 BDINL BH2 BDAL4 L AJ2 BSYNC L BJ2 BDALS L AK2 BWTBT L BK2 BDALS L AL2 BIRQ L BL2 BDAL7 L AM2 BIAKI L BM2 BDAL8 L AN2 BIAKO L BN2 BDAL9 L AP2 BBS7L BP2 BDAL10 L AR2 BOMGI L BR2 BDAL11 L AS2 BDMGOL BS2 BDAL12 L AT2 BINIT L BT2 BDAL13 L 02 BDALOL BU2 BDAL14 L BDALIL 2 BDAL15 L PIN Assignment CTI BUS 181 08 1N30W 8 161va8 01 1v 3 8 1 8 1117170 8 Qasn LON 21 15 8 S 150 9 19 7 0 8 3S LON 14 1va8 7 7 7181 08 Z a3sn 10N 121 3va 8 m EE 7S1 1v3O 8 ep OD OD A OO P L HM 28 gt Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Sp
15. MHz Zu Bild 2 A Das Module MXV 11 M8047 besteht aus 2 SLU Serial Line Unit und 2 Boot ROMs In meinem Fall wurde der Boot Code in den ROMs erweitert um zus tzlich die RD50 ber meinem entwickelten Q BUS CTI BUS Konverter zu booten Dies wurde mit den gr eren 8K by 8 UV ROMSs erreicht und wie im Bild ersichtlich kann mit einen Schalter zwischen den Standard DEC BOOT Code und dem BOOT Code f r die RD50 bequem umgeschaltet werden Zusatzinfo im Ordner DEC DOKU mxvibugl pdf Seite 54 Hier noch das Listing des Assembler Programms welches sich zus tzlich in den befindet TITLE BOOT PROGRAM TO BOOT THE RD50 WITH THE Q BUS lt gt CTI BUS CONVERTER TO RUN THE BOOTSTRAP AT POWER UP FOR THE RD50 From Reinhard Heuberger START 10 174020 RESET CONTROLLER BUSY TST 04174020 CONTROLLER BUSY BMI BUSY STILL BUSY CLR R4 SETUP POINTER MOV 1 174006 SECTOR gt 1 MOV 0 174012 CYLINDER gt 0 MOV 0 174014 HEAD gt 0 MOV 40 174016 SET CONTROLLER TO READ MODE WAIT TST 174020 CONTROLLER BUSY BMI WAIT STILL BUSY GET BIT 1 174020 ONE BLOCK TRANSFER DONE BNE EXE YES GOTO START SEC BOOT TSTB 174020 NEXT DATA AVAILABLE BPL GET NOT YET MOV 174010 R4 BRING ONE CHARACTER INTO MEMORY BR GET AND LOOP UNTIL FINISCH EXE CLR R5 POINT TO ADDRESS 0 CMP R5 240 DID WE READ A VALID BOOTSTRAP BLOCK BE
16. PARVAL JSR RO P1EXT WORD PARVAL IFF MOV R2 BUFF TST FNFLAG BPL 2005 ASL WORD 100000 BCS 25 2006 ADD 512 BUFF ENDC MMGST 28 MOVB R3 R5 BPL 25 3 WORD 0 SOB R1 2 NE MMGST PARVAL WORD 0 TST FNFLAG BPL 30 ASL PC WORD 100000 BCS 300 30 ADD lt 256 32 gt PARVAL 300 ENDC MMGST 45 R3 R5 BMI 6 ASR 5 BCS 65 Datei PDP1123SE sxw Autor Reinhard Heuberger point QSBUFF R5 at the next 256 word block in the user buffer for mapped systems only or set to of QSWCNT R5 decremented by 256 zero if it is already less than 256 Save I O queue element pointer Save device register pointer Put buffer fill instruction in line Put buffer zero fill instruction in line Copy device register address Point to STATUS INIT register Point to DATA BUFFER register Get virtual address of user buffer Get word count Zero Zero fill dump sector buffer Copy word count for adjusting Word count 256 No Can only do 256 words per seek Is this a write not branch Is this the first write If yes branch Adjust saved copy of word count If extended memory system Get PAR1 mapping for the user buffer Let the monitor execute the following code Number of instructions in bytes plus 2 Copy buffer address Is this a write not branch Is this the first write If yes branch Point to next block in buffer
17. SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 456 505 inter noint 106 Ask user for using interleaved sector formatting print ask mov consol ri clr ra ttyin r1 cmpb 1 r0 bne 50S mov consol ri bicb 200 r1 disable lowercase cmpb r1 N beq noint no interleaved mode cmpb r1 Y beq inter interleaved mode br 45 Set up the buffer with data date 0 gt 17 for interleaved sequence 0 10 1 11 2 12 3 13 4 14 5 15 6 16 7 17 The other part of the buffer must be FILL Character mov buffer ri R1 is used as pointer mov 0 r1 mov 10 r1 mov 1 11 mov 11 r1 mov 2 11 mov 12 r1 mov 3 r1 mov 13 r1 mov 4 11 mov 14 r1 mov 5 r1 mov 15 r1 mov 6 r1 mov 16 r1 mov 7 11 mov 17 11 go skip noninterleaved mode Setup for buffer if no interleaved sequence is used mov buffer ri R1 is used as pointer elr count clear counter mov count r1 Mov counter contens to buffer inc count and increment counter cmp count 20 Limit for sectors reached beq go Yes br 105 No not yet mov buffer point Prepare clr drqok some values for eir count correct run down clr line TST INT1 turn interrupt on TST INT2 S format PROGRAM starts here with retry capability In case of an Error the prog
18. Subroutine to receive 256 words from the controller This subroutine includes Error handling and retries 5 times if a problem in a read write operation occurs get call mov mov mov mov call 2s tst Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation busy cylind Sector ba head he mode sta2 busy flag set cylinder set sector select head select operation mode read or write wait untill controller is ready This is the main loop of this subroutine Fassung v 12 08 2009 Seite 45 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 65 106 20065 20565 2106 250 30065 205 bmi 200 This loop is so long active as interrupt beq 25 occurs from the ended interrupt routine or an ERROR has occured cmp count 256 Do we realy received 256 words beq 105 Yes branch to continue PRINT NONR give a warning message and call busy wait untill controller is ready TST DROINT DISABLE interrupts TST OPEINT i inc soft increment soft Error count skip br 205 next routine and execute retry mov buffer point reset buffer pointer r3 clr drqok prepare drqok and count count for next operation clr retry clear retry flag br 300 and loop Error Retry handling part of this subroutine as well ERROR info handling call busy
19. WRITE Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 32 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 38 ENDC 30 355 45 59 6666 6 7 9 855 JSR RO MTFILL Empty the controller s sector buffer MOV R4 R2 Buffer empty instruction MOV R4 R5 Drop buffer data instruction MOV WCNT QSWCNT R5 Update word count BEO INTROS Word count gt zero Request complete MMGST If extended memory system MOV PARVAL QSPAR R5 Update PAR1 mapping for user buffer BUFF OSBUFF R5 Update user buffer address MMGST TST FNFLAG this a write BPL 30S not branch ASL PC Is this the first write WORD 100000 BCS 35 If yes branch INC R5 Update block number MOV R5 R3 Get block number for next pass MOV DRETRY RETRY Reset retry counter for next block JMP RWNEXT Do next block of request TST INREST Was a restore in progress BNE RHFDE Yes Hard error even if not TROOO BIT lt ERTRO ERABO gt RHERR R4 TROOO and illegal aborted BNE RHFDE Command are hard errors TSTB RHSTAT R4 Is the bit set BPL 5 No OK to continue CALL DUMP Empty the sector buffer BIT ERIDNF RHERR R4 Sector ID not found BEO 6 Retry the er
20. e e ke ke ke he ce ke ke ke KT ck ke ke ke ck ke ke e ek hallo3 asciz All Data will be destroyed K K k k k k k k KERR ek PROERR ASCIZ lt 33 gt 2J PROTECT ERROR ask 2 lt 12 gt lt 15 gt you want to format with interleaved Sectors 200 ioerr asciz lt 7 gt I O tranfer ERROR 5 Retries without success Datei PDP1123SE sxw Autor Reinhard Heuberger 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 39 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 NONR ASCIZ 7 Illegal numbers of data transfers received star asciz 200 er asciz lt 15 gt lt 200 gt done 2 lt 12 gt lt 12 gt lt 15 gt lt 7 gt FORMAT done end start Testprogramm f r RD50 Hard Disk RDTEST MAC title RDTEST ES H Test Program for Write Read functionlity of the Q BUS lt gt CTI BUs converter for the RD50 by R Heuberger 7 73 S Q BUS IPC 350 CTI BUS CONTR RD50 255 59 5 II mcall exit print INTEN Qset MCALL gtim TTYOUT ttyin scca OPEINT 174030 DROINT 174034 id 174000 Id Register read only er 174004 Error precomp R error W Precomp ba 174006 Backup REV Sector Id Read Write da 174010 Data Buffer Read Write 174012 Cylinder Read W
21. good data Print a space Prepare r4 to print the bad data make sure to print the header not again increment pointer twice for word addressing INCREMENT counter 0 gt 256 over limit Yes exit this rounine NO loop untill finisch reset temp flag enable interrupts Subroutine to print all information about I o register contens in case of ERROR errinf print bit bne print br 30 print 40 inc print mov call print mov call print mov call return funk 20 mode 30 RE 40 wr soft cylerr cylind r4 ascii secerr sector r4 ascii heaerr head r4 ascii Start to print I O mode Was it a read or a write it was a write Print read funktion and skip Print write funktion increment soft error count Start to give info about cylinder Prepare r4 and print cylinder ID Start to give info about sector Prepare r4 and print sector ID Start to give info about Head Prepare r4 and print head ID Subroutine to print the contens of the ERROR PRECOMP and STA2 COMMAND register reginf print mov call print mov call print RETURN erprin r4 ascii ersto stcoin r4 ascii newln Start to give info about ERROR PRECOMP reg Prepare r4 to print contens of ERROR PRECOMP register Start to give info about STA2 COMMAND reg Prepare r4 to print contens of STA2 COMMAND register bring cursor to new line
22. order bits such that ARG AND MASK 1 ARG but ARG N AND MASK 1 lt gt ARG N d gt 2 MASK 1 is complemented to 1 its use as mask 3 that will pass right justified data field a bit 4 clear instruction H 5 Returns the logarithm base 2 of MASK that is the d number of bits that CMASK will pass BITMSK ARG CMASK BITS EQ ARG Bitmask argument must be nonzero N ARG Don t actually change ARG MASK 1 Initialize mask word BITS 0 Initialize masked bits counter FLAG 0 Exitloop flag REPT 16 Test all 16 bits in ARG IF EQ FLAG If exitloop has not occured yet MASK MASK 2 Shift the mask Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 22 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 BITS BITS 1 Increment the bits counter N N 2 Shift ARG gt 0 FLAG 1 Exitloop ENDC EQ ARG ENDC EQ FLAG ENDR End of loop CMASK C MASK 1 gt Return the actual bit mask inverted for BIC s ENDM SBTTL PRIMARY DECLARATIONS QCSCSR 174004 Base Device adress of Qbus CTIbus converter QCSVEC 350 Base interrupt vector address OCSSTA 174020 a UM QCSOPE 174030 Q BUS CTI BUS CONVERTERS INTERRUPT CSR address for OP ended interrupt vec 350 OCSDRO 174034 Q BUS CTI BUS CONVERTERS
23. part of this test program This part is doing a write read und verify of the selected sector with or and 1 At the end of this program part the sector will be written and verified with the original test patern value tst branch which test mode is used beq exre short test mode flag mov 177777 patter switch to all ones and mov write mode write this on call get 2 same sector tst retry Should we execute retry bne 55 Yes a error has occured clr flag mov read mode Let s read this sector call get with test pattern 177777 tst retry Should we execute a retry bne 60 Yes a error has occured call compar Compare data Same procedure with test pattern O flag mov 0 patter switch to all zeros and mov write mode S write this on call get same sector tst retry Should we execute a retry bne 65 Yes a error has occured flag mov read mode Let s read this sector call get with test pattern 0 tst retry Should we execute retry bne 60 Yes a error has occured call compar Compare data Now write back the original Test pattern elr flag mov bapatt patter Switch to Back UP pattern mov write mode and write this on call get H same sector tst retry Should we execute a retry bne 75 Yes a error has occured flag mov read mode Let s read this sector call get with test pattern tst re
24. r1 16 255 CL Sector flag get retry 50 print message for start use modify as pointer reset the controller and wait untill ready enable interrupts step 10 use monitor base as max for compare limit not reached yes clean word of cylinder head and sector switch to read operation receive ticks gt r1 mask out bit Ou 1 create random head select receive ticks add anything mask out bit 0 7 bit 6 make sure to go not out of limit random range ok if less or equeal make sure create random cylinder select receive ticks mask out bit 0 3 make sure to be in limit if not in range try again get ane sector contens Should we execute a retry yes last operation was not o k One complete sector is now read contens is in buffer This buffer must now be verified for correct data PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 42 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 53 55 605 65 70 75 805 patter clear test pattern word add cylind patter S to setup with add head patter new contens depending add sector patter S of actuall contens mov patter bapatt Save contens of actuall pattern CALL COMPARE Compare data Tst SCCA Check if C C entered beq 53 Branch if no continue jmp abo Abort Program Follow routines will only executet if the user has additionally select the extensive
25. until buffer is empty TSTB R2 DRQ still set BPL 35 No HALT Yes Find out why RETURN INTERRUPT SERVICE SECTION JMP RHFDE Relay to fatal device error JMP RHROS Relay to successful completion DRAST RH OC SPRI Generate RTS PC for abort entry ke ke echec ke ce ke 2 2 2 2 2 2 2 ce he he 2 22 e e he ke ehe he 2 2 2 2 ec he he ec ke ke e e he ke e ke he ke e ke e e e tst drqon Test DRQ SW register beq 7655 interrupt not tst qcSdrq 333 TURN DRQ interrupt off drqon and reset DRQ SW register tst Test OP SW register beq 9995 off exit tst qcSope Turn OP interrupt off and reset OP SW register 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 e e ke he 2 2 2 2 2 2 2 2 2 2 FORK RHFBLK Get to FORK level immediately MOV RHCQE R5 Point to queue element for this call MOV RHSCSR R4 Point to DW device registers TST RHSTAT R4 BUSY bit set It must not be BMI INTFDE Fatal device error BIT WRFLAG RHST2 R4 Did write fault occur during this operation BNE INTFDE Yes Hard error can t be reset by software BIT S2ERR RHST2 R4 Error status BNE 45 Yes Error TST INREST Did a restore just complete BNE 6 Yes Continue with soft error MOV FNFLAG RO Test function type flag BEQ INTROS Not a read or write so it s done BMI 35 FUNCTION
26. 5 1 und CTI BWRITE E15 2 Diese Spikes konnte ich jeweils durch den Einsatz eines Kondensator 33pf zuverl ssig ausschalten Ab diesen Zeitpunkt ging es z gig weiter Allerdings stellte sich noch heraus dass die Schaltzeiten der beiden BUS Systeme bei einigen Signalen unterschiedlich waren Um hier eine Synchronisation sicherzustellen verwendete ich Kondensatoren f r das Q BUS Signal BDOUT und f r die CTI BUS Signale IRQ A IRQ B und BRPLY Dies war eher keine professionelle L sung allerdings blieb mir als Privat Person aus finanziellen Gr nden keine andere Wahl und letztendlich erf llte diese Methode den Zweck die unterschiedlichen Timing zu synchronisieren Als Bus Treiber kamen die damals noch neu erschienen 74LS641 in Frage Fr here Versuche mit andern Bus Treibern scheiterten bedingt durch die L nge des CTI BUS bei meinem Design Es entstand die Schaltung wie obig dargestellt welche immer noch sehr zuverl ssig arbeitet Hinweis In ganz seltenen F llen bootet Die Hard Disk nicht wenn die Converter Karte aus und eingebaut werden muss Es scheint ein Kontakt Signal bersprech Problem mit dem CTI Bus Signal BSDEN E15 7 zu sein und kann dadurch behoben werden indem man den Kabelbaum in eine andere Position legt Die Kabel sind nach 22 Jahren Keller Aufenthalt leider schon leicht por s geworden Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 19 48 PDP 11 23 SE 1983 19
27. 7 14 CT BDAL 11 18 CTI BDAL 15 03 CTI BAS L 04 CTI BDS L 07 CTI BSDEN L 08 12Volt 11 12Volt 12 NOT USED 15 CTI IRQB 16 L Auf folgender Seite ist der komplette Schaltplan ersichtlich f r Details Zoom und oder Seite drehen oder siehe Datei QBUS CTIBUS engineering drawing pdf Datei PDP1123SE sxw Autor Reinhard Heuberger 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 17 48 2008 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung BDAL 10 BDAL 09 BDAL 08 gt BDAL 13 BDOUTL E15 06 CTI BMDEN L E15 17 CTI BPOK E15 02 CTI BWRITE L 15 01 55 L E15 04 CTI BDS L BWTBTL BIRQ 4 E15 16 CTI BINIT L BIAKOL BDAL 15 gt BDAL 12 gt BDAL 11 BDAL 14 E15 05 CTI BRPLY E15 14 CTI IRQ A E15 15 CTI IRQ B 15 03 5 E15 07 CTI BSDEN L BDAL 07 BDAL 06 BDAL 05 BDAL 00 He BDAL 00 gt BDAL 01 gt BDAL 02 gt BDAL 03 gt BDAL 04 gt BDAL 05 gt BDAL 06 gt BDAL 04 BDAL 07 gt BDAL 03 BDAL 02 Q BUS BDAL 01 19 CTI BUS LL CONVERTER BBS7L CSR 174030 OP interrupt at vector 350 095 10 gt CSR 174034 interrupt at vector 354 BDAL 11 gt BDAL 12 gt Engineering amp Design by Reinhard Heuberger 1985 BDAL 13 gt BDAL 14 gt
28. 87 Aufbau Spezifikation Restaurierung 2008 SOFTWARE Device Treiber und Hilfsprogramme F r den Betrieb des Q BUS lt gt CTI BUS Converter wurden von mir folgende Programme entwickelt alle in 11 Assembler programmiert Source Code aller Programme auch im Ordner RT11 QBUS CTIBUS Assembler 1 Device Treiber f r das DEC RT 11 Betriebssystem RH MAC Sicherlich das wichtigste und auch umfangreichste Programm um sinnvoll mit meinem Design zu arbeiten Der Programm Code wurde mit Hilfe eines Skeleton Device Driver Code von DEC entwickelt Dieser Code stellt ein allgemeines Ger st zu Verf gung um einen eigenen Device Treiber schneller zu realisieren Der Source Code ist umfangreich kommentiert so da keine weiteren Erl uterungen notwendig sind 2 Low Level Formatierungs Programm f r RD50 Hard Disk RDFORM MAC Jede Hard Disk muss nat rlich formatiert werden k nnen so auch die RD50 Dies wird in meinem Fall durch dieses Programm sichergestellt Optional kann man mit diesen Programm auch interleaved sectors formatieren um einen Performance Gewinn zu erzielen In der Praxis war allerdings kein Unterschied zu erkennen sicherlich damals bedingt durch die langen Zugriffszeiten seek time welche nicht ann hernd im Verh ltnis zum Zeitgewinn durch interleaved sectors standen und somit gar nicht zur Geltung kamen 3 Testprogramm f r RD50 Hard Disk RDTEST MAC Dieses Programm testet die gesamte Q BUS
29. PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 DEC PDP 11 23 SE Special Edition DEC Digital Equipment Corporation von Reinhard Heuberger Restauriert 2008 Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 1 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Allgemein Das System wurde fast ausschlie lich mit DEC Standard Komponenten aufgebaut allerdings mit folgenden 2 Ausnahmen bzw Besonderheiten 1 Geh use ist Eigenbau 2 Q BUS lt gt CTI BUS Converter Eigenbau Dieser Converter dient zum Ansteuern der 5MByte Hard Disk welche urspr nglich aus einem DEC PC350 Professional stammte Ausf hrliche Infos dazu unter Punkt 3 Entstehung und Aufbau Das System wurde 1983 erstmals aufgebaut zuerst mit einem KD11 Processor Board auch LSI 11 2 CPU M7270 genannt Ab 1985 bis 1987 wurde ein PDP 11 23 CPU Board M8186 mit Floating Point Unit FPF11 eingesetzt Ende 1985 wurde das Doppel Floppy Laufwerk RX02 mit einer 5Mbyte RD50 Hard Disk erg nzt mit eigens entwickeltem Q BUS lt gt CTI BUS Converter Restaurierung des Systems Die Restaurierung des Systems wurde nach ca 22 Jahren Lagerung in einem Kellerraum 2008 durchgef hrt Das defekte Netzteil wurde durch ein Standard PC Netzteil ersetzt Allerdings musste eine eigene Logic f r die Power Up Signale und der System Clock extra gebaut werden Sieh
30. Q DO YES GO TO START EXECUTION HALT PRIMARY BOOT ERROR DO MOV 1000 SP LOAD PROGRAMS STACK POINTER MOV 2 R0 BLOCK NUMBER OF SECONDARY BOOTSTRAP MOV lt 4 256 gt R1 WORD COUNT OF 4 BLOCKS 2 5 MOV 1000 R2 MEMORY ADDRESS OF SECONDARY BOOT JMP R5 AND START END Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 5 48 PDP 11 23 1983 1987 Aufbau Spezifikation Restaurierung 2008 Bild 3 5MByte Hard Disk RD50 mit CTI BUS Controller von DEC PC350 Professional Darunter Q BUS lt gt CTI BUS Converter Eigenbau basierend auf W951 DEC Foundation Module Wire Wrap Technologie Beide Komponenten sind ber ein 2mal 20 Pin Flachbandkabel verbunden CTI BUS gt A s gt e fe p TIPS he mae et n gn zm m m jr gn n i 7 fat kass amp S a dw Datei PDP1123SE sxw Autor PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 6 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Bild 4 Steuer Panel Vorderansicht und R ckansicht Bild 5 SS System Ansicht von Oben durch Glas Platte RDSO SMByte Hard Disk 7 DELICATE EQUIPMENT HANDLE WITH CARE HEAD DISC DAMAGE MAYOCCUR WARNING gt Huet WARRANT Y ID IF t DISC RARIUS REMOVED EXPERIENCES SHOCKS EXCESS OF 2i
31. Serial I O Ports und Boot ROMs fiir Floppy und RH Hard Disk ee ee e EPA Datei PDP1123SE sxw Autor PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 3 48 11 23 1983 1987 Aufbau Spezifikation Restaurierung 2008 Bild 2 B Memory Board M8067 512Kbyte voll best ckt Hinweis Bedingt durch die nur 18 Adress Lines des H9270 Backplane k nnen nur 128Kbyte ben tzt werden O so67 lt 2 1 4 F96 dedos PH eb 1 757 a et Kg Bild 2 C 9400 Q BUS Terminator Module lese ur AL S AES UN Dien ji JI M NI Jt d h f 499 3 D IER n LUE nj dl PEST 4 444 dg pss lil lt i et d AY 4 N Hiel eje t aed BT D lw ao 117404 0179585956565 44 Datei PDP1123SE sxw Autor PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 4 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Zu Bild 1 Das im Bild ersichtliche CPU Module ist auf den DEC PDP 11 F 11 Code Name war DEC Fonz 11 Chipset aufgebaut und zus tzlich mit der Floating Point Unit FPF11 best ckt Dieser Chipset wurde 1979 erstmals vorgestellt und arbeitete mit einer Core Frequenz von 3 6
32. datflg word temp flag for subroutine compar compoi word 0 pointer for subroutine comcou word 0 counter for subroutine compar flag word 0 ERROR flag minus ERROR temp word 0 temporary value only mode word word for mode READ WRITE patter word word for test pattern CYL SECT HEAD bapatt word backup word for test pattern line word character line count soft word SOFT ERROR COUNT hard word HARD ERROR COUNT baddat word BAD DATA COUNT 0 Word after error for ERROR PRECOMP stcoin word 0 Word after error for STA2 COMMAND chcou word 0 ASCII character counter even HALLO ASCIZ 33 5 2J INTERRUPT driven Q BUS lt gt CTI Bus TEST PROGRam lt 12 gt lt 15 gt PROERR ASCIZ lt 33 gt 2JI PROTECT ERROR ioerr asciz lt 7 gt HARD I O ERROR 5 Retries without success dot asciz lt 200 gt asciz lt 15 gt lt 15 gt lt 200 gt wstart asciz lt 12 gt lt 15 gt Writting Winchester with Test Pattern please wait test asciz lt 12 gt lt 12 gt lt 15 gt lt 7 gt Exerciser is now starting lt 12 gt lt 15 gt ask asciz Is Winchester already be written with TESTPATTERN lt 200 gt simple asciz Do want a extensive write read verify lt 200 gt NONR ASCIZ 7 Illegal numbers of data transfers received bad asciz I O
33. e Video Das gesamte u ere wurde durch Einsatz von Plexi Glas und LED s dahingehend ver ndert dass ein Einblick in das Innere des Systems m glich ist Referenz Dokumentation Zus tzliche Dokumentation befindet sich im Ordner DEC DOKU Die wichtigsten 5 zus tzlichen Manuals als pdf Datei BA11 N mounting box user s guide Part Nr EK BA11N UG 001 Datei ballnugl pdf digital LSI PDP 11 05 MAINTENANCE Part Nr EK LSI11 MC 01 Datei ek Isi1 1 mc 001 pdf LSI Systems Service Manual volume 1 Part Nr EK LSIFS SV 05 Datei ek Isifs sv 005 voll pdf LSI Systems Service Manual volume 2 Part Nr EK LSIFS SV 05 Datei ek Isifs sv 005 vol3 pdf LSI Systems Service Manual volume 5 Part Nr EK LSIFS SV 05 Datei ek Isifs sv 005 vol3 pdf Videos Im Ordner VIDEOS befinden sich 3 aussagekr ftige Videos Datei Video 3 mpg Architektur Konzept und Restaurierung des Systems Datei Video 4 mpg RT 11 Assembler Programmierung auf PDP 11 23 Datei Video 5 mpg Backup von historischen Computern mit Kermit Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 2 48 PDP 11 23 1983 1987 Aufbau Spezifikation Restaurierung 2008 Die wichtigsten System Komponenten Bild 1 PDP 11 23 CPU Board M8186 mit Floating Point Unit FPF11 7HW vZR El 00 1 12181 INI SLHOINM 512 Bild 2 A Multi Funktions Board MXV 11 M8047 mit 2
34. ed in the definition of RHSCSR d RHSVEC The address declared in the definition of RHSVEC Offsets into the current I O queue element relative to the pointer that the monitor leaves in handler address RHCQE d USE 2 OSLINK Offset from queue element pointer to Q LINK 3 QSCSW Offset from queue element pointer to Q CSW 2 QSBLKN Offset from queue element pointer to Q BLKN 2 QSFUNC Offset from queue element pointer to Q FUNC QSJNUM Offset from queue element pointer to Q JNUM QSUNIT Offset from queue element pointer to Q UNIT d QSBUFF Offset from queue element pointer to Q BUFF 5 QSWCNT Offset from queue element pointer to Q WCNT QSCOMP Offset from queue element pointer to Q COMP d QSPAR Offset from queue element pointer to Q PAR Bit masks for the Channel Status Word 3 HDERRS Hard error bit in the CSW EOFS End of file bit in the CSW Identification codes for the header 2 RHDSIZ Device size for DSTATUS S RHSCOD Device identifier code RHSTS Device status word Bits in the device status word VARSS SPFUN 373 request is valid d SPFUNS Special functions supported HNLDRS Abort on job aborts SPECLS Special directory structured device WONLYS Write only device 2 RONLYS Read only device d FILSTS Sequential random access device MCALL DRDEF ASSUME Define the standard preamble for the following parameters Device name RH Device identifier 53 Device status RANDOM ACCESS SPFUN VARIABLE SIZED
35. einhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 33 48 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 RETURN Wait for the OP ENDED interrupt 8 MOVB QSFUNC R5 RO Get the function code ADD FNEG RO Normalize to gt 0 ASL RO Make function code into word offset ADD PC RO Add PIC address of next instruction ADD RTRYTB RO Add offset from here to RTRYTB ADD RO PC Add table entry to PC gt RTRYTB RTRYTB WORD lt DSIZ RTRYTB gt 5 373 Determine device size WORD lt RHFUE RTRYTB gt 4 Unused slot WORD 3 375 Format track WORD lt ABSW RTRYTB gt 2 376 Write absolute sector WORD lt ABSR RTRYTB gt 1 377 Read absolute sector SBTTL I O COMPLETION SECTION RHFDE Pt Hard user error entry point RHFUE BIS HDERRS QSCSW R5 Set hard error bit in channel status Successful completion entry point RHROS Jump to the monitor s completion section CLR ABSSEC Clear abs sector read write flag DRFIN RH RHFBLK WORD 0 0 0 0 Fork block SBTTL BOOTSTRAP READ ROUTINE DRBOT RH BOOT1 READ CONTROL lt CBUS gt RHBOOT 40 Put next instruction in syscom area BOOT1 JMP lt BOOT RHBOOT gt Go to software bootstrap Bootstrap read routine Controller should not set DRQ but can be busy because the Q Bus and so the Q Bus CTI Bus converter is working faster One reason is the difference betwe
36. eld exceeded GT RHSSRF MAXSRF gt ERROR Max Head ID bit field exceeded IIF GT RH C50 MAXCYL ERROR Max Cylinder ID bit field GT RH C51 MAxCYL gt ERROR Max Cylinder ID BIt field Other primary definitions for the handler s preamble ASIZ50 RHSSEC RHSSRF RH C50 Absolute device size in blocks RD50 051750 RHSSEC RHSSRF RH C50 1 1 Usable device size in blocks RD50 ASIZ51 RHSSEC RHSSRF RHSC51 Absolute device size in blocks RD51 051251 lt RHSSEC RHSSRF lt RHS C51 1 gt gt 1 Usable device size in blocks RD51 SBTTL PREAMBLE SECTION Datei PDP1123SE sxw Autor Reinhard Heuberger 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 23 48 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 queue element format NAME OFFSET CONTENTS Q LINK Link to next queue element Q CSW 2 Pointer to channel status word Q BLKN 4 Block number Q FUNC 6 Function code bits 7 0 of low order byte Q JNUM y Job number bits 6 3 of high order byte Q UNIT 7 Device unit bits 2 0 of high order byte Q BUFF 10 Virtual address of user buffer Q WCNT 12 Word count 0 for Write gt 0 for Read Q COMP 14 Completion routine address code Q PAR 16 PAR1 value to map user buffer The DRDEF macro defines the following identification codes offsets and bit patterns Base CSR and vector addresses RHSCSR The address declar
37. en bus RESET sequenze ENABL LSB 210 READ MOV RHSCSR R4 Point to device registers TSTB rhstat r4 DRQ bit set yet bmi 40 YEs Fatal error 4445 TST RHSTAT R4 Controller busy BMI 4445 Yes ASL PC we know what we re on WORD 100000 BCC 10 If yes branch BIT STDCAP RHSTAT R4 RD50 Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 34 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 BNE MOV 108 MOV MOV 20 MOV CMP BLOS MOV 30 SUB MOV inc INC MOV BIC MOV SECBIT ASR REPT ENDR MOV BIC MOV SRFBIT ASR REPT ENDR BIC CMP WORD BLO RHSCY1 40 JMP 50 MOV 60 TST 70 TSTB 80 BIT 90 TST RETURN DSABL LSB 105 RHSC51 RHSCY1 RO SP R1 SP SP R1 R1 256 30 256 RI R1 SP 2 SP RO CO 2 5 RO R5 SECMSK R5 R5 RHSEC R4 RO RO R5 SRFMSK R5 R5 RHHEAD R4 RO CYLMSK RO RO PC 153 50 lt BIOERR RHBOOT gt RO RHCYL R4 CMREAD RHCMD R4 R4 RO RHSTAT RO R4 R5 RHBUF R5 RO 60 S2ERR RHST2 R4 405 70 R5 R2 R1 70 STOPND GRO 90 80 R5 80 GSP 20 SP SP Software bootstrap section 500 Datei PDP1123SE sxw Autor Reinhard Heuberger If yes branch RD51 cylinders ignore the la
38. erter Eigenbau f r 5MByte RD50 Hard Disk bersicht siehe auch Bild 3 1 Q BUS PC 350 WINI 1 CTI BUS CONTR RD50 pies E W951 000401 DEC RD50 Durch einen gl cklichen Zufall im Jahre 1984 kam ich in den Besitz einer DEC RD50 5MByte Hard Disk inklusive des Controller Boards 00401 welche aus einen DEC PRO350 PC stammten Ich war es damals mehr als Leid als RX02 Disk Jockey zu arbeiten und entschied mich die neu erworbene Hard Disk in meiner PDP11 23 zu integrieren Im Nachhinein dachte ich oft dies war keine gute Idee denn es gab Probleme ohne Ende und milde ausgedr ckt es war oftzum Haare Ausrei en Dennoch das Projekt wurde letztendlich erfolgreich umgesetzt und darauf bin ich immer noch stolz und es ist immer noch voll lauff hig Die Probleme begannen schon mit den mechanisch unterschiedlichen Design von Q BUS und CTI BUS was im folgenden Bild 16 am besten ersichtlich ist rE Win UTSRPNMLKJHFEDCBA i 1 m H Weitere Unterschiede bzw Hindernisse galt es zu berwinden gt Q BUS OPEN COLLECTOR BUS CTI BUS 3 5 BUS gt Timing und Adressierung ist komplett unterschiedlich gt Software speziell RT 11 Device Treiber musste neu entwickelt und geschrieben werden Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 15 48 11
39. erzeugt Dieses Signal wird dann ber Open Collector Gate 7406 als Signal BEVNT auf das H9270 Backplane geschaltet Power Up Signale BPOK und BDCOK Diese wichtigen Signale m ssen genau nach den Spezifikationen wie im folgenden Bild 7 ersichtlich ablaufen Bild 7 4 MS MIN bg 4 MS MIN d el ke tl 11 fe 5 5 MIN wor NE A RN une 0764 Figure 1 11 Power Up Power Down Timing Hier dazu der Schaltplan in Bild 8 Im Prinzip sind es 2 identische Schaltungen mit unterschiedlicher Zeit Konstante durch die Elkos BPOK 10u BDCOK 100u Bild 8 Erzeugung der POWER UP Signale 5V BPOK 74LS14 T1 T2 Q2N3804 01 D2 1N4148 R1 100K 2 4 180K BDCOK RESET Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 9 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Signale und Anschl sse Das Steuer Panel ist ber einen 25 poligen Submin D Stecker Anschluss mit dem H9270 Backplane und der Stromversorgung wie folgt verbunden Bild 9 Backplane 25 poliger Submin D Anschlu 1 12 2 5 Standby 3 4 not used 5 not used 6 DC START 7 DC START 8 not used 9 BHALT L 10 not used 11 GRND 12 SRUN L 13 BPOK H 14 5 15 GRND 16 12 17 not used 18 5 19 not used 20 not used 21
40. ezifikation Fassung v 12 08 2009 Seite 16 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Hardware Das Design Die Hardware wurde in Wire Wrap Technik auf einen DEC W951 Q BUS Foundation Module 01 E02 E06 E07 03 E04 05 08 09 12 E13 14 16 17 18 19 20 aufgebaut In folgenden BILD 17 sind die eingesetzten Chips und deren Position ersichtlich DEC DC005 DEC 8640 74504 DEC 8881 74508 74LS85 DEC DC003 74504 74H74 74LS85 74LS74 74LS641 74H00 E10 CTI BUS 1of2 01 CTI BDAL 0 05 CTI BDAL 4 11 CTI BDAL 8 15 CTI BDAL 12 02 1 06 CTI BDAL 5 12 CTI BDAL 9 16 CTI BDAL 13 E15 CTI BUS 2 2 01 CTI SSnL 05 CTI BRPLY 09 GROUND 13 USED 17 CTI BPOK H 02 CT BWRITEL 06 CTI BMDEN L 10 5Volt 14 CTI IRQA 18 CTI BPDCOK E KC tege ORG Q BUS Protokoll Chip Addressing BUS Receiver Chip Hex Inverter Bus Driver Quadruple 2 Input Positive AND Gates 4 Bit Magnitude Comparator Q BUS Protokoll Chip Vector Interrupt Hex Inverter Dual D Type Positive Edge Triggered Flip Flops 4 Bit Magnitude Comparator Dual D Type Positive Edge Triggered Flip Flops OCTAL BUS TRANCEIVER 17nS Quadruple 2 Input Gates Positiv Nands Gates 03 CTI BDAL 2 07 CTI BDAL 6 13 CTI BDAL 10 17 CTI BDAL 14 04 CTI BDAL 3 08 CTI BDAL
41. for next time DRO bit set Not yet Insert remove a word of user data to data reg Repeat until word count exhausted extended memory system use this value for the PAR 1 bias Is this a write not branch this the first write If yes branch Map to next block in buffer next time BUSY bit set yet Yes Done transferring data write OP ENDED bit bit O set yet Yes Done transferring data read PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 31 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 56 65 7 SBTTL DUMP 16 25 35 SBTITL INTFDE INTROS 765 999 805 ASLB 5 DRO bit bit 7 set BPL 45 No WORD 0 Zero fill dump a word in data buffer register BR 45 Continue looping TSTB R3 DRO still set BPL 7 No HALT Yes Find out why MOV SP R4 Restore device register pointer MOV SP R5 Restore I O queue element pointer RTS RO Return DSABL LSB DUMP THE CONTROLLER S SECTOR BUFFER SUBROUTINE MOV R4 R2 Copy device register pointer ADD RHSTAT R2 Point to STATUS INIT register MOV R4 R3 Copy device register pointer ADD RHBUF R3 Point to DATA BUFFER register MOV QR2 R1 Get STATUS register ASR R1 OP ENDED bit bit O set yet BCS 2 Yes Done dropping data ASLB R1 DRQ bit bit 7 set BPL 1 No MOV QR3 R1 Drop a word from the sector buffer BR 15 Continue
42. hidden block 0 and the last cylinder which is reserved for bad block replacement 5 5 100000 ABSSEC High bit set for absolute write NEG QSWCNT R5 Make the word count negative for a write ABSR BIS 1 High bit clear low bit set for absolute read ABSSEC WORD Nonzero for absolute read write SBTTL READ X WRIT X FUNCTION Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 28 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 RW BIT BNE MOV TST BMI BNE JMP 1 ASL WORD ASSUME BCS TST BNE 106 MOV NEG RHW1 1 0SBUFF R5 JMPFUE 1 FNFLAG QSWCNT R5 1 RWNEXT RHROS S2WRF RHST2 R4 JMPFDE Is user buffer word aligned User error Word aligned device flag assuming a read request Check sign of word count Word count is negative for a write Word count is positive for a read No data Exit with no error Has a write fault occured Yes Can t write until next power up IF UNIT IS WRITE PROTECTED LE RHSTRT 1000 10 RHWPRO JMPFUE S2WRF WRFLAG WREO FNFLAG QSWCNT R5 Check write anyway one shot 100000 means write anyway Skip test if write anyway Are we write locked If yes branch Set flag to catch write fault condition Set flag for write request
43. i with test pattern Print ask print Question mov consol ri Setup r2 S Registers TIYIN r1 get one character cmpb bne 505 1 Up to here C abort will is inhibit qset qelem 1 Allocate another Q Element SJ MONITOR SCCA marea SCCA Inhibit C C action by Monitor mov consol ri BICB 200 R1 DISABLE LOWERCASE cmpb r1 N check for beq 555 cmpB r1 Y check for Y beq RANDOM br 455 print wstart TST DROINT enable interrupts TST QZOPEINT flag clear contens of clr LINE S clr cylind head sector CLR PATTER S and mov write mode switch to write operation Write PROGRAM starts here with retry capability case of an Error the program will exexcute a maximum of 5 Retries with last parameters untill the retry Flag is set to zero TST SCCA beq 35 patter cylind patter head patter sector patter s elr flag call get tst retry PDP 11 23 SE Spezifikation Check if C C entered Branch if no Continue abort Program clear test pattern word to setup with new contens depending of actuall contens Write one sector contens Should we execute a retry Fassung v 12 08 2009 Seite 41 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 106 155 rand
44. ignals e g SS MDEN SDEN DS AS as a result of the Q Bus signals Additional the Q Bus CTI Bus converter includes 2 octal Bus Transceivers for reduceing the Q bus AC loads The interrupt controll on the Q Bus CTI Bus converter is realized complete different as on the PC Motherboard On the PC mother board two special interrupt controller are assigned to controll the interrupt requests from the RD50 controller In general the Q BUS CTI Bus converter is doing this with the Q Bus protocoll chips DC003 DC005 to provide the Q bus interrupt standarts For the I O controll there are 7 i o registers available The Converter is able to provide 40 174000 174036 i o registers 2 registers are additional used for interrupt controll CSR 174030 OP interrupt at vector 350 CSR 174034 DRQ interrupt at vector 354 This register are simple flip flop register Every access to this registers will change the interrupt condition on or off This driver is not able to support error logging 1 Q BUS 350 WINI CTI BUS CONTR RD5O E 252727 o5 2555 22 B by R Heuberger Modified for V5 4 compatibility and fix logical to physical block conversion according to V5 4 releasenotes by H M all changes are marked by The extended handler functions are as follows CODE NAME FUNCTION 377 ABSRW Read absol
45. nt ocnum print complete value RETURN and exit from subroutine Subroutine to compare the contens of one sector with the correct test patern In case of error all information about good and bad Data will be printed TST DROINT DISable interrupts TST OPEINT 5 dd id mov buffer compoi 1 is used as pointer for buffer elr comcou r1 is used as counter cmp compoi patter make one compare beq 100 All here ERROR Bad Data received on actuall sector inc baddat Increment Bad Data Counter tst datflg should we print the Header bne 50 No it was done before print newln Print cr lf and print dattxt print header message call errinf Give Header info were we are print newln print dathea Print second header print dathe2 sw m print newln print space print a space mov comcou r4 prepare r4 to number call ascii bad word Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 44 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 print mov call print mov call inc 1006 beq br 12065 TST TST return space patter r4 ascii 5 compoi r4 ascii datflg compoi compoi COMCOU comcou 256 1205 205 datflg DROINT OPEINT Print a space Prepare r4 to print the
46. ogged RHCMD 12 RHSTAT 14 STATUS INIT register Logged RHINIT 14 Define the ERROR PRECOMP register error bits 0400 Mark not found during read sector ERTRO 01000 Track not found during restore ERABO 02000 Illegal aborted command ERIDNF 10000 Sector not found ERICRC 20000 ID CRC error ERHCRC 40000 Data CRC error Define the BACKUP REV SECTOR ID register Sector ID bits BITMSK RHSSEC 1 SECMSK SECBIT Invoke the bit mask generating macro BITMSK MAXSEC 1 MXSECM MXSECB Invoke the bit mask generating macro IIF lt SECIDMX MXSECB gt ERROR Bitmask macro failed Define the HEAD ID register bits Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 25 48 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 BITMSK RHSSRF 1 SRFMSK SRFBIT Invoke the bit mask generating macro BITMSK MAXSRF 1 MXSRFM MXSRFB Invoke the bit mask generating macro NE lt SRFIDMX MXSRFB gt ERROR Bitmask macro failed Define the CYLINDER ID register bits BITMSK RH C51 1 CYLMSK CYLBIT Invoke the bit mask generating macro BITMSK MAXCYL 1 MXCYLM MXCYLB Invoke the bit mask generating macro NE lt CYLIDMX MXCYLB gt ERROR Bitmask macro failed Define the 5 2 COMMAND register status bits S2ERR 400 Error status valid in ERROR PRECOMP regi
47. om exre 105 125 20 25 50 Datei PDP1123SE sxw Autor Reinhard Heuberger bne cmp beq inc br clr inc cmp bne print clr print inc cmp bne clr inc cmp bne TST TST FI 5 3 head 105 head exe head line 81 line 155 4crlf line dot sector 17 sector exe sector cylind 230 cylind exe DROINT OPEINT yes last operation was not o k over head limit yes got next adjustment no switch to next head and execute operation reset of heads to head 0 Increment line count over one line no not yet print a CRLF reset line counter send for one completed sector with all 3 Head Increament sector sector limit over no execute with new sector yes reset sector Increament Cylinder Cylinder limit over no DISABLE interrupts Pack is now written with Test Pattern The Exerciser will start now to execute random seeks and perform a read compaare and write back operation print elr Mov call TST TST add cmp bgt clr 1 1 1 mov call bic mov call add bic cmp blos bic mov call bic cmp bgt mov clr call tst bne sh test modify 10 stat busy DROINT QZOPEINT 10 modify modify 54 10 modify cylind head sector read mode time 177774 r1 r1 head time modify ri 177400 r1 r1 227 20 177550 r1 r1 cylinder time 177760 r1
48. p Signale wie in Bild 7 ersichtlich erzeugt die CPU startet und befindet sich RUN Mode angezeigt durch die rote LED im linken Teil des Front Panel Das Signal SRUN L ist ein pulsierendes Signal und ein Indikator ob sich die CPU im Run Mode befindet Im Original steuert dieses Signal ein 74LS123 Mono Flop an um das Run Signal gut sichtbar zu machen In meinem Fall l ste ich dies mit einer modernen leuchtstarken LED welche ber einen 7411506 LED Treiber mit Vorschaltung eines 74LS14 Schmitt Trigger den selben Zweck erf llt allerdings mit wesentlich weniger Aufwand System Clock Signal Dieses wichtige Signal BEVNT L wird auf das H9270 Backplane geschaltet und ist f r alle zeitabh ngigen Operationen erforderlich Weil das alternative Clock Signal vom MXV 11 Module bei dem H9270 Backplane nicht verwendet werden kann und weil ein solches Signal bei einem Standard Netzteil nicht zur Verf gung steht musste ein eigener 50Hz Oszillator gebaut werden Wie im Bild 6 ersichtlich ist dies mit einen NE555 Timer und nachgeschalteten Open Collector Treiber 74LS06 realisiert worden HARD DISK Anzeige Die Signale OP Operation und DRQ Data ReQuest von meinem Q BUS lt gt CTI BUS Converter entsprechen weitgehend einer Read Write Funktion und werden auf dem Controller selbst durch zwei LED s angezeigt Um die RD50 Hard Disk Operationen auch am Front Panel sichtbar zu machen wurden die beiden LED Signale zum Front Panel geschaltet und ber je
49. r CRNTHD RHHEAD R4 Load Head ID register CRNTSEC RHSEC R4 Load Sector ID register FREE u kc ce ke 2 2 2 2 2 2 2 ke e ke ke 2 2 2 ke e ke he 2 2 2 2 2 2 2 8 0 55 15 FNFLAG Read or write request Fassung v 12 08 2009 Seite 29 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 BMI 3 Request is for write TST 0C drq TURN DRQ INTERRUPT ON ine drgon and set SW register ke ke cec ke ke ec 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 MOV CMREAD RHCMD R4 Issue the read command BR 45 Wait for seek and read to complete Ck ke ce ke kc 2 2 2 2 2 2 2 ec ke ke e e ke ke e ke ke 2 2 2 2 2 2 20 3 TST TURN OP INTERRUPT inc opeon and set SW register 3 Ck ke ce ke kc ce ke cec ke 2 2 2 2 ke e ke ke e ke ke 2 2 2 2 2 2 20 MOV CMWRIT RHCMD R4 Issue the write command JSR RO MTFILL Fill the controller s sector buffer MOV R2 R4 Buffer fill instruction CLR Buffer zero fill instruction 45 CLR ABSSEC Clear abs sector read write flag RETURN JMPFDE JMP RHFDE Relay to fatal device error JMPFUE JMP RHFUE Relay to fatal user error SBTTL DSIZ Get disk size DSIZ processes the SPFUN 373 request DSIZ IF MMGST MOV RHUSIZ O BUFF R5 Put usable size into buffer xm IFF EQ MMGST MOV R4 SP Save R4 MOV RHUSIZ SP Put usable size on the stack MOV R5 R4
50. r 30 E and exit 20 inc flag 30 RTS PC Return Pt DRQ Interrupt service routine to to format one TRACK BINT INTEN DEVPRI Switch to correct priority mov QZsta2 drqok get controller status bit 400 drqok test for an error bit beq 20S not set all O K continue mov 100000 flag set flag for error minus br 305 and exit 20 mov Gpoint r4 obtain next value mov r4 da bring it to I O Buffer inc count Increment counter inc point uptate pointer inc point 2 to buffer 30 RTS PC Return sick Subroutine to wait for ready of the controller busy tst e stat test for bit 15 bmi busy if set busy than loop return EVEN EMTLST BLKW 6 Interrupt EMT List retry word 0 ERROR Retry lag head word 0 Head select word cylind word 0 Cylinder select word buffer blkw 256 Buffer for one sector contens consol blkb 80 point word 0 pointer word for buffer drqok word 0 word to test for successfull count word 0 counter end word 0 flag word 0 temp word 0 line word 0 mode word 0 indis disable interrupt case of exit word 0 even HALLO ASCIZ 33 2J INTERRUPT driven Q BUS lt gt CTI Bus FORMATTER PROGRam 1101 asciz lt 12 gt lt 15 gt for the RD50 5 Mbyte Winchester Drive lt 12 gt lt 15 gt Hallo2 kk e ek TH he e TH ke HH e e ke TH he eek ke TH he
51. ram will exexcute a maximum of 5 Retries with last parameters untill the retry Flag is set to zero Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 37 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 reset exe 106 156 get 6 10 200 210 clr clr clr mov clr call mov mov mov call tst bne cmp flag cylind head buffer point flag busy head he select head cylind cy set cylinder adress 120 sta2 select operation mode FORMAT get format one TRACK retry should we execute a retry exe yes last operation was not o k 3 head over head limit 10 yes got next adjustment head no switch to next head exe and execute operation head reset of heads to head 0 line Increment line count line 81 over one line 15 No not yet cr Print a lt return gt line star cylind Increament Cylinder 231 cylind Cylinder limit over exe no done 10 stat reset controller busy QZINT1 turn interrupt oFF INT2 Subroutine to receive 256 words from the controller This subroutine includes Error handling and retries 5 times if a problem in a read operation occurs tst bmi beq cmp beq PRINT br mov clr clr clr br s flag This is the main loop of this subroutine 200 This loop is so long ac
52. rite he 174014 Head ID Read Write sta2 174016 comand R STA2 W Command stat 174020 Status Init R Status W Init A 350 DRQ Interrupt vector B 354 OP ended Interrupt vector DEVPRI 4 Priority 4 on Q Bus PRI7 340 Priority 7 interrupt entry 1f 12 write 60 Write MODE read 40 Read MODE START PRINT HALLO SETUP PROTECT EMTLST A BCC 5 1 PRINT PROERR EXIT 5 PROTECT EMTLST B BCS 1 10 MOV AINT PRI7 2 MOV BINT B MOV PRI7 B 2 mov buffer point setup pointer for buffer clr drqok count S some values Datei PDP1123SE sxw Autor Reinhard Heuberger clr PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 40 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 25 30 35 40 45 50 55 reset exe 3 55 Datei PDP1123SE sxw Autor Reinhard Heuberger Ask for type to test the rd50 print simple mov consol ri clr r2 H r1 1 r0 bne 305 mov consol ri BICB 200 R1 r1 N 2 355 v1 Y S beq 40 br 25 clr branch 2 br 45 branch S Setup Registers get one character loop DISABLE LOWERCASE check for N check for Y in case of wrong answer set flag and start next question set flag Ask for writting Win
53. ror now MOV RHST2 R4 R3 Get STA 2 information BIT S2WRF R3 Does a write fault condition exist BNE RHFDE Yes Can t do restore so hard error BIC C lt S2SEK S2RHY gt R3 Get SEEK COMPLETE and DRIVE READY bits CMP lt S2SEK S2RHY gt R3 Are both bits set BNE RHFDE No Can t do restore so hard error MOV 1 Set the restore in progress flag FREE ke kc cec ke 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ke 2 22 2 2 2 2 2 2 2 tst 8 0 55 bmi 6665 TST 0C ope TURN OP INTERRUPT ON inc opeon S and set SW register FRE A Ae Fe He Ae E Ae He Fe ke 2 2 2 2 2 2 2 2 2 2 2 2 2 2 e ke ke e e ke MOV CMREST RHCMD R4 Issue the restore command RETURN for the OP ENDED interrupt DEC RETRY Decrement the retry count RHFDE No more retries left CLR INREST Clear restore in progress flag TST FNFLAG Read write request BEQ 8 No Special function BPL 7 Read request Retry it JMP RWRTRY Try this block again MOV CRNTCYL RHCYL R4 Load Cylinder ID register MOV CRNTHD RHHEAD R4 Load Head ID register MOV CRNTSEC RHSEC R4 Load Sector ID register ke ke ec e ke 2 2 2 2 2 2 2 ke e ke he 2 2 2 2 2 2 2 tst QZOCSSTA H M bmi 855 TST 0C drq TURN drq INTERRUPT ON inc drqon and set drq SW register 3 KC K Ae kc echec ke 2 ke 2 2 2 2 ec ke he 2 2 2 2 2 22 ke e ke ke e ke ke ke ke MOV CMREAD RHCMD R4 Initiate the read Datei PDP1123SE sxw Autor R
54. s 2 5 MOV 1000 R2 Memory address of secondary boot BSBOOT JSR READ Load the secondary boot MOV lt READ RHBOOT gt BSREAD Store pointer to read routine MOV BSDNAM BSDEVN Store RAD50 device name CLR BSDEVU Store unit number always 0 JMP BSBOOT Enter the secondary boot DREND END title RDFORM Format Program for the Q BUS lt gt CTI BUs converter for the RD50 R Heuberger ncall exit print INTEN device TTYIN H INT1 174030 INT2 174034 id 174000 Id Register read only er 174004 Error precomp R error W Precomp ba 174006 Backup REV Sector Id Read Write da 174010 Data Buffer Read Write cy 174012 Cylinder Read Write he 174014 Head ID Read Write sta2 174016 comand R STA2 W Command stat 174020 Status Init R Status W Init A 350 DRQ Interrupt vector B 354 OP ended Interrupt vector DEVPRI 4 Priority 4 on Q Bus PRI7 340 Priority 7 interrupt entry 1 12 START PRINT HALLO print halloi print hallo2 print hallo3 print hallo2 H SETUP PROTECT EMTLST A BCC 55 16 PRINT PROERR EXIT 5 PROTECT EMTLST B BCS 15 10 MOV AINT A MOV PRI7 A 2 MOV BINT B MOV PRI7 B 2 device emtlst indis H Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 36 48 11 23
55. st one Save block number Save word count Get current word count Word count 256 No Can only do 256 words per seek Adjust word count Get current block number gt HIM Increment block number Copy block number Mask out all but Sector ID Load Sector ID register SECBIT shifts to get RO RHSSEC Divide by 2 Copy Cylinder amp Head ID bits Mask out all but Head ID Load Head ID register SRFBIT shifts to get RO RHSSRF Cyl ID Divide by 2 Remove any propagated sign bit Trying to seek beyond highest track Within range Hard error Load Cylinder ID register Issue read command Copy device register pointer Point to STATUS INIT register Copy device register pointer Point to DATA BUFFER register BUSY bit set Yes Wait for seek to complete Did the seek fail Yes Hard error DRO bit set No Wait Transfer a word from controller to RAM Repeat until word count exhausted OP ENDED bit set yet Yes Done transferring data DRO bit set No Drop a word from controller Continue Word count zero yet No Go read next block Drop word count and block number Clear the carry bit PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 35 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 BOOT MOV 10000 SP up the stack pointer MOV 2 RO Block number of secondary bootstrap MOV lt 4 256 gt R1 Word count of 4 block
56. ster S2DRO 4000 Data transfer request S2SEK 10000 Seek complete S2WRF 20000 Write fault S2RHY 40000 Drive ready Pt Define the STA 2 COMMAND register command bits CMREST 20 Restore command CMREAD 40 Read sector command CMWRIT 60 Write sector command Define the STATUS INIT register status bits STOPND 1 Operation ended STDRO 200 transfer request STDCAP 400 Drive capacity 1 5 Meg 0 10 Meg STBUSY 100000 Busy controller s internal bus in use Define the STATUS INIT register init bits STINIT 10 Reset initialize Expected value of drive capacity bit in STATUS INIT register IF GT lt RHSIZ 10 1024 5 If capacity GT 10K blocks 5Mbytes RHCAP 0 Drive capacity bit should be O j EEE Else this is a 5Mbyte drive RHCAP STDCAP Drive capacity bit should be 1 ENDC Endif Pt Other constants IDBITS lt CYLBIT SRFBIT SECBIT gt Total size of the ID bit fields IIF GT lt IDBITS 16 gt ERROR Block number can exceed 16 bits RETRYS 8 Allow 8 tries 7 retries per operation WREO 100000 Bit 15 Write request flag SBTTL INSTALLATION VERIFICATION ROUTINE ASECT Routine goes in block O of handler file 200 at location 200 NOP Same test for system amp non system device 16 RHSCSR RO Base CSR address TST RHSTAT RO Is controller busy busy bit 15 set ASSUME lt STBUSY gt
57. t Vectoren fiir die dazugeh rigen CSR Adressen erforderlich sind wurden die n tigen Match Signale mit den beiden Comperatoren E11 und E16 erzeugt Generell Es mussten aus den Q BUS Signalen die CTI BUS Signale erzeugt werden Allerdings waren die Signale in der zeitlichen Ablauffolge verschieden und teilweise gar nicht vorhanden und oder anders definiert mussten also auch manchmal neu erzeugt werden wie z B das Slot Select Signal Schwierig war die Erzeugung des Q BUS Signals BRPLY in Abh ngigkeit der CTI BUS Signale Abhilfe brachte hier eine Laufzeit Verz gerung mit 4 Inverter Bausteinen Elektrisches Verhalten Der DEC CTI BUS wurde einzig alleine f r den DEC PRO 350 380 PC entwickelt und als 3 State Bus konzeptioniert mit einer maximalen L nge auf den Motherboard von ca 10 cm Bei meinem Design wurde der CTI BUS ca 150cm lang also fast 15mal l nger Physikalisch wurde dieser Bus mit 2mal 20 Pin Flachbandkabel aufgebaut Dies war unbedingt erforderlich da sich die RD50 au erhalb des Q BUS befand Aber aber damit fingen die Probleme erst wirklich an L sen konnte ich sie letztendlich durch den stundenlangen Einsatz von Logic Anlayser und Speicher Oscilloscope und Schreiben von SCOPE Loop Routinen in Assembler Spikes und Signal bersprecher waren die Folge des 150cm langen CTI BUS welche ich dann St ck f r St ck ausschalten konnte Haupt belt ter waren die Spikes auf den Signalen CTI SS E1
58. t the unit job number byte BIC 4C lt 7 gt RO Mask in just the unit number bits BNE JMPFU1 Fatal user error only unit O supported MOVB QSFUNC R5 RO Get the function code ADD FNEG RO Normalize to gt 0 CMP RO FNUM Compare with total number of codes BLO DISPAT Within range 0 lt RO lt FNUM JMPFU1 JMP RHFUE Relay to fatal user error JMPFD1 JMP RHFDE Relay to fatal device error H SBTTL LOCAL VARIABLES drqon word 0 SW register for DRO interrupt opeon word 0 SW register for OP interrupt RETRY WORD 0 Retry count INREST WORD 0 Flag that restore operation is in progress FNFLAG WORD 0 Flag to interrupt routine of function type WRFLAG WORD 0 Flag to intercept write fault error condition WCNT WORD 0 of QSWCNT R5 CRNTCYL WORD 0 of current Cyl ID for retries 8 wchk CRNTHD WORD 0 Copy of current Head ID for retries amp wchk CRNTSEC WORD 0 of current Sector ID for retries amp wchk RHASIZ WORD ASIZ5O Absolute device size RD50 default RHUSIZ WORD USIZ5O Available device size RD50 default RHSCYL WORD RHSC50 Cylinders unit RD50 default MMGST not extended memory system SJ F B BUFF WORD 0 of QSBUFF R5 ENDC MMGST Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 27 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008
59. tive as interrupt get occurs from the OP ended interrupt routine or an ERROR has occured count 256 Do we realy received 256 words 105 Yes branch to continue NONR give a warning message and 200 execute retry buffer point reset buffer pointer r3 drqok prepare drqok and count count for next operation retry clear retry flag 300 and loop Error Retry handling part of this subroutine call TST TST Mov call cmp beq inc br busy QZINT1 INT2 10 stat busy 5 retry 210 retry 2505 Retry wait untill controller is ready turn interrupt oFF reset the controller and wait untill reset is done retry limit reached yes next step retry counter incremented reset retry count Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 38 48 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 print ioerr 250 TST INT1 turn interrupt on TST INT2 3005 return INTERRUPT Servive Routines OP ended Interrupt service rountine initialized if one TRACK is complete formatted AINT INTEN DEVPRI Switch to correct priority MOV STA2 end get status tranfer completed o k bit 400 end CHECK error bit and branch beq 20 205 mov 100000 flag ERROR gt set flag to minus b
60. try Should we execute a retry bne 80 Yes a error has occured call compar Compare data jmp exre and loop Subroutine to wait for ready of the controller Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 43 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 busy time ASCII 105 compar 205 506 tst stat test for bit 15 bmi busy if set busy than loop return Subroutine to receive time ticks neccessary to generate a random number Mov ticks r1 r1 points to where to put time gtim ftimare r1 get ticks since midnight via gtim mov r1 r0 rO lo order time mov ri ri r1 hi order time return exit ASCII Conversion and Print subroutine for one octal word on the screen with print Input is r4 output ocnum r2 used as pointer mov ocnum 10 r2 Setup r2 as pointer mov 200 2 Set terminator for Print mov 5 chcou Setup loop ount mov r4 sp Copy word into Stack bic 177770 5 select one octal value add 0 sp CONVERT to ASCII movb sp r2 bring one Ascii to buffer asr r4 Shift asr r4 8 right asr r4 2 three dec chcou Test if done bne 10 No do it again bic 177776 CA Get last bit add 0 r4 and convert to ASCII movb r4 r2 Bring last ASCII into buffer movb r2 including a blank pri
61. ute sector block read any block on the 2 device including physical block 0 and the last cylinder 376 ABSRW Write absolute sector block write any block on the device including physical block 0 and the last cylinder Disk Data Bytes sector 512 Sectors track 16 Heads 4 Cylinders 153 Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 21 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Tracks 612 1 sector 1 block SBTTL MACRO DEFINITIONS Pt Macro to generate the maximum number of entities that can be counted by a field the specified number of bits in size Calling sequence MAXVAL 5 VAL Where BITS Inputs the number of bits in the bit field VAL Returns the largest unsigned number that can be contained in the bit field 1 i e the number 5 of entities that the field can count MACRO MAXVAL BITS VAL VAL 1 5 VAL VAL 2 ENDR ENDM Macro to generate a bit mask for accessing ID registers Calling sequence BITMSK ARG CMASK BITS Where d Inputs the maximum supported value for an ID 2 5 Returns the logical complement of value MASK 1 where MASK is the lowest number that is a power of d 2 and is greater than Thus MASK 1 contains a right justified field of contiguous 1 s with O s in 3 the higher
62. ve number call ascii 2 octal ascii print abosof Print Haeder of soft Errors mov soft r4 gt and R4 to give number call ascii H in octal ascii print abobad Print Haeder of bad data Errors mov baddat r4 2 and R4 to give number call ascii octal print newln print full exit THIS IS the only way to exit MEM s Local Values and ASCII messages EVEN consol blkb 80 EMTLST BLKW 6 Interrupt EMT List timare blkw 2 TIME request EMT List qelem blkw 10 Extra Q Element Marea blkw 6 Qset EMT Argument block SCCa word 0 Status word ticks word 0 0 words to receive HI u Lo Ticks ocnum blkb 10 Ascii buffer to print a octal number modify word 0 Modifier word for random Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 47 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 branch word flag for expanded test 1 retry word ERROR Retry lag head word Head select word cylind word 0 Cylinder select word sector word Sector select word buffer blkw 256 Buffer for one sector contens point word pointer word for I O buffer drqok word word to test for successfull I O count word 0 counter to check 256 word end word 0 TEST word for completed sector transfer
63. weils 1 6stel 74LS14 aufbereitet und dann mit 1 6stel 74LS06 die LED am Front Panel angesteuert Restaurierung am MXV 11 Module Leider gab es immer wieder Ausf lle mit den Transmitter Receiver Chips 9636 und 9637 Das Auswechseln ist sehr schwierig so dass ich mich entschieden hatte hier jeweils einen Sockel einzul ten um im Bedarfsfall diese Chips einfachst wechseln zu k nnen Der Teil des Systems 1 Floppy DISK SYSTEM Datei PDP1123SE sxw Autor Reinhard Heuberger PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 11 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Bild 11 RX02 Floppy Disk System f r 8 Inch Floppy Diskette 2mal 0 5 Mbyte kac lie 1 e N AE j ae Anc m DZ E aha SENI 7 T Sg 4445 jl Mm m We aleh alem a AH Datei PDP1123SE sxw Autor Reinhard Heuberger Spezifikation Fassung v 12 08 2009 Seite 12 48 11 23 SE 1983 1987 Aufbau Datei PDP1123SE sxw Autor Reinhard Heuberger 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 13 48 11 23 1983 1987 Aufbau Spezifikation Restaurierung 2008 Bild 15 Ausgebautes Floppy Laufwerk Datei PDP1123SE sxw Autor PDP 11 23 SE Spezifikation Fassung v 12 08 2009 Seite 14 48 PDP 11 23 SE 1983 1987 Aufbau Spezifikation Restaurierung 2008 Der UO Teil des Systems 2 Q BUS lt gt CTI BUS Conv
Download Pdf Manuals
Related Search
Related Contents
Paulmann Falesco BoConcept Model 3320 Assembly Instruction Manuale del proprietario Manual de fluoretação da água para consumo humano TPV-CU-SET(販売終了品) SCA-300/500 Every One an Expert DMX-LICHTSTEUERPULT FÜR 192 KANÄLE Kettler Vito XL User's Manual Copyright © All rights reserved.