Date : Wed, 02 Nov 1983 02:35:00 EDT
From : Keith Petersen <W8SDZ@mit-mc>
Subject: Fixing MAC for lower case
The following is forwarded from my RCPM:
---
TOPIC : HOW TO MODIFY MAC.COM TO NOT CHANGE LOWER-CASE TO UPPER-CASE
FROM : IRVIN M. HOFF
DATE : 22 OCT 82
MAC.COM (by Digital Research) is one of the most popular assemblers
used with CP/M. It has one feature that most people do not like -- when
making a print file (FILENAME.PRN) it automatically converts any lower-
case characters to upper-case.
Neither ASM.COM nor RMAC.COM by the same firm does that.
There are two ways to modify MAC.COM to approach this problem.
Changing address 165C from C8 to D0 will convert any lower-case source
code to upper, leaving DB strings and comments alone. (1st example
below). Changing 1663 from E6 to 5F will leave all the lower case
comments alone, will convert all DB strings to upper case, but will
toss out any lower case code that does not agree with labels that
are also lower case. (second example.)
1st example: leaves all comments and DB strings alone
==================================================
1655 47 MOV B,A
1656 3A 05 30 LDA 3005
1659 FE 03 CPI 03
165B 78 MOV A,B
165C C8 RZ
Change the RZ (C8) to a RNC (D0)
Using DDT or SID:
165C C8 D0
A>SAVE 46 MAC.COM
This will convert any source code not in a string from lower to
upper, and not bother any comment areas or DB strings. It's as close
as you can get easily, to leaving all lower case alone.
2nd example: leaves all comments alone, but throws out lower case
source code including strings that do not match.
==================================================
1663 E6 5F (ANI 5FH)
Using DDT or SID, change to:
1663 E6 7F (ANI 7FH)
A>SAVE 46 MAC.COM (new, normal version)
This prevents the lower-case from being changed to upper-case.
For a complete disassembly of that area:
1655 47 MOV B,A ;Put the char. into 'B' temporarily
1656 3A 05 30 LDA ABORT ;See any request to quit
1659 FE 03 CPI 03
165B 78 MOV A,B ;Get the char. back again
165C C8 RZ ;Exit with the char. if a 03
165D FE 61 CPI 61H ;Less than lower-case alpha char.?
165F D8 RC ;If less, ignore
1660 FE 7B CPI 7AH+1 ;More than lower-case alpha char.?
1662 D0 RNC ;If more, ignore
1663 E6 5F ANI 5FH ;Otherwise change to upper-case
1665 C9 RET ;Finished
--end--