PrintDrvrPatcherX (7PRG formatted GEOS file V1.0!@P51)1Ta}U͊U}=T 9PrintPatcherV2.0George H. Wells, Jr.Patch Printer Drivers easily according to instructions provided by a programmer. K/ ? 9 P P XGEOS Printer Driver Patcherz{ @Q`e8 ޅ  e  8 ޅ  V¥L,¥L2Q8ޅ  ЮJsIrr" NQJIee ¢ N88 @Y`  8 ~ V¥L,©8ޅ8  k)Y8  ОJsIrLx QYA8, V¥L,­8 ک8 Š̩zywvqpeppeqqutetteuupt Nȥsr-8ș8ȩ 8 Sȥ S88 Ӆ ߅ V¥LLx nyb@Vutetteuux yLxteesrsrAwvLsr yQqpYutywveeeppeqqetteuusryQqpYutpt wvСLr? N8Ysree ¢9 NYutQqpytpiietteuueppeqqeesrE N90 9LV  V¥LwL,¥L v Lwe Š0 VLwe Š Lw yI@{ Lw y@ y VLw V¥L,Lw>9 P9G 998eȹ9-9 99 yЦ y y` y y`9 V¥ ,?  yAsrLxr? N8 $zLL^${P?օ V¥L LV H Iy@ y yI@{hLV $zL,©6 V¥LV L sJrI Yy@ LV 8 Š9888…ƅ V¥LV 88zL7 8 z V¥L LV Iy${0` I LV e Š0 VLV e ŠH Ih LV yI@ ~ LV ${0 y${p@ y VLV Y V¢ y{ yI@LV  98 9 99 y0 o` 98 9 99 y0 o` 98 9 99 y0 o` 98 9 99 y0 o`/ 9 9 9 99 y0 o`E 99 9 99 y0 o`[ 99 9 99 y0 o` oyQqpYutKHptith NȢ SȢ Sș8ș8ȘH 887hKH y0. 9 yL Incomplete list of patches. eeeppeqqetteuusrL+ yh o`y8ޅ  LwJsIrr? N88`I 88… V¥Lw *L` 8`I 88 ŠmIImJJyyyDE8 LwyL`` V¢` Š Š V¥L,`a :80`GA7``8 6666`) 0:i'` SʵJJJJ B8ȵ B8ȩ 8` 999@ y,`, (-No GEOS Printer Driver Patcher Please select the old (original) printer driver: (First-time users should click YES for info.)Iand clickYOR:dfor info & optionszOR:to deskTop, ( <fPlease select the new (previously patched) printer driver. Use the old one if you are just starting to patch:(Xand clickFnOR:_to deskTop  K n8 n8 nKOld Driver Name: *Old CRC code: *New Driver Name: <Enter an UN-used filename for the <New Driver and hit RETURN or:sto quit to deskTop9Wi     e L0 p03afn afl a a al a aa umLƀ`3Ϗ6nف6lف6l߁6lflف  Z39 #9MBefore CBM PRoGram file can be Jwritten to disk, please enter an JUN-used filename and hit RETURN. JEnd Address:cwrite attemptrto print pro-{gramming info, ZZrrThis application provides an easy way for any GEOS user to make minor changes in an existing Printer Driver according to instructions provided by a programmer. It is intended for customizing such things as page length, NLQ or other printer codes, or removing extra line-feeds. Before proceeding, you should print the user informa- tion (one page) and retain for future reference.Tpto print userTyinformationpfor program-ymers onlyTto returnTto patchingto deskTop   n 8 n8 n8 n)8 n3 9 n7 sG9PPddOld Driver Name: *Old CRC Code: *Old End Address: *New Driver Name: *New CRC Code: *New End Address: *Number of Patches:dsto printd|patchesswrite|file todfor moredpatchesexit todeskTop  Z=9 (KBefore file can be written to Jdisk, please enter an UN-used Jfilename and hit RETURN. JEnd Address:uwrite attemptCW2 t  Hit mouse button to halt printing....Form Feed Printer?  The Active Printer Driver is ^not on the disk.  KThere has been a disk error. PMake sure original disk is in Pthe same drive and that it Pis not write-protected. HNo disk transfer has been made.uto return to patchingCW2   Hit mouse button to halt printing....Return to patching? &7KThe file has been successfully Pwritten to disk.ato deskToputo return to patching  eKThe active printer driver: Jappears to be an early version Jthat will not print ASCII text. JSelect another from the deskTop.uto return to patching ? eKCannot find printer driver: JMake sure a copy of it is on Jthis disk or select a different Jdriver from the deskTop.uto return to patching ##AAForm Feed Printer?Hthen return to patchingfthen exit to deskTop H (87KFile: Jhas not yet been written to Jdisk. Are you sure you want Jto discard this patched file?~bto discard patched file~vto return to patching KThere has been a printer error. JMake sure printer is plugged in Jand on-line and is not out Jof paper.uto return to patching User Information for GEOS Printer Driver Patcher Use this program when you have a programmer's list of instructions to patch a printer driver to solve a problem with your printer. You might get such a list from a BBS, a magazine or user group newsletter, or even privately. Example: ------------------------------------------------------------------------------ These patches delete all the special printer codes for TEXT so you can manually select an NLQ font built into your printer without the New Driver over-riding it. It also works with daisy wheel printers and all non-Commodore printers that use ASCII and support form-feed. It modifies only NLQ and DRAFT, not other geo- Write fonts or geoPaint graphics. The Old Driver came with GEOS 1.3 products. Old Driver Name: Epson FX-80 Old CRC Code: 82a1 Old End Address: 7b51 New Driver Name: Epson FX-80noNLQ New CRC Code: d298 New End Address: 7b51 Number of Patches: 2 7915 4c 60 7ac1 0d fa ------------------------------------------------------------------------------- Due to risk in patching, always use a separate work disk with copies of this program, the Old Driver to be patched, and your active printer driver if you decide to print your patches to verify against the list. In the first two Dialog Boxes, select the same Old Driver Name (the one to be patched). The third Dialog Box gives you the CRC Code for the Old Driver. A CRC Code is like a checksum which is calculated when the driver is loaded from disk. If the Old CRC Code in the Dialog Box does NOT exactly match the Old CRC Code in the list, go back to the deskTop to search for the correct driver on another disk. Matching CRC Codes is your only guarantee that you have the correct driver since there can be more than one version with the same name. If you find another candidate, copy it to your work disk and rerun the program. When the CRC Codes DO match, type a UNIQUE New Driver Name and hit . The next Dialog Box shows a four-digit hexidecimal address, followed by its two-digit hex data, and Verify and Done icons. In the example, the first address that needs to be patched is (7915). Go to it by DELeting back over the data and current address. Type in (7915) and . You should see (7915) and its current data (4c). At the cursor enter the patching (new) data (60) and . This is VERY important: makes the program replace the old data (4c) with the new data (60) and display the next address (7916) with its data (f6). Now make the next patch from the example, DELeting (7916 f6) and typing (7ac1) , then after (0d), type (fa) . Continue if more are listed. Disregard dashes: the program replaces them with (60) if required. When you have made the patches, click on the Verify icon. The Dialog Box displays the first patch; clicking again shows the second, etc. A patch at an incorrect address may be removed by entering . If all patches match those in the instructions, click on the Done icon. The next Dialog Box shows seven lines of information. The New CRC Code and New End Address on the screen MUST MATCH those in the list. If NOT, DELete and type the correct New End Address and . The program will recalculate the New CRC Code. If either or both still do not match, print the patches to proof-read against the list and/or click OK to re-enter patching mode to correct them. When everything matches, write the file to Disk and exit to the deskTop. Click geos in the command bar to select your new printer driver. Until you are sure it does what you want, work only with copies of documents. Information on GEOS Printer Driver Patcher Notes for Programmers You can convert any GEOS printer driver to a standard CBM machine language program to be disassembled and printed out with a monitor. Select the desired printer driver in the first Dialog Box and click the YES icon for options. In the second Dialog Box, click the Disk icon: "for programmers only". The third Dialog Box requests a new name (do not use lower-case characters) for the CBM version of the driver. It also tells you the end address of the driver for you to know how far to disassemble. (All printer drivers start at $7900.) NOTE: since the CBM version is not a valid GEOS printer driver, it will not appear in the file selection menus. Do not try to use the CBM version within GEOS, except to delete it. Make notes of your desired patches and use this program to create a new patched driver. If you need more room than the original (Old) driver, the extra space will be pre-loaded with RTS's ($60), whether you change the New End Address directly or just patch beyond the Old End Address. Assuming that it takes several versions to get a patched driver to do what you want, print out the list(s) of instructions by selecting the Old Driver Name in the first Dialog Box, the New Driver Name in the second Dialog Box, and clicking YES: "to print patches" in the third Dialog Box. To help keep track of the versions, you can use the deskTop to put a brief note in the file's info box. This is especially important for any patched drivers you plan to share with others. Most of the Dialog Boxes are self-instructing; the small fourth Patching Dialog Box needs more explanation: Each time the box is presented, it displays an address in the range ($7900-7f40), followed optionally by the old and new data. If this Current Address is at or beyond the New End Address, two hyphens, equivalent to RTS's ($60), are displayed instead of the Old Data. Following that is the New Data if it is different from the Old Data. At this point you can do one of three things: 1. Clicking Done leaves the patching mode; 2. Clicking Verify makes the program search the old and new drivers for the next patch; 3. And causes the currently displayed line of characters, which you may have modified, to be interpreted according to the following rules: Only hexidecimal characters are significant. These are the numerals (0-9) and the letters (a-f and A-F). Any other characters are ignored. The first four hex digits are interpreted as an address and become the Current Address if in the range ($7900-$7f3f). The last two hex digits (beyond the four address digits) will be patched into the new file at that address. For example: (79Ea5f) will put ($5f) at address ($79ea). (So will T7Q9eAB5-F.) Then the Current Address is incremented to the next address for the next Dialog Box. If only an address is input, it will become the current address for the next Dialog Box. The New End Address automatically is adjusted any time a patch is made at or beyond its current location. (Note: the end address is one digit greater than the last used address of a file.) Both the old and new drivers are padded with data of RTS's ($60) from their initial end addresses to ($7f3f), the last possible file address. This program was written by George H. Wells, Jr. and is released to the public domain. If you find this program useful, please share it and your patches with others. Special thanks go to Terry Mills and Marte Brengle for their help in testing this program. 7900 60 4CC0DE 701d C0DE 7fff 1234