CP/M SYSTEM ALTERATION FOR RUBOUT KEY PROCESSING
                       by Clark A. Calkins

[WARNING: For this modification of CP/M use a separate copy of 
your CP/M distribution disk. NEVER USE YOUR CP/M DISTRIBUTION 
DISK ITSELF! Neither your day-to-day CP/M working disk. If 
something were to go wrong you can then always start over again.]

    The normal CP/M system has an annoying habit of not erasing a 
character on the screen when the rubout key is pressed. Instead 
it prints the character that was erased internally. This action 
remains from the days when teletypes were used as output devices 
and erasing a character from the page was not possible. If the 
backspace key is used instead of the rubout key, then the 
previous character is erased from the screen. This is the 
preferred action for the Morrow Micro Decision computer.

   The following small procedure changes the CP/M system so that 
the rubout key and the backspace key both erase the last 
character from the screen. This will not affect any of the 
programs that depend on these keys (like WordStar). They will 
execute exactly as before.

   In the following steps, user input is shown in [brackets] and 
the carriage return which follows every typed line is shown as 
"(cr)".

1)   The first step is to generate a scratch disk to try this on. 
The only programs required for this procedure are DDT and SYSGEN. 
These can be found on your original CP/M System Disk. This disk 
must be a "system disk" so it can be placed in drive A.

2)   Place the newly created disk in drive A and press control-C 
(^C) to log it in.

3)   Generate a short patch program using DDT as follows.

        A>[DDT](cr)
        DDT VERS 2.2
        -[A100](cr)
        0100 [LHLD 6](cr)
        0103 [LXI D,201](cr)
        0106 [DAD D](cr)
        0107 [XCHG](cr)
        0108 [LXI H,171B](cr)
        010B [MVI M,C3](cr)
        010D [INX H](cr)
        010E [MOV M,E](cr)
        010F [INX H](cr)
        0110 [MOV M,D](cr)
        0111 [RET](cr)
        0112 (cr)
        -[G0](cr)
        A>[SAVE 1 PATCH.COM](cr)
        A>

By the way, the last DDT line reads "G" followed by zero and not 
"O".

4)   The next step is to load a copy of CP/M into memory, change 
it using the patch routine created above, and then write it back 
to the disk so it can be used.

        A>[SYSGEN](cr)
        SOURCE DRIVE NAME (OR RETURN TO SKIP) [A]
        SOURCE ON DRIVE A, THEN TYPE RETURN (cr)
        DESTINATION DRIVE NAME (OR RETURN TO REBOOT) (cr)
        A>[PATCH](cr)
        A>[SYSGEN](cr)
        SOURCE DRIVE NAME (OR RETURN TO SKIP) (cr)
        DESTINATION DRIVE NAME (OR RETURN TO REBOOT) [A]
        DESTINATION ON DRIVE A, THEN TYPE RETURN (cr)
        FUNCTION COMPLETE
        DESTINATION DRIVE NAME (OR RETURN TO REBOOT) (cr)
        A>

5)   Now test it. Type a bunch of characters and see if the 
rubout key erases the last character as it now should.

     If all went well, the system now written on your scratch 
disk should function as desired. Both the backspace and rubout 
keys have the same effect on the screen. If this did not happen, 
check that the procedure was followed exactly. Especially check 
that the same program version numbers were displayed.

     The patch program assumes it knows where SYSGEN puts the 
CP/M system in memory. The responses to SYSGEN may seem confusing 
at first. It is being used to read the system off of the disk and 
put it in memory (and leave it there). Then the patch program 
makes a few changes and leaves the modified system still in 
memory. Then SYSGEN is used again to write the system that is in 
memory already (a carriage return was given as a response to the 
first message) back to the disk. Then when you reboot (no more 
destination drives to write to), this system is read off of the 
disk and executed (as normally occurs). This time the system has 
been modified so it responds differently.

     If the new system totally crashes (or does some real strange 
things), check that the patch address (171B) was entered 
properly. Beyond that, have a friend check things for you.

     Before writing this new system to all of your working disks, 
check to be sure that WordStar, QUEST, PEARL, etc., work 
properly.  Again, a warning:  Above all, do not change your 
master CP/M disks.

     If you have any questions, don't hesitate to get in touch 
with me:

                 Clark A. Calkins
                  C.C. Software
              2564 Walnut Blvd. #106
              Walnut Creek, CA 94598