Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
The format we’re working with here is a high-level language, so it’s not straightforward to add live predictions like in the in-game lb preview. In a low-level language such as IC10 MIPS, each operation expects only one very specific type of parameter, which makes it easier to anticipate the next token. In a Basic-style language, however, there’s no reliable way to predict whether the user intends to type "=", "+", "-", "C", "%", or something else, unless we integrate a machine learning component — which would add too much complexity for this context.
I’m open to any suggestions you might have for a simpler approach.
There were no major changes in the IC10 language, so yes, you can use it.
You asked how precise it is, I’m not sure how to answer that. Since it’s a compiler, the precision depends on your code. You’ll need to understand the device variables and how to use them to control the devices you need.
There are plenty of examples on GitHub to help you get started, and you can also join our Discord for support.
Cheers!
We have 512 line and not 128
The first result on google for "ChatGPT" is the tool, under OpenAI's site. OpenAI is just the business that develops it, perhaps you thought it was something different?
Anyways, here is the link : https://openai.com/
Technically, it is a completely different job. Unfortunately, it is very complex to do reverse compilation. In MIPS (the IC Code), you can program and use registers as you want. One function in MIPS can be part of many other functions when it comes to a higher-level programming language like Basic. So, there is no direct way to reverse the process and decompile a MIPS code.
What you can try is to use ChatGPT or any other tool that is able to read the Basic compiler documentation (you can download it and feed it to ChatGPT), and ask it to re-create your MIPS code into Basic.
Cheers,
Personally, I avoid using the save function altogether. I prefer to write and organize my code externally using Notepad++ (or any text editor), then use the compiler only to test and compile the script. When it's ready, I just copy and paste the final version into the game. This helps keep the in-game library clean and makes it easier to manage scripts by save or project. 😅
I know it's not the most flexible setup. Sorry for not having a better solution for you.
Cheers,
Great! 8 variables is exactly what I need.
An alternative you can consider is reading/writing on channels. It's not as powerful as reading/writing the stack, but you should be able to store 8 variables on a shared circuit this way.
Cheers!
But I have a question, is there any possibility to use direct writing to the stack using the "put" command?
No, they are not implemented.
The only option for now is to read a variable (for example the ReferenceID) using a .Name device, and compare it to 0.
I'm thinking about how I could implement the *dns functions dynamically, but I've tested earlier that they are not working with indirect addressing (example: bdns dr0 will return an error).
Any suggestion is welcome ;)
I will consider it for a future update ;)
thanks for the tool. It saves a lot of time. Something i needed 3 ours to writein IC10 took me only 15 minutes in has only half the lines of code.
I am missing only 2 convenience things that i would like to see in the language.
1. Array.Length: That would prevent the need to hardcode length in the FOR loop. Sometimes FOREACH cannot be used because the index is actually needed
2. Short variant of defining and filling an array like ARRAY test = [1,2,3].
Yes, giving it visibility on the Workshop if you like it. ^^
Unfortunately, it is very complex to do reverse compilation. For example, lookit at a loop in mips, you can't be sure if it should be a foreach, for-next, while. Also, when it cames to registers allocation, mips let you do anything, while a compiler like this one has strict rules about how to allocate a variables to mips registers. There is a lot of info on wikipedia about reverse compilers, very interesting though.
Cheers,
Cheers!
I can use a less cleaner way in the meantime but knowing might help for future projects.
This will speed IC10 learning a lot
Thank you!
A workaround should be to use batch or named aliases, so you never need to set up the input pins, and you could also detect the presence of the device (by checking a ReferenceID > 0 for example).
Cheers!
Cheers!
In the URL I provide an example of a script where yield needs to be removed, and also #comments may seem unnecessary
https://drive.google.com/file/d/1IMVRifDLwtllKLiYpmfSH7qGnbyRGBxq/view?usp=sharing
Why remove comments - to make it convenient to send the compiled code to friends in discord in a “pure” form, in the same example above there are comments that may seem unnecessary in IC10
I've partially addressed it:
- Cyrillic and Greek alphabets are now fully supported for variable names and comments (more tests and feedback are welcome!);
- Hiragana (and other Japanese alphabets), and Chinese characters can be used in comments (and possibly in variable names, although they might disrupt text caret positioning).
- Scripts using right-to-left writing (Arabic, and many others) are posing a real challenge and I will not be able to provide a quick fix until doing a complete overhaul of the tool. Sorry :(
About the VS Code integration, we had a prototype with @Traineratwot (who created the ICX extension), and there is still a lot of work to be compatible with VS Code. That is a Work In Progress.
Cheers!
lol i realise i should have read a little bit more in the comments, sorry about that. thanks for the reply anyways!
What's missing in my opinion:
1. Plugin for vscode
2. Support for other language characters in the input window, including Cyrillic
You can CTRL+Scroll to zoom in/out and change the font size. This is the only text setting I've implemented.
About the difficulty, I must recognize that it was not an easy task to create the compiler from scratch. I started 5 months ago, watched a lot of online courses, and worked on it only during my free time.
Cheers!
another question is, how difficult was it to create your own compiler? im a little interested in the process of making one simply for curiosity.
That's it. It's a distribution repository, not source code. So people can download and use it directly without having to know how to compile it.
For now, I cannot distribute the source code because of some internal and licensed tools in it. But I will work later on an open-source DLL with the compiler without GUI.
Cheers!
I will continue to develop more features in it, and I'm planning to add some object-oriented programming features for more advanced devs.
Cheers !
You can CTRL+Scroll to zoom in/out and change the font size.
Cheers!
One question though, is there any way to make the lettertype bigger within the code? On my 4K monitor the code looks really tiny. For example: https://i.imgur.com/Nl9MCxZ.png