. 22
.    2. ଠ  CRL- 㭪権. ஡  CRL- ଠ
.   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-02 FF  ) ᤥ .
 㭪樮  䠩  ᮮ⢥騩 室  ,
ᮤঠ騩   ( 8 ᨬ,  ⠭  1 訬 ⮬
᫥  )  塠⮢    䠩 ( 㫥
 ⭮⥫쭮 ,  ⮬   뤥  0000-01 FF.
  0200-0204 १ࢨ஢, ⮬ 訬  ᮬ 樨
 0205).

   ᫥ 室   㫥 (0 X80),  ᫥饥 ᫮ 㪠뢠
 ᫥騩 㯭   䠩. ⥫   ⠢ ᫥
䨧᪮   㭪樮쭮  䠩, ⮡ ࠢ 
᫥饣   ࠭ (᪠, 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- ᥪ  祭 0 XBD,  ᫨  樨 뫠
ᯮ짮  - 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,  ࠧ饭
 ⭮⥫ ᠬ 0 X22, 0X34, 0X4F   0 X61,  㤥  ᫥騩
ᯨ᮪ ६饭:

     04 00   23 00   35 00   50 00   62 00
.

.   . ଠ  CRL- 㭪権.   ⮪ 痢 ணࠬ

 2.3  । ॣ஢  ᮣ襭  맮 㭪権   BDS-C


 2.3.1   ⥪

    㬥, । 뢠 㭪樨, ⠪   
(⮬᪨) ६,  믮 ᯮ  ⥪.


 2.3.1.1  ⥫ ⥪

   ⥫ ⥪ ॠ ॣ஬  SP   ⠭  믮
  㯭 짮⥫  .   O   
室  뤥 ,   権,   ।஢.
 㬮砭, 㪠⥫ ⥪ 樠  砫  BDOS CP/ ,  
,   CCP;  ᫥ 믮 ணࠬ 訢 稩  
饭  CCP   . ᫨   -,     祭
樠  SP.  ᫨ ᯮ짮  - N,    SP  ⠭ 
砫  CCP,    ࠢ  㬮砭 㬥蠥  2 K  ⥪ , 
  ᫥ 믮   ஢  祣
.


   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 ( ᫨ ).
.

.    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   ࠦ  ᮢ.
.

.    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  ᮮ⢥⢥  㧪,
      ࠭     譨  楫 ணࠬ.
              .
