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.
- ;
- ;****************************************************************
- ;
- ;
- ;Mac and Rmac are two reliable assemblers developed by Digital
- ;Research which have a good number of useful features. It seems
- ;natural to get the most out of them.
- ;
- ;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.
- ;
- ;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 these
- MAC EQU FALSE ;true
-
- 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
- ENDIF
-
- IF MAC
-
- ORG COPYRITE
- DB '(c)1977 DRI'
- PATCHAREA:
- ENDIF
-
- IF RMAC
- ORG PATCHAREA
- ENDIF
-
- CPI '.'
- 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
-
- ORG CHECKALFA
- CALL PATCHAREA ;replaces cpi 3f
- CMC ;jz 1db1
- SBB A ;cpi 40
- RET ;jz 1db1, etc.
-
-
- END