;;; .TITLE"KEY MASK 1.0"¢;********************************¢;*** KEY MASK 1.0 ***¢;***(c) 1982 by, Matt Loveless***¢;*** written especially for ***¢;*** ANTIC magazine ***¢;********************************¢;¢;*** EQUATES ***¢;¢KBCODE EQU $D209 ; Key board code¢VKEYBD EQU $0208 ; Keyboard IRQ ve¢TABLE EQU $CB ; Free zero Page locations¢;¢;=========================================================¢; INIT ROUTINE: Puts my keyboard handler online¢;=========================================================¢ ORG $0600 ; Page 6¢BEGIN SEI ; Disable IRQ's¢ LDA VKEYBD ; Point the keyboard vector to my¢ STA JMPLOC+1 ; routine, and set my routine's JMP¢ LDA VKEYBD+1 ; instruction to point to the OS's¢ STA JMPLOC+2 ; routine¢ LDA #>MYRTN ; Lo byte of my routine¢ STA VKEYBD¢ LDA #<MYRTN ; Hi byte of my routine¢ STA VKEYBD+1¢ PLA ; Remove USR amount byte¢ PLA ; Get hi byte of the mask string¢ STA TABLE+1¢ PLA ; Get lo byte¢ STA TABLE¢ CLI ; Re-Enable IRO's !¢ RTS ; Return to BASIC¢;=========================================================¢;THE NEW KEYBOARD INTERRUPT ROUTINE¢;=========================================================¢MYRTN TYA ; Keyboard IRQ vector points here¢ PHA ; Save Y-register¢ LDY KBCODE ; Get the key code¢ LDA (TABLE),Y ; and use it to index into the string¢ BNE GONORM ; Is it masked out?¢ PLA ; YES - then ignore key and¢ TAY ; restore registers¢ PLA¢ RTI ; Exit the keyboard interrupt¢GONORM PLA ; Restore Y-register¢ TAY¢JMPLOC JMP $0000 ; Go to normal system keyboard routine¢;;; END¢