cem@Ucb-Vax.ARPA (10/24/84)
Hello world, I have a very specific query for a few select individuals.
I am finishing up my BIOS and was optimizing the Warm Boot code, when I
remembered I was reading in the entire CCP and BDOS when I warm booted.
This was because Andy Johnson-Laird says in his book on Bios programming
that some programs will overwrite the BDOS too. Unfortunately, to
accomplish this feat of reading in the BDOS I also reinitialize the BIOS
jump table (the CCP and BDOS don't fit into an even number of 1024 Byte
sectors, after you subtract the 25 128 byte sectors on the first track.)
I know that the BYE program really dislikes having the BIOS table, and
specifically the warm boot vector overwritten, and since I could save
much code by only reading in the CCP the Question I pose is as follows :
Do you know of 1 or more useful programs that expect the warm boot to
reload the BDOS as well as the CCP?
Thanks in advance, a reply of "Yes, FOO.COM" is sufficent but more
elaboration is encouraged.
--
-- Chuck - - - D I S C L A I M E R - - -
{ihnp4,fortune}!dual\ All opinions expressed herein are my
{proper,idi}-> !intelca!cem own and not those of my employer, my
{ucbvax,hao}!hplabs/ friends, or my avocado plant. :-}
ARPAnet : "hplabs!intelca!cem"@BerkeleyW8SDZ@Simtel20.ARPA (10/26/84)
From: Keith Petersen <W8SDZ@Simtel20.ARPA> Yes, MEMR2.COM the memory test program from Lifeboat Associates uses only the BIOS, overwrites CCP & BDOS. You can get around the problem by reading in as much of the CCP & BDOS as possible to the normal address where they're to execute, then switch the load address to below CCP and read in the rest of BDOS up to but not including the BIOS jump table. Then move the code up to where it belongs. The address you use for this temporary area is not critical - it could just as easily be 100h, 900h, 1000h or any convenient area so long as you don't overwrite the CCP. --Keith
oacb2@ut-ngp.UUCP (oacb2) (11/02/84)
> You can get around the problem by reading in as much of the CCP & BDOS > as possible to the normal address where they're to execute, then > switch the load address to below CCP and read in the rest of BDOS up > to but not including the BIOS jump table. Then move the code up to > where it belongs. The address you use for this temporary area is not > critical - it could just as easily be 100h, 900h, 1000h or any > convenient area so long as you don't overwrite the CCP. I give up. How is the "save" command going to work if you overwrite location 100h? (answer: badly) :-) Much better to read it into the buffer that the BIOS must use for deblocking. -- Mike Rubenstein, OACB, UT Medical Branch, Galveston TX 77550
notes@okstate.UUCP (11/02/84)
From: decvax!decwrl!amd!intelca!cem@UCB-VAX
Hello world, I have a very specific query for a few select individuals.
I am finishing up my BIOS and was optimizing the Warm Boot code, when I
remembered I was reading in the entire CCP and BDOS when I warm booted.
This was because Andy Johnson-Laird says in his book on Bios programming
that some programs will overwrite the BDOS too. Unfortunately, to
accomplish this feat of reading in the BDOS I also reinitialize the BIOS
jump table (the CCP and BDOS don't fit into an even number of 1024 Byte
sectors, after you subtract the 25 128 byte sectors on the first track.)
I know that the BYE program really dislikes having the BIOS table, and
specifically the warm boot vector overwritten, and since I could save
much code by only reading in the CCP the Question I pose is as follows :
Do you know of 1 or more useful programs that expect the warm boot to
reload the BDOS as well as the CCP?
Thanks in advance, a reply of "Yes, FOO.COM" is sufficent but more
elaboration is encouraged.
--
-- Chuck - - - D I S C L A I M E R - - -
{ihnp4,fortune}!dual\ All opinions expressed herein are my
{proper,idi}-> !intelca!cem own and not those of my employer, my
{ucbvax,hao}!hplabs/ friends, or my avocado plant. :-}
ARPAnet : "hplabs!intelca!cem"@Berkeleycem@intelca.UUCP (Chuck McManis) (11/05/84)
Well several people have replied to the original question of
"Do any programs overwrite the CCP and if so which ones ?"
The purpose of which was to determine if my BIOS needed to read in
the CCP and the BDOS on warm boot or just the CCP.
And the answer seems to be yes, a couple of memory test programs.
One person suggested that MBASIC might also overwrite the BDOS however I
have not found that to be the case on my system. One other person suggested
that by reloading the BDOS you reinitialized certain variables, such as
the R/O flag on changed diskettes, however this to was found not to be the
case as a ^C to the prompt will reset the flags, as well as a call to the
BDOS Reset System (BDOS Code 0). Therefore, for now at least, I will continue
to run with warmboot reloading the CCP only (I have a nice memtest in the
boot ROM). If I have any problems I will post them. I originally suspected
Turbo Pascal of overwriting the BDOS but found out that this is not the case
usually. What happens is Turbo *Hard Codes* the top of memory address into
your compiled code, so if you run a program that was compiled on a system
with more memory it will *Overwrite your BDOS* This is totally not nice
and a Bug report has been submitted to them. Other than that it seems safe
to load the CCP only. If anyone knows any different PLEASE tell me, I
have not tried all of the software available :-) and therefore can't
make this a blatantly true statement.
p.s. I have an old version of a FORTH compiler that zapped the BDOS and
used only the BIOS to write very strange disk formats, Since I
am now using F83 this too is not a problem.
--
-- Chuck - - - D I S C L A I M E R - - -
{ihnp4,fortune}!dual\ All opinions expressed herein are my
{proper,idi}-> !intelca!cem own and not those of my employer, my
{ucbvax,hao}!hplabs/ friends, or my avocado plant. :-}
ARPAnet : "hplabs!intelca!cem"@Berkeley