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

        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_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_00013H_STRUC LABEL BYTE
        $M_ID   <00013H,$M_A_00013H_MSG-$M_A_00013H_STRUC>

$M_A_00014H_STRUC LABEL BYTE
        $M_ID   <00014H,$M_A_00014H_MSG-$M_A_00014H_STRUC>

$M_A_00015H_STRUC LABEL BYTE
        $M_ID   <00015H,$M_A_00015H_MSG-$M_A_00015H_STRUC>

$M_A_00016H_STRUC LABEL BYTE
        $M_ID   <00016H,$M_A_00016H_MSG-$M_A_00016H_STRUC>

$M_A_00017H_STRUC LABEL BYTE
        $M_ID   <00017H,$M_A_00017H_MSG-$M_A_00017H_STRUC>

$M_A_00018H_STRUC LABEL BYTE
        $M_ID   <00018H,$M_A_00018H_MSG-$M_A_00018H_STRUC>

$M_A_00019H_STRUC LABEL BYTE
        $M_ID   <00019H,$M_A_00019H_MSG-$M_A_00019H_STRUC>

$M_A_0001AH_STRUC LABEL BYTE
        $M_ID   <0001AH,$M_A_0001AH_MSG-$M_A_0001AH_STRUC>

$M_A_0001BH_STRUC LABEL BYTE
        $M_ID   <0001BH,$M_A_0001BH_MSG-$M_A_0001BH_STRUC>

$M_A_0001CH_STRUC LABEL BYTE
        $M_ID   <0001CH,$M_A_0001CH_MSG-$M_A_0001CH_STRUC>

$M_A_0001DH_STRUC LABEL BYTE
        $M_ID   <0001DH,$M_A_0001DH_MSG-$M_A_0001DH_STRUC>

$M_A_0001EH_STRUC LABEL BYTE
        $M_ID   <0001EH,$M_A_0001EH_MSG-$M_A_0001EH_STRUC>

$M_A_0001FH_STRUC LABEL BYTE
        $M_ID   <0001FH,$M_A_0001FH_MSG-$M_A_0001FH_STRUC>

$M_A_00020H_STRUC LABEL BYTE
        $M_ID   <00020H,$M_A_00020H_MSG-$M_A_00020H_STRUC>

$M_A_00021H_STRUC LABEL BYTE
        $M_ID   <00021H,$M_A_00021H_MSG-$M_A_00021H_STRUC>

$M_A_00022H_STRUC LABEL BYTE
        $M_ID   <00022H,$M_A_00022H_MSG-$M_A_00022H_STRUC>

$M_A_00023H_STRUC LABEL BYTE
        $M_ID   <00023H,$M_A_00023H_MSG-$M_A_00023H_STRUC>

$M_A_00024H_STRUC LABEL BYTE
        $M_ID   <00024H,$M_A_00024H_MSG-$M_A_00024H_STRUC>

$M_A_00025H_STRUC LABEL BYTE
        $M_ID   <00025H,$M_A_00025H_MSG-$M_A_00025H_STRUC>

$M_A_00026H_STRUC LABEL BYTE
        $M_ID   <00026H,$M_A_00026H_MSG-$M_A_00026H_STRUC>

$M_A_00027H_STRUC LABEL BYTE
        $M_ID   <00027H,$M_A_00027H_MSG-$M_A_00027H_STRUC>

$M_A_00028H_STRUC LABEL BYTE
        $M_ID   <00028H,$M_A_00028H_MSG-$M_A_00028H_STRUC>

$M_A_0002DH_STRUC LABEL BYTE
        $M_ID   <0002DH,$M_A_0002DH_MSG-$M_A_0002DH_STRUC>

$M_A_00034H_STRUC LABEL BYTE
        $M_ID   <00034H,$M_A_00034H_MSG-$M_A_00034H_STRUC>

$M_A_00035H_STRUC LABEL BYTE
        $M_ID   <00035H,$M_A_00035H_MSG-$M_A_00035H_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_0000AH_MSG LABEL BYTE
        DB      $M_A_0000AH_END-$M_A_0000AH_MSG-1
        DB       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       "  Address     Name          Size                  Type ",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       "  ÄÄÄÄÄÄÄ     ÄÄÄÄÄÄÄÄ     ÄÄÄÄÄÄ                ÄÄÄÄÄÄ",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       "  Handle      EMS Name      Size   ",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       "  ÄÄÄÄÄÄÄ     ÄÄÄÄÄÄÄÄ     ÄÄÄÄÄÄ  ",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       "  %1      %2     %3     %4",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       "                %1   %2      %3 ",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       "                  %1              %2 ",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       "%1 bytes total memory",CR,LF
$M_A_00012H_END LABEL BYTE
  
$M_A_00013H_MSG LABEL BYTE
        DB      $M_A_00013H_END-$M_A_00013H_MSG-1
        DB       "%1 bytes available",CR,LF
$M_A_00013H_END LABEL BYTE
  
$M_A_00014H_MSG LABEL BYTE
        DB      $M_A_00014H_END-$M_A_00014H_MSG-1
        DB       "%1 largest executable program size",CR,LF
$M_A_00014H_END LABEL BYTE
  
