<*>=
# Generated by the New Jersey Machine-Code Toolkit, version 0.4 of 1/25/96

# command line: tools -icon -foldemit -encoder bytecodex bytecode.spec

#include <mclib.h>
#include "bytecodex.bogus.icn"

procedure sign_extend(N, SIZE)
  local plus, minus
  plus := iand(N, 2^(SIZE-1) - 1)
  minus := if iand(N, 2^(SIZE-1)) = 0 then 0 else 2^(SIZE-1)
  return plus - minus
end

procedure bc_mark()
  local _result
  _result := ""
  _result ||:= char(13)
  return _result
end

procedure bc_array()
  local _result
  _result := ""
  _result ||:= char(77)
  return _result
end

procedure bc_set()
  local _result
  _result := ""
  _result ||:= char(29)
  return _result
end

procedure bc_procmark()
  local _result
  _result := ""
  _result ||:= char(93)
  return _result
end

procedure bc_proc()
  local _result
  _result := ""
  _result ||:= char(45)
  return _result
end

procedure bc_stringlit()
  local _result
  _result := ""
  _result ||:= char(109)
  return _result
end

procedure bc_null()
  local _result
  _result := ""
  _result ||:= char(61)
  return _result
end

procedure bc_lt()
  local _result
  _result := ""
  _result ||:= char(14)
  return _result
end

procedure bc_le()
  local _result
  _result := ""
  _result ||:= char(78)
  return _result
end

procedure bc_gt()
  local _result
  _result := ""
  _result ||:= char(30)
  return _result
end

procedure bc_ge()
  local _result
  _result := ""
  _result ||:= char(94)
  return _result
end

procedure bc_ne()
  local _result
  _result := ""
  _result ||:= char(46)
  return _result
end

procedure bc_eq()
  local _result
  _result := ""
  _result ||:= char(110)
  return _result
end

procedure bc_false()
  local _result
  _result := ""
  _result ||:= char(62)
  return _result
end

procedure bc_true()
  local _result
  _result := ""
  _result ||:= char(126)
  return _result
end

procedure bc_orb()
  local _result
  _result := ""
  _result ||:= char(7)
  return _result
end

procedure bc_and()
  local _result
  _result := ""
  _result ||:= char(71)
  return _result
end

procedure bc_not()
  local _result
  _result := ""
  _result ||:= char(23)
  return _result
end

procedure bc_add()
  local _result
  _result := ""
  _result ||:= char(87)
  return _result
end

procedure bc_sub()
  local _result
  _result := ""
  _result ||:= char(39)
  return _result
end

procedure bc_mul()
  local _result
  _result := ""
  _result ||:= char(103)
  return _result
end

procedure bc_idiv()
  local _result
  _result := ""
  _result ||:= char(55)
  return _result
end

procedure bc_mod()
  local _result
  _result := ""
  _result ||:= char(119)
  return _result
end

procedure bc_cl_loc()
  local _result
  _result := ""
  _result ||:= char(15)
  return _result
end

procedure bc_force()
  local _result
  _result := ""
  _result ||:= char(95)
  return _result
end

procedure bc_known()
  local _result
  _result := ""
  _result ||:= char(47)
  return _result
end

procedure bc_if_guard()
  local _result
  _result := ""
  _result ||:= char(63)
  return _result
end

procedure bc_neg()
  local _result
  _result := ""
  _result ||:= char(127)
  return _result
end

procedure bc_failmsg()
  local _result
  _result := ""
  _result ||:= char(118)
  return _result
end

procedure bc_sint(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
    } 
  return _result
end

procedure bc_emit_at(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(111) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(111) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(111) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(111) 
    } 
  return _result
end

procedure bc_widen(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(38) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(38) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(38) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(38) 
    } 
  return _result
end

procedure bc_fitsu(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(102) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(102) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(102) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(102) 
    } 
  return _result
end

procedure bc_fitss(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(54) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(54) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(54) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(54) 
    } 
  return _result
end

