flat assembler
Message board for the users of flat assembler.
Index
> OS Construction > Fn 0x1100 int 0x10 Goto page 1, 2 Next |
Author |
|
shoorick 18 Feb 2010, 10:49
simply try to set videomode again with original int 10h function. otherwise you can use a function to get original font before set your, then use it to restore.
|
|||
18 Feb 2010, 10:49 |
|
zhak 18 Feb 2010, 12:52
how can i get the original font? i didn't find any int 0x10 functions for this...
|
|||
18 Feb 2010, 12:52 |
|
bitshifter 18 Feb 2010, 13:08
You can read it from BIOS data area...
See Ralph Browns Interrupt List for all the cool stuff! |
|||
18 Feb 2010, 13:08 |
|
asmmsa 18 Feb 2010, 14:26
and how do he locate bios data area?
does x86 contain registers with those informations? |
|||
18 Feb 2010, 14:26 |
|
shoorick 18 Feb 2010, 14:53
Quote:
no need to get it. just try to simply set videomode with int 10h (say, mode 3): it has to reset font to default. Code: mov ax,3h int 10h do not know if it is always correct or it is described somewhere directly - i just met such behavior with my code. |
|||
18 Feb 2010, 14:53 |
|
zhak 18 Feb 2010, 15:26
yep, seems like setting video mode is enough. and, as always, i didn't think it could be so simple thanks
|
|||
18 Feb 2010, 15:26 |
|
bitshifter 18 Feb 2010, 20:29
The BIOS stores pointer to where font is in memory.
I could be different depending on BIOS ver and desired video mode. So you can access it via BIOS or just do it manually w/out BIOS. Setting the mode back to 80*25 via BIOS is ok since BIOS reloads it. Search for "Tauron VGA" to get some demo code on VGA font programming. |
|||
18 Feb 2010, 20:29 |
|
zhak 19 Feb 2010, 01:20
asmmsa wrote: and how do he locate bios data area? BIOS Data Area is always present after power on. It's at address 0x40:0 bitshifter wrote: Search for "Tauron VGA" to get some demo code on VGA font programming. thanks. I'll check this out |
|||
19 Feb 2010, 01:20 |
|
smiddy 19 Feb 2010, 01:33
Code: Flat Memory Model Address Description 0h - 399h IVT 400h - 499h BDA Here's one person's map: http://stanislavs.org/helppc/bios_data_area.html |
|||
19 Feb 2010, 01:33 |
|
asmmsa 19 Feb 2010, 09:39
u mean those addreses are fixed?
when someone write bios, its his responsibility to map all things at fixed addreses? or device manufacturers must take care of that? |
|||
19 Feb 2010, 09:39 |
|
revolution 19 Feb 2010, 09:43
None of the addresses are fixed. But it is a good idea to stick with them else you will have to code everything for yourself. Because no one else knows what data you have put where and their code won't work.
|
|||
19 Feb 2010, 09:43 |
|
baldr 19 Feb 2010, 11:38
zhak,
Subfunctions 01, 02 and 04 of int10/ah11 probably can be used to load default patterns for 8*14, 8*8 and 8*16 character cell sizes, respectively. Current patterns could be retrieved, but this requires direct graphics controller (GC) programming via ports 3CE/3CF to access plane 2, where chargen is stored. |
|||
19 Feb 2010, 11:38 |
|
asmmsa 19 Feb 2010, 12:14
Quote: None of the addresses are fixed. But it is a good idea to stick with them else you will have to code everything for yourself. Because no one else knows what data you have put where and their code won't work. so what an idiot cane up with an idea of creating memory map? how do i know where i have vga buffer, or how do i know where bios put my bootloader? |
|||
19 Feb 2010, 12:14 |
|
zhak 19 Feb 2010, 12:37
revolution wrote: None of the addresses are fixed. But it is a good idea to stick with them else you will have to code everything for yourself. Because no one else knows what data you have put where and their code won't work. asmmsa wrote:
why not fixed? it can be assumed a standard since all bioses do that. to load bootloader at 0:7c00, to put BIOS Data Area at 0:0400, segment A000 - is for video memory (B800 for text mode), etc. |
|||
19 Feb 2010, 12:37 |
|
revolution 19 Feb 2010, 12:48
asmmsa wrote: how do i know where i have vga buffer, or how do i know where bios put my bootloader? Some hardware things are fixed in the sense that things like I/O port numbers can't be changed. But anything memory related can be moved. If it wanted to, the BIOS could set up PM mode and map things anywhere. |
|||
19 Feb 2010, 12:48 |
|
zhak 19 Feb 2010, 12:51
baldr,
gosh! really, this is it! Fn 0x1104 to load default font stored in ROM. |
|||
19 Feb 2010, 12:51 |
|
smiddy 20 Feb 2010, 11:44
asmmsa wrote: u mean those addreses are fixed? Fixed is realitive to the system manufacturer. But for the most part the majority of parameters within the BIOS Data Area are fixed. The Extended BIOS Data Area is a lot more difficult to get answers to. Each manufacturer sets up their system according to their own specifications. Most try to make them compatible so that OS' can use the information within these areas (along with CMOS etcetera). But, there is no real standard or one Rosetta Stone that you can rely on to get information for your OS. This is why you will see OEM versions of OS' and each one is tweaked to meet the needs of a particular platform (system). |
|||
20 Feb 2010, 11:44 |
|
smiddy 20 Feb 2010, 11:46
asmmsa wrote:
Why do you call people names? That is impolite! |
|||
20 Feb 2010, 11:46 |
|
smiddy 20 Feb 2010, 11:52
zhak wrote: baldr, |
|||
20 Feb 2010, 11:52 |
|
Goto page 1, 2 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.