CH




		  CP/M-80

		.  .


                            2
                    2700560.00015-01 33 01


                       

             -
       
    (- ).  -
      
        -
.       
  ,    -
 -    ,    
;     . -
  ,    -
.

                            3
                    2700560.00015-01 33 01

                     

1.           -
               . . . . .  6
2.          -
            . . . . . . . . . . . . . .  6
3.         . 
            . . . . . . . . . . . . . 9
4.            . . . . 11
5.           . . . . . . . 14
5.1.      "" (   )  . 14
5.2.      "S" (   -
           ) . . . . . . . . . . . . . . . . 15
5.3.      "I" (   
         ). . . . . . . . . . . . . . . . . 15
5.4.      "Z" (  ). . 16
5.5.      "R" (KO    -
          ). . . . . . . . . . . . . . . . . 16
5.6.      "" (  ).17
5.7.      ""  "L" ( ). . . 17
5.8.      "" (  RST N  -
            ) . . . . . . 18
5.9.      "Q" (  RST N  -
         ). . . . . . . . . . . . . . . . . . 19
5.10.     "" (   
           ). . . . . . . . . . . . 19
5.11.         . . . 21
6.       ,    . . . . 23
7.        . . . . . . . . . . . . . . . . 36
7.1.        . . . . . . . . . . . . 36

                            4
                    2700560.00015-01 33 01

7.2.        . . . . . . . . . . . . 38
7.2.1.    "/S". . . . . . . . . . . . . . . . . .38
7.2.2.    "/". . . . . . . . . . . . . . . . . .38
7.2.3.    "/L". . . . . . . . . . . . . . . . . .38
7.2.4.    "/". . . . . . . . . . . . . . . . . .38
7.2.5.    "/"  "/D". . . . . . . . . . . . . .39
7.2.6.    "/W". . . . . . . . . . . . . . . . . .40
7.2.7.    "/".  .  . . . . . . . . . . . . . . .40
7.2.8.    "/F".  .  . . . . . . . . . . . . . . .41
7.2.9.    "/V", "/X"  "/". . . . . . . . . . .41
7.3.          . . . . . 43
7.3.1.        . . . . . . . 43
7.3.2.         47
7.3.2.1.    
         ( "/V"). . . . . . . . . . . . . . . . .47
7.3.2.2.    SYM -  "/". . . . .47
7.3.2.3.    -  "/". . .48
7.3.3.      . . . . . . . 49
7.3.4.     . . . . . . . . . . . 51
7.3.4.1.    . . . . . . . . . . 53
7.3.5.       . . . . 53
7.3.6.        . . . . 56
7.3.6.1. '   . . . . . . 56
7.3.6.2.     . . . . . . . . 56
7.3.6.3. ,     . . 57
7.3.7.       . . . . . . . . . . . 60
7.3.8.        60
7.4.     ,   . . . . 64
8.          . . . . . . . . . . . . 66
8.1.        . . . . . . . . . . . . . 66

                            5
                    2700560.00015-01 33 01

8.2.        . . . . . . . . . . . . 66
8.3.        . . . . . . . . . . . 68
8.4.       . . . . . . . . . . . . 69
8.5.      . . . . . . . . . . . . . . . . 70
9.           . . . . . . . 71
9.1.         . . . . . . . . . . . . . . . 71
9.2.           . . 71
10.          . . . . 73
10.1.         . . . 73
10.2.        . . . . . 74
10.3.     ,    74
11.         . . . 76
  . . . . . . . . . . . . 77

                            6
                    2700560.00015-01 33 01


   1.     
                 

         , -
           .
       
   (    )  
,        -
  .    -
      -
 [1]  [2],       
 .




2.      

         . -
        
 PASCAL.COM.     MTPLUS.000
                   
MTPLUS.001-MTPLUS.006.   MTPLUS.006    
  ,      
  .
            
 . 1.

                            7
                    2700560.00015-01 33 01

                                               1
------------------------------------------------------
         !  !       
  !   !
-------------!--------!-------------------------------
 PASCAL.COM  !  35    !    -
             !        !  
 MTERRS.TXT  !   5    ! ,   -
             !        ! 
 MTPLUS.000  !  13    !   
             !        !  
             !        ! MTPLUS.001-MTPLUS.006
 MTPLUS.001  !  11    !   -
             !        !  
 MTPLUS.002  !   7    !   
             !        ! 
 MTPLUS.003  !   8    !   '-
             !        !  
 MTPLUS.004  !  17    !   '
             !        ! 
 MTPLUS.005  !   8    !   '-
             !        !     
             !        ! 
 MTPLUS.006  !   6    !    -
             !        !   (
             !        !    -
             !        ! )

                            8
                    2700560.00015-01 33 01

          
   PASLIB.ERL,  FPREALS.ERL,
TRANCEND.ERL,  FULLHEAP.ERL,  RANDOMIO.ERL,  DEBUGGER.ERL.
     . 2.

                                               2
----------------------------------------------------------
     ! ' !     
