• General
  • BESCII the ASCII font for Basic Engine

Amstrad CPC 464 font updated to v1.1:

http://damianvila.com/basicengine/cpc464.ttf

Includes all Mac Roman and Windows 1252 characters (Western European languages), and the non-unicode characters mapping mentioned before.
Edit: the uppercase Eszett is included, even though is not included in Mac Roman and Windows 1252.

Alright, I have updated the CPC font and replaced C64 Pro Mono with BESCII. Excellent work, thanks a lot!

    uli Wonderful!
    Let me know if you need anything else with any other font.

    6 days later

    I couldn't contain myself, and created yet another font: ATASCII, based on Atari ASCII.

    ATASCII

    The glyphs are taken mainly from the Atari 8-bit family charset, with some from the Atari ST line (for example, the Hebrew glyphs and special chars), and a few modifications when the ST glyphs conflicted with the original glyphs.
    It has a very different flavour to PETSCII or Amstrad CPC 464 ASCII, since capital letters are smaller.

    You can get it here: https://damianvila.com/atascii/atascii.ttf

    I'm starting to publish all these on my GitHub:

    https://github.com/damianvila/font-bescii
    https://github.com/damianvila/font-cpc464

    When ready, this one will be at: https://github.com/damianvila/font-atascii (I still need to create the description and demo page).

    I hope you like it.

      Nice!

      Since you seem to be on a roll, could I be so bold as to request a 6x8 font? The HP 100 LX 6x8 font (which I got from https://int10h.org/oldschool-pc-fonts/fontlist/?2#hp) is quite nice, maybe it could be extended with Kana and whatever else is missing.

      The original BE had a 6x8 font with Katakana (https://github.com/uli/basicengine-firmware/blob/master/libraries/TTVoutfonts/font6x8tt.cpp), but I have removed it because it doesn't have a TTF version. Also, the Latin part is highly unattractive...

      [There is also a Japanese 6x8 with Kanji(!) at https://littlelimit.net/k6x8.htm, but I cannot open the TTF version of that in either Engine BASIC or fontforge; I don't know what's going on there. Either way, the author helpfully points out: "実用性極めて低し。" ("Very low practicality."). 😆 So I don't know if that helps with anything, maybe the Kana are usable.]

        uli No problem! I was planning on doing a 6x8, since I know you prefer that. 😉
        I'll try to make it as complete as possible, though kana in a 6x8 is really challenging, especially with the modifiers.

        (As a note: most kana or kanji pixel fonts I see are at least 12px tall. C64 is one of the few 8x8 one's out there).

        Edit: I just checked that 6x8 kanji... it's simply useless, as expected. You get a hint of the character, but need a lot of imagination to find out which one it is. 😛 The kana is useful. 👍

        uli Ok, here you have a first version. I called the font "Lexis" (for the "LX" in "100LX", which, by the way, comes from "Lotus eXpandable"):

        https://damianvila.com/lexis/lexis.ttf

        These are the included characters:

        Lexis chars

        They include all Mac Roman and Windows-1252 characters (for Western European Languages), Cyrillic, Hebrew, Greek (classic), Hiragana and Katakana (taken, from the 6x8 font you linked, I didn't want to take chances here, and prefer using something done by a Japanese person), all the included extra characters in the original font.

        Let me know what you think, or if you need anything else/different.

        It's in. Another excellent job, thanks a lot.

        10 days later
        4 months later

        Dmian
        I like the atascii font more than the other BASIC Engine fonts (maybe because my second computer in the 80s was a ATARI 600XL 😉 )
        Is there any way to make the atascii-Font the default font at bootup?
        Because it isnt one of the 4 default loaded font.
        @uli there isnt anything like a "AUTOEXEC.BAT" for the BASIC-Engine?
        Or can this be done in the config.ini?
        For now I have to
        CHDIR "/sys/fonts"
        FONT LOAD "atascii.ttf"
        FONT "atascii" SIZE 8,8

        BTW: Why cant I FONT LOAD "/sys/fonts/atascii.ttf" ?
        Gives me a Sytax error (expected numeric expression"

        • uli replied to this.

          guidol @uli there isnt anything like a "AUTOEXEC.BAT" for the BASIC-Engine?

          Yes, there is, and it's called -- wait for it -- AUTOEXEC.BAS. 😀

          guidol BTW: Why cant I FONT LOAD "/sys/fonts/atascii.ttf" ?
          Gives me a Sytax error (expected numeric expression"

          Because it's LOAD FONT, not FONT LOAD.

            uli
            AUTOEXEC.BAS did work fine 😉

            The font loading was my fault 🙁
            because of "FONT "atascii" SIZE 8,8
            I had in my head that the FONT keywork should also as the first in the other command 🙂
            The right order of command and it did work with the full path.

            Is the AUTOEXEC.BAS documented? Hadnt read it 🙁
            BTW: where could I find the Z-Code-Interpreter which is also mention on the webpage for the NG version?

            • uli replied to this.
              7 days later

              guidol Is the AUTOEXEC.BAS documented? Hadnt read it

              Not sure. Lots of things are not properly documented... :-/ The reference manual is pretty much limited to BASIC commands and doesn't contain much information on how to use the system. Feel free to write a user manual. 🙂

              guidol where could I find the Z-Code-Interpreter which is also mention on the webpage for the NG version?

              HELP XYZZY. Moving that to a module and replacing it with a more competent interpreter is also on some TODO list somewhere...

              3 years later

              I remembered this thread existed, lol!

              Well, Bescii updated to v2.

              I included a special nod to playing cards... see if you guys can tell what it is 😄

              (Pretty sure Ulrich knows what these are) 😉

              9 months later

              I decided I would try to port the TicTacToe program to BASIC engine. One port is a C-64 Commodore BASIC 2 that used graphic characters, the second port is a C-128 Commodore BASIC 7 using graphic commands, and the third port is a Quick BASIC using graphic commands. The C-128 is going well after changing the syntax to match BASIC engine. With the quick BASIC porting, I am having issues with the scope of variables in the main code and function code.

              In the C-64 port, I plan to use the BESCII font for the graphic characters in the program. The code has Print statements with graphic characters in "strings " to make the board, noughts and crosses. I know the BESCII font uses Unicode to access the graphic characters. The C-64 used different key combinations on the keyboard to print the graphic characters in strings in the C-64 code. Is there something like ALT code to print these Unicode characters in BASIC engine code? I noticed there are graphic characters in Print strings in the Tetris game code to print the playing screen in the program. How did these graphic characters get inserted in the Print strings?

              Thanks for helping me with these ports, I am use to using the C-64 and C-128 keyboards and limited to only 256 characters.

                Willard Hello!
                To modify the Tetris program I used a modern computer (a Mac). There’s a demo file in the project, and it has all the available characters in the font. So, using a modern computer and a modern IDE (like VSCode or Codium) you can copy from the demo file and paste the character in the BAS file, save and then transfer the program to BE using a SD card.
                I hope it helps. Cheers!

                6 days later

                @Dmian Thanks Dmian for you reply.

                It appears we are working at opposite ends of the software programming spectrum. I am using a Pentium III PC running Windows XP and coding with Notepad++ or PSPad. I told my wife I needed a Mac computer with a modern IDE and she just laughed. I guess I'm in the retro end of the software programming spectrum.

                Update to the porting project. The code I am porting started from Commodore PETSCII to ASCII. In Notepad++ and PSPad, I needed to change the encoding from ASCII to UTF-8 to use Unicode characters. When I do this, I'm able to copy and paste the graphic characters in strings from your Tetris game code to my code.

                The demo file I found is at this URL:

                https://github.com/damianvila/font-bescii/blob/main/demo/demo.html

                If this is not correct, let me know the correct URL to use.

                Using the demo file, I see a chart with the graphic characters that I can copy and paste into the code, but about half of the graphic characters display as squares in the chart and only copy and paste into the code as squares and don't display when the BE code is run. I am not sure why all the Unicode is not displaying in the html file with the browser.

                I am looking at two other porting projects that use PETSCII graphic characters. Does the PETSCII graphic characters display correctly in your Mac workflow system? Thanks for your help, the C-128 port is going well and I will work on the music PLAY code next.


                  • Edited

                  Willard Hi!
                  Yes, the file you linked is correct.
                  Normally, all characters over E000 won’t be displayed in any other font except Bescii, because those Unicode points are what’s called “Private User Area” or PUA. That’s a part of Unicode reserved for any person to define the character as they please, and what anyone can do there is different, so if you copy, say, E000, it may show something in Bescii and something completely different is Atascii (another of my fonts) simply because different characters are defined.

                  In most fonts, though, you’ll see squares, or blank spaces. This is normal, as most commercial or general use fonts don’t define anything specific in these Unicode spaces.

                  So, you can open the demo file in a browser in Windows XP, and as long as you are using an app that supports Unicode, that square you are copying should show the correct character when displayed using Bescii in BASIC Engine.

                  Working like this is a bit going blind, but it’ll still work in the end.

                  The way I set up the demo folder will normally display the characters using Bescii in any modern browser, as those support web fonts, but I think browsers in Windows XP had poor support for web fonts, or don’t support modern web fonts at all, so you’ll have to resort to copying the squares and hope you’re getting the correct character, I’m afraid.

                  As for knowing which character is what, I can provide an image with the characters and their position if you need it as a reference, so let me know and I’ll put it here for you.

                  Putting these characters in the PUA is the correct way to handle them, but sadly it makes it a bit impractical to use them in older systems. Make sure you're using Unicode everywhere, as any re-encoding may ruin the result.

                  Whatever you need, let me know. Cheers!

                  7 days later

                  Willard The C-64 used different key combinations on the keyboard to print the graphic characters in strings in the C-64 code. Is there something like ALT code to print these Unicode characters in BASIC engine code?

                  Not really. I hacked something into the original ESP8266 firmware so you can use the I-don't-even-remember-which modifier key to enter characters above 127, but I don't think that still works in the SDL version.

                  What would be very easy is to add a keyboard layout for entering graphics characters to /sys/kbd. The question is what that should look like, though. Unlike the Commodore devices contemporary PC keyboards don't have graphics characters printed on the key caps, and I guess it would be very hard to memorize the layout unless you're a PETSCII artist. (OTOH, there is the keyboard layout popup which might help with that.)

                  I was also thinking about something like the emoji menu that mobile device input methods have, but that would be a bigger effort to implement...

                  Willard I noticed there are graphic characters in Print strings in the Tetris game code to print the playing screen in the program. How did these graphic characters get inserted in the Print strings?

                  I don't remember anymore how they originally got in there, but I'm sure I used a script to convert them from the legacy encoding to UTF-8.

                  Powered by: FreeFlarum.
                  (remove this footer)