.TITLE ORCAM .IDENT /V01.1/ .MCALL .EXIT,.PRINT ; ; ORCAM ; ; CONVERT OBJECT CODE TO MACRO-11 ; ; THIS VERSION BY: D J DUNSTAN 25-OCT-78 ; (THIS IS THE ORIGINAL AND BEST ORCAM) ; ; ISSUES PROMPT AND RECEIVES COMMAND LINE OF FORM ; ORC>DK1:OUTFILE[.MAC]=DK1:INFILE[.OBJ] ; ; PASS 1 PROCESSES GSD RECORDS ; READS ENTRIES FROM .OBJ INTO OBJLIN ; WRITES INTERMEDIATE CODE TO .TMP FROM MACPS ; PASS 2 PROCESSES TXT/RLD RECORDS ; SAME PROCEDURE AS FOR PASS 1 ; PASS 3 PUTS IN THE LABELS ; READS ENTRIES FROM .TMP INTO MACPS ; WRITES MACRO CODE TO .MAC FROM MACLIN ; ; THE FOLLOWING LUNS ARE USED: ; 1 - COMMAND INTERFACE (TI:) ; 2 - ERROR MESSAGES (TI:) ; 3 - OBJECT FILE/MACRO FILE (SY:) ; (NOT OPEN SIMULTANEOUSLY) ; 4 - SCRATCH FILE (SY:) ; ; CONDITIONAL ASSEMBLY VARIABLES: ; O$$FLP DEFINED - SUPPORT FOR TREATMENT OF GLOBAL NAME "$$$$$X==." ; (ANY RAD50 X) AS INDICATOR TO CHANGE PSECT TYPE ; FROM I TO D OR VICE VERSA ; (NEED O$$FLP IN ORCSUB AS WELL) ; ; ; ORCAM TOP LEVEL ; ORC: JSR PC,INIT$ ; INITIALISATION JSR PC,RD$CSI ; GET COMMAND LINE JSR PC,OP$SCR ; OPEN SCRATCH FILE BCS ORC ; ERROR - RESTART ORC ; 10$: JSR PC,OP$OBJ ; OPEN INPUT FILE BCC 25$ 20$: JSR PC,CL$SCR ; ERROR - DELETE SCRATCH FILE BR ORC ; AND RESTART ORC ; 25$: JSR PC,ORCP1 ; PASS 1 - PROCESS GSD RECORDS BCC 40$ 30$: JSR PC,CL$OBJ ; ERROR - CLOSE OBJECT FILE BR 20$ ; AND SCRATCH FILE 40$: JSR PC,CL$OBJ ; CLOSE OBJECT FILE JSR PC,OP$OB2 ; AND OPEN FOR PASS 2 ; JSR PC,ORCP2 ; PASS 2 - PROCESS TEXT BCS 30$ ; ERROR - CLOSE OBJECT AND SCRATCH FILES JSR PC,CL$OBJ ; CLOSE INPUT FILE JSR PC,CLO$CR ; CLOSE SCRATCH AND REOPEN JSR PC,OP$MAC ; OPEN MACRO FILE BCS 20$ ; ERROR - DELETE SCRATCH FILE ; JSR PC,ORCP3 ; PASS 3 - INSERT LABELS JSR PC,CL$MAC JSR PC,CL$SCR ; BR ORC .EXIT ; ; ; PROCEDURE TO OUTPUT ERROR MESSAGE TO LUN 2 ; (CALLED INTERNALLY BY I/O ROUTINES) ; ; .MCALL QIOW$,DIR$ ; MOCALL:: MOV MESNO,R0 .PRINT SEC RTS PC ; .PSECT ORCDAT,D .EVEN MESNO:: .WORD 0 ; .END ORC