-------------!-------!------------------------------------
LINKMT.COM   ! 12    !   
PASLIB.ERL   ! 24    !   
FPREALS.ERL  !  8    !   
             !       !    
             !       ! 
TRANCEND.ERL !  4    !   -
             !       !     (  
             !       !    )
FULLHEAP.ERL !  3    ! ,  
             !       !    -
             !       !    
RANDOMIO.ERL !  3    ! ,  
             !       !    
             !       ! 
DEBUGGER.ERL ! 11    !   

                            9
                    2700560.00015-01 33 01


 3.   .    

          
   [3]:

 ["1":]PASCAL ["2":]""[.""]["
"""]

  "1" -   .     
              "A,B"..  ..   ,  -
                  PASCAL.COM;
     "2" -   .     
              "A,B,"...  ..     
                .
         "1"    "2"  ,  
  .
     ""   -           
               ;
     ""   -     
                      .   
                  ,    -
                    
               "".SRC,  ,     -
               ,    "".PAS;
     " " -    "$"  "#"
     "" -     ,  
                  .
                .

                            10
                    2700560.00015-01 33 01

     ,    ,  
.
           . 4.
           -
   ,     --
.      .SRC  .PAS,    
         -
  "".         
,            -
.             -
 '  "".ERL.    -
         "".PRN   
"".PSY,           -
   .
             
            
PASTEMP.TOK,      
.

                            11
                    2700560.00015-01 33 01

          4.    

         
   . 3.
                                             3
------------------------------------------------------
    !              !   
--------!----------------------!----------------------
R"" !   -!  .ERL 
        !  ""=, !    , 
        !B,  ..             !  
        !                      ! 
"" !      !  
        !MTPLUS.000, ...       ! MTPLUS.000, ...
        !     ,MTPLUS.006      ! ,MTPLUS.006  -
        !  -  !  
        !              !
P"" !  .PRN    !  .PRN  -
        !   - ! 
        ! . -!
        ! ""=X,  .PRN!
        !  , !
        ! ""=,B  ..!
        ! .PRN    !
        !       !

                            12
                    2700560.00015-01 33 01

                                   .3
--------!----------------------!-----------------------
    !              !   
--------!----------------------!-----------------------
D       !  '-!  
        !  ( .ERL)  !  . 
        ! .! .PSY  
        !  .PSY    !
        !   ,!
        !  .ERL         !
"" !     !  ERRS.TXT -
        !MTERRS.TXT   !   -
        !      !  
"" !         !  PASTEMP.TOK -
        !PASTEMP.TOK  -   !   -
        !            !  
Q       !    !   
        ! ,  ! 
        ! -  !
        !                  !
C       !  !  -
        !         !   
        !                      !    
        !                      ! 

                            13
                    2700560.00015-01 33 01


                                .3
 -------!----------------------!-----------------------
    !              !   
--------!----------------------!-----------------------
       !   !  
        !     !   
        !  -!  
        ! ERL-  - !
        ! PASLIB.ERL.    !
        !COM-    !
        !   ,    !
        ! ERL-            !
V       !      !    -
        !  ,  !   -
        !    ! 
        ! ( - !
        !  , - !
        !  -  !
        ! )       !
@       ! - !  "@"  "^" 
        !  "@"   !  -
        !"^"                   ! 

            -
     ,    
     .

                            14
                    2700560.00015-01 33 01

         5.   


            
  -.     -
:

     (*" """*)

  " " -      "$"    "#";
     ""   ,    -
  (    ). , -
 ,      "$"  "#". 
     .   -
    .  "" 
  "+"  "-".

      5.1.  "" (   )

     :
     ""

      ""        
 .    "+",   -
         
   (..        
    EXTERNAL).  "-"   "E"
   ,     -
,        -
    .   

                            15
                    2700560.00015-01 33 01

   "+"     
  .

     5.2.  "S" (   
           )

     :
     S""

      "S+"        
       
.      
 ,          
.        PROGRAM  
MODULE        -
 .        ,
      . , -
   "S+",  '  ,
    .    -
,   .

    5.3.  "I" (    )

     :
     I[":"]""[.""]

       "I"     ,    
               -
-.  ""  ,   
  ,      -.

                            16
                    2700560.00015-01 33 01

   .

     5.4.  "Z" (  )

     :
     ZNNNN

      "Z"      
 (SP)  NNNN.    -
 ,      -
 0006.    "Z"  
.  NNNN     ,  
.          
BEGIN  ,     -
.

     5.5.   "R" (    
            )

     :
     R""

      "R+"     -
,       -
         -
 .         "R-"
(..  ).        
     .

                            17
                    2700560.00015-01 33 01

     5.6.  "X" (  )

     :
     X""

      "+"     -
,            -
     :
     -      (     );
     - ;
     - ;
     -      
      .
         "-".
      "X+"  "X-"        -
 .

     5.7.  "P"  "L" ( )

     :
     P
     L""

      "P"  "L"   , -
    ( 0).  ""  -
     PRN-      "FF"
( 0CH),       .  
"L+"  "L"       
      .

                            18
                    2700560.00015-01 33 01

     5.8.   "C" (  "RST N" 
                 )

     :
     CN
      N-   RST (1-6).

      "CN"      -
     REAL   -
