33d32
< #    when ?r then '[]' == vs[0] + vs[-1]           # , Array       # q
37d35
< #  @@ks |= (0 .. 9).to_a.join + ?-         # * '' higokan mruby 70410200   # ?0.upto # higokan mruby 70410200 # 7221410200 6ccae658 suzukaze       # q
39d36
< #      ) + ?i == k ? '' : ?.                       # q 2
41c38,39
<       vs.each_byte { |c| s.include?(c) || break}
---
> #      vs.each_byte { |c| s.include?(c) || break}
>       vs.all? { |c| s.include?(c)}
195c193,194
<   def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end
---
> #  def ta(ta, cop) [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] end
>   def ta(l, cop) [l.shift || 'getarg_a', l.shift || cop][0 .. l.pop || 1] end
218d216
< #  def s__r1_eq_sr01(*a) a[@@I_s__s][       a[@@I_s__r1]] == a[@@I_s__s][a[@@I_s__r0] + 1] end
278,280c276,280
<     # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8       # http://www.monami-ya.jp/
<     self[0] = [['th',       'sym', 'ctr', 'cto'],  # mruby 20410200 : higokan ? : ary_many
<           [[thini], 0,     [0],   [0]]]    # mruby 70410200 : 4x2 ok , 5x2 ng
---
>     # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8       # www.monami-ya.jp
> #    self[0] = [['th',      'sym', 'ctr', 'cto'],  # mruby 20410200 : higokan ? : ary_many
> #         [[thini], 0,     [0],   [0]]]    # mruby 70410200 : 4x2 ok , 5x2 ng
>     self[0] = [['th',       'sym', 'ctr'], # mruby 20410200 : higokan ? : ary_many
>           [[thini], 0,     [-1]]]  # mruby 70410200 : 4x2 ok , 5x2 ng
292d291
< #      Slp.new.slp 0
361a361,369
>
> #   n >= 0 && p(
> #     to_ia(n)
> ##    to_ia(n, pl)
> ##    Rg.new(to_ia(n)).to_ra
> ##    Rg.new(to_ia(n)).to_ra('th')
> ##    rg = Rg.new(to_ia(n)); rg['ctr']
> #   )
>
382a391,401
>   @@Plmg = ->(pi, pv) {pi.map { |v| [v, pv.shift]}}     # l
>   def to_ia(n, lpl = self)
>     if 0 == n
> #      self[n]
>       @@Plmg.(pl_g(-1), lpl[n][1]) # c
>     else
> #      @@Plmg.(pl_g(-1), self[n])  # c
>       @@Plmg.(pl_g(-1), lpl[n])            # c
>     end
>   end
>
387c406,411
<     (ctr = ctr_r.abs) != cto_r ? (ctr_s(-ctr); cto_s ctr) : -ctr
---
>
> ##    ctr = ctr.abs
> ##    ctr != cto ? (ctr_s -ctr; cto_s ctr) : -ctr
> #    (ctr = ctr_r.abs) != cto_r ? (ctr_s -ctr; cto_s ctr) : -ctr
>
>     [ctr = ctr_r, 0 <= ctr && ctr_s(-ctr)][0]
397,399c421,423
<   def cto_r
<     pl_eg('cto')[0]
<   end
---
> #  def cto_r
> #    pl_eg('cto')[0]
> #  end
406,409c430,433
<   def cto_s(cto)
<     pl_es(0, ['cto', [cto]])
<     cto
<   end
---
> #  def cto_s(cto)
> #    pl_es(0, ['cto', [cto]])
> #    cto
> #  end
438c462,463
<   def st_id(a, pc)
---
> #  def st_id(a, pc)
>   def s_id(a, pc)
442,447d466
< #    a.map! { |v|
< ###    v.kind_of?(Array) ?  __send__(v, pc)  : v           # unwork ( thread ? )
< ##     knid(v, :Array) ?  __method__(v, pc)  : v           # unwork ( thread ? )
< ##     knid(v, :Array) ?  __callee__(v, pc)  : v           # unwork ( thread ? )
< #      knid(v, :Array) ?       st_id(v, pc)  : v
< #      case v when Array then  st_id(v, pc)  else v end
449c468
< ##    v.kind_of?(Array) ?  __send__(a, pc)  : a            # unwork ( thread ? )
---
> ##    v.kind_of?(Array) ?  __send__(a, pc)  : a            # unwork ( thread ? )
452,453c471,474
< #     knid(a, :Array) ?       st_id(a, pc)  : a
<       case a when Array then  st_id(a, pc)  else a end
---
> ##     knid(a, :Array) ?       st_id(a, pc)  : a
> #     knid(a, :Array) ?       s_id(a, pc)  : a
> #      case a when Array then  st_id(a, pc)  else a end
>       case a when Array then  s_id(a, pc)  else a end
455d475
< #    return a[0] if 2 > a.size
460d479
< #    a.inject { |opc, op|
462d480
< #case opc when Numeric then else
464d481
< #  print "#{pc.to_xeh}                #{opc}  #{op.to_xeh}\n" end
468d484
< #    }
482,483c498,501
<    th[idx] =  st_id(th[idx], pc - 1)  ;
< ####       th[idx] =  st_id(th[idx], pc - 1)  if ckth(th[idx], 0)  # fuguai taisaku
---
> #  th[idx] =  st_id(th[idx], pc - 1)  ;
>    th[idx] =  s_id(th[idx], pc - 1)  ;
> #####      th[idx] =  st_id(th[idx], pc - 1)  if ckth(th[idx], 0)  # fuguai taisaku
> ####       th[idx] =  s_id(th[idx], pc - 1)  if ckth(th[idx], 0)   # fuguai taisaku
488d505
< #    self.pl_es(pc, ['th', th])
493d509
< #  Slp.new.slp 0
495d510
< ## Slp.new.slp(0, 4096)
498,499c513,514
< #  idx += f && idx < mx ? 1 : 0 ##
<    f && idx += idx < mx ? 1 : 0 ##
---
> #  f && idx += idx < mx ? 1 : 0 ##
>    f && idx += (mx <=> idx) + 1 >> 1   ##
532d546
< #      Slp.new.slp
572d585
< #     s[@p.sgp a[0]]
575d587
< #   [mloc, @s[@p + a[0].sgp], @@m.unlock][1]
581d592
< #      a = @s[@p.sgp a[0]] = a[1]
585d595
< #   [mloc, @s[@p + a[0].sgp] = a[1], @@m.unlock][1]
589,592d598
<
< # def mloc
< #   begin @@m.lock; rescue Slp.new.slp(0); retry end
< # end
619c625,626
<     i ||= @a.assoc('ctr')[1]
---
> #    i ||= @a.assoc('ctr')[1]
>     i ||= @a.assoc('ctr')[1] + 1
621d627
< #    self[@i] = a[0]
624d629
< #  def []=(*a, v)
627c632,633
<     i ||= @a.assoc('ctr')[1]
---
> #    i ||= @a.assoc('ctr')[1]
>     i ||= @a.assoc('ctr')[1] + 1
670d675
< #    (@pl = ENVary.new(rmth + 1, [thini], [], [])).plini
703c708
<     r = [r, r.map { |v| lpl.ckth(v, 1)}]
---
> #    r = [r, r.map { |v| lpl.ckth(v, 1)}]
706c711,712
<     r.map! { |v| [v[0], v[-1]]}
---
> #    r.map! { |v| [v[0], v[-1]]}
>     r = [r, r.map { |v| lpl.ckth(v, 1)}].map { |v| [v[0], v[-1]]}
733d738
< #      sz = 4; ap = (1 << sz) - 1 - 1
735c740,741
<       sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
---
> #      sz -= 2; ap = (ap << sz) + ap + (1 << (sz - 1)) >> sz
>       sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1
743d748
< #  r = (plr[r1] if 0 <= sz && r1 <= sz) || lm.(isr0, r1)     # c
749,750c754,755
< #  sz.step(sz - 1 + ap -= ap >> 2)   { |n| plr<< lm.(isr0, s[n])}      # p c
<    mx = sz - 1 + ap -= ap >> 2
---
> #  mx = sz - 1 + ap -= ap >> 2
>    mx = sz - 1 + ap = ap - (ap >> 2) & 0x3f
752,753c757,758
<    (mx - sz).times { |n| plr<< lm.(isr0, s[n])}      # p c
< #  (mx - sz).times { |n| s[n] && plr<< lm.(isr0, s[n])}      # p c
---
> #  (mx - sz).times { |n| plr<< lm.(isr0, s[n])}      # p c
>    (sz .. mx - 1).each { |n| plr<< lm.(isr0, s[n])}  # p c
772d776
< #  sz = plr.width
774d777
< #  ca[flg.inject(0) { |rv, v| rv <<= 1; rv |= v ? 0 : 1}].call
782c785
< #     }            ##
---
> #     }    ##
790c793,795
<     flg, pl = true
---
> #    flg, pl = true
>
>     pl = lpl.pl_g(pc)
794c799
<    flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th')
---
> #  flg ? pl = lpl.pl_g(pc) : pl[i_th] = lpl.pl_eg(pc, 'th')
799a805,806
>
>    pl[i_th] = lpl.pl_eg(pc, 'th')
805,806c812,813
<   def iset2(rg, thi = 0, th = [])          ###
< # def iset(rg)     ##
---
> # def iset2(rg, thi = 0, th = [])          ###
>   def iset(rg)     ##
815,819d821
< #     printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
< #     return
< #   )
< #    fmla = fml
<
821d822
< #    ta = ->(ta) { [ta.shift || 'getarg_a', ta.shift || cop][0 .. ta.pop || 1] }        # l
823c824
< #   th = []        ##
---
>     th = []        ##
826,830c827,832
< #    fvl = [->(oi) {[fv[oi] = th[oi] = (ta.(fv[oi])), []]},     # l c
< #     ->(oi) {th += [[fv[oi] && ta.(fv[oi])], []][              # l c
<     fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]},     # l
<       ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][     # l
<            ((wd = fv.width) <=> oi) >> 1]}] # .lazy
---
> #    fvl = [->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]},    # l c
> #     ->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][     # l c
> #          ((wd = fv.width) <=> oi) >> 1]}] # .lazy
>     fvl = [->(oi) {th += [[fv[oi] && imem.ta(fv[oi], cop)], []][                # l c
>         ((wd = fv.width) <=> oi) >> 1]},
>       ->(oi) {[fv[oi] = th[oi] = (imem.ta(fv[oi], cop)), []]}] # .lazy  # l c
833d834
< #      fml = fmla.dup
838d838
< #  fv = fml.shift
842,843c842,843
<      when 'th' then fv = fvl[oi <=> 0].(oi)  # c
< #    when 'th' then (fv, th, wd) = imem.fvl(oi, th, fv, wd, cop)
---
> #    when 'th' then fv = fvl[oi <=> 0].(oi)  # c
>      when 'th' then fv = (fvl.delete_at(1) || fvl[0]).(oi) # c
851,852c851,852
< #    thi = 0       ##
< #    k_sp_r = pla.assoc('sp')[1]
---
>     thi = 0        ##
> #    thio = thi - 1
854,863c854,867
< #   Fiber.new {    ##
< #     loop {       ##
<    opa = opg.(thi) # c
< #  opa.push(k_sp_r, [sp]) if 0 == thi
<    opa.push(k_sp, [sp]) if 0 == thi
<
<    pl.pl_es(pc1, opa)
<    pl.ctr_s(pc1) if 0 == thi
<
< #  Slp.new.slp 0
---
>     Fiber.new {    ##
>       loop {       ##
>    if 0 > pl.ctr_r || 0 != thi # && thi != thio
>      opa = opg.(thi)       # c
>      opa.push(k_sp, [sp]) if 0 == thi
>
>      pl.pl_es(pc1, opa)
>
>      pl.ctr_s(pc1) if 0 == thi
>
> #    thio = thi
>      if 0 != thi && wd <= thi then thi = -1 end
> #    if 0 != thi && wd <= thi && 0 < thio then thi = -1 end
>    end
864a869
> #  @@slp.slp
869,882c874,887
<    if 0 != thi && wd <= thi then thi = -1 end
<    [thi + 1, th]   ###
< #  Fiber.yield(thi += 1)   ##
< #     }            ##
< #   }              ##
<   end
<
<   def iset(rg)
<     thi = 0
<     th = []
<
<     Fiber.new {
<       loop {
<    thi, th = iset2(rg, thi, th)
---
> #  if 0 != thi && wd <= thi then thi = -1; th = [] end
> #  [thi + 1, th]   ###
>    Fiber.yield(thi += 1)   ##
>       }            ##
>     }              ##
>   end
>
> #  def iset(rg)
> #    thi = 0
> #    th = []
>
> #    Fiber.new {
> #      loop {
> #  thi, th = iset2(rg, thi, th)
884,887c889,892
<    Fiber.yield(thi)
<       }
<     }
<   end
---
> #  Fiber.yield(thi)
> #      }
> #    }
> #  end
919c924,925
<     rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
---
> #    rg = Rg.new([['ctr', 1], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
>     rg = Rg.new([['ctr', 0], ['thi', 0], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
935,937d940
< #    rg['cop'] = c
< #    rg['sym'] = s
< #    rg['cop'], rg['sym'] = opf(irep, rg['pc'])
956d958
< #####        ise = iset(rg) if 0 == rg['thi']      ##
958d959
< #    rg['thi'] = ise.resume        ##
962c963,968
<      (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi']  ##
---
>      if 0 <= rg['ctr', 1] && 0 == rg['thi']
> #      (rg.push('pc', rg['pc']); rg.push('sp', rg['sp'])) if 0 == rg['thi']        ##
>        rg.push('pc', rg['pc'])     ##
>        rg.push('sp', rg['sp'])     ##
>        rg['ctr', 1] += 1
>      end
965,973c971,975
< #    rga.('push', nil, 'pc', rg['pc'])     # c
<      rg.push('pc', rg['pc'])
<      rg.push('sp', rg['sp'])
<      rg['ctr', 1] *= -1    # kakezan
<
< #    while ! lpl.ctr_c do Slp.new.slp end
<
<      lpl.plini
<      @flag[0] = 2
---
>      if 0 <= rg['ctr', 1]
>        rg.push('pc', rg['pc'])
>        rg.push('sp', rg['sp'])
>        rg['ctr', 1] *= -1  # kakezan
>      end
974a977,978
>      if 0 == rg['ctr', 1]
> #      while ! lpl.ctr_c do Slp.new.slp end
976c980,981
<      case rg['sym']
---
>        lpl.plini
>        @flag[0] = 2
978,979d982
<        # 何もしない
< #    when :NOP
981,986c984
<        # JMP nでpcをnだけ増やす。ただし、nは符号付き
<      when :JMP
< #      @pc = @pc + getarg_sbx(cop)
< #      pc = pc + lpl.getarg_sbx(cop) - 1
<        rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
< #      next
---
>        case rg['sym']
988,996c986,987
<      when :JMPIF
< #      if @stack[@sp + getarg_a(cop)] then
< #      if @stack[sp + lpl.getarg_a(cop)] then
<        if @stack[imem.getarg_a(rg['cop'])] then
< #        @pc = @pc + getarg_sbx(cop)
< #        pc = pc + lpl.getarg_sbx(cop) - 1
<          rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
< #        next
<        end
---
>          # 何もしない
> #      when :NOP
998,1002c989,990
<        # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
<      when :JMPNOT
< #      if !@stack[@sp + getarg_a(cop)] then
< #      if !@stack[sp + lpl.getarg_a(cop)] then
<        if !@stack[imem.getarg_a(rg['cop'])] then
---
>          # JMP nでpcをnだけ増やす。ただし、nは符号付き
>        when :JMP
1007d994
<        end
1009,1048c996,1004
<        # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
<      when :ENTER
< #      rg['pc', -1] = rg['pc']
<
<        # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
<        # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
<      when :SEND
< #      a = getarg_a(cop)
< #      a = lpl.getarg_a(cop)
<        a = imem.getarg_a(rg['cop'])
< #      mid = @irep.syms[getarg_b(cop)]
< #      mid = irep.syms[lpl.getarg_b(cop)]
<        mid = irep.syms[imem.getarg_b(rg['cop'])]
< #      n = getarg_c(cop)
< #      n = lpl.getarg_c(cop)
<        n = imem.getarg_c(rg['cop'])
< #      newirep = Irep::get_irep(@stack[@sp + a], mid)
<        newirep = Irep::get_irep(@stack[a], mid)
<        if newirep then
< #        @callinfo[@cp] = @sp
< #        @callinfo[@cp] = rg['sp']
< #        @cp += 1
< #        @callinfo[@cp] = @pc
< #        @callinfo[@cp] = rg['pc']
< #        @cp += 1
< #        @callinfo[@cp] = @irep
< #        @callinfo[@cp] = irep
< #        @cp += 1
<          @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
<
< #        @sp += a
< #        rg['sp'] += a
<          rg['sp', -1] = rg['sp'] + a
<
< #        @pc = 0
<          rg['pc', -1] = -1
< #        @irep = newirep
<          irep = newirep
< #        @irepid = @irep.id
<          @irepid = irep.id
---
>        when :JMPIF
> #        if @stack[@sp + getarg_a(cop)] then
> #        if @stack[sp + lpl.getarg_a(cop)] then
>          if @stack[imem.getarg_a(rg['cop'])] then
> #          @pc = @pc + getarg_sbx(cop)
> #          pc = pc + lpl.getarg_sbx(cop) - 1
>            rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
> #          next
>          end
1050,1055c1006,1014
< #        next
<        else
<          args = []
<          n.times do |i|
< #          args.push @stack[@sp + a + i + 1]
<            args<< @stack[a + i + 1]  # p
---
>          # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
>        when :JMPNOT
> #        if !@stack[@sp + getarg_a(cop)] then
> #        if !@stack[sp + lpl.getarg_a(cop)] then
>          if !@stack[imem.getarg_a(rg['cop'])] then
> #          @pc = @pc + getarg_sbx(cop)
> #          pc = pc + lpl.getarg_sbx(cop) - 1
>            rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop']) - 1
> #          next
1058,1060c1017,1065
< #        @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
<          @stack[a] = @stack[a].send(mid, *args)
<        end
---
>          # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
>        when :ENTER
> #        rg['pc', -1] = rg['pc']
>
>          # SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
>          # 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
>        when :SEND
> #        a = getarg_a(cop)
> #        a = lpl.getarg_a(cop)
>          a = imem.getarg_a(rg['cop'])
> #        mid = @irep.syms[getarg_b(cop)]
> #        mid = irep.syms[lpl.getarg_b(cop)]
>          mid = irep.syms[imem.getarg_b(rg['cop'])]
> #        n = getarg_c(cop)
> #        n = lpl.getarg_c(cop)
>          n = imem.getarg_c(rg['cop'])
> #        newirep = Irep::get_irep(@stack[@sp + a], mid)
>          newirep = Irep::get_irep(@stack[a], mid)
>          if newirep then
> #          @callinfo[@cp] = @sp
> #          @cp += 1
> #          @callinfo[@cp] = @pc
> #          @cp += 1
> #          @callinfo[@cp] = @irep
> #          @cp += 1
>            @callinfo[@cp ... @cp += 3] = [rg['sp'], rg['pc'], irep]
>
> #          @sp += a
> #          rg['sp'] += a
>            rg['sp', -1] = rg['sp'] + a
>
> #          @pc = 0
>            rg['pc', -1] = -1
> #          @irep = newirep
>            irep = newirep
> #          @irepid = @irep.id
>            @irepid = irep.id
>
> #          next
>          else
>            args = []
>            n.times do |i|
> #            args.push @stack[@sp + a + i + 1]
>              args<< @stack[a + i + 1]        # p
>            end
>
> #          @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
>            @stack[a] = @stack[a].send(mid, *args)
>          end
1062,1085c1067,1094
<        # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
<      when :RETURN
<        if @cp == 0 then
< #        return @stack[@sp + getarg_a(cop)]
< #        return @stack[sp + lpl.getarg_a(cop)]
<          return @stack[imem.getarg_a(rg['cop'])]
<        else
< #        @stack[@sp] = @stack[@sp + getarg_a(cop)]
< #        @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
<          @stack[0] = @stack[imem.getarg_a(rg['cop'])]
<          @cp -= 1
< #        @irep = @callinfo[@cp]
<          irep = @callinfo[@cp]
< #        @irepid = @irep.id
<          @irepid = irep.id
<          @cp -= 1
< #        @pc = @callinfo[@cp]
< #        pc = @callinfo[@cp] # - 1
<          rg['pc', -1] = @callinfo[@cp] # - 1
<          @cp -= 1
< #        @sp = @callinfo[@cp]
< #        sp = @callinfo[@cp]
< #        rg['sp'] = @callinfo[@cp]
<          rg['sp', -1] = @callinfo[@cp]
---
>          # RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
>        when :RETURN
>          if @cp == 0 then
> #          return @stack[@sp + getarg_a(cop)]
> #          return @stack[sp + lpl.getarg_a(cop)]
>            return @stack[imem.getarg_a(rg['cop'])]
>          else
> #          @stack[@sp] = @stack[@sp + getarg_a(cop)]
> #          @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
>            @stack[0] = @stack[imem.getarg_a(rg['cop'])]
>            @cp -= 1
> #          @irep = @callinfo[@cp]
>            irep = @callinfo[@cp]
> #          @irepid = @irep.id
>            @irepid = irep.id
>            @cp -= 1
> #          @pc = @callinfo[@cp]
> #          pc = @callinfo[@cp] - 1
>            rg['pc', -1] = @callinfo[@cp] # - 1
>            @cp -= 1
> #          @sp = @callinfo[@cp]
> #          sp = @callinfo[@cp]
> #          rg['sp'] = @callinfo[@cp]
>            rg['sp', -1] = @callinfo[@cp]
>          end
> #      else
> #        printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
> #        printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
1087,1089d1095
< #    else
< #      printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
< #      printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
1091a1098
>    rg['ctr', 1] -= 1 if 0 < rg['ctr', 1]
1093a1101,1102
> #    rg['ctr', 1] -= 1 if flg[0]
>
1102,1103c1111,1112
<
<      rg['ctr', 1] *= -1    # kakezan
---
>      @pc = rg['pc']
> #    rg['ctr', 1] *= -1    # kakezan
1114d1122
< #  Slp.new.slp 0
1117d1124
< #  Slp.new.slp



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