home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 8
/
FreshFishVol8-CD2.bin
/
bbs
/
util
/
mayflower.lha
/
MayFlower
/
Memory
/
Memory.doc
< prev
next >
Wrap
Text File
|
1994-06-10
|
11KB
|
250 lines
Memory 2.0 (19940214)
by Stephen D. Childers
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I was inspired to write this program after using another program call
"addmem" (version 1.1.0 21-Jan-85) that is packaged with the Insider II
(which is produced by the DKB Software company); it is a memory board
which can be put inside the ancient A1000.
--- ---
Their addmem program was lacking (o) (o)
the options and warnings I desired. ^
SOOoooo, I wrote me own. \_____/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Program Description:
1) This program can perform several functions, one of which is to
link expansion board ram to the system MemList List (henceforth
refered to as "system memlist"), and will perform safety checks
upon the input argument values which should {*smile*} keep system
from crashing.
Insider II - by DKB Software company
8UP! - by Microbotics
Some memory boards automatically link themselves to the system
memlist upon initial power on. The -l option can not be used with
boards that auto link, but other options can be used.
2) This program has the following options:
Option d = will display the memory nodes that are currently linked
to your system memlist, and will show them in the order that they
are found within the system memlist.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option l = link memory board into the system memlist, without
altering contents of memory (unless used with option z).
When the -l option is used without a numeric follower then,
by default, the memory will be linked to the beginning of the
system memlist.
If a number follows the l option then the new memory region (node)
will be linked into that position within the system memlist. If
the position argument is above the actual number in memlist then
new memory region will be linked to end of memlist.
The following example assumes that a fully populated 8UP! memory
board is being linked to your system.
Example #1:
Step 1) Get a display of the memory list by typing
>Memory -d
Step 2) Determine the position number you want the memory
placed into, and then type
>Memory -l2 h200000 ha00000 ; 2nd position in memlist
Example #2:
To place memory region (node) at the end of the list then type
>Memory -le h200000 ha00000 ; e = link at end of memlist
NOTE: Program will detect and report if address arguments collide
or overlap any portion of the system memlist, and will set
the return value to FAIL upon exit, and print the message:
"memory linked already"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option s = will sort the memory nodes within the system memlist
and put them in ascending (sequential) order according to memory
location, lower memory will be put at the front of the list.
This version of the Memory program will assume that CHIP memory is
assigned to only one memory node, and that node will be placed at
the end of system memlist after all FAST memory nodes are sorted.
I discovered the need for sorting the system memlist after
discovering that the memory sections of the 8UP! memory board can
be linked in a random order within the memlist. The "Mergemem"
program (V2.1 by Carolyn Scheppner) will only merge memory nodes
that are sequentially ordered within the memlist. The following
lines can be used in a script file to insure memory nodes are in
sequential order just before using the particular MergeMem program
just mentioned:
>Memory -s
>MergeMem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option t = will transfer a memory node within the system memlist
to another place within the system memlist.
Example #1:
Use option -d to get a display of the system memlist then type
the following
>Memory -t4:2
This will transfer the memory node in the 4th position of the
memlist to the 2nd position, and the memory node that ocupied
the 2nd position will now be pushed to the 3rd position, and
memory node in the 3rd position will be pushed into the 4th
position in the memlist.
Example #2:
>Memory -t2:4
This will transfer the memory node in the 3rd position of the
memlist to the 4th position, and the memory node that ocupied
the 4th position will now be pushed back to the 3rd position, and
memory node in the 3rd position will be pushed back into the
2nd position in the memlist.
If 4th node position in this example did not exist then 2nd
position would be transfered to end of list position.
Example #3:
>Memory -t1:e
This will transfer the memory node in the 1st position of the
memlist to the end of memlist.
Example #4:
>Memory -te:1
This will transfer the memory node at the end of memlist to
the first position of memlist.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option z = fill memory with zeros and test if any cells appear
bad, and abort if so. When used with option l it will zero memory
before linking memory to system memlist. If memory is already
linked then program will set the return value to FAIL (20) upon
exit.
NOTE: Do not use option 'z' if you are attempting to use a
particular ram board as a recoverable ram drive during
warm reboots (ie ASDG-RAM:, VD0:, RAD:, etc: ).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The internal precedence of options will be performed in the
following sequence regardless of the position in which they
appear within the option argument.
1) perform option s (sort memory nodes)
2) perform option z (zero new memory range)
3) perform option l (link new memory range)
4) perform option t (transfer memory node)
5) perform option d (display memory nodes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3) Can only be used from CLI. Can be made resident.
4) Program (when run from CLI) will interact with the 'c:Why' command
after program failures; this command may provide a more detailed
explanation of why the program failed.
The 'Why' command should be used immediately after a program
failure to extract the last program's result code, because
that result code is changed upon the execution of the next CLI
command.
5) Certain error reports will contain the name of the argument, file,
device, (etc) that is associated with failure when it occurs.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CLI Usage:
1 > Memory [!|?] [[-options] start_address end_address]
! = Show author info
? = Show some help
options: d = display memory list
ln = link new memory into memory list
n is the link position number, (default = 1)
and can be a decimal number or e for (e)nd of list
s = sort memory list
tn-n = transfer a memory node# to another place in list
n must be decimal numbers, or e for (e)nd of list
z = fill the memory with zeros (and test)
start_address = The start address of memory board.
end_address = The end address of memory board.
Address values can be hex or decimal.
Hex values must be preceded with the 'h' character.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~