Open main menu

Difference between revisions of "SCI/Specifications/SCI virtual machine/Introduction"

m
Forgot to close correctly the fixed width text tags
(Merging of the SCI documentation)
 
m (Forgot to close correctly the fixed width text tags)
Line 76: Line 76:
Classes look similar to objects:
Classes look similar to objects:


*<tt>[00][01]:<tt> Magic number <tt>0x1234</tt>
*<tt>[00][01]:</tt> Magic number <tt>0x1234</tt>
*<tt>[02][03]:<tt> Local variable offset (filled in at run-time)
*<tt>[02][03]:</tt> Local variable offset (filled in at run-time)
*<tt>[04][05]:<tt> Offset of the function selector list, relative to its own position
*<tt>[04][05]:</tt> Offset of the function selector list, relative to its own position
*<tt>[06][07]:<tt> Number of variable selectors (= #vs)
*<tt>[06][07]:</tt> Number of variable selectors (= #vs)
*<tt>[08][09]:<tt> The 'species' selector
*<tt>[08][09]:</tt> The 'species' selector
*<tt>[0a][0b]:<tt> The 'superClass' selector
*<tt>[0a][0b]:</tt> The 'superClass' selector
*<tt>[0c][0d]:<tt> The '-info-' selector
*<tt>[0c][0d]:</tt> The '-info-' selector
*<tt>[0e][0f]:<tt> The 'name' selector (object/class name)
*<tt>[0e][0f]:</tt> The 'name' selector (object/class name)
*<tt>[10].@.@.@:<tt> (#vs-4) more variable selectors
*<tt>[10].@.@.@:</tt> (#vs-4) more variable selectors
*<tt>[08+@ #vs*2][09+@ #vs*2]:<tt> Selector ID of the first varselector (0)
*<tt>[08+@ #vs*2][09+@ #vs*2]:</tt> Selector ID of the first varselector (0)
*<tt>[0a+@ #vs*2].@.@.@:<tt> Selector ID of the second etc. varselectors
*<tt>[0a+@ #vs*2].@.@.@:</tt> Selector ID of the second etc. varselectors
*<tt>[08+@ #vs*4][09+@ #vs*4]:<tt> Number of function selectors (#fs)
*<tt>[08+@ #vs*4][09+@ #vs*4]:</tt> Number of function selectors (#fs)
*<tt>[0a+@ #vs*4].@.@.@:<tt> Function selector code pointers
*<tt>[0a+@ #vs*4].@.@.@:</tt> Function selector code pointers
*<tt>[08+@ #vs*4 +@ #fs*2][09+@ #vs*4 +@ #fs*2]:<tt> 0
*<tt>[08+@ #vs*4 +@ #fs*2][09+@ #vs*4 +@ #fs*2]:</tt> 0
*<tt>[0a+@ #vs*4 +@ #fs*2].@.@.@:<tt> Selector ID of the first etc. funcselectors
*<tt>[0a+@ #vs*4 +@ #fs*2].@.@.@:</tt> Selector ID of the first etc. funcselectors


Simply put, they look like objects with each selector section followed by a list of selector IDs.
Simply put, they look like objects with each selector section followed by a list of selector IDs.
245

edits