.PSECT ALWAYS 30APR2 OFFSET ;30APR2 .MCALL DIR$ ;**-1 ;************************************************************************ ;* * ;* MODULE: OFFSET - ASSIGN A VALUE TO OFFST * ;* * ;* AUTHOR: KEVIN ANGLEY * ;* * ;* DATE: 02-SEP-80 * ;* * ;* INPUT PARAMETERS: * ;* * ;* R0 POINTS TO THE COMMAND LINE IN PROCESS * ;* * ;* OUTPUT PARAMETERS: * ;* * ;* R0 POINTS JUST BEYOND THE LAST CHARACTER OF THE OFFSET * ;* * ;* DESTROYS: R1 * ;* * ;* IF NO VALUE IS SPECIFIED, THE OFFSET VALUE IS DISPLAYED. * ;************************************************************************ ; ;30APR2 ; 30APR2 KEVIN ANGLEY ADDED RESTRICTION THAT OFFSET MUST BE EVEN ;30APR2 ; ;30APR2 OFFSET:: TSTB (R0) ; VALUE SPECIFIED? BEQ 10$ ; NO - JUST OUTPUT THE VALUE CALL GETHX4 ; GET A 4-DIGIT HEX VALUE FROM COMMAND LINE BCS 250$ ; CS: ERROR ; ;30APR2 BIT #1,R1 ; IS OFFSET SPECIFIED ODD? ;30APR2 BEQ 5$ ; EQ: NO ;30APR2 OUTPUT EVO ; SHOW ERROR MESSAGE - OFFSET MUST BE EVEN ;30APR2 BR 250$ ; TAKE ERROR EXIT ;30APR2 5$: ;30APR2 ;30APR2 MOV R1,OFFST ; ESTABLISH NEW OFFSET VALUE 10$: PUSH R0 ; SAVE COMMAND STRING POINTER MOV OFFST,R1 ; PREPARE FOR CONVERSION MOV #OFF+OFFLEN-4,R0 ; PUT INTO MESSAGE CALL PUTHX4 ; CONVERT TO HEX - PUT IN MESSAGE OUTPUT OFF POP R0 ; RESTORE COMMAND STRING POINTER BR 250$ ; EXIT 250$: CALL$R EXTRA ; PURGE COMMAND LINE OF SUPERFLUOUS JUNK ; AND RETURN FROM THERE .END