,   '    .
 ,   ,   -
  "RST",      
          
"RST N".        -
   . "RST"   0   7  
,      -
.  "C"     ,   
,     .   
          "8*N"
    "@XOP".  ,  -
   ,    "CN"
 "RST N".
          -
     .

                            19
                    2700560.00015-01 33 01

           5.9.  "Q" (  "RST N" 
                        )

           :
           QN
            N-   "RST.

       "C"  "Q"     -
  (..  )   -
.      "@DYN", -
     ,   -
   "RST N"  (,      
"*$Q5*",       5).  
  "Q"     ,    
 ,     ,  , -
        -
    "8*N".

     5.10.  "" (   
             )

     :
     KN
      N-     0  15.
      ""      -
   ,      
.  N (0..15)      
 .         
 .  ""     -
 PROGRAM  MODULE.   ,  

                            20
                    2700560.00015-01 33 01

        -
    ,      
   .     -
       
,      .
          -
:
      0      -       ROUND,  TRUNC,  EXP,  LN,  ARCTAN,
                     SQRT, COS, SIN;
      1      -       COPY, INSERT, POS, DELETE, LENGTH,
                     CONCAT;
      2      -       GNB,    WNB,    CLOSEDEL,   OPENX,
                     BLOCKREAD, BLOCKWRITE;
      3      -       CLOSE, OPEN, PURGE, CHAIN, CREATE;
      4      -       WRD,  HI,  LO, SWAP, ADDR, SIZEOF;
      5      -       IORESULT, PAGE, NEW, DISPOSE;
      6      -       SUCC, PRED, EOF, EOLN;
      7      -       TSTBIT, CLRBIT, SETBIT, SHR, SHL;
      8      -       RESET, REWRITE, GET, PUT, ASSIGN;
      9      -       READ, READLN;
      10     -       WRITE, WRITELN;
      11     -        ;
      12     -       MEMAVAIL, MAXAVAIL;
      13     -       SEEKREAD, SEEKWRITE;
      14     -       WAIT;
      15     -       READHEX, WRITEHEX.

                            21
                    2700560.00015-01 33 01

     5.11.    

      . 4      
.
                                               4
-------------------------------------------------------
     !                                   !
- !                           !-
     !                                   ! 
---------!-----------------------------------!---------
 E+/-    !     !   +
 S+/-    !    - !   S-
         !        !
 I<>  !     - !
         !                        !
 R+/-    !     -!   R-
         !                           !
 X+/-    !     - !   X-
         !            !
 P       !     "FF"  !
         !  .PRN                         !
 L+/-    !    -!   L+
         !                         !
 KN      ! E    !
         !        !
         !  (N=0..15)                !

                            22
                    2700560.00015-01 33 01

                              .4
---------!-----------------------------------!--------
      !                                   ! -
-    !                           ! 
    !                                   !
---------!-----------------------------------!--------
NNNN     !      ! -
         !  NNNN                     ! 
         !                                   ! 
         !                                   ! 0006
 CN      !    "RST  N" ! -
         !     REAL      ! 
         !                                   ! 
         !                                   ! CALL
 QN      !  "RST N"   -! -
         !     -! 
         !                                 ! 
         !                                   ! CALL

                            23
                    2700560.00015-01 33 01

         6. ,  


             
  .    0   
  16       -
  "+".    1     -
  .    
      "#".  
 1     ,   -
.
      2  ' .        
       .
           -
:
      LINES: LLLL
      ERRORS:EEEE
      CODE:  CCCC
      DATA:  DDDD
          LLLL -       
                     ;
             EEEE -    ;
             CCCC -   
                       ;
             DDDD -  , 
                     .

           
  .      -
   MTERRS.TXT.

                            24
                    2700560.00015-01 33 01

                
