home *** CD-ROM | disk | FTP | other *** search
- ;---------------------------------------------------------------------------
- ;
- ; WSCURKEY.Z80
- ;
- ; Date: May 28, 1990
- ; Author: Joseph I. Mortensen
- ;
- ; patch to WordStar 4.0 to change cursor keys from conventional Kaypro CBIOS
- ; values to those used by WordStar. Restores original values on exit.
- ; Adapted for '83 Kaypros from WSKEYPAD.AZM, (C) 1989 by Dale H. Cook
- ;
- ; There are several possible locations for the main body of this patch
- ; within WS.COM 4.0; For this short patch (and since the space is not needed
- ; for anything else) I used the CRTPAT area.
- ;
- ; Set the equate for curkey to suit your system. Examples:
- ; 64K system -- curkey = 0fa35h
- ; 63K system -- curkey = 0f635h
- ; 62.75K system -- curkey = 0f535h
- ; 62.5K system -- curkey = 0f435h
- ; 62.25K system -- curkey = 0f335h
- ;
- ; Assemble this file (HEX option).
- ; Use MLOAD to patch WS.COM: mload ws.com,wscurkey.hex
- ;
- ;---------------------------equates-------------------------------------
- ctrld equ 04h ;ws right arrow
- ctrle equ 05h ;ws up arrow
- ctrlh equ 08h ;kp left arrow
- ctrlj equ 0ah ;kp down arrow
- ctrlk equ 0bh ;kp up arrow
- ctrll equ 0ch ;kp right arrow
- ctrls equ 13h ;ws left arrow
- ctrlx equ 18h ;ws down arrow
-
- inisub equ 03bbh ;init subroutine loc in WS.COM
- unisub equ 03beh ;uninit subroutine loc in WS.COM
- crtpat equ 04dbh ;location of this patch
-
- curkey equ 0f335h ;bios address for cursor keys (62.25K system)
-
- org inisub
- jp myini
-
- org unisub
- jp myuni
-
- org crtpat
-
- myini:
- ld hl,wskeys
- ld de,curkey
- ld b,4
- call swap
- db 0,0,0c9h
-
- myuni: ld hl,kpkeys
- ld de,curkey
- ld b,4
- call swap
- db 0,0,0c9h
-
- swap:
- ld c,(hl)
- ld a,(de)
- ld (hl),a
- ld a,c
- ld (de),a
- inc hl
- inc de
- dec b
- jp nz,swap
-
- ret
-
- wskeys:
- db ctrle
- db ctrlx
- db ctrls
- db ctrld
-
- kpkeys:
- db ctrlk
- db ctrlj
- db ctrlh
- db ctrll
-
- end