
; ----------------------------------------------------------

        PUBLIC  $M_CLS_1
        IF1
        %out    ... Including message Class A
        ENDIF

; ----------------------------------------------------------

$M_CLASS_A_STRUC LABEL BYTE
        $M_CLASS_ID <0FFH,EXPECTED_VERSION,Class_A_MessageCount>

; ----------------------------------------------------------


$M_A_00001H_STRUC LABEL BYTE
        $M_ID   <00001H,$M_A_00001H_MSG-$M_A_00001H_STRUC>

$M_A_00002H_STRUC LABEL BYTE
        $M_ID   <00002H,$M_A_00002H_MSG-$M_A_00002H_STRUC>

$M_A_00003H_STRUC LABEL BYTE
        $M_ID   <00003H,$M_A_00003H_MSG-$M_A_00003H_STRUC>

$M_A_00004H_STRUC LABEL BYTE
        $M_ID   <00004H,$M_A_00004H_MSG-$M_A_00004H_STRUC>

$M_A_00005H_STRUC LABEL BYTE
        $M_ID   <00005H,$M_A_00005H_MSG-$M_A_00005H_STRUC>

$M_A_00006H_STRUC LABEL BYTE
        $M_ID   <00006H,$M_A_00006H_MSG-$M_A_00006H_STRUC>

$M_A_00007H_STRUC LABEL BYTE
        $M_ID   <00007H,$M_A_00007H_MSG-$M_A_00007H_STRUC>

$M_A_00008H_STRUC LABEL BYTE
        $M_ID   <00008H,$M_A_00008H_MSG-$M_A_00008H_STRUC>

$M_A_00009H_STRUC LABEL BYTE
        $M_ID   <00009H,$M_A_00009H_MSG-$M_A_00009H_STRUC>

$M_A_0000AH_STRUC LABEL BYTE
        $M_ID   <0000AH,$M_A_0000AH_MSG-$M_A_0000AH_STRUC>

$M_A_0000BH_STRUC LABEL BYTE
        $M_ID   <0000BH,$M_A_0000BH_MSG-$M_A_0000BH_STRUC>

$M_A_0000CH_STRUC LABEL BYTE
        $M_ID   <0000CH,$M_A_0000CH_MSG-$M_A_0000CH_STRUC>

$M_A_0000DH_STRUC LABEL BYTE
        $M_ID   <0000DH,$M_A_0000DH_MSG-$M_A_0000DH_STRUC>

$M_A_0000EH_STRUC LABEL BYTE
        $M_ID   <0000EH,$M_A_0000EH_MSG-$M_A_0000EH_STRUC>

$M_A_0000FH_STRUC LABEL BYTE
        $M_ID   <0000FH,$M_A_0000FH_MSG-$M_A_0000FH_STRUC>

$M_A_00010H_STRUC LABEL BYTE
        $M_ID   <00010H,$M_A_00010H_MSG-$M_A_00010H_STRUC>

$M_A_00011H_STRUC LABEL BYTE
        $M_ID   <00011H,$M_A_00011H_MSG-$M_A_00011H_STRUC>

$M_A_00012H_STRUC LABEL BYTE
        $M_ID   <00012H,$M_A_00012H_MSG-$M_A_00012H_STRUC>

; ----------------------------------------------------------


$M_A_00001H_MSG LABEL BYTE
        DB      $M_A_00001H_END-$M_A_00001H_MSG-1
        DB      "Incorrect DOS version",CR,LF
$M_A_00001H_END LABEL BYTE
  
$M_A_00002H_MSG LABEL BYTE
        DB      $M_A_00002H_END-$M_A_00002H_MSG-1
        DB      "Current keyboard code: %1"
$M_A_00002H_END LABEL BYTE
  
$M_A_00003H_MSG LABEL BYTE
        DB      $M_A_00003H_END-$M_A_00003H_MSG-1
        DB      "Current keyboard ID: %1"
$M_A_00003H_END LABEL BYTE
  
$M_A_00004H_MSG LABEL BYTE
        DB      $M_A_00004H_END-$M_A_00004H_MSG-1
        DB      "  code page: %1",CR,LF