:
     1       .
            ';
     2       .
            ';
     3     "PROGRAM".
              ';
     4      ")".
              ';
     5      ":".
          ,        VAR  
           "=";
     6      (,    
             ";").
               -
           ;
     7        .
               -
          ;
     8     "OF".
            ';
     9      "(".
              ';
     10         .
               TYPE;
     11    "[".
            ';
     12      "]".
            ';

                            25
                    2700560.00015-01 33 01

     13    "END".
           ,    
              "END".    
            "BEGIN"    "END";
     14    ";" (   ).
                 ;
     15     .
              ';
     16    "=".
          ,       TYPE   CONST
            ":";
     17    "BEGIN".
             ';
     18      .
                      
           ;
     19       .
                  ;
     20      ".".
               ';
     21    "*".
            ';
     50     .
               -
          ;
     51     ":=".
             ';
     52     "THEN".
            ';
     53     "UNTIL".

                            26
                    2700560.00015-01 33 01

               
           BEGIN/END;
     54      "DO".
             ;
     55    ""  "DOWNTO"    "FOR".
              ';
     56     "IF".
             ';
     57     "FILE".
          ,      TYPE;
     58      (  )
               
          ;
     59           .
                 
          ;
     99    "MODEND".
               "MODEND";
     101     .
                    
           ;
     102       .
                  
            A  ;
     103     
          .
                
                   
             ..;
     104   .

                            27
                    2700560.00015-01 33 01

              
                 -
             ;
     105   .
           ,       -
          ,    ;
     106   .
              ,   
              
                
           ;
     107    .
          (,  'A'..'Z'     0..9);
     108           .
                ;
     109      .
             ';
     110         
             .
               ';
     111        "  ".
            CASE-  
             ;
     112        .
                  
          ;
     113        -
           .
            ';
     114          .

                            28
                    2700560.00015-01 33 01

                  
             .
               ';
     116       -
          .
            ';
     117    .
          ,            
          ,     ;
     118       -
           .
              
            ,      ;
     119      
             .
            ';
     120       ,
             .
             ,    
               -   -
           .   ;
     121  -         
          .
               VAR-;
     122       
             .
            ';
     123       -
          .
            ';

                            29
                    2700560.00015-01 33 01

     125       -
          .
                   
                  
          ,  - ;
     126       .
            ';
     127     .
                 
             ;
     128         .
                 
             ;
     129     .
            ';
     130      .
            ';
     131      .
                  -
          ;
     133       .
                ,
              , -
            ;
     134      ().
              ,  
               ;
     135      .
             AND,  OR  NOT  
          BOOLEAN;

                            30
                    2700560.00015-01 33 01

     136       
            .
             ';
     137       -
          .
            ';
     138      .
                
          ;
     139      .
                 
              ;
     140       .
              ,  -
              ,     
          "."   WITH;
     141        -
          .
          ,    "^"  
          ,     
           ;
     142   .
            ';
     143     .
                
            ;
     144      .
          ,       
                 ,
                ;

                            31
                    2700560.00015-01 33 01

     145   .
                   -
              ;
     146     .
            ';
     147        -
          .
                
              ;
     148       .
            ';
     149      .
            ';
     150      
          .
                  ';
     151      ,  
            ,      .
             ';
     152          .
                ';
     153     .
            ';
     154      .
                  
             "VAR";
     155        -
             .
                FOR   
           ;

                            32
                    2700560.00015-01 33 01

     156     .
            ';
     157       .
                 ,
             ;
     158     -
          .
            ';
     159           
            .
             ';
     160        "FORWARD";
     161     "FORWARD";
     162      ;
     163     .
                      
          "NEW/DISPOSE",          -
          ;
     164      
            ;
     165     ;
                 
          ;
     166        .
                    ;
     167    .
               ;
     168   .
                   -
           ;

                            33
                    2700560.00015-01 33 01

     169      ;
     170   ,   ;
     171     ;
     172    ;
     174      .
            ';
     183         
          .
            ';
     187     .
            ';
     191    .
              ,  
                   -
          ,     -
            ;
     193         .
            ';
     194       -
          ;
     201      -  -
          ;
     202        
             ;
     203       .
                    
          -32768..32767;
     250         
          ;
            :    15  

                            34
                    2700560.00015-01 33 01

             .
               WITH    
          ;
     251       .
            :    15  
                ;
     253    .
            ,  
            .  
              ;
     259    .
               
            .  -
           ,    -
          ;
     397     "FOR"  "WITH"  -
          .
                 
            16   "FOR" / "WITH"
          (   );
     398    .
                 -
            ;
     400        .
                  ,
                 
              ;
     401     .
          "END."      -
           ;

                            35
                    2700560.00015-01 33 01

     402         ,  
             .
            ';
     403      .
            ';
     404      ,  
          .
              ';
     405      -
             .
             ';
     406    .
            ';
     496      "INLINE".
            ';
     497          .
                   ".ERL".
              ,   
         ".ERL";
     999        -
           .
                 
          .        
                 -
            .  -
            ,     -
          .

                            36
                    2700560.00015-01 33 01

                    7. 

           
    '   -
           
  .
      ,      
 -,      -
 ,     
[4].

     7.1.  
              
"LINKMT.COM". KOM     
    (   
):
       LINK ["1":]["1"=]["2":]"2","3",
              ..."N"[,"."],PASLIB[""]
     
     "1"  - ,   ,    
                    -
                 ;
     "1"   - ,     
                COM-      .
                   ,   COM-
                      ERL-    
                  ("2");
     "2"  - ,  ,  
                ERL-      -
                .

                            37
                    2700560.00015-01 33 01

      "1", "1", "2"  -  .
  "1" ,  ,  -
 ERL-,   "1" ,   .COM
  ERL-.   "2" ,  -
  ;
  "2"     -    ERL-   -
                 ;
  "N"     -  ( )  -
                 ;
  ".            
   "   -   TRANCEND, FULLHEAP, FPREALS,
                RANDOMIO -   ;
  PASLIB    -     
                 -  ;
  ""    -    ,     
                .       -
                  "/" ( ). -
                   .

      .
LINKMT CALC, TRANCEND, FPREALS, PASLIB/S
LINKMT B:CALC=CALC, TRANCEND, FPREALS, PASLIB/S

                            38
                    2700560.00015-01 33 01

     7.2.  

     7.2.1.  "/S"
       "/S"   E    
