home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / utils / dskutl / ed405.fix < prev    next >
Text File  |  1994-07-13  |  4KB  |  109 lines

  1.  
  2. ; ED405.FIX        ED405.ASM dated 1984 May 
  3.  
  4. ; This file is an overlay to EDFILE.COM which provides modifications.
  5. ; Since EDFILE is a particularly popular public domain program and
  6. ; since more fixes and modifications are sure to follow, this patch
  7. ; will be referred to by its date...4 for 1984 and 05 for May.
  8.  
  9. ; This patch by Clint Lew, Russell Gaspari and Dan Taylor
  10. ; South Bay Technical Support Group RCP/M (213) 970-9238
  11.  
  12. ; === PART 1...patch to allow use of hex addresses
  13.  
  14.  
  15.      ; EDFILE as originally written jumps to addresses in decimal, 
  16.      ; and only jumps to hex addresses if entry is followed by "H".
  17.  
  18.      ; For example, Address? 23C9 is interpreted as decimal
  19.      ;                       23C9H is interpreted as hex
  20.  
  21.      ; If you wish all addresses to be input in hex (as in DDT) 
  22.      ; then make the following patch modification to EDFILE.COM.
  23.  
  24.      ;    Address   old contents   new contents
  25.      ;      1C62        0A              10
  26.  
  27.      ORG    1C62H
  28.     DB    10H
  29.  
  30. ; === PART 2...patch to provide use of function keys
  31.  
  32.  
  33.     ORG    2AC5H
  34.       ;    LXI    H,2AB4H        ;replace this
  35.     LXI    H,KEY        ;with end of orig program
  36.  
  37. JOUT:    EQU    2AB4H
  38.  
  39.  
  40.     ORG    2C00H        ;orig version ended here
  41.  
  42. KEY:    CPI    80H        ;see if bit 8 set
  43.     CNC    KEYFN        ;if so, call the subroutine
  44.     JMP    JOUT        ;return to EDFILE.COM
  45.  
  46. KEYFN:                ;subroutine to replace fn keys
  47.     MOV    D,A        ;save the char for future use
  48.     LXI    H,KEYTABL    ;prepare to search table
  49. KEYFN1:                ;start the search
  50.     MOV    A,D        ;retrieve for KEYFN3 return
  51.     CMP    M        ;compare the char to the table
  52.     JZ    KEYFN4        ;if match go make exchange
  53. KEYFN2:                ;no match so continue search
  54.     INX    H        ;next byte in the table
  55.     MOV    A,M        ;move it in for inspection
  56.     CPI    0FFH        ;because FF marks end of table
  57.     JNZ    KEYFN3        ;if not end continue search
  58.     MVI    A,0        ;no more char in table so...
  59.     RET            ;return a zero
  60. KEYFN3:                ;keep searching
  61.     CPI    80H        ;bytes below 80 are replacements
  62.     JC    KEYFN2        ;jump past replacement bytes
  63.     JMP    KEYFN1        ;compare the function key bytes
  64. KEYFN4:                ;substitution
  65.     INX    H        ;the substitution is the byte 
  66.     MOV    A,M        ;....after the match
  67.     RET            ;....so return with it
  68. KEYTABL:            ;my function key replacement table
  69.     DB    82H,0BH        ;if  up-arrow    send a ^K
  70.     DB    86H,0CH        ;if  right-arrow send  ^L
  71.     DB    88H,08H        ;if  left-arrow  send  ^H
  72.     DB    8AH,0AH        ;if  down-arrow  send  ^J
  73.     DB    0DBH,42H    ;if  key F1      send  B
  74.     DB    0E9h,5AH    ;if  key F15     send  Z
  75.     DB    0FFH        ;important -- marks end of table
  76. ;
  77.     END            ;this will be the new end address
  78.                 ;... of EDFILE.COM 
  79.  
  80.  
  81. ;*************************************************************
  82. ;    General usage instructions for using ASM overlays 
  83. ;*************************************************************
  84.  
  85. ;               I N S T R U C T I O N S
  86. ;
  87. ;
  88. ; First, edit this file to your preferences using any editor.
  89. ; Wordstar in non-document mode works very well for this.
  90. ;
  91. ; Second, assemble this file using Digital Research's CP/M
  92. ; assembler ASM.COM.  For the file ED405.ASM,  enter ASM ED405.
  93. ;
  94. ; Lastly, use DDT to overlay the results of this EDOVR program 
  95. ; onto EDFILE.COM.  The procedure for this overlay follows:
  96. ;
  97. ;        A>DDT EDFILE.COM
  98. ;        DDT VERS 2.2
  99. ;        NEXT  PC
  100. ;        2C00 0100        (size varies with version)
  101. ;        -IED405.HEX        (note the "I" command)
  102. ;        -R            ("R" loads in the .HEX file)
  103. ;        NEXT  PC
  104. ;        2C80 0000
  105. ;        -G0            (return to CP/M)
  106. ;        A>SAVE 44 EDFILE.COM    (now have a modified .COM file)
  107. ;
  108. ; =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =   =
  109.