flat assembler
Message board for the users of flat assembler.
![]() Goto page 1, 2, 3 Next |
Author |
|
A$M 04 Feb 2013, 13:11
I want to learn how I can access more than 1 MB of memory using EMS. Can someone teach me? I don't understand about it.
![]() |
|||
![]() |
|
A$M 04 Feb 2013, 17:22
I want the fastest. EMS, XMS, a 32-bit protected mode program or DPMI (like FASM)?
|
|||
![]() |
|
ASM-Man 04 Feb 2013, 18:31
Uau,entende isso?
|
|||
![]() |
|
HaHaAnonymous 04 Feb 2013, 19:01
[ Post removed by author. ]
Last edited by HaHaAnonymous on 28 Feb 2015, 21:44; edited 1 time in total |
|||
![]() |
|
A$M 05 Feb 2013, 13:03
![]() ![]() ![]() "Obrigado" ![]() |
|||
![]() |
|
f0dder 05 Feb 2013, 15:48
A$M wrote: I want the fastest. EMS, XMS, a 32-bit protected mode program or DPMI (like FASM)? The fastest would be 32bit (or 64bit) ring0 code with manual memory management... but that's only viable if you do bare-metal programming. IMHO just go for a DOS extender and use it's API - you're unlikely to see much of a speed difference anyway, and the DOS extender can select between ring0+manual, DPMI/VCPI client, whatever ![]() _________________ carpe noctem |
|||
![]() |
|
A$M 05 Feb 2013, 18:22
So, how to use DPMI? (The simplest way)
|
|||
![]() |
|
f0dder 05 Feb 2013, 18:38
_________________ carpe noctem |
|||
![]() |
|
A$M 05 Feb 2013, 19:05
Thinking better: how to use EMS or XMS on DOS or Windows?
|
|||
![]() |
|
iz56 05 Feb 2013, 20:46
Unreal mode is better.
|
|||
![]() |
|
f0dder 05 Feb 2013, 20:48
iz56 wrote: Unreal mode is better. Care to substantiate that? _________________ carpe noctem |
|||
![]() |
|
iz56 05 Feb 2013, 20:55
Easier.
|
|||
![]() |
|
iz56 05 Feb 2013, 20:56
see FASM source old version (dos)
|
|||
![]() |
|
f0dder 05 Feb 2013, 21:08
iz56 wrote: Easier. Dunno if it's easier - rolling your own is some work, and if you're going to use somebody else's, you might as well use a full-blown extender, unless you have very specific reasons not to (learning project, 4k intro, ...). Also, unreal/voodoo/big real/etc only works when run from real-mode, right? And only supports running your code from base memory, right? Using a DOS extender, you'll be able to handle a loaded EMS driver (through VCPI), to run under Windows and some other OSes (DPMI), from real mode, etc... OK, so it's slightly more work calling DOS functions, but decent DOS extenders either translate the most common interrupt calls or offer a lightweight Win32 API translation layer. But OK, if you're writing SMM code, it's probably not the worst mode to use ![]() Anyway, A$M: what's your goal? Accessing extended memory under DOS in a convenient way, or do something quirky to learn from the process? _________________ carpe noctem |
|||
![]() |
|
Dex4u 05 Feb 2013, 21:10
I written a true Dos extender, that runs on top of any Dos, that let you use all int 21h in PM giving you full 4 GB memory, it also lets you drop back to normal dos at any time.
Its got a fasm port and both cli and gui The int 21h are the same as dos other than they use 32bit regs. ![]() Let me know if you want to try it. Plus its only 55k in size. |
|||
![]() |
|
DOS386 06 Feb 2013, 06:47
> So, how to use DPMI? (The simplest way)
Again, RTFF PS: ??? > Thinking better: how to use EMS or XMS on DOS or Windows? Thinking worse. Don't use EMS or XMS on Windows, learn WinAPI then. Options: * Brew your own non-DPMI Ring0 DOS extender (fastest, much work) * Use an existing DOS extender (simplest, works in DOS) * Brew a Win32 app working in both DOS (using HX) and Windows * (bad) Brew a Win64 GUI app using latest API's ... not usable in DOS ![]() |
|||
![]() |
|
ACP 06 Feb 2013, 07:45
f0dder wrote:
Depends what you really need and what are you looking for. First of all some BIOSes and HIMEM.SYS leaves your system in unreal mode so on some configuration it's on by default but you still need to take care of cases when switching 3rd party applications are switching into PM so you need to have 0Dh INT handler to handle this properly. Within the handler you need to read PIC registers for checking if IRQ5 is not a true source of interrupt or you need to remap IRQ. The biggest drawback of big flat mode / unreal mode are: - forget about multitasking and especially running under Windows - many DOS configuration are running in V86 mode due to memory manager So unless you really need it PM DOS Extender that supports DPMI, VCPI and is DPMI host is the way to go in my opinion. Especially if you plan to use some multitasking environment. HX is a way to go with PharLap TNT extender second. |
|||
![]() |
|
DOS386 06 Feb 2013, 07:59
> The biggest drawback of big flat mode / unreal mode are:
> - forget about multitasking and especially running under Windows It's a feature ![]() > many DOS configuration are running in V86 mode due to memory manager Don't use EMM386. |
|||
![]() |
|
f0dder 06 Feb 2013, 12:48
DOS386 wrote: * (bad) Brew a Win64 GUI app using latest API's ... not usable in DOS Speaking of which, do you know of any x64 DOS extenders? Personally don't see much use for it (and I guess at that complexity level, you're probably better off using some minimal OS kernel instead). ACP: exactly - and when you need to do that extra work, unreal mode isn't that simple anymore... and still has a somewhat fragile feel to it. Btw, why PharLap as a second? Never used it, back then I thought DOS4G/W was king? And later, we got the free WDOSX extender? DOS386 wrote: Don't use EMM386. Got an alternative for people who run applications that need EMS memory? |
|||
![]() |
|
Goto page 1, 2, 3 Next < Last Thread | Next Thread > |
Forum Rules:
|
Copyright © 1999-2025, Tomasz Grysztar. Also on GitHub, YouTube.
Website powered by rwasa.