MightyPirates / TIS-3D

TIS-100 inspired low-tech computing in Minecraft.
https://www.curseforge.com/minecraft/mc-mods/tis-3d
Other
108 stars 35 forks source link

Terminal Module using #87

Closed Szasdragon closed 5 years ago

Szasdragon commented 5 years ago

I played with the terminal, sending hexadecimal codes to write on it.

The manual said it masks the code 0xff. But it use the less significant bits. May be a typo (0x00ff)?

I found the normal font in the assets, but it not equivalent to code 437 table. Not helps figure out what code need to a specific glyph. Also 0x0000 to 0x0020 glyphs not rendering on the terminal. But found the \bell (0x0007), \backspace (0x0008), \n or \r (0x000A and 0x000D). Couldn't locate the \tab code or it's no more than one glyph.

I would like write complex texts on the terminal from RAM or ROM. Or use the terminal to put data in to the RAM with glyph's code would be easier for me. But using second hand ASCII reference tables is awkward.

fnuecke commented 5 years ago

0xff is the same as 0x00ff :)

This is CP437 as Java provides it. To quote Wikipedia:

some APIs will not print some code points, in particular the range 1-31 and the code at 127. Instead, they will interpret them as control characters.

Which is what you observed. Some of said control characters are implemented, such as the bell, tab and newline, most are not because they don't really make sense in this context. Tabs are up to 2 wide in the terminal module, and will fill in spaces until the line length is divisible by the tab length (so until the length is an even number).

If you feel some control character would make sense after all, let me know which and what you think it should do in the context of the terminal module and reopen this, and I may have a look.