.TITLE VIRABS - ROUTINE TO CONVERT VIRT # TO ABS INTEGER .IDENT 'VITA00' .PSECT VIRABS ; KEN DEMERS ; UTRC ; NOVEMBER 1979 ; THIS ROUTINE CONVERTS A F.P. VIRTUAL NUMBER ; TO A ABSOLUTE INTEGER SCREEN COORDINATE. THE ; CONVERSION IS DONE USING THE COORDINATE SYSTEM ; (WINDOW) ESTABLISHED BY GRID ; EDIT HISTORY ; 5-MAY-80 ++01 RESULT IS ROUNDED ; ON ENTRY: ; AC0 = F.P. OF ABSOLUTE INTEGER MAX ; AC1 = F.P. OF MAX RANGE ; R0 = A(VIRTUAL F.P. # TO BE CONVERTED) ; INTERNAL GLOBALS .GLOBL V$IRABS ; ASSIGNMENTS AC0 = %0 ;FPP ACCUMULATOR 0 AC1 = %1 AC2 = %2 AC3 = %3 AC4 = %4 V$IRABS: CALL S$AVARG ;SAVE REGS STF AC0,AC3 ;SAVE AC0 STF AC1,AC4 ;SAVE AC1 MULF (R0),AC3 ;VIRT # * MAX OF AXIS TSTF AC4 ;TST RANGE CFCC ;GET COND CODES BGE VIR10 ;RANGE WAS POS NEGF AC4 ;MAKE IT POS VIR10: DIVF AC4,AC3 ;GET ABS # ADDF HALF,AC3 ;++01 ROUND THE # UP CALL R$STARG ;RESTORE REGS STCFI AC3,R0 ;ON EXIT R0= INT OF RESULT RETURN HALF: .FLT2 .5 ;CONSTANT USED TO ROUND UP .END