Release Date October 31, 1984; Patch 1.2 1. Fixed search function to stop after wrap around to start of search 2. Added tabbing to ASCII display mode (tabsize=8) 3. Quicker disk operations during searches 4. Default disk changed when reference is made to a disk in File Name 5. Added a WILDCARD to the search routine Release Date October 21, 1984; Patch 1.1 1. Changed Search function to disreguard upper/lower case distinction 2. Search now begins at current record and wrapps around 3. Now able to select disks other than default 4. Added Display mode that prints ASCII files out in line format for better readability First Release Date October 15, 1984; Patch 1.0 PATCH 1.2 (c) Copyright Bill Rink; 1984 This software is made available to the public domain and may be freely distributed. It is not to be sold or used for commercial use and is donated as appreciation for all the fine software made available by the unselfish individuals that have contributed to the public domain. PATCH is a file/memory editor that allows for easy access of either in- dividual records within a file or pages within memory. PATCH can operate in one of two modes; accessing 128 byte records from within the selected file, or 256 byte pages of processor memory (up to 64k). Regardless of which mode you are in, there are 256 bytes of information displayed on the screen. PATCH works like a full screen editor when changing HEX data. In addition, it has search capabilities on any combination of either HEX, DECIMAL, or ASCII fields that are separated by commas. PATCH is based upon the concept of EDFILE, a program which I have used extensively and enjoyed tremendously. My desire was to make an enhanced version that would be easy to use and more versatile. In a later ver- sion, I plan to have the option of displaying the various addresses associated with the operating system (BDOS,CCP,BIOS, jump table, etc.) and allowing easy access to these memory pages or disk records. Selecting a Mode ---------------- When the program initializes, you are asked to select whether you wish to edit a FILE or MEMORY. Once you have selected the desired mode, you will either be prompted for the file name or shown the first page of memory (page 0). Commands -------- You will then be shown a list of commands to use for operating in that mode. The command set is more complete in the file mode due to the na- ture of operation. 'Display' This will change the dispaly mode for looking at a file. If you are looking at a file in the HEX/ASCII mode, entering a "D" will toggle you into a ASCII line mode in which each line is strickly ASCII and is terminated by a CR,LF. Any non-printable char- acters will be shown as a reverse video field to indicate them as such. Tabs are converted, using a tab size of 8. 'Record' Enter the record number within the file that you wish to access. This is a DECIMAL record number. The EOF record is shown next to the file name. 'Base' Allows changing the BASE address used as a reference while in a file. The default is 100H. This is useful when viewing image files of the operating system. 'Search' Will prompt you for a search key to be used for scanning records or memory. You may search for any combination of character types (HEX, decimal, or ASCII). To denote the different types, you use a prefix before the field. Use quotes (") at the beginning of any ASCII field, a decimal point (.) at the beginning of a decimal field, and H at the start of a HEX field. If you leave the prefix out, it will be assumed to be HEX. Separate each field with a comma. eg. "This is ASCII,.1234,0FE1," etc. Will search for an ASCII string followed by a decimal, HEX, and ASCII field. When a string is found, it will be reverse highlighted to denote it from the rest. Wildcards are permittted by using an 'X' for a don't care. This must be a seperate field, delimited by a comma and there may be as many X's in the string as you desire. For example, entering a "Bo,X,"t,X for a search string would locate a match for BOATING, BOOTS, or BOTTOM. Excercise caution, because whenever the wildcard(s) are present, any "X" in an ASCII string will act as if it were a wild card too. You can terminate the search at any time by hitting any character on the keyboard. This is useful if you are searching a long file and realize that you entered the wrong key. 'Ucase' When highlighted, it means that when searching for an ASCII match, the case of the key and the string matched against will NOT matter. If not highlighted, case does matter. This feature can be toggled by entering a "U" command. If you perform a search on a HEX, decimal, or ASCII and numerical combination, Ucase will toggle to the OFF state. In other words, all searches will be exact matches if mixed or numeric. 'Cont' Continues the search for the last string found. 'Address' Allows a HEX address to be entered for positioning from within the file or memory. 'Edit' Will place the cursor at the top left corner or at the begining of the string that was found with a 'Search'. Commands will be displayed to indicate how you may move the cursor from within the display. There are two sets of commands available, the standard WordStar format and one for those who like to use their right hand. If you have cursor keypad that outputs E2,E4,E6, and E8, then it will work. (You can use PATCH to change these for your particular keypad, just search for them.) To change from the HEX field to the ASCII field, or visa versa, enter a ^F. To quit editing, enter a ^Q. You will then be asked if you wish to WRITE the record or ABORT the edit. 'Page' Paging is accomplished by either entering a + or -, or hitting a RETURN for paging forward. To use this program, it is necessary that your terminal have the follow- ing screen commands available: Cursor Addressing Reverse Video Clear Line Clear Screen Delete Line and scroll screen up Insert Line and scroll screen down To install this program for your terminal, use DDT to change the following locations. The first byte in each string is the number of bytes in the string. Cursor Addressing 018B is currently 04,1B,3D,00,00 ( 2 ESC = 0 0 ) The last two bytes are the offset from 20H for row,col. i.e., if your term uses an offset of 30H, then use 10H or an offset of 0, then use FFDFH (-20D) Clear Screen 01A2 is currently 02,1B,2A ( 2 ESC * ) Clear Line 01BC is currently 02,1B,54 ( 2 ESC T ) Start REV Video 01C8 is currently 02,1B,29 ( 2 ESC ) ) End REV Video 01C2 is currently 02,1B,28 ( 2 ESC ( ) Insert Line 01AE is currently 02,80,0B Delete Line 01B4 is currently 02,80,0A I think you will find this a powerful PATCH utility and I hope you find it useful. Enjoy! - Bill Rink San Jose, CA