[sdiy] Re: PCSYNTH Web Page Up

Scott Gravenhorst music.maker at gte.net
Wed Jun 8 21:06:41 CEST 2005


<andym00 at gmail.com> wrote:
>Scott Gravenhorst wrote:
>> 
>> This is the reason I chose DOS as the OS.  DOS will be used 
>> to boot and load the program.  Then, the program will turn 
>> off any interrupting device that it doesn't need.  RAM 
>> refresh is the only thing I can think of that absolutely must 
>> be left on.
>
>The RAM refresh won't be a problem on a modern (386+) PC.. Only in the early
>days (8088/8086) did the RAM refresh get in the way..

Well, that's something...

>> >Keyboard, serial evetns, disk drivers, even the DOS service stuff.. 
>> >Just about everything writes through IO ports, and 
>> compounded with the 
>> >x86s shit interrupt latency anyway, due to some of the horrendously 
>> >long execution times I'd be nervous to drive such a 
>> contraption which a 
>> >highly accurate timing, without some pretty bad jitter on 
>> the outputs, 
>> >especially of anything ever switches the interrupts off 
>> momentarily ;)
>> 
>> I've heard this over and over, but only from people who have 
>> never tried it.
>>  I intend to try this and prove it one way other the other.  
>> Either the nay-sayers are right or I am.  We'll see.
>
>Just to clear the record hear, I have tried  it ;) I'm an audio programmer
>in the games industry, and I spent most of the 90's writing sound drivers
>for shit PC sound cards most of which are a nightmare, not because of the
>cards (most of which where really pretty good) but because of the hell
>happening under the bonnet of the machine.. The worst thing of all was shit
>hard drive that didn't support DMA, 

No hard drive access will be allowed during synth operation.  Saving synth
parametric data will probably be SYSEXE supported instead of direct saves. 
OR I may write it so that the program can turn these things on and off as
required.

Your application needed the computer to do all the other crap that Windows or
whatever needs to do.  My application is extremely single minded and won't
need to deal with things like a mouse.

>and had to perform PIO to read from the
>drive and walloped the interrupts off while they did.. Second to that are
>DPMI XMS & EMS drivers.. 

No memory access above 1 meg.  If I can't do this in 640K, I can't do it.

>The DPMI stuff in particular, to allow 32bit
>extensions and things, ie:QEMM, EMM386 etc.. 

No DPMI allowed.  This is a _standalone_ project.

>They all virtualise the IO
>ports through a 386+ IO protection stuff. When you write to a port, you
>aren't actually writing to it.. They also virtualise the DMA and a huge
>amount of other devices which leads to massive (1000s) of cycles vanishing
>during which time the the interrupts switched off.. So you might want to not
>run with these enabled.. Lastly a lot of ISA device are piss poor slow, so a
>lot of code writes to the bus, then idles for a few microseconds to give the
>device time to respond.. Unfortunately they tend to do this with OUT to the
>ISA bus which took a guaranteed amount of time, so they knew X writes took
>X*n cycles.. This buggers up a lot of things ;)

I know, which is why I will be testing _memory_ cycle access to my ISA
device, not port I/O.   I already discovered that is unworkably slow.  Memory
cycle access should be at worst a few wait states that the system board
throws in.

>One thing I will say.. Make sure you use the RTC clock timer source, not
>the regular timer source.. The RTC clock source, though not as flexible in
>timer sources, has a much high priority than the regular timer, hence you
>can keep
>a lot of the pesky IRQ services out of the way, and leave the DOS servicing
>running on it's normal IRQ without any extra care needed by you, since
>you'll always pre-empt it, rather than possibly having to muck about
>scheduling things cleverly..
>
>> >Unless you're going to kill everything system-side and 
>> handle and write 
>> >all keyboard, mouse and other IO yourself under controlled 
>> conditions ?
>> 
>> Something like that.
>
>Cool :) Nothing better than getting your hands dirty at that level ;)
>
>
>

---------------------------------------------------------
- Where merit is not rewarded, excellence fades.
- Hydrogen is pointless without solar.
- What good are laws that only lawyers understand?
- The media's credibility should always be questioned.
- The only good terrorist is a dead terrorist.
- Governments do nothing well, save collect taxes.

-- Scott Gravenhorst | LegoManiac / Lego Trains / RIS 1.5
-- Linux Rex         | RedWebMail by RedStarWare
-- FatMan: home1.gte.net/res0658s/fatman/
-- NonFatMan: home1.gte.net/res0658s/electronics/
-- Autodidactic Master of Arcane and Hidden Knowledge.




More information about the Synth-diy mailing list