home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / bcpl / BCPL / b / fp2ops < prev    next >
Encoding:
Text File  |  1987-07-07  |  2.3 KB  |  106 lines

  1. MANIFEST {
  2.    // operand size for cpdt instructions
  3.    fcpdt.size = #x408000;
  4.    fcpdt.s = #x000000;
  5.    fcpdt.d = #x008000;
  6.    fcpdt.e = #x400000;
  7.    fcpdt.p = #x408000;
  8.  
  9.    // destination precision for cpdo
  10.    fcpdo.size = #x80080;
  11.    fcpdo.s = #x00000;
  12.    fcpdo.d = #x00080;
  13.    fcpdo.e = #x80000;
  14.  
  15.    // rounding mode for all but CPDT
  16.    fr.field = #x00;
  17.    fr.rton = #x00;   // round to nearest
  18.    fr.rtopi = #x20;  // round to +infinity
  19.    fr.rtomi = #x40;  // round to -infinity
  20.    fr.rtoz = #x60;   // round to zero
  21.  
  22.    // Type of 2nd operand for cpdo
  23.    ff.const = 8;
  24.  
  25.    // Direction for CPDT/CPRT operations
  26.    ff.toarm = #x100000; ff.fromarm = #x000000;
  27.  
  28.    // the floating point co-processor id
  29.    ff.cpno = #x100;
  30.  
  31.    ff.cpdt = #x0c000000;
  32.    ff.cpdo = #x0e000000;
  33.    ff.cprt = #x0e000010;
  34.  
  35.    // single precision floating point format
  36.    fps.sign = #x80000000;
  37.    fps.expt = #x7f800000;
  38.    fps.mantissa =   #x007fffff;
  39.    fps.impliedbit = #x00800000;
  40.    fps.exptshift = 23 }
  41.  
  42. MANIFEST { // Registers
  43.    fr.0 = 0;
  44.    fr.1 = 1;
  45.    fr.2 = 2;
  46.    fr.3 = 3;
  47.    fr.4 = 4;
  48.    fr.5 = 5;
  49.    fr.6 = 6;
  50.    fr.7 = 7 }
  51.  
  52. MANIFEST { // constant values
  53.    fc.0 = 0;
  54.    fc.1 = 1;
  55.    fc.2 = 2;
  56.    fc.3 = 3;
  57.    fc.4 = 4;
  58.    fc.5 = 5;
  59.    fc.half = 6;
  60.    fc.10 = 7 }
  61.  
  62. MANIFEST { // CPRT ops
  63.    ff.fixflt = #x000000
  64.    ff.fix = ff.fixflt+ff.toarm;
  65.    ff.flt = ff.fixflt+ff.fromarm;
  66.    ff.mfs = #x200000;
  67.    ff.rfs = ff.mfs+ff.toarm
  68.    ff.wfs = ff.mfs+ff.fromarm
  69.    ff.mfc = #x400000;
  70.    ff.rfc = ff.mfc+ff.toarm
  71.    ff.wfc = ff.mfc+ff.fromarm
  72.  
  73.    // CPDO ops (and compares)
  74.    ff.cmf   = #x800000+ff.toarm;
  75.    ff.cnf   = #xA00000+ff.toarm;
  76.    ff.cmfe  = #xC00000+ff.toarm;
  77.    ff.cnfe  = #xE00000+ff.toarm;
  78.    ff.adf   = #x000000;
  79.    ff.mlf   = #x100000;
  80.    ff.sbf   = #x200000;
  81.    ff.rsf   = #x300000;
  82.    ff.dvf   = #x400000;
  83.    ff.rdf   = #x500000;
  84.    ff.pow   = #x600000;
  85.    ff.rpw   = #x700000;
  86.    ff.rmf   = #x800000;
  87.    ff.fml   = #x900000;
  88.    ff.fdv   = #xA00000;
  89.    ff.frd   = #xB00000;
  90.    ff.pol   = #xC00000;
  91.    ff.mvf   = #x008000;
  92.    ff.mnf   = #x108000;
  93.    ff.abs   = #x208000;
  94.    ff.rnd   = #x308000;
  95.    ff.sqt   = #x408000;
  96.    ff.log   = #x508000;
  97.    ff.lgn   = #x608000;
  98.    ff.exp   = #x708000;
  99.    ff.sin   = #x808000;
  100.    ff.cos   = #x908000;
  101.    ff.tan   = #xA08000;
  102.    ff.asn   = #xB08000;
  103.    ff.acs   = #xC08000;
  104.    ff.atn   = #xD08000 }
  105.  
  106.