,       -
        (  
 . 7.1.).          
 PASLIB.ERL  FPREALS.ERL,  A      
,     [5]. 
    .

     7.2.2.  "/"
      "/",        -
   ,    -
       (-
 ).

     7.2.3.  "/L"
      "/L",     , -
  ,      -
      ,       
.

     7.2.4.  "/"
      "/",     ,  -
     ,  ,
     "$", "?"  "@", -
      .

                            39
                    2700560.00015-01 33 01


     7.2.5.  "/"  "/D"
         ' -
        -
    "/"  "/D".
      "/"    ,  
"/D"     ().
         :
               /:NNNN
               /D:NNNN
      NNNN -    
0..FFFF.
       "/D"         
 ,        
             .
  ,    
         
 ,     -
 .
                  
    ., ..    
  "/:8000",      . 
  ,          
 8000,           
 32  .  ,    -
  "/D",       -
   .    .    "/"  
"/D"        -
  .
         ,   -

                            40
                    2700560.00015-01 33 01

        "/D".  
     (  
"/D")       
(   ),     -
   "/D",       -
 ,     
    .    
"$-"    ,  
  .        
 .

     7.2.6.  "/W"
      "/W"       .SYM  
   ,    .COM.      
   .

     7.2.7.  "/"
      "/:NNNN"      .HEX
  ..  NNNN     -
       -
     100 (, -
  "/").  ,   
    ,  ,    
1D00H     HEX-,  ,  -
   8000 (      
  "/:1D00/:8000").

                            41
                    2700560.00015-01 33 01


     7.2.8. "/F"
      "/F"  ,    
      .  
     
  , ,   -
  .    -
   .D        
 .     
     . , -
   ,        
          "/F".
    256 .   -
  ,      
[3].

     7.2.9.  "/V", "/X"  "/"
          -
 :
     /VN:MMMM -          
                 N;
     /X:NNNN  -  ,  
                   .  -
                   SYSMEM,  ;
     /O:N     -    .
                       
                      -
                 .
         "/V", "/X"  "/"
  . 7.3.

                            42
                    2700560.00015-01 33 01

                

     /S      -     
               .   
               .
     /L      -       .
     /      -      .
     /      -         -
                  ,  
                  "$", "?"  "@".
     /:NNNN -         
                NNNN.
     /D:NNNN -        
                NNNN.
     /W      -   .SYM     ,
                  ..
     /:NNNN  -   .     
               NNNN   .COM.
     /F      -      
                   .CMD,  -
                        (
                 ).
     /VN:MMMM-   ()   
                 N.
     /X:NNNN -     
               ,   SYSMEM.
     /O:N    -    ; -
                       
                   .  -
                N    1  48.

                            43
                    2700560.00015-01 33 01


     7.3.     

     7.3.1.    
         -
  ,    ,
   .       
       .
,        
,            
     .
           48 -
    3   .  -
           -
.        ,  
    ,       ,
   .      
  .      -
  .     
 ,        ,
    .
          ,  
     :
     1)   -    ,  
  .     
   COM.       -
  ,    PASLIB.ERL,
, , ,   ;
     2)   () -    (-
 ) ,    -

                            44
                    2700560.00015-01 33 01

          -
 (, PROG.001);
     3)   -    ,    
        
   .       
  ;
     4)      -  ,
       -
         
,    .   -
    ,   
  , ..    ,
  ,    
 ( 7.3.2.3.).
               48
 .         
 (    ),  -
   .     
        
(  ),        
    .   
    .   -
      7   (  
  ),     
  .
              
 ;        
    
.      3  
 .        -

                            45
                    2700560.00015-01 33 01

 .      ,  
    1-  . -
  1-16     1, 
17-32    2    ..        -
        
   ,      -
 ,    .  
     128- ,
,  ,    
   .
      1   ,   -
 .

                            46
                    2700560.00015-01 33 01

        , , -
    .1

        !
          >   -    !
        !              !
                                > -  
        !              !    1 ( .001)
        >   -    !      -
        !              !     1

          !
          >   -    !
        !              !
                                >  -  
        !              !    17 ( .011)
        >   -    !      ,
        !                     -
                                      2,  -
                                       -  -
                                      1
                 .1

                            47
                    2700560.00015-01 33 01

     7.3.2.     

     7.3.2.1.     
                       ( "/V")
     :
     /VN:MMMM
      N      -   ;
         MMMM   -      
                  .
      "/V"     
 (MMMM)       N.
           
, ,        
(     ,    -
  ).   , -
  "/V" -,     
  PASLIB.ERL.       "/D"  -
    ,   
    "/V",     
   ,   100H. -
  "/D"  ,     "/V"
          ,
  100H.

     7.3.2.2.    SY -  "/"

     :
     /O:N
   N -    .
      "/"  ,    

                            48
                    2700560.00015-01 33 01

    SYM       
         
.   SYM      -
         
.   .SYM  ,   -
    (   )   -
    .  "/"  -
     .      -
    .
      "/"     -
