home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!haven.umd.edu!darwin.sura.net!jvnc.net!yale.edu!ira.uka.de!rz.uni-karlsruhe.de!rz.uni-karlsruhe.de!ry53
- From: ry53@rz.uni-karlsruhe.de (Angela Schmidt)
- Newsgroups: comp.sys.amiga.programmer
- Subject: Re: Getting a valid FileSysStartupMsg pointers.
- Date: 14 Dec 1992 16:59:22 GMT
- Organization: Nessyhoehle@I501.NessyNet.de
- Lines: 58
- Distribution: world
- Message-ID: <1giehaINN497@nz12.rz.uni-karlsruhe.de>
- References: <1992Dec13.030020.13319@mail.cornell.edu> <37848@cbmvax.commodore.com>
- Reply-To: Angela@rz.uni-karlsruhe.de
- NNTP-Posting-Host: tp70.rz.uni-karlsruhe.de
-
- In article <37848@cbmvax.commodore.com>, jesup@cbmvax.commodore.com (Randell Jesup) writes:
- > chris@alchemy.tn.cornell.edu writes:
- > >However, apparently dol_StartUp does NOT always point to a valid
- > >FileSystemStartupMsg (hereafter abbreviated FSSM) even though IsFileSystem()
- > >returns true. I have particularly found this to be the case on devices
- > >which are not physical disks such as RAM disks or remotely mounted
- > >network devices.
-
- Here is a part of <dos/dosextens.h>. Please have a look at the commented
- line. Doesn't this say, that there has to be a fssm in dol_Startup?
- Or are there disks which are no real disks...?
-
- | struct DosList {
- | [...]
- | union {
- | struct {
- | [...]
- | ULONG dol_Startup; /* startup msg: FileSysStartupMsg for disks */
- | [...]
- | } dol_handler;
- | [...]
- | } dol_misc;
- | [...]
- | };
-
- > This is an ugly area. Unfortunately, early in the Amiga days (or
- > perhaps back in tripos), someone though strings would be neat to hold
- > parameters for handler startups.
-
- Grmpf. Programs like DiskCopy _need_ a fssm in dol_startup - otherwise
- they cannot work correctely. Why do programmers make their handler
- doing bad things with dol_startup? To annoy the user by causing his
- machine to crash or hang up?
-
- > A heuristic approach: first, filter out values <64 (64*4 = the size of
- > the 680x0 vector table, no pointer can be here). Next, see if TypeOfMem
- > on startup<<2 says it's real memory. Next, see if the various FSSM pointers
- > (or BPTRs) point to real memory (TypeOfMem again). That should catch almost
- > all cases. (UGLY!!!!).
-
- TypeOfMem() will return 0 if the pointer points to the ROM or to
- RAM which holds the remapped ROM. Since e.g. fssm_Device and
- fssm_Environ may and _do_ point into ROM area, you do have to
- check this. But how shall I do this? Testing for an absolute
- adress like 0x00F80000 will fail on softkicked machines.
-
- And what will happen if fssm_Device or fssm_Environ point into
- the expansion space...?
-
-
- V v
- @/@@=\ Salut,
- 00 &=- Angela
- oOoO_/` \\_
- \ /&\ Angela Schmidt cand. inf. (Nessy@IRC) | Amiga //
- |>O<| EMail: Angela@rz.uni-karlsruhe.de | 1000 //
- / \_/\/\/v, Weekend: +49 731 712316 (9am-9pm) | \\ // since
- /___________\ Weekdays: 721 6904263 (10am-11pm) | \X/ 1986
-