TO: PDP-11 SOFTWARE DEVELOPMENT GROUP FROM: JIM MURPHY PDP-11 PRODUCT EVALUATION GROUP DATE: FEB. 22,1972 PDP-11 DIAGNOSTICS SOFTWARE PREPARATION SYSTEM 40 OPERATORS PDP-11 ENGINEERING CC: MYRON MYERS CRAIG FLETCHER BOB BOWERING BOB ANUNDSON SUBJECT: GUIDE TO USE OF PDP-11 DEVELOPMENT TOOLS ON PDP-10 THIS DOCUMENT ASSUMES A WORKING KNOWLEDGE OF THE PDP-10 OPERATING SYSTEM AND PROCEDURES. THIS DOCUMENT WILL ALSO BE AVAILABLE AT PDP-10 SYSTEM 40 AS FILES MACX11.DOC AND LNKX11.DOC. 1. TRANSFERRING PDP-11 ASSEMBLY LANGUAGE SOURCES TO THE PDP-10 1.1 SOURCES ON PDP-11 DECTAPE 1. LABEL YOUR DECTAPE WITH YOUR SYSTEM 40 PROJECT PROGRAMMER NUMBER AND A UNIQUE (NO CONFLICT WITH YOUR PDP-10 FORMATTED DECTAPES) IDENTIFIER. E.G. [140,1122] PDP-11 #1 2. PLACE DECTAPE IN IN-BOX IN 3-5 TELETYPE ROOM. ALLOW APPROXI- MATELY 1/2 HOUR FOR TRANSFER TO SYSTEM 40. 3. ASSIGN A DECTAPE DRIVE .AS DTA - DTA0 ASSIGNED -------------- 4. REQUEST YOUR PDP-11 DECTAPE TO BE MOUNTED .PLEASE MOUNT [140,1122]PDP-11#1 ON DTA0 [WRITE ENAB] - WHEN YOU ARE THROUGH CONVERSING WITH THE OPERATOR, TYPE CONTROL/C (^C) TO RETURN TO MONITOR MODE. 5. TRANSFER FILES TO DISK VIA FILEX .R FILEX - *DSK:_DTA0:*.PAL/V - TO TRANSFER ALL FILES FROM DECTAPE TO DISK YOU WOULD USE A FEATURE OF FILEX CALLED "QUICK MODE" WHICH MAKES ONLY ONE PASS DOWN THE TAPE CREATING AN IMAGE ON DISK AND THEN SORTING THE DISK FILE. FOR EXAMPLE *DSK:_DTA0:*.*/V/Q - TRANSFERS ALL FILES IN QUICK MODE. 1.2 SOURCES ON PAPER TAPE 1. LABEL TAPE E.G. PROG.PAL[140,1122] 2. PLACE TAPE IN 3-5 IN-BOX WITH OPERATOR REQUEST TO PIP TAPE TO YOUR DISK AREA. E.G. *PROG.PAL[140,1122]_PR: - 2. ASSEMBLIES ON PDP-10 WITH MACX11 WHILE MACX-11 IS DESIGNED TO BE LANGUAGE COMPATIBLE WITH THE PAL-11R MANUAL, ITS PDP-10 OPERATING ENVIRONMENT NECESSITATES A PDP-10 STYLE OPERATING PROCEDURE(E.G. THE INDIRECT COMMAND FACILITY IS SUPPORTED). THE ASSEMBLER MAKES TWO PASSES OVER THE SOURCE, OUTPUTTING THE BINARY AND LISTING FILES DURING PASS TWO AND APPENDING A SYMBOL TABLE TO THE LISTING FILE. PDP-10 MEMORY IS DYNAMICALLY ALLOCATED FOR LARGE SYMBOL TABLES AND MACRO STORAGE. 2.1 LOADING MACX-11 MACX-11 IS LOADED VIA THE PDP-10 MONITOR. .R MACX11 - 2.2 INITIAL DIALOGUE WHEN THE ASSEMBLER IS READY TO ACCEPT THE USER'S COMMAND STRING, IT OUTPUTS AN ASTERISK. THE USER MUST NOW TYPE HIS COMMAND STRING ON THE SAME LINE. THE GENERAL FORM OF THE COMMAND STRING IS: BINARY OUTPUT, LISTING OUTPUT_SOURCE INPUT(S) EACH INPUT/OUTPUT SPECIFICATION CONSISTS OF THE GROUP: DEV:FILNAM.EXT[PROJ.,PROG.]/SWITCH 1. DEV IS: DSK FOR DISK PTP FOR HIGH SPEED PUNCH DTAN FOR DECTAPE N MTAN FOR MAG TAPE, UNIT N TTY FOR THE USER'S TELETYPE IF NOT SPECIFIED, THE DEVICE IS ASSUMED TO BE THE DISK. 2. FILNAM IS THE FILE NAME OF THE APPROPRIATE FILE. 3. EXT IS THE FILE NAME EXTENSION FOR THAT FILE. IF IT IS NOT SPECIFIED, THE ASSUMPTIONS ARE: BINARY STRING: .OBJ (RELOCATABLE) OR .BIN (ABSOLUTE) LISTING STRING: .LST OR .CRF IF CREF INTERMEDIATE (/C SWITCH) SOURCE STRING: .PAL OR .P11 4. [PROJ.,PROG.] IS THE PROJECT-PROGRAMMER NUMBER ASSIGNED TO THE DISK AREA TO BE USED, IF OTHER THAN THE USER'S PROJECT- PROGRAMMER NUMBER. 5. ASSEMBLY TIME OPTIONS ARE SELECTED BY TYPING A SLASH, FOL- LOWED BY ONE OF THE FOLLOWING CHARACTERS, IN THE COMMAND STRING. /A - ASSEMBLE IN PAL-11A (ABSOLUTE) MODE. /C - PRODUCE A CREF (CROSS REFERENCE) LISTING. MUST BE USED IN THE LISTING FIELD. NO DEVICE, FILE NAME OR EXTENSION IS REQUIRED AS THE DEFAULTS ARE COMPATIBLE WITH THE CREF PROGRAM. AT THE COMPLETION OF THE ASSEMBLY, THE USER CAN ACQUIRE THE CROSS REFERENCE LISTING BY THE FOLLOWING PROCEDURES: 1. TYPE ^C AND WAIT FOR ".". 2. TYPE R CREF TO LOAD THE CROSS REFERENCE PROGRAM. 3. CREF RESPONDS WITH *. - 4. TYPE THE RETURN KEY IF LISTING IS TO GO ON THE LINE PRINTER OR TYPE TTY:_ AND RETURN KEY IF IT IS TO GO TO THE TELETYPE. IF A CROSS REFERENCE LISTING FILE NAME WAS SPECIFIED IN THE AS- SEMBLER'S COMMAND STRING E.G. *BINARY,LIST/C_INPUT - THE FILE LIST.CRF WILL BE OUTPUT TO DISK FOR SUBSEQUENT PROCESSING BY CREF. WHEN CREF RESPONDS WITH *, TYPE THE FOLLOWING COMMAND - STRING *LIST_LIST - A FILE LIST.LST WILL BE OUTPUT TO DISK. THIS FILE CONTAINS THE SEQUENCED OCTAL/SYMBOLIC ASSEMBLY LISTING AND THE TABLE OF CROSS REFERENCES. /E - LIST THE ACTUAL BINARY IMAGE ON THE LISTING. USEFUL ONLY IN DEBUGGING THE ASSEMBLER OR LOADER. MUST BE IN THE BINARY FIELD. /M - SUPPRESS THE SYMBOL TABLE LISTING. /N - SUPPRESS ERROR MESSAGES TO THE TELETYPE. /R - REDUCE SOURCE LANGUAGE TO PAL-11R COMPATIBLE LEVEL. USED TO ELIMINATE MACROS AND REPEATS. MUST BE IN THE LISTING FIELD. CAUSES THE LISTING FILE TO BE REPLACED BY THE NEW SOURCE FILE WHICH CAN BE AS- SEMBLED ON THE TARGET MACHINE. NO SWITCHES ARE RE- QUIRED WHEN OUTPUTTING TO A TRANSFERRABLE MEDIUM. /T - TOGGLE LISTING MODE. IF LISTING IS TO TTY, FORMAT AS FOR LPT AND VICE VERSA. MUST BE IN LISTING FIELD. /W - REWIND MAG TAPE. OPERATES ON FIELD IN WHICH IT IS FOUND. MUST BE USED IF A MAG TAPE IS USED AS THE SOURCE INPUT DEVICE, AND THE FILE MUST BE THE FIRST FILE ON THE TAPE. /P - GENERATE PACKED MODE BINARY OUTPUT (SEE SECTION 2.6), SWITCH MUST BE IN BINARY OUTPUT FIELD. /I - GENERATE IMAGE (UNPACKED) MODE BINARY OUTPUT (SEE SECTION 2,6). SWITCH MUST BE IN BINARY OUTPUT FIELD. COMMAND LANGUAGE EXAMPLES: *DSK:OBJECT,LIST_MTA0:/W - ASSEMBLE FROM MAG TAPE UNIT 0, BINARY TO DISK AS FILE OBJECT.OBJ AND LISTING TO DISK AS FILE LIST.LST. *DSK:BETA.OBJ,LPT:/N_DSK:BETA.PAL - ASSEMBLE FILE BETA.PAL FROM THE DISK. BINARY TO DISK FILE BETA.OBJ, LISTING ON THE LINE PRINTER. SUPPRESS ERROR MESSAGES TO THE CONSOLE. *BETA,LPT:/N_BETA - SAME AS ABOVE *,PTP:/R_DTA3:ALPHA - ASSEMBLE FILE ALPHA.PAL (OR ALPHA.P11 OR ALPHA) FROM DECTAPE. OUTPUT A PAPER TAPE CONTAINING SOURCE LANGUAGE WHICH IS AC- CEPTABLE TO PAL-11R. 2.3 ASSEMBLY DIALOGUE WHEN THE ASSEMBLER HAS COMPLETED A RUN, IT WILL PRINT THE NUMBER OF ERRORS DETECTED, THE AMOUNT OF CORE USED AND STATISTICAL INFORMATION ON USAGE OF PDP-11/45 INSTRUCTION MNEMONICS. THE ASSEMBLER THEN TYPES AN * AND IF ANOTHER PROGRAM IS TO BE AS- SEMBLED, THE NEW COMMAND STRING CAN BE TYPED AT THIS POINT. 2.4 ASSEMBLY LISTING THE MACX-11 ASSEMBLER PRODUCES A SIDE-BY-SIDE ASSEMBLY LISTING OF SYMBOLIC SOURCE STATEMENTS, THEIR OCTAL EQUIVALENTS, ASSIGNED ADDRESSES, AND ERROR CODES. TELETYPE LISTING MODE COMPRESSES THE LISTING FORMAT TO ACCOMODATE THE REDUCED NUMBER OF COLUMNS AVAIL- ABLE. TELETYPE LISTING MODE IS SELECTED BY SPECIFYING THE LISTING DEVICE AS TTY: WITH NO /T SWITCH OR ANY OTHER DEVICE WITH A /T SWITCH. ALL OTHER COMBINATIONS CAUSE "LINE PRINTER" FORMAT. 2.5 OBJECT MODULE OUTPUT MACX-11 IS CAPABLE OF PRODUCING EITHER ABSOLUTE BINARY OR A RELOCATABLE OBJECT MODULE, DEPENDING UPON THE ASSEMBLY MODE. THE DEFAULT MODE IS RELOCATABLE BUT ABSOLUTE MODE CAN BE SELECTED EITHER BY THE /A SWITCH IN THE COMMAND STRING OR AN .ABS DIRECTIVE IN THE SOURCE. 2.6 PACKED VS. UNPACKED BINARY FORMATS (.OBJ, .BIN) PALX-11 AND MACX-11 HAVE ALWAYS OUTPUT BINARY INFORMATION IN IMAGE FORMAT, STORING ONE 8-BIT BYTE RIGHT-JUSTIFIED PER 36-BIT WORD. THIS IS EXTREMELY WASTEFUL OF STORAGE BUT WAS NECESSITATED BY THE FACT THAT PAPER TAPE WAS THE ONLY RELIABLE COMMUNICATION MEDIUM BETWEEN THE PDP-11 AND THE PDP-10, AND PIP/I DOES THE RIGHT THINGS. FILEX HAS CHANGED ALL THAT. PAPER TAPE HAS BECOME A SECONDARY MEDIUM AND DECTAPE THE PRIMARY. IN ADDITION, FILEX PACKS THE INFORMATION INTO FOUR BYTES PER WORD, RIGHT JUSTIFYING THE BYTES ON BITS 17, 9, 35, AND 27 OF THE PDP-10 WORD. THIS FORMAT IS NOT ARBITRARY BUT THE RESULT OF DOING A PDP-10 HARDWARE READ OF A PDP-11 TAPE. THE PACKED FORMAT WILL NOW BE GENERATED IF EITHER: 1. THE /P SWITCH IS ENCOUNTERED IN THE BINARY OUTPUT FIELD SPECIFICATION. 2. OR NO SWITCH IS ENCOUNTERED. UNPACKED FORMAT WILL BE GENERATED IF THE /I SWITCH IS ENCOUNTERED IN THE BINARY OUTPUT FIELD SPECIFICATION. 3. LINKS ON PDP-10 WITH LNKX11 LNKX11 IS DESIGNED TO BE OPERATED SIMILARLY TO LINK-11 BUT WITHIN THE PDP-10 ENVIRONMENT (E.G. THE INDIRECT COMMAND FACILITY IS AVAILABLE). 3.1 LOADING LNKX-11 LNKX-11 IS LOADED VIA THE PDP-10 MONITOR. .R LNKX11 - 3.2 INITIAL DIALOGUE WHEN THE LINKER IS READY TO ACCEPT THE USER'S COMMAND STRING IT OUTPUTS AN ASTERISK. THE USER MUST NOW TYPE HIS COMMAND STRING ON THE SAME LINE. THE GENERAL FORM OF THE COMMAND STRING IS: LOAD MODULE OUTPUT,LOAD MAP OUTPUT_OBJECT MODULE INPUT(S) OPERATING INSTRUCTIONS ARE AS SPECIFIED IN THE LINK-11 MANUAL WITH THE FOLLOWING EXCEPTIONS: LEFT ANGLE BRACKET, LEFT ARROW, AND THE EQUALS SIGN ARE ALL ACCEPTABLE AS THE SEPARATOR BETWEEN THE OUTPUT AND INPUT FIELDS. SWITCHES: /T, /B, /U, /OD, /CC, /TR, AND /E OPERATE AS SPECIFIED. /L IS ACCEPTABLE BUT IGNORED. LIBRARY SEARCH MODE IS ENTERED WHEN THE FIRST BLOCK IS NUMBER 7. /TA IS NOT IMPLEMENTED. SWITCHES MAY STAND ALONE. I.E., A FIELD NEED NOT HAVE A FILE SPECIFIED. A /P SWITCH ENCOUNTERED CAUSES ALL NON-ASCII FILES ON THIS SIDE OF THE "_" TO BE TREATED AS PACKED. PACKED IS ALSO THE DEVAULT MODE FOR BOTH SIDES OF THE "_". A /I SWITCH ENCOUNTERED CAUSES ALL NON-ASCII FILES ON THIS SIDE OF THE "_" TO BE TREATED AS UNPACKED. THE UIC FIELD IS INTERPRETED AS THE PDP-10'S PROJECT-PRO- GRAMMER NUMBER. DEFAULT DEVICE IS DSK:. DEFAULT EXTENSIONS ARE .LDA, .MAP, AND .OBJ. 3.3 RESTARTING: TYPE START OR ANOTHER RUN COMMAND. 3.4 MEMORY DYNAMICALLY EXPANDS TO HANDLE LARGE SYMBOL TABLES. THE S223 ERROR MESSAGE (SYMBOL TABLE OVERFLOW) IS IMPLEMENTED BUT UNLIKELY TO OCCUR. 3.5 ADDITIONAL (TEMPORARY) ERROR MESSAGES S270 - NO LIBRARY END BLOCK (10) FOUND ON LIBRARY TAPE. S271 - PASS 2 OUT OF PHASE (SHOULD NEVER HAPPEN). S272 - GSD BLOCKS NOT TERMINATED BY GSDEND BLOCK (2). 3.6 MAP: THE LISTING FILE CONTAINS ALL TELETYPE PRINTOUT, AN EXTRA HEADER CONTAINING THE DATE AND TIME, AND A COPY OF THE COMMAND STRING IN ADDITION TO THE FORMAT SPECIFIED IN THE LINK-11 MANUAL. THIS IS FOR CONVENIENCE DURING THE CHECK-OUT PERIOD. 3.7 BINARY FILES DEFAULT MODE FOR BINARY FILES (.OBJ, .LDA) WILL BE PACKED MODE (FOUR BYTES PER PDP-10 WORD). THIS IS TO TAKE ADVANTAGE OF THE ADDED CAPABILITIES OF THE PDP-10 PAPER-TAPE SPOOLER. THE /P SWITCH WILL REMAIN (FOR AWHILE) BUT BE REDUNDANT. TO GET UNPACKED MODE (FOR DIRECT PUNCHING TO PAPER TAPE AND INPUT TO MIMIC), USE THE /I SWITCH. THE DEFAULT OUTPUT FROM MACX11 IS COMPATIBLE WITH THE DEFAULT INPUT TO LNKX11. THE DEFAULT OUTPUT FROM LNKX11 IS COMPATIBLE WITH FILEX AND THE ADDED CAPABILITY OF THE PAPER TAPE PUNCH SPOOLER. HOWEVER, INPUT TO MIMIC MUST BE UNPACKED THEREFORE IT REQUIRES THE /I SWITCH IN THE LOAD MODULE FIELD DURING LINKING. 4. GETTING BINARY FILES (.OBJ, .BIN, .LDA) OFF PDP-10 4.1 IF BINARY FILE IS IN PACKED MODE (THE DEFAULT MODE OF MACX11 AND LNKX11) 4.1.1 FILEX TO PDP-11 DECTAPE DECTAPE MUST BE WRITE ENABLED. THIS SHOULD BE REQUESTED AT MOUNTING TIME. EXAMPLES: *DTA0:/V_*.OBJ - *DTA0:/V_PROG.LDA - *DTA0:/V_PROG.BIN - 4.1.2 PAPER TAPE PUNCH SPOOLER EXAMPLES: .Q PTP:=PROG.OBJ/FILE:ELEVEN .Q PTP:=PROG.LDA/FILE:ELEVEN .Q PTP:=PROG.BIN/FILE:ELEVEN 4.2 IF BINARY FILE IS IN IMAGE (UNPACKED) MODE 4.2.1 FILEX TO PDP-11 DECTAPE EXAMPLES: *DTA0:/V_PROG.OBJ/I - *DTA0:/V_PROG.LDA/I - *DTA0:/V_PROG.BIN/I - 4.2.2 PAPER TAPE PUNCH SPOOLER EXAMPLES: .Q PTP:=PROG.OBJ - .Q PTP:=PROG.LDA - .Q PTP:=PROG.BIN - 4.3 PUNCHED PAPER TAPES WILL BE RETURNED TO YOUR PROJECT SLOT (E.G. 140) AT 3-5. YOU CAN REQUEST THE RETURN OF DECTAPES VIA THE PLEASE COMMAND. E.G. .PLEASE RETURN [140,1122]PDP-11#1 TO 3-5 - WHEN YOU ARE THROUGH CONVERSING WITH THE OPERATOR, TYPE CONTROL/C (^C) TO RETURN TO MONITOR MODE. 4.4 PDP-11 DECTAPES CAN BE INITIALIZED VIA FILEX EXAMPLES: *DTA0:/Z/V_ - *DTA0:[200,200]/Z/V_ - 4.5 PDP-11 DECTAPE DIRECTORIES CAN BE LISTED VIA FILEX EXAMPLE: *_DTA0:/L/V - 5. MIMIC AND LOAD MODULES (.LDA) LOAD MODULES TO BE PROCESSED BY MIMIC (DOS SIMULATOR ON THE PDP-10) MUST BE IN IMAGE MODE. THEREFORE, AT LINK TIME THE "I" SWITCH MUST BE SPECIFIED IN THE LOAD MODULE DATA SET FIELD. E.G. .R LNKX11 - *LDMOD/I,MAP_OBJMOD -