Andy,
Did you see where I loaded IBM PC Fonts to VERA !!. Its not even hard. You have to be in ISO mode for the mapping to work correctly so its not just a straight one to one with PETSCII glyphs. But the IBM graphics characters are there and available.
ISO mode
Re: ISO mode
Just for fun, I came up with a hybrid ISO character set which is like a combination of the symbols and arrows from IBM Code Page 437 and some of the box drawing and block/shading characters from PETSCII, where the PETSCII bitmaps are used where possible, and then I filled in some gaps.
The idea here was to observe what a Turbo Vision GUI tends to look like, and to provide enough of the characters to do something similar.
Anyway, the point is, if you delete the reverse characters, there's tons of space to put characters for UI elements, which is what X16 applications can do, provided the character set doesn't change locations in VRAM again in future Kernal revisions.
The idea here was to observe what a Turbo Vision GUI tends to look like, and to provide enough of the characters to do something similar.
Anyway, the point is, if you delete the reverse characters, there's tons of space to put characters for UI elements, which is what X16 applications can do, provided the character set doesn't change locations in VRAM again in future Kernal revisions.
- Attachments
-
- iso_hybrid.png (6.12 KiB) Viewed 19791 times
Re: ISO mode
I was looking into implementing or contributing to a framework similar to TurboVision, too. Probably not the full feature set, but some basics like drop-down menus, dialogues and controls (buttons, radio buttons, check boxes, drop-down lists etc). Not just drawing them on screen, but also all the event-handling etc.
Re: ISO mode
Oh heck yeah! GUI libraries are always fun projects.
Anyone's free to use any part of what I came up with in my post, if it's helpful.
Anyone's free to use any part of what I came up with in my post, if it's helpful.
Re: ISO mode
The halftone/checkerboard characters need a full complement like the block graphics... PETSCII doesn't have them but IMHO they're needed, or else don't bother. (Also, if you want to use the built-in ISO mode, you need to have $9F as a reverse-space because that's what the screen editor uses for the cursor character in that mode.)DragWx wrote: ↑Tue Dec 19, 2023 7:59 pm Just for fun, I came up with a hybrid ISO character set which is like a combination of the symbols and arrows from IBM Code Page 437 and some of the box drawing and block/shading characters from PETSCII, where the PETSCII bitmaps are used where possible, and then I filled in some gaps.
The idea here was to observe what a Turbo Vision GUI tends to look like, and to provide enough of the characters to do something similar.
Anyway, the point is, if you delete the reverse characters, there's tons of space to put characters for UI elements, which is what X16 applications can do, provided the character set doesn't change locations in VRAM again in future Kernal revisions.
Re: ISO mode
I put the halftone/checkerboard in because Turbo Vision uses those for scrollbar tracks and many DOS text-mode GUIs like using it as a backdrop for the windows to float on top of, though it's entirely possible that using the checkerboard pattern instead of the halftone looks ugly in practice, I haven't actually checked. I originally was going to put the 25%, 50%, and 75% dither blocks from 437, so that might be more useful.
Good catch, I completely overlooked that.(Also, if you want to use the built-in ISO mode, you need to have $9F as a reverse-space because that's what the screen editor uses for the cursor character in that mode.)
Re: ISO mode
The simple way to solve the inverted character cursor issue is to change the way the cursor works.
Instead of swapping bit 7 in the character cell, the editor could swap the foreground and background colors in the color cell. This would have the same effect as inverting the pixels, but it would allow for proper 256 character character sets.
In practice, this means bypassing all of the KERNAL screen printing routines and handling screen I/O yourself. The upside is you get full control over the character set; the downside is you have to write a few extra pages of code to mange the screen.
Instead of swapping bit 7 in the character cell, the editor could swap the foreground and background colors in the color cell. This would have the same effect as inverting the pixels, but it would allow for proper 256 character character sets.
In practice, this means bypassing all of the KERNAL screen printing routines and handling screen I/O yourself. The upside is you get full control over the character set; the downside is you have to write a few extra pages of code to mange the screen.
Re: ISO mode
This is with the character set I posted, but with the checker replaced with a wide halftone. This seems like it's enough for GUIs in ISO mode.
Re: ISO mode
Looks really good! And your example dialog makes my hungry .