daelvn
12/3/2017 - 2:09 AM

ore/rescii

ore/rescii

RESCII

Redstone Standard Code for Information Exchange

Table of characters

Shift In

SI00011011
00L0L1L2L3
01L4L5L6L7
10L8L9L10L11
11L12L13L14L15

Control I

L000011011
00NULBELSISO
01STMSTXETXETM
10EOLBASTABSP
11ENQACKNCKCEN

NUL - Empty BEL - Bell, Sound trigger, alert STM - Start of transmission STX - Start of text ETX - End of text ETM - End of transmission EOL - End of Line BAS - Backspace TAB - Horizontal Tabulation SP - Space ENQ - Enquiry ACK - Acknowledged NCK - Not acknowledged CEN - Cancel Enquiry

Control II

L100011011
00ESCBELSISO
01LFCRDLEDEL
10FFEMSUBCAN
11CLREFTONTOF

ESC - Escape BEL - Bell, Sound trigger, alert LF - Line Feed CR - Carriage Return DLE - Data link escape (Escapes 4 bytes) DEL - Supr key FF - Form Feed (New page) EM - End of medium (No screen/memory left) SUB - Substitute, request an identical response due to malformation CAN - Cancel the data stream CL - Clear REF - ?? TON - ?? On TOF - ?? Off

Latin I

L200011011
00ABSISO
01CDEF
10GHIJ
11KLMSP

Latin II

L300011011
00NOSISO
01PQRS
10TUVW
11XYZSP

Latin III

L400011011
0001SISO
012345
106789
110&!?

Latin IV

L500011011
00abSISO
01cdef
10ghij
11klmSP

Latin V

L600011011
00noSISO
01pqrs
10tuvw
11xyzSP

Extended I

L700011011
00\@SISO
01#$~%
10?!/\
11=+-*

Extended II

L800011011
00{}SISO
01<>[]
10():;
11.,_^

Size of character

The character size is always 4 bit, and you can store two characters in a byte. It is possible to use 224 characters ( removing SI and SO)

SI and SO

To move around character tables, on different levels, there are the Shift In SI and Shift Out SO control characters, that must be on every character table. One of the inconveniences of RESCII is that control codes such as EOL, SI L0, BEL or EM require more than one operation, so it might become slow. It's recommended that you use a separate RESCII processing unit, that is able to asynchronously change tables and pass back information to the CPU, and even perform tasks such as sending an ENQ.

Shift In SI

the RESCII Processing Unit should use the next 4 bits after a SI code to jump to another Character Table, BEL SI L5 BEL* *This will trigger a completely different signal, to be exact, the character b.

Shift Out SO

Perhaps the most useful character table function, as it switches between the current number and the one below. If you needed to put a lot of lowercase characters, you could, at the cost of more space and time, Shift In and change table, or you could go to L6 and use SO Let's write this is text: Using SI:

SI L6 t SI L5 h i SI L6 s SI L0 SP SI L5 i SI L6 s SI L0 SP SI L6 t SI L5 e SI L6 x t

Using SO:

SI L6 t SO h i SO s SP SO i SO s SP t SO e SO x t

RESCII Processing Unit

Main parts

  • Stream input
  • Stream output
  • Control output

Stream input

Stream input should be parsed according to the character table in use, character tables are hardcoded in the RPU, and a 4-bit register keeps track of the table. SI and SO codes are for internal use of the RPU, and a control output with an OK signal is enough.

Stream output

A stream output of 8 bits (for the 244 possible characters) that the CPU should be able to handle internally, since RESCII is just the encoding, not the way the CPU works with data.

Control output

Control output should be able to send interrupts, and possibly directly communicate with the network manager, for the network control codes.