ALWAYS 30AUG2 TYPE .MCALL DIR$,CALLR .PSECT ;************************************************************************ ;* * ;* MODULE: TYPE * ;* * ;* FUNCTION: INDICATE ABSOLUTE/RELOCATABLE * ;* * ;* INPUT PARAMETERS: * ;* * ;* R0 POINTS TO THE COMMAND LINE IN PROCESS * ;* * ;* OUTPUT PARAMETERS: * ;* * ;* R0 POINTS JUST BEYOND COMMAND LINE * ;* * ;* DESTROYS: * ;* R1 * ;* * ;* AUTHOR: KEVIN ANGLEY * ;* * ;* DATE: 30-AUG-82 * ;* * ;************************************************************************ TYPE:: GETKEY ABSOLUTE ; TRY FOR KEYWORD "ABSOLUTE" BNE 10$ ; NE: NOT "ABSOLUTE" GETKEY LOAD ; GET KEYWORDS "LOAD ADDRESS" BNE 30$ ; NE: NOT "LOAD" GETKEY ADDRESS BNE 30$ ; NE: NOT "ADDRESS" CALL GETHXL ; GET HEX DIGIT ABSOULTE LOAD ADDRESS BCS 250$ ; CS: CONVERSION ERROR - TAKE ERROR EXIT MOV R1,.KABAD+2 ; SET UP ABSOLUTE LOAD ADDRESS MOV R2,.KABAD ; (LONG WORD, BUT HIGH WORD - LOW WORD) SETNZ TYPEAR ; INDICATE ABSOLUTE MOVB #K$ABS,.KTYPE ; INDICATE TYPE IN ENTRY HEADER BR 255$ ; TAKE SUCCESS EXIT 10$: GETKEY RELOCATABLE ; TRY FOR KEYWORD "RELOCATABLE" BNE 30$ ; NE: NOT "RELOCATABLE" CLRL .KABAD ; CLEAR LOAD ADDRESS (LONG WORD) CLR TYPEAR ; INDICATE RELOCATABLE TYPE MOVB #K$RELO,.KTYPE ; INDICATE TYPE IN ENTRY HEADER BR 255$ ; TAKE SUCCESS EXIT 30$: OUTPUT MSK ; "MISSING KEYWORD" ; FALL THRU TO ERROR EXIT 250$: 255$: ; NORMAL EXIT CALLR EXTRA ; PURGE COMMAND LINE OF SUPERFLUOUS JUNK ; AND RETURN FROM THERE .PAGE .SBTTL TYPE DATA AREAS TYPEAR:: .BLKW ; 0 --> RELOCATABLE MODULE ; <> 0 -> ABSOLUTE MODULE .END