Autolathe/Internal Memory: Difference between revisions
From Stationeers Community Wiki
More actions
No edit summary |
m +ic10 category |
||
| (7 intermediate revisions by 5 users not shown) | |||
| Line 2: | Line 2: | ||
These are all of the [[Autolathe]] Internal Memory descriptions in the game. | These are all of the [[Autolathe]] Internal Memory descriptions in the game. | ||
</noinclude> | </noinclude> | ||
[[Category:IC10 Programming]] | |||
<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 | 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%;" | ||
| Line 17: | Line 18: | ||
! rowspan="3" | 1 | ! rowspan="3" | 1 | ||
| rowspan="3" | StackPointer | | rowspan="3" | StackPointer | ||
| rowspan="3" | | | rowspan="3" | The current address the stack pointer is pointing to. It cycles through the available addresses (0 through 53) in a single tick, making it look like it is decreasing for external observer. | ||
| rowspan="3" | 63 | | rowspan="3" | 63 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 31: | Line 32: | ||
! rowspan="4" | 2 | ! rowspan="4" | 2 | ||
| rowspan="4" | ExecuteRecipe | | rowspan="4" | ExecuteRecipe | ||
| rowspan="4" | | | 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 | | rowspan="4" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 48: | Line 49: | ||
! rowspan="2" | 3 | ! rowspan="2" | 3 | ||
| rowspan="2" | WaitUntilNextValid | | rowspan="2" | WaitUntilNextValid | ||
| rowspan="2" | | | 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 | | rowspan="2" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 59: | Line 60: | ||
! rowspan="3" | 4 | ! rowspan="3" | 4 | ||
| rowspan="3" | JumpIfNextValid | | rowspan="3" | JumpIfNextValid | ||
| rowspan="3" | | | 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 | | rowspan="3" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 73: | Line 74: | ||
! rowspan="3" | 5 | ! rowspan="3" | 5 | ||
| rowspan="3" | JumpToAddress | | rowspan="3" | JumpToAddress | ||
| rowspan="3" | | | rowspan="3" | This will jump to a specific address. This will set the stack pointer to the address you specify. | ||
| rowspan="3" | 0-53 | | rowspan="3" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 87: | Line 88: | ||
! rowspan="3" | 6 | ! rowspan="3" | 6 | ||
| rowspan="3" | DeviceSetLock | | rowspan="3" | DeviceSetLock | ||
| rowspan="3" | | | 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 | | rowspan="3" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 101: | Line 102: | ||
! rowspan="3" | 7 | ! rowspan="3" | 7 | ||
| rowspan="3" | EjectReagent | | rowspan="3" | EjectReagent | ||
| rowspan="3" | | | 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 | | rowspan="3" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 107: | Line 108: | ||
|- | |- | ||
| style="text-align:center;" | 8-39 | | style="text-align:center;" | 8-39 | ||
| Reagent_Hash | | [[Reagents|Reagent_Hash]] | ||
|- | |- | ||
| style="text-align:center;" | 40-63 | | style="text-align:center;" | 40-63 | ||
| Line 115: | Line 116: | ||
! rowspan="2" | 8 | ! rowspan="2" | 8 | ||
| rowspan="2" | EjectAllReagents | | rowspan="2" | EjectAllReagents | ||
| rowspan="2" | | | rowspan="2" | This instruction will eject all its reagents and pause execution till this is finished. | ||
| rowspan="2" | 0-53 | | rowspan="2" | 0-53 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 126: | Line 127: | ||
! rowspan="4" | 9 | ! rowspan="4" | 9 | ||
| rowspan="4" | MissingRecipeReagent | | rowspan="4" | MissingRecipeReagent | ||
| rowspan="4" | | | rowspan="4" | Contains information about missing reagents for current executing recipe. Appears only when autolathe is trying to execute instruction ExecuteRecipe when flag WaitUntilNextValid is present. The reagent hash returned may be either signed or unsigned 32-bit integer. If using rmap, you need to check and convert the value to signed by subtracting 2<sup>32</sup>. | ||
| rowspan="4" | 54-62 | | rowspan="4" | 54-62 | ||
| style="text-align:center;" | 0-7 | | style="text-align:center;" | 0-7 | ||
| Line 135: | Line 136: | ||
|- | |- | ||
| style="text-align:center;" | 16-47 | | style="text-align:center;" | 16-47 | ||
| Reagent_Hash | | [[Reagents|Reagent_Hash]] | ||
|- | |- | ||
| style="text-align:center;" | 48-63 | | style="text-align:center;" | 48-63 | ||
Latest revision as of 18:35, 2 April 2026
These are all of the Autolathe Internal Memory descriptions in the game.
Internal Memory
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 (0 through 53) in a single tick, making it look like it is decreasing for external observer. | 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 | Contains information about missing reagents for current executing recipe. Appears only when autolathe is trying to execute instruction ExecuteRecipe when flag WaitUntilNextValid is present. The reagent hash returned may be either signed or unsigned 32-bit integer. If using rmap, you need to check and convert the value to signed by subtracting 232. | 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 | |||||