The program TrackEd is Freeware. You may copy and use TrackEd if you stick with the following rules: 1) No profit is made by selling TrackEd to others. A small fee for copying, disk costs etc. may be asked. This should not be more than $5. 2) TrackEd is distributed in its original form. No changes are made and this file must be distributed with it. If possible, distribute also the source files with it. 3) TrackEd is not distributed as part of a commercial product, unless you have the written permission of the author. 4) When you modify the source code and release a new version of TrackEd, the author should be notified and his name has to remain mentioned in the 'About'-text in the program. 5) The author can not be held responsible for damage or data loss, which are caused by failures in the program, incorrect use of the program, errors in the manual or any other reason. 6) TrackEd is Freeware. This means you need not to pay for using it. However, if you appreciate this program and like to see new versions or other improvements, it is not forbidden to send cash of any kind to the author. If you have any bug reports or suggestions for improvement then they are even more welcome and you can send me a letter to the address at the end of this file. 1 Introduction TrackEd is a program which allows you to read, edit and write sectors of Amiga floppy disks. One sector at a time can be read into the buffer and can be edited in hexadecimal or ASCII mode. Sectors can be saved and loaded to disk files, or can be put in a second buffer. You can read sectors from all DFx: devices that are connected to your Amiga system. Data and strings can be searched on the whole disk or just a part of it. String search can be executed in three different modes. This program requires OS Release 2 or higher to operate. 2 How to use TrackEd You can start TrackEd from the Workbench by double-clicking on its icon, or from the CLI by just giving the command 'TrackEd'. A window will be opened which shows a big box with numbers, four buttons for the drives df0: to df3: (the buttons belonging to not connected drives will be disabled) and three button sets to change current track, sector and block. If no DFx: units are found the program will terminate. (This is possible if you have a harddrive or a RAD:-disk and you disabled your internal and external drives with the setup-menu in OS2.0). The program will read block 880 (the root-block) of the first connected drive unit, generally df0:. You can change drive by clicking on the drive buttons. The current block displayed can be changed by changing the number in the track, sector or block gadgets. Note that the maximum track value is 159, the maximum sector value is 10 and the maximum block value is 1759. You can change these numbers also by pressing the arrow buttons next to the number gadgets. The block number is not independent of the track and sector's values. The block number can be calculated with the formula: block = 11*track + sector. On the other hand, if you change the value in the block gadget, the track and sector gadget will be changed to match this formula. To read the desired sector, you can change the track and sector values or the block value, whatever seems to be the easiest. Whenever you change one of these values, the new sector will be read into the buffer and displayed in the window. Only half of the buffer contents can be showed in the window at a time. To see more, use the proportional gadget right to the buffer-window. The buffer contents can be edited by typing hexadecimal digits in the number part of the window, or by typing ASCII-characters in the most right column. If you have entered a character, the cursor will proceed to the character right from the one you just entered. If you reach the end of the row, or if you pressed the return-key, the cursor will proceed to the next line, but will remain in the same column you were in. So if you want to type a long string in the ASCII-part, you can just keep typing until the string is complete, or you have reached the end of the buffer. The cursor can be moved with the cursor keys, the backspace key and the return key. You can also get to a certain position quickly, by clicking on the desired position with the mouse. 3 Menu functions The menu has four main menus: - Project | About | Quit - Sector | Read again | Write back | Load from file | Save to file | Calculate Checksum - Buffer | Read from buffer | Write to buffer - Search | Search string | Search number 3.1 Project 'About' shows the current version of TrackEd, when it was last changed and the author's name. 'Quit' closes the window and exits TrackEd. 'Quit' will not ask you to confirm if you really want to quit, so do not select this menuitem if you made important changes in the buffer that were not updated to disk. 3.2 Sector 'Read again' will the selected sector again. Use this as an undo function. 'Write back' will write the buffer back to the selected sector. If you want to write the buffer to another sector or to another disk, see the 'Buffer'-menu. 'Load from file' will load data from a file into the buffer. If the size of the file is greater than one sector (= 512 bytes) only the first 512 bytes will be read. If the size is smaller, the whole file will be read and a warning will be displayed. 'Load from file' uses the ASL filerequester. If you want to use this function, you'll need to have "asl.library" installed in your LIBS: directory. 'Save to file' will save the contents of the buffer to a file. The size of this file will always be 512 bytes. 'Calculate checksum' will calculate the checksum of the buffer. the Checksum will be placed into the fifth longword. Use this function only if you are sure the sector needs a Checksum. IMPORTANT NOTE: the bootblock uses a different checksum formula. NEVER use the 'Calculate checksum' on a bootblock. (Unfortunately, I could nowhere find documentation on the formula for the bootblock checksum. If someone knows this formula, please send me a letter with the formula explained to the address displaced below). 3.3 Buffer 'Read from buffer' will load data from a second buffer into the sector buffer. This second buffer will initially contain only zeroes. 'Write to buffer' will copy the contents from the sector-buffer into the second buffer. You can use these read/write functions to store an edited track before you make uncertain changes. The main reason why I implemented these functions, is that it allows you to transfer a sector to a different track or disk. For example, you could read block 880 into the buffer and place it into the second buffer with "Write to buffer'. The you could select another drive or another block, let's say block 1759. This block will be read into the buffer and displayed in the window. You can now use 'Read from buffer' to copy the contents of block 880 into the buffer. If you would select 'Write back' now, you would have copied block 880 to 1759. 3.4 Search Search has two items: 'Search string' and 'Search number'. These work roughly in a similar way. 'Search string' opens a requester. You can change the start and end track, the string and the mode. To start searching press 'Start' or press 'Cancel' to abort the search. The start and end track define the tracks that are to be searched. These are by default 0 and 159, so if you do not change them, the whole disk will be searched. In the string box type the string you want to search. In what manner this one will be interpreted is dependent of the search mode. If you select 'A = a' then no distinction will be made between capital and non-capital characters. "aMIgA" could be found with "AMIGA" as search string. However if you select "A <> a" then this distinction will be made. If your search string is "Amiga" then "amiga" will not be found. If you are not sure if the searched word contains capital characters, use 'A = a' mode or search only the last characters of a word. For example you could find "Amiga" and "amiga" with the search string "miga". The most complex mode is the 'Relative' mode. In this mode a series of characters will be searched that have the same mutual differences between each other, but that do not need to have the same absolute values. For example, if your search string is "AMIGA" you could also find "amiga" or "BNJHB", but you will not find "Amiga" or "aMIgA". Use this mode if you suspect the searched string is not stored using ASCII-code, but another code in which the characters a-z are numbered in increasing order. If you have pressed 'Start' the search will begin. A requester will show the current track that is examined. Pressing the 'Abort' button will cause the search to be aborted without any result. If the string is found a message will be displayed and the sector it was found in will be read into the buffer. The data from the sector previously stored in the buffer will be lost! The cursor will be placed at the first character of the search string in the ASCII-column. If the last track was examined and the string wa still not found a message will be displayed and the buffer will still contain the sector it contained before the search. 'Search number' works the same as 'Search string' apart from the fact that it searches integer values instead of text. Therefore 'Search number' works in only one mode. The number(s) to be searched have to be entered in the same box as in which the search string in 'String search' was entered. You are allowed to use three different data formats: hexadecimal, decimal and ASCII. To search a decimal value, just enter the value in the box. For a hexadecimal value, the value should be preceded by a dollar sign ($). An ASCII value is inserted between two quotes ('). A decimal vaule will be converted to a byte, word or longword, depending on its value. So if you want to search a word with the value 27, you have to enter two decimal values: 0 and 27. The hexadecimale values will be split in seperate bytes. If the number of digits after the $-sign is odd, then an extra 0 will be placed in front of the other digits. So if you search a word with the value of 260, you could enter $0104 or just $104, or even $1 $4. The ASCII values will be converted to their ASCII-codes. More ASCII characters may be inserted between the quotes. 'ABC' will be converted to three bytes: 65 66 67. In one search more formats may be used. I will give some examples of legimate search values and the converted values: $43 -> $43 43 -> $2B $143 143 -> $01 $43 $8F $434445 -> $43 $44 $45 4425797 (= $434445) -> $00 $43 $44 $45 (!) 'C' 'c' -> $43 $63 'Amiga' -> $41 $6D $69 $67 $61 67 $43 'C' -> $43 $43 $43 $0043 -> $00 $43 $00043 -> $00 $00 $43 If the number is found, the sector it is in will be read into the buffer and the cursor will be placed at the first searched byte in the hexadecimal column. It is possible as well in string as in number search that the searched data is stored in two adjacent sectors. Then the sector will be read in which the first byte of the data was found. 4 I hope I have informed you clear enough how to work with TrackEd. If you have any suggestions about improvements or if you have discovered any bugs or errors, I would be pleased to know about them and you can send me a letter to: Camiel Rouweler Weldam 2 5655 JG Eindhoven the Netherlands