VOGONS


Reply 100 of 117, by ntalaec

User metadata
Rank Member
Rank
Member
FreddyV wrote on 2024-09-30, 18:39:

Mod Master 1.02 almost complete.

- Tandy base port corrected
- VGM display with Tandy/CMS corrected.

Great news!

I could suggest stereo mixing for a future version? For example, an instrument played in left channel sounds at 100% volume in left channel and 0% volume in right channel. In stereo mixing could be at 70% volume in left channel and 30% volume in right channel.

Reply 101 of 117, by FreddyV

User metadata
Rank Oldbie
Rank
Oldbie

Hi,

This was removed because it took CPU time, Mod Master XT Objective was to be fast 😀

Reply 102 of 117, by Sneakernets

User metadata
Rank Newbie
Rank
Newbie
FreddyV wrote on 2024-09-30, 18:39:

Mod Master 1.02 almost complete.

- Tandy base port corrected
- VGM display with Tandy/CMS corrected.

Awesome! Do you think full XM support could be possible for the Gravis Ultrasound InterWave models like the Orpheus II?

This would be the only module player on XT/186 that I know of with complete Fast Tracker 2 support, if it could be done.

Reply 105 of 117, by dr.zeissler

User metadata
Rank l33t
Rank
l33t

you're welcome 😉

Retro-Gamer 😀 ...on different machines

Reply 106 of 117, by theelf

User metadata
Rank Oldbie
Rank
Oldbie

H i guys! any version that supports XMS? my 286 have 4mb ram, but no EMS

Reply 107 of 117, by MobyGamer

User metadata
Rank Member
Rank
Member

XMS doesn't allow near-instant banking of memory, so it isn't really possible. XMS is too slow for accessing sample data for a modplayer on a 286.

Reply 108 of 117, by mkarcher

User metadata
Rank l33t
Rank
l33t
MobyGamer wrote on 2025-08-14, 04:04:

XMS doesn't allow near-instant banking of memory, so it isn't really possible. XMS is too slow for accessing sample data for a modplayer on a 286.

