User:Zarutian/Smallcaps

From Erights

(Difference between revisions)
Jump to: navigation, search
m (Adding to the notes)
m (Still adding notes)
Line 5: Line 5:
The opcodes are:
The opcodes are:
-
   Hex Memnomic     Effects
+
   Hex Memnomic         Effects/Description
    
    
-
   0x1 OP_DUP       [x],[] => OP_DUP => [x, x],[]
+
   0x01 OP_DUP           [x],[] => OP_DUP => [x, x],[]
-
   0x2 OP_POP       [x],[] => OP_POP => [],[]
+
   0x02 OP_POP           [x],[] => OP_POP => [],[]
-
   0x3 OP_SWAP       [x, y],[] => OP_SWAP => [y, x],[]
+
   0x03 OP_SWAP         [x, y],[] => OP_SWAP => [y, x],[]
-
   0x4 OP_ROT       [x, y, z],[] => OP_ROT => [y, z, x],[]
+
   0x04 OP_ROT           [x, y, z],[] => OP_ROT => [y, z, x],[]
-
   0x5 OP_RETURN     [x],[] => OP_RETURN
+
   0x05 OP_RETURN       [x],[] => OP_RETURN
    
    
-
   0x8 OP_JUMP       [],[] => OP_JUMP(label) => [],[]
+
   0x08 OP_JUMP         [],[] => OP_JUMP(label) => [],[]
-
                    label := ?Waterken Whole num?
+
                        label := ?Waterken Wholenum?
-
   0x9 OP_BRANCH     [ootEjector, flag],[] => OP_BRANCH => [],[]
+
   0x09 OP_BRANCH       [ootEjector, flag],[] => OP_BRANCH => [],[]
-
   0xA OP_CALL_ONLY [recip, args...],[] => OP_CALL_ONLY(verb, arity) => [],[]
+
   0x0A OP_CALL_ONLY     [recip, args...],[] => OP_CALL_ONLY(verb, arity) => [],[]
-
   0xB OP_CALL       [recip, args...],[] => OP_CALL(verb, arity) => [result],[]
+
   0x0B OP_CALL         [recip, args...],[] => OP_CALL(verb, arity) => [result],[]
 +
                        verb := ?Waterken UTF8 string?
 +
                        arity := ?Waterken Wholenum?
 +
 
 +
  0x0E OP_EJECTOR_ONLY  [],[] => OP_EJECTOR_ONLY(label) => [ejector],[handler]
 +
                        when ejector is invoked: [...],[...] => ejector(_) => [],[]
 +
  0x0F OP_EJECTOR      [],[] => OP_EJECTOR(label) => [ejector],[handler]
 +
                        when ejector is invoked: [...],[...] => ejector(result) => [result],[]
 +
  0x10 OP_TRY          [],[] => OP_TRY(label) => [],[handler]
 +
                        when handler is invoked: [...],[...] => handler(arg) => [arg],[]
 +
                        when handler is dropped: [...],[...] => handler.drop(_) => [...],[...]

Revision as of 17:09, 30 January 2010

Notes of what I have cleaned from the incomplete spefication and implementation of Smallcaps.

Smallcaps is a bytecode based format of executable code.

The opcodes are:

 Hex Memnomic         Effects/Description
 
 0x01 OP_DUP           [x],[] => OP_DUP => [x, x],[]
 0x02 OP_POP           [x],[] => OP_POP => [],[]
 0x03 OP_SWAP          [x, y],[] => OP_SWAP => [y, x],[]
 0x04 OP_ROT           [x, y, z],[] => OP_ROT => [y, z, x],[]
 0x05 OP_RETURN        [x],[] => OP_RETURN
 
 0x08 OP_JUMP          [],[] => OP_JUMP(label) => [],[]
                       label := ?Waterken Wholenum?
 0x09 OP_BRANCH        [ootEjector, flag],[] => OP_BRANCH => [],[]
 0x0A OP_CALL_ONLY     [recip, args...],[] => OP_CALL_ONLY(verb, arity) => [],[]
 0x0B OP_CALL          [recip, args...],[] => OP_CALL(verb, arity) => [result],[]
                       verb := ?Waterken UTF8 string?
                       arity := ?Waterken Wholenum?
 0x0E OP_EJECTOR_ONLY  [],[] => OP_EJECTOR_ONLY(label) => [ejector],[handler] 
                       when ejector is invoked: [...],[...] => ejector(_) => [],[]
 0x0F OP_EJECTOR       [],[] => OP_EJECTOR(label) => [ejector],[handler]
                       when ejector is invoked: [...],[...] => ejector(result) => [result],[]
 0x10 OP_TRY           [],[] => OP_TRY(label) => [],[handler]
                       when handler is invoked: [...],[...] => handler(arg) => [arg],[]
                       when handler is dropped: [...],[...] => handler.drop(_) => [...],[...]
Personal tools
more tools