$M_A_00015H_MSG LABEL BYTE
        DB      $M_A_00015H_END-$M_A_00015H_MSG-1
        DB       "%1 bytes total EMS memory",CR,LF
$M_A_00015H_END LABEL BYTE
  
$M_A_00016H_MSG LABEL BYTE
        DB      $M_A_00016H_END-$M_A_00016H_MSG-1
        DB       "%1 bytes free EMS memory",CR,LF
$M_A_00016H_END LABEL BYTE
  
$M_A_00017H_MSG LABEL BYTE
        DB      $M_A_00017H_END-$M_A_00017H_MSG-1
        DB       "%1 bytes total extended memory",CR,LF
$M_A_00017H_END LABEL BYTE
  
$M_A_00018H_MSG LABEL BYTE
        DB      $M_A_00018H_END-$M_A_00018H_MSG-1
        DB       "Interrupt Vector",0
$M_A_00018H_END LABEL BYTE
  
$M_A_00019H_MSG LABEL BYTE
        DB      $M_A_00019H_END-$M_A_00019H_MSG-1
        DB       "ROM Communication Area",0
$M_A_00019H_END LABEL BYTE
  
$M_A_0001AH_MSG LABEL BYTE
        DB      $M_A_0001AH_END-$M_A_0001AH_MSG-1
        DB       "DOS Communication Area",0
$M_A_0001AH_END LABEL BYTE
  
$M_A_0001BH_MSG LABEL BYTE
        DB      $M_A_0001BH_END-$M_A_0001BH_MSG-1
        DB       "IO",0
$M_A_0001BH_END LABEL BYTE
  
$M_A_0001CH_MSG LABEL BYTE
        DB      $M_A_0001CH_END-$M_A_0001CH_MSG-1
        DB       "MSDOS",0
$M_A_0001CH_END LABEL BYTE
  
$M_A_0001DH_MSG LABEL BYTE
        DB      $M_A_0001DH_END-$M_A_0001DH_MSG-1
        DB       "System Data",0
$M_A_0001DH_END LABEL BYTE
  
$M_A_0001EH_MSG LABEL BYTE
        DB      $M_A_0001EH_END-$M_A_0001EH_MSG-1
        DB       "System Program",0
$M_A_0001EH_END LABEL BYTE
  
$M_A_0001FH_MSG LABEL BYTE
        DB      $M_A_0001FH_END-$M_A_0001FH_MSG-1
        DB       "System Device Driver",0
$M_A_0001FH_END LABEL BYTE
  
$M_A_00020H_MSG LABEL BYTE
        DB      $M_A_00020H_END-$M_A_00020H_MSG-1
        DB       "Installed Device Driver",0
$M_A_00020H_END LABEL BYTE
  
$M_A_00021H_MSG LABEL BYTE
        DB      $M_A_00021H_END-$M_A_00021H_MSG-1
        DB       "%1:",0
$M_A_00021H_END LABEL BYTE
  
$M_A_00022H_MSG LABEL BYTE
        DB      $M_A_00022H_END-$M_A_00022H_MSG-1
        DB       "%1: - %2:",0
$M_A_00022H_END LABEL BYTE
  
$M_A_00023H_MSG LABEL BYTE
        DB      $M_A_00023H_END-$M_A_00023H_MSG-1
        DB       "BUFFERS=",0
$M_A_00023H_END LABEL BYTE
  
$M_A_00024H_MSG LABEL BYTE
        DB      $M_A_00024H_END-$M_A_00024H_MSG-1
        DB       "FILES=",0
$M_A_00024H_END LABEL BYTE
  
$M_A_00025H_MSG LABEL BYTE
        DB      $M_A_00025H_END-$M_A_00025H_MSG-1
        DB       "FCBS=",0
$M_A_00025H_END LABEL BYTE
  
$M_A_00026H_MSG LABEL BYTE
        DB      $M_A_00026H_END-$M_A_00026H_MSG-1
        DB       "STACKS=",0
$M_A_00026H_END LABEL BYTE
  
$M_A_00027H_MSG LABEL BYTE
        DB      $M_A_00027H_END-$M_A_00027H_MSG-1
        DB       "DEVICE=",0
$M_A_00027H_END LABEL BYTE
  
$M_A_00028H_MSG LABEL BYTE
        DB      $M_A_00028H_END-$M_A_00028H_MSG-1
        DB       "IFS=",0
$M_A_00028H_END LABEL BYTE
  
$M_A_0002DH_MSG LABEL BYTE
        DB      $M_A_0002DH_END-$M_A_0002DH_MSG-1
        DB       "INSTALL=",0
$M_A_0002DH_END LABEL BYTE
  
$M_A_00034H_MSG LABEL BYTE
        DB      $M_A_00034H_END-$M_A_00034H_MSG-1
        DB       "  %1      %2     %3 %4     %5",CR,LF
$M_A_00034H_END LABEL BYTE
  
$M_A_00035H_MSG LABEL BYTE
        DB      $M_A_00035H_END-$M_A_00035H_MSG-1
        DB       "                %1   %2 %3      %4",CR,LF
$M_A_00035H_END LABEL BYTE
  
; ----------------------------------------------------------

Class_A_MessageCount EQU     35

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

        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

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