.      1  16   
1.  17 - 32    2  ..

     7.3.2.3.    -  "/X"

     :
     /X:MMMM

  MMMM  -     
                .

      "/X"       -
   .    -
    "/X"    ,  
        -
,   .      
 SYSMEM,       (SYSMEM)  
.      ,  
    ,   ,   
.   ,   '  -

                            49
                    2700560.00015-01 33 01

,      . 
 "/X"  ,     -
      ,   
  .
        "/X"      
        -
   ;     -
      .  ,
  '         
 500 ,      1  
350 ,      1        
"/X:0000" (  ),   2  -
   "/X:015E".     -
   "/X:01F4".
           
 MMMM   .      
       -
 .      ,  
,          
,  .

     7.3.3.   
               -
 :

     LINKMT ROOT,<. ROOT->...,PASLIB/S/VN:MMMM
     /D:0000/X:PPPP

     ,   "/V"  
 "/E"  "/W", ,  , SYM-.

                            50
                    2700560.00015-01 33 01


   N -   1,  2,  ...  ,  F, 10;
      MMMM, NNNN, PPPP -    0 
      FFFF.
         ROOT.COM    ROOT.SYM.  
ROOT.SYM       -
.  ,      
   ,       
  "/D".      
  .2.

                             
-------------------------------------------------------
           !            !          !            !
   ! () !    !      ! 
  !  !  ! .!
           !            ! !  !
           !            !          !  -!
           !            !          !  !
           !            !          !  "/"!
-------------------------------------------------------
            <----------> <--------->             <---->
                                -
              "/V"     "/D"             
                                                   
                                                  "/"
                       .2

         ( NEW   DISPOSE)
        

                            51
                    2700560.00015-01 33 01

.    "/D"     
      . -
   , ..   
  .  ,    -
      128 .   -
,    ,   -
  ,    ,     -
.  "/X"     -
   ,  -
, ,  ,      
.           -
.   "/X"  ,      
      
.

     7.3.4.  
              .SY,
     AMM,  -
 , '   ,   
 PASLIB.ERL.  "/P"    -
      -
.  ,      
  ,          
 "/P".       -
 .
      "/"     SYM    -
 .
          ,   -
   "/X",   
         -

                            52
                    2700560.00015-01 33 01

.     ,     -
               
SYSMEM+2, ..        -
   .
         
         .  
       
,      .

     .
     LINKMT ROOT=ROOT/O:2,MOD1,D2,...,PASLIB/S/P:4000

          -
   SYSMEM+2,   SYM-.
       ROOT.002     -
  ,   MOD1.ERL, MOD2.ERL,    ..
 "ROOT=" ,      
MOD1.002       -
.    (  )  
  .
         "$E"  -
 ""         -
     .
       (  A  )  
,   ,    .
,   MO   -
,       
       .
       ,    
(   )   

                            53
                    2700560.00015-01 33 01

.

     7.3.4.1.   
                 
  .     -
  .  ,      -
 XYZ.,      -
 XYZ.001.     0;  -
     - .  ,
 15     "  ".00F.

     7.3.5.    
     ,       -
,   .

      1.     .
            
    "/"     "/V"  
 "/D".
        -  SYM-,  
        
         -
,        
  .      ,      
SYM-,      
 "/V"   "/" "/W".    -
        .


                            54
                    2700560.00015-01 33 01

      2.   .    
  SYM-,    1,   
"/".        . 
               
,   "/"    ,   -
        = 0. ,  
       -
    .      
 "/"            
.     :    
   100H (      -
 100)        -
    .
              
   .
      3.   .   -
   "/".        
  ,        2. -
       "/X"    
,    2    
.    "/P"      
,       .  -
        2. 
               
  .


                            55
                    2700560.00015-01 33 01

      4.     .   
   ,     
         
   "/".        
         ,       
   "/".     -
          ,    -
           
 ,        
   .
      5.       .   
          -
  .      "/D" 
      , -
          -
      .    
     128.   "/V"    
,         -
     .     
  "/"       "/V"  -
 .
        "/V"     -
.   "/"     -
     .


                            56
                    2700560.00015-01 33 01

      6.  .    ,  
  .SYM,       -
 .    "/D"     1 -
 ,        5  -
    .SYM.

     7.3.6.    

     7.3.6.1. '  
           
 EXTERNAL  :
EXTERNAL[<>!< >]PROCEDURE/FUNCTION...
      [ ]  ,      
EXTERNAL  .    -
          
;
        <>    <  >      
    INTEGER.    
 ,      -
 .

     7.3.6.2.   
           -
   ,      
 , '   .  -
           
  ,   ,  
      ,    
    ,          -

                            57
                    2700560.00015-01 33 01

    .      -
     
           
,       .  
  ,     -
    ,  
,       -
     .
             -
,      ,    
          
  .
          
@OVS    ,        -
   .    
@OVS         
  .   @OVS      -
    ,  
    .    @OVS 
 '  :
     EXTERNAL PROCEDURE @OVS(N:INTEGER; D:CHAR)
      N -  ;
         D - ,         (  
               : @, A, B  ..);
     "@"      .

     7.3.6.3. ,   
           -
        -
 ,        

                            58
                    2700560.00015-01 33 01

          -
