Actions

Difference between revisions of "Integrated Circuit (IC10)"

From Unofficial Stationeers Wiki

m
(You'll need)
 
(12 intermediate revisions by 10 users not shown)
Line 3: Line 3:
 
<!--T:1-->
 
<!--T:1-->
 
[[Category:Circuits]]
 
[[Category:Circuits]]
[[Category:MIPS Programming]]
+
[[Category:IC10 Programming]]
 
</translate>
 
</translate>
 
{{Itembox
 
{{Itembox
Line 15: Line 15:
 
<translate>
 
<translate>
 
<!--T:2-->
 
<!--T:2-->
A chip that is programmed with a [[computer]]. Place the circuit in a [[Kit (IC Housing)|IC Housing]].  The [[MIPS]] 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>
 
</translate>
  
 
= Where to get programs =
 
= Where to get programs =
* Write one by yourself using the [[computer]].
+
* 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).
Line 28: Line 28:
 
# Basic knowledge about math and logic
 
# Basic knowledge about math and logic
 
# Whatever you're intending to program (e.g.: cycling airlock) you must be learnt to do manually (e.g.: close doors, turn on vents, etc)
 
# Whatever you're intending to program (e.g.: cycling airlock) you must be learnt to do manually (e.g.: close doors, turn on vents, etc)
# Learn 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 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 really not going to develop those in the game anyways.
  
== How to start getting in the MIPS programing ==
+
== 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. MIPS keywords are abbreviations of English words and mostly make sense, eg. <code>beqz r0 foobar</code> means "'''B'''ranch (jump) to line labeled foobar if r0 '''EQ'''uals to '''Z'''ero".
+
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. <code>beqz r0 foobar</code> means "'''B'''ranch (jump) to line labeled foobar if r0 '''EQ'''uals to '''Z'''ero".
 
 
With due respect to involved people, learning programming by watching video (on youtube, etc) is waste of your time, do not do that.
 
  
 
= 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.
+
# 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.
# Turn on the computer 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).
+
# Insert [[Integrated Circuit (IC10)]] into [[Kit (IC Housing)|IC Housing]].
# Write/download a program and click "Export" on the computer. If IC housing is powered the program will immediately run.
+
# 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).
# When Circuit is picked up size of the program in bytes is shown.
+
## 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".
 +
# 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.
 +
 
 +
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 53: Line 56:
  
 
= How large a program can be =
 
= How large a program can be =
There are 128 lines each being 52 characters long. Each character (incl. line break) takes 2 bytes. Maximum size IC chip will show is 13566.
+
There are 128 lines each being 96 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.
  
 
= See also =
 
= See also =
* [[MIPS]] — basic info and command reference
+
* [[IC10]] — basic info and command reference
 
* [[Advanced IC10 Programming]]
 
* [[Advanced IC10 Programming]]
* [https://stationeering.com/tools/ic Stationeering.com] by Melair — online emulator and command reference.
+
* [[WebEditor]] - Various web simulators and editors for IC10. Support partially simulating presence of different devices.
 +
** [https://stationeering.com/tools/ic stationeering.com] by Melair - IC simulator and a web version of the in-game guidebook
 +
** [https://ic10.dev/ ic10.dev] by Traineratwot
 +
** [https://ic10emu.dev ic10emu.dev] by Ryex
 +
* Syntax highlighting plugins for various editors
 +
** [https://marketplace.visualstudio.com/items?itemName=Traineratwot.stationeers-ic10 Visual Studio Code] - (Dec 12th 2023)
 +
** [https://pastebin.com/6Uw1KSRN KDE kwrite/kate text editor] - (Oct 5th 2020)
 +
** [https://pastebin.com/3kmGy0NN Notepad++] - (Mar 23rd 2024)
 +
** [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://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 15:25, 15 October 2024

Other languages:
English • ‎français
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[edit]

  • 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[edit]

You'll need[edit]

  1. Basic knowledge about math and logic
  2. Whatever you're intending to program (e.g.: cycling airlock) you must be learnt 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 really not going to develop those in the game anyways.

How to start getting in IC10 programing[edit]

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[edit]

  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[edit]

  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[edit]

There are 128 lines each being 96 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.

See also[edit]