home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / beehive / zcat / rmacmod.lbr / R&MACMOD.AQM / R&MACMOD.ASM
Assembly Source File  |  1991-01-30  |  4KB  |  137 lines

  1. ;*****************************************************************
  2. ;
  3. ;               Patches for MAC and RMAC
  4. ;               ------------------------
  5. ;
  6. ;                by George Blat
  7. ;          Blat, Research + Development Corp.
  8. ;                8016 188th SW
  9. ;             Edmonds, WA  98020
  10. ;
  11. ;*****************************************************************
  12. ;
  13. ;    The following changes are (c) 1983 Blat R+D Corp. 
  14. ;    Permission is granted to use these patches only in
  15. ;    non-commercial applications.
  16. ;    MAC and RMAC are trademarks of Digital Research, Inc.
  17. ;    which holds ownership and all rights to the original 
  18. ;    programs.
  19. ;
  20. ;*****************************************************************
  21. ;
  22. ; Among the features that can be added to MAC and RMAC are the
  23. ; ability to use the period '.' and the underscore '_' as part of
  24. ; symbol names such as labels, even as first character of the
  25. ; symbol. The underscore, for instance, makes a much better word
  26. ; separator than the dollar '$' sign when used in a multi-word
  27. ; label. In a dense program listing, it's certainly easier to find
  28. ; STAT_PORT than STAT$PORT, and @hl_to_de than @hl$to$de.
  29. ;
  30. ; By the same token, I don't agree with the decision of Digital
  31. ; Research of making the dollar sign a don't care character. It
  32. ; introduces confusion as it allows symbols that don't look the
  33. ; same to be equivalent.
  34. ;
  35. ; In addition, RMAC can be easily patched to create .REL files
  36. ; where the global (external) names have up to 7 active characters.
  37. ; This helps by allowing you to create more meaningful symbol names
  38. ; and therefore improve program legibility. This change is still
  39. ; entirely compatible with the industry standard Microsoft format.
  40. ;
  41. ;    Typed in and tested by Daniel L. Talley, Sr. 26 APR 85
  42. ;
  43. ; Changed first `CPI' at the `PATCHAREA' label from '.' to '$' to
  44. ; support the L80-style $MEMRY symbol as well as  DRI's ?MEMRY.
  45. ; I don't think too many folks will miss the ability to use periods
  46. ; to begin labels and other symbols - Bruce Morgen 6/24/85
  47. ;*****************************************************************
  48. ;
  49. ; The following patches should be assembled with MAC (not RMAC)
  50. ; and the resulting .hex file should be applied over the original
  51. ; programs with DDT, SID or ZSID.  KEEP AN ARCHIVE COPY OF THE
  52. ; ORIGINAL MAC OR RMAC BEFORE PATCHING.
  53.  
  54.  
  55. false    equ    0
  56. true    equ    not false
  57.  
  58. rmac    equ    true    ; select one and only one of
  59. mac    equ    false    ;  these.
  60.  
  61.     if    rmac
  62. global7     equ    true    ; set to false if you don't want
  63.                 ; 7 char globals
  64. patcharea    equ    13bh
  65. dollarcounts    equ    1d7ah    ; set this to false if you like to
  66.                 ; keep the dollar as a don't care char
  67. checkalfa    equ    1d9ch
  68. toup        equ    2844h
  69.     endif
  70.  
  71.     if    mac
  72. copyrite    equ    103h    ; shorten but keep the copyright notice
  73. dollarcounts    equ    1834h
  74. checkalfa    equ    1853h
  75. global7     equ    false    ; We have no globals in MAC <DLT>
  76.                 ; Above line was not in original listing
  77.     endif
  78.  
  79.     if    mac
  80.  
  81.     org    copyrite
  82.     db    '(c)1977 DRI'
  83. patcharea:
  84.     endif
  85.  
  86.     if    rmac
  87.     org    patcharea
  88.     endif
  89.  
  90.     cpi    '$'        ;changed from '.' - b/m
  91.     rz
  92.     cpi    '_'
  93.     rz
  94.     cpi    '?'
  95.     rz
  96.     cpi    '@'
  97.     rz
  98.     if    rmac
  99.     call    toup
  100.     endif
  101.     sui    'A'
  102.     cpi    'Z'-'A'+1
  103.     cmc
  104.     ret
  105.  
  106.     if    rmac and global7
  107.  
  108. compare equ    12d6h
  109. setit7    equ    12dbh
  110.  
  111.     org    compare
  112.     cpi    8        ;replaces cpi    7
  113.     org    setit7
  114.     mvi    a,7        ;replaces mvi    a,6
  115.  
  116.     endif
  117.  
  118.     if    dollarcounts
  119.     org    dollarcounts
  120.     nop            ;replaces mov    m,a
  121.     endif            ;since DDT won't overlay a value of 00h,
  122.                 ;hand patch this as per RMAC.MQD by
  123.                 ;S. Kluger - b/m
  124.     org    checkalfa
  125.     call    patcharea    ;replaces cpi    3f
  126.     cmc            ;jz    1db1
  127.  
  128.     sbb    a        ;cpi    40
  129.     ret            ;jz    1db1,    etc.
  130.  
  131.     end
  132. er - b/m
  133.     org    checkalfa
  134.     call    patcharea    ;replaces cpi    3f
  135.     cmc            ;jz    1db1
  136.  
  137.     sbb    a        ;cpi    40