home *** CD-ROM | disk | FTP | other *** search
- ;*****************************************************************
- ;
- ; 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 <DLT>
- ; 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
- er - b/m
- org checkalfa
- call patcharea ;replaces cpi 3f
- cmc ;jz 1db1
-
- sbb a ;cpi 40