1406c
#      ise[0].reject! { |fis| fis[1].resume && 0 <= fis[0]}
#      ise[i_i_d].delif_c(2) { |fis, n| fis[1].resume(n) && 0 <= fis[0]}     # thl.size
      ise[i_i_d].reject!.with_index { |fis, n| fis[1].resume(n) && 0 <= fis[0]}
#####      ise[i_i_d].each_index { |n| fis = ise[i_i_d][n]
############      ise[i_i_d].reject!.with_index { |fis, n|
####### if fis[1].resume(n) && 0 <= fis[0]
############    fis[1].resume(n) && 0 <= fis[0]
####### end
############      }
#      rg.isk

#     0.step(@@rmth) { |n|      # higokan ? touki 70410200
#       fl.shift && redo if fl[n] && fl[n].resume(n) && 0 == n

#     }
.
1404c
#       (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0] # p 
#       fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0] # p 
        if pfl
#         ise[0]<< [pfl[0], isfl(pfl[1])] # p 
          ise[i_i_d]<< [pfl[0], isfl(pfl[1])]     # p 
#         ise[i_i_d]<< [pfl[0], iset(pfl[1])]     # p 
          if 0 <= pfl[0]
#           fl<< fls(pfl[0])      # p 
            ise[i_i_f]<< fls(pfl[0])      # p 
          end
          true
#       fl<< pfl[1] && ise[1].shift && redo if pfl && (! pfl[0] || 0 <= pfl[0])        # p 
        end
      }
#      rg.iss { |n, pfl01| [iset(pfl01[n]), fls(pfl01[n])][n] }
.
1402c
#      ise[i_i_s].delif_c(2) { |pfl, n| # thl.size
#      ise[1].reject! { |pfl|
.
1394,1400c
      ise[i_i_s].reject!.with_index { |pfl, n|  # Inspired by : RobertDoggett ? http://microware.com/# , Professor TAKAZAWA Yosimitu http://mu.ice.uec.ac.jp/~takazawa/
.
1366,1368c
#      if fl.empty?
#####      if ise[i_i_f].empty?
      if ise[i_i_f].empty? # && 0 > rg['ctr', 1]
#      if rg.flok
#     if pco.! && fl.empty?     # d~ng
.
1357c
#       end
        )
