home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
utils
/
dskutl
/
ed405.fix
< prev
next >
Wrap
Text File
|
1994-07-13
|
4KB
|
109 lines
; ED405.FIX ED405.ASM dated 1984 May
; This file is an overlay to EDFILE.COM which provides modifications.
; Since EDFILE is a particularly popular public domain program and
; since more fixes and modifications are sure to follow, this patch
; will be referred to by its date...4 for 1984 and 05 for May.
; This patch by Clint Lew, Russell Gaspari and Dan Taylor
; South Bay Technical Support Group RCP/M (213) 970-9238
; === PART 1...patch to allow use of hex addresses
; EDFILE as originally written jumps to addresses in decimal,
; and only jumps to hex addresses if entry is followed by "H".
; For example, Address? 23C9 is interpreted as decimal
; 23C9H is interpreted as hex
; If you wish all addresses to be input in hex (as in DDT)
; then make the following patch modification to EDFILE.COM.
; Address old contents new contents
; 1C62 0A 10
ORG 1C62H
DB 10H
; === PART 2...patch to provide use of function keys
ORG 2AC5H
; LXI H,2AB4H ;replace this
LXI H,KEY ;with end of orig program
JOUT: EQU 2AB4H
ORG 2C00H ;orig version ended here
KEY: CPI 80H ;see if bit 8 set
CNC KEYFN ;if so, call the subroutine
JMP JOUT ;return to EDFILE.COM
KEYFN: ;subroutine to replace fn keys
MOV D,A ;save the char for future use
LXI H,KEYTABL ;prepare to search table
KEYFN1: ;start the search
MOV A,D ;retrieve for KEYFN3 return
CMP M ;compare the char to the table
JZ KEYFN4 ;if match go make exchange
KEYFN2: ;no match so continue search
INX H ;next byte in the table
MOV A,M ;move it in for inspection
CPI 0FFH ;because FF marks end of table
JNZ KEYFN3 ;if not end continue search
MVI A,0 ;no more char in table so...
RET ;return a zero
KEYFN3: ;keep searching
CPI 80H ;bytes below 80 are replacements
JC KEYFN2 ;jump past replacement bytes
JMP KEYFN1 ;compare the function key bytes
KEYFN4: ;substitution
INX H ;the substitution is the byte
MOV A,M ;....after the match
RET ;....so return with it
KEYTABL: ;my function key replacement table
DB 82H,0BH ;if up-arrow send a ^K
DB 86H,0CH ;if right-arrow send ^L
DB 88H,08H ;if left-arrow send ^H
DB 8AH,0AH ;if down-arrow send ^J
DB 0DBH,42H ;if key F1 send B
DB 0E9h,5AH ;if key F15 send Z
DB 0FFH ;important -- marks end of table
;
END ;this will be the new end address
;... of EDFILE.COM
;*************************************************************
; General usage instructions for using ASM overlays
;*************************************************************
; I N S T R U C T I O N S
;
;
; First, edit this file to your preferences using any editor.
; Wordstar in non-document mode works very well for this.
;
; Second, assemble this file using Digital Research's CP/M
; assembler ASM.COM. For the file ED405.ASM, enter ASM ED405.
;
; Lastly, use DDT to overlay the results of this EDOVR program
; onto EDFILE.COM. The procedure for this overlay follows:
;
; A>DDT EDFILE.COM
; DDT VERS 2.2
; NEXT PC
; 2C00 0100 (size varies with version)
; -IED405.HEX (note the "I" command)
; -R ("R" loads in the .HEX file)
; NEXT PC
; 2C80 0000
; -G0 (return to CP/M)
; A>SAVE 44 EDFILE.COM (now have a modified .COM file)
;
; = = = = = = = = = = = = = = = = = =