procedure bc_narrows(n)
  local _result
  _result := ""
  if n ~= 0 & 0 <= n < 32 then 
    _result ||:= char(ishift(iand(n, 16r1f), 3)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(86) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(86) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(86) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(86) 
    } 
  return _result
end

procedure bc_halt()
  local _result
  _result := ""
  _result ||:= char(0)
  return _result
end

procedure bc_narrowu(n)
  local _result
  _result := ""
  if 0 <= n < 32 & n ~= 0 then 
    _result ||:= char(ior(ishift(iand(n, 16r1f), 3), 1)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(22) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(22) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(22) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(22) 
    } 
  return _result
end

procedure bc_unsat()
  local _result
  _result := ""
  _result ||:= char(1)
  return _result
end

procedure bc_bitslice(lo, hi)
  local _result
  _result := ""
  if lo = 0 & 0 <= hi < 32 then 
    _result ||:= char(ior(ishift(iand(hi, 16r1f), 3), 2)) 
  else if -8 <= hi < 8 & -8 <= lo < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 & -128 <= hi < 128 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(hi, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & -8 <= hi < 8 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -128 <= hi < 128 & -128 <= lo < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(hi, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & -8 <= hi < 8 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(lo, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -128 <= hi < 128 & -32768 <= lo < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(lo, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(lo, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(hi, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(lo, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= hi < 8 then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -128 <= hi < 128 then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= hi < 32768 then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(hi, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(6) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  return _result
end

procedure bc_addlit(n)
  local _result
  _result := ""
  if -8 <= n < 8 & n ~= 0 then 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 11)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(87) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(87) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(87) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(87) 
    } 
  return _result
end

procedure bc_cl_loc_force()
  local _result
  _result := ""
  _result ||:= char(11)
  return _result
end

procedure bc_bitshift(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 12)) 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(70) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(70) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(70) 
    } 
  return _result
end

procedure bc_emit_at_loc(n)
  local _result
  _result := ""
  if n = 1 then 
    _result ||:= char(5) 
  else if n = 2 then 
    _result ||:= char(69) 
  else if n = 4 then 
    _result ||:= char(133) 
  else if n = 8 then 
    _result ||:= char(197) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(111) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(111) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(111) 
    } 
  else 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(111) 
    } 
  return _result
end

procedure bc_cla(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(79) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(79) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(79) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(79) 
    } 
  return _result
end

procedure bc_cla_force(n)
  local _result
  _result := ""
  if 0 <= n - 1 < 2 then 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 21)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(79) 
      _result ||:= char(95) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(79) 
      _result ||:= char(95) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(79) 
      _result ||:= char(95) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(79) 
      _result ||:= char(95) 
    } 
  return _result
end

procedure bc_clv(n)
  local _result
  _result := ""
  if n <= 2 & 0 <= n - 1 < 2 then 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 37)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(31) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(31) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(31) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(31) 
    } 
  return _result
end

procedure bc_clv_orb(n)
  local _result
  _result := ""
  if 0 <= n - 1 < 2 then 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 53)) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(31) 
      _result ||:= char(7) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(31) 
      _result ||:= char(7) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(sign_extend(iand(ishift(n, -8), 16rffffff), 
        24), 16rff)) 
      _result ||:= char(31) 
      _result ||:= char(7) 
    } 
  else 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(iand(ishift(n, -16), 16rff)) 
      _result ||:= char(iand(ishift(n, -24), 16rff)) 
      _result ||:= char(31) 
      _result ||:= char(7) 
    } 
  return _result
end
Defines bc_add, bc_addlit, bc_and, bc_array, bc_bitshift, bc_bitslice, bc_cla, bc_cla_force, bc_cl_loc, bc_cl_loc_force, bc_clv, bc_clv_orb, bc_emit_at, bc_emit_at_loc, bc_eq, bc_failmsg, bc_false, bc_fitss, bc_fitsu, bc_force, bc_ge, bc_gt, bc_halt, bc_idiv, bc_if_guard, bc_known, bc_le, bc_lt, bc_mark, bc_mod, bc_mul, bc_narrows, bc_narrowu, bc_ne, bc_neg, bc_not, bc_null, bc_orb, bc_proc, bc_procmark, bc_set, bc_sint, bc_stringlit, bc_sub, bc_true, bc_unsat, bc_widen, sign_extend (links are to index).

