Trailing-Edge
-
PDP-10 Archives
-
decuslib10-01
-
43,50035/munich.opr
There are no other files named munich.opr in the archive.
HOW TO USE THE MUNICH REAL-TIME DATA ACQUISITION SYSTEM
I DESIGN PHILOSOPHY
THE MUNICH REAL-TIME DATA ACQUISITION SYSTEM CONSISTS
OF A NUMBER OF PDP-8'S ATTACHED DIRECTLY TO THE PDP-10. THE
PDP-8'S CONTROL THE DATA ACQUISITION HARDWARE AND MAINTAIN THE
REAL-TIME DISPLAY. THE PDP-8'S DO ALL OF THE DATA COLLECTION AND DATA
DISPLAYING AND THE PDP-10 HANDLES ALL DATA REDUCTION AND DISPLAY
FORMATTING.
A USER AT A PDP-8 TERMINAL CAN USE THE PDP-8 CONSOLE TELETYPE
TO INITIATE JOBS ON THE PDP-10. THE PDP-10 JOBS CAN THEN READ OR
WRITE PDP-8 CORE JUST AS IF THE PDP-8 WERE A STANDARD PDP-10 DEVICE.
THE PDP-8 USER CAN ALSO LOAD PROGRAMS INTO THE PDP-8 (FROM EITHER
THE PDP-8 OR THE PDP-10) WHICH COMMUNICATE WITH THE PDP-10 PROGRAM
THROUGH A SOFTWARE INTERRUPT NETWORK. TYPICALLY A USER AT A PDP-8
TERMINAL WILL LOAD TANDEM PROGRAMS INTO BOTH THE PDP-10 AND THE PDP-8,
THE PDP-8 DOING DATA COLLECTION AND THE PDP-10 DOING DATA REDUCTION.
THESE PROGRAMS WILL COMMUNICATE WITH EACH OTHER THROUGH THE
SOFTWARE INTERRUPT SYSTEM TO SEND AND RECEIVE DATA WHENEVER BUFFERS
FILL UP OR WHEN THE DISPLAY NEEDS REFRESHING.
II PDP-8 TELETYPE MONITOR SERVICE ROUTINE (TMSR)
TMSR IS THE PDP-8 MONITOR PROGRAM WHICH HANDLES ALL TELETYPE
INTERRUPTS AND CONTROLS ALL COMMUNICATIONS WITH THE PDP-10. TMSR
IS 4 PAGES LONG USING LOCATIONS 200-1177. IT ALSO USES LOCATIONS
0-5 AND 170-177 ON PAGE 0. THE REMAINING CORE IS AVAILABLE FOR USER
PROGRAMS. TMSR CAN SATISFY ANY PROGRAMMING REQUIREMENT PROVIDED
THAT THE FOLLOWING CONVENTIONS ARE FOLLOWED.
III PDP-8 USER MONITOR SOFTWARE INTERFACE
A) INITIALIZATION OF TMSR
WHENEVER THE PDP-8 SYSTEM IS STARTED, TMSR MUST BE INITIALIZED.
THIS IS ACCOMPLISHED BY JUMPING TO ABSOLUTE LOCATION 200. TMSR
WILL RETURN TO THE USER PROGRAM BY THE FOLLOWING INSTRUCTION:
JMP I START /START=170
THUS BEFORE INITIALIZING TMSR THE USER PROGRAM MUST SET UP "START"
(LOCATION 170) WITH THE PROPER RETURN ADDRESS.
B) EXTERNAL HARDWARE INTERRUPTS OTHER THAN TTY OR DA-25
TMSR HANDLES ALL TELETYPE INTERRUPTS AND ALL HARDWARE
INTERRUPTS FROM THE PDP-10 OVER THE DA-25. IF THE PDP-8 RECEIVES
ANY OTHER INTERRUPTS THEN TMSR WILL PASS CONTROL TO THE USER'S
PROGRAM BY DOING A "JMP I CHAIN" (CHAIN=171). "CHAIN" (LOC 171)
MUST HAVE BEEN PREVIOUSLY LOADED WITH THE ADDRESS OF THE USER'S
INTERRUPT SERVICE ROUTINE. IT SHOULD BE NOTED THAT THE USER'S
INTERRUPT SERVICE ROUTINE MUST HANDLE ALL INTERRUPTS OTHER THAN THE
TELETYPE AND THE DA-25. FAILURE TO DO THIS WILL HANG THE PDP-8
SYSTEM.
TO DISMISS FROM THE USER'S INTERRUPT SERVICE ROUTINE THE
USER PROGRAM MUST ISSUE A "JMP I DISMIS" (DISMIS=176). THIS
WILL RESTORE THE ORIGINAL LINK AND AC AND RETURN TO THE INTERRUPTED
USER PROGRAM. THE INTERRUPT SERVICE ROUTINE MUST NEVER
TURN THE INTERRUPT SYSTEM ON (ION), AND THE USER PROGRAM MUST NEVER
EXECUTE A "JMP I DISMIS" UNLESS IT IS DISMISSING FROM
A HARDWARE INTERRUPT. AGAIN IF THE USER FAILS TO SERVICE ALL HARDWARE
INTERRUPTS PROPERLY, CLEARING ALL FLAGS, THE PDP-8 SYSTEM WILL HANG.
C) SOFTWARE TRAPS FROM TMSR TO THE USER PROGRAM
THERE ARE THREE SEPARATE SOFTWARE INTERRUPT CHANNELS
BETWEEN TMSR AND THE USER PROGRAM: ONE FOR TELETYPE INPUT TO THE
PDP-8 USER PROGRAM, ONE FOR TELETYPE OUTPUT FROM THE PDP-8 USER
PROGRAM, AND ONE FOR SOFTWARE INTERRUPTS FROM THE PDP-10 USER
PROGRAM. COMMUNICATION BETWEEN TMSR AND THE PDP-8 USER PROGRAM
IS ACCOMPLISHED THROUGH THREE LOCATIONS ON PAGE 0:
IRQFL (LOC 172), KEYFL (LOC 173), DONFL (LOC 174).
1) TELETYPE INPUT TO THE PDP-8 USER PROGRAM.
CHARACTERS TYPED ON THE PDP-8 CONSOLE TELETYPE ARE DIRECTED BY
TMSR TO EITHER THE PDP-10 OR THE PDP-8 USER PROGRAM
DEPENDING ON THE POSITION OF AC SWITCH 0. IF SWITCH 0 IS OFF
THEN ALL CHARACTERS TYPED ON THE KEYBOARD GO TO THE PDP-10. IF
SWITCH 0 IS ON, THEN ALL CHARACTERS GO TO THE PDP-8 PROGRAM.
IF TMSR DETERMINES THAT A CHARACTER IS TO GO TO THE PDP-8 USER
PROGRAM, IT FIRST EXAMINES KEYFL (LOC 173). IF THE USER HAS LOADED
THIS LOCATION WITH AN ADDRESS, THEN TMSR WILL STORE THE CHARACTER IN
CHREC (LOC 175) AND EXECUTE A JMS I KEYFL (JMS I 173). IF THE USER
PROGRAM HAS NOT LOADED KEYFL (LOC 173) WITH AN ADDRESS, THEN TMSR
TREATS KEYFL AS A FLAG, SETTING IT TO 1 WHENEVER A CHARACTER IS TYPED.
IN THIS MODE THE USER PROGRAM OCCASIONALLY EXAMINES KEYFL AND IF IT IS
SET, THEN IT CLEARS THE FLAG AND PICKS UP THE CHARACTER OUT OF
CHREC (LOC 175).
2) TELETYPE OUTPUT FROM THE PDP-8 USER PROGRAM.
CHARACTERS CAN BE TYPED OUT ON THE PDP-8 TELETYPE FROM THE
PDP-8 USER PROGRAM BY LOADING THE AC WITH THE DESIRED CHARACTER
AND THEN DOING A JMS I TSYNC (JMS I 177). THE USER PROGRAM IS
NOTIFIED THAT THE TYPING OF THE CHARACTER HAS FINISHED THROUGH
DONFL (LOC 174). THIS FLAG WORKS LIKE KEYFL. IF THE USER LOADS AN
ADDRESS INTO DONFL, THEN TMSR WILL EXECUTE A JMS I DONFL WHEN THE
USER'S CHARACTER IS FINISHED TYPING. IF DONFL IS NOT LOADED
WITH A TRAP ADDRESS, THEN TMSR WILL SET THIS FLAG TO 1 WHENEVER
THE PRINTER HAS FINISHED.
3) INTERRUPTS FROM THE PDP-10 PROGRAM.
THE PDP-10 PROGRAM CAN INTERRUPT THE PDP-8 PROGRAM GIVING IT A
SINGLE 12 BIT WORD. WHEN THE PDP-10 INTERRUPTS PDP-8, THIS 12 BIT
WORD IS ANDED INTO LOCATION 5 AND TMSR TRAPS TO THE ADDRESS IN
IRQFL (LOC 172). IF THERE IS NO ADDRESS IN IRQFL, THEN TMSR TREATS
IRQFL AS A FLAG LOCATION SETTING IT TO 1.
D) DISMISSING FROM A SOFTWARE TRAP
SINCE ALL SOFTWARE TRAPPING IS DONE WITH THE INTERRUPT SYSTEM
ENABLED (ION), TMSR CLEARS THE TRAP FLAG (IRQFL, KEYCL, OR DONFL)
BEFORE TRAPPING. THIS ENSURES THAT A SECOND TRAP COULD NOT OCCUR
DURING THE SERVICING OF THE FIRST ONE AND DESTROY THE RETURN
ADDRESS. THE PROPER WAY TO EXIT FROM A SOFTWARE TRAP IS AS FOLLOWS:
IOF /TURN OFF INTERRUPT SYSTEM
TAD TRAPFL /PICK UP PROPER TRAP FLAG (IRQFL,KEYFL,DONFL)
SZA /HAS THERE BEEN ANOTHER INTERRUPT?
JMP BACK /YES, PROCESS THIS NEXT ONE (DON'T FORGET
/TO TURN INTERRUPT SYSTEM BACK ON)
TAD (TRPRTN) /PICK UP ADDRESS OF TRAP ROUTINE
DCA TRAPFL /STORE IT IN TRAP FLAG
TAD ACSAV /RESTORE AC WHICH WAS SAVED AT START
ION /TURN INTERRUPT SYSTEM ON AGAIN
JMP I TRPRTN /RETURN TO INTERRUPTED ROUTINE
IT SHOULD ALSO BE NOTED THAT IT IS UP TO THE USER TRAP ROUTINE
TO SAVE AND RESTORE THE AC AND THE LINK DURING A SOFTWARE TRAP.
E) INTERRUPTING THE PDP-10 PROGRAM FROM THE PDP-8
THE PDP-8 USER CAN CAUSE A SOFTWARE TRAP IN THE PDP-10 USER
PROGRAM AND SEND ACROSS A 12 BIT WORD TO THE PDP-10. THE PROPER INSTRUCTION
SEQUENCE IS AS FOLLOWS:
TAD INTWRD /PICK UP INTERRUPT WORD FOR PDP-10
/PROGRAM
IOF /NECESSARY IF EXECUTED WITH INTERRUPT
/SYSTEM ON
DCA 4 /LOC 4 C}NTAINS 12 BIT INTERRUPT
/WORD
JMS I 3 /GO INTERRUPT PDP-10
CLA /NOTE AC IS NOT ALWAYS CLEARED BY TMSR
NOTE: TMSR WILL DETERMINE IF THE INTERRUPT SYSTEM IS SUPPOSED
TO BE ON OR OFF AND WILL EXIT IN THE PROPER MODE.
IV PDP-10 USER INTERFACE TO THE PDP-8
THE CORE OF EACH PDP-8 CAN BE READ OR WRITTEN UNDER PDP-10
PROGRAM CONTROL. THE DEVICE MNEMONIC FOR THE PDP-8'S IS ECM (EIGHT
CONNECTED TO MEMORY). SINCE THERE CAN BE MORE THAN ONE PDP-8 ON
THE SYSTEM, THE PDP-8'S BECOME ECM0, ECM1,ECM2,ETC. THE DEVICE
NUMBER CORRESPONDS TO THE HARDWARE SWITCH SETTING ON THE DA-25/A
(THE PDP-8 MEMORY INTERFACE). THE PDP-10 MONITOR CAN BE BUILT TO
RECOGNIZE UP TO 16 PDP-8'S (ECM0-ECM17) BY ANSWERING THE APPRO-
PRIATE QUESTION IN MONGEN.
THE CONSOLE TELETYPE OF EACH PDP-8 FUNCTIONS AS AN ADDITIONAL TIME-
SHARING TERMINAL ON THE PDP-10. THE TTY NUMBERS OF THE PDP-8'S CORE
BETWEEN THE HIGHEST LINE ON THE DC-10 AND THE CTY. (FOR 7 DC-10
LINES THE PDP-8'S WOULD BE TTY10, TTY11, ETC.) A PDP-10 PROGRAM
CAN DO OUTPUT TO THESE TELETYPES USING THE STANDARD INPUT AND OUTPUT
UUO'S OR BY THE TTCALL UUO.
A) INITIALIZING THE PDP-8 AS A RANDOM ACCESS I/O DEVICE
THERE ARE TWO MODES FOR READING AND/OR WRITING THE PDP-8 CORE
MEMORY: PACKED (MODE 16) AND UNPACKED (MODE 17). THESE ARE BOTH DUMP
MODES - THERE IS NO BUFFERED MODE I/O. THE UNPACKED MODE MAPS ONE
PDP-8 WORD INTO A SINGLE PDP-10 WORD RIGHT ADJUSTED. THE PACKED MODE
MAPS 3 PDP-8 WORDS INTO A SINGLE PDP-10 WORD: THE FIRST PDP-8 WORD GOING TO OR
COMING FROM THE LEFT-MOST 12 BITS (0-11), THE SECOND WORD FROM THE
MIDDLE 12 BITS (12-23), AND THE THIRD WORD FROM
THE RIGHT-MOST 12 BITS (24-35). THE INITIALIZATION SEQUENCE IS STANDARD.
INIT D, MODE ; D = CHANNEL # AND MODE = 16
OR 17 (PACKED = 16 AND
UNPACKED = 17)
SIXBIT /ECM0/
0
ERROR RETURN
NORMAL RETURN
B) SPECIFYING A STARTING ADDRESS IN PDP-8 CORE MEMORY
THE STARTING ADDRESS FOR A READ SEQUENCE IS SPECIFIED BY A LOOKUP UUO,
AND THE STARTING ADDRESS FOR A WRITE SEQUENCE IS SPECIFIED BY AN
ENTER UUO.
LOOKUP D, INADR ;LOCATION INADR CONTAINS THE FIRST
;FIRST WORD TO BE READ
ERROR RETURN
ENTER D, OUTADR ;LOCATION OUTADR CONTAINS THE PDP-8
;ADDRESS OF THE FIRST WORD TO BE OVER
ERROR RETURN ;WRITTEN
C) READING AND WRITING PDP-8 CORE
THE READING AND WRITING OF PDP-8 CORE IS DONE WITH THE STANDARD
DUMP MODE UUO'S AND DUMP MODE I/O COMMAND LISTS.
THE FIRST TIME THAT DATA IS READ IT IS TAKEN FROM THE PDP-8
STARTING AT THE ADDRESS GIVEN IN THE LOOKUP UUO. THE NEXT
INPUT UUO'S WILL TAKE DATA FROM THE PDP-8 CORE STARTING AT THE
LOCATION FOLLOWING THE LAST BLOCK OF DATA READ. THUS, TO READ THE
SAME AREA OF PDP-8 CORE CONTINUOUSLY, A LOOKUP AND AN INPUT MUST
BE DONE FOR EACH READ. THE SAME METHOD OF SEQUENTIAL DATA TRANSFER IS
USED FOR THE ENTER AND OUTPUT UUO'S.
D) SENDING SOFTWARE INTERRUPTS TO THE PDP-8 USER PROGRAMS
THE PDP-10 USER PROGRAM CAN INTERRUPT THE PDP-8 USER
PROGRAM, SENDING IT A 12 BIT DATA WORD WITH THE FOLLOWING INSTRUCTIONS:
USETO D, ADR ;D=PDP-10 TO SOFTWARE
;CHANNEL NUMBER
;ADR IS THE ADDRESS OF THE DATA WORD
THIS INSTRUCTION CAUSES AN "IRQFL" SOFTWARE TRAP AS DESCRIBED IN THE
PDP-8 SECTION.
E) SETTING UP FOR AND DISMISSING FROM PDP-8 USER INTERRUPTS
TO RECEIVE PDP-8 USER INTERRUPTS THE PDP-10 USER PROGRAM
MUST TELL THE MONITOR WHERE TO TRAP ON SUCH AN INTERRUPT. THIS IS DONE
WITH THE FOLLOWING UUO:
USETI D, ADR ;D =PDP-10 SOFTWARE CHANNEL NUMBER
;ADR IS WHERE TO STORE PDP-8 INTERRUPT
;BITS
;ADR+1 IS WHERE PROGRAM CONTROL IS
;TRANSFERRED.
THE PDP-8 PROGRAM CAN SEND A NUMBER BETWEEN 0 AND 36 TO THE PDP-10. THIS
NUMBER IS TRANSFORMED INTO A BIT POSITION IN THE INTERRUPT WORD. THE
MONITOR SETS THIS BIT AND STORES THE INTERRUPT WORD IN THE PDP-10 TRAP
LOCATION AND TRANSFERS CONTROL TO THE TRAP LOCATION PLUS ONE. IF OTHER
INTERRUPTS ARE RECEIVED WHILE SERVICING THE FIRST ONE, THESE WILL BE
STORED IN THE MONITOR UNTIL THE PDP-10 USER DISMISSES THE CURRENT
INTERRUPT. WHEN THE USER HAS DISMISSED THE INTERRUPT, THE MONITOR WILL
INTERRUPT THE USER AGAIN, SEDNING THE PROGRAM THE LATEST PDP-8 INTERRUPT
BITS.
TO DISMISS THE SOFTWARE INTERRUPT, THE USER MUST ISSUE THE
FOLLOWING UUO:
UGETF D, ;D=THE PDP-10 SOFTWARE CHANNEL NUMBER
THIS WILL RETURN CONTROL TO THE INTERRUPTED USER PROGRAM.
PDP-10 PROGRAMMING EXAMPLE:
INIT 1,17 ;UNPACKED MODE
SIXBIT/ECM0/ ;PDP-8 0
0
JRST ERROR ;ERROR RETURN
USETI 1,INT ;SET UP USER INTERRUPT LOCATION
INT: 0 ;LOCATION WHERE INTERRUPT BITS
;ARE STORED
LOOKUP 1,PDP8AD ;PDP-8 AREA TO BE READ
JRST ERROR ;ERROR RETURN
INPUT 1,CL ;READ IN DATA
USETO 1, INTWRD ;TELL PDP-8 THAT BUFFER HAS BEEN READ
UGETF 1, ;DISMISS INTERRUPT
PDP-8 PROGRAMMING EXAMPLE:
START=170
CHAIN=171
IRQFL=172
KEYFL=173
DONFL=174
CHREC=175
DISMIS=176
TSYNC=177
*1200
INIT, TAD (BEGIN)
DCA START /SET UP START LOC
TAD (INT)
DCA CHAIN /SET UP INTERRUPT CHAIN
TAD (USRINT)
DCA IRQFL /SET UP FOR PDP-10 INTERRUPTS
TAD (TTYINT)
DCA KEYFL /SET UP TTY INPUT
JMP I (200) /GO INITIALIZE TMSR RETURNS TO BEGIN
BEGIN, JMP BEGIN /BACKGROUND JOB DOES NOTHING
INT, JMS SERVIC /GO SERVICE HARDWARE INTERRUPT
TAD IBITS /NEXT 3 INSTRUCTIONS GENERATE PDP-10 INTERRUPT
DCA 4 /LOC 4 CONTAINS BITS TO SEND TO PDP-10
JMS I 3 /GO INTERRUPT THE PDP-10
JMP I DISMIS /DISMIS THE INTERRUPT
TTYINT, 0 /RETURN ADDRESS IS STORED HERE
DCA ACSAV /SAVE THE AC
TAD CHREC /GET THE CHARACTER
DCA I 10 /STORE IN CHARACTER BUFFER
IOF /PREPARE TO DISMIS TTY INTERRUPT
TAD KEYFL /GET KEYBOARD FLAG
SZA CLA /IS THERE ANOTHER CHARACTER READY?
JMP TTYINT+2 /YES, GO GET IT
TAD (TTYINT)
DCA KEYFL /RESTORE KEYFL TRAP ADDRESS
TAD ACSAV /RESTORE AC
ION
JMP I TTYINT /RETURN TO INTERRUPTED PROGRAM
USRINT, 0 /RETURN ADDRESS STORED HERE
DCA ACSAV1 /SAVE AC
USRIN1, IOF /PREPARE TO PICK UP INTERRUPT BITS OUT OF 5
TAD 5 /TURN OFF INTERRUPT SYSTEM SO NO BITS ARE LOST
DCA BITS
DCA 5 /CLEAR LOC 5
ION
TAD I 11 /PICK UP A CHARACTER TO TYPE
JMS I TSYNC /GO TYPE IT OUT
CLA
WAIT, TAD DONFL /GET DONE FLAG FOR PRINTER
SNA CLA /HAS CHARACTER FINISHED
JMP WAIT /NO, WAIT FOR IT TO FINISH
IOF /YES, PREPARE TO DISMIS TRAP
TAD IRQFL /CHECK FOR OTHER INTERRUPTS
SZA CLA
JMP USRIN1 /ANOTHER INTERRUPT HAS COME IN
TAD (USRINT) /GET INTERRUPT ADDRESS
DCA IRQFL /SET UP TRAP ADDRESS
TAD ACSAV1 /RESTORE AC
ION /TURN INTERRUPT SYSTEM BACK ON
JMP I USRINT /DISMISS