Path: utzoo!attcan!uunet!know!cs.utexas.edu!swrinde!ucsd!ucbvax!bloom-beacon!eru!hagbard!sunic!mcsun!unido!mpirbn!p554mve From: p554mve@mpirbn.mpifr-bonn.mpg.de (Michael van Elst) Newsgroups: comp.sys.amiga.tech Subject: Re: BB: device Message-ID: <1324@mpirbn.mpifr-bonn.mpg.de> Date: 20 Oct 90 00:37:43 GMT References: <901017.10051766.033595@CMR.CP6> <519@cbmger.UUCP> Reply-To: p554mve@mpirbn.UUCP (Michael van Elst) Organization: Max-Planck-Institut fuer Radioastronomie, Bonn Lines: 25 In article <519@cbmger.UUCP> peterk@cbmger.UUCP (Peter Kittel GERMANY) writes: >You can't do it from Amiga side because MS-DOS is so stupid. >Precisely: Most of the MS-DOS functions are not reentrant. So if >you interrupt from Amiga side you risk to catch the PC side in a >moment when it must not be interrupted and thus loses or corrupts >data. As far as I heard from the developers, the first attempts >for AREAD and AWRITE did things from the Amiga side, but they >learnt the hard way that this may cause big trouble on the PC side. >So they changed to the safe way and invoke these things only from >the PC side where they are sure that because of lacking multitasking >no other process can come in the way. I don't see a problem, you can trap the MS-DOS syscall. The trap routine sets a flag if the syscall is busy. Now, when the Amiga side needs a call to MS-DOS it checks if a syscall is running. If there's none, then it can call MS-DOS itself, otherwise it has to queue the request and the trap routine has to poll the queue when the currently running syscall exits. Regards, -- Michael van Elst UUCP: universe!local-cluster!milky-way!sol!earth!uunet!unido!mpirbn!p554mve Internet: p554mve@mpirbn.mpifr-bonn.mpg.de "A potential Snark may lurk in every tree."