1377c
GC.start # g # antei ?
.
1373c
GC.start # g
.
1348,1349c
@Slp.slp
end
.
1346c
# ise[0].reject! { |fis| fis.resume}
ise[0].reject!(&:resume)
# ise[0].delif_c(1) { |fis, n| fis.resume}
# fl.step(@@rmth) { |n| # higokan ? touki 70410200
# fl.reject!.with_index { |v, n| v.resume(n) && 0 == n} # higokan ? touki 70410200
# if pfl = ise[1][0]
# (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0] # p
# end
.
1339,1340c
stack.ps rg['sp']
# @irep[0] = irep
@irep = irep
.
1333c
# if 0 <= rg['ctr', 1]
if 0 <=
rg.pg
.
1329a
jsc.call
.
1328d
1324c
# plini
.
1322a
rg.ps(rg.pg.abs) # cp
.
1320c
# rg['ctr', 1] = rg['ctr', 1].abs
.
1315c
## ise[0].reject! { |fis| fis.resume} # higokan ? GC 70410200
.
1306,1308c
# pco = rg['pc'] if ?J == rg['sym'].to_s[0] # q
pco<< rg['pc'] if ?J == rg['sym'].to_s[0] # p # q
###### (pco = rg['pc']; pctj<< pco + 1) if ?J == rg['sym'].to_s[0] # q
# ise[1].push([false, false], [false, false])
# rg['ctr', 1] *= -1 # kakezan
rg.ps(-
rg.pg)
.
1303a
end
.
1301,1302c
# if 0 <= rg['ctr', 1] || pco
# if pco.slice!(0 .. -1) || 0 <= rg['ctr', 1] # higokan monami-ya.mrb:60510200 mruby:70410200
# if pco.pop || 0 <= rg['ctr', 1]
if pco.pop || 0 <=
rg.pg
# pco &&= nil
opg.call
# @@opg.(irep, rg, imem) # c
loc.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
# if (ifj.(sym) && ! ifs.(sym)) # c 2
if (ifj.(rg['sym']) && ! ifs.(rg['sym'])) # c 2
# ise<< iset(rg) # p
# ise<< iset(rg) if 0 <= rg['pc', nil, '-'] # p # cp
# ise[0]<< iset(rg) if 0 <= rg['pc', nil, '-'] # p # cp
# next if pcoj.call
# fl<< fls(rg['pc']) # p
# pcff = false
# if pfl = ise[1].shift
# pcf, pfl1 = pfl
# fl<< pfl1 if pcff = pcf.abs == rg['pc'] # p # cp
# end
pcf, pfl1 = ise[1].shift
if pcf && pcf.abs == rg['pc'] # cp
####### fl<< pfl1 # p
fl<< pfl1 # if pctj.pop != rg['pc'] # p
else
# if ! pcff
ise[0]<< iset(rg) # p
pcf = rg['pc']
# pcf = -pcf if 0 > rg['ctr', 1]
pcf = -pcf if 0 >
rg.pg
####### ise[1]<< [pcf, fls(rg['pc'])] # p
ise[1]<< [pcf, fls(rg['pc'])] # if pctj.pop != rg['pc'] # p
next if pcoj.call
.
1284,1299c
# 0.step(@@rmth) { |n|
# 0.step(3) { |n|
# fl.reject_c!(1) { |v, n| v.resume(n)}
fl.reject!.with_index { |v, n| v.resume(n)}
# ise[1].each_index { |n|
ise[1].reject! { |pfl|
# (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0] # p
# (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0] # p
# fl<< pfl[1] if pfl[0].! || 0 <= pfl[0] # p
pfl && (pfl[0].! || 0 <= pfl[0]) && fl<< pfl[1] # p
# pfl && (pfl.empty? || 0 <= pfl[0]) && fl<< pfl[1] # p
}
.
1280,1282c
# ise.reject! { |fis| fis.resume}
# ise[0].reject! { |fis| fis.resume}
.
1272a
# @@opg = ->(irep, rg, imem) { # l
# opg = -> { # |irep, rg, imem| # l
opg = -> { # l
c, sym = @@opf.(irep, rg['pc'], imem) # c
rg.push('cop', c)
rg.push('sym', sym)
# rg
}
.
1268a
@Slp.slp 0
.
1265,1266c
# if 0 > rg['ctr', 1]
if 0 >
rg.pg
.
1263c
# pco = nil
pco = []
.
1260c
# [callinfo, irep, rg]
.
1252,1257c
callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem) # c
## printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1244,1245c
callinfo.pd
### @sp = @callinfo[@cp]
.
1238,1241c
callinfo.pd
### @pc = @callinfo[@cp]
# pc = @callinfo[@cp] - 1
# rg['pc', -1] = @callinfo[@cp]
.
1231c
callinfo.pd
.
1227,1229c
stack[0] = stack[imem.getarg_a(cop)]
.
1225c
### @stack[@sp] = @stack[@sp + getarg_a(cop)]
.
1220,1223c
return stack[imem.getarg_a(cop)]
.
1217,1218c
if 0 ==
callinfo.pg
### return @stack[@sp + getarg_a(cop)]
.
1106,1212c
# case sym
case rg['sym']
.
1104c
jsc = Proc.new {
cop = rg['cop']
.
1100d
1097c
ise = [[], []]
.
1091c
@irep = irep
.
1087,1089c
imem = @imem
stack = @stack
callinfo = @callinfo
.
1085d
1080d
1076,1078c
sym = OPTABLE_SYM[imem.get_opcode(cop)]
.
1065,1068c
@@opf = ->(irep, pc, imem) { # l
.
1058,1062c
@@jsc = Proc.new { |stack, callinfo, irep, rg, imem|
cop = rg['cop']
# case sym
case rg['sym']
# 何もしない
when :NOP
# 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(cop)
## next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
# if @stack[rg['sp'] + imem.getarg_a(cop)]
if stack[imem.getarg_a(cop)]
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
# next
end
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
### if !@stack[@sp + getarg_a(cop)] then
# if !@stack[rg['sp'] + imem.getarg_a(cop)]
if !stack[imem.getarg_a(cop)]
## @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
## next
end
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
# SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
# 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
when :SEND
# a = getarg_a(cop)
a = imem.getarg_a(cop)
# mid = @irep.syms[getarg_b(cop)]
mid = irep.syms[imem.getarg_b(cop)]
# n = getarg_c(cop)
n = imem.getarg_c(cop)
### newirep = Irep::get_irep(@stack[@sp + a], mid)
# newirep = Irep::get_irep(@stack[rg['sp'] + a], mid)
newirep = Irep::get_irep(stack[a], mid)
if newirep then
### @callinfo[@cp] = @sp
# @callinfo[@cp] = rg['sp']
# callinfo[0] = rg['sp']
# @cp += 1
# callinfo.pi
# @callinfo[@cp] = @pc
# @callinfo[@cp] = rg['pc']
# callinfo[0] = rg['pc']
# @cp += 1
# callinfo.pi
# @callinfo[@cp] = @irep
# @callinfo[@cp] = irep
# callinfo[0] = irep
# @cp += 1
# callinfo.pi
callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
callinfo.pi 3
### @sp += a
# rg['sp'] += a
rg['sp', -1] = rg['sp'] + a
## @pc = 0
rg['pc', -1] = 0
# @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[rg['sp'] + a] = @stack[rg['sp'] + a].send(mid, *args)
stack[a] = stack[a].send(mid, *args)
end
# else
## printf("Unkown code %s ¥n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
end
[callinfo, irep, rg]
.
1048,1053c
@Slp.slp 0
Fiber.yield(0 == thi) ##
# sp = [sp].flatten
sp = [sb].flatten
.
1046c
(0 != thi && ht <= thi) ? thi = 0 : thi += 1
.
1043,1044c
pl.pl_es(pc1, opa)
pl.ctr_s(pc1) if 0 == thi
.
1040,1041c
# opa = opg.(thi) # c
# opa.push(k_sp, [sp]) if 0 == thi
opa = opg.(thi).push('ctr', [sp]) # c
.
1038c
# k_sp = @pla.assoc('sp')[1]
Fiber.new { ##
.
1028,1032c
if v # && if knid(fv, :Array)
if 'th' == k
if 0 == oi
# fv = [fv[oi] = th[oi] = imem.ta(fv[oi], cop)] + [[]]
lopa.push(thl[oi], imem.ta(fv[oi], cop))
k, fv = [thl[oi + 1], []]
else
fv[oi] = imem.ta(fv[oi], cop) if oi <= ht = fv.hgt
fv[oi] ? (k, fv = [thl[oi], fv[oi]]) : k = nil
# fv = th
end
end
# lopa.push(k, fv)
lopa.push(k, fv) if k
end
.
1020,1024d
1018c
# th = [] ##
thl = @@mh_thl
.
1006,1016c
fml = imem.fml('th', sym) || (
# printf("Unkown code %s ¥n", OPTABLE_SYM[imem.get_opcode(cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[rou(:get_opcode, cop)])
# printf("Unkown code %s ¥n", OPTABLE_SYM[@@rou.(:get_opcode, cop)]) # c
loc.verb("Unkown code #{sym} ") # .to_s
# return nil
# raise
## rg = Fiber.yield(nil)
)
bt = imem.fml('th', 'bt')[1 .. -1]
sb = sp
.
1003,1004c
pc1 = pc + 1
loc = @@loc
imem = @imem
pl = @pl
# i_lf = @idx['lf']
.
996,1001c
def iset(rg) ##
pc, sp, cop, sym = rg.to_ra('pc', 'sp', 'cop', 'sym')
.
991c
m = fy.(m, f) # c
.
979,989c
if 0 == m
# s.sp(sp ||= (plr = pl[i_sp])[0])
# s.sp(sp ||= (plr = [pl[i_sp]].flatten)[0]) if flg[0]
#
s.ps(sp ||= [pl[i_sp]].flatten[0]) if flg[0]
s.ps(sp ||= pl[i_sp].flatten[0]) if flg[0]
# plr ||= [sp]
# s.sp sp
r0, r1 = r
# pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])
# isr0 = [i, s, r0]
isr0 = [mt ? i : s, r0]
# sz = plr.size
sz = plr.size if flg[0]
if f
# if f && ktf
# r = r1 < sz && plr[r1] || lm.(isr0, r1) # c
r = r1 < sz ? plr[r1] : nil # isyoku tokusei
# r.nil? && r = lm.(isr0, r1) # c
r.nil? && r = lm.(r1) # c
s[r1] = sy ? [s[r1], r].inject(sy) : r
rs = [r1.to_xeh, r0.to_xeh]
elsif flg[0]
# elsif flg[0] && ktf
mx = 0xf
s.s.hgt <= mx && mx = s.s.hgt
# sz.step(mx) { |n| plr<< lm.(isr0, s[n])} # p c
sz.step(mx) { |n| plr<< lm.(s[n])} # p c
# (mx - sz).times { |n| plr<< lm.(isr0, s[n + sz])} # p c
# (mx - sz).times { |n| s[n + sz] && plr<< lm.(isr0, s[n + sz])} # p c
rs[1] = r0.to_xeh
elsif flg[-1]
# elsif flg[-1] && ktf
rs[0] = r1.to_xeh
end
.
967,977c
# if f.! || ! ktf
pl = lpl.pl_g(pc1) ##
sym, r = rslt(pl)
## for idx in (0 ... pl[i_th].size)
# for idx in (0 ... r.size)
## flg[idx] = lpl.ckth(pl[i_th][idx], 1) ## ####
# flg[idx] = lpl.ckth(r[idx], 1) ## ####
# end
r.each_with_index { |v, i| flg[i] = lpl.ckth(v, 1)} ## ####
# sp = pl[i_sp]
# sp = sp[0] if (ktf = knid(sp, :Array))
# f = ktf && ! flg.include?(false)
# f = ! flg.include?(false)
f = flg.all?
m = fy.(m, false) # c
.
963,965d
961c
Fiber.new { |m = 1|
.
916,957c
fy = ->(m, f) { # @Slp.slp 0
loc.verb "#{pc.to_xeh} #{sym} #{rs[1]} #{rs[0]}"
.
914a
pc1 = pc + 1
loc = @@loc
lpl = @pl
imem = @imem
# i_th = lpl.afl('th', ?i) # q
i_sp = lpl.afl(@pla.assoc('sp')[1], ?i) ## # q
f = false; flg = [false] # ; ktf = false
s = Stack.new
# i = @irep[0]
i = @irep
plr = []
# sp, wd, isr0, r0, r1, lm, sy = [][0]
# r = 0; r0, r1 = [nil, nil]
# pl, sp, r, r0, r1, sym, pr = nil
# pl, sp, mt, r, r0, r1, sym, pr = nil
pl, sp, mt, isr0, r, r0, r1, sym, pr = nil
rs = [?-, ?-] # q 2
# lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
## lm = ->(isr0, r1) {imem.send(pr, *isr0, r1, mt)} # l
lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l
# lm = ->(r1) {imem.send(pr, *isr0, r1, mt)} # l
.
911,912c
def fls(pc) ##
.
895,908c
r[1] = r[-1]
[pl[lpl.afl('sym', ?i)].to_sym, r] # q
# [pl[@pl.afl('sym', ?i)].to_sym, r] # q
.
876,892c
# knid(pl[lpl.afl('ctr', ?i)], :Array) && # q
# knid(pl[lpl.afl('ctr', ?i)][0], :Array) && # q
# lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1 # q # p
case pl[lpl.afl('ctr', ?i)][0]
when Array then lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1 # q # p
.
813,874c
def rslt(pl)
lpl = @pl
# r = pl[@pl.afl('th', ?i)] # q
r = [pl[lpl.afl('th0', ?i)]] # q
.
809c
ENVary.new(0).plm(pc)
.
788,797c
# @pl[0] =
# [['th', [[thini]]], ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
# @pl[0] = [['th', [[thini]]], [thl[0], [thini]], [thl[1], [thini]],
# ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
pl[0] = [[thl[0], [thini]], [thl[1], [thini]],
['sym', [0]], ['ctr', []]]
# ['sym', [0]], ['ctr', []], ['Numeric', [0]]] # furui mattn/mruby-json
# @pla = [['sp', 'ctr']]
.
785c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 #
http://www.monami-ya.jp/
.
781c
thl = @@mh_thl
.
778a
# def plini
.
757,760c
@pla = [['sp', 'ctr']]
####### @pl.nmrcf
.
751,752c
thini = [false, 0]
# @pl = ENVary.new(rmth + 1, [thini], [], [])
# @pl = ENVary.new(rmth + 1, [thini], thini, thini, [], [])
# @pl = ENVary.new(rmth + 1, thini, thini, [], [])
# plini
# @pl = ENVary.new(true) # 410200plini
plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], [])) # 310200plini ?
.
748a
rmth = @@rmth
.
746c
@irep = nil # 現在実行中の命令列オブジェクト
.
742a
@callinfo = Stack.new(0, []) # メソッド呼び出しで呼び出し元の情報を格納
.
741c
@stack = Stack.new # スタック(@spより上位をレジスタとして扱う)
.
736,737c
GC.start # g # antei ?
# @imem = Imem.new
@imem = @@Imem
@Slp = @@Slp
.
727,732c
@@rmth = 39
# @@loc = Loc.new
@@loc = LOC
# @@Imem = Imem.new
@@Imem = IMEM
# @@Slp = Slp.new
@@Slp = SLP
.
721a
include M__H
.
713a
# prepend M__Ist
.
711c
def ps(i)
@a.assoc('ctr')[1] = i
end
def pg
@a.assoc('ctr')[1]
end
def to_ra(*a)
.
707c
# case v when Numeric then 'pc' == k && v == @a.assoc(k)[i] && v = -v end # cp
.
693,697c
@a.assoc(k)[i]
# v = @a.assoc(k)[i]
## v = v.abs if knid(v, :Numeric) # cp
# v = v.abs if 'pc' == k && ?- != m # cp # q
# v
.
655,656c
def pg() @p end
# def pi() @p += 1 end
def pi(i = 1) @p += i end
def pd() @p -= 1 end
# def sp(*a)
def ps(i)
# p id = self.object_id
# a.empty? || @p = a[0]
@p = i
# @p
.
652c
# @@m.unlock
# a
.
650c
# @@m.lock
.
644,646c
# @@m.lock
# s = @s
# @@m.unlock
@s[a[0] + @p]
.
635,640c
@p = sp; @s = s
# @p = sp; @m = m; @s = s
# @@m.lock
# s = @s
# @@m.unlock
# s
@s
.
618,620c
# def []=(*a)
## sleep 0
## @@Slp.slp 0
## a.to_s
# super
# end
.
614,616c
# def [](*a) # ok : monami-ya.mrb:60510200
## sleep 0
## @@Slp.slp 0
## a.to_s
# super
# end
.
610,612c
# def initialize
## @f = '' # cannot set instance variable (ArgumentError)
# end
.
607,608c
# @@f = 0x0.chr * (0x20 << 2)
# @@bm = 0xff.chr
.
601c
# class ENVary < Array
.
598a
# private
.
595,596c
@@Slp.slp
GC.start # g # antei ?
.
590a
## fpl = delif_c(1, fpl) { |fb, n| fb.resume(pc)} # ?
.
583a
#
self.pl(cto)
#
self.pl(pc - 1)
.
581c
# fpl<< self.plw(pc) if flg[0] # p
.
576c
## pc && 0 <= pc && fpl<< (@@plw ||= plw); GC.disable # p # g
.
571d
555,563c
idx += 1 unless arf = ckth(th[idx], 2)
arf ||= ckth(th[idx], 2)
th[idx] = pl_eg(pc, thl[idx]) if arf
# flg = ckth(pl_eg(pc, 'ctr'), 0) if ! flg # [sp]
flg ||= ckth(pl_eg(pc, 'ctr')[0], 0) # [sp]
# th = th[0 ... idx] if ckth(th[idx], 2) && flg
th = th[0 ... idx] if flg && (arf.! || ckth(th[idx], 2))
# idx += 1 ##
}
.
550,553c
# th = [] ##
thl = @@mh_thl
# th = [pl_eg(pc, 'th0'), pl_eg(pc, 'th1')]
# th = [pl_eg(pc, thl[0]), pl_eg(pc, thl[1])]
th = pl_g(pc, *thl)
idx = 0 ##
Fiber.new { ##
# while th[idx .. -1] = (thn = pl_eg(pc, 'th'))[idx .. -1] ##
loop {
# th = th[0 .. (mx = thn.hgt)] ####
mx = th.hgt
th[idx] = s_id(th[idx], pc - 1) if mx >= idx
if ckth(th[mx], 3)
# self.pl_es(pc, ['th', th])
th.each_index { |n| pl_es(pc, [thl[n], th[n]])}
# idx = idx == mx ? 0 : idx + 1 ###
flg = true ##
end
@@Slp.slp 0
Fiber.yield(flg && idx >= mx) ##
.
547d
542c
(loc = @@Loc).verb("#{pc.to_xeh} #{a[0]} #{a[1].to_xeh}")
.
520,526d
509,517c
while (0 == 1 & md) == a[(md & bf) >> 1]
# ((a[(md & bf) >> 1] ? 0 : 1) == 1 & md)
# ([true, false][1 & md] == a[(md & bf) >> 1])
md >>= bfsz
## 0 == lf ? return(false) : (md &= bf if 0 == lf >> bfsz) # ? mruby 70410200
0 == md >> bfsz && break
end # .!.!
.
480a
def to_ia(n, lpl = self)
[lpl = lpl[n], 0 != n && (return @@Plmg.(@@pl0i, lpl))][0] # r # c
end
.
475c
### aa.each_slice(2) { |k, v| send(k, v)}
.
453,455c
## knid(k, :Symbol) && (aa.push(k, v); next)
###### knid(k, :Symbol) && (aa.push(k, v); break)
# case k when Symbol then aa.push(k, v); break end
.
451c
# ary.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
a.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
.
445,447c
# def pl_es(n = 0, ary = nil, pl = nil)
def pl_es(n = 0, a = nil, pl = nil)
### aa = []
# pl[0 == n ? 1 : nil][idx(k)] = v
.
441c
# def pl_eg(n = 0, k)
def pl_eg(n, k)
.
437d
435c
# self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
.
431d
428c
# pl
a.empty? ? pl : a.map { |a| pl.afl(a, self)}
.
423,426d
419,420c
# 1 > n ? pl[idx0(n)] : pl
# if 1 > n then pl = pl[idx0(n)] end
.
417c
# self[n < 0 ? n + 1 : n][idx0(n)]
.
411,414c
# @@Idx0 = ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
@@Pldv = ->(pl) {pl.map { |a| a[1]}} # l
# def pl_g(n = 0)
# def pl_g(n)
def pl_g(n, *a)
.
393,397c
# ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
@@Loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
.
383c
# ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
@@Loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
371,372c
# @ary = Array.new(n)
(0 .. n).each{ |i|
# @ary = a
self[i] = *a
}
.
367c
n = a.shift
# @sz = a.size
if 1 > n
# @n = -n
# return self[@n]
return
end
.
363c
# def initialize(a = nil)
def initialize(*a)
.
360c
# @@loc = Loc.new(@@fl)
@@Loc = LOC
.
355,357d
341,347c
# @@Imem = Imem.new
@@Imem = IMEM
# @@slp = Slp.new
@@Slp = SLP
# @@fl = '‾‾ritepl'
# @@idb = @@fl
@@idb = FL
# @@fl += '.loc'
## @@fl += '/loc' # RISC OS ?
.
338a
include M__H
.
331a
IMEM = Imem.new
.
301,319c
# def s__sr0( *a) a[@@I_s__s][ a[@@I_s__r0]] end
# def s__r0( *a) a[@@I_s__r0] end
# def s__sr01( *a) a[@@I_s__s][ a[@@I_s__r0] + 1] end
## def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
## def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
## def s__i__r0( *a) a[@@I_s__i].send(a[@@I_s__mt])[a[@@I_s__r0]] end
# def s__i__r0( *a) a[@@I_s__s].send(a[@@I_s__mt])[a[@@I_s__r0]] end
# def s__r1_eq_sr01(*a) a[@@I_s__s][ a[@@I_s__r1]] ==
# a[@@I_s__s][ a[@@I_s__r0] + 1] end
@@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
def s__sr0( *a) a[0][ a[@@I_s__r0]] end
def s__r0( *a) a[@@I_s__r0] end
def s__sr01( *a) a[0][ a[@@I_s__r0] + 1] end
# def s__i_pool_r0( *a) a[@@I_s__i].pool[ a[@@I_s__r0]] end
# def s__i_syms_r0( *a) a[@@I_s__i].syms[ a[@@I_s__r0]] end
def s__i__r0( *a) a[0].send(a[@@I_s__mt])[a[@@I_s__r0]] end
def s__r1_eq_sr01(*a) a[0][ a[@@I_s__r1]] ==
a[0][ a[@@I_s__r0] + 1] end
def method_missing(*a) self.send(?s << a[0].to_s, *a[1 .. -1]) end
.
299c
# @@I_s__s = 0; @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
233,242c
@@fml.(lb).assoc(sym) # c
# (f = @@fml).(lb).assoc(sym) # c
.
209d
207a
LOC = Loc.new(FL << '.loc')
# LOC = Loc.new(FL << '/loc') # RISC OS ?
.
194a
# }
.
185,186c
# @@slp.slp 0
## (s ||= @@slp).slp 0
# (s ||= @@Slp).slp 0 # higokan ? mruby 70410200
@@Slp.slp 0
.
175a
# @@ploc = Fiber.new { |a|
# @@ploc = Proc.new { |*a|
.
169c
# @@slp = Slp.new
@@Slp = SLP
.
165a
.
158a
SLP = Slp.new
.
142,143c
# (r - 1).times {sleep 0}; GC.start; r.times {sleep t} # g # fuantei ( keisan gosa ) ?
(r - 1).times {usleep 0}; r.times {usleep t}
.
140c
# (r - 1).times {usleep 0}; GC.start; r.times {usleep t} # g # conf.gem :github => 'kimushu/mruby-sleep' # msleep usleep
.
29a
module M__H
@@mh_thl = (0 .. 1).map { |n| 'th' + n.to_xeh}
end
.
24,25c
FL = '‾‾ritepl'
.
2a
# Experimental : Merry HongmengOS memorial