;rptpat1-add automatic key repeat to the ;C64 BIOS and change the border, screen, ;and character colors for SOFT80 V.1 ; ; 29 September 1984 ; ; Author: Ross A. Alford ; ...{decvax, akgua, ihnp4}!mcnc!ecsvax!alford ; Compuserve 75475,1404 ; ; Department of Zoology ; Duke University ; Durham, NC 27706 ; ; ; This program is hereby licensed for ; unlimited noncommercial distribution, ; provided this notice remains atached. ; Any comercial use requires the written ; consent of the author. ; ; This program operates correctly with ; my version of C64 CP/M. Other ; versions may exist. If it appears ; not to work with your system, check ; the equates against your BIOS. ; It occupies the space reserved for ; BIOS65 function 7, and so conflicts ; with that function ; ; I assume no liability for the operation ; of this program, nor for any direct ; or consequential damages caused ; by it. ; ; ;define true and false ; true equ 0ffh false equ 00h ; ; ;assemble for 44k or 48k? ; forty8 equ true forty4 equ false ; ; ;conditional equates ; ; if forty8 lastky equ 0ba63h j9 equ 0bbd5h const1 equ 0bbd7h const2 equ 0bbdch endif ; ; if forty4 lastky equ 0aa63h j9 equ 0abd5h const1 equ 0abd7h const2 equ 0abdch endif ; ; ;global equates ; ; bdos equ 0005h esc equ 01bh offset equ 0fc00h border equ 0c020h cr equ 0dh lf equ 0ah bgcolor equ 06h ;background color ccolor equ 14h ;char color ; ; ;routine that sets colors and ; relocates the patch ; routines into the ; extra 512 bytes at 0fe00h ; and patches conout in the ; bios to jump to patch ; org 0100h ;print sign on message, change screen colors lxi d,msg mvi c,09h ;print string call bdos ;change border color mvi a,0bh sta border ; ; ;install BIOS patches ; lxi b,pbegin lxi h,pend-pbegin lxi d,0fe00h call movup lxi b,bpatch lxi d,j9-1 lxi h,0003h call movup ret ; ; movup: ldax b stax d inx b inx d dcx h xra a cmp h jnz movup cmp l jnz movup ret ; ; msg db esc,'K',bgcolor ;set background color db esc,'H',ccolor ;set character color db cr,lf,'RPTPAT v1.0',cr,lf db 'Enables auto-repeat keyboard,',cr,lf db 'sets character and background colors',cr,lf db cr,lf,'Copyright 1984 by Ross A. Alford',cr,lf db 'All commercial rights reserved',cr,lf,'$' ; ; ;patch to jump for keyboard ; auto repeat. inserted into ; BIOS80 at j9-1, which should ; be CMP M ; ; bpatch: jmp rptpat+offset ; ; ;rptpat routine: a jump to this ; is inserted at j9-1 in the ; BIOS. This repeats any ; keypress after a delay ; ; org 0200h pbegin: ;start of patches ; ; rptpat: mov b,a cpi 040h jnz rpp1+offset sta lastky jmp const1 rpp1: cmp m jz rpp2+offset mvi a,080h sta delay+offset mov a,b jmp const2 rpp2: lxi h,delay+offset dcr m jnz const1 mvi a,018h mov m,a mov a,b jmp const2 ; ; ;storage locations ; ; delay: db 080h ; ; pend: end