⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kdfbr2.asm

📁 [随书类]Dos6.0源代码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;/*                      Microsoft Confidential
; *                      Copyright (C) Microsoft Corporation 1991
; *                      All Rights Reserved.
; */

;; XT section enabled
;; ************* CNS 12/18/86


	PAGE    ,132
	TITLE   MS-DOS 5.0 Keyboard Definition File

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; MS-DOS 5.0 - NLS Support - Keyboard Defintion File
;;
;; This file contains the keyboard tables for Brazil
;;
;; Linkage Instructions:
;;      Refer to KDF.ASM.
;;
;; Author:     BILL DEVLIN  - IBM Canada Laboratory - May 1986
;;             Adapted for Brazil by Mihindu Senanayake (Microsoft) - Oct 1990
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
	INCLUDE KEYBSHAR.INC           ;;
	INCLUDE POSTEQU.INC            ;;
	INCLUDE KEYBMAC.INC            ;;
				       ;;
	PUBLIC BR2_LOGIC               ;;
	PUBLIC BR2_437_XLAT            ;;
	PUBLIC BR2_850_XLAT            ;;
;;
CODE    SEGMENT PUBLIC 'CODE'          ;;
	ASSUME CS:CODE,DS:CODE         ;;
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Standard translate table options are a linear search table
;; (TYPE_2_TAB) and ASCII entries ONLY (ASCII_ONLY)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
STANDARD_TABLE      EQU   TYPE_2_TAB+ASCII_ONLY
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BR State Logic
;;***************************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
BR2_LOGIC:

   DW  LOGIC_END-$                     ;; length
				       ;;
   DW  0                               ;; special features
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; COMMANDS START HERE
;; OPTIONS:  If we find a scan match in
;; an XLATT or SET_FLAG operation then
;; exit from INT 9.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
   OPTION EXIT_IF_FOUND                ;;
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;  Dead key definitions must come before
;;  dead key translations to handle
;;  dead key + dead key.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
   IFF  EITHER_ALT,NOT                 ;;
   ANDF EITHER_CTL,NOT                 ;;
      IFF EITHER_SHIFT                 ;;
	  IFF CIRCUMFLEX                   ;;
	      RESET_NLS                    ;;
	      XLATT CIRCUMFLEX_CIRCUMFLEX  ;;
	      SET_FLAG DEAD_UPPER          ;;
	      GOTO CIRCUMFLEX_ON           ;;
	  ENDIFF                           ;;
	  IFF TILDE                        ;;
	      RESET_NLS                ;;
	      XLATT TILDE_TILDE  ;;
	      SET_FLAG DEAD_UPPER          ;;
	      GOTO TILDE_ON         ;;
	  ENDIFF                       ;;
	  IFF DIARESIS                 ;;
	      RESET_NLS                ;;
	      XLATT DIARESIS_DIARESIS  ;;
	      SET_FLAG DEAD_UPPER          ;;
	      GOTO DIARESIS_ON         ;;
	  ENDIFF                       ;;
	  SET_FLAG DEAD_UPPER          ;;
      ELSEF
	  IFF GRAVE                        ;;
	      RESET_NLS                    ;;
	      XLATT GRAVE_GRAVE            ;;
	      SET_FLAG DEAD_LOWER
	      GOTO GRAVE_ON                ;;
	  ENDIFF                           ;;
	  IFF ACUTE                 ;;
	     RESET_NLS              ;;
	     XLATT ACUTE_ACUTE      ;;
	     SET_FLAG DEAD_LOWER
	     GOTO ACUTE_ON          ;;
	  ENDIFF                    ;;
	  SET_FLAG DEAD_LOWER
      ENDIFF                           ;;
   ENDIFF                              ;;
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; ACUTE ACCENT TRANSLATIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
ACUTE_PROC:
				       ;;
   IFF ACUTE,NOT                       ;;
      GOTO DIARESIS_PROC               ;;
      ENDIFF                           ;;
				       ;;
      RESET_NLS                        ;;