<old stuff>=
procedure sign_extend(N, SIZE)
  local plus, minus
  plus := iand(N, 2^(SIZE-1) - 1)
  minus := if iand(N, 2^(SIZE-1)) = 0 then 0 else 2^(SIZE-1)
  return plus - minus
end

procedure bc_mark()
  local _result
  _result := ""
  _result ||:= char(13)
  return _result
end

procedure bc_array()
  local _result
  _result := ""
  _result ||:= char(77)
  return _result
end

procedure bc_set()
  local _result
  _result := ""
  _result ||:= char(29)
  return _result
end

procedure bc_procmark()
  local _result
  _result := ""
  _result ||:= char(93)
  return _result
end

procedure bc_proc()
  local _result
  _result := ""
  _result ||:= char(45)
  return _result
end

procedure bc_stringlit()
  local _result
  _result := ""
  _result ||:= char(109)
  return _result
end

procedure bc_null()
  local _result
  _result := ""
  _result ||:= char(61)
  return _result
end

procedure bc_lt()
  local _result
  _result := ""
  _result ||:= char(14)
  return _result
end

procedure bc_le()
  local _result
  _result := ""
  _result ||:= char(78)
  return _result
end

procedure bc_gt()
  local _result
  _result := ""
  _result ||:= char(30)
  return _result
end

procedure bc_ge()
  local _result
  _result := ""
  _result ||:= char(94)
  return _result
end

procedure bc_ne()
  local _result
  _result := ""
  _result ||:= char(46)
  return _result
end

procedure bc_eq()
  local _result
  _result := ""
  _result ||:= char(110)
  return _result
end

procedure bc_false()
  local _result
  _result := ""
  _result ||:= char(62)
  return _result
end

procedure bc_true()
  local _result
  _result := ""
  _result ||:= char(126)
  return _result
end

procedure bc_orb()
  local _result
  _result := ""
  _result ||:= char(7)
  return _result
end

procedure bc_and()
  local _result
  _result := ""
  _result ||:= char(71)
  return _result
end

procedure bc_not()
  local _result
  _result := ""
  _result ||:= char(23)
  return _result
end

procedure bc_add()
  local _result
  _result := ""
  _result ||:= char(87)
  return _result
end

procedure bc_sub()
  local _result
  _result := ""
  _result ||:= char(39)
  return _result
end

procedure bc_mul()
  local _result
  _result := ""
  _result ||:= char(103)
  return _result
end

procedure bc_idiv()
  local _result
  _result := ""
  _result ||:= char(55)
  return _result
end

procedure bc_mod()
  local _result
  _result := ""
  _result ||:= char(119)
  return _result
end

procedure bc_cl_loc()
  local _result
  _result := ""
  _result ||:= char(15)
  return _result
end

procedure bc_force()
  local _result
  _result := ""
  _result ||:= char(95)
  return _result
end

procedure bc_known()
  local _result
  _result := ""
  _result ||:= char(47)
  return _result
end

procedure bc_if_guard()
  local _result
  _result := ""
  _result ||:= char(63)
  return _result
end

procedure bc_neg()
  local _result
  _result := ""
  _result ||:= char(127)
  return _result
end

procedure bc_sint(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
      } 
    else 
      impossible("Can't decide on branch for constructor sint")  
  return _result
end

procedure bc_emit_at(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(111) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(111) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(111) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(111) 
      } 
    else 
      impossible("Can't decide on branch for constructor emit_at")  
  return _result
end

procedure bc_widen(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(38) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(38) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(38) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(38) 
      } 
    else 
      impossible("Can't decide on branch for constructor widen")  
  return _result
