1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
$Id: faq.txt,v 1.1 2000/06/23 06:02:56 skaus Exp $
Frequently Asked Questions about FreeCOM
Copyright (C) 2000 Steffen Kaiser <ska-src@gmx.net>
current version v0.79b
-------------------- Glossar
FreeCOM: COMMAND.COM clone
--------------------
Q: There is an error message like "Cannot open STRINGS.DAT"?
There is no text for error messages.
A: The actual string (or text) of messages has been outsourced from
the program image to:
a) save space and
b) better support various languages.
The strings are appended to the FreeCOM executable and are read from
there each time a message is to be displayed.
When you load FreeCOM from floppy, remove the floppy and an error
occurs, FreeCOM tries to reload the messages from the FreeCOM
executable, but because it is no longer there, the actual text
cannot be loaded.
If you invoke FreeCOM with the /MSG switch, the messages are
permanently loaded into memory, in order to skip to reload them.
Note: The messages are loaded on demand and are purged from memory
when an external program is called, therefore problems show up
at an unregular base.
To visualize how loading and purging of messages work, compile FreeCOM
with debug option enabled or grab the precompiled COM_DBG.COM, then
run:
Example 1
Step #1) COM_DBG.COM /k FDDEBUG ON
[The "FDDEBUG ON" enables the debug output.]
Step #2) Now try to invoke a _non_existing_ command. Among others
you should see "[Messages successfully loaded to segment 0xeb7a]"
(the actual segment will vary) and below the error message that had
been loaded: "Bad command or filename.".
Step #3) Now run an _external_ command, which produces as less output
as possible (one line is best). You should see information
"[Message segment deallocated.]" immediately preceeding the line, the
program had produced.
Step 4) Now try to invoke the _non_existing_ command again, the
messages are reloaded.
Step 5) Immediately try to invoke the _non_existing_ one again,
the messages are _NOT_ loaded. This is as long you do not terminate
the FreeCOM instance nor call an external command, the message remain
in memory.
Step 6) Exit the current copy of FreeCOM, the "deallocated" info will
appear.
====
Example 2
Step #1) COM_DBG.COM /MSG /k FDDEBUG ON
Now re-run Steps 2 through 6. You will see that the message stay
in memory, except in step 6.
|