Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Integrated Circuit (IC10): Difference between revisions

From Stationeers Community Wiki
spelling
Legolegs (talk | contribs)
Equipment with IC slots
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<languages/>
 
<translate>
 
<!--T:1-->
[[Category:Circuits]][[Category:Electronic]]
[[Category:Circuits]]
[[Category:IC10 Programming]]
[[Category:IC10 Programming]]
</translate>
 
{{Itembox
{{Itembox
  | name        = Integrated Circuit (IC10)
  | name        = Integrated Circuit (IC10)
Line 13: Line 12:
}}
}}


<translate>
 
<!--T:2-->
A chip that is programmed with a computer. Place the circuit in a [[Kit (IC Housing)|IC Housing]] or directly into the programmable slot of certain devices, e.g. [[Kit (Atmospherics)|Atmospherics]].  The [[IC10]] language is used.
A chip that is programmed with a [[computer]]. Place the circuit in a [[Kit (IC Housing)|IC Housing]] or directly into the programmable slot of certain devices, e.g. [[Kit (Atmospherics)|Atmospherics]].  The [[IC10]] language is used.
 
</translate>


= Where to get programs =
= Where to get programs =
* Write one by yourself using the [[computer]] or [[Laptop]].
* Write one by yourself using the [[Computer]] or [[Laptop]].
* Paste whatever you have found on the internet into your [[computer]].
* Paste whatever you have found on the internet into your computer.
* Load from your private library program you have saved previously (even from different savegame).
* Load from your private library program you have saved previously (even from different savegame).
* Get one from Steam Workshop (first subscribe in steam, then in game it will be available in "library" on computer).
* Get one from Steam Workshop (first subscribe in steam, then in game it will be available in "library" on computer).
Line 26: Line 24:
= How to create programs =
= How to create programs =
== You'll need ==
== You'll need ==
# Basic knowledge about math and logic
# Basic knowledge about math and [[logic]]
# Whatever you're intending to program (e.g.: cycling airlock) you must learn to do manually (e.g.: close doors, turn on vents, etc.)
# Whatever you're intending to program (e.g.: cycling [[airlock]]) you must learn to do manually (e.g.: close doors, turn on vents, etc.)
# (Optional) Learn some of the basics of the MIPS programming language. MIPS is real world low-level (i.e. close to hardware) programming language. IC10 is MIPS with some Stationeers flavor added. It is fairly simple and compact. Due to its simplicity MIPS is not suitable for big programs but you're really not going to develop those in the game anyways.
# (Optional) Learn some of the basics of the [[MIPS]] programming language. MIPS is real [[world]] low-level (i.e. close to hardware) programming language. IC10 is MIPS with some [[Stationeers]] flavor added. It is fairly simple and compact. Due to its simplicity MIPS is not suitable for big programs but you're really not going to develop those in the game anyways.


== How to start getting in IC10 programing ==
== How to start getting in IC10 programing ==
Line 34: Line 32:


= How to flash program onto the IC chip =
= How to flash program onto the IC chip =
# Setup a [[Computer]], wire it to power.
# Setup a [[Computer]], wire it to [[power]].
# Insert a [[Motherboard (IC Editor)]] in it.
# Insert a [[Motherboard (IC Editor)]] in it.
# Place [[Kit (IC Housing)|IC Housing]].
# Place [[Kit (IC Housing)|IC Housing]].
# Wire DATA (green, right) port of the computer to DATA (green, bottom) port on the IC Housing.
# Wire DATA (green, right) port of the computer to DATA (green, bottom) port on the [[IC Housing]].
## Unless you're going to actually use/test your program in this particular IC Housing you do not need to power it.
## Unless you're going to actually use/test your program in this particular IC Housing you do not need to power it.
# Insert [[Integrated Circuit (IC10)]] into [[Kit (IC Housing)|IC Housing]].
# Insert [[Integrated Circuit (IC10)]] into [[Kit (IC Housing)|IC Housing]].
Line 43: Line 41:
## Optional: click "Import" to retrieve a program from the [[Integrated Circuit (IC10)]] into the computer.
## Optional: click "Import" to retrieve a program from the [[Integrated Circuit (IC10)]] into the computer.
# Click "Edit" to open the code editor. Write/load from "Library"/paste your program, click "Confirm".
# Click "Edit" to open the code editor. Write/load from "Library"/paste your program, click "Confirm".
# Now Computer contains the new program and Integrated Circuit still contains old one (or empty program). Click "Export" on the computer to copy the program into the Circuit. If the IC housing is powered the program will immediately run. You can repeat "Export" as many times as you want and reuse old Circuits.
# Now Computer contains the new program and Integrated Circuit still contains old one (or empty program). Click "Export" on the computer to copy the program into the Circuit. If the IC housing is powered the program will immediately run. You can repeat "Export" as many times as you want and reuse old [[Circuits]].
# When Circuit is picked up size of the stored program in bytes is shown.
# When Circuit is picked up size of the stored program in bytes is shown.


