mirror of
https://github.com/SEPPDROID/Digital-Research-Source-Code.git
synced 2025-10-23 00:14:25 +00:00
69 lines
2.5 KiB
Plaintext
69 lines
2.5 KiB
Plaintext
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--
|