                                  BOOT.BAS
                                          
                              13 January, 1994
                                          
                                   6:27 PM
                                          
       I am  away from home this week on "vacation." Yeah... that's it
       I'm on VACATION! But what do I do in the evenings when everyone
       else has gone to bed dog tired. Me? I'm still up plinking on my
       laptop  trying  to  understand  the  mysteries  of  how  MS-DOS
       -really- works.
       
       So here  I sit  in front  of my  LCD screen, reading "The Peter
       Norton PC  Programming Bible,"  (3rd Edition,  Microsoft Press,
       1993). I  am stumbling  over "C" or Assembly code, as if in one
       of those  Monty Python sketches where this sleazy guy sits next
       to you  saying, "Know  what I  mean Governor,  nudge,  nudge...
       wink, wink...  know what I mean..." But you DON'T know "what he
       means" AND it's still funny.
       
       So I guess I do this -on vacation- because it's FUNNY.
       
       Anyhow and anyways, this is a program that tells you what drive
       you booted from no matter if it is A: or B: or C: or D: or...?
       
       Well... it  WILL if  you are  running  MS-DOS  Version  4.0  or
       better. If  you have an older version of DOS than 4.0, BOOT.COM
       will beep at you and tell you it can't continue.
       
       Believe it  or no, BOOT.COM (or its source file, BOOT.BAS) is a
       unique QuickBASIC  4.5 program.  A unique  program in  the true
       sense of  the word  (unique n.  One of a kind, no other example
       exists in  the known universe). I have scoured the highways and
       byways of  QuickBASIC land  looking for  a program like this...
       not because  it's so  brilliant or  hard to  do,  just  that  I
       thought that  it would  be a  useful utility  to  have.  So  in
       reading "Norton" this week, I stumbled across "know what I mean
       nudge.. nudge...  wink, wink...  know what  I mean...."  how to
       make this tiny gem and decided to share it with you.
       
       Up until  now the  only way  I could even close to knowing what
       the boot disk was by querying:
       
       A$ = ENVIRON$("COMSPEC")
       'if the variable is NOT null
       IF LEN(A$) THEN BootDrive$ = LEFT$(A$,2)
       PRINT "Your Boot Drive is: "; BootDrive$
       
       The  Function   ENVIRON$  -as   used  above-  finds  out  where
       COMMAND.COM is loaded from AND ASSumes that this is the same as
       the boot drive. Well, that was not good enough as some folk use
       the SHELL  command in  the CONFIG.SYS  file to move COMMAND.COM
       around (Well...  I know,  =I= do!  "know what  I  mean  nudge..
       nudge... wink, wink... know what I mean....")
       
       I don't  have a  network to  try it  on to  see if it correctly
       picks that  drive up  but since  it calls  an  MS-DOS  software
       interrupt, I suspect it may work for that too. If you try it on
       a network and it -works-, would you let me know?
       
       The executable  file BOOT.COM,  is a  plain vanilla  QuickBASIC
       program LINKed  with Crescent  Software's PDQ  Library and then
       compressed with  the French  FreeWare program LZEXE.EXE to make
       it tiny.
       
       BOOT.BAS has  a fair  amount of  information about Registers in
       the text  portion that  you won't  find  in  one  spot  in  one
       book.... If you want to know about this CALL INTERRUPT stuff as
       it applies  to QuickBASIC,  then you  need to get Ethan Winer's
       book "Basic  Techniques and  Utilities" (Ziff Davis Press 1991)
       BEFORE you  try  the  Norton  book.  "Norton"  is  written  for
       Assembly and  "C" cats  and there  is very  little help for the
       QuickBASIC aficionado.
       
       Get back to me if you like this program or enhance it. Get back
       to me  if you  think this  is another  dumb program that I have
       written that is totally useless, need to know that too... "know
       what  I  mean  nudge..  nudge...  wink,  wink...  know  what  I
       mean...."
       
       John De Palma on CompuServe 76076,571
