Files
Sepp J Morris 31738079c4 Upload
Digital Research
2020-11-06 18:50:37 +01:00

159 lines
5.5 KiB
Plaintext

CP/M V2.2
Application Note 02, 2/20/82
Reversing the BACKSPACE and RUBOUT Key Functions and
Making RUBOUT Identical to BACKSPACE
Copyright 1982 by Digital Research
CP/M is a registered trademark of Digital Research.
DDT and SID are trademarks of Digital Research.
Compiled November 1982
Applicable products and version numbers: CP/M V2.1 and V2.2
Program: BDOS
In the following code segment procedures, addresses given are
hexadecimal offsets from the base of the CP/M system. The CCP is
usually located at 980H but can be located at A00H if a two-sector
boot is used.
You can assemble the patch for your size memory system. The
cpmbase equals the BDOS entry point address at locations 6 and 7
in the base page of memory minus 806H. You must change this entry
point address when you load DDT or SID . Under DDT or SID,
follow the jump at location 5 until an address is found with a
least significant digit of 6. In the following example, the
cpmbase would be E506H-806H or DD00H.
0005 JMP CD00
CD00 JMP D3A4
D3A4 XTHL
D3A5 SHLD E452
D3A8 XTHL
D3A9 JMP E506
Procedure to reverse the BACKSPACE and RUBOUT key functions:
Patch into the SYSGEN or MOVCPM image exactly as you would
patch in a new version of your BIOS, using the DDT i command
followed by the DDT r command. You can use the same offset as
your custom BIOS and install the following code:
cpmbase equ ? ;subtrack 806h from address at location 6
org cpmbase + 0A02h
cpi 7fh ;was cpi 08h
org cpmbase + 0A16h
cpi 08h ;was cpi 7fh
Or, you can install the above procedure directly into MOVCPM
if you have MOVCPM.COM on your system disk. The patch is applied
automatically to any size system that you build using MOVCPM.
Make a back-up copy of MOVCPM.COM before using DDT to make the
following changes:
A>ddt movcpm.com
DDT VERS 2.2
NEXT PC
2700 0100
-l1402
1402 CPI 08
1404 JNZ 0A16
1407 MOV A,B
1408 ORA A
1409 JZ 09EF
140C DCR B
140D LDA 0B0C
1410 STA 0B0A
1413 JMP 0A70
1416 CPI 7F
1418 JNZ 0A26
-s1403
1403 08 7f
1404 C2 .
-s1417
1417 7f 8
1418 C2 .
-g0
A>save 38 movcpm1.com
Use the new program MOVCPM1.COM in place of MOVCPM.COM. The
BACKSPACE and RUBOUT key functions are reversed for any CP/M
system generated with MOVCPM1.COM.
Procedure to make RUBOUT identical to BACKSPACE:
Before you install this patch, the code at cpmbase + 0A1Bh
should read:
mov a,b
ora a
jz cpmbase + 09EFh
mov a,m
dcr b
dcx h
jmp cpmbase + 0AA9h
Patch into the SYSGEN or MOVCPM image exactly as you would
patch in a new version of your BIOS, using the DDT i command
followed by the DDT r command. Use the same offset as your custom
BIOS and install the following code:
cpmbase equ ?
;
;
org cpmbase + 0A1Bh
;
mvi a,8h
jmp cpmbase + 0A07h
end
Or, you can install the above procedure directly into MOVCPM
if you have MOVCPM.COM on your system disk. The patch is
installed automatically in any size system that you build using
MOVCPM. Make a back-up copy of MOVCPM.COM before using DDT to
make the following changes.
A>ddt movcpm.com
DDT VERS 2.2
NEXT PC
2700 0100
-l141b
141B MOV A,B
141C ORA A
141D JZ 09EF
1420 MOV A,M
1421 DCR B
. . .
-a141b
141B mvi a,8
141D jmp a07
1420 .
-g0
A>save 38 movcpm1.com
Use the new program MOVCPM1.COM in place of MOVCPM.COM. The
RUBOUT and BACKSPACE key functions are identical in any CP/M
system generated with MOVCPM1.COM.
Licensed users are granted the right to include these
modifications in CP/M V2.2 software.