.    , ..   -
   .    
  RELOAD,     -
   TRUE,       
        
   .  ROVLMGR.ERL -
  RELOAD,     TRUE.
 ,      -
,  ROVLMGR.ERL       
 PASLIB.ERL.
            -
 :
     1)     
         -
      -
.        -
  "/";
     2)      
       ,    RELOAD
  ,      -
.        
 ,   RELOAD    
     TRUE,  ..  
       .
             -
 .  ,    
 ,        -
.      -
 'DB'      ,   -

                            59
                    2700560.00015-01 33 01

, ..       
  .      ,
,       ,
   ,   
  ' EXTERNAL.
       ,   -
 ,    .   -
        -
,    .    
         
   (, - )
  .     '-
        
 ADDR         
  .     ADDR
, ..  '     -
     PASLIB.  -
    ADDR  .

     .
     EXTERNAL PROCEDURE @RIN;
     PROCEDURE X;
     VAR P : INTEGER;
     BEGIN
         P  :  = ADDR(@RIN);   (*   
                                   @RIN *)
     ...

                            60
                    2700560.00015-01 33 01

     7.3.7.   
           2
:
     1)        
  .    -  -
  EXTERNAL     -
;
     2)       -
.  ,      
.    @OVS    
   .

     7.3.8.    
     ,    , -
            
 ,     -
.         
 .  ,  
   ,     
        -
.

       :

      PROGRAM DEMOPROG;
      VAR
        I :  INTEGER;    (*    -
                             *)
        CH: CHAR;
       EXTERNAL [1] PROCEDURE OVL1;    (*   

                            61
                    2700560.00015-01 33 01

                                            *)
       EXTERNAL  [2] PROCEDURE OVL2;    (*  
                                       *)
       (*      *)

        BEGIN
          REPEAT
            WRITE('ENTER CHARACTER, A/B/Q: ');
            READ(CH);
            CASE CH OF
              'A' : BEGIN
                       I := 1;    (*  -
                          EM 
                       *)
                       OVL1
                       END;
             'B' : BEGIN
                     I := 2;
                     OVL2
                   END
            ELSE
              IF NOT(CH IN ['Q']) THEN
                WRITELN(' A  B')
            END
           UNTIL CH IN ['Q'];
           WRITELN(' ')
         END.

                            62
                    2700560.00015-01 33 01

      1:

      MODULE OVERLAY1;
      VAR
        I :EXTERNAL INTEGER;    (*   
                                    *)
      PROCEDURE OVL1;       (*     
                                  *)
      BEGIN
        WRITELN('  1, I=',I)
      END;
      MODEND.

            2:

       MODULE OVERLAY2;

       VAR
         I :  EXTERNAL INTEGER;   (*   -
                                       *)
       PROCEDURE  OVL2;     (*     
                                 *)
       BEGIN
         WRITELN('   2, I=',I)
       END;
       MODEND.

           3  (PROG, MOD1, MOD2)
  .

                            63
                    2700560.00015-01 33 01

       :

           LINKMT PROG,PASLIB/S/D:8000/V1:4000/X:40

     8000.
    (1...16) -  
4000H.
64    .
    
PROG.COM  PROG.SYM.

       1:

     LINKMT PROG = PROG/:1, MOD1,PASLIB/S/P:4000/L

      "/"     PROG.SYM  
 1.       -
 = 4000.   PASLIB      ,
     1,     PROG.COM
(  "/L").
             PROG.001.
       2   -
  1:

     LINKMT PROG=PROG/O:2,MOD2,PASLIB/S/P:4000/L

           ,   "/" 
       .  "/"   
      ,  -
    ,      
-

                            64
                    2700560.00015-01 33 01

  .
      , . .         
,  RELOAD        
 TRUE.      OVL1    PROG.001
   4000H,   
    OVL1.      
OVL1    .  
 OVL2.
        .      
     (: ,,),
   .    
(,,,),         
.

     7.4. ,  
             
        .
   ,  
   COM-,     
      -
.
           :

UNABLE TO OPEN INPUT FILE:""-    -
                                    ;
DUPLICATE  SYMBOL  - ""     - ,  -
                                    
                                      
                                  
                                     

                            65
                    2700560.00015-01 33 01

                                  .
         O:

     DUPLICATE SYMBOL DETECTED

             
.

INITIALIZATION  OF DSEG NOT ALLOWED  - ,  
            DB  DW   ;

INCOMPATIBLE RELOCATABLE FILE      - ,  
          .ERL          -
             ;

SYSMEM NOT FOUND IN .SYM FILE     - ,  
                -
            ( ).  
                    50
                     
           .     -
          ,   :

EXTERNAL OFFSET TABLE OVERFLOW     -   -
              .

                            66
                    2700560.00015-01 33 01

                      8.   

          -
 ,    ,  -
,   , ..     
  ,   
  [4].

     8.1.  
           
        ,
   .   -
         
 6          "$"  
