.PN 22
.HE   2.  CRL-.  CRL-
.FO  BDS-C .                        #
                        2   
                 -------------          

     CRL-    


 2.1  


          , 
        
-.    CRL-   
  CRL- ,     CLINK  
.        -, 
   ,    .


 2.2   CRL-


       BDS-   , 
CASM.C,    ASM  DIGITAL RESEARCH.  
      CSM- ( 
    ,    CMAC.LIB 
  1.46),      CSM- 
 ASM-   ASM.COM. SUBMIT- CASM.SUB  
     .

      CRL-     
,    CASM  ASM   CRL-,   
  CRL-   . ,  ...


   2.2.1  CRL-


      CRL- (   DDT  SID 
 ,     0100-02FF )  .
        ,
   ( 8 ,    1  
  )       ( 
  ,       0000-01FF.
 0200-0204 ,     
 0205).

        (0X80),   
     .     
     ,   
    (, 16 ),      
  .

   :  CRL-    :

                     

         FOO            0X137
         YIPEE          0X2C5
         BLOD           0X94A

        :

   46 4 CF 05 02 59 49 50 45 C5 50 03 42 4C 4F C4 20 06 80 70 0F

   F  O  O' NN NN Y  I  P  E  E' NN NN B  L  O  D' NN NN   


 
 2.2.2        


        CRL- (  0200-0205
  )  ,   CLINK 
   (      - CC)  
     .   
    CRL-,   CRL-    
.

     5-    0XBD,    
  -E      ,  
  .      ,  
  -,    .

       5-      
   (    ). CLINK  
         (.. CRL-,
  MAIN) .  CRL-    
  .



 2.2.3   


      CRL-   ',
     ,  
      .

      -,    
     CRL- (  , 
CLIB     ).

     :

         
        
       
        


 2.2.3.1    


          ,   
    .     (
  ),        .
   .   (    
 )     .

    , ,   FOOBAR   PUTCHAR,
GETCHAR  SETMEM.  ,  FOOBAR,  :

   47 45 54 43 48 41 D2 50 55 54 43 48 41 D2 53 45 54 4D 45 CD 00

   G  E  T  C  H  A  R' P  U  T  C  H  A  R' S  E  T  M  E  M' 


 2.2.3.2   


      ,    ( )
,    .      
 .


 2.2.3.3  


       8080-,  
 .

       ,      
.    N ,     
(  N  JMP 0000)     (
 JMP   ).


 2.2.3.4   


        ,  
(  ),       ,
   . CLINK   ,  
 ,         .

            
.     N     
2*N+2 .  ,     JMP, 
   0X22, 0X34, 0X4F  0X61,   
 :

     04 00   23 00   35 00   50 00   62 00
.PA
.HE  .  CRL-.     
 2.3          BDS-C


 2.3.1  


    ,   ,    
() ,     .


 2.3.1.1   


       SP    
     .  O  
   ,   ,   .
 ,      BDOS CP/,  
,  CCP;       
 CCP  .    -,     
 SP.    -N,  SP  
 CCP,        2K  , 
        
.


   2.3.1.2   


         ()
,  ,     
,     ,     
     . 

           
 ,      ,         
       .
 
             N , 
          

             TOPOFMEM()-ENDEXT()-(N+FUDGE) 

  FUDGE  500   . TOPOFMEM  ENDEXT
  ,  , , 
    ( )   ,
     .  ENDEXT  
    ,    /
   .


 2.3.2   


         
 ,         
  .


 2.3.3       


     -  ,   
    :  BC  ,  
     ( SP    
)     SP  BC    
   .     SP  BC 
    SP  ,   SP, 
  ,     
.

   ,    BC     
 .

    ,     NLOCL  
.    BC, SP   NLOCL   
BC (  ),   ,  
 LOFFSET,      

                 (BC)+LOFFSET

       ,   N-  
    

                 (BC)+NLOCL+2+2*N

 N=1   , N=2     ..  
   ,        
   ,      
  .     BC,   
 ,   16-    SP   
 :  BC      .
