[Date Prev][Date Next][Subject Prev][Subject Next][Date Index][Subject Index]

CRASH.TXT



 Carl:
 
 I enjoyed your CRASH.TXT.  Interesting.  Three points:
 
 First, although my recollection is pretty fuzzy, I think what excited me about
the
 +NO >
 approach to zeroing VA$ER in XyWrite was that it was *silent* (no beep or
other intrusive reaction from EDITOR).  Plus it was fairly fast.  (And, of
course, it zeroed VA$ER, which I'd never been able to do -- and still can't do
in Sig, even the factory MNU file uses "BX ()" to generate a base VA$ER of 11
-- really dumb.)  Thus, you could throw this SUb around in routines without
special precautions (like turning off the speaker or the error prompt).  But
even if memory fails and it wasn't silent, that's certainly the goal and the
ideal.
 
Second, I'd explore an opposite approach to test whether a program is running
under XyWrite or Signature.  I'd look for something that crashes in Sig but not
in Xy, instead of the other way around, because Sig "crashes" are much easier
to handle (indeed, as below, they're often 100% benign).  I'd use a defunct
VAriable, like AlternateEnding or HeaderSize, so that you don't need to do
anything special (like tuck the test in a SUb):
 
 >)<1>
 
 Third, the cleanest & simplest Save/Get initialization test is the built-in
one, using an exclamation point as the operand:  VA !nnnn.  It works on the
CMline also, e.g. "va !100".  Whereas a size test (VA |nnnn) will report
un-initialization (=65535), the exclamation test is more sophisticated.  No
fuss/muss/noise.  Results are:
   0=string (SV or SX)
   2=SUbroutine
   4=number (SX)
 255=uninitialized S/G