diff --git a/crypto/fift/lib/Disasm.fif b/crypto/fift/lib/Disasm.fif index 469871e3..b3623d00 100644 --- a/crypto/fift/lib/Disasm.fif +++ b/crypto/fift/lib/Disasm.fif @@ -2,11 +2,25 @@ library TVM_Disasm // simple TVM Disassembler "Lists.fif" include +variable @vmlibs dictnew @vmlibs ! +{ 256 u@ dup @vmlibs @ 256 udict@ } : vmlib@ +{ 8 u@+ swap 2 = } : libspecial? + variable 'disasm { 'disasm @ execute } : disasm // disassemble a slice +{ { space 0 over count 2- { 1+ 2dup [] type .", " } swap times 1+ [] type } { drop } cond } : std-show-op { 0 over count 1- { 1+ 2dup [] type space } swap times drop first .atom } : stk-show-op +{ ."// LIB: " swap X. cr ref@ spec PUSHREF - BLESS - EXECUTE }>c spec PUSHREFSLICE +}>c spec disasmc +