end

procedure bc_fitsu(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(102) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(102) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(102) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(102) 
      } 
    else 
      impossible("Can't decide on branch for constructor fitsu")  
  return _result
end

procedure bc_fitss(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(54) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(54) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(54) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(54) 
      } 
    else 
      impossible("Can't decide on branch for constructor fitss")  
  return _result
end

procedure bc_narrows(n)
  local _result
  _result := ""
  if not (0 <= n < 32) then 
    impossible("`n' = 0x%x won't fit in 5 bits.", n) 
  else 
    _result ||:= char(ishift(iand(n, 16r1f), 3)) 
  return _result
end

procedure bc_narrowu(n)
  local _result
  _result := ""
  if not (0 <= n < 32) then 
    impossible("`n' = 0x%x won't fit in 5 bits.", n) 
  else 
    _result ||:= char(ior(ishift(iand(n, 16r1f), 3), 1)) 
  return _result
end

procedure bc_bitslice(lo, hi)
  local _result
  _result := ""
  if lo = 0 & hi = iand(hi, 16r1f) then 
    _result ||:= char(ior(ishift(iand(hi, 16r1f), 3), 2)) 
  else if -8 <= lo < 8 & -8 <= hi < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 & -128 <= hi < 128 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= lo < 8 & sign_extend(hi, 32) = hi then 
    { 
      _result ||:= char(ior(ishift(iand(lo, 16rf), 4), 3)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & -8 <= hi < 8 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & -128 <= hi < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -128 <= lo < 128 & sign_extend(hi, 32) = hi then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & -8 <= hi < 8 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & -128 <= hi < 128 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & -32768 <= hi < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= lo < 32768 & sign_extend(hi, 32) = hi then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(117) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(iand(ishift(hi, -16), 16rff)) 
      _result ||:= char(iand(ishift(hi, -24), 16rff)) 
      _result ||:= char(6) 
    } 
  else if -8 <= hi < 8 & sign_extend(lo, 32) = lo then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(ior(ishift(iand(hi, 16rf), 4), 3)) 
      _result ||:= char(6) 
    } 
  else if -128 <= hi < 128 & sign_extend(lo, 32) = lo then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(85) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(6) 
    } 
  else if -32768 <= hi < 32768 & sign_extend(lo, 32) = lo then 
    { 
      _result ||:= char(117) 
      _result ||:= char(iand(lo, 16rff)) 
      _result ||:= char(iand(ishift(lo, -8), 16rff)) 
      _result ||:= char(iand(ishift(lo, -16), 16rff)) 
      _result ||:= char(iand(ishift(lo, -24), 16rff)) 
      _result ||:= char(101) 
      _result ||:= char(iand(hi, 16rff)) 
      _result ||:= char(iand(ishift(hi, -8), 16rff)) 
      _result ||:= char(6) 
    } 
  else 
    if sign_extend(hi, 32) = hi & sign_extend(lo, 32) = lo then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(lo, 16rff)) 
        _result ||:= char(iand(ishift(lo, -8), 16rff)) 
        _result ||:= char(iand(ishift(lo, -16), 16rff)) 
        _result ||:= char(iand(ishift(lo, -24), 16rff)) 
        _result ||:= char(117) 
        _result ||:= char(iand(hi, 16rff)) 
        _result ||:= char(iand(ishift(hi, -8), 16rff)) 
        _result ||:= char(iand(ishift(hi, -16), 16rff)) 
        _result ||:= char(iand(ishift(hi, -24), 16rff)) 
        _result ||:= char(6) 
      } 
    else 
      impossible("Can't decide on branch for constructor bitslice")  
  return _result
end

procedure bc_addlit(n)
  local _result
  _result := ""
  if n ~= 0 & (-8 <= n < 8) then 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 11))  
  else 
    _result ||:= bc_sint(n) || char(87)
  return _result
end

procedure bc_cl_loc_force()
  local _result
  _result := ""
  _result ||:= char(11)
  return _result
