Actions

Difference between revisions of "Autolathe/Internal Memory"

From Unofficial Stationeers Wiki

(try)
 
(Internal Memory)
 
(5 intermediate revisions by 2 users not shown)
Line 4: Line 4:
 
<div style="width:auto; overflow:auto;">
 
<div style="width:auto; overflow:auto;">
 
=== Internal Memory ===
 
=== Internal Memory ===
These are all valid instructions, that can be written or read with IC10, on the Autolathe.
+
These are all valid instructions, that can be written or read with IC10, on Autolathe's stack.
  
 
{| class="wikitable sortable" style="width:100%;"
 
{| class="wikitable sortable" style="width:100%;"
 
! Op_code
 
! Op_code
 
! class="unsortable" | Name
 
! class="unsortable" | Name
 +
! class="unsortable" | Description
 
! class="unsortable" | Valid Address
 
! class="unsortable" | Valid Address
! class="unsortable" | Description
+
! class="unsortable" | Bits
 +
! class="unsortable" | Bits Description
 +
|-
 +
 
 +
! rowspan="3" | 1
 +
| rowspan="3" | StackPointer
 +
| rowspan="3" | The current address the stack pointer is pointing to. It cycles through the available addresses (53 through 0) in a descending manner.
 +
| rowspan="3" | 63
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-23
 +
| Index
 +
|-
 +
| style="text-align:center;" | 24-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="4" | 2
 +
| rowspan="4" | ExecuteRecipe
 +
| rowspan="4" | This instruction will set the device to the specified prefabhash, and then begin manufacturing it. The final element of the payload is the quantity. So you can ask the device to make 200 ItemSteelSheets and it will do that. The quantity is a byte - so the maximum you can request is 255.
 +
| rowspan="4" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-15
 +
| Quantity
 +
|-
 +
| style="text-align:center;" | 16-47
 +
| Prefab_hash
 +
|-
 +
| style="text-align:center;" | 48-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="2" | 3
 +
| rowspan="2" | WaitUntilNextValid
 +
| rowspan="2" | This is a flag that if there is an ExecuteRecipe in the next address, then it will wait until it can be completed. So if you put this before an ExecuteRecipe, the device will sit there till the order can be completed because it is waiting for ingredients.
 +
| rowspan="2" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="3" | 4
 +
| rowspan="3" | JumpIfNextValid
 +
| rowspan="3" | This is another flag that applies to the next address (if it is ExecuteRecipe). If the recipe cannot be completed, then the Fabricator will jump to the specified address.
 +
| rowspan="3" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-23
 +
| Stack_Address
 +
|-
 +
| style="text-align:center;" | 24-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="3" | 5
 +
| rowspan="3" | JumpToAddress
 +
| rowspan="3" | This will jump to a specific address. This will set the stack pointer to the address you specify.
 +
| rowspan="3" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-23
 +
| Stack_Address
 +
|-
 +
| style="text-align:center;" | 24-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="3" | 6
 +
| rowspan="3" | DeviceSetLock
 +
| rowspan="3" | This will set the lock state of the device (true 1, false 0), similar to the "L" IC instruction. Useful if you want to lock the device, do something, then unlock it.
 +
| rowspan="3" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-15
 +
| Lock_State
 +
|-
 +
| style="text-align:center;" | 16-63
 +
| Unused
 +
|-
 +
 
 +
! rowspan="3" | 7
 +
| rowspan="3" | EjectReagent
 +
| rowspan="3" | This allows you to specity the reagent you want to eject. All reagents of that type will be ejected. The stack will not advance until this is complete
 +
| rowspan="3" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-39
 +
| Reagent_Hash
 +
|-
 +
| style="text-align:center;" | 40-63
 +
| Unused
 
|-
 
|-
  
! rowspan="2" | On
+
! rowspan="2" | 8
| rowspan="2" | Boolean
+
| rowspan="2" | EjectAllReagents
| style="text-align:center;" | 0
+
| rowspan="2" | This instruction will eject all its reagents and pause execution till this is finished.
| Turns the device off. Also toogles the switch accordingly.
+
| rowspan="2" | 0-53
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 
|-
 
|-
| style="text-align:center;" | 1
+
| style="text-align:center;" | 8-63
| Turns the device on. Also toogles the switch accordingly.
+
| Unused
 
|-
 
|-
  
! RecipeHash
+
! rowspan="4" | 9
| Integer
+
| rowspan="4" | MissingRecipeReagent
|  
+
| rowspan="4" | Desc
| Sets the machine to the recipe corresponding to the written hash number.
+
| rowspan="4" | 54-62
 +
| style="text-align:center;" | 0-7
 +
| Op_code
 +
|-
 +
| style="text-align:center;" | 8-15
 +
| Quantity_Ceil
 +
|-
 +
| style="text-align:center;" | 16-47
 +
| Reagent_Hash
 +
|-
 +
| style="text-align:center;" | 48-63
 +
| Unused
 
|-
 
|-
  
! colspan="4" | <i>Update 0.2.4677.21598 - Fri 29/12/2023</i> <span class="right">[[Autolathe/Data Network|/Data_Network]]</span>
+
! colspan="6" | <i>Update 0.2.5025.22811 - Fri 02/07/2024</i> <span class="right">[[Autolathe/Internal Memory|/Internal Memory]]</span>
 
|}
 
|}
  
 
</div>
 