XMS perfectly allows real-time access... but only to protected mode software. It makes no sense for a mod player that is primarily targetted towards 8088 systems to be written as protected mode software, though (although if you would pull off clever tricks as the windows 3.0 real mode / standard mode distinction makes, you could write software that works in 8088 real mode and in 80286 protected mode, but that's a complicated project by itself).

Unless you go target protected mode, XMS access means that DOS is "suspended" for some time, the processor is put into a special configuration that allows access to XMS, some data is copied from/to/within XMS, and then the processor reconfigured into a DOS-compatible state and DOS is resumed. Using XMS like this in a DOS application is unsuitable for real-time applications (like playing back on the PC speaker), and still quite resource hungry if you need to copy a lot (this means: you would need a good caching algorithm to minimize "swaps" between XMS and conventional memory). On the other hand, EMS memory is "just there" with fast switching of the currently visible range (unless you are using software emulation like EMM286). Well, actually, if you have DMA-capable sound hardware in that 286, you can try EMM286, which uses XMS copies to fake EMS mapping, but don't expect great results.

Reply 109 of 117, by MobyGamer

User metadata
Rank Member
Rank
Member
mkarcher wrote on 2025-09-24, 17:44:
MobyGamer wrote on 2025-08-14, 04:04:

XMS doesn't allow near-instant banking of memory, so it isn't really possible. XMS is too slow for accessing sample data for a modplayer on a 286.

XMS perfectly allows real-time access... but only to protected mode software.

If you're in protected mode, you're not using XMS. XMS is a real-mode specification. Protected mode is neither XMS, nor uses it.

DOS is "suspended" for some time, the processor is put into a special configuration that allows access to XMS, some data is copied from/to/within XMS, and then the processor reconfigured into a DOS-compatible state and DOS is resumed.

That is the opposite of "allows real-time access."

Reply 110 of 117, by mkarcher

User metadata
Rank l33t
Rank
l33t
MobyGamer wrote on 2025-09-25, 01:43:
mkarcher wrote on 2025-09-24, 17:44:
MobyGamer wrote on 2025-08-14, 04:04:

XMS doesn't allow near-instant banking of memory, so it isn't really possible. XMS is too slow for accessing sample data for a modplayer on a 286.

XMS perfectly allows real-time access... but only to protected mode software.

If you're in protected mode, you're not using XMS. XMS is a real-mode specification. Protected mode is neither XMS, nor uses it.

If I were to write a 286 protected mode port of Mod Master XT, I would still need to know what part of extended memory exists and is available to me. The straightforward solution is to ask the XMS driver for all the memory blocks I need, and lock them to a fixed address. So the memory is allocated and managed via XMS, which is (in my oppinion) reason enough to call that memory "XMS memory". I don't see why the memory stops being "XMS" just because I switched to protected mode afterwards and can access that memory directly instead of having to rely on the XMS memory copy operation.

MobyGamer wrote on 2025-09-25, 01:43:

DOS is "suspended" for some time, the processor is put into a special configuration that allows access to XMS, some data is copied from/to/within XMS, and then the processor reconfigured into a DOS-compatible state and DOS is resumed.

That is the opposite of "allows real-time access."

Yes exactly. That's why it is in a second paragraph that is no longer talking about protected mode software. If you re-read the sentence in context, you will see that the second paragraph is introduced by "Unless you go target protected mode", trying to switch the context from protected mode applications to real mode applications. The first paragraph was meant to explain that I can use memory obtained from the XMS drive in real-time in protected mode, while the second paragraph was intended to support your statement and explain why it is applies if you call the XMS copying service from a real-mode application. I'm sorry if this caused confusion.

Reply 111 of 117, by georgel

User metadata
Rank Member
Rank
Member

First both of you have to define what "real time software" means 😉 For the OS in computer science it is well defined, and to your surprise it does NOT mean "an immediate or fast response" at all.

Reply 112 of 117, by mkarcher

User metadata
Rank l33t
Rank
l33t
georgel wrote on 2025-09-25, 06:25:

First both of you have to define what "real time software" means 😉

No one was talking about "real-time software" in this thread. We were talking about "real-time access" to memory, so the definition of an "real-time operating system" is not relevant.

georgel wrote on 2025-09-25, 06:25:

For the OS in computer science it is well defined, and to your surprise it does NOT mean "an immediate or fast response" at all.

To your surprise(?), I know very well that an real-time operating system is just guaranteed to respond to events within a specific guaranteed time frame, which can be quite long. If we would, on the other hand, apply the real-time requirements of a MOD player that wants to play back via the PC speaker to a real-time system, it would include the specification that the timer interrupt is served within around 50µs. This specific real-time requirement can not be met by the standard way to access extended memory from real mode applications on the 80286, no matter whether you use the XMS driver or the BIOS extended memory copying service. So a real-time system suitably specified to allow MOD playback on non-DMA sound devices will mean "an immediate or fast response to the timer interrupt", even if it is definitely not true for all kinds of real-time systems.

Reply 113 of 117, by georgel

User metadata
Rank Member
Rank
Member
mkarcher wrote on 2025-09-25, 06:45:

To your surprise(?), I know very well that an real-time operating system is just guaranteed to respond to events within a specific guaranteed time frame, which can be quite long.

To my surprise you don't know 😉 Try again.

Reply 114 of 117, by MobyGamer

User metadata
Rank Member
Rank
Member
georgel wrote on 2025-09-25, 08:55:
mkarcher wrote on 2025-09-25, 06:45:

To your surprise(?), I know very well that an real-time operating system is just guaranteed to respond to events within a specific guaranteed time frame, which can be quite long.

To my surprise you don't know 😉 Try again.

The defining characteristic of a realtime OS kernel is determinism. Either you are misinformed about realtime kernel design, or are splitting hairs in bad faith. In either case, it is an asinine response, and has nothing to do with modmaster or how DOS modplayers are constructed (they don't use realtime kernels at the definition level you are fishing for), so maybe cut it out?

mkarcher wrote:

XMS perfectly allows real-time access... but only to protected mode software

This was not a helpful response to a simple, direct explanation as to why a real-mode modplayer could not reasonably take advantage of XMS. If you want to discuss the finer points of constructing a 286 protected-mode DPMI server, a thread about a modplayer is probably not the correct place to do so.

Reply 115 of 117, by Sneakernets

User metadata
Rank Newbie
Rank
Newbie
theelf wrote on 2025-07-11, 22:48:

H i guys! any version that supports XMS? my 286 have 4mb ram, but no EMS

Depending on the chipset you have, there should definitely be an EMS driver available for you to use that RAM as, at the very least, small frame EMS.

Not sure about large-frame though. But for Mod Master XT it does not matter.

Reply 116 of 117, by dj_pirtu

User metadata
Rank Member
Rank
Member

Installed PicoGUS to my Amstrad 1640HD20 yesterday and ModMaster XT plays nice.

Not related to ModMaster but Strange thing is that if I install original GUS there, it won't boot any more from HDD. Same thing if I set PicoGUS to DMA 3, won't boot.
I really need PicoMEM for this, don't know how long that original 20MB HDD works and I also have 20MB HardCard in there for extra space 😁

Reply 117 of 117, by mkarcher

User metadata
Rank l33t
Rank
l33t
dj_pirtu wrote on 2025-09-27, 07:16:

Not related to ModMaster but Strange thing is that if I install original GUS there, it won't boot any more from HDD. Same thing if I set PicoGUS to DMA 3, won't boot.

DMA 3 is used by the XT hard drive controller. Using DMA 3 for a GUS or PicoGUS will cause a conflict. Also, the GUS has some I/O address in the 3xx range which is somehow related to its address in the 2xx range. If the 3xx address happens to be 320, it will conflict with the hard drive controller as well, but if I remember correctly, at 220h, the 3xx address woudl be 310h, which does not conflict.