Msg: 5933 *Conference*

08-09-95 15:41:40

From: RON WIESEN

To : COMET _

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

Now that I understand the circumstance where you want to save the file
directory -- before doing M/L experiments -- I have a few thoughts.
 
Combine the idea of using the lowest locale BASIC file with the idea of
devoting the "last" file directory slot.  This gives you the certainty that and
M/L code to save the file directory is stationary because it is enclosed in the
envelop (masquarades as) of the lowest locale "BASIC" files, and the certainty
that this "BASIC" file is linked to "a particular" directory slot (last slot)
which the recovery logic ignores as it deals with the other 18 RAM file slots.
 
Given the notion about "invisible file name" for this "BASIC" file, I believe
that an invisible file (BASIC or otherwise) can be invoked at the main Menu by
typing its name on the Select line.  So you can invoke it just prior to doing
any M/L experiment you deem may munge things up.  So the saving of the file
directory is by operator demand.
 
Let the "invisible BASIC" program save file directory info in an area that
survives a cold-start.  I suggested a few in my prior MSGs.  If you are
concerned about the locale difference of the "first BASIC file" among 8K, 24K,
and 32K RAM variants of the Model 100, and thus variation in the absolute
address of said file, there are simple means for BASIC code to "discover its
memory locale".  Similar means exist for M/L code.  I won't details such means
now.
 
Consider placing "recovery code" in the same area that survives a cold-start.
Idea #9 of my prior MSG elaborates.  Note that operator recovery then is merely
a BASIC direct statement (no memory shuffle result) of the CALL-1790 flavor.
Note that CALL-1830[D[D[D[D[D[D[D[D[D[D[D   Note that I missed one reference to
CALL-1830 when I edited the prior message to reflect CALL-1790 as a consequence
of area reduction from 95-byte to 72-byte.  Besides, a 30-byte block of code
isn't much for both recovery and save.  So seperate the recovery and save
logic: recovery in 30-byte block within area the survives cold-start, save in
hidden BASIC file that is linked to "last directory slot" and is invoked on
operator demand via the Select line of the main Menu.