@database @{b}Mem@{ub} @$ver $VER: Mem.guide 2.2 (1.6.98) @wordwrap @node main "@{b}Mem@{ub}" @{b}Documentation for Mem@{ub} @{b}Contents@{ub} @{"Introduction" LINK "intro"} @{"Requirements" LINK "reqs"} @{"Installation" LINK "install"} @{"Registration" LINK "reg"} @{"Distribution" LINK "dist"} @{"Disclaimer " LINK "disc"} @{"Usage " LINK "usage"} @{"Future " LINK "future"} @{"History " LINK "history"} @{"Author " LINK "author"} @{"Thanks to..." LINK "thanks"} @{b}©1998 Albert Bertilsson@{ub} @endnode @node intro "Introduction" @{b}Introduction to Mem@{ub} @{b}Mem@{ub} is a utility for viewing and editing of memory and files in binary form. This can be useful for programmers when testing their programs data structures and data files. It is also for all those who just would like to explore the memory contents of their amiga. @endnode @node reqs "Requirements" @{b}Mem has been developed and tested on:@{ub} AmigaOS 3.0 CPU MC68020 @{"MUI" LINK "mui"} 3.8 Recommended: A C compiler The include files @endnode @node install "Installation" @{b}Installation of Mem@{ub} Unpack the archive, and copy it to the desired place. @endnode @node reg "Registration" @{b}How to register Mem@{ub} If you use @{b}Mem@{ub} a lot, you can register @{b}Mem@{ub} to get rid of the irritating requesters and to enjoy some extra features. All you have to do is to send @{"me" LINK "author"} an email with subject "Mem registration" and with the information be * Name * Email address * Snailmail address You must also tell me what you use @{b}Mem@{ub} for, and how often. Please include some constructive feedback, to make @{b}Mem@{ub} better. Please be patient, I can not check my email more than once a week. @endnode @node dist "Distribution" @{b}Distribution of Mem@{ub} @{b}Mem@{ub} is Mailware may be copied and spread as long as the archive remains unchanged. @endnode @node disc "Disclaimer" @{b}Disclaimer@{ub} The author disclaim all responsibilty for data loss and system crashes when using @{b}Mem@{ub}. The program is provided "as is" without warranty of any kind, either expressed or implied. The entire risk is with you. @endnode @node usage "Usage" @next future @{b}Usage of Mem@{ub} @{b}Startup state:@{ub} @{b}Mem@{ub} starts with one open view window. In this window you see a two numbers, and beneath it a textgadget with more numbers. The first two numbers shows the current address in decimal and hex. If the address numbers are highlighted, this window is the active view. The textgadget displays the contents of the memory at the current address, the format is edited with the 'Control' window. @{"Menus" LINK "menus"} @endnode @node menus "Menus" @{b}Menus@{ub} Monitor Update Update the current view window New Opens a new view window Write Write memory contents to disk --- About Information about @{b}Mem@{ub} About MUI Information about Magic User Interface --- Quit :-( Address Changes the current address Set Address Use 0x to enter hex values Add to address Read address... Jump to the specified longword --- Increase 1 Increase 4 Decrease 1 Decrease 4 --- Page up Page down Search @{"New search" LINK "search_win"} Specify a what to search for --- Begin Start search from the beginning Next Search for next item Previous Search for previous item Windows Opens the selected window @{"Control" LINK "ctrl_win"} Controls the view window @{"Poke" LINK "poke_win"} For poking data into memory @{"Preferences" LINK "prefs_win"} Customize @{b}Mem@{ub} --- @{"Allocations" LINK "alloc_win"} Manages memory allocation @{"Files" LINK "file_win"} Manages files @{"Structures" LINK "structure_win"} Manages structures --- @{"MemChange" LINK "memchange_win"} Calculates the amount of free memory @endnode @node search_win "Search window" In this window you can search for data. The cycle gadget is used for specifying which type of data to search for. STRING is any text, and C STRING means that the string must be terminated by a NULL byte. The search is performed in the current memory area. Strings are compared case sensitive, maybe there will be an option to search case insensitive in the future. @endnode @node ctrl_win "Control window" This window controls the information showed in the view window. @{b}Absolute address@{ub} If set the address in the view window will be displayed as the actual address in memory. If not set the address will be relative to the baseaddress. Load and display a file, to see the difference. The other options are quite easy to understand, just change them and watch the view window change. @endnode @node poke_win "Poke window" In this window you can write data into memory. The cycle gadget is used for specifying which type of data to write. STRING is any text, and C STRING means that the string will be terminated by a NULL byte. If the jump forwards gadget is checked, the view window will be positioned so that a new poke will not overwrite the previous one. @{b}Warning!@{ub} Poking around in memory can crash your machine, use with care and respect. @endnode @node prefs_win "Preferences window" In this window you can control several options, making @{b}Mem@{ub} behave the way you like. In the unregistered version of @{b}Mem@{ub} the functions for reading saved prefs are disabled. @endnode @node alloc_win "Allocations window" @next file_win This window is used for managing memory allocations. You can allocate memory of any type and size, the memory will be released when the program quits, or you delete it. @{"New" LINK "new_alloc_win"} @endnode @node new_alloc_win "New allocation window" @next alloc_win @prev alloc_win @{b}Name@{ub} The name that the allocation will have in the allocation list. @{b}Size@{ub} The size (in bytes) that you want to allocate. @{b}Type@{ub} See the autodocs for further explanation. @{b}Clear@{ub} Clears the memory allocation to zeroes. @{b}Reverse@{ub} Allocates the memory from the highest address possible, if fastmem is available it will be picked before chip. @endnode @node file_win "Files window" @next structure_win @prev alloc_win This window is used for loading and displaying files. The files are loaded to memory, and will not be changed. The allocated memory will be released when the program quits, or you delete the file. Note: If you select delete, the file will be deleted from memory, not from disk. @{"New" LINK "new_file_win"} @endnode @node new_file_win "New file window" @next file_win @prev file_win @{b}File@{ub} The filename of the file you want to load. @{b}Name@{ub} The name that the file will have in the file list. @endnode @node structure_win "Structures window" @next memchange_win @prev file_win This window manages structures. A structure is a definition of what a pice of memory contains. Since structures are used a lot by the Amiga OS, Mem now has a feature for displaying them in a nice way. The Load and Save button are used for loading and saving structures in .stf (STructure File) format. Test generates a C source code file, that can be compiled, with some editing. The resulting program displays the diffrence in size (bytes), between the structure you entered and the structure that the Amiga OS uses. If this value is non zero, something is wrong. @{"Examine" LINK "estructure_win"} @{"Edit" LINK "edstructure_win"} @endnode @node estructure_win "Examine structure window" @prev structure_win This window does the same thing as the view window, but shows the data on the format specified by the structure, making it very simple to read the memory. @{b}Menu:@{ub} Address Update Update the structure --- Get from view Get the address from the active view Send to view Send the address to the active view --- Close @endnode @node edstructure_win "Edit structure window" @next structure_win This window is used for defining structures and unions. The string gadget for entering type code knows the following types: 0 BYTE 1 UBYTE 2 WORD 3 UWORD 4 LONG 5 ULONG 6 void Not allowed except in combination with pointer. 7 struct 8 union 64 Array Can be added with all types, void excluded. 128 Pointer Can be added with all types. @{b}Menu:@{ub} List Add Insert an item at the end of the list Insert Insert an item before the active item Delete Delete the active item --- Clear Delete all items @endnode @node memchange_win "MemChange window" @next menus MemChange is used to see changes in the amount of free memory. Press start, do something, press stopp, you can now see the difference in the amount of free memory between the two occasions. @endnode @node future "Future" @prev usage @{b}Future@{ub} * Improved editing capabilities. * A history gadget with visited addresses. * Case insensitive search. * Improve the documentation. * Possibility to show WORDS and LONGS in intel format. * Remove some nasty bugs. * Use HexEdit class by Miloslaw Smyk * Whatever you may suggest. @endnode @node history "History" @{b}History@{ub} @{b}2.2@{ub} Major update Save function for files added. Edit window for structures added. View window for structures added. Addresses can be entered in hex, by adding '0x' as prefix. Address in view window is also showed in hex. @{b}2.1@{ub} Minor update Added search function. Some small GUI improvements. Poke window improved, added the jump function. Improved the documentation, still needs a lot of work. @{b}2.0@{ub} Major update Many features added :-). Some features removed :-(. MUI GUI. @{b}1.65@{ub} Minor update Added Changescan option. Added possibility to enter addresses in hex. Replaced the ruler under the banks with colour codes. Cleaned up the source a bit. @{b}1.6@{ub} Minor update Added the jump to address function. Added the absolute address option. Removed a bug conserning the start and end of the memory. Some small GUI improvements. @{b}1.51@{ub} Bug fix Bug fix, ALL allocated memory is now released. @{b}1.5@{ub} Initial release @{b}1.0@{ub} Internal version Never published. @endnode @node author "Author" @{b}Contact the author...@{ub} Name: Albert Bertilsson Email: abbe_something@hotmail.com WWW: www.geocities.com/SiliconValley/Haven/3322 @endnode @node thanks "Thanks to..." @next main @{b}Thanks to...@{ub} Stefan Stuntz for the incredible @{"MUI" LINK "mui"}. Thomas Nordh for testing and feedback. @endnode @node mui "MUI" @prev main @next main ------------------------------------------------------------------------ MUI - MagicUserInterface Version 3.8 (c) Copyright 1992-97, Stefan Stuntz ------------------------------------------------------------------------ MUI is an object oriented system to create and maintain graphical user interfaces. From a programmers point of view, using MUI saves a lot of time and makes life much easier. Thinking about complicated terms like window resizing or font sensitivity is simply not neccesary. On the other hand, users of MUI based applications have the ability to customize nearly every pixel of a programs interface according to their personal taste. Please click on the Install-MUI icon to install MUI on your system or to update from previous versions. Latest news and support can be found on Internet at www.sasg.com. @endnode