.
1355c
#         ise[i_i_s].push([false, false], [false, false])
.
1353c
#         unless ifj.(rg['sym'])
.
1346,1350c
        )][0] && (
#       else
#         next if pcoj.call
#         pco<< rg['pc'] if ifj.(rg['sym'])       # p c 
          pco[0] = rg['pc'] if ifj.(rg['sym'])  # p     # c 
.
1344c
#         rg.ist { |n| fls(n) }
          false), (
.
1341,1342c
#       unless (ifj.(rg['sym']) || ifs.(rg['sym']))     # c 2 
        [(ifj.(rg['sym']) || ifs.(rg['sym'])) || (      # c 2 
.
1337a
#       @@opg.(irep, rg, imem)  # c
.
1334d
1318,1332c
      ise[i_i_f].delif_c(1) { |v, n| v.resume(n)}

#      rg.fls
.
1311,1316c
####### ise[i_i_f].delete_at(n) && redo if ise[i_i_f][n] && ise[i_i_f][n].resume(n) && 0 == n
.
1309c
#####      0.step(1) { |n|
#####      0.step(0) { |n|
#       fl.delete_at(n) && redo if fl[n] && fl[n].resume(n) && 0 == n
.
1301d
1293,1298c

#      ise[1]<< [0 > rg.pg ? -rg['pc'] : rg['pc'], rg.to_a]    # p     # cp 
      ise[i_i_s]<< [0 > rg.pg ? -rg['pc'] : rg['pc'], rg.to_a] # p     # cp 
#      pcf = rg['pc']
#      ise[1]<< [pcf, rg.to_a]    # p 
.
1291a
        pfl = nil
.
1290c
#         ise[0]<< pfl            # p 
          ise[i_i_d]<< pfl                # p 
.
1279,1286c
          if pcf.abs == rg['pc']                        # cp 
#           fl<< fls(pcf.abs)                     # p     # cp 
            ise[i_i_f]<< fls(pcf.abs)             # p     # cp 
            pfl[0] = pcf.abs                            # cp 
#           ise[0]<< pfl          # p 
            ise[i_i_d]<< pfl              # p 
.
1270,1276c
#      unless ise[0].empty?
#       pfl = ise[0].pop
      unless ise[i_i_d].empty?
        pfl = ise[i_i_d].pop
.
1263c
      c, sym = @@opf.(irep, rg['pc'])           # c 
.
1255d
1207d
1204c
      cop, sym = rg['cop'], rg['sym']
.
1201a
#    rg = Ist.new([['ctr', 1], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
.
1200a
    i_i_f = 0; i_i_d = 1; i_i_s = 2

.
1196,1197c
#    ise = [[], []]
    ise = [[], [], []]
#    ise = Ist.new
.
1174,1177c
#       Fiber.yield true == fb.resume(*a)
#       r ||= (true == fb.resume ? true : false) && r
        r = (true == fb.resume ? true : false) # && r
#       m = Fiber.yield r
        Fiber.yield r
        r = true
#       r = fl.resume(m)
.
1172c
#####    fl = fls(pc.abs) # if 0 <= pc       # cp 
    r = false
    Fiber.new { |m = 1|
.
1170c
#    a = []
    rg = Rg.new rg
    pc = ['pc']
.
1164,1165c
    sym = OPTABLE_SYM[rou.get_opcode(cop)]
.
1156a
    rou = @@Rou
.
1155d
1059d
1055,1056c
#    cop, sym = rg['cop'], rg['sym']
#    cop, sym = rg.to_ra('cop', 'sym')
    cop, sym = rg.to_a('cop', 'sym')
.
1046,1047c
        sp = [sp].flatten
.
1037,1039c
        (0 != thi && ht <= thi) ? thi = 0 : thi += 1

.
1034a
        pl.pl_es(pc1, opa)
.
1033d
1021c
#         lopa.push(k, fv) # if k
          k && lopa.push(*fv)
.
1019a
          else
#           k && lopa<< k # p 
            lopa<< k      # p 
.
1017c
#             fv[oi] ? (k, fv = [thl[oi], fv[oi]]) : k = nil
              fv[oi] ? (fv = [thl[oi], fv[oi]]) : k = nil

.
1012,1014c
#             lopa.push(thl[oi], imem.ta(fv[oi], cop))
#             k, fv = [thl[oi + 1], []]         # t 
              fv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []]     # t 

#             kfv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []]    # t 
.
1009c
        if v # && knid(fv, :Array)
.
989a

.
984d
980,981c
#    rg = Rg.new rg
    pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
.
972a
          ca[flg.inject(0) { |rv, v| rv = v ? 0 : 1 | rv << 1}].call
.
951,971c
#         pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
#         isr0 = [mt ? i : s, r0]
#         sz = plr.size if flg[0]
          if flg[0]
                pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
                isr0 = [mt ? i : s, r0]
                sz = plr.size
.
948,949c

          f = # ktf &&
                flg.all?

#         m = fy.(m, false)     # c 
        end
        if 0 == m
.
940,945d
934a
          r0, r1 = r
.
928c
#    mx = 0xf
.
922a
    mx = 0xf
    ca = [
      -> {   # f # && ktf
#       r = r1 < sz && plr[r1] || lm.(isr0, r1)      # c 
        r = (r = plr[r1]        ; r1 >= sz ||
                r.nil?) ? lm.(r1) : r           # c 
        s[r1] = sy ? [s[r1], r].inject(sy) : r
        rs = [r1.to_xeh, r0.to_xeh]},
      -> {   # flg[0] # && ktf
##      ((sw = sp + sz) + 0xe).step(sw, -1) {   # higokan mruby 70410200        # bbab89e7 5211410200 tmtm
#           s.s.hgt <= mx && mx = s.s.hgt
#           sz.step(mx) { |n| plr<< lm.(isr0, s[n])}      # p c 
          s.size < mx && mx = s.size - 1
#         sz.step(mx) { |n| plr<< lm.(isr0, s[n])}        # p c 
          sz.step(mx) { |n| plr<< lm.(s[n])}      # p c 
        rs[1] = r0.to_xeh},
      -> {   # flg[-1] # && ktf
        rs[0] = r1.to_xeh},
      -> {}
    ] # .lazy

##    fy = ->(m, f) {        # l 
#    fy = ->(m, f) {fa = [f, false]  # l 
#      loop {
#       loc.verb "#{pc.to_xeh}                     #{sym}  #{rs[1]}        #{rs[0]}"
##      Fiber.yield(f && 0 == m)
##      m = Fiber.yield([f][m.abs])
##      m = Fiber.yield(fa[m])
#       m = Fiber.yield(f && fa[m])
##      break(m) unless [f][m.abs]
#      break(m) unless fa[m] }
##      }
#    }

.
916,917c
    pl, sp, mt, isr0, r, r0, r1, sym, sy, pr, sz = nil
.
910c
#    f = false; flg = [false] # ; ktf = false
    f = false; flg = [false, false] # ; ktf = false
.
892,896c
    r[1] = r[0] if
        knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r[1], 2)    # q 
.
881,890d
871d
861c
#    pl.ref_pl0i
.
849c
    # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8    # http://www.monami-ya.jp/
.
816d
777a
#module M__Ist
## def initialize_with_ist(*a)
##   initialize_without_ist(*a)
#  def initialize(*a)
#    super
#    @i_i_f = 0; @i_i_d = 1; @i_i_s = 2
#    @ise = [[], [], []]
#  end
##  alias_method_chain :initialize, :ist

#  def ist # (rg)
#    if ! @ise[@i_i_d].empty?
#      pfl = @ise[@i_i_d].pop
#      pcf = pfl[0]
#      if pcf < 0
##      if pcf.abs == rg['pc']                  # cp 
#       if pcf.abs == @a.assoc('pc')[1]         # cp 
##        @ise[@i_i_f]<< fls(pcf.abs)             # cp 
#         @ise[@i_i_f]<< yield(pcf.abs)           # cp 
#         pfl[0] = pcf.abs                      # cp 
#         @ise[@i_i_d]<< pfl
#       end
#      else
#       @ise[@i_i_d]<< pfl
#      end
#      pfl = nil
#    end
#
##    @ise[@i_i_s]<< [0 > @a['ctr', 1] ? -@a['pc'] : @a['pc'], @a.to_a]
#    @ise[@i_i_s]<< [0 > @a.assoc('ctr')[1] ? -@a.assoc('pc')[1] : @a.assoc('pc')[1], @a]
#  end

#  def fls
#    0.step(1) { |n|
##      fl.delete_at(n) && redo if fl[n] && fl[n].resume(n) && 0 == n
#      @ise[@i_i_f].delete_at(n) && redo if
#       @ise[@i_i_f][n] && @ise[@i_i_f][n].resume(n) && 0 == n

#    }
#  end

#  def iss # (po = nil)
##      ise[1].each_index { |n|
#    @ise[@i_i_s].each_index { |n|
##      ise[1].reject! { |pfl|
##      (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0]
##      (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0]
##      fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0]
##      pfl = ise[1][n]
#      pfl = @ise[@i_i_s][n]
#      if pfl
##        ise[1].shift
#       @ise[@i_i_s].shift
##        ise[0]<< [pfl[0], isfl(pfl[1])]
##      @ise[@i_i_d]<< [pfl[0], isfl(pfl[1])]
##      @ise[@i_i_d]<< [pfl[0], iset(pfl[1])]
#       @ise[@i_i_d]<< [pfl[0], yield(1, pfl)]
#       if 0 <= pfl[0]
##        fl<< fls(pfl[0])
##        @ise[@i_i_f]<< fls(pfl[0])
#         @ise[@i_i_f]<< yield(0, pfl)
#       end
#       redo
##      fl<< pfl[1] && ise[1].shift && redo if pfl && (! pfl[0] || 0 <= pfl[0])
#      end

#    }
#  end  

#  def isk
#      ise[@i_i_d].reject! { |fis| fis[1].resume && 0 <= fis[0]}
#  end
#
#  def flok
#    0 == @ise[@i_i_f].size
#  end
#end

#class Ist < Rg
## class Ist
#  include M__Ist
#end

.
763,768c
  def to_a(*a)
#   if a.empty?
#     @a.map { |v| v.dup}
#   else
#     a.map { |v| self[v]}
#   end
    a.empty? ? @a.map { |v| v.dup} : a.map { |v| self[v]}
.
760a
#   @p
.
756a
#   @p = i
.
751,752c
#    v = -v if 'pc' == k && v == @a.assoc(k)[i] && knid(v, :Numeric)    # cp 
#    'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end     # cp    
   @a.assoc(k)[i] = v
.
747c
#    i ||= @a.assoc('ctr')[1]
    i ||= @p
.
735c
#    i ||= @a.assoc('ctr')[1]
    i ||= @p
.
713a
    @p = 1
.
621,622d
612,616d
584d
570d
568c
#         flg = true    ##
          flg ||= ckth(th[mx], 1)
.
559a
#    th = (0 .. 1).map { |v| pl_eg(pc, thl[v])}
.
549,551c
#    (rou = ROU).send(*a) || a[1]
    self.send(*a) || a[1]
.
546c
#   GC.start    # g     # fuantei ( keisan gosa ) ?
.
540,541c
#     knid(a, :Array)   ?     __method__(a, pc)  :    a         # s_id(a, pc)  :    # 310200plini ?
      case a when Array then  __method__(a, pc)  else a end     # s_id(a, pc)  else # 310200plini ?
.
533a
  def send(*op)
#    knid(op[0], :Numeric) ? op.inject(:+) : (rou = ROU).send(*op)
    case op[0] when Numeric then op.inject else (rou = ROU).send(*op) end
#   op.inject(knid(op[0], :Numeric) ? :+ : '(rou = ROU).send')
  end

.
524c
    end == true
.
484,488d
470,471c
    a.each_slice(2) { |k, v|            # .shift(2) higokan mruby 70410200
#     'ctr_s' == k && break(-v)         # higokan ? mruby 70410200
.
467c
#   n = arg.shift if arg.first.is_a?(Numeric)           # unwork ( thread ? )
.
453,455c
    self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl       # c 
.
431d
416d
404d
387a
    n = a.shift
.
378,384c
#   a || return         # 410200plini
.
368,369d
357d
332,336d
327c
# def s__i__r0(     *a) a[0].send(a[3])[a[1]]           end
  def s__send(      *a) a[0].send(a[3])[a[1]]           end
.
255,256c
    @@fml.(lb).assoc(sym)       # c 
.
234,235c
#      [:MOVE,    :__sr0],      [:LOADL,   :__i__r0, nil, :pool],
#      [:LOADI,   :__r0 ],      [:LOADSYM, :__i__r0, nil, :syms],
      [:MOVE,     :__sr0],      [:LOADL,   :__send, nil, :pool],
      [:LOADI,    :__r0 ],      [:LOADSYM, :__send, nil, :syms],
.
216c
#   GC.disable          # g 
    @@Slp.slp 0

.
195c
#   GC.disable          # g 
#   @@Slp.slp 0
.
175c
#  include RiteOpcodeUtil
.
169,171c
  include RiteOpcodeUtil

#  def send(*op)
#    knid(op[0], :Numeric) ? op.inject(:+) : self.__send__(*op)
#  end
.
145c
##   t -= t <=> 1
#   t += 1 <=> t
.
25,26c
NSL_ = 6309     # nanosleep()
# NSL_ = 10065  # nanosleep()
.
23c
# GC.start      # g 
.



-- 
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net  tel:081-70-5152-1104
heiwa furiisekkusu 1tu