home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / VDOEDIT / VDE-PAT.LBR / KPCURKEY.AZM / KPCURKEY.ASM
Assembly Source File  |  2000-06-30  |  3KB  |  98 lines

  1. ;  KPCURKEY:
  2. ;      A patch for VDE version 2.63 on Kaypro 2/4/10.
  3. ;
  4. ;  LIMITATIONS:
  5. ;      This patch works with Kaypro F, G, and H-series ROMs, and
  6. ;      Micro-Cornucopia's PRO-884 ROM (standard and MAX versions).
  7. ;      It will NOT work with Kaypro's U-series ROM, nor with the
  8. ;      Advent Turbo ROM.
  9. ;
  10. ;  FUNCTION:
  11. ;      New VDE initialization and de-initialization sequences.
  12. ;      Initialization changes Kaypro cursor keys to generate
  13. ;      Wordstar diamond pattern (^E^S^D^X) upon entry to VDE.
  14. ;      De-initialization changes them back to standard Kaypro
  15. ;      control sequences (^K^H^L^J) upon exit to CP/M.
  16. ;
  17. ;  RATIONALE:
  18. ;      Redifining cursor keys allows VDE to be installed for
  19. ;      normal Wordstar use of ^K (block commands), without
  20. ;      assigning alternate cursor keys via the VINST program.
  21. ;      Retains correct functions of Kaypro cursor keys.
  22. ;
  23. ;  INSTALLATION:
  24. ;      Assemble this file with ASM or MAC.
  25. ;      Overlay resulting HEX file into VDE263.COM with DDT or MLOAD.
  26. ;      Typical installations shown below.
  27. ;
  28. ;  ------------------------------------------------------------------------
  29. ;  DDT installation procedure:
  30. ;
  31. ;  A0>ddt vde263.com   ; loads the original version
  32. ;
  33. ;  DDT VERS 2.2
  34. ;  NEXT  PC
  35. ;  3500 0100
  36. ;  -ickeyfix.hex      ; tell DDT name of patch file
  37. ;  -r                 ; then read it in
  38. ;  -g0                ; exit to CP/M
  39. ;
  40. ;  A0>save 52 newvde.com   ; save new version of VDE v2.63
  41. ;
  42. ;  ------------------------------------------------------------------------
  43. ;  MLOAD installation procedure:
  44. ;
  45. ;  A0> MLOAD NEWVDE.COM=VDE63.COM,CKEYFIX.HEX  ; that's all!
  46. ;                                              ; doesn't that look easier?
  47. ;
  48. ;  ------------------------------------------------------------------------
  49. ;
  50. ;  ACKNOWLEDGEMENTS:
  51. ;      Machine language patch was taken from the MORPAT
  52. ;      segment of a Kaypro distribution copy of Wordstar.
  53. ;      It was modified to fit the addresses supplied by
  54. ;      VINST263.COM and .DOC files.
  55. ;
  56. ;  ------------------------------------------------------------------------
  57. ;
  58. ;  OKAY ALREADY, LET'S GET ON WITH IT . . .
  59. ;
  60.     ORG    0100H    ; beginning of TPA, start of VDE.
  61. ;
  62.     JMP    INIT    ; replace VDE's "JMP 0480" start instruction
  63.     JMP    DINIT   ; replace VDE's "JMP 0000" exit instruction
  64. ;
  65. ;
  66.     ORG    0248h    ; beginning of VDE user patch area
  67. ;
  68. INIT:                ; Done before VDE normal initialization
  69.     LHLD    1        ; A routine for moving four bytes into
  70.     LXI    D,32H        ; Kaypro's BIOS.  Dis-assembled from the
  71.     DAD    D           ; MORPAT area in a Kaypro copy of Wordstar.
  72.     XCHG
  73.     LXI    H,EXSD        ; point to data for wordstar diamond
  74.     LXI    B,4        ; how many bytes to move
  75.     DB    0EDh, 0B0h    ; kludge for poor folks who only have
  76.                 ; 8080 ASM.  Those two bytes are really
  77.                 ; the Z80 insructions:  LDIR
  78. ;
  79.     JMP    0480H        ; Special init done, do VDE's regular init.
  80. ;
  81. DINIT:                ; Done after VDE normal de-initialization
  82.     LHLD    1        ; Almost same as INIT, reverses effect.
  83.     LXI    D,32H        ; Restores original values to cursor keys.
  84.     DAD    D
  85.     LXI    D,KJHL        ; a self-explanatory label, right?
  86.     XCHG
  87.     LXI    B,4
  88.     DB    0EDh, 0B0h    ; remeber, it's really an LDIR
  89. ;
  90.     JMP    0        ; Special DINIT done, exit VDE from here.
  91. ;
  92. ; data for cursor key assignments:
  93. ;
  94. EXSD:    DB    05h,18h,13h,04h        ; wordstar diamond codes
  95. KJHL:    DB    0Bh,0Ah,08h,0Ch        ; kaypro cursor codes
  96. ;
  97.     END
  98.