"?".

     8.2.   
                   -
-           
PUBLIC            EXTERNAL    -
-.

    .
 ;    
      PUBLIC    ABC
      .
      .
      DSEG
ABC   DS        32        ;  
      .

                            67
                    2700560.00015-01 33 01

      .
      .
      ND

(* -*)

VAR
     ABC : EXTERNAL PACKED ARRAY [1..32] OF CHAR ;

          -
     ' -
          
EXTRN.    ,   - -
      "$" (-
. 7.2.).

     .
;     :

     EXTRN     PQR
     .
     .
     LXI       H,PQR     ;  
                         ;
     .
     .
     END

(* -*)


                            68
                    2700560.00015-01 33 01

VAR
     (* *)
     PQR   :   INTEGER   ;    (*   
                              *)

     8.3.  
            
 ,    ',   ,
       (,
A, B, C : INTEGER )       (..
 C,  B  ).

     .
     VAR
          A : INTEGER ;
          B : CHAR ;
          I,J,K : BYTE ;
          L : INTNGER ;

            
    :
     0 - ( )
     1 - ( )
     2 - 
     3 - 
     4 - J
     5 - I
     6 - L( )
     7 - L( )


                            69
                    2700560.00015-01 33 01

      (ARRAY)       .  
         
   .
      (RECORD)   ,   .
      (SET) ,  32- '.
      .

     8.4.  
        -  -
      .   
      . 
     ,  -
  .       
2 .      
    .   VAR -
  .      -
,   .
       (  ) -
   .   SET   
  ,      -
 @SS2, K     .

     .
PROCEDURE PROC(I,J:INTEGER; VAR Q:STRING; C,D:CHAR)

         PROC  ,    
,      -
:
     0-1 -  
     2   - D

                            70
                    2700560.00015-01 33 01

     3   - 00
     4   - 
     5   - 00
     6-7 -   
     8   - J( )
     9   - J( )
    10   - I( )
    11   - I( )
              ,  
     ,    -  
.
           -
    .   
    : INTEGER, REAL,
BOOLEAN  CHAR.

     8.5. 
            ,
:
     - DB  DW  DSEG E ;
     -          
.

                            71
                    2700560.00015-01 33 01

          9.    

     9.1.   
            
 @BDOS,        -
    - () [6]:

FUNCTION @BDOS(FUNC:INTEGER; PARM:WORD) : INTEGER ;
     FUNC     ;
     PARM   

         @BDOS     '  
.

     .
I:=@BDOS(5,WRD($0C));      
                            
                          LST:
CH:=@BDOS(3,WRD(0));            
                          RDR:

      @BDOS        
-,       -
  ,     IORESULT.

     9.2.     
            ,  
      -
,        
  80.     () [3] -

                            72
                    2700560.00015-01 33 01

         -
.

     FUNCTION @CMD :  

      @CMD      
80H        .
      ,     
      . 
 @CMD          
 .

     .
PROGRAM CNBUF;
   TYPE
     PSTR = ^STRING ;
   VAR
     S : STRING[16] ;
     PTR : PSTR ;
     F : FILE OF INTEGER ;
   EXTERNAL FUNCTION @CMD : PSTR ;
BEGIN
   PTR := @CMD ;
   S := PTR^ ;
   ASSIGN (F,S) ;
   RESET (F) ;
END.
             
     .

                            73
                    2700560.00015-01 33 01


         10.    

        2   -
 :
    1)     ;
    2)   .
     ,   , 
  .       
     @ERR.

     10.1.     
           
      -
  .      
   "$R" (. 5.5.).  -
    .
             ,
         
       
 @  @ERR.   ,    
    ,    
     ,  -
 .    -
         -
 .

                            74
                    2700560.00015-01 33 01


     10.2.   
        , 
       "$+" (
5.6.).       -
 @ERR   ,      
  .        
   "$-",   -
   ,  ,  -
  :      -
    ,    
    ,  
.
         (..     -
    ,      )
    0.0   
 @ERR.   @ERR   
    .    -
          
    @ERR,   -
 .    ,   
    .

     10.3.  ,  
          -
 @ERR,         
.        
 :

 PROCEDURE @ERR(:BOOLEAN;  :INTEGER);

                            75
                    2700560.00015-01 33 01


        @ERR    -
 ,     -
.    ""  FALSE, -
   .      ""
 TRUE,    
   .

      " "   :

       1 -    0;
       2 -   ;
       3 -   ;
       4 -     ;
       5 -   ;
       6 -  .

                            76
                    2700560.00015-01 33 01


       11.   

          -
,   .        
         
  .     -
 3       .    -
-   "MODULE",      "PROGRAM",
 3          .
 -     "PROGRAM",    
    16  -
,       .
    16    
.
            -
    (SP)   -
  @INI,        INPUT  
OUTPUT      
(     "$S+").

                            77
                    2700560.00015-01 33 01


                

     1.   .
     2. . . 
     3.   CP/M-80.
     4.   CP/M-80  -
   
     5. .   .
     6.   CP/M-80.  -
    -.