ACUTE_ON:                              ;;
      IFF R_ALT_SHIFT,NOT              ;;
	 XLATT ACUTE_SPACE             ;;
      ENDIFF                           ;;
      IFF EITHER_CTL,NOT               ;;
      ANDF EITHER_ALT,NOT              ;;
	 IFF EITHER_SHIFT              ;;
	    IFF CAPS_STATE             ;;
	       XLATT ACUTE_LOWER       ;;
	    ELSEF                      ;;
	       XLATT ACUTE_UPPER       ;;
	    ENDIFF                     ;;
	 ELSEF                         ;;
	    IFF CAPS_STATE             ;;
	       XLATT ACUTE_UPPER       ;;
	    ELSEF                      ;;
	       XLATT ACUTE_LOWER       ;;
	    ENDIFF                     ;;
	 ENDIFF                        ;;
      ENDIFF                           ;;
				       ;;
INVALID_ACUTE:                         ;;
      PUT_ERROR_CHAR ACUTE_LOWER       ;; If we get here then either the XLATT
      BEEP                             ;; failed or we are ina bad shift state.
      GOTO NON_DEAD                    ;; Either is invalid so BEEP and fall
				       ;; through to generate the second char.
				       ;; Note that the dead key flag will be
				       ;; reset before we get here.
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; DIARESIS ACCENT TRANSLATIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
DIARESIS_PROC:                         ;;
				       ;;
   IFF DIARESIS,NOT                    ;;
      GOTO GRAVE_PROC                  ;;
      ENDIFF                           ;;
				       ;;
      RESET_NLS                        ;;
DIARESIS_ON:                           ;;
      IFF R_ALT_SHIFT,NOT              ;;
	 XLATT DIARESIS_SPACE          ;;
      ENDIFF                           ;;
      IFF EITHER_CTL,NOT               ;;
      ANDF EITHER_ALT,NOT              ;;
	 IFF EITHER_SHIFT              ;;
	    IFF CAPS_STATE             ;;
	       XLATT DIARESIS_LOWER    ;;
	    ELSEF                      ;;
	       XLATT DIARESIS_UPPER    ;;
	    ENDIFF                     ;;
	 ELSEF                         ;;
	    IFF CAPS_STATE             ;;
	       XLATT DIARESIS_UPPER    ;;
	    ELSEF                      ;;
	       XLATT DIARESIS_LOWER    ;;
	    ENDIFF                     ;;
	 ENDIFF                        ;;
      ENDIFF                           ;;
				       ;;
INVALID_DIARESIS:                      ;;
      PUT_ERROR_CHAR DIARESIS_LOWER    ;; standalone accent
      BEEP                             ;; Invalid dead key combo.
      GOTO NON_DEAD                    ;;
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; GRAVE ACCENT TRANSLATIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
				       ;;
GRAVE_PROC:                            ;;
				       ;;
   IFF GRAVE,NOT                       ;;
      GOTO TILDE_PROC                  ;;
      ENDIFF                           ;;
				       ;;
      RESET_NLS                        ;;
GRAVE_ON:                              ;;
      IFF R_ALT_SHIFT,NOT              ;;
	 XLATT GRAVE_SPACE             ;;
      ENDIFF                           ;;
      IFF EITHER_CTL,NOT               ;;
      ANDF EITHER_ALT,NOT              ;;
	IFF EITHER_SHIFT               ;;
	   IFF CAPS_STATE              ;;
	      XLATT GRAVE_LOWER        ;;
	   ELSEF                       ;;
	      XLATT GRAVE_UPPER        ;;
	   ENDIFF                      ;;
	ELSEF                          ;;
	   IFF CAPS_STATE,NOT          ;;
	      XLATT GRAVE_LOWER        ;;
	   ELSEF                       ;;
	      XLATT GRAVE_UPPER        ;;
	   ENDIFF                      ;;
	ENDIFF                         ;;
      ENDIFF                           ;;
				       ;;
INVALID_GRAVE:                         ;;
      PUT_ERROR_CHAR GRAVE_LOWER       ;; standalone accent
      BEEP                             ;; Invalid dead key combo.
      GOTO NON_DEAD                    ;;
				       ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; TILDE ACCENT TRANSLATIONS
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TILDE_PROC:                            ;;
				       ;;
   IFF TILDE,NOT                       ;;
      GOTO CIRCUMFLEX_PROC             ;;
      ENDIFF                           ;;
				       ;;
      RESET_NLS                        ;;
TILDE_ON:                              ;;
      IFF R_ALT_SHIFT,NOT              ;;
	 XLATT TILDE_SPACE             ;;
      ENDIFF                           ;;
      IFF EITHER_CTL,NOT               ;;
      ANDF EITHER_ALT,NOT              ;;
	IFF EITHER_SHIFT               ;;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -