From e2a4e9ec81bbfcb5d3c507fe5cdab22898f60177 Mon Sep 17 00:00:00 2001 From: Obijuan Date: Fri, 27 Dec 2019 08:22:24 +0100 Subject: [PATCH] Readme update for release 0.3.0 --- README.md | 37 +++- locale/translation.js | 405 +++++++++++++++++++++++++++++++++++------- package.json | 2 +- 3 files changed, 376 insertions(+), 68 deletions(-) diff --git a/README.md b/README.md index 1e739e0..f468c07 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,24 @@ # Stdio Collection [![Icestudio](https://img.shields.io/badge/collection-icestudio-blue.svg)](https://github.com/FPGAwars/icestudio) -![Version](https://img.shields.io/badge/version-v0.2.0-orange.svg) +![Version](https://img.shields.io/badge/version-v0.3.0-orange.svg) Blocks for Standad Input-Output in different devices. ![](wiki/icestudio-stdio-logo.png) - ## Install -* Download the collection: [stable](https://github.com/FPGAwars/Collection-stdio/archive/v0.2.0.zip) or [development](https://github.com/FPGAwars/Collection-stdio/archive/master.zip) +* Download the collection: [stable](https://github.com/FPGAwars/Collection-stdio/archive/v0.3.0.zip) or [development](https://github.com/FPGAwars/Collection-stdio/archive/master.zip) * Install the collection: *Tools > Collections > Add* * Load the collection: *Select > Collection* ## Blocks * *Bus* + * stdin-stdout-adaptor * *stdin* * stdin-joiner + * stdin-mixer * stdin-spliter * *stdout* * adder-data-tic @@ -30,22 +31,31 @@ Blocks for Standad Input-Output in different devices. * PrintLn-OK * PrintLn-base-4 * PrintLn-bit + * hterm-bit-stdout + * hterm-bit + * hterm-bitx2 * *Memory* * *02-bits* * Print-ram-2x1-bit * *Device* * Serial-rx * Serial-tx + * stdin-bin-keyboardX4 * stdin-serial + * stdout-LEDs-8 * stdout-serial * *Others* * *Getc* * Getc-bit * Getc-char + * *InputLn* + * inputln-bit-echo + * inputln-bitx2-echo * *Input_* * input-bit-echo * input-bit * *Print* + * Print-base4-bin * Print-str-02 * Print-str-04 * Print-str-08 @@ -70,6 +80,7 @@ Blocks for Standad Input-Output in different devices. * *Putc* * putc-base4 * putc-bit + * putc-char-const * putc-char * *Regs* * 08-bits-shift-right-load-rst @@ -79,6 +90,13 @@ Blocks for Standad Input-Output in different devices. * 2x1-bits-memory-test * Base4-counter * Hello-world + * Mini-local-input-console-test-01 + * Mini-local-input-console-test-02 + * hterm-bit-stdout-test-1-2x1-memory + * hterm-bit-stdout-test-2-one-element-stack + * hterm-bit-stdout-test-3-two-elements-stack + * hterm-bit-test-1 + * hterm-bitx2-test-1-LEDs * ok-button * *General* * 01-print-matrix @@ -90,6 +108,8 @@ Blocks for Standad Input-Output in different devices. * 07-Hcalc-terminal * 08-Hcalc-expresion * 09-Hcalc-stack + * 10-Hcalc-two-elements-stack + * 11-Hcalc-2bits-acumulator * *Getc* * getc-bit-01 * getc-bit-02 @@ -97,6 +117,9 @@ Blocks for Standad Input-Output in different devices. * getc-char-01 * getc-char-02 * getc-char-03 +* *InputLn* + * inputln-bit-test-01-led-on-off + * inputln-bitx2-test-01-LEDs * *Input_* * Input-bit-01 * Input-bit-02 @@ -112,6 +135,8 @@ Blocks for Standad Input-Output in different devices. * Print-02-two-buttons-ASCII-art * Print-03-menu * Print-04-str-two-buttons + * Print-base4-bin-01-counter + * Print-base4-bin-02-two-buttons * *Test* * *asc* * Test-print-asc-02 @@ -155,6 +180,12 @@ Blocks for Standad Input-Output in different devices. * putc-char-06 * putc-char-07 * putc-char-08 +* *stdin-stdout* + * stdout-LEDx8-test-01 + * stdout-LEDx8-test-02 + * stdout-LEDx8-test-03 + * stdout-LEDx8-test-04 + * stdout-LEDx8-test-05 ## Authors diff --git a/locale/translation.js b/locale/translation.js index e2a34cc..906fc63 100644 --- a/locale/translation.js +++ b/locale/translation.js @@ -13,14 +13,28 @@ gettext('Device'); gettext('Others'); gettext('stdin'); gettext('stdout'); +gettext('stdin-stdout-adaptor'); +gettext('Adapter between the stdin and stdout buses'); +gettext('stdin bus splitter into data and tic signals'); +gettext('stdout bus joiner (data + tic)'); gettext('stdin-joiner'); gettext('stdin bus joiner (data + tic)'); +gettext('stdin-mixer'); +gettext('STDIN mixer. Combine two stdin buses into one'); +gettext('Biestable de datos (Tipo D). Cuando se recibe un tic por load se captura el dato'); +gettext('9 bits, 2-1 Multiplexor'); +gettext('Biestable con entradas de Set y Reset síncronas, para poner y quitar notaficaciones de eventos'); +gettext('**STDIN BUS 0**'); +gettext('**STDIN BUS 1**'); +gettext('Default input bus'); +gettext('Active stdin channel'); +gettext('By default, the channel 0 is selected \nDepending on the tic received, one \nchannel or another is selected'); +gettext('The tics are delayed one cycle \nThe fist cycle is used for selecting the \noutput channel, the next cycle cotaints the \nactual tic'); +gettext('## STDIN-Auto-Selector\n\nIt combines automatically two input STDIN buses \nWhenever a data is received on one of the buses, \nit is outputed into one single STDIN bus'); gettext('stdin-spliter'); -gettext('stdin bus splitter into data and tic signals'); gettext('adder-data-tic'); gettext('The data + tic signal are added into the stdout bus)'); gettext('joiner-2-data-tic'); -gettext('stdout bus joiner (data + tic)'); gettext('next-in'); gettext('Convert the 1-bit next signal into a 10-bit stdout bus'); gettext('next-out'); @@ -33,13 +47,11 @@ gettext('Serial print-str'); gettext('Print a constant string of 15 or less characters'); gettext('Comparador de un operando de 8 bits. Se compara si el operando es igual al parámetro'); gettext('10 bits, 2-1 Multiplexor'); -gettext('Biestable de datos (Tipo D). Cuando se recibe un tic por load se captura el dato'); gettext('Un bit constante a 0'); gettext('Un bit constante a 1'); gettext('16-bytes memory, initilized with a string'); gettext('Máquina de contar, de 4 bits, con entrada de stop'); gettext('Biestable de almacenamiento del estado de la máquina'); -gettext('Biestable con entradas de Set y Reset síncronas, para poner y quitar notaficaciones de eventos'); gettext('Detector de flancos de subida y bajada. Emite tic por las salidas correspondientes al detecta los flancos'); gettext('Puerta NOT'); gettext('Puerta AND'); @@ -155,9 +167,14 @@ gettext('The bit to be transmitted should be \nsyncronized with its transmit ti gettext('Character to transmit when \nthe input bit is 1'); gettext('Character to transmit when \nthe input bit is 0'); gettext('Select with character to transmit \naccording to the input bit'); -gettext('02-bits'); -gettext('Print-ram-2x1-bit'); -gettext('Serial debugger for print the address (1-bit) and data (1-bit) of a 2x1 RAM memory'); +gettext('hterm-bit-stdout'); +gettext('Hardware terminal with only two commands: 0 and 1'); +gettext('Emitir un tic inicial al arrancar, y nunca más. Se esperan 32 tics antes de emitir el tic de inicialización'); +gettext('Detector de flanco de subida. Emite un tic cuando detecta un flanco ascendente'); +gettext('Separador de bus de 6-bits en 1 bit y bus de 5 bits'); +gettext('Contador del sistema, ascendente, de 6 bits, con enable '); +gettext('Componente genérico'); +gettext('Receptor serie asíncrono. Velocidad por defecto: 115200 baudios'); gettext('Print a constant string of 3 or less characters'); gettext('Máquina de contar, de 2 bits (cuenta hasta 4 ciclos)'); gettext('Registro de 2 bits con reset'); @@ -165,61 +182,219 @@ gettext('Sumador de un operando de 2 bits con una constante pasada como parámet gettext('Comparador de dos operandos de 2 bits'); gettext('Valor genérico constante (menos 1), de 2 bits. Su valor se introduce como parámetro. Por defecto vale 0'); gettext('4-bytes memory, initilized with a string'); +gettext('Read one bit from the input console, with edition (delete). Finish when enter is pressed'); +gettext('When activated, it waits for a bit to be received codified in the '0' and '1' symbols by default. The received character is echoed (if valid)'); +gettext('When activated, it waits for a bit to be received codified in the '0' and '1' symbols by default'); +gettext('Valor genérico constante, de 9 bits. Su valor se introduce como parámetro. Por defecto vale 0'); +gettext('Detect one bit'); +gettext('Codificador de 2 a 1. La salida zero se activa cuando ninguna entrada está activada'); +gettext('Get a constant character'); +gettext('Demultiplexor de 1 bit, de 1 a 2'); +gettext('Print the Initial message'); +gettext('**MAIN**'); +gettext('Print the prompt'); +gettext('Blank command'); +gettext('Input the digits!'); +gettext('## HTerm-bit\n\nHardware terminal with two commands: 0 and 1'); +gettext('## STDIN serial\n\nSerial receiver for the STDIN bus\n'); +gettext('**STDIN Bus** \n* Data received (8 bits) \n* tic (1 bit)'); +gettext('## INPUTLN-BIT-ECHO \n'); +gettext('**STDIN BUS**'); +gettext('State of the machine'); +gettext('Received bit'); +gettext('**Start the machine**'); +gettext('Blank cmd'); +gettext('Select machine or \ntransparent channel'); +gettext('Wait for the '0' or '1' characters'); +gettext('Stop the machine \n(Abort)'); +gettext('It only works if \nthe machine is active'); +gettext('Machine state:'); +gettext('The machine stops \nwhen the user press \nENTER or an abort cmd \narrives'); +gettext('Send the string for deleting \nthe previous digit'); +gettext('**BUFFER** \nfor 1 bit'); +gettext('**Buffer state:** \n0: empty \n1: Full '); +gettext(' When a digit is \n received the buffer \n is full'); +gettext('If the BS key is \nreceived the buffer is \nempty'); +gettext('When the machine is \nOFF the buffer is empty'); +gettext('The input starts when \nthe machine is turned on'); +gettext('If a valid BS is received, \nthe inputs is started'); +gettext('The input is stoped when \nthe machine is off'); +gettext('Waits for the BS character \nto be received'); +gettext('BS received'); +gettext('The BS is valid only if \nthe buffer is full'); +gettext('If the buffer is empty, \nthe BS is ignored'); +gettext('Wait for the ENTER \ncharacter'); +gettext('The ENTER key has \nbeen pressed'); +gettext('Depending on the state of \nthe buffer, the ENTER means \na blank command or a data command'); +gettext('When the stop input \nis activated, an \nabort tic is sent'); +gettext('## INPUT-BIT-ECHO \n\nWhen the machine is turned on, it waits for one \nof the two symbols (default: '0' and '1') and \ncoded them into oen bit, that is returned and \nthe machine is turned off\n\nThe valid symbols are sent through the \nstdout'); +gettext('**Echo generator** \nOnly the valid characters \nare echoed'); +gettext('## INPUT-BIT \n\nWhen the machine is turned on, it waits for one \nof the two symbols (default: '0' and '1') and \ncoded them into oen bit, that is returned and \nthe machine is turned off'); +gettext('Input machine state: \n0: OFF \n1: ON'); +gettext('If the machine is ON and the \nsymbol is valid, the tic is \nallowed to pass...'); +gettext('## GETC-BIT \n\nRead one bit of information. By default the \ncharacteres '0' and '1' are converted into \n1 bit'); +gettext('Check if the character received is one of \nthe two symbols expected'); +gettext('The current caracter matches the \nconstant specified (level output)'); +gettext('Tic ouptput. The current character \nmatches the constant'); +gettext('The character matches one \nof the two expected symbols '); +gettext('Output the current data \ntic to the rcv pin'); +gettext('## GETC-CHAR \n\nDetects if a constant CHAR has arrived'); +gettext('Check if the character received is the one \nexpected (set by the parameter. Default: 0)'); +gettext('Charactter detected: \nOutput the current data \ntic to the rcv pin'); +gettext('hterm-bit'); +gettext('hterm-bitx2'); +gettext('Hardware terminal with 2-bits binary commands'); +gettext('Input 2-bits data in binary, with edition (BS and ENTER)'); +gettext('Puerta OR de 3 entradas'); +gettext('Stack pointer for 2 elements'); +gettext('Comparador de igualdad, de un operando de 2 bits'); +gettext('Separador de bus de 2-bits en dos cables'); +gettext('Multiplexor de 2 a 1 de 2 bits'); +gettext('2-bits bidirection shift register (left - right)'); +gettext('Multiplexor de 2 a 1'); +gettext('Agregador de 2 cables en un bus de 2-bits'); +gettext('Valor genérico constante, de 10 bits. Su valor se introduce como parámetro. Por defecto vale 0'); +gettext('## HTerm-bit-stdout\n\nHardware terminal with two commands: 0, 1 and blank \nOther stdout blocks can be used'); +gettext('**AUX STDOUT BUS**'); +gettext('Combine the main serial stdin bus \nwith the second'); +gettext('When the inputln is active, \nthe output is also sent \nto the leds'); +gettext('## INPUTLN-BITx2-ECHO \n'); +gettext('If a bit is inserted in the buffer, \nand it is not full yet...'); +gettext('The receiver is activated if \nan active BS is received'); +gettext('2-position stack register \nIt constrols the buffer state'); +gettext('This tic is generated only if \nthe buffer in NOT empty'); +gettext('Insert the received \nbit in the buffer'); +gettext('Machine state'); +gettext('**BUFFER**: Bidirectional \nshift register \nIt stores the bits received \nWhen the BS is received, one \nbit is removed from the buffer'); +gettext('Reset the register \nwhen the machine starts'); +gettext('## SP-2 \nStack pointer for stacks of two elementos \n'); +gettext('The stack is empty'); +gettext('The stack is full'); +gettext('Push command'); +gettext('Pop command'); +gettext('According to the statck state, the \npush command is either ok or \noverflow!'); +gettext('According to the statck state, the \npop command is either ok or \nunderflow!'); +gettext('Load a new value \nin the SP register'); +gettext('**SP Register**'); +gettext('reset the SP'); +gettext('## 2-bits Shift register (left - right)\n\n'); +gettext('Shift to the left (to MSB)'); +gettext('Shift to the right (to lsb)'); +gettext('Input when shifting right'); +gettext('Input when shifting left'); +gettext('Perform the shift \n(etither right or left)'); +gettext('02-bits'); +gettext('Print-ram-2x1-bit'); +gettext('Serial debugger for print the address (1-bit) and data (1-bit) of a 2x1 RAM memory'); gettext('## Debugger: RAM 2x1\n\nComponent for debugging a 2x1 RAM \nPrint the Address A (1-bit) and the data D (1 bit) with \nthe format: \n\n```\n[A]: D\n```\n'); gettext('**Address**'); gettext('**Data**'); gettext('Serial-rx'); -gettext('Receptor serie asíncrono. Velocidad por defecto: 115200 baudios'); gettext('Serial-tx'); +gettext('stdin-bin-keyboardX4'); +gettext('Stdin Binary keyboard, composed of 4 keys: 0, 1, backspace and Return'); +gettext('FPGA internal pull-up configuration on the connected input port'); +gettext('Detección de pulsación. Emite un tic cada vez que se aprieta el pulsador'); +gettext('Codificador de 4 a 2, con prioridad. La salida zero se activa cuando ninguna entrada está activad'); +gettext('Detector de flanco de bajada. Emite un tic cuando detecta un flanco descendente'); +gettext('Circuito combinacional de 2 entradas y 8 salidas'); +gettext('## STDIN-Bin-KeyboardX4\n\nKeyboard componente with 4-inputs: 0, 1, Backspace and ENTER\n\n'); +gettext('**Return**'); +gettext('**Backspace**'); +gettext('**Key 1**'); +gettext('**Key 0**'); +gettext('**Pull-ups**'); +gettext('Convert to positive \nlogic'); +gettext('**4-1 Codec** \nOutput code: \n0: Key 0 \n1: Key 1 \n2: Backspace \n3: Return'); +gettext('Conversion table: \nGenerate the keycodes (8-bits) for \neach key'); +gettext('Key pressed tic: \nA tic is generated \neverytime a key is \npressed'); +gettext('When no keys are pressed, \nthe output is 1'); +gettext('**Pulsador-tic**'); gettext('stdin-serial'); -gettext('Componente genérico'); -gettext('## STDIN serial\n\nSerial receiver for the STDIN bus\n'); -gettext('**STDIN Bus** \n* Data received (8 bits) \n* tic (1 bit)'); +gettext('stdout-LEDs-8'); +gettext('8-bits Binary stdout device. The information is shown on the LEDs'); +gettext('Decodificador de 3 a 8, con salida en bus'); +gettext('Habilitación de bus de 8 bits'); +gettext('XOR bit a bit entre dos buses de 8 bits'); +gettext('Corazón de bombeo de tics a con periodo paramétrico de milisegundos'); +gettext('Timer in ms, with stop input'); +gettext('Máquina de contar, de 1 bit, con entrada de Stop'); +gettext('Biestable de cambio (Tipo T) con reset. Cuando se recibe un tic cambia de estado'); +gettext('3-bits up-down counter, with reset'); +gettext('Comparador de un operando de 4 bits. Se compara si el operando es igual al parámetro'); +gettext('Sumador de 4 bits (sin acarreo)'); +gettext('Multiplexor de 2 a 1 de 4 bits'); +gettext('Valor genérico constante, de 4 bits. Su valor se introduce como parámetro. Por defecto vale 0'); +gettext('Separador de bus de 4-bits en buses de 1 bits y 3 bits'); +gettext('8x1 bits RAM memory with parallel output'); +gettext('Demultiplexor de 1 bit, de 3 a 8 (salida de bus)'); +gettext('Separador de bus de 8-bits en 8 cables'); +gettext('Agregador de 8 cables de 1-bit a bus de 8-bits'); +gettext('Multiplexor de 8 a 1, con entradas de bus'); +gettext('Separador de bus de 8-bits en 1 buses de 6 bits y dos cables sueltos'); +gettext('8-bits bus weight inverter'); +gettext('## STDOUT LEDs\n\nShow the STDout in the LEDs \nThe less significant bit of the charactere \nreceived is shown at the current cursor position'); +gettext('Converti STDOUT into STDIN for reading \ninterpreting the received characteres \nusing stdin blocks'); +gettext('Process the \nENTER character'); +gettext('Other charactere received'); +gettext('Reset the device: \n* Clear all the leds \n* Cursor at home'); +gettext('BS received: \nmove the cursor back \none character \n(no deleting)'); +gettext('Data received! \nWrite the lsb in the current \ncursor position and \nmove to the next position'); +gettext('**Cursor controller**'); +gettext('The cursor is visible \nIt is inside the leds zone'); +gettext('Current cursor \nposition'); +gettext('cursor Position \nupdated'); +gettext('Move the cursor back \none character'); +gettext('Move the cursos forward \none character'); +gettext('Move the cursor \nto home'); +gettext('Generate the cursor: it is \none pixel that is blinking'); +gettext('Insert the next signal into \nthe stdout bus'); +gettext('Only take one cycle \nto process the character'); +gettext('Data to show in the LEDs \nEach address correspond to \none LED'); +gettext('Combine the data \nwith the cursor'); +gettext('Write the bit in the current \ncursor position'); +gettext('Semiperiod'); +gettext('**Arranque del** \n**temporizador**'); +gettext('**Salida de pulso**'); +gettext('**Salida de tic**'); +gettext('**Parametro del timer** \nmilisegundos a esperar'); +gettext('¿Estamos en el \nciclo 1?'); +gettext('Si es el ciclo 1 y \nse pide un ciclo \nnuevo: Terminar'); +gettext('## Synchronous 8x1-bit RAM (Parallel)\n\n* Both the read and write operation are \n synchronous\n* The memory has parallel output'); +gettext('Data input'); +gettext('Write tic'); +gettext('Paralell output'); +gettext('standart reading'); +gettext('**Each bit is store in its own flip-flop**'); gettext('stdout-serial'); gettext('Getc'); +gettext('InputLn'); gettext('Input_'); gettext('Print'); gettext('PrintLn'); gettext('Putc'); gettext('Regs'); gettext('Getc-bit'); -gettext('Detect one bit'); -gettext('Codificador de 2 a 1. La salida zero se activa cuando ninguna entrada está activada'); -gettext('9 bits, 2-1 Multiplexor'); -gettext('Valor genérico constante, de 9 bits. Su valor se introduce como parámetro. Por defecto vale 0'); -gettext('## GETC-BIT \n\nRead one bit of information. By default the \ncharacteres '0' and '1' are converted into \n1 bit'); -gettext('Check if the character received is one of \nthe two symbols expected'); -gettext('The current caracter matches the \nconstant specified (level output)'); -gettext('Tic ouptput. The current character \nmatches the constant'); -gettext('The character matches one \nof the two expected symbols '); -gettext('**STDIN BUS**'); -gettext('Select machine or \ntransparent channel'); -gettext('Output the current data \ntic to the rcv pin'); gettext('Getc-char'); -gettext('Get a constant character'); -gettext('## GETC-CHAR \n\nDetects if a constant CHAR has arrived'); -gettext('Check if the character received is the one \nexpected (set by the parameter. Default: 0)'); -gettext('Charactter detected: \nOutput the current data \ntic to the rcv pin'); +gettext('inputln-bit-echo'); +gettext('inputln-bitx2-echo'); gettext('input-bit-echo'); -gettext('When activated, it waits for a bit to be received codified in the '0' and '1' symbols by default. The received character is echoed (if valid)'); -gettext('When activated, it waits for a bit to be received codified in the '0' and '1' symbols by default'); -gettext('## INPUT-BIT-ECHO \n\nWhen the machine is turned on, it waits for one \nof the two symbols (default: '0' and '1') and \ncoded them into oen bit, that is returned and \nthe machine is turned off\n\nThe valid symbols are sent through the \nstdout'); -gettext('**Start the machine**'); -gettext('State of the machine'); -gettext('Received bit'); -gettext('**Echo generator** \nOnly the valid characters \nare echoed'); -gettext('## INPUT-BIT \n\nWhen the machine is turned on, it waits for one \nof the two symbols (default: '0' and '1') and \ncoded them into oen bit, that is returned and \nthe machine is turned off'); -gettext('Input machine state: \n0: OFF \n1: ON'); -gettext('If the machine is ON and the \nsymbol is valid, the tic is \nallowed to pass...'); gettext('input-bit'); gettext('asc'); +gettext('Print-base4-bin'); +gettext('Print a base4 number in Binary'); +gettext('Máquina de contar, de 1 bit'); +gettext('Registro de 2 bits'); +gettext('First the MSB is \nprinter, then the LSB'); +gettext('Bit to print: \n0: Bit 0 \n1: Bit 1'); +gettext('2-state machine \nTwo operation are needed'); +gettext('Print the current \nbit'); +gettext('Store the nunmber \nto print'); +gettext('Base 4 number to print'); +gettext('## PUTC-base4-bin: Transmit one base-4 number in Binary\n\nWhen activated, the base-4 number is sent as two binary \ncharacters (0/1)'); gettext('Print-str-02'); gettext('Print a constant 1-char string'); -gettext('Máquina de contar, de 1 bit, con entrada de Stop'); -gettext('Biestable de cambio (Tipo T) con reset. Cuando se recibe un tic cambia de estado'); gettext('2-bytes memory, initilized with a string'); -gettext('¿Estamos en el \nciclo 1?'); -gettext('Si es el ciclo 1 y \nse pide un ciclo \nnuevo: Terminar'); gettext('Print-str-04'); gettext('Print-str-08'); gettext('Print-str-128'); @@ -285,6 +460,9 @@ gettext('PrintLn-base-4'); gettext('PrintLn-bit'); gettext('putc-base4'); gettext('putc-bit'); +gettext('putc-char-const'); +gettext('Transmit one constant character to the STDOUT bus'); +gettext('## PUTC: Transmit one constant character '); gettext('putc-char'); gettext('08-bits-shift-right-load-rst'); gettext('8bits shift right register with reset and paralell load'); @@ -297,31 +475,25 @@ gettext('**Shift** right 1-bit'); gettext('Debug'); gettext('General'); gettext('Getc'); +gettext('InputLn'); gettext('Input_'); gettext('Input_echo'); gettext('Print'); gettext('PrintLn'); gettext('Putc'); +gettext('stdin-stdout'); gettext('2x1-bits-memory-test'); gettext('Biestable de cambio (Tipo T). Cuando se recibe un tic cambia de estado'); -gettext('Detección de pulsación. Emite un tic cada vez que se aprieta el pulsador'); gettext('Detect changed on the input signal '); gettext('Detect different clicks on the button: normal click, doble click or long click'); gettext('Pulsador con tic de cambio, pulsación y liberación de tecla'); gettext('Sincronizar las entradas de datos con el reloj del sistema'); gettext('Remove the rebound on a mechanical switch'); -gettext('Demultiplexor de 1 bit, de 1 a 2'); gettext('Test if a tic is received within time'); gettext('Timer in ms, with start and stop'); gettext('Corazón de bombeo de tics, cuyo periodo está especificado en micro-segundos. Solo se hace el bombeo cuando está habilitado'); gettext('Contador módulo M, ascendente, de 12 bits, con reset '); -gettext('Emitir un tic inicial al arrancar, y nunca más. Se esperan 32 tics antes de emitir el tic de inicialización'); -gettext('Detector de flanco de subida. Emite un tic cuando detecta un flanco ascendente'); -gettext('Separador de bus de 6-bits en 1 bit y bus de 5 bits'); -gettext('Contador del sistema, ascendente, de 6 bits, con enable '); -gettext('Puerta OR de 3 entradas'); gettext('2x1 bits RAM memory'); -gettext('Multiplexor de 2 a 1'); gettext('# 2x1 bits Memory\n\nExample of accesing to a 2x1 bits memory \n* Click on button 1: Change the current addres (0/1) \n* Click on button 2: Change the current data to write (0/1) \n* Long click on button 2: Writing the current data into the current address\n\n'); gettext('**Current address** \nIt is changed on everyt click \nof button 1'); gettext('Show current address \non LED7'); @@ -335,7 +507,6 @@ gettext('**Current data** \nIt is changed on every \ntick of button 2'); gettext('Show current data \non LED0'); gettext('## Memory'); gettext('Data from \nthe memory'); -gettext('**Pulsador-tic**'); gettext('## Change detector \n\nIt emits the followings tics:\n\n* When there is a rising edge on the input signal\n* When there is a falling edge\n* When there is either a rising or falling edge'); gettext('## Button-click-3 \n\nDetect three different types of clicks in the Button:\n\n* Normal click \n* Doble click \n* Long click'); gettext('When the button is pressed \nthe timer 1 is started'); @@ -377,8 +548,6 @@ gettext('Si es por stop: El timer ha abortado \nSi no, es una terminación norm gettext('**Parámetro**: Módulo del contador'); gettext('## Synchronous 2x1-bit RAM\n\n* Both the read and write operation are \n synchronous'); gettext('Address (0/1)'); -gettext('Data input'); -gettext('Write tic'); gettext('Depending on the address, \nsend the tic write to the \ncorresponding flip-flop'); gettext('Demux-2-1'); gettext('Flip-Flop 0'); @@ -395,6 +564,62 @@ gettext('Count from 0 to 3'); gettext('## Base 4 counter\n\nIt prints the count from 0 to 3 on \nthe console'); gettext('Hello-world'); gettext('## Hello World\n\nIt prints the string \"Hello World\" \nafter the reset'); +gettext('Mini-local-input-console-test-01'); +gettext('## Keyboard STDIN test: HTerm-LEDs\n\nThe 2-bits binary input is shown in two LEDs \nThe serial consola and the local keyboard STDIN \nare used'); +gettext('Mini-local-input-console-test-02'); +gettext('## 2-bits binary to decimal conversor\n\nThe 2-bits binary numbers are converted into \nit decimal representation (base 4: 0,1,2 and 3) \nThe numbers are introduced either by the serial console \nor the keyboard \n\nThe terminal edition is shown on the console and in \nthe external leds'); +gettext('Print the 2-bits number \nas a decimal digit'); +gettext('Show the terminal in \nthe LEDs console'); +gettext('Keyboard input'); +gettext('Show the number in the \nLEDs (in binary) '); +gettext('Number entered'); +gettext('The LEDs terminal es \nreset on every prompt \nrequest'); +gettext('Print the entered number on the \nconsole'); +gettext('Previous command finished \nRequest for the prompt'); +gettext('hterm-bit-stdout-test-1-2x1-memory'); +gettext('2x1 bits RAM memory with parallel output'); +gettext('Comparador de dos operandos de 1 bit'); +gettext('Blank cmd: \nDump the memory'); +gettext('## Memory dump'); +gettext('Select the address for accesing \nthe memory: \n0: Addres for writing \n1: Adress for reading'); +gettext('Address for reading'); +gettext('After reading, \nprint the data'); +gettext('Data to read'); +gettext('Write comand'); +gettext('Writing finished'); +gettext('Write pointer'); +gettext('The reading address \nis equal to the current \nwrite pointer'); +gettext('Conditional print: \nIf addr == wp: \n print(\"*\")'); +gettext('## Print the address and its content\n\nOne line is printed, with the address on the left \nand its content on the right. An * is printed if this \nis the current address to write\n\n```[0]: 0```'); +gettext('Before dumping the memory, the \nwrite pointer is incremented'); +gettext('## HTerm \n\n0,1 and blank commands'); +gettext('## Synchronous 2x1-bit RAM (Parallel)\n\n* Both the read and write operation are \n synchronous\n* The memory has parallel output'); +gettext('hterm-bit-stdout-test-2-one-element-stack'); +gettext('Stack pointer for 1 element'); +gettext('Blank cmd: \npop'); +gettext('## 1 element stack\n\nSimple stack composed of 1 bit. The interface is the HTerm \nThe digit introduce are store in the stack (only the first) \nIf another element is entered when the stack is full, the \noverflow message is gotten. \n\nThe blank command is used for poping the element. A pop command \nentered when the stack is empty will produce an undeflow message'); +gettext('Stack pointer for \n1 element stack'); +gettext('Turn on the LED when the \nstack is full'); +gettext('Turn on the LED when the \nstack is empty'); +gettext('Bit in the stack'); +gettext('Command finished \nPrint the prompt'); +gettext('Bit to store \nin the stack'); +gettext('**Stack state:** \n0: empty \n1: Full'); +gettext('## SP-1 \nStack pointer for stacks of only 1 element! \n'); +gettext('The push cmd is valid is the \nstack is empty'); +gettext('The pop cmd is only valid \nif the stack is full'); +gettext('According to the stack state, the \npop command is either ok or \nunderflow!'); +gettext('hterm-bit-stdout-test-3-two-elements-stack'); +gettext('## 2 elements stack\n\nStack composed of two elementos of 1 bit. The interface is the HTerm \nThe digit introduce are store in the stack\nIf another element is entered when the stack is full, the \noverflow message is gotten. \n\nThe blank command is used for poping elements. A pop command \nentered when the stack is empty will produce an undeflow message'); +gettext('Stack pointer for \na 2 elements stack'); +gettext('hterm-bit-test-1'); +gettext('# HTerm-bit\n\nMini-terminal with two commands: 0 and 1 \nThis commands are used for turning a LED on/off'); +gettext('Store the received \ncommand'); +gettext('hterm-bitx2-test-1-LEDs'); +gettext('## HTerm \n\n2-bits data and blank commands'); +gettext('## hterm-bitx2 Test: LEDs\n\nThe 2-bits binary input is shown in two LEDs \nThe blank comands reads the value stored'); +gettext('Print stored value'); +gettext('Store the number entered'); gettext('ok-button'); gettext('## PrintLn OK Test\n\nIt prints the string \"OK\" when the button \nis pressed'); gettext('01-print-matrix'); @@ -414,16 +639,12 @@ gettext('## Example 3: Cowsay \n\nCow say the state of the button :-)\n'); gettext('The button is pressed'); gettext('The button is released'); gettext('04-NOT-truth-table'); -gettext('Máquina de contar, de 1 bit'); gettext('## Example 4: Not gate truth table \n\nThe NOT truth table is generated automatically\n'); gettext('**Start here**'); gettext('Count machine'); gettext('## Circuit to simulate'); gettext('**New line**'); gettext('05-ram-2x1-bit-test-term'); -gettext('2x1 bits RAM memory with parallel output'); -gettext('Agregador de 2 cables en un bus de 2-bits'); -gettext('**MAIN**'); gettext('## Write-Mode STDOOUT'); gettext('Writting addr'); gettext('**Input data**'); @@ -434,15 +655,10 @@ gettext('## Write Mode Machine'); gettext('## Dump Mode Machine'); gettext('Select which address to use \ndepending on the mode'); gettext('# Terminal for a 2x1 bits Memory\n\nFirst you are asked for the memory values (writing mode) \nThen the memory values are printed on the console \nThe process is repeated indefinitely\n\n'); -gettext('## Synchronous 2x1-bit RAM (Parallel)\n\n* Both the read and write operation are \n synchronous\n* The memory has parallel output'); -gettext('Paralell output'); gettext('06-Hcalc-acumulator'); -gettext('Registro de 2 bits'); gettext('2-ops 2-bits adder (no carry)'); -gettext('Separador de bus de 2-bits en dos cables'); gettext('Wait for the user to enter \nthe '1' or '0' commands'); gettext('Print the welcome message'); -gettext('Print the prompt'); gettext('Total msg'); gettext('# HCALC-0.1-acumulator\n\n1-bit calculator. It calculates the adition of bits \nThe result is shown in 1 bit '); gettext('Operand to add'); @@ -469,8 +685,6 @@ gettext('La suma de numeros \nde 1 bit se implementa \ncon una puerta XOR'); gettext('Según el operando que toque, \nse almacena en un biestable \nu otro'); gettext('09-Hcalc-stack'); gettext('2-bits stack pointer'); -gettext('Multiplexor de 2 a 1 de 2 bits'); -gettext('Comparador de igualdad, de un operando de 2 bits'); gettext('# HCALC: Stack example 1\n\nAdding two 1-bit numbers using the stack \nIt is divided in two stages: \n\n1) Fist, the elements are introduce by \nthe user and stored on the stack\n\n2) Secod, the operands are read from the \nstack, added and printed the result on \nthe console'); gettext('Pushing 2 operands \ninto the stack'); gettext('Poping 2 operands \nfrom the stack'); @@ -503,6 +717,30 @@ gettext('The sp is NOT at TOP \nand up-tic is received'); gettext('It is ok to \nincrement the sp'); gettext('The sp is NOT EMPTY \nand down-tic is received'); gettext('It is ok to \ndecrement the sp'); +gettext('10-Hcalc-two-elements-stack'); +gettext('## HCalc stack \n\nTwo operands stack calculator. The elements are 1-bit \nFirst you should introduce two bits and the issue the \nblank commad. The sum is printer or an underflow error\n\n'); +gettext('Operation state: \n0: OK\n1: Underflow! \nEverytime a new command is started \nthe error is cleared'); +gettext('**Máquina para leer** \n**los dos operandos**'); +gettext('Current operand: \n0: First operand \n1: Second operand '); +gettext('According to the error, the done tic \nis sent to one block or another'); +gettext('pop the current operand'); +gettext('Store the operand in different \nflip-flips'); +gettext('Operand 0'); +gettext('Operand 1'); +gettext('Add the two \n1-bit operators'); +gettext('Read next operand'); +gettext('Result'); +gettext('11-Hcalc-2bits-acumulator'); +gettext('Sumador de 2 bits (sin acarreo)'); +gettext('Add command'); +gettext('Show the result on \nthe LEDs'); +gettext('**Print the result**'); +gettext('The operand introduce by the \nuser is only 1-bit. Convert \ninto a 2-bits number'); +gettext('The result is printed either \nit is a blank comand or an \nadd command'); +gettext('Add command: \njust capture the \nop1 + op2 value '); +gettext('operand 1'); +gettext('Operand 2'); +gettext('## HCalc 2-bits accumulator\n\nA 2-bits acumulator is used for adding the 0's and 1's introduced \nin the Hardware terminal. The result is printed on the console \nin binary\n'); gettext('getc-bit-01'); gettext('# GETC-BIT: Example 1\n\nReceive a bit of information, coded into the characters '0' and '1' \nWhen the characters '0' or '1' are received, a tic is emited by rcv \nand the bit is loaded into the flip-flop\n\nTherefore, using the keys \"1\" and \"0\" we control the state of the \nLED0\n'); gettext('A bit has arrived. Store it \nin the Flip-flop for showing \nin the LED'); @@ -558,6 +796,10 @@ gettext('Set input to 0'); gettext('## Circuit to TEST'); gettext('Detect a change in the input \nif so, print input and output'); gettext('Show the output in the LED'); +gettext('inputln-bit-test-01-led-on-off'); +gettext('# INPUTLN-BIT: Example 1\n\nMini-terminal with two commands: 0 and 1 \nThis commands are used for turning a LED on/off'); +gettext('inputln-bitx2-test-01-LEDs'); +gettext('## INPUTLN-BITx2-ECHO. Example 1\n\nThe user introduce 2 bits. When the Enter is pressed \nthese bits are shown in the LEDs\n'); gettext('Input-bit-01'); gettext('# INPUT-BIT: Example 1\n\nExample of the input-bit block. The state of the LED0 \nis set by the user after the initializacion, only once \nby pressing the '1' or '0' keys \nThen the OK! message is printed and no more read on the \nconsole are allowed'); gettext('Start the input machine \nafter the reset'); @@ -565,6 +807,7 @@ gettext('Wait for one bit from \nthe user'); gettext('Set the LED state with \nthe value given by user'); gettext('Input is done. Print the \nOK! message'); gettext('Prit the OK message after \nthe user has set the state \nof the LED'); +gettext('Abort button. The \ninput block is stoped'); gettext('Input-bit-02'); gettext('# INPUT-BIT: Example 2\n\nExample of activation of two different input \nunits. The first one wait for the user to \nenter \"0\" or \"1\". The second one waits for \nthe \"y\" or \"n\" symbols \nWhen finished, the selected LED is blinking or not \naccording to the user input'); gettext('Print the initial message \nafter the reset'); @@ -629,6 +872,14 @@ gettext('** Button 2 pressed**'); gettext('** Button 1 pressed**'); gettext('Print-04-str-two-buttons'); gettext('# PRINT: Example 4\n\nExample of the block print-str: printing the string \npassed as a parameter\n\nDepending on the button pressed, 1 or 2, the messages \n\"B1 \" or \"B2 \" are printed on the console\n'); +gettext('Print-base4-bin-01-counter'); +gettext('# PRINT-base4-bin: Example 1: Counter\n\nPrinting the numbers from 0 to 3 in binary'); +gettext('Show the number \nin the LEDs'); +gettext('Print-base4-bin-02-two-buttons'); +gettext('# PRINT-base4-bin: Example 2: Two buttons\n\nPrint the state of the two buttons as a 2-dibgit binary number \nIt is printed on every button's change'); +gettext('Number to print \n(in binary)'); +gettext('There is a change on \nsome button'); +gettext('Print in \nBinary'); gettext('asc'); gettext('str'); gettext('Test-print-asc-02'); @@ -716,7 +967,6 @@ gettext('Código ASCII del carácter A'); gettext('Corazón de bombeo de tics a con periodo paramétrico de segundos'); gettext('# PUTC-CHAR: Example 1\n\nExample of use of the putc-char block \nThe 'A' character is sent every second\n'); gettext('putc-char-02'); -gettext('Corazón de bombeo de tics a con periodo paramétrico de milisegundos'); gettext('# PUTC-CHAR: Example 2\n\nExample of chaining the putc-char block with the \nputc-bit block. The state of the button 1 is \nprinted on the console every 100ms\n\nFirst the state is printed, followed by a New line\n'); gettext('**Module 2** \nNew line '); gettext('**Module 1** \nPrinting the button \nstate'); @@ -760,3 +1010,30 @@ gettext('**Module 4**'); gettext('**Module 5**'); gettext('The module 1 is activated every 100ms \nAs all the modules are chained, when the \ni module is done, the i+1 module is started \n'); gettext('### Circuit to monitorize'); +gettext('stdout-LEDx8-test-01'); +gettext('# STDOUT-LEDx8: Example 1\n\nTesting the LEDx8 stdout device \n\nSend the bits 1 and 0 to the STDOUT bus, where the \n8-device LEDs is connected'); +gettext('Bit 1'); +gettext('Bit 2'); +gettext('**STDOUT** BUS '); +gettext('**Print Bit 1**'); +gettext('**Print Bit 0**'); +gettext('It only takes one cycle \nto process the character'); +gettext('stdout-LEDx8-test-02'); +gettext('# STDOUT-LEDx8: Example 2\n\nTesting two output devices connected to the \nSTDOUT BUS\n\nThe bits 0 and 1 are sent when the buttons 0 and 1 are \npressed respectively. They are printed on both devices: \nThe serial console and the LEDs'); +gettext('**OUTPUT DEVICE 1:** LEDS '); +gettext('**OUTPUT DEVICE 2:** SERIAL '); +gettext('**IMPORTANT** \n\nONLY one rdy signal should be inserted \non the STDOUT BUS: It should be the signal \nfrom the slowest device (in this case \nthe serial console is slower)\n'); +gettext('stdout-LEDx8-test-03'); +gettext('# STDOUT-LEDx8: Example 3\n\nThe state of the buttons 1 and 2 is printed on two consoles \nat the same time: the LEDs and the Serial port \nThey are only printed whenever there is a change in any \nof the buttons'); +gettext('**Button 1 state**'); +gettext('**Button 2 state**'); +gettext('Move the cursor 2 \ncharacters back'); +gettext('stdout-LEDx8-test-04'); +gettext('**STDIN BUS** '); +gettext('**STDOUT BUS** '); +gettext('# STDOUT-LEDx8: Example 4\n\nCombination of the output LED8 device with an input device \nThe keyboard is used for introducing 1s and 0s \nThe are printed on the current cursor position in the LEDs \nIf the backspace key is pressed, the cursor is moved back one \ncharacter. When ENTER is pressed a new line can be entered\n'); +gettext('The same output is shown in \ntwo group of LEDs'); +gettext('Board LEDs'); +gettext('External LEDs'); +gettext('stdout-LEDx8-test-05'); +gettext('# STDOUT-LEDx8: Example 5\n\nExample of combining 4 i/o devices: two inputs and two outputs\n\nTwo input devices are combined into one STDIN: \nThe serial input and the keyboard \nAll the characters inputed are written on both \noutput devices: serial and LEDs\n'); diff --git a/package.json b/package.json index dad5644..21c4330 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "Stdio", - "version": "0.2.0", + "version": "0.3.0", "description": "Blocks for Standad Input-Output in different devices", "keywords": "serial, io", "license": "GPL-2.0",