Super-Card Ami II MFM Editor/Disk Analyzer (Updated August 20th, 1991) Many minor bug fixes and the addition of new graphics and a custom font. Analyzing routine improved. Copyright -1990, 1991 By Jim Drew Distributed By Utilities Unlimited of Oregon, Inc. Welcome to the docs! The MFM Editor can cause severe headaches if used with recklessness! You WILL destroy valid data if you are not careful. This program is NOT meant for beginners...except for the ANALYZING option, do NOT 'play' with this program unless you are willing to spend some time to learn how to use it! Now that the scare is over..... The MFM Editor/Disk Analyzer (referred as 'Editor' from here on) is a 640x200 4 bitplane display screen having 21 gadgets. Let's look at each of the gadget's functions: TRACK DOWN (D) - Clicking this arrow gadget reduces the Track/Head counter. The lowest track/head you can have is 00-0. TRACK UP (U) - Clicking this arrow gadget increases the Track/Head counter. The highest track/head you can have is 81-1. With both the D and U arrow gadgets, you can HOLD DOWN the LEFT mouse button and the tracks/heads will decrease/increase automatically. You use these gadgets to select which track/head you wish to READ, EDIT, or WRITE. SHIFT LEFT (L) - Clicking this arrow gadget will 'bit shift' the contents of the buffer to the LEFT by 1 bit. SHIFT RIGHT (R) - Clicking this arrow gadget will 'bit shift' the contents of the buffer to the RIGHT by 1 bit. Bitshifting is a VERY necessary option, and to my knowledge, this is the only editor that has this feature. If you read a track with INDEX (or any mode), you can shift the data LEFT or RIGHT until you can find a SYNC that may normally never be found with conventional reading. This is handy when you find the write splice...you can shift until you find a valid SYNC mark. READ - Clicking on this gadget reads the track/head specified. READ LENGTH - Just to the right of the 'READ' gadget you will find a string gadget containing a hex value. This value is the number of WORDS (number of bytes divided by 2) that is to be read from the track/head. You can enter any value from $0001 to $3FFF. The buffer will adjust itself accordingly. This value sets the buffer length. SYNC - Clicking this gadget will move the cursor to NEXT occurrence of the value contained in the SYNC VALUE gadget. When there are no more occurrences of the sync value, the screen will 'lightning' (flash) to let you know. SYNC VALUE - Just to the right of the 'SYNC' gadget you will find a string gadget containing a hex value. This value is placed in PAULA's (disk controller chip) SYNC register. If you have selected INDEX/SYNC or SYNC mode, the READ will be started by the value in this gadget. When you READ a track, the sync register is loaded with this value and a search is made to ALWAYS start the reading with this value. If PAULA can't find the sync, you will be prompted with a 'System Error!' message telling you that NO SYNC was found. If you get this message while reading a track/head that is known to be protected, try reading it in INDEX, or changing the SYNC VALUE to something else. You can enter any value from $0000 to $FFFF, however, some values are not possible to be used as SYNCs. WRITE - Clicking this gadget WRITEs the buffer data to the track/head specified. WRITE LENGTH - Just to the right of the 'WRITE' gadget you will find a string gadget containing a hex value. This is the number of WORDS to write to the track/head. You can enter any value from $0001 to $3FFF. Please remember, do not try to write a track longer than your drive can write! If you do, you will 'overlap' the track which may or may not destroy the start of the track. START - Clicking this gadget acts like no other gadget in the editor. The gadget will 'toggle' back and forth between raised and sunk in. When the gadget is sunk in, the START VALUE you will be added to the buffer start address whenever you READ or WRITE data. For example, set the START VALUE set to $0100 and enable (sunk in) the START gadget. Now, when you click on the READ gadget, the data buffer starts filling at $0100 and not the normal $0000. This allows you to add data before the normal buffer data. If you set the START VALUE to $0004 you could add a sync mark before the rest of the buffer data. START VALUE - Just to the right of the 'START' gadget you will find a string gadget containing a hex value. This is the number of bytes to add to the buffer start address. You can enter any value from $0001 to $1FFF. FILL - Clicking on this gadget will fill the ENTIRE buffer with the value specified in the FILL VALUE gadget. FILL VALUE - Just to the right of the 'FILL' gadget you will find a string gadget containing a hex value. This is the value to use when filling the buffer. You can enter any value from $0000 to $FFFF. FIND - Clicking on this gadget will move the cursor to the next occurrence of the value specified in the FIND VALUE gadget. When there are no more occurrences of the value, the screen will 'lightning' (flash) to let you know. You can enter any value from $0000 to $FFFF. FIND VALUE - Just to the right of the 'FIND' gadget you will find a string gadget containing a hex value. This is the value to be found when using the FIND option. You can enter any value from $0000 to $FFFF. INFO - Clicking on this gadget will cause another window to open and the information about the current (last read) track/head will be displayed. Also, there will be an 'educated guess' as to what copy METHOD/MODE you would use to duplicate this track/head with Super-Card Ami II. Click on the EXIT gadget when you are through looking at the information. DRIVE - Clicking on this gadget will change which drive is to be used. The 'device list' is checked before the program executes, so all mounted disk drives (df0-df2) will be available for use if you have them connected. MODE - Clicking on this gadget will change which mode to use when you READ and WRITE. The modes are: INDEX/SYNC...this starts all reads/writes using the first SYNC mark after the INDEX pulse. SYNC...this starts all reads/writes using the first encountered SYNC mark. This could be ANYWHERE on the disk in reference to the INDEX pulse. INDEX...this starts the reads/writes after finding the INDEX pulse. No SYNCing is done, so the data will look rather odd. This would be a good time to use the 'bit shifting' option. SLIDER BAR - Moving the slider bar allows you to view various places in the buffer. You can hold down the LEFT mouse button while over the WHITE square in the slider bar and 'grab' it and move it around. You can also click the LEFT mouse button above or below the square. BUFFER WINDOW - You can use the CURSOR KEYS to move the WHITE/RED cursor around in the buffer window. You can also click the LEFT mouse button while the mouse pointer is within the buffer window and the cursor will be moved to the current pointer location. You can also use these keys to perform various functions: HOME...moves cursor to upper left corner of the window. END...moves cursor to lower right corner of the window. PgUp...moves up one full page of buffer data. PgDn...moves down one full page of buffer data. UP Arrow (keypad number 8)...moves to TOP of buffer data. DOWN Arrow (keypad number 2)...moves to BOTTOM of buffer data. You can also use 0-9 and A-F to enter data into the buffer. When ever you move the cursor or buffer position, the current cursor position is updated and displayed in the box that is in the TOP/CENTER of the buffer window. The cursor position is displayed in both bytes and words (left and right value respectively). The TRACK LENGTH and NUMBER OF SYNCS are displayed every time you READ a track. This is a convenience to allow you to change the READ LENGTH or MODE options. To EXIT the editor, move the mouse pointer to the UPPER LEFT corner of the screen and click the LEFT mouse button. Creating WEAKBITS and STRONGBITS: To create WEAKBITS, write a bunch of 00's in a row and WRITE the data. EVERY TIME you read this data back, it will change! Look at Nuclear War...track 79, head 1 of disk 1. To create STRONGBITS, write a bunch of FF's in a row and WRITE the data. EVERY TIME you read this data back, it will read as 00's! Look at programs like: Stunt Car Racer, Ghost Busters II, F29 Retaliator, Hard Drivin'....track 0, head 1. Go play...but be careful!