home *** CD-ROM | disk | FTP | other *** search
-
- 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.
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Examples:
-
- The following examples can be used to link the Insider II on A1000
- (with Insider II dip switches set as: 1-off, 2-off, 3-on, 4-on):
-
- 1 > Memory -zl h800000 h980000 ; zero it, add it
-
- Type the following when using Insider II with recoverable ram drivers:
-
- 1 > Memory -l h800000 h980000 ; add it without altering contents
- ---------------------------------------------------------------------
- The following examples can be used to link the 8UP! board, but only
- when the autoconfigure jumpers are removed.
-
- 1 > Memory -zl h200000 ha00000 ; zero new mem, add new mem
-
- Type the following when using the 8UP! with recoverable ram drivers:
-
- 1 > Memory -l h200000 ha00000 ; add new mem as is
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Version History:
-
- The following information briefly describes changes or improvements
- made to each version, and they will be described in descending order;
- meaning latest version information begins first:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Version 2.0 (19940214) -
- 1) Changed version numbering format. Program can now be used with the
- "Version" command. Date within parenthesis is shown in a somewhat
- international format as (yyyymmdd).
- 2) Enhanced option -l.
- 3) Added new options -d, -s and -t.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Version 19930729 - The first version.
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
- / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \
- \ /
- / 24 Then said Jesus unto his disciples, If any man will \
- \ come after me, let him deny himself, and take up his cross, /
- / and follow me. \
- \ 25 For whosoever will save his life shall lose it: and /
- / whosoever will lose his life for my sake shall find it. \
- \ 26 For what is a man profited, if he shall gain the /
- / whole world, and lose his own soul? or what shall a man \
- \ give in exchange for his soul? /
- / 27 For the Son of man shall come in the glory of his \
- \ Father with his angels; and then he shall reward every man /
- / according to his works. \
- \ /
- / The Holy Bible - Matthew 16:24-27 \
- \ (King James by the way) /
- / _ _ _ _ _ _ _ _ _ _ \
- \___/ \___/ \___/ \___/ \___/ \___/ \___/ \___/ \___/ \___/ \___/
-
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- End Of Document
-