SIDRSX.DOC ---------- Documentation for SID.RSX v1.1 E. Meyer - 06/86 SID.RSX is an extension that adds to the usefulness of the CP/M Plus debugger program, SID. It is attached to your copy of SID.COM using the GENCOM utility, as follows: A>gencom sid.com sid.rsx Once this has been done, SID will continue to operate as usual, except that there are now new commands available, features I have sorely missed in the past: you can search through memory for a string of bytes, and you can change a string of bytes all at once. Both commands accept any mixture of hex and ASCII data. The new commands ("?" and "!") use characters not previously recognized by SID as commands, and are typed in at the SID prompt ("#") just like the built-in ones. In the event of a syntax error, they will return the usual cryptic error message ("?"). STRING FORMAT The "string" arguments for these commands can be an arbitrary sequence of hex and/or ASCII data. ASCII data is case sensitive, and must be enclosed in double quotes ("), except that no closing quote is needed if no hex data follows. To include a quote (") you must specify it as hex 22. Hex data (digits 0-F) may be upper or lower case, one or two digits. Commas (,) to separate bytes are optional; when omitted, each pair of digits will be treated as a byte. Examples: "String" OR "String 8D,0A OR 8d0a OR 8dA OR 8d,a String input that violates this format (about the only way to do this is to use invalid hex digits) will cause an error. 1. STRING SEARCH - "?" This command finds a string of bytes in memory. Examples: #?21,6,0 find bytes 21,06,00 hex #?"DIGITAL find ASCII string "DIGITAL" #?"Error"0d0a find string "Error" followed by hex 0D,0A In each case, if any occurrences are found in memory, the starting addresses will be displayed in hex. (If not found at all, nothing will display.) Example: #?"DIGITAL 0160 E908 F35E F72E # SID.RSX is smart enough not to report its own copy of the search string as a match every time. But one peculiarity remains... for a pure ASCII search (no hex bytes) there will always be a match found, in the string buffer in SID itself (and/or the BDOS) used by the BDOS 10 call that got the command from the console. (On my system, I always get a match at E908 and F72E, as shown above.) 2. STRING CHANGE - "!" This command changes a string of bytes in memory. You must specify a starting address (1-4 hex digits), then a comma (,), then the string of new values. Example: #!2a7c,":"1a Change two bytes at 2A7C to 3A,1A Nothing displays if the command is successful. Example: #d8b0,8bf 08B0: 00 00 00 00 00 00 00 00 .......... #!8b0,22"Hi"22 #d8b0,8bf 08B0: 22 48 69 22 00 00 00 00 "Hi"...... # Not only does this give you a way of entering ASCII strings directly; it is also faster than using the SID "S" command to enter a sequence of hex bytes. NOTES: Don't attach the RSX to SID more than once (which GENCOM will let you do); multiple copies waste memory. Keep a backup of plain SID.COM somewhere. Otherwise, if you ever need to remove SID.RSX from SID, you can do it as follows: A>SID SID.COM CP/M 3 SID Version 3.0 NEXT MSIZE PC END 2400 2400 0100 ???? ;(NEXT is 2080 if no RSX) #m200,2400,100 ;get rid of the RSX header #wsid.com,100,207f ;chop off the RSX at end #g0 --- Eric Meyer, 427 N. Washington, Bloomington IN 47401 ---