Pcode Opcode Meanings
==============================================================================
Prefixes:
------------------------------------------------------------------------------
Ad Address
IMP Import
Ld Load
Lit Literal (ie "Hi", 2,8)
Rf Refrence
St Store
V Virtual
DOC Duplicate/redundante Opcode (in the table it'll redirect you to another Opcode)
------------------------------------------------------------------------------
Variable types:
------------------------------------------------------------------------------
i# Integer (#-size:2,4)
Cy Currency
r# Real (#-Size:4,8-single)
Str String
------------------------------------------------------------------------------
Informative (takes no bytes tells to process data):
------------------------------------------------------------------------------
' > ' Put the "following hex in subsegments" to next offset following ARGSTR
Char should be "p" to procedure address
' h ' return hex output of following typechars. Possible (?%,&);
'} ' end Procedure
' < ' to stack
'|' Ignore
------------------------------------------------------------------------------
Arguments (would usually take bytes from the DataStream):
------------------------------------------------------------------------------
'.' The name of Object at the address specified by a Long off the datastream
' B ' a byte off the datastream-formerly '?
'% ' an integer off the datastream
' & ' A long off the datastream
'!' A single off the DataStream
' A ' an argument reference. followed by a Int and a type char.
Takes variable out of the Constantpool
' C ' return the control index,uses one int from the DataStream
' L ' return to local variable reference (uses int off datastream)
' L ' Take (Value of Int off DataStream) local variable references
' m ' return to local Variable reference followed by Typechar
' n ' return hex Integer
' O ' return item off the stack (POP)
' P ' return (value of an Integer off datastream) + Procedure Base Address
' t ' followed by Typechar (' O ' return objectname; ') C ' return control name)
' u ' push...not used anymore
' V ' vTable This is slightly complicated;)
' Z ' return null-termed Unicode String from File (not used?)
------------------------------------------------------------------------------
Type Characters
------------------------------------------------------------------------------
"B" Byte
"?" Boolean
"%" Integer
"!" Single
"&" Long
"~" Variant
"Z" String
------------------------------------------------------------------------------
2 Largebos
5 Invalidexcode
2 Selectcasebyte
1 DOC
3 Fldrfvar UL | ' Ignore used to load a copied var
3 IMPADLDRF A2
3 Memldrfvar
Modified 5 FMEMLDRF
3 FLDPR L | Ignore this loads a memory pointer for previous item? Stores memory items address in variable next function uses address in variable
5 Impadcallhresult
0A 5 ImpAdCallFPR4 h%h%
0B 5 ImpAdCallI2
0C 5 Impadcallcy
0D 5 Vcallhresult VW%P1
0E 3 VCallFPR8
0F 3 Vcallad UC | controlindex= (arg-760)/4
Ten to 5 Thisvcallhresult
3 Thisvcall
3 Thisvcallad
1 Exitprochresult}}
1 Exitproc}
1 ExitProcI2
1 ExitProcR4
1 ExitProcR8
1 exitproccy
3 Fstadfunc L | ' Always followed by FLDPR, i cant find a good not to ignore it
1 a 3 ffree1ad l |
1 B 3 Litstr Uaz |
1C 3 BRANCHF >p If (%p1) then| | End If
1D 3 Brancht >p
1E 3 Branch >up Goto LINE%P1
1F 3 Crec2ansi
3 Crec2uni
1 Fldprthis Uto |
3 IMPADLDPR
3 Fststrnopop
3 NEWIFNULLPR h%
1 Popadldvar | ' Ignore comes after a optional param
Num 3 arydesctemp
3 Litvar_missing L <
5 LitVarI2 La2 ' have something on this just confused
29-1 Ffreead L |
2 a 1 concatstr <%p2 &%P1
2 B 3 PopTmpLdAd2
2 C 5 LATEIDST
2d 3 Aryunlock
2E 3 Arylock
2F 3 Ffree1str L |
3 PopTmpLdAd8
3 Fststr ums%p1 =%p2
32-1 Ffreestr L |
3 Ldfixedstr
1 Cstr2ansi
3 Ffree1var L |
36-1 Ffreevar L |
Panax 1 PopFPR4
3 copybytes
1 PopFPR8
3 a 5 litvarstr LuAZ | ' Have something on this just confused
3 B 1 Ary1ststrcopy
3 C 1 Setlastsystemerror
3D 3 Castad
3E 3 Fldzeroad L |
3F 3 Cvarcy
1 ARY1LDRF
1 ARY1LDPR
1 Cr4var
3 Fststrcopy ul%p1=%p2
3 CVarI2
1 Error
3 Cvarstr L
3 Stfixedstr
3 ILDPR
1 PopAdLd4
4 a 1 Fnlenstr
4 B 3 Onerrorgoto ' questions on this one too
4C 1 Fnlbound
4D 5 Cvarref
4E 3 fstvarcopyobj ul%p1 =%p2 Ignore used to copy an object before passing
4F 3 midstr w Mid (%p4,%p3,%p2) =%p1
1 ci4str
Wuyi 3E DOC
1 Ary1stvar
1 Cboolcy