          ᥬ  IBM PC.  21                             1


          
           21
          ------------------------------------------------------------
          
           ணࠬ
          
          :  孮 ணࠬ஢,  
            믮 ᥬ ணࠬ.
          
          
          ------------------------------------------------------------
             
             ਬ ணࠬ   ।  﫨   
          蠣 ᥬ஢.  ,  , 믮 ணࠬ
            ,  饣    ᪮쪨  ᥬ஢
          ணࠬ.   ⮬ 砥 ணࠬ   ᬠਢ, 
               ᭮  ணࠬ           
          ணࠬ.  稭 ⠪ ࣠樨  ணࠬ   
          ᫥饬:
          
              뢠 室 ᪮ ணࠬ, ᠭ 
               ࠧ 몠, ਬ,  ꥤ 魮 몠
               ᮪ ஢  䥪⨢ ᥬ;
              ணࠬ,  ᠭ        ,  
                ᫨誮 让  ᥬ஢;
              ⤥   ணࠬ    ᠭ ࠧ묨
               㯯  ணࠬ⮢,   ᥬ  ᢮  㫨
               ࠧ쭮;
                  讣  ࠧ 믮塞 ,
                     室   ४   ⥩
               ணࠬ   믮.
             
               ணࠬ  ᥬ  ⤥쭮   
          ᮡ⢥  㭨  ꥪ  (OBJ)  . ணࠬ
          騪 (LINK)  ⥬  ꥪ 㫨   
          ꥤ  믮塞  (EXE)  .  筮 믮
          稭   ᭮ ணࠬ,   뢠  
            ணࠬ.  ணࠬ,    ᢮  ।,  
          뢠 㣨 ணࠬ.
               .21.1   ਬ ᪮ 
          ᭮ ணࠬ    ணࠬ.   . 21.1 ()
          ᭮ ணࠬ 뢠 ணࠬ  1,  2  3.  .
          21.1  ()  ᭮ ணࠬ 뢠 ணࠬ 1  2, 
          ணࠬ 1 뢠 ணࠬ 3.
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                    .21.1.  ணࠬ.
             
                ࠧ⥩ ࣠樨 ணࠬ,
            ࣠    "⭠"   ᥬ, 
          騪,   ⠯ 믮.   ⥫
             ,  ,  ਬ,   ணࠬ  1 뢠

          
          ᥬ  IBM PC.  21                             2


          ணࠬ 2,  뢠 ணࠬ 3 ,  
          ᢮   ।  뢠  ணࠬ   1.    ,
            ४,  ᯮ짮  ࠪ⨪, 
           ⭮  饭  맢   訡
           믮.
          
           
          ------------------------------------------------------------
             
               CALL    ।    ᯮ짮  
          ᥣ  맮,  ..   맮   
          ᥣ.  ᥣ  CALL      ⪨  (
          ।    +127   -128  )   ( ॢ騩
          㪠  ࠭).    १  ⠪ 樨 "஥"
          祭  ॣ IP   ⥪,  "" 
          室 㦠   ॣ.
             ਬ,  ᥣ  CALL     ᫥騩
          ꥪ  :   E82000.  .E8  ।⠢  ᮡ  
          樨,    2000   ⭮⥫쭮 
          0020   ॣ IP. ⥬  ꥤ ⥪騩 
           ॣ  CS    ⭮⥫      ॣ  IP 
          祭  ᫥饩 믮塞 .  
            楤  RET  ⠭    ⥪ ஥
          祭  ॣ  IP  । ࠢ  ⠪ ࠧ
           ᫥ ᫥ CALL .
             맮  㣮  ᥣ  ।⠢ ᮡ ᥣ
           ()  맮.   ᭠砫 뢠
           ⥪ ᮤন ॣ CS     ॣ 
          㣮 ᥣ,  ⥬ 뢠  ⥪ 祭 ॣ
          IP    ⭮⥫    ॣ.
              ࠧ   ⥪      ᥣ
            ᬥ饭  ᫥饣   ணࠬ.
             ਬ, ᥣ CALL    ᫥饣
          ꥪ⭮ :
             
                              9A 0002 AF04
          
          .9A ।⠢ ᮡ   ᥣ⭮ 맮
           뢠 祭 0002    0200   ॣ IP,
           祭 AF04     04AF  ॣ  CS.  
          ᮢ 㪠뢠   믮塞   뢠
          ணࠬ:
             
                     ᥣ          04AF0
                    饭  IP             0200
                    ⢨⥫      04CF0
             
              室   맢  楤 ᥣ⭠ 
           REP ⠭    ॣ CS   IP
           ⠪ ࠧ । ࠢ  ᫥  ᫥ CALL
          .
          
           EXTRN  PUBLIC

          
          ᥬ  IBM PC.  21                             3


          ------------------------------------------------------------
             
             ᬮਬ   ᭮   ணࠬ   (MAINPROG),   
          뢠  ணࠬ  (SUBPROG)     ᥣ⭮
          CALL,    .21.2.
               CALL    MAINPROG    "",   SUBPROG
                ᥣ  (  ᥬ 뤠
          ᮮ饭  ⮬,   䨪 SUBPROG  ।). 
           ४⨢ EXTRN  㪠 ᥬ,  뫪
            SUBPROG    ਡ  FAR,  ..।    㣮
          ᥬ୮  㫥.       ᠬ  ᥬ     
            筮 ।  ⠪  뫪,   
          "⮩"  ꥪ   ᫥饣    
          :
             
                              9A 0000 ---- E
             
             ணࠬ  SUBPROG ᮤন  ४⨢ PUBLIC, 
          㪠뢠  ᥬ    騪,    㣮  
           ""    SUBPROG.   ᫥ 蠣,  
            MAINPROG   SUBPROG   ᯥ譮  ᥬ஢ 
          ꥪ  㫨,        ᪮ ᫥騬
          ࠧ:
             
              騪 LINK:  ⢥:
             
             Object Modules [.OBJ]:     B:MAINPROG+B:SUBPROG
             Run File [filespec.EXE]:   B:COMBPROG ( 㣮 )
             List File [NUL.MAP]:       CON
             Libraries [.LIB]:          [return]
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                    .21.2. ᥣ 맮.
             
             騪  ⠭  ᮮ⢥⢨    ᠬ
          EXTRN   ꥪ⭮ 㫥  ᠬ PUBLIC   㣮 
           室 ⭮⥫ .  ⥬  ꥤ
            ꥪ     믮塞.  
           ࠧ 뫪 騪 뤠 ᮮ饭  訡.
            ⨬ ᮮ饭ﬨ ०  祬   믮
          ணࠬ.
             
             ४⨢ EXTRN
             
             ४⨢ EXTRN  ᫥騩 ଠ:
             
                    EXTRN     :⨯ [, ... ]
          
           ।       (  ப) 
          ஢  ⥫    ४⨢  EXTRN.    㣮
          ᥬ୮  㫥    ᮮ⢥饥        
          ।  ஢  PUBLIC.   

          
          ᥬ  IBM PC.  21                             4


           ABS,  BYTE,  DWORD,  FAR,  NEAR,  WORD.    
          ।  १  EQU       㤮⢮  ॠ쭮
          । .
          
             ४⨢ PUBLIC
             
             ४⨢ PUBLIC 㪠뢠 ᥬ  騪, 
           㪠 䨪 㯥  㣨 ணࠬ
          ४⨢  ᫥騩 ଠ:
             
                    PUBLIC    䨪 [, ... ]
          
            ।      䨪  (  
          ப)    ஢  ⥫ ४⨢ PUBLIC.
          䨪      ⪠  (  PROC-⪨),
          ६묨     ᫠.  ࠢ묨  䨪ࠬ
            ॣ஢   EQU-䨪, ।騥
          祭   .
             ᬮਬ  ࠧ ᯮᮡ  ணࠬ.
          
          :   EXTRN  PUBLIC  
          ------------------------------------------------------------
             
             ணࠬ    .21.3  ⮨    ᭮  ணࠬ
          CALLMUL1     ணࠬ  SUBMUL1.    ᭮  ணࠬ
          । ᥣ   ⥪,     .   ᥣ
           ।    QTY    PRICE.     ᥣ
          ॣ AX  㦠  祭  PRICE,    ॣ  BX -
          祭 QTY,  ᫥  祣  ந室  맮 ணࠬ.
          ४⨢ EXTRN   ᭮ ணࠬ  । SUBMUL 
           室  ணࠬ.
             ணࠬ ᮤন  ४⨢  PUBLIC  (᫥ ASSUME),
           㪠뢠 騪,  窮 室  믮
            ⪠ SUBMUL.  ணࠬ 믮 㬭
          ᮤন ॣ  AX  (業)    ᮤন ॣ BX
          (⢮).   㬭 ࠡ뢠  ॣ
            DX:AX   . 002E 4000.
               ணࠬ  । -  , 
            ॡ  ᥣ .  ᫨  ணࠬ 
          ᥣ ,   ⮫쪮      ᯮ짮   ᢮
          .
               ணࠬ   ।  ⥪ ᥣ, ⠪
            ᯮ      ⥪ ,    ᭮
          ணࠬ.    ࠧ,  ⥪  ।    ᭮
          ணࠬ  㯭   ண௬.   
          騪 室  㦨    ࠩ      ⥪ 
          । ⥪  ᭮ ணࠬ  .
             ᬮਬ ⥯ ⠡  䨪஢, ࠡ뢠
          ᫥  ᥬ஢.  ,  SUBMUL
            ⠡  䨪஢    ᭮  ணࠬ  
          ਡ FAR  External  (譨),    ணࠬ -  F



          
          ᥬ  IBM PC.  21                             5


          (  FAR)   Global  ().    ᫥ ਡ
          㪠뢠,    㯭   ணࠬ, ..
          쭮.
               (   ⨭) ࠦ ࣠
          ணࠬ  .  ,     
          ᥣ (  ᥬ஢)   ࠧ묨 ⮢묨
          ᠬ.  ᫥⥫쭮 ᯮ  ᥣ⮢
          ᮮ⢥ ᫥⥫쭮  㪠    
          ꥪ  㫥  (筮  ᭮  ணࠬ 㪠뢠
          ࢮ).   ࠧ, ⭮⥫  砫 ᭮
          ணࠬ - .00000,  ணࠬ - . 00020.
          
          ------------------------------------------------------------
          ------------------------------------------------------------
               . 21.3. ᯮ짮 ४⨢ EXTRN  PUBLIC.
             
              ஢  믮  ணࠬ   㦨,
            CALL SUBMUL  ꥪ 
             
                              9A 0000 D413
          
          設   ᥣ⭮ CALL -  .9A.  
          ࠭  ⥪ ॣ IP    㦠     祭
          0000,  ࠭  ⥪ 祭 .13D2  ॣ CS 
          㦠    .D413.    믮塞 
          室    ॣ஢  CS:IP .. 13D40 
          0000.   ,   ᭮ ணࠬ 稭
              ॣ CS,  ᮤঠ饬 .13D2, .. 
          13D20.     ,  ணࠬ 稭
              ⭮⥫쭮   .0020.  뢠  
          祭, 稬 ⢨⥫   ᥣ 
          ணࠬ:
          
                           CS               13D20
                         饭  IP             0020
                         ⢨⥫      13D40
          
          騪 ।  祭 筮  ⠪  ࠧ,
           ⠢   ࠭  CALL.
          
          :   PUBLIC   
          ------------------------------------------------------------
             
             騩  ਬ  .21.4  ।⠢ ᮡ ਠ
          ணࠬ    .21.3.       ᭮
          ணࠬ      -    ணࠬ.       
          ४⨢ SEGMENT ᯮ ਡ PUBLIC:
             
                    CODESG    SEGMENT   PARA PUBLIC 'CODE'
          
          ------------------------------------------------------------
          ------------------------------------------------------------
               .21.4.  ᥣ, ।  PUBLIC.

          
          ᥬ  IBM PC.  21                             6


          
             ᬮਬ  १     ꥪ
            CALL.
               ⠡  䨪஢  (     ⨭
          ᥬ஢)  ᫥:  饭 ⨯  ᥣ
          CODESG - PUBLIC ( .21.3 뫮 NONE).   
           ,       ⨭ 뢠
           ⥯  ⮫쪮     ᥣ!   䠪,  
          ᥣ        (CODESG),   ('CODE') 
          ਡ PUBLIC, ⠢ 騪 ꥤ  
             ᥣ      䨧᪨   ᥣ.
          ஬  ⮣,    ஢  믮  ணࠬ  
          㦨,    ⥯   맮  ணࠬ 
          ᫥騩 ꥪ :
             
                              9A 2000 D213
          
              .2000   ॣ IP  .  D213 
          ॣ  CS.      ணࠬ  室    饬  
          ᭮  ணࠬ    ᥣ,      ॣ CS
          ⠭      ⮢    -  .D213. 
          ⥯ ᬥ饭 ࠢ .0020:
          
                           CS:              13D20
                         饭  IP:            0020
                         ⢨⥫ :    13D40
          
            ࠧ,    ᥣ  ணࠬ  稭,
          祢,      .13D40.  ࠢ쭮   ? 
                 ⢥      ,     
          ।     ⨭  ᭮  ணࠬ, 
          稢  ᬥ饭 .0016.    ᥣ
            ணࠬ  ।    SEGMENT,       
          稭    ࠭  ࠣ,  ..     
          楫     .10   ࠢ   
             ࠢ   0.   騪  ࠧ頥  ணࠬ  
          襩  ࠭ ࠣ ।⢥  ᫥ ᭮
          ணࠬ  -    ⭮⥫    ࠢ  .00020.
          ⮬   ᥣ ணࠬ  稭   
          13D20  0020  13D40.
          
           Ŀ
            ᭮ ணࠬ... ( ᯮ㥬  ணࠬ 
                                   ⮪)                      
           
                                                   
            13D20              13D30                13D40
          
          ᬮਬ,    ࠧ  騪  ᮣ  ,
          ।    ᭮  ணࠬ    騥  뫪  
          ணࠬ.
          
          :    

          
          ᥬ  IBM PC.  21                             7


          ------------------------------------------------------------
             
             稥   ।  ࠡ⪨ 
            ᥬ୮  㫥  ,    ।  
          㣮 ᥬ୮  㫥.   ।騩 ਬ ⠪,
          ⮡    QTY    PRICE  -०   ।﫨  
          ᭮ ணࠬ,   㧪 祭   ⥩ 
          ॣ BX  AX 믮﫠  ணࠬ.  ணࠬ
          ਢ  .21.5.    ᤥ ᫥騥 :
          
               ᭮ ணࠬ  QTY   PRICE  । 
               PUBLIC.      ⠪  ।   ਡ⮬
               PUBLIC.      ਡ  Global (
               )    QTY  PRICE  ⠡  䨪஢.
          
               ணࠬ  QTY  PRICE ।  EXTRN 
               WORD.   । 㪠뢠  ᥬ  
                    2  .    ᥬ ᣥ
               ࠢ   樨   MOV,   騪
               ⠭ 祭 ࠭. ,   QTY 
               PRICE  ⠡ 䨪஢   ਡ External
               (譨).
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                    .21.5. 騥   ணࠬ.
             
              MOV  ⨭ ணࠬ  ᫥騩 :
             
                         A1 0000 E      MOV  AX,PRICE
                         8B 1E 0000 E   MOV  BX,QTY
          
            ꥪ⭮    .A1  砥  뫪  ᫮ 
            ॣ AX,  .8B - 뫪 ᫮   
          ॣ BX (ꥪ   権   ॣ஬  AX 
          ॡ  襥 ᫮ ⮢,  祬    㣨 ॣࠬ).
          ஢    믮    ணࠬ    뢠,    
          騪 ⠭  ꥪ⭮  ᫥騥 ࠭:
          
                              A1 0200
                              8B 1E 0000
          
          ꥪ  ⥯ 祭  ᣥ஢  ।
          饬  ਬ,      MOV  室   뢠饩
          ணࠬ.    १, ⠪  ࠭  
            ணࠬ  ஢    ॣ   DS     
           ⭮⥫ .
             ᭮ ணࠬ  ணࠬ   । 
          㣨   ,    騬     騥
          ਡ PUBLIC  EXTRN.
               ᭮ ࠢ,  ᬮ७   ,
           ⥯  ணࠬ,  騥   祬 
           ᥬ  㫥    ᯥ稢     騬

          
          ᥬ  IBM PC.  21                             8


                㫥.   ⮬ ᫥ ।ᬠਢ
          ⥪  ࠧ஢ -  ࠧ㬭 ।,  
          ணࠬ । 64 ᫮  ⥪ 뢠 .
                 23  㤥  ᬮ७  ⥫ ᢮⢠
          ᥣ⮢,   ।   ᥣ 
            ᥣ   ᥬ୮ 㫥  ᯮ짮
           ४⨢ GROUP  ꥤ ᥣ⮢     騩
          ᥣ.
          
           
          ------------------------------------------------------------
             
             㣨 ᯮᮡ ᯥ祭 㯠      뢠
           ணࠬ  । ࠬ஢.  ⮬ 砥
          뢠  ணࠬ 䨧᪨ ।   १ ⥪.
            PUSH  뢠  ⥪  ࠧ஬
            ᫮     ॣ.
             ணࠬ,  ਢ   .21.6,  ० 祬 맢
          ணࠬ SUBMUL   ⥪ 祭   PRICE 
          QTY. ᫥  CALL ⥪ 룫廊 ᫥騬 ࠧ:
             
               ...  1600  D213  4001  0025  0000  C213 
                     6      5      4      3      2      1
          
          1.   樠  PUSH DS   ᥣ
                ⥪.     ⫨    ࠧ 
               DOS.
          2.    PUSH AX   ⥪ 㫥 .
          3.    PUSH PRICE   ⥪ ᫮ (2500).
          4.    PUSH QTY   ⥪ ᫮ (0140).
          5.     CALL     ⥪  ᮤন  ॣ CS
               (D213)
          6.      CALL  ।⠢   ᥣ
               맮,   ⥪  ⠪ ᮤন ॣ IP
               (1600).
             
             뢠 ணࠬ ᯮ ॣ BP   㯠 
          ࠬࠬ   ⥪,    ०     ᮤন
          ॣ  BP,   뢠      ⥪.      砥,
          ।,    ॣ BP  ᮤন  , ⮣ 㫥
          ᫮ 㤥 ᠭ  設 ⥪ (᫥).
             ⥬  ணࠬ  頥    ॣ  BP  ᮤন 
          ॣ SP,  ⠪    ⢥  ᭮ ॣ 
          ᯮ짮  ॣ BP,     SP.   㦠 
          ॣ BP 祭 0072.  ࢮ砫쭮 ॣ SP ᮤঠ
          ࠧ ⮣ ⥪,  ..  .80.   ᫮ 
          ⥪ 㬥蠥 ᮤন SP  2:
             
                     0000  1600  D213  4001  0025  0000 C213 
                                                          
               SP:     72     74     76    78     7A     7C    7E
             


          
          ᥬ  IBM PC.  21                             9


               BP ⥯  ⠪ ᮤন 0072,   ࠬ 業
          (PRICE)  㤥   BP+8,  ࠬ ⢠ (QTY) -
            BP+6. ணࠬ 뫠  稭  ⥪ 
          ॣ AX  BX ᮮ⢥⢥  믮 㬭.
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                         .21.6. । ࠬ஢.
             
             । ⮬    뢠  ணࠬ    ॣ BP
          ⠭ ࢮ砫쭮  祭,    ᮤন 
          ॣ SP 㢥稢  2,  72  74.
             ᫥     RET   ।⠢  ᮡ  ""
            뢠 ணࠬ.   ⮩  믮
          ᫥騥 ⢨:
          
               設 ⥪ ⠭ 祭 ॣ IP
               (1600).
              ন ॣ SP 㢥稢  2,  74  76.
                  設   ⥪  ⠭  祭
               ॣ CS (D213).
              ন ॣ SP 㢥稢  2  76  78.
             
              ࠧ ⢫ ४   뢠
           ணࠬ.  ⠫    讥 ᭥. 
          RET ஢ 
             
                              RET  4
             
             ࠬ 4 ।⠢ ᮡ ᫮   ⥪ ᯮ짮
            । ࠬ஢  ( ᫮   砥).
            RET ਡ   ࠬ   ᮤন ॣ
          SP, 稢 祭 7C.  ࠧ,  ⥪ ᪫
          㦭   ࠬ.   ᮡ ⥫ 
          ⠭ ॣ SP -  訡  ਢ  ।
          ᪠㥬 १⠬.
          
             BASIC-  
          ------------------------------------------------------------
             
              㪮⢥   BASIC  IBM PC ਢ ࠧ
            ⮤  裡   BASIC-      ணࠬ  
          ᥬ.  ⮣   稭: ᤥ 
          ᯮ짮 BIOS-뢠  १  ᥬ  㫨 
          ᮧ  䥪⨢ ணࠬ.    ࠧ -
            騩        ;     
          孨᪨  ஡   㪮⢠    BASIC 
          室.
               裡    BASIC  ᥬ  ணࠬ ,
          ࠭᫨   ⤥쭮.  뤥   
          ணࠬ  設  몥     , 
           64  ⮢  ,  ன  ࠭祭 BASIC.
          롮   ணࠬ.

          
          ᥬ  IBM PC.  21                            10


               ᯮᮡ 㧪 設    :
          ᯮ짮  몠 BASIC -  POKE   ꥤ
          ᪮   BASIC-ணࠬ.
             
             ᯮ짮 BASIC- POKE.
             
                ᠬ ⮩ ᯮᮡ,    㤮 ⮫쪮 
          祭 ⪨  ணࠬ.  ᮡ 砥   ⮬, 
          ᭠砫 । ꥪ  ᥬ୮ ணࠬ 
          LST-䠩    ⫠稪  DEBUG.  ⥬ ⭠
           祭  ।⢥  BASIC-ணࠬ
             DATA.  ᫥  ⮣    BASIC-
          READ 뢠     ஬ POKE   
            믮.
             
              ᥬ 㫥.
             
               訬  ᥬ묨  ணࠬ  筮  
           ,      ࠭᫨஢    ᪮ 
          믮    (EXE)    㫨.    室    ࣠
          BASIC-ணࠬ  믮   ࠡ ணࠬ. 
          ࠡ  BASIC-ணࠬ  뢠 짮 
          BSAVE  (BASIC save)   ࠭ ணࠬ   BLOAD - 
          㧪  । 믮.
             ०  祬 ஢  BASIC-   ᥬ ணࠬ,
          室 ,    ᯮᮡ   易.
           몥 BASIC   ᯮᮡ:  㭪 USR   
          CALL.     ᯮᮡ  ॣ  DS,  ES    SS   室
          ᮤঠ 㪠⥫    ᭮  ࠭⢮  । BASIC.
           CS ᮤন ⥪饥 祭, । ᫥
          ஬ DEF SEG (᫨  ).  ⥪ 㪠⥫ SP
          㪠뢠  ⥪,  騩 ⮫쪮  쬨 ᫮, ⠪ 
           ॡ ⠭ 㣮  ⥪  ணࠬ.
           ᫥ 砥  室    室 ࠭ 祭
          㪠⥫ ⥪饣 ⥪,    室  ⠭ . 
              室  室  ⠭ 祭
          ᥣ ॣ஢  SP   ᯥ      BASIC 
           ᥣ⭮  RET.
               ᥬ஢ ꥪ  䠩 ⠪, 
              室         .    ⮣
          ᯮ ࠬ HIGH  ⢥  ன  
          騪,  ਬ,  B:/HIGH.  ⥬    ⫠稪
          DEBUG 室 㧨 EXE-ணࠬ      R
          । 祭  ॣ CS   IP:   뢠 
          ⮢  ணࠬ.  室   ⫠稪 㪠
           ( N) BASIC  㧨   L.
              ᯮᮡ 裡  BASIC-ணࠬ    EXE-ணࠬ -
          ᯮ짮 ஢ USR  CALL.    ⫠稪,
          室 ।  ⮢    EXE-ணࠬ ,
          ⥬, 㪠      USRn   CALL. 
          㪮⢥   BASIC  IBM PC  ⠫쭮 ।⠢
          ᠭ  㭪樨  USRn        CALL    ࠧ묨
          ਬࠬ.

          
          ᥬ  IBM PC.  21                            11


             
             ணࠬ:  BASIC  ᥬ.
             
             ᬮਬ  ⥯  ⮩  ਬ   ணࠬ
            BASIC-   ணࠬ    ᥬ. 
          ⮬  ਬ  BASIC-ணࠬ   訢    祭
          ६  業   뢮    ࠭    ந -
          ࠧ  ௫.    FOR-NEXT  ᯥ稢  ⨪⭮
          믮   ⥬ ணࠬ 蠥.  BASIC-
          ணࠬ  뢠  ᥬ  ,    頥
          ࠭.
              .  21.7 ਢ 室 BASIC-ணࠬ  ᥬ
          ୠ   ணࠬ.    ᫥騥 ᮡ
           BASIC-ணࠬ:   10 頥 32  ;
           20, 30, 40  50 ६ ᮤঠ ਨ.
               ⠢ BASIC-  裡  ᥬ
          㫥.  BASIC-ணࠬ    ࠧ  ஢.  
           BASIC  ⥬   ஭㬥஢ 
          ⠪,       ਬ.   믮 ணࠬ
           F2.    ࠭ ⥪ ணࠬ   
          
                         SAVE "B:BASTEST.BAS"
             
                  ᫥騥 ᮡ ᥬ୮
          ணࠬ:
             -  । ⥪, ⠪   ᯥ稢
          BASIC;  ணࠬ  ।ᬮ७  ⤥쭮 믮
              믮;
             - ணࠬ ࠭  ⥪ ᮤন ॣ BP 
          뢠 祭 ॣ SP  BP;
             -  ணࠬ 믮  ࠭,    
               믮  㣨  権,  ⠪ 
          ப⪠ ࠭     ⠭ .
          
          ------------------------------------------------------------
          ------------------------------------------------------------
               .21.7. ᭮ ணࠬ  몥 BASIC
                          ணࠬ  ᥬ.
          
                ⠫  -    易   ணࠬ .
          騥 ⢨ ।,  ⥬ ᪥ (DOS)
          室  ᪮ A,  ࠡ稥 ணࠬ -  ᪮
          B:
          
          1.     ᥬ  ணࠬ,  ࠭  
                B:LINKBAS.ASM  ࠭᫨ .
          2.   ᯮ  騪   LINK,  ᣥ  ꥪ
               ,    㤥  㦠    訥 
               :
                         LINK B:LINKBAS,B:LINKBAS/HIGH,CON;
          
          3.     ⫠稪 DEBUG 㧨 BASIC - :
               DEBUG BASIC.COM.

          
          ᥬ  IBM PC.  21                            12


          4.      ⫠稪 R  뢥    ࠭ ᮤন
               ॣ஢.  祭  ॣ SS, CS  IP.
          5.      ⠭       㧨  ᪮
               ᥬ  ᫥騬 :
          
                              N B:LINKBAS.EXE
                              L
          
          6.     R  뢥  ࠭ ᮤন  ॣ஢ 
                祭  CX, CS  IP.
          7.    ᮤন ॣ஢ SS, CS  IP 祭ﬨ 
               蠣 4. ( ⮣ 㦠  R SS, R CS  R IP).
          8.      ⫠稪 G (go)   । ࠢ
                  BASIC.    ࠭       
               BASIC-ணࠬ.
          9.    ⮣,  ⮡ ࠭ ᥬ , 
               ᫥騥  ( ஢ ஢):
          
               DEF SEG = &Hxxxx (祭  CS  蠣 6)
               BSAVE "B:CLRSCRN.MOD",0,&Hxx (祭  CX  蠣 6)
          
               ࢠ   ᯥ稢    㧪   
                  믮.     
                ,  ⭮⥫  室  ࠧ .
                ன  ⥬    ᪮ B.
          10.    室  ஢  BASIC-ணࠬ 
               .     㧨    ࠧ,  室  
               ⫠稪,    ⮣   SYSTEM 
               室    BASIC ,  ⥬,   Q    室 
               ⫠稪 DEBUG.  ࠭   ਣ襭
               DOS.
          11.      BASIC,  㧨  BASIC-ணࠬ  
               뢥   ࠭:
          
                              BASIC
                              LOAD "B:BASTEST.BAS"
                              LIST
          
          12.    20, 30, 40  50 ᫥騬 ࠧ:
          
                    20   BLOAD "B:CLRSCRN.MOD"
                    30   DEF SEG = &Hxxxx (祭  CS  蠣 6)
                    40   CLRSCRN = 0      (窠 室  ணࠬ)
                    50   CALL CLRSCRN     (맮 ணࠬ)
          
          13.  ᬮ,  믮   ࠭   BASIC-
               ணࠬ.
             
             ᫨ BASIC-ணࠬ  ᥬ   뫨 
          ࠢ쭮,   ⠪ ࠢ쭮  ⠭ ⭠
          祭   ॣ஢,   易 ணࠬ  ࠧ
           ࠭  뤠     ६   業.


          
          ᥬ  IBM PC.  21                            13


            .21.8  ਢ  ⮪   蠣  -  
          祭      ⫨      ᨬ     ᨨ
          樮 ⥬  ࠧ .
             ਢ ਬ  ࠭  ७   ⮫쪮 
          樨  .    ᯮ짮  ᫮
          孮, ᯮ । ࠬ஢  BASIC-ணࠬ
           ᥬ ணࠬ   
             
                    CALL ணࠬ (ࠬ-1,ࠬ-2,...)
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                    .21.8. ⠯ 裡 BASIC  ᥬ.
          
             ᥬୠ  ணࠬ       ⨬
          ࠬࠬ,  ᯮ  ॣ  BP      [BP],   
            ࠭    .21.3.     ⮬  砥  室
          ।  ࠭      RET,  ᮮ⢥騩 
          ᮢ  ࠬ஢   ⥪.  ਬ,  ᫨  CALL
          ।  ࠬ      ஢ 
           RET 6.
          
              PASCAL  
          ------------------------------------------------------------
             
                ࠧ ,      ⠭ 
           ணࠬ   몥 PASCAL    IBM   MicroSoft 
          ணࠬ  ᥬ.  .21.9 ਢ ਬ 裡
          ⮩   PASCAL-ணࠬ     ᥬ୮  ணࠬ.
          PASCAL-ணࠬ  ᪮஢    祭 OBJ-,
           ᥬୠ ணࠬ ࠭᫨஢ ⠪  祭
          OBJ-.  ணࠬ LINK  ⥬     
          OBJ-   믮 EXE-.
              PASCAL-ணࠬ ।  ६:  temp_row 
          temp_col,   ᮤঠ     祭
          ப   ᮮ⢥⢥.  ணࠬ  । 
          ६   temp_row     temp_col       ࠬ஢  
          ᥬ  ணࠬ    ⠭     ⨬
          न⠬.    PASCAL-ணࠬ    ।   ⠪   
          ᥬ୮   ணࠬ         procedure  
          move_cursor     ।      ࠬ,     extern
          (譨).      PASCAL-ணࠬ,   뢠
          ᥬ ணࠬ      । ଥ, 
          ᫥騩 :
                         move_cursor (temp_row, temp_col);
             
             १ ⥪ । ᫥騥 稭: 㪠⥫ 
          뢠饩   ணࠬ,   㪠⥫     ᥣ  ,
          ᬥ饭         । ࠬ஢.
            ᬥ饭     ⥪:
             
                    00   ⥫  뢠饩 ணࠬ
                    02   ⥫ ᥣ 

          
          ᥬ  IBM PC.  21                            14


                    04   ⥫ ᬥ饭 
                    06    ண ࠬ
                    08    ࢮ ࠬ
             
                 ᥬୠ  ணࠬ  㤥  ᯮ짮
          ॣ  BP,       室  ࠭    ⥪  
          ᫥饣   ⠭         뢠
          PASCAL-ணࠬ.   ,      蠣    뢠
          ணࠬ 祭 ।饬 ਬ  .21.6.
          
          ------------------------------------------------------------
          ------------------------------------------------------------
                    .21.9.  PASCAL-ᥬ.
             
              SP  筮     ⥪.   ⠪ 
            ॣ    ᯮ짮    ⢥  ᭮
          ॣ,   ᫥ ࠭ ண 祭  ॣ BP
          室  ᫠    ॣ  SP   BP.  蠣
               ᯮ짮  ॣ   BP     ⢥
          ᭮ ॣ  㯠  ⠬  ⥪.
             騩 蠣 -    ᠬ  ࠬ஢
           ⥪.  । ࠬ ( ப) 室
           ⥪   ᬥ饭  08,     ᮢ   BP+08.
          ன । ࠬ ( ⮫) 室  ⥪
           ᬥ饭 06    ᮢ  BP+06.
                  ⥪      ।     
           ॣ஢ BX,  DI  SI.     ਬ 
          ப  뫠    [BP+08]    ॣ  SI,    ⥬
          ᮤন  [SI] (祭 ப)  뫠  ॣ
          DH.
             祭  ⮫  뫠    ᯮᮡ  
          ॣ DL.  ⥬ ணࠬ ᯮ 祭 ப 
          ⮫  ॣ DX  맮 BIOS  ⠭ .
           室 ணࠬ ⠭ ॣ  BP. 
          RET  ࠭, 祭 ண   ࠧ  ᫠
          ࠬ஢,      砥 22,   4. ࠬ ⮬
          ᪨ 뢮  ⥪  ࠢ  室  뢠
           ணࠬ.
             ᫨  ணࠬ ।⮨  ᥣ ॣ
           室 ࠭  祭   PUSH  室
           ⠭  POP  室.   ⠪ ᯮ짮
           ⥪  । 稭  ணࠬ   뢠
          ணࠬ.    ᬮ७  ணࠬ   頥
          -  祭,    몥  PASCAL  ।, 
          ணࠬ 頥  ᫮  ॣ AX   
          ᫮  ॣ஢  DX:AX.
               १      ணࠬ 㤥 ஥
             ,      ன       PASCALL
          ।⠢ PASCALL-ணࠬ,  ன  CODESEG (
          ᥣ ) ।⠢ ᥬ ணࠬ. 
          ᫥  ᪮쪮  ணࠬ    PASCALL-ணࠬ. 
          쭮   ਢ쭠   ணࠬ       १


          
          ᥬ  IBM PC.  21                            15


          .5720      -    20.  騥 모
          筮  ꥪ   ⥫쭮 ॢ騥 
          ꥬ ࠧ 㥬 ணࠬ.
             
              C  
          ------------------------------------------------------------
             
             㤭   ᠭ  裡   ணࠬ     몥   C  
          ᥬ ணࠬ  ⮨  ⮬,    ࠧ ᨨ
          몠 C  ࠧ ᮣ襭       筮
          ଠ樨 ᫥  짮  㪮⢮   饩
          ᨨ 몠  C.   ਢ   ᮮࠦ,
          ।⠢騥 :
          
              設⢮  ᨩ  몠   C   ᯥ稢  ।
               ࠬ஢  १  ⥪    ⭮  (  ࠢ  
               㣨  몠)  ᫥⥫쭮.  筮  ,
               ਬ,     ࠬࠬ, । १ ⥪,
               ⢫ ᫥騬 ࠧ:
          
                              MOV  ES,BP
                              MOV  BP,SP
                              MOV  DH,[BP+4]
                              MOV  DL,[BP+6]
                              ...
                              POP  BP
                              RET
          
               ᨨ 몠 C ࠧ ய  
               㪢,  ⮬   ᥬ୮     
               ।⠢    ⮬    ᨬ쭮  ॣ,  
               ᯮ  뫪 C-ணࠬ.
          
                  몠  C  ॡ,  ⮡ ᥬ
                ணࠬ,  騥 ॣ DI   SI, 
                 ᮤন  ⥪   室   ⠭
                祭  ⥪  室.
          
              ᥬ ணࠬ   祭, ᫨
                 室,    ॣ  AX  (  ᫮)   
               ॣ஢  DX:AX ( ᫮).
          
                   ᨩ  몠   C,  ᫨  ᥬୠ
               ணࠬ ⠭ 䫠 DF,    
                 CLD । ⮬.
          
             
          ------------------------------------------------------------
          
                 ᭮   ணࠬ,    뢠饩   ணࠬ,
               室  ।    室    EXTRN,    
               ணࠬ -  PUBLIC.
          

          
          ᥬ  IBM PC.  21                            16


               ⥫    ᯮ짮  ४ᨩ, 
               ணࠬ 1  뢠 ணࠬ 2,   ᢮
               । 뢠 ணࠬ 1.
          
              ᫨  ᥣ  室  ᪮   
               ᥣ,    室  ।     묨
               , 묨 ᠬ  ਡ⮬ PUBLIC.
          
                 ணࠬ஢  稭  믮 
               ᭮  ணࠬ.
          
              ।      ᭮  ணࠬ 筮
                (  易⥫쭮).  ᭮ ணࠬ ।
                 騥      PUBLIC,     ணࠬ  (
               ணࠬ) -  EXTRN.
          
            
          ------------------------------------------------------------
          
          21.1. ।,   ணࠬ MAINPRO  맢 
                ணࠬ  SUBPRO.  )    ४⨢    ணࠬ
                MAINPRO 㪠뢠 ᥬ,    SUBPRO ।
                     ᮡ⢥  ?  )   ४⨢ 
                ணࠬ SUBPRO  室    ⮣,  ⮡ 
                窨  室   뫮  㯭     ᭮  ணࠬ
                MAINPRO?
          
          21.2. ।,        ணࠬ  MAINPRO  ।
                ६ QTY   DB,  VALUE  DW  PRICE   DW.
                ணࠬ SUBPRO    ࠧ VALUE   QTY 
                 ⭮   PRICE.  )  ࠧ ணࠬ
                MAINPRO  㪠뢠  ᥬ,       ६
                    㯭   ᭮  ணࠬ? )
                    ࠧ    ணࠬ    SUBPRO   㪠뢠
                ᥬ,     ६  ।   㣮
                㫥?
          
          21.3.  ᭮ ᮢ 21.2  21.3 ன ࠡ
                ணࠬ  ஢ .
          
          21.4.   ணࠬ  ।饣   ⠪, ⮡
                ணࠬ  MAINPRO ।    ६, 
                ࠬ.   ணࠬ  SUBPRO     
                १ १ ࠬ.
          
          21.5.   । ࠦ,   ஥ ॡ
                  ६.   ॡ    ணࠬ  
                 21.4  ⠪,  ⮡ ணࠬ  MAINPRO 﫠
                 ⢮ (QTY)     ⮨ (VALVE) 
                ,   ணࠬ   SUBCONV   ८ࠧ뢠
                ASCII-稭  筮  ।⠢; ணࠬ



          
          ᥬ  IBM PC.  21                            17


                SUBCALC 﫠 業 (PRICE);  ணࠬ SUBDISP
                ८ࠧ뢠  業   ASCII-।⠢ 
                뢮 १  ࠭.



















































          
