Msg: 5883 *Conference*

07-04-95 17:20:49

From: COMET _

To : TRACY ALLEN

Subj: REPLY TO MSG #5434 (UNDELETE -- COLD START RECOVERY)

If I remember correctly, the First BASIC program maintains its address.  This
location depends on how much RAM the machine has, but is able to be calculated.
(Maybe from FAC0?)  Now I believe that the ModelT calculates end-of-file for a
BASIC program by looking for three consecutive null bytes.  {In assembly, this
would represent three consecutive no-ops, taking 12 CPU clock cycles.}
 
I was thinking, that if somebody (e.g. myself) was interested in experimenting
with the Model 100, and didn't want to repeatedly use an external device to
store the .CO (and BASIC and .DO) files, that there may be a way of recovering
from a Cold Start, if one merely had a copy of the file directory.  [Assuming
that the copy wasn't munged, and that the end-of-file marks for BASIC and .DO
weren't munged, and that the file directory copy was current.]  The file takes
up 27*11=297 bytes, which is quite small (and the backup directory might not
even need to store the ROM files).  Now if there was an unused [:-)] piece of
RAM for us to store this in...  but there isn't, is there?  Well, here's my
idea:  [Ron Wiesen, other gurus, are you listening?]  maybe a BASIC program can
be First loaded which would OVERWRITE ITSELF with a 297-byte data section and
M/L to copy the directory there [followed by three null-bytes, to keep the MENU
program happy; oh, and make the entry "invisible" while we're at it].  The FADA
table could be modified so that the appropriate BASIC keywords would
automatically cause a copy of the file directory to be made.  Alternatively,
the clock-cursor-keyboard routine could be modified to run this section.
 
Well, what do you think?  :D
 
Anybody out there inspired enough to actually CODE this thing?  ;9