,    ,      
. ,   ( ) 
  16-  (  ,  
)   .

      (  )   
    NLOCL  SP,  BC 
 ,     .

          
SP ,       ;
     ,     
 ,      ( , 
  PRINTF,     ).

       :

 1.      ( -, 
     -)

 2.   ,         
        HL  DE (   
     DE     HL). BC MO  
      ,  ,  ,   
      BC,  .    
     ,       ,  BDS-C.
 
 3.    :  SP  ,   
      ,    HL (
       ).   
          POP D  
       .

      () :

 1.  BC,        .

 2.    ,      
      SP    .

 3.  ,     SP  BC  
    BC      .   ,  
    BC   1.

 4.   .

 5.        SP  
    .

 6.    BC   (   
     1).

 7.         HL ( ).
.PA
.HE   2.  CRL-.   C.CCC
 2.4     C.CCC


        ,             
   .    3 :
   ,  ,   
.


 2.4.1       


      6      8  16-
',      BC   
 ,     8  16- . 
,   16-   , 
  EOFFSET      ,  
  (     EXTRNS):

           LHLD  EXTRNS
           LXI   D,EOFFSET
           DAD   D             ;  1-  
           MOV   ,           ; 1- 
           INH   H             ;  2-  
           MOV   H,M           ; 2-  ()
           MOV   L,A           ; 1-  ()

         

           CALL  SDEI
           DB    EOFFSET

        ( 4   11).  
EOFFSET  255,   SDEI    LDEI 
DW EOFFSET.   CCC.ASM     
  .


 2.4.2    


          
    HL  A (    L  ,  -
  ).  : ,     
 ;    MA1TOH     HL  A.
MA1TOH (  "MOVE ARGUMENT 1 TO H")   16- 
,    SP+2 (  SP, KAK   
).  MA2TOH   .     
BC     ,      
 2 ,     MA2TOH    , MA3TOH-
     .. ,   
      .

                  
 ARGHAK,        BC 
- . ARGHAK   7     
 14-    (   .),    
     LHLD.       
 ,   ARGHAK   , 
      .

     ARGHAK       
ARG1, - ARG2,  ..     BDS.LIB.


 2.4.3     


          .
  ,   HL  DE,     HL.
        .   
  (CCC.ASM)    .


 2.4.4   


   CCC.ASM     ,  
  .   BDS.LIB   
    . ( .ASM).   CSM-
   #INCLUDE <BDS.LIB>. TAK        
         .  
  .ASM   ,   
 BDS.LIB    .
.PA
.HE   2.  CRL-.     
 2.5        


    BDS-C     CP/M,   
       (0100)     CCP.
           1500
   ,    (  
)    .

        ,    .
   ,        , :

       )   
       )    
       )  - .

       :

  1.      (CCC.ASM), 
      .        CP/M, TO
       EQU  ,    
       CP/M        
     .    CP/M   CP/M-
         , ,     ,
       ,     .  
       EQU          
           .

  2.   CCC.ASM     LOAD  
        CCC.HEX,       
     TPA (  ).     , 
      DDT  SID      ,     
      TPA,       SAVE   
         C.CCC.     CCC.ASM (
     M  CCC.COM  )   C.CCC.

  3.   BDS.LIB ,     
     CCC.ASM.       
     BDS.LIB  BDS.ASM,    BDS.PRN  CCC.PRN.

  4.  CASM,     (DEFF2A.CSM,
     DEFF2B.CSM, DEFF2C.CSM),  CRL-.    
         CP/M, TO , ,    ,
       CP/M,   . ,    
           -  
      DEFF2C.CSM.

  5.   CC       
       -M       
       (    0100).  -  
      STDLIB1.C  STDLIB2.C   -,    CLINK 
      DEFF.CRL, '   STDLIB1.C  STDLIB2.C

  6.   -L, -T  -E,  CLINK   ,
              .

  7. BURN THE PROMS !      