Zeal-Operating-System / ZealOS

The Zeal Operating System is a modernized fork of the 64-bit Temple Operating System, TempleOS.
https://zealos.net
The Unlicense
1.51k stars 71 forks source link

Please reconsider your addition of further confusion to the fonts and encoding situation on TempleOS #73

Closed ctrlcctrlv closed 1 year ago

ctrlcctrlv commented 1 year ago

Cf. https://github.com/rendello/templeos_font/issues/4

I don't care if you want to use a more modern style, but changing the codepoint identities is seriously annoying.

ctrlcctrlv commented 1 year ago

The problematic commit is 1745c7c4043207e07a099a8232e7759d1935fbe9 by @xmm15

ctrlcctrlv commented 1 year ago

The good news is it's not hard to restore the old font and rebuild the ISO.

image

I assume you won't accept a reversion that doesn't also maintain the new style, @TomAwezome?

I note also the replacement of an operator with an arrow. That should've gone in one of the blank spaces.

TomAwezome commented 1 year ago

Hi, did you try Ctrl-Alt-F to toggle between thin font and thick font? The thin font is custom made by me, the thick font is ported from https://www.fontspace.com/public-pixel-font-f72305 .

If you would like to make a change, please submit a PR. Thank you and have a great day

ctrlcctrlv commented 1 year ago

@TomAwezome This isn't a problem of my personal system but an encoding issue. Software won't be compatible if you change character identities like this.

TomAwezome commented 1 year ago

I'm not sure I understand what you mean, Zeal is compatible with IBM CP437 and all modern software provides the ability to decode byte strings in that format

TomAwezome commented 1 year ago

The only character bitmap changed distinctly is the Reverse Not Sign character, replacing it with a left-facing arrow, to use with CallerRep, of which I searched deep and found that the symbol does not ever get used in mathematics, nor any kind of proper formal usage. It was, as far as I could tell, the only available character in the VGA ROM font character map that has fallen out of use completely.

ctrlcctrlv commented 1 year ago

Yes, but, Terry's encoding is not actually IBM Code Page 437. That becomes clear when I open it and force the encoding to be IBM437.

image

ctrlcctrlv commented 1 year ago

There are plenty of open spaces and also you'll note duplications of characters found later between 0x02 and 0x0D. Terry also uses 0x1F as a "shift-space" as he called it, essentially it is a character that in TempleOS can co-exist with normal space (0x20) so that his automatic code formatting allowed him to mix tabs and spaces. I forget what video he explains it in. In a DolDoc, the shift-space is shown in grey.

TomAwezome commented 1 year ago

Sounds good. Once you've changed things to use the character positions that make more sense, make a PR please. Thank you

ctrlcctrlv commented 1 year ago

OK

TomAwezome commented 1 year ago

Once a PR is submitted, the changes can be reviewed and tested against the existing fonts and external build scripts

TomAwezome commented 1 year ago

I am also very early in development of a ZealC compiler/assembler/interpreter toolchain and will similarly test the changes against the prototype code on that to ensure it works the same before and after

ctrlcctrlv commented 1 year ago

Hey that's great, I had been thinking of working on that for a while. I really could ues a working Linux version of ToHTML.HC.Z lol.

TomAwezome commented 1 year ago

For the record, please keep this in mind: the "shift-space" functionality you mentioned was removed from ZealOS long ago, and is deprecated and no longer present in Zeal. So that character is no longer valid in Zeal's fontset nor source code. Also of note, the box-drawing characters Zeal uses are the IBM CP437 box drawing characters (so the "duplication" you mention doesn't exist in Zeal, unless the bitmaps for those regions happen to be left in the font bitmaps as legacy cruft).

Zeal does not use characters \0000 through \001F in the source code files, at all. (That I know of anyway!! I'd be interested to know if they do actually get used somewhere niche in the codebase!) Since Zeal code files do not use these characters, they should be fully compatible with IBM CP437.

TomAwezome commented 1 year ago

The only usage I know of a character in the \0000-\001F range that Zeal uses is the same character that stock TOS uses, the 0x5 character to track DolDoc cursor which the DolDoc code automatically embeds into code files when using the OS. In that situation, CursorRemove("/*"); can be run to clean those out of files before syncing VM files to repository. Whichever character TOS code files use from \0000-\001F for tab, is the same one Zeal uses. When opening ZealOS code files in Featherpad, they open automatically decoded as ISO-8859-1.