'CORAL' CG2FR 'COMMENT' 1255 17-SEP-81 V3.0; 'LIBRARY' ":F1:COMCG.HDR" 'LIBRARY' ":F1:CODGEN.DEF" 'LIBRARY' ":F1:MIDCOD.DEF" 'LIBRARY' ":F1:MC8080.DEF" 'DEFINE' VI "'VALUE''INTEGER'"; 'EXTERNAL'('INTEGER' 'PROCEDURE' CGFLN (VI) ); 'EXTERNAL'( 'PROCEDURE' RCCFLT (VI) ); 'DELETE' VI; 'BEGIN' 'PROCEDURE' RCCFLT('VALUE' 'INTEGER' PARM); 'BEGIN' 'COMMENT' CONVERT 8087 LONG REAL FORMAT TO RCC FORMAT; 'COMMENT' USERS MAY LINK OWN VERSION FOR OTHER 4-BYTE FLOATING FORMAT AND USE APPROPRIATE SOFTWARE FLOATING POINT ROUTINES WITH COMPILED CODE - HENCE THIS IS EXTERNAL RATHER THAN COMMON; 'COMMENT' INTEL FLOATING FORMAT IS NOW BUILT IN TO THE COMPILER AND OBTAINED BY OPTION G. THE EXTERNAL ROUTINE CGFLN CAN BE USED FROM A USER-WRITTEN VERSION OF RCCFLT IF DESIRED. 'COMMENT' PARM IS THE ADDRESS OF AN 8087 FORMAT CONSTANT WITH THE LS BYTE AT LOWEST ADDRESS, SHORTENED AND ERFORMATTED CONSTANT IS STORED WITH LS BYTE FIRST AND OVERWRITING MOST SIGNIFICANT 4 BYTES OF ORIGINAL CONSTANT; 'INTEGER' MS; CGFLN(PARM); (8087 TO INTEL 4 BYTE FORMAT) MS:=[PARM+6]; [PARM+6]:=(MS 'MASK' 'HEX'(007F))+ 'COMMENT' MANTISSA BITS; (MS 'MASK' 'HEX'(8000)) 'COMMENT' SIGN BIT; 'SRL' 8 + 'COMMENT' IN NEW POSITION; ((MS+'HEX'(0100)) 'MASK' 'HEX'(7F80)) 'SLL' 1; 'COMMENT' ADJUSTED AND REALIGNED EXPONENT; 'END'; 'END' 'FINISH'