From ff80b3fe25ef783df2c80b0319c9d6b81e762e72 Mon Sep 17 00:00:00 2001 From: Desour Date: Wed, 30 Mar 2022 21:21:01 +0200 Subject: [PATCH 1/3] Add documentation for Microcontroller (And also fix invalid code in T-Flop example.) --- documentation.json | 1 + .../doc/microcontroller/description.html | 64 ++++++++++++++++++ .../doc/microcontroller/description.md | 59 ++++++++++++++++ .../doc/microcontroller/preview.png | Bin 0 -> 19204 bytes .../doc/microcontroller/recipe.png | Bin 0 -> 2954 bytes mesecons_microcontroller/init.lua | 2 +- 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 mesecons_microcontroller/doc/microcontroller/description.html create mode 100644 mesecons_microcontroller/doc/microcontroller/description.md create mode 100644 mesecons_microcontroller/doc/microcontroller/preview.png create mode 100644 mesecons_microcontroller/doc/microcontroller/recipe.png diff --git a/documentation.json b/documentation.json index f318501..b12dc6d 100644 --- a/documentation.json +++ b/documentation.json @@ -42,6 +42,7 @@ }, "Logic" : { "Luacontroller" : "mesecons_luacontroller/doc/luacontroller", + "Microcontroller" : "mesecons_microcontroller/doc/microcontroler", "FPGA" : "mesecons_fpga/doc/fpga", "FPGA Programmer" : "mesecons_fpga/doc/programmer", "Torch" : "mesecons_torch/doc/torch", diff --git a/mesecons_microcontroller/doc/microcontroller/description.html b/mesecons_microcontroller/doc/microcontroller/description.html new file mode 100644 index 0000000..eb4ef19 --- /dev/null +++ b/mesecons_microcontroller/doc/microcontroller/description.html @@ -0,0 +1,64 @@ + +

The Microcontroller is a semi-advanced programmable component with a persistent +256 bit EEPROM memory.

+

Warning: This device is largely considered deprecated and might contain bugs. It +is recommended to use a Luacontroller instead.

+

Detailed documentation can be found below:

+ diff --git a/mesecons_microcontroller/doc/microcontroller/description.md b/mesecons_microcontroller/doc/microcontroller/description.md new file mode 100644 index 0000000..1412347 --- /dev/null +++ b/mesecons_microcontroller/doc/microcontroller/description.md @@ -0,0 +1,59 @@ + + +The Microcontroller is a semi-advanced programmable component with a persistent +256 bit EEPROM memory. + +Warning: This device is largely considered deprecated and might contain bugs. It +is recommended to use a Luacontroller instead. + +Detailed documentation can be found below: + +* The Microcontroller's code is executed whenever any of the following events + happens: + * The Microcontroller is programmed. In this case the EEPROM and ports are all + reset to `0` before. + * An incoming signal changes its state. + * An `after` event happens (see command `after` below). +* There are 4 I/O ports (ABCD) and 256 EEPROM bits (1 to 256). +* The code consists of a sequence of commands. +* Everything after `:` is a comment. +* Strings are enclosed in `"`s. +* Spaces and tabs outside of strings are ignored. +* Basic command syntax: + ``` + command_name`(`param1`,` param2`,` ...`)` + ``` +* Commands: + * `if(condition) commands [> else_commands];`: + Evaluates the given condition and takes the corresponding branch. + The else branch is optional (as indicated by the `[` and `]`). The `>` is part + of the syntax and indicates the start of the else branch. The `;` marks the + end of the if command. + * `on(port1, port2, ...)`: + Sets the given ports to `1`. + * `off(port1, port2, ...)`: + Sets the given ports to `0`. + * `print("string" or codition, ...)`: + Evaluates the conditions and prints the concatenation of all params to stdout + (only useful in singleplayer). + * `after(time, "more commands")`: + Executes the commands in the string after the given time in seconds. + There can only be one waiting `after` event at once. + Warning: This is not reliable, ie. `minetest.after` is used. + * `sbi(port_or_eeprom, condition)`: + Evaluates the condition and sets the port or EEPROM bit to the resulting value. + Note: EEPROM indices don't use `#` here, ie. it's `sbi(1, #2)`, not `sbi(#1, #2)`. +* Conditions (sorted by descending precedence; they are all evaluated from left + to right): + * `0`, `1`: constant + * `A`, ..., `D`: value of a port. Takes writes that already happened during the + current execution into account. + * `#1`, ..., `#256`: value of an EEPROM bit. Takes writes that already happened + during the current execution into account. + * `!condition`: negation (can only be applied once, ie. not `!!1`) + * `condition1 = condition2`: XNOR (equality) + * `condition1 op condition2` where `op` is one of: + * `&`: AND + * `|`: OR + * `~`: XOR (inequality) + * Note: There are no parentheses. diff --git a/mesecons_microcontroller/doc/microcontroller/preview.png b/mesecons_microcontroller/doc/microcontroller/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..cf158824bbd51d2eb1b2a385446b80e8f5a4b23f GIT binary patch literal 19204 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 VJ7!-!^I&!>aG2@McyKW6>fZ$L%U=Kh literal 0 HcmV?d00001 diff --git a/mesecons_microcontroller/doc/microcontroller/recipe.png b/mesecons_microcontroller/doc/microcontroller/recipe.png new file mode 100644 index 0000000000000000000000000000000000000000..bf6ebd33f1e70c9f33b308d10be49b217bf84abc GIT binary patch literal 2954 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 nTh35C3r1@?_P3AmWjz1dw8AHshD^0aks literal 0 HcmV?d00001 diff --git a/mesecons_microcontroller/init.lua b/mesecons_microcontroller/init.lua index 7134dc5..885d599 100644 --- a/mesecons_microcontroller/init.lua +++ b/mesecons_microcontroller/init.lua @@ -120,7 +120,7 @@ minetest.register_node(nodename, { elseif fields.bnand then fields.code = "sbi(C, !A|!B) :A and B are inputs, C is output" elseif fields.btflop then - fields.code = "if(A)sbi(1,1);if(!A)sbi(B,!B)sbi(1,0); if(C)off(B,1); :A is input, B is output (Q), C is reset, toggles with falling edge" + fields.code = "if(A)sbi(1,1);if(!A)sbi(B,!B)sbi(1,0); if(C)off(B); :A is input, B is output (Q), C is reset, toggles with falling edge" elseif fields.brsflop then fields.code = "if(A)on(C);if(B)off(C); :A is S (Set), B is R (Reset), C is output (R dominates)" end From 29b8e18218dae0d3480ece868d5618dc6f6a2ce1 Mon Sep 17 00:00:00 2001 From: DS Date: Mon, 20 Jun 2022 23:26:57 +0200 Subject: [PATCH 2/3] suggestion on the parenthesis stuff Co-authored-by: sfan5 --- mesecons_microcontroller/doc/microcontroller/description.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mesecons_microcontroller/doc/microcontroller/description.md b/mesecons_microcontroller/doc/microcontroller/description.md index 1412347..5de328a 100644 --- a/mesecons_microcontroller/doc/microcontroller/description.md +++ b/mesecons_microcontroller/doc/microcontroller/description.md @@ -56,4 +56,4 @@ Detailed documentation can be found below: * `&`: AND * `|`: OR * `~`: XOR (inequality) - * Note: There are no parentheses. + * Note: Explicit precedence using parenthesis is not supported. From e2e4522de834355f34a2bd931e0e8abea75ee7b4 Mon Sep 17 00:00:00 2001 From: Desour Date: Mon, 20 Jun 2022 23:37:31 +0200 Subject: [PATCH 3/3] fix plural and update html --- mesecons_microcontroller/doc/microcontroller/description.html | 2 +- mesecons_microcontroller/doc/microcontroller/description.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mesecons_microcontroller/doc/microcontroller/description.html b/mesecons_microcontroller/doc/microcontroller/description.html index eb4ef19..af1e5c3 100644 --- a/mesecons_microcontroller/doc/microcontroller/description.html +++ b/mesecons_microcontroller/doc/microcontroller/description.html @@ -58,7 +58,7 @@ during the current execution into account.
  • ~: XOR (inequality)
  • -
  • Note: There are no parentheses.
  • +
  • Note: Explicit precedence using parentheses is not supported.
  • diff --git a/mesecons_microcontroller/doc/microcontroller/description.md b/mesecons_microcontroller/doc/microcontroller/description.md index 5de328a..a723537 100644 --- a/mesecons_microcontroller/doc/microcontroller/description.md +++ b/mesecons_microcontroller/doc/microcontroller/description.md @@ -56,4 +56,4 @@ Detailed documentation can be found below: * `&`: AND * `|`: OR * `~`: XOR (inequality) - * Note: Explicit precedence using parenthesis is not supported. + * Note: Explicit precedence using parentheses is not supported.