$M_A_00004H_END LABEL BYTE
  
$M_A_00005H_MSG LABEL BYTE
        DB      $M_A_00005H_END-$M_A_00005H_MSG-1
        DB      "Current CON code page: %1",CR,LF
$M_A_00005H_END LABEL BYTE
  
$M_A_00006H_MSG LABEL BYTE
        DB      $M_A_00006H_END-$M_A_00006H_MSG-1
        DB      "Invalid keyboard code specified",CR,LF
$M_A_00006H_END LABEL BYTE
  
$M_A_00007H_MSG LABEL BYTE
        DB      $M_A_00007H_END-$M_A_00007H_MSG-1
        DB      "Invalid keyboard ID specified",CR,LF
$M_A_00007H_END LABEL BYTE
  
$M_A_00008H_MSG LABEL BYTE
        DB      $M_A_00008H_END-$M_A_00008H_MSG-1
        DB      "Invalid code page specified",CR,LF
$M_A_00008H_END LABEL BYTE
  
$M_A_00009H_MSG LABEL BYTE
        DB      $M_A_00009H_END-$M_A_00009H_MSG-1
        DB      "Bad or missing Keyboard Definition File",CR,LF
$M_A_00009H_END LABEL BYTE
  
$M_A_0000AH_MSG LABEL BYTE
        DB      $M_A_0000AH_END-$M_A_0000AH_MSG-1
        DB      "KEYB has not been installed",CR,LF
$M_A_0000AH_END LABEL BYTE
  
$M_A_0000BH_MSG LABEL BYTE
        DB      $M_A_0000BH_END-$M_A_0000BH_MSG-1
        DB      "Active code page not available from CON device",CR,LF
$M_A_0000BH_END LABEL BYTE
  
$M_A_0000CH_MSG LABEL BYTE
        DB      $M_A_0000CH_END-$M_A_0000CH_MSG-1
        DB      "Code page specified has not been prepared",CR,LF
$M_A_0000CH_END LABEL BYTE
  
$M_A_0000DH_MSG LABEL BYTE
        DB      $M_A_0000DH_END-$M_A_0000DH_MSG-1
        DB      "One or more CON code pages invalid for given keyboard code",CR,LF
$M_A_0000DH_END LABEL BYTE
  
$M_A_0000EH_MSG LABEL BYTE
        DB      $M_A_0000EH_END-$M_A_0000EH_MSG-1
        DB      "Code page requested (%1) is not valid for given keyboard code",CR,LF
$M_A_0000EH_END LABEL BYTE
  
$M_A_0000FH_MSG LABEL BYTE
        DB      $M_A_0000FH_END-$M_A_0000FH_MSG-1
        DB      "Code page specified is inconsistent with the selected code page",CR,LF
$M_A_0000FH_END LABEL BYTE
  
$M_A_00010H_MSG LABEL BYTE
        DB      $M_A_00010H_END-$M_A_00010H_MSG-1
        DB      "Keyboard ID specified is inconsistent with the selected keyboard layout",CR,LF
$M_A_00010H_END LABEL BYTE
  
$M_A_00011H_MSG LABEL BYTE
        DB      $M_A_00011H_END-$M_A_00011H_MSG-1
        DB      "Unable to create KEYB table in resident memory",CR,LF
$M_A_00011H_END LABEL BYTE
  
$M_A_00012H_MSG LABEL BYTE
        DB      $M_A_00012H_END-$M_A_00012H_MSG-1
        DB      "Parameter value not allowed",CR,LF
$M_A_00012H_END LABEL BYTE
  
; ----------------------------------------------------------

Class_A_MessageCount EQU     18

; ----------------------------------------------------------

        IF      FARmsg
$M_CLS_1 PROC FAR
        ELSE
$M_CLS_1 PROC NEAR
        ENDIF

        PUSH    CS
        POP     ES
        LEA     DI,$M_CLASS_A_STRUC
        ADD     CX,$-$M_CLASS_A_STRUC
        RET

$M_CLS_1 ENDP

; ----------------------------------------------------------

