flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > Booting Characters > 7-bits |
Author |
|
BAiC 18 Dec 2014, 00:35
there are only 3 scan code sets that I know of (raw data from keyboard). if you make a program like Windows' Character Map then you can generate a character set that's as large as you want (keyboard combos from the scan codes could be used as well).
it's mostly a software issue. that said; most people use a form of the UTF encoding scheme (which includes ASCII as a subset). if you want arbitrary glyphs then you'll need one of the bitmap video modes. VGA Text Mode only supports 256 characters that I know of. if you change the VGA Text Font dynamically it'll change everything on screen rather than an individual character. - Stefan _________________ byte me. |
|||
18 Dec 2014, 00:35 |
|
neville 18 Dec 2014, 03:36
smiddy, it might be worth reading up about code pages.
Later versions of M$-DOS could change character sets by loading code pages (usually .CPI files iirc). This is how non-English character sets were set up. The standard English/American character set was code page 437. Although only 256 characters (and 256 attributes) could be defined at one time, it was possible to produce "pseudo-graphical" user interfaces in text mode using graphics characters. _________________ FAMOS - the first memory operating system |
|||
18 Dec 2014, 03:36 |
|
baldr 18 Dec 2014, 03:58
smiddy,
VGA uses bit 3 of attribute byte to select one of character definition tables designated by two fields in Sequencer Character Map Select register (3C4/5[3]), along with foreground color. Thus you can display 512 different shapes simultaneously in text mode (probably halving foreground color palette). |
|||
18 Dec 2014, 03:58 |
|
smiddy 18 Dec 2014, 04:12
baldr wrote: smiddy, From your put, I would like to try to do something like Norton used to do for DOS, way back in the day, use the regular set, and then use the secondary set for the glyphs, if that is what they did, I'm not convinced their mouse driver wasn't actually a VGA graphics mode using a combination of drawing and text and glyphs. neville, I believe OS/2 had a similar scheme too, I'll give that a read. |
|||
18 Dec 2014, 04:12 |
|
revolution 18 Dec 2014, 06:45
smiddy wrote: I would like to try to do something like Norton used to do for DOS, way back in the day, use the regular set, and then use the secondary set for the glyphs, if that is what they did ... |
|||
18 Dec 2014, 06:45 |
|
smiddy 18 Dec 2014, 12:12
revolution wrote:
|
|||
18 Dec 2014, 12:12 |
|
baldr 18 Dec 2014, 18:22
smiddy,
There is small quirk in 9-dot A/N modes: ninth column of character cell is either blank or copy of eighth (for codepoints 0xC0…0xDF which usually contain line drawing glyphs). This behavior is controlled by Enable Line Graphics bit in Attribute Mode Control register of Attribute Controller (0x3C0/1[16], bit 2). |
|||
18 Dec 2014, 18:22 |
|
smiddy 18 Dec 2014, 18:31
Thanks for the heads up!
|
|||
18 Dec 2014, 18:31 |
|
smiddy 18 Dec 2014, 18:35
|
|||
18 Dec 2014, 18:35 |
|
Tomasz Grysztar 18 Dec 2014, 18:45
I did play with the character glyph definitions a lot when I learned assembly language back in the DOS days. Too bad my early programs did survive only in a binary form. My font editor used the VGA's feature of using two fonts at once so that you could see the entire font you edited and at the same time still have an UI using regular font.
|
|||
18 Dec 2014, 18:45 |
|
smiddy 18 Dec 2014, 19:32
Kewl, thanks! I will model it after this, nice. Too bad you don't have the sources though...
EDIT: I really like the scribble font! |
|||
18 Dec 2014, 19:32 |
|
smiddy 19 Dec 2014, 23:35
Tomasz
Do you happen to recall the *.f16 format? 8 x 16 bits per character = 128 bits/character = 16 bytes/character 16 bytes/character x 256 characters = 4096 bytes That appears right, but want to be certain. Offset 0 in *.f16 is the offset of the indexed character at 0, correct, and the rest follow suit? I am going to try to use a secondary font shortly after I edit a font to use for a TUI using your tool (which I will model later). Smiddy |
|||
19 Dec 2014, 23:35 |
|
smiddy 20 Dec 2014, 03:23
Yep, 8 x 16, got it working fairly quickly in DOS, using ports (mainly). Kewl! I used Tomasz's scribble.f16 as the second font.
I need to figure out how to turn off the intensity for the second font, but this is a decent start. Ignore the carriage return and line feed, I will filter those out of my routine later.
|
||||||||||
20 Dec 2014, 03:23 |
|
baldr 20 Dec 2014, 17:21
smiddy wrote: I need to figure out how to turn off the intensity for the second font |
|||
20 Dec 2014, 17:21 |
|
smiddy 20 Dec 2014, 18:02
baldr wrote:
Thanks! I haven't studied all the registers yet, however I was looking for intensity to no avail. Color Plane seems an area I didn't consider. Again, thanks! Smiddy |
|||
20 Dec 2014, 18:02 |
|
bubach 15 Jan 2015, 17:53
You should try the fontman DOS program (try running in dosbox) it allows loading and editing of DOS font files and will also show all the characters in the default font.
http://sta.c64.org/dosprg/fpman220.zip This is how I modified the standard font for the first DexOS version to include a logo instead of all those UI -like lines. If you want to support proper UTF-8 in text mode I would probably suggest you do VGA mode 12h (640x480px with 12 colors) or possibly even VESA instead and emulate text mode, giving you full pixel freedom to make any font you like. But as previously stated, you could with some trickery get 512 chars at the same time, which would be enough for most situations, if you modify the fonts on the fly depending on what is showed on screen - you could potentially have a much larger set of characters to choose from then 512 in the "virtual font".
|
||||||||||
15 Jan 2015, 17:53 |
|
smiddy 15 Jan 2015, 18:46
Kewl, I'll take a look when I get home. Tom posted his too, which works nicely as well.
I will eventually use VGA and/or VESA and/or card specific so I can use the entire screen on flat panel. I don't know that standard VGA and VESA can/will do a 16:9 screen ratio with text. I need to do further research on that. Then again, I am working memory implementations at the moment, then floppy/hard disk controllers. Then at some point my TUI. LOL! Smiddy |
|||
15 Jan 2015, 18:46 |
|
< Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.