;***************************************************************** ; ; Patches for MAC and RMAC ; ------------------------ ; ; by George Blat ; Blat, Research + Development Corp. ; 8016 188th SW ; Edmonds, WA 98020 ; ;***************************************************************** ; ; The following changes are (c) 1983 Blat R+D Corp. ; Permission is granted to use these patches only in ; non-commercial applications. ; MAC and RMAC are trademarks of Digital Research, Inc. ; which holds ownership and all rights to the original ; programs. ; ;***************************************************************** ; ; Among the features that can be added to MAC and RMAC are the ; ability to use the period '.' and the underscore '_' as part of ; symbol names such as labels, even as first character of the ; symbol. The underscore, for instance, makes a much better word ; separator than the dollar '$' sign when used in a multi-word ; label. In a dense program listing, it's certainly easier to find ; STAT_PORT than STAT$PORT, and @hl_to_de than @hl$to$de. ; ; By the same token, I don't agree with the decision of Digital ; Research of making the dollar sign a don't care character. It ; introduces confusion as it allows symbols that don't look the ; same to be equivalent. ; ; In addition, RMAC can be easily patched to create .REL files ; where the global (external) names have up to 7 active characters. ; This helps by allowing you to create more meaningful symbol names ; and therefore improve program legibility. This change is still ; entirely compatible with the industry standard Microsoft format. ; ; Typed in and tested by Daniel L. Talley, Sr. 26 APR 85 ; ; Changed first `CPI' at the `PATCHAREA' label from '.' to '$' to ; support the L80-style $MEMRY symbol as well as DRI's ?MEMRY. ; I don't think too many folks will miss the ability to use periods ; to begin labels and other symbols - Bruce Morgen 6/24/85 ;***************************************************************** ; ; The following patches should be assembled with MAC (not RMAC) ; and the resulting .hex file should be applied over the original ; programs with DDT, SID or ZSID. KEEP AN ARCHIVE COPY OF THE ; ORIGINAL MAC OR RMAC BEFORE PATCHING. false equ 0 true equ not false rmac equ true ; select one and only one of mac equ false ; these. if rmac global7 equ true ; set to false if you don't want ; 7 char globals patcharea equ 13bh dollarcounts equ 1d7ah ; set this to false if you like to ; keep the dollar as a don't care char checkalfa equ 1d9ch toup equ 2844h endif if mac copyrite equ 103h ; shorten but keep the copyright notice dollarcounts equ 1834h checkalfa equ 1853h global7 equ false ; We have no globals in MAC ; Above line was not in original listing endif if mac org copyrite db '(c)1977 DRI' patcharea: endif if rmac org patcharea endif cpi '$' ;changed from '.' - b/m rz cpi '_' rz cpi '?' rz cpi '@' rz if rmac call toup endif sui 'A' cpi 'Z'-'A'+1 cmc ret if rmac and global7 compare equ 12d6h setit7 equ 12dbh org compare cpi 8 ;replaces cpi 7 org setit7 mvi a,7 ;replaces mvi a,6 endif if dollarcounts org dollarcounts nop ;replaces mov m,a endif ;since DDT won't overlay a value of 00h, ;hand patch this as per RMAC.MQD by ;S. Kluger - b/m org checkalfa call patcharea ;replaces cpi 3f cmc ;jz 1db1 sbb a ;cpi 40 ret ;jz 1db1, etc. end