DIAL LAP6-DIAL TO PS/8 SOURCE FILE CONVERTER MARIO DENOBILI, POLY QUESTION SOCIETY THE PROGRAM, DIAL, WHICH RUNS UNDER PS/8 (OR OS/8) ON A PDP-12 WITH AT LEAST 8K IS USED TO CONVERT ASCII SOURCE FILES FROM A LINCTAPE WITH THE LAP6-DIAL OR DIAL-MS MONITOR SYSTEM TO A PS/8 SOURCE FILE. THE LATEST VERSION OF DIAL IS VERSION 15 AND IS THEREFORE KNOWN AS DIAL15. THE SOURCE IS CALLED DIAL15.PA AND THE BINARY IS DIAL15.BN. THE SAVE IMAGE OF DIAL15 CAN BE CREATED FROM THE BINARY BY THE COMMANDS: .R ABSLDR *DIAL15.BN$ .SAVE SYS DIAL15 16000-17577;17400=6003 TO CALL DIAL FROM A PS/8 (OR OS/8) SYSTEM DEVICE ON WHICH IT RESIDES, THE USER TYPES .R DIAL15 IN RESPONSE TO THE DOT PRINTED BY THE KEYBOARD MONITOR. WHEN DIAL BEGINS EXECUTION, IT CALLS THE COMMAND DECODER WHICH PRINTS A STAR. THE USER THEN SPECIFIES ONE OUTPUT FILE AND FROM 1 TO 5 INPUT FILES. THE ONLY LEGAL DEVICES WHICH CAN CONTAIN THE INPUT FILES ARE PDP-12 LINCTAPE DRIVES. THE USER'S PS/8 OR OS/8 SYSTEM DEVICE MUST HAVE LINCTAPE HANDLERS ALTHOUGH THIS PROGRAM WILL NOT USE THEM. SPECIFYING ANY INPUT DEVICE OTHER THAN A LINCTAPE WILL CAUSE AN ERROR MESSAGE TO BE GENERATED. ANY OUTPUT DEVICE AVAILABLE TO THE PS/8 SYSTEM IS LEGAL FOR OUTPUT. THE PROGRAM, DIAL, WILL READ IN THE LAP6-DIAL FILES SPECIFIED AS INPUT, CONCATENATE THEM TOGETHER IF MORE THAN ONE WAS SPECIFIED, PUT IT INTO PS/8 FORMAT, AND STORE IT ON THE OUTPUT FILE OR DEVICE SPECIFIED. DIAL THEN RETURNS TO THE USER FOR MORE INPUT BY TYPING A STAR AGAIN AND WAITING FOR MORE COMMANDS. AT THIS POINT, THE USER CAN CONVERT MORE FILES OR TYPE CTRL/C TO RETURN TO THE KEYBOARD MONITOR. SINCE LAP6-DIAL FILENAMES CAN BE UP TO EIGHT CHARACTERS LONG, THEY ARE REFERENCED BY USING THE PS/8 FILENAME AND POSSIBLY ALSO THE PS/8 FILENAME EXTENSION. THUS, TO REFERENCE THE LAP6-DIAL FILE CALLED MILDRED ON LINCTAPE DRIVE 3, THE USER SPECIFIES LTA3:MILDRE.D TO THE COMMAND DECODER. THE PERIOD BEFORE THE FILENAME EXTENSION (IF ONE IS GIVEN) IS IGNORED. IF ONLY A DEVICE NAME BUT NO FILENAME IS SPECIFIED, THE PROGRAM WILL TAKE THE FOUR DIGIT OCTAL PARAMETER GIVEN TO THE COMMAND DECODER (IN THE FORM =NNNN) AS THE STARTING BLOCK NUMBER FOR THE LAP6-DIAL FILE. THUS LTA2:=234 REFERS TO THE FILE ON LINCTAPE DRIVE 2 WHICH BEGINS AT PHYSICAL LINCTAPE BLOCK 234 (OCTAL). THIS STARTING BLOCK NUMBER CAN BE OBTAINED IN ADVANCE USING THE PX COMMAND FROM THE LAP6-DIAL MONITOR SYSTEM. IN SOME CASES, IT IS NECESSARY TO REFER TO THE INPUT FILE BY ITS STARTING BLOCK NUMBER RATHER THAN BY ITS NAME BECAUSE IT MIGHT HAVE A NAME WHICH IS NOT A LEGAL FILENAME FOR THE PS/8 COMMAND DECODER, SUCH AS A FILE CALLED ME$YOU-2. THE I/O SPECIFICATION LINE TO THE COMMAND DECODER CAN SPECIFY THE OPTION /N. THIS WILL CAUSE A NEW CATALOG TO BE READ IN FOR THE FIRST INPUT DEVICE. DIAL NORMALLY KEEPS THE CATALOG (INDEX) IN CORE AND ONLY REREADS IT IF A NEW TAPE UNIT IS SPECIFIED OR IF IT CAN'T FIND THE FILENAME IN THE CATALOG ALREADY IN CORE. THIS OPTION IS ONLY NECESSARY IF THE FILE BEING REFERENCED ON THE NEW TAPE HAD THE SAME NAME AS A FILE ON THE PREVIOUS TAPE ON THAT DRIVE. ERROR MESSAGES FILE OPEN ERROR INPUT DEVICE NOT LINCTAPE OUTPUT WRITE ERROR FILE CLOSE FAILED XXXX NOT FOUND CPU IS NOT A PDP-12! NO OUTPUT DEVICE SPECIFIED OUT DEV NON-EXISTENT *INPUT READ ERROR *OUTPUT DEVICE FULL *INPUT TAPE BAD FORMAT * DENOTES ERROR CHECKING FEATURES THAT ARE NOT YET IMPLEMENTED. NOTE: SOME FEATURES WERE PLANNED FOR THIS PROGRAM BUT WERE NOT IMPLEMENTED AS OF JUNE 18, 1972. SINCE THESE WILL PROBABLY NOT GET IMPLEMENTED IN THE NEAR FUTURE, IT WAS FELT THAT THE PROGRAM AS IS SHOULD BE SUBMITTED TO DECUS SO THAT USERS CAN BENEFIT FROM WHAT IS ALREADY WRITTEN. TWO OPTIONS WHICH ARE PLANED ARE THE /L AND THE /B SWITCH. THE /L SWITCH WOULD CAUSE THE TAPE'S DIRECTORY TO BE CONVERTED TO A PS/8 FILE; AND THE /B SWITCH WOULD ALLOW BINARY FILES TO BE CONVERTED. SOME KNOWN BUGS IN DIAL15 ARE: 1. IF THE SPECIFIED FILE IS NOT FOUND, THE MESSAGE XXXX NOT FOUND IS PRINTED BUT XXXX IS GIBBERISH INSTEAD OF THE FILE NAME. 2. IF THE INPUT TAPE HAS THE WRONG FORMAT (I.E. NOT 400 WORDS/BLOCK), NO ERROR MESSAGE IS GIVEN. 3. THE PROGRAM DOES NOT HANDLE CORRECTLY ERRORS ON INPUT OR OUTPUT DEVICE FULL ERRORS. 4. THE PROGRAM DOES NOT GIVE AN ERROR MESSAGE IF NO INPUT FILES ARE SPECIFIED. ) IN CORE AND ONLY REREADS IT IF A NEW TAPE UNIT IS SPECIFIED OR IF IT CAN'T FIND THE FILENAME IN THE CATALOG ALREADY IN CORE. THIS OPTION IS ONLY NECESSARY