Note: Steps 1-6 can be used with a [[Laptop]] now as well.  The laptop includes an IC housing so you don't have to place your own and wire it to edit chips.  This is limited to editing chips that are in the laptop (1 at a time) and cannot be used to edit chips already on the network.
Note: Steps 1-6 can be used with a [[Laptop]] now as well.  The laptop includes an IC housing so you don't have to place your own and wire it to edit chips.  This is limited to editing chips that are in the laptop (1 at a [[time]]) and cannot be used to edit chips already on the network.


= How to make use of programmed IC Integrated Circuit =
= How to make use of programmed IC Integrated Circuit =
Line 57: Line 55:
= How large a program can be =
= How large a program can be =
There are 128 lines each being 90 characters long. Each character takes 1 byte. Line breaks take 2 bytes. The Maximum size an IC chip can be is limited to 4096 bytes.
There are 128 lines each being 90 characters long. Each character takes 1 byte. Line breaks take 2 bytes. The Maximum size an IC chip can be is limited to 4096 bytes.
= What is kept and what resets =
Contrary to what maybe some players expect, the internal states of a Integrated Circuit do not get reset upon various events; furthermore, turning it off and on again does not always helps to resolve issues. The table below explains what and when is reset if ever:
{| class="wikitable"
|+ Circuit state
|-
!  !! Program code !! Current line<ref name=note1>Technically the current line and error state belong to the IC housing and can be read from it via the data parameters.</ref> !! Registers !! Stack !! Error state<ref name=note1/>
|-
| On insertion || kept || ''resets to 0'' || kept || kept || ''cleared''
|-
| On power switched or external power regained || kept || kept || kept || kept || ''cleared''
|-
| On error || kept || kept || kept || kept || ''error state raised, execution paused''
|-
| On program flashed from computer || ''new'' || ''resets to 0'' || kept || kept || ''cleared''
|-
| On program end || kept || ''current (last) line held forever'' || kept || kept || kept
|}
As one can see, the chip's stack and registers are never cleared automatically. A chip that was used and repurposed multiple times might have stored all kinds of data in its memory instead of some nice and comfortable initial zeroes. If a program in its working loop relies on the certain registers being initially zeroed it might not be the case which leads to program displaying a confusing behavior. Never use initialized variables, unless you know what you're doing (which might be some high order digital wizardry like initializing the registers and stack once with some ''program1'' and then utilizing it by the ''program2'').
The IC Housing's screw names set via <code>alias</code> and the  <code>Setting</code> parameter are also kept in all cases unless the IC Housing gets disassembled.
= Equipment with IC slots =
* [[Kit (IC Housing)|IC Housing]]
* [[Laptop]]
* [[Hardsuit]] and [[ HARM Suit]]
* [[Filtration]]
* [[Combustor]]
* [[Fermenter]]
* [[AIMEe]]
* [[Combustion Centrifuge]]
''To be expanded''


