bill@flash.UUCP (William Swan) (09/25/89)
(Has the Alspa mailing list actually expired? I got no answer...) While checking out Dave Goodenough's CP/M UUCP, I uncovered a bug in the Alspa ACI-1&2 BIOS that apparently goes all the way back to the early Alspaugh Engineering days (i.e., it's not *my* fault :-). As I have been afflicted with various symptoms of this bug over the years, usually chalking it up to the particular applications I was running, I figure it worthwhile to share with other Alspa users on the net (and off, but I know only one in that category). The symptom, in general, is that an application running from one drive fails to find all the files on another drive specified by a wildcard. I have seen this with the above UUCP, with SHAR.COM, and a CP/M make. For some reason I have not seen this with Alspa's D.COM. The problem is caused by the BIOS density (disk format) routines use of the 128-byte scratch directory buffer (DIRBF) as a scratch buffer for reading track 0, sector 1, to determine the disk format encoded therein at byte 7FH. This causes the directory buffer to be clobbered between search-first and search-next BDOS calls, and any matching but unfound file entries in the buffer at that time will not be found. Two fixes are possible. The first is to create a separate 128-byte buffer for the "density" routines, so that only the BDOS uses DIRBF. The second is a re-write of the density routines such that it is not necessary to actually read the data into memory. (The Alspa BIOS is so tight that I preferred the second.) Rather than list that change here, I will e-mail the revised BIOS to anybody who requests a copy. (Note: I have done a *lot* of work on the BIOS - it is at rev 3.7 now, up from the last ACI v3.0, and accomodates P2DOS and ZCPR3 among other things.) -- Bill Swan entropy.ms.washington.edu!sigma!bill Send postal address for info: Innocent but in prison in Washington State for 13.5 years: Ms. Debbie Runyan: incarcerated 01/1989, scheduled release 07/2002. In now: 0 years, 8 months, 0 weeks, 5 days.