
  PROCEDURE [INLINE] mmp$asti
    (    xasid: ost$asid;
     VAR asti: mmt$ast_index);

?? PUSH (LISTEXT := ON) ??

    VAR
      asid_16: mmt$ast_index,
      asid_256: mmt$ast_index,
      asid_4096: mmt$ast_index,
      asid: ost$asid;

    asid := xasid;
    asid := asid DIV mmv$a_mult + (asid MOD mmv$a_mult) * mmv$a_divisor;

    asid_16 := asid DIV 16;
    asid_16 := asid_16 MOD 16;

    asid_256 := asid DIV 256;
    asid_256 := asid_256 MOD 16;

    asid_4096 := asid DIV 4096;
    asid_4096 := asid_4096 MOD 16;

    asti := (mmv$asid_asti_bits [asid MOD 16] * 4096) +
          (mmv$asid_asti_bits [asid_16] * 256) +
          (mmv$asid_asti_bits [asid_256] * 16) +
          mmv$asid_asti_bits [asid_4096];

  PROCEND mmp$asti;

*copyc mmt$ast_index
*copyc ost$hardware_subranges
*copyc mmv$a_divisor
*copyc mmv$a_mult
*copyc mmv$asid_asti_bits
?? POP ??