= See also =
= See also =
Line 71: Line 105:
** [https://drive.google.com/file/d/1Xrv5U0ZI5jDcPv7yX7EAAxaGk5hKP0xO/view?usp=sharing Notepad++] - (Aug 11th 2022)
** [https://drive.google.com/file/d/1Xrv5U0ZI5jDcPv7yX7EAAxaGk5hKP0xO/view?usp=sharing Notepad++] - (Aug 11th 2022)
** [https://drive.google.com/file/d/1yEsJ-u94OkuMQ8K6fY7Ja1HNpLcAdjo_/view Notepad++] - (Dec 1st 2018)
** [https://drive.google.com/file/d/1yEsJ-u94OkuMQ8K6fY7Ja1HNpLcAdjo_/view Notepad++] - (Dec 1st 2018)
* [https://github.com/jtwm-0677/Basic-10-Download BasIC-10 Download] A modernized BASIC to IC-10 compiler released in late 2025, for Stationeers MIPS Programming, Open Source, Developed in C#, no unity dependencies, By Dog Tired Studios
* [https://github.com/exca/Stationeers-IC10-Automation/tree/main/Basic-IC10 BASIC compiler] A BASIC compiler for Stationeers MIPS IC10 code, developed in C#, in Unity, by Exca
* [https://github.com/exca/Stationeers-IC10-Automation/tree/main/Basic-IC10 BASIC compiler] A BASIC compiler for Stationeers MIPS IC10 code, developed in C#, in Unity, by Exca
<references />
<references />

Latest revision as of 19:28, 9 April 2026


Integrated Circuit (IC10)
IC Housing and IC10 disassembled
Properties
Stacks No
Recipe
Created With Electronics Printer
Cost 10 Gold, 4 Steel, 5 Electrum, 2 Solder


A chip that is programmed with a computer. Place the circuit in a IC Housing or directly into the programmable slot of certain devices, e.g. Atmospherics. The IC10 language is used.


Where to get programs

  • Write one by yourself using the Computer or Laptop.
  • Paste whatever you have found on the internet into your computer.
  • Load from your private library program you have saved previously (even from different savegame).
  • Get one from Steam Workshop (first subscribe in steam, then in game it will be available in "library" on computer).

How to create programs

You'll need

  1. Basic knowledge about math and logic
  2. Whatever you're intending to program (e.g.: cycling airlock) you must learn to do manually (e.g.: close doors, turn on vents, etc.)
  3. (Optional) Learn some of the basics of the MIPS programming language. MIPS is real world low-level (i.e. close to hardware) programming language. IC10 is MIPS with some Stationeers flavor added. It is fairly simple and compact. Due to its simplicity MIPS is not suitable for big programs but you're really not going to develop those in the game anyways.

How to start getting in IC10 programing

Get some simple program (even 10 lines will do), run it in Stationeers to see what it does and then read the text. Look into ingame editor help pages to decrypt keywords. IC10 keywords are abbreviations of English words and mostly make sense, eg. beqz r0 foobar means "Branch (jump) to line labeled foobar if r0 EQuals to Zero".

How to flash program onto the IC chip

  1. Setup a Computer, wire it to power.
  2. Insert a Motherboard (IC Editor) in it.
  3. Place IC Housing.
  4. Wire DATA (green, right) port of the computer to DATA (green, bottom) port on the IC Housing.
    1. Unless you're going to actually use/test your program in this particular IC Housing you do not need to power it.
  5. Insert Integrated Circuit (IC10) into IC Housing.
  6. Turn on the Computer, look at its screen and see if your IC Housing is listed and selected in the drop-down selector. You can have several IC Housings on the same data network, in that case better be renaming them using Labeller. The IC10 Integrated Circuit itself can also be labeled (and painted).
    1. Optional: click "Import" to retrieve a program from the Integrated Circuit (IC10) into the computer.
  7. Click "Edit" to open the code editor. Write/load from "Library"/paste your program, click "Confirm".
  8. Now Computer contains the new program and Integrated Circuit still contains old one (or empty program). Click "Export" on the computer to copy the program into the Circuit. If the IC housing is powered the program will immediately run. You can repeat "Export" as many times as you want and reuse old Circuits.
  9. When Circuit is picked up size of the stored program in bytes is shown.

Note: Steps 1-6 can be used with a Laptop now as well. The laptop includes an IC housing so you don't have to place your own and wire it to edit chips. This is limited to editing chips that are in the laptop (1 at a time) and cannot be used to edit chips already on the network.

How to make use of programmed IC Integrated Circuit

  1. Place IC Housing, wire it to power, insert the Circuit
  2. Connect DATA (green, bottom) port on the IC Housing to machines you want to control. Some machines like an Autolathe have a DATA port, you need to use it (or both DATA and POWER). Some machines like a Stacker only have "universal" port.
  3. Unless you're going to modify/debug your program on place you do not require a Computer here.
  4. Using Screwdriver adjust six (or less) screws according to program description/purpose. Many programs do assign labels to screws using alias command (that's considered good style), to take benefit of it you can turn on IC Housing for a short time (that way it will blink yellow, it's okay). If all screws are set to "None" a misconfigured program can do no harm.
  5. Turn on the IC Housing.

How large a program can be

There are 128 lines each being 90 characters long. Each character takes 1 byte. Line breaks take 2 bytes. The Maximum size an IC chip can be is limited to 4096 bytes.

What is kept and what resets

Contrary to what maybe some players expect, the internal states of a Integrated Circuit do not get reset upon various events; furthermore, turning it off and on again does not always helps to resolve issues. The table below explains what and when is reset if ever:

Circuit state
Program code Current line[1] Registers Stack Error state[1]
On insertion kept resets to 0 kept kept cleared
On power switched or external power regained kept kept kept kept cleared
On error kept kept kept kept error state raised, execution paused
On program flashed from computer new resets to 0 kept kept cleared
On program end kept current (last) line held forever kept kept kept

As one can see, the chip's stack and registers are never cleared automatically. A chip that was used and repurposed multiple times might have stored all kinds of data in its memory instead of some nice and comfortable initial zeroes. If a program in its working loop relies on the certain registers being initially zeroed it might not be the case which leads to program displaying a confusing behavior. Never use initialized variables, unless you know what you're doing (which might be some high order digital wizardry like initializing the registers and stack once with some program1 and then utilizing it by the program2).

The IC Housing's screw names set via alias and the Setting parameter are also kept in all cases unless the IC Housing gets disassembled.

Equipment with IC slots

To be expanded


See also

  1. 1.0 1.1 Technically the current line and error state belong to the IC housing and can be read from it via the data parameters.