</div>

Latest revision as of 08:10, 12 November 2024

These are all of the Autolathe Internal Memory descriptions in the game.

Internal Memory[edit]

These are all valid instructions, that can be written or read with IC10, on Autolathe's stack.

Op_code Name Description Valid Address Bits Bits Description
1 StackPointer The current address the stack pointer is pointing to. It cycles through the available addresses (53 through 0) in a descending manner. 63 0-7 Op_code
8-23 Index
24-63 Unused
2 ExecuteRecipe This instruction will set the device to the specified prefabhash, and then begin manufacturing it. The final element of the payload is the quantity. So you can ask the device to make 200 ItemSteelSheets and it will do that. The quantity is a byte - so the maximum you can request is 255. 0-53 0-7 Op_code
8-15 Quantity
16-47 Prefab_hash
48-63 Unused
3 WaitUntilNextValid This is a flag that if there is an ExecuteRecipe in the next address, then it will wait until it can be completed. So if you put this before an ExecuteRecipe, the device will sit there till the order can be completed because it is waiting for ingredients. 0-53 0-7 Op_code
8-63 Unused
4 JumpIfNextValid This is another flag that applies to the next address (if it is ExecuteRecipe). If the recipe cannot be completed, then the Fabricator will jump to the specified address. 0-53 0-7 Op_code
8-23 Stack_Address
24-63 Unused
5 JumpToAddress This will jump to a specific address. This will set the stack pointer to the address you specify. 0-53 0-7 Op_code
8-23 Stack_Address
24-63 Unused
6 DeviceSetLock This will set the lock state of the device (true 1, false 0), similar to the "L" IC instruction. Useful if you want to lock the device, do something, then unlock it. 0-53 0-7 Op_code
8-15 Lock_State
16-63 Unused
7 EjectReagent This allows you to specity the reagent you want to eject. All reagents of that type will be ejected. The stack will not advance until this is complete 0-53 0-7 Op_code
8-39 Reagent_Hash
40-63 Unused
8 EjectAllReagents This instruction will eject all its reagents and pause execution till this is finished. 0-53 0-7 Op_code
8-63 Unused
9 MissingRecipeReagent Desc 54-62 0-7 Op_code
8-15 Quantity_Ceil
16-47 Reagent_Hash
48-63 Unused
Update 0.2.5025.22811 - Fri 02/07/2024 /Internal Memory