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"@Berkeley
W8SDZ@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"@Berkeley
cem@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