ALWAYS 26MAR4 USE .MCALL CALLR,DIR$ .PSECT ;************************************************************************ ;* * ;* MODULE: USE * ;* * ;* FUCTION: TO DETERMINE THE DOMAIN AND RANGE OF BYTES TO BE * ;* USED FOR A READ. * ;* * ;* INPUT PARAMETERS: * ;* * ;* R0 POINTS TO THE COMMAND LINE IN PROCESS * ;* * ;* OUTPUT PARAMETERS: * ;* * ;* R0 POINTS JUST BEYOND COMMAND LINE * ;* * ;* DESTROYS: R1,R2,R3 * ;* * ;* AUTHOR: SCOTT SMITH * ;* * ;* DATE: 07-FEB-84 * ;* * ;************************************************************************ USE:: CALL GETHX2 ;GET TWO HEX DIGITS BCS 250$ ; CS: TAKE ERROR EXIT TSTB R1 ;IS VALUE GT 0? BHI 5$ ; YES - CONTINUE PROCESSING OUTPUT BGO ; NO - OUTPUT "BIT GROUP OUT OF RANGE" BR 250$ ; AND TAKE ERROR EXIT 5$: MOVB R1,R2 ;STORE CONVERTED VALUE IN R2 GETKEY OF ;COLLECT "OF" KEYWORD BEQ 10$ ; EQ: YES - CONTINUE PROCESSING OUTPUT MSK ;OUTPUT "MISSING KEYWORD" BR 250$ ; AND TAKE ERROR EXIT 10$: CALL GETHX2 ;GET TWO MORE HEX DIGITS BCS 250$ ; CS: TAKE ERROR EXIT MOVB R1,R3 ;STORE RANGE VALUE IN R3 SUB R2,R3 ;REPLACE RANGE WITH DIFERENCE OF RAN & DOM BPL 15$ ;CONTINUE IF RANGE GE DOMAIN OUTPUT BGO ; ELSE ANNOUNCE "BIT GROUP OUT OF RANGE" BR 250$ ; AND TAKE THE ERROR EXIT 15$: GETKEY FOR ;COLLECT "FOR" KEYWORD BEQ 20$ ; EQ: YES - CONTINUE PROCESSING OUTPUT MSK ;OUTPUT "MISSING KEYWORD" BR 250$ ; AND TAKE ERROR EXIT 20$: GETKEY READ ;COLLECT "READ" KEYWORD BEQ 30$ ; EQ: YES - CONTINUE PROCESSING OUTPUT MSK ;OUTPUT "MISSING KEYWORD" BR 250$ ; AND TAKE ERROR EXIT 30$: MOVB R3,RDRAN ;STORE VALUE OF RANGE FOR READ, MOVB R2,RDDOM ; STORE VALUE OF DOMAIN FOR READ 250$: ;ERROR EXIT 255$: ;NORMAL EXIT CALLR EXTRA ;PURGE COMMAND LINE OF SUPERFOLUS JUNK ; AND RETURN .END