Thanks, Christian,

   The reason why I've been considering a brand new interrupt is because the 
driver is not supposed to be single-purposed. What I want to create is a new 
standard interface where support for new features can be hooked in a very tidy 
and organised way. I think we can't just keep on adding functions to the int 
21h, because that's where the classical DOS interface lays and although I know 
of AMID and I find it very flexible and useful, the interface is again to big 
to be put inside an already multiplexed system. I thought of ints 2Bh and 2Ch 
because they are within the range of the DOS interrupts and the driver would be 
a field on which to extend DOS, but it could also be done with other 
interrupts. Single-purposed applications should not use this interface. For 
that, there is AMID and int 2Fh. This is only for general hardware and software 
support.
   I am currently writing the first CPOS main module in Flat Assembler, but the 
spec is not closed to the x86 architecture. Any driver able to respond to the 
CPOS functions would be a CPOS, regardless of the language, encoding or calling 
platform it uses. That is the idea. I want to keep OS diversity and at the same 
time add compatibility, which seems at first sight contradictory.
   Although the code is of course a must, the project itself does not consist 
of code, but of the specification. This spec has a list of general functions 
and general parameters which is independent from software and hardware. 
Attached to it, there are modules that are hooked in "knots". To make the 
interface useful, I want to first implemented with two module prototypes: one 
for Unicode and another one for sound support. I believe these two things are 
maybe some of the most important things DOS is needing right now..
   The Unicode support functions (Code-1 module) will let the user print 
Unicode strings on the screen in graphics mode (and up to some extent in text 
mode), convert between ASCII, UTF-8, UTF-16 and UTF-32 and handle individual 
Unicode key-buffers customised for the running application. The buffers could 
be sequential (like the BIOS keyboard buffer) or parallel (like the ones used 
by ISRs that games install in memory). It will be very important to cooperate 
with KEYB and DISPLAY. I have already been exchanging some words with some of 
the guys about that. Huge conversion tables will have to be in memory and, when 
handling graphic modes, also fonts will have to be loaded.
   The sound system (NSS module, or New Sound Standard), I divide in blocks of 
functions. Some will handle the module configuration, others sampling, music, 
sound table and mixer. Each block can be redirected to a piece of hardware or 
to another block (for instance, you might not have a sound table, but could use 
some software to redirect the sound table directly to the DSP). Modules with 
these functions would be the main part of it. Then I have some plans for 
another type of driver that would be used to allow old applications redirect to 
the CPOS/NSS module. To accomplish this, I have been researching on the sound 
systems different games use and found that most of them use the Miles Sound 
System, Human Machine Interface or some Creative drivers like CT-VOICE and 
SBFMDRV. It is also common to find DIGPAK and MIDPAK. I have the documentation 
for these last four APIs and I have exchanged some e-mails with Mr. Miles about 
the first one. I could create
 patches to replace these drivers and take the output to the new module. DOS 
would have sound again... always, and without need of port emulation. But that 
will be a lot of work.
   If you're interested, I will be pollishing the spec and sending you a very 
small and raw code and source of the main module implemented particularly for 
FreeDOS and for the x86.
   "You may say I'm a dreamer, but I'm not the only one"... am I?  :)

                     Lucas



--- On Sun, 1/11/09, Christian Masloch <c...@bttr-software.de> wrote:

From: Christian Masloch <c...@bttr-software.de>
Subject: Re: [Freedos-devel] Pre-presentation of a project
To: freedos-devel@lists.sourceforge.net
Received: Sunday, 1 November, 2009, 10:33 AM


> I was trying not to present it until it consists of a significant  
> running piece of code, because I don't want it to sound "virtual"

I know what you're talking about here.

>    I know that the main objective in FreeDOS is to provide a working  
> classical DOS environment and not to turn into "something else". I do  
> not intend to go against that aim. However, I do believe that there are  
> some important points that do not have any support within classical DOS  
> at all and for which a standard should be implemented. I am trying to  
> supply that standard in a way that will not "collide" with classical  
> DOS, that is, the same code will run the same way, but applications will  
> have the option to also rely on a driver and some modules.

Please don't restrict your project just because some people might not like  
it, thank you.

>    I have been asking questions here to implement two of these modules  
> (namely Unicode support [or "Code-1 module"] and a new native DOS sound  
> interface [or "CPOS/NSS"]). The driver ("CPOS") would be loading a "main  
> module" into conventional memory that would dispatch functions and  
> separate them in "knots", each of which would redirect to a "child  
> module". These modules can be programmed separately, but I would like to  
> create at least two if them to be presented together with the main one  
> as the first issue of CPOS.

What does the Unicode support do? What tables or services are provided by  
it?

>    The purpose is not only about supporting these items, but about doing  
> it in a way that can easily be implemented from different software and  
> hardware platforms and still satisfy the standard. This would mean that,  
> for example, one single guy might come up creating his own small  
> operating system somewhere, without any support from anybody and decide  
> to follow the CPOS standard. If he does so, he would be able, after a  
> few modifications in the source code, to recompile modules already made  
> for another OS and use them in his, so he would have, say, sound support  
> in his OS without having to research and program everything himself.  
> Additionally, if he would develop a module for, say, DVD burning,  
> FreeDOS could use his source and recompile it so that it could be loaded  
> and hooked at a knot in DOS/CPOS. In other words, all hobbists in OS  
> would be able to cooperate and still we would have diversity, because  
> each OS would use their own method to provide CPOS.

And in what language do you implement CPOS? I mean, is it restricted to  
386 architectures (i.e. Assembly)?

>    In particular, for FreeDOS, I have been thinking this could be  
> applied on a real mode interrupt (maybe 2Bh, but could also be 50h) with  
> the parameters passed as registers, as it is usual in DOS, but other  
> ways could be used instead.

If you search a real mode interrupt, you might consider providing your  
interface on Int2D and following the Alternat(iv)e Multiplex Interrupt  
Specification (AMIS). This often provides other TSRs and your driver with  
the possibility to remove the TSR, and Int2D isn't used by something else.  
The most recent AMIS can be found inside the RBIL; read the descriptions  
of the Int2D functions.

Regards,
Christian

------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel



      
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to