end

procedure bc_bitshift(n)
  local _result
  _result := ""
  if not (-8 <= n < 8) then 
    impossible("`n' = %d won't fit in 4 signed bits.", n) 
  else 
    _result ||:= char(ior(ishift(iand(n, 16rf), 4), 12)) 
  return _result
end

procedure bc_emit_at_loc(n)
  local _result
  _result := ""
  if n = 1 then 
    _result ||:= char(5) 
  else if n = 2 then 
    _result ||:= char(69) 
  else if n = 4 then 
    _result ||:= char(133) 
  else if n = 8 then 
    _result ||:= char(197) 
  else if -8 <= n < 8 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(111) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(111) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(15) 
      _result ||:= char(95) 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(111) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(15) 
        _result ||:= char(95) 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(111) 
      } 
    else 
      impossible("Can't decide on branch for constructor emit_at_loc")  
  return _result
end

procedure bc_cla(n)
  local _result
  _result := ""
  if -8 <= n < 8 then 
    { 
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(79) 
    } 
  else if -128 <= n < 128 then 
    { 
      _result ||:= char(85) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(79) 
    } 
  else if -32768 <= n < 32768 then 
    { 
      _result ||:= char(101) 
      _result ||:= char(iand(n, 16rff)) 
      _result ||:= char(iand(ishift(n, -8), 16rff)) 
      _result ||:= char(79) 
    } 
  else 
    if sign_extend(n, 32) = n then 
      { 
        _result ||:= char(117) 
        _result ||:= char(iand(n, 16rff)) 
        _result ||:= char(iand(ishift(n, -8), 16rff)) 
        _result ||:= char(iand(ishift(n, -16), 16rff)) 
        _result ||:= char(iand(ishift(n, -24), 16rff)) 
        _result ||:= char(79) 
      } 
    else 
      impossible("Can't decide on branch for constructor cla")  
  return _result
end

procedure bc_cla_force(n)
  local _result
  _result := ""
  if not (0 <= n - 1 < 2) then 
    impossible("`n - 1' = 0x%x won't fit in 1 bits.", n - 1) 
  else 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 21)) 
  return _result
end

procedure bc_clv(n)
  local _result
  _result := ""
  if not (0 <= n - 1 < 2) then 
    if not (-8 <= n < 8) then 
      impossible("`n' = %d won't fit in 4 signed bits.", n)
    else {
      _result ||:= char(ior(ishift(iand(n, 16rf), 4), 3)) 
      _result ||:= char(31) 
    }  
  else 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 37)) 
  return _result
end

procedure bc_clv_orb(n)
  local _result
  _result := ""
  if not (0 <= n - 1 < 2) then 
    impossible("`n - 1' = 0x%x won't fit in 1 bits.", n - 1) 
  else 
    _result ||:= char(ior(ishift(iand(n - 1, 16r1), 7), 53)) 
  return _result
end

procedure bc_halt()
  return char(0)
end

procedure bc_failmsg()
  local _result
  _result := ""
  _result ||:= char(118)
  return _result
end

procedure bc_unsat()
  local _result
  _result := ""
  _result ||:= char(1)
  return _result
end
Defines bc_add, bc_addlit, bc_and, bc_array, bc_bitshift, bc_bitslice, bc_cla, bc_cla_force, bc_cl_loc, bc_cl_loc_force, bc_clv, bc_clv_orb, bc_emit_at, bc_emit_at_loc, bc_eq, bc_failmsg, bc_false, bc_fitss, bc_fitsu, bc_force, bc_ge, bc_gt, bc_halt, bc_idiv, bc_if_guard, bc_known, bc_le, bc_lt, bc_mark, bc_mod, bc_mul, bc_narrows, bc_narrowu, bc_ne, bc_neg, bc_not, bc_null, bc_orb, bc_proc, bc_procmark, bc_set, bc_sint, bc_stringlit, bc_sub, bc_true, bc_unsat, bc_widen, sign_extend (links are to index).