home *** CD-ROM | disk | FTP | other *** search
- Date: Tuesday, 1 March 1988 21:33-EST
- From: Margaret H. Knox
- Re: 22PUBLIC bug
-
- Many people have by now either replaced their old DRI CCP completely,
- or are using one of the PUBLIC patches which declare individual files
- public. Being lazy, I have been using the 22PUBLIC.ASM patch (from
- 1981) to make all .COM files on USER 0 accessible from any other
- disk/user#.
-
- Over the years I have occasionally noticed that "certain" programs
- would NOT always run correctly from other user numbers. In
- particular, MODEM7 would not run from any user number other than 0,
- although I could set USER to 0, launch MODEM7, exit, set the USER to
- whatever I wanted, and re-launch MODEM7 correctly. Since this only
- affected about 3 programs that I use with any frequency, and since it
- was only a minor annoyance in the great antipathy of life, I mostly
- ignored the problem.
-
- It didn't go away!! (:-} Late last night I got frustrated
- enough to wonder why.
-
- The problem is actually rather simple. 22PUBLIC traps "File Not
- Found" returns when the CCP attempts to open a file for loading.
- It then tries the same user number on disk A:, and then user 0
- on disk A:. If the file is not found after all that you get the
- usual "?" error msg. If the file *IS* found, however, it resets
- the user number (so the running program will be in the correct
- area) and re-enters the CCP load routine to finish loading the
- now-open file.
-
- The bug is that, if the file is greater than 16k (one extent)
- the BDOS looks for the next extent in the WRONG user area!
- The fix is simple -- just save the original user area, and
- defer resetting the user area until after the load is completed.
- The "patch" is more complicated -- there is not enough room
- in the usual CCP patch locations. I re-assembled CCP (from
- an old disassembly) and that gave me enough room to restore
- the user number in both the "command/load error" and "success"
- routines.
-
- Thought someone else might be interested.
-