
              1.   1: 
                        

             ॡ  ⪮  ஢
               
             ᫮  ᥬ஢
             ᫮ ᥬ஢  
               ࠢ  몥 ᥬ
              
              樨 ணࠬ 
             ਬ ४⨢ STRUC

             ணࠬ-䠭⨪  ᮡ   ᢮   -
         㦤 ⠩ ୮ ணࠬ஢, ࠧ 筮 -
         業      讬      権  몠  ⨯
         IF-THEN-ELSE. ਢথ 몮 ᪠   㤥  -
           २⢠ 몮 ᮪ ஢  ࠢ  몠
         ᥬ୮ ⨯.  ⭮,   ਢ 稥 㬥
           ᯮ짮  GOTO.  ᬮ   ।-
         騥 㦤,  ᭮,   ᪠   .  ⢨⥫-
         ,    㦤  䮪  ⮫쪮  ୮
         ணࠬ஢.    ᪮ 㢨, ୮ ணࠬ-
             몥.   ࠢ 몮
         ᮪ ஢ ন   ᥬ.   
         ⠪  ᥬ஢    ᥬ   
         樮 ⥬ MS-DOS, ப    MASM.

                     ॡ  ⪮  ஢
            ० 祬 ।⠢  ࠢ ᮪  ஢ 
         몥  ᥬ  ᬮਬ  २⢠ 몮 -
         ᮪ ஢.      稢  ஢ ᥬ-
         .   먣뢠  ᯮ짮 몠 ᮪ ஢?
             ࠦ ணࠬ   ଥ,  -
          ணࠬ⮬  ᯥ樠⮬.  ।,   
          ᥬ  襩  襩  ⥯ ᮮ⢥
          設 . 㣮 ஭,   몠 -
          ஢    ⪮   ⥭ 設
         権.  (,   ᮬ  ७  ⥭,  
         ஢ ,  ஠஢ ࠡ ᫨⥫쭮 ணࠬ-
           몥 ࠭, 饩 ⢮ 㬥⮢).
             .1-1  ࠣ   ⮩  ணࠬ, ॠ-
           ࠭  몥 ᥬ 8086.   ࠣ -
          㬬 1...  NUM   NUM.  ᮬ,  ணࠬ
           ᥬ  ०  ᥣ     ⨬஢  楫

                 ࠭                      Aᥬ

                 sum = 0                      mov  sum,0
                 DO 100 I = 1, NUM            mov  ax,1
             100 SUM =SUM +I          loop1:  cmp  ax,num
                                              jg   loop1_end
                                              add  sum,ax
                                              inc  ax
                                              jmp  loop1
                                      loop1_end:
             . 1-1. ࠢ ࠭  ᥬ஬

                                      - 1-2 -
         㬥襭  ⢠ 믮塞 ,   ६ 믮-
          ணࠬ.   ᨬ  ⮣,   ⮬ ,
           ணࠬ  ࠭,  祬  ᥬ.  -
         ᠭ ணࠬ  ᥬ   ਭ ࠧ -
          襭.   ᨫ ⥫쭮 ᫮ ࠡ  ணࠬ-
           ᥬ 訡 ஢    .    
          㢥७,   ணࠬ  ࠭ 㤥 믮 ॢ-
         室,      ᪠ ⮣  ணࠬ  ᥬ. -
         祬  ⠪ ᮬ? ⮬   ப ணࠬ
          ࠭ ।⠢ ᮡ 祭 ,    ६ 
         ᥬୠ  ணࠬ  ॡ  ॠ樨 ⮩  ᫨ -
         ⢠ ப.
             ,  ᯮ짮 権 ᮪ ஢ -
           祭  ணࠬ஢   襭  -
           ணࠬ.   樨  ணࠬ஢ 
         ᫮,    ணࠬ ᪮業஢  
         ணࠬ. ⢥,  ணࠬ ⥫   㢥७ 
         ࠢ쭮 १⮢ ᢮ ࠡ. 㬥⠫ ।⢠,
         ন騥 ⠪ 㢥७, ਢ  ᫥ ࠧ-
         .

                                  

             ࠧ, ணࠬ஢  몥 ᥬ  
         ⥫쭮 祭, ᫨    ᮧ "⥭-
         ࠬ"  ᯮ㥬 ஢.  MASM ᯥ稢  -
          १ ।⢠ .  ।⠢ ᮡ "㯥મ-
         ",    ࠧ㦠  MASM      譥      
         饩 ࠡ  ࠡ⪥ ᥬ୮ ணࠬ.  -
          ᮢ ணࠬ ।  ᥬ -
         ஢,    ⥬,  ᯮ   뫪,  㪠뢠 MASM 
         祭 ᮮ⢥   ᥬ ணࠬ.  ⮩
             ᬮਬ   ⠪ ᮢ   -
         쥬  ᯮᮡ  ᠭ ᮡ⢥ 㬥ਥ.
               ᮥ ᪮ 믮 ᥬ୮
         ணࠬ  魮 몠 ᮪ ஢.
             ᮧ   ᯮ짮  室 믮 2 -
            :
                              1. । 

                    ;; ।    "ॡ㥬 㭪" ⨯ @DosCall
                    @DosCall        MACRO
                                    int 21h   ; 믮 㭪樨 -
                                    ENDM      ;  MS-DOS
                             2. ᯮ짮 

                                    @DosCall       <--- 맮 

             ⨭  ᫥饥:

                                   @DosCall        <--- 맮 
                    1              int 21h    ; 믮 㭪樨 -
                                              ;  MS-DOS

             ᥬ஢ ணࠬ  DosCall    
           int  21h,   ਩.   ⨭ ᮤন
         ப DosCall  뫪,   ꥪ 䠩 ᮤন ⮫쪮

                                      - 1-3 -
           樨 int 21h.   ⭠  
         "⠭ "  " ७ ".
            ,     ।饬  ਬ ᥬ ⠢  䠩
         ⨭ ᨬ, 騩  ७ .  MASM -
         ᨨ 4   "1" 頥  ப, ਭ騥 ࢮ ஢-
          ७,  "2" ᯮ  ண ஢  .. 
         MASM  ᨨ 3  । ᨩ  ப ७ 
         ᨬ  ஢  ᨬ  (+).
             ࠡ⪥  ᥬ஬ 뫪     ண-
         ࠬ ,    ।⠢.   ࠡ뢠-
           ALL (맢),  饭   ,   뫪
           ன  ᯮ ⠪ .
             㣨    ணࠬ஢  
         ᫥ ண ࠢ. ଠ ᠭ  ᫥:

            mname      MACRO     argument_list
                       .
                       .      <--- ⥫ ப
                       .
                       ENDM

              ।  mname,  argument_list ।⠢
         ᮡ ᯨ᮪ 㬥⮢,  ࠧ 묨. ᫨   -
         ন 㬥⮢ (  襬 ਬ  @DosCall),  ᯨ᮪ -
         ⮢   .
              ਢ ⥩訩 ਬ. ᫨  뫮  , 
         㬥  ,  ⮣  뫮  쭮 ਬ⨢ -
         ࠧ.  ,      ᫮-
          ਬ, ᯮ ᥪ 㬥⮢. 饥  -
          ᮡ ਬ  ன.

            ;; । " ᨬ"  PrintChr
            @PrintChr  MACRO    char
                       mov  ah,05
                       mov  dl,&char
                       @DosCall
                       ENDM
          ⥯  ᯮ짮   襬:

            @PrintChr 'A'      <--- 맮 ,

           襬 ⨭  ᫥饥:

            @PrintChr 'A'     <--- 맮 
            1   mov  ah,05
            1   mov  dl,'A'
            2   int 21h   ; 믮 㭪樨   MS-DOS

             "&char"  மᠭ 뫠  ᫥ 맮
           "A". (,  뫠  ,  ᫨   맮
         call.  㤮, ᮡ ᫨ ᯮ,   CALL  -
            ᯮ.) ,    砫  ப,
         ।⠢  ᮡ  ᯮᮡ,      ண MASM ᮮ頥
         ணࠬ,   ⥪騩   १⮬ -
         .   ⨬,   @PrintChr ᮤন 뫪  ࠭
         ।    @DosCall,  ஥      
         int 21h,    ।⠢騩. MASM த "稢" -

                                      - 1-4 -
            ⠪ ஢,  ண  ,   -
         ९   ⠡  ᨬ.    
         ᮡ 㣮 ᯮᮡ ᮮ饭,    맢 , -
         ஥  ᢮ ।  맢 ᫥饥   ..
             char   @PrintChr  뢠  ଠ  㬥⮬.
         直 ࠧ,  ଠ 㬥 char   , 
           祭, ᯮ짮  맮 .  ਬ-
             @PrintChr   char 砥,     har 
            "A".
            ⨬,   ,  ࠭    ଠ쭮  㬥-
         ,ᯮ ᪫⥫쭮  ⮣ 㬥.  ࠧ,
         ᫨   ଠ쭮 㬥 ࠫ  AX,     
           뫠  ॣ AX!
            筮 ।०        ᮡ-
         ⢥ .  ⮫쪮  ᠭ   ࠫ  add,
         ,    뫪   樨 ADD  ࠡ뢠 
          ணࠬ ७  add.   ,  ⠪ -
         ,    ४⨢ MASM.  祭   ᮧ-
            䫨 樨.
             "&" । char   @PrintChr ᯮ    -
           ப mov dl,  祭 char.  "&"  㦥 
         ⪨ ଠ쭮 㬥,   ந室  ⠪,    㦥
          ᮮ饭 MASM,  char  ଠ 㬥⮬,  
            ப "mov dl,char".    ᫥-
         饬 ਬ,   "&" ᮡ ,  ᫨ ଠ -
          ᮤঠ   ப.

            மᠭ             ७
            @Example MACRO  arg       @Example Y
               mov   dl,arg           1  mov  dl,y    <-ࠢ쭮
               mov   dl,&arg          1  mov  dl,y    <-ࠢ쭮
               mov   dl,argZ          1  mov  dl,argZ
               mov   dl,&argZ         1  mov  dl,argZ
               mov   dl,arg&Z         1  mov  dl,YZ   <-ࠢ쭮
               mov   dl,Xarg          1  mov  dl,Xarg
               mov   dl,X&arg         1  mov  dl,XY   <-ࠢ쭮
               mov   dl,XargZ         1  mov  dl,XargZ
               mov   dl,X&argZ        1  mov  dl,XargZ
               mov   dl,Xarg&Z        1  mov  dl,XargZ
               mov   dl,X&arg&Z       1  mov  dl,XYZ   <-ࠢ쭮
               ENDM

            ண ,   @PrintChr ᨬ "&"  ॡ. MASM
           ।,  char - ଠ 㬥, ⠪
           ᫥  ⮩    ⢥.    ,
           ਢ窠 ᯮ짮 ᨬ "&",       
         ॡ,  ⠪      뤥 ଠ 㬥  ⥭
             MASM,    .


                                 ⪨ ⨯ LOCAL

               , ᯮ짮 , ।砫  
           樨   ᥬ .   ।,
           ⨬ ᮧ ,  ஥ 롨ࠥ 襥   -
         ᥫ    頥  १  - 祩.    
         룫拉, ਬ, ⠪:

                                      - 1-5 -
            min  MACRO    result,first,second
                 mov      &result,&first
                 cmp      &first,&second
                 jl       order_ok
                 mov      &result,&second
            order_ok:
                 ENDM

              뢠  min,   ࠡ뢠 ࠢ ,
            ஡:    ॢ室,
            ᯮ짮  .   ⪠ order_ok
           ।  ணࠬ ⮫쪮  ࠧ,   ᯮ짮-
               ணࠬ MASM ᯮ  -
         ⢥ । ᨬ.
            ⮡    㣨 ࠬࠬ ࠧ 㪠  -
         ࠬ ⪨,   믮 讥  :

            min   MACRO     result,first,second,order-ok
                  mov       &result,&first
                  cmp       &first,&second
                  jl        &order_ok
                  mov       &result,&second
            rder_ok&:
                  ENDM
             맮   min,    ᫥饬  ,
           㪠 ,  ஥ 㤥 ᯮ짮  ⪨ -
         室.   min   ᯮ짮 直 ࠧ, -
           室,  ⠪   ࠧ ⪥ 室 㤥 -
           .   ⢨⥫쭮      
          祭,  ⪠  ᮡ⢥ 㭪樨 min.

                  min       ax,bx,cx,jmp1        <- 맮 
            1     mov       ax,bx
            1     cmp       bx,cx
            1     jl        jmp1
            1     mov       ax,cx
            1  jmp1:

             ᯮᮡ ᮧ     맮  min
          訬.    ⮩ 楫 MASM  ४⨢ LOCAL
         ().  MASM 砥 LOCAL,  饣 冷 
         ᮧ 㭨쭠 ⪠. 㣮 ᯮᮡ 砥  饭
         ࠬ LOCAL  ᯨ᮪ ࠬ஢ MACRO,    ⮬ MASM -
           ᢠ ⢨⥫쭮 㬥.  ।०:
          LOCAL ᥣ   ࠧ    ᫥  ப
          MACRO! ᫥ 祭 ४⨢ LOCAL   min
         룫廊 ⠪:
            min    MACRO     result,first,second
                   LOCAL     order_ok
                   mov       &result,&first
                   cmp       &first,&second
                   jl        order_ok
                   mov       &result,&second
            order_ok:
                   ENDM

                                      - 1-6 -

            ,   ᭮ 맮  min, ࠧ ⨭-
          䠩,    ᫥饬 ਬ. 祭 order_ok -
            ??0000.   ࠧ  맮  order_ok -
            祭, ࠡ뢠 MASM.

                    min       ax,bx,cx   ; 맮
            1       mov       ax,bx
            1       cmp       bx,cx
            1       jl        ??0000
            1       mov       ax,cx
            1  ??0000:
                    min       ax,bx,cx   ;ன 맮
            1       mov       ax,bx
            1       cmp       bx,cx
            1       jl        ??0001
            1       mov       ax,cx
            1  ??0001:

            筮, ⠥  ⭮   䫨 ⮪,
         ᫨   ᯮ짮 ⪨, 稭騥  ??. ᫨  -
         ࠭ ᯮ짮 ⮪, 稭  ??,   ᬮ -
         뢠  min ⮫쪮 ࠧ, ᪮쪮 .
            ᯮ짮 ⮪  LOCAL  ࠭稢 ⮫쪮 室
          ᠬ. ⪨ LOCAL  ⠪ ᯮ짮  묨, 
            ᫥饬 .   ⮬ 砥  ᯮ
          ⠢ ⥪⮢ ப  ᥣ   ᫥饣  ᮧ-
          뫪    ᥣ .
            ࠢ 室 ⥪  ७    ⨭  1-1,
          㢨, ᪮쪮 㤮 ᯮ짮 . ⨭  1-1
         ⠪ ᮤন    ,  騥  襭
           ᠭ ணࠬ ..  ।  ,
            ᯮ    ࠢ쭮  ᨭ⠪  ணࠬ
         .!

                        ⨭ 1-1. ணࠬ Hello World
             -------------------------------------------------------------
            ;********************************************************
            ;                            
            ;********************************************************
            ;
            @DosCall  MACRO
                      int      21h  ;맢 㭪 MS-DOS
                      ENDM
            ;
            @InitStk  MACRO         ;। ࠧ ⥪
            stk_seg   SEGMENT  stack
                      DB       32 dup ('stack   ')
            stk_seg   ENDS
                      ENDM
            ;
            @InitPrg  MACRO    segment  ; 樠஢ ᥣ
                      ASSUME ds:segment ; 
            start:                      ; ᭮ 窠 室
                      mov      ax,segment

                                      - 1-7 -
                      mov      ds,ax    ;⠭ ᥣ 
                      mov      es,ax    ;⠭ 譨 ᥣ
                      ENDM
            ;
            @Finis    MACRO
                      mov      ax,4C00h ; 
                      @DosCall
                      ENDM
            ;
            @DisStr   MACRO    string   ;⮡ࠧ ப 
                      mov      dx,offset string
                      mov      ah,09h
                      @DosCall
                      ENDM
            ;
            @TypeStr  MACRO     string  ;।  ⮡ࠧ ப
                      LOCAL     saddr   ;⠭  
            cod_seg   ENDS              ; ᥣ 
            dat_seg   SEGMENT           ;३  ᥣ 
            saddr     DB    string,'$'  ;। ப  ᥣ.
            dat_seg   ENDS              ; ᥣ 
            cod_seg   SEGMENT           ;  ᥣ 
                      @DisStr   saddr   ;⮡ࠧ ப
                      ENDM
            ;
            ;
            ;********************************************************
            ;                            
            ;********************************************************
            ;
                      @IniStk                ;⠭ ⥪
            cod_seg SEGMENT                  ;। ᥣ 
            main    PROC        FAR          ; () 楤
                    ASSUME      cs:cod_seg   ; ᥣ. ॣ.CS
                    @InitPrg dat_seg         ;樠- ᥣ 
                    @TypeStr 'Hello world!'  ;뤠 ਢ⢨
                    @Finis                   ; ணࠬ
            main    ENDP                     ; 楤
            cod_seg ENDS                     ; ᥣ 
                    END         start        ; ணࠬ  ...
                                             ;।  ᪠
            -------------------------------------------------------

            ணࠬ   筮 ⠪,    ਢ,  ⥬
          ᥬ஢   믮.    "Hello  world!"  
         ⮡ࠦ  ࠭.  ᥡ १  祭 ࠧ⥫,
         ,  ᫨ ᯮ㥬  ࠭  䠩 include (-
         ),  ᠭ .EXE-ணࠬ ⥫쭮 砥.  
         ᬮਬ  ᯥ ७ ணࠬ, ਢ  -
         ⨭ 1-2.


                                      - 1-8 -
                ⨭ 1-2. ७ ணࠬ Hello World
             -------------------------------------------------------------
            ;********************************************************
            ;                             
            ;********************************************************
            ;
            ;       @InitStk                 ;⠭ ⥪
            1       stk_seg   SEGMENT stack
            1                 DB      32 dup ('stack   ')
            1       stk_seg   ENDS
                    cod_seg   SEGMENT        ;। ᥣ  
                       main   PROC   FAR     ; () 楤
                    ASSUME    cs:cod_seg     ; ᥣ. ॣ.CS
                    @InitPrg  dat_seg        ;樠- ᥣ 
            1       start:                   ; 窠 室
            1                 mov  ax,dat_seg
            1                 mov  ds,ax     ;⠭ ᥣ 
            1                 mov  es,ax     ;⠭ 譨 ᥣ
                    @TypeStr 'Hello World!'  ;뤠 ਢ⢨
            1       cod_seg   ENDS           ;ਮ⠭ ᥣ 
            1       dat_seg   SEGMENT        ;३  ᥣ 
            1       ??0000    DB   'Hello world!,'$' ;। ப
            1       dat_seg   ENDS        ;ਮ⠭ ᥣ 
            1       cod_seg   SEGMENT     ;  ᥣ 
            2                 mov   dx,offset ??0000
            2                 mov   ah,09h
            3                 int   21h      ;맢 㭪 MS-DOS
                    @Finis                   ; ணࠬ
            1                 mov   ax,4C00h ; 
            2                 int  21h       ;맢 㭪 MS-DOS
                    main      ENDP           ; 楤
                    cod_seg   ENDS           ; ᥣ 
                    END       start          ; ணࠬ ...


            ० ᥣ 室 ,   ᯮ㥬  
           (saddr)    @TypeStr  ⫨筮 ࠡ⠥  ⪠ 
         .   뢠 ⮪  묨  ᯮ  稥
         (:).  ᬮਬ,  ७ ᯮ १ࢨ-
          ᫮ SEGMENT (ᥣ)     @InitPrg.    ஡!
         ᯮ,      ଠ 㬥⮢  ᯨ᪥ 㬥⮢
         ४뢠  㣨 ᠭ MASM.
             ,    ப  祭  ⨭-
          䠩.  ਬ,   ASSUME ds:data_seg    @InitPrg
         饭.    ᥬ஢,   MASM  뢮 
         ७.
              ந諮  稭 ᯥ䨪 ࠡ⪨  ᮢ. 
         㬮砭, 室 ப,  ࠡ뢠騥 ᯮ⥫쭮 -
         ,   ⨭ .   ASSUME  ४⨢
         MASM,    ࠡ뢠 ᮡ⢥ ;  ⠪ ࠧ,
           ⨭ .  㣮 ஭, ४⨢ 襭
         ᥣ ENDS ਢ  ⨭,   ணࠬ   -
         ࠡ뢠.   MASM ⠩,  묨 ᥬ  ⮨ ࠧ-
         .
            ।⠢ ணࠬ  ᫥ ᬠਢ,   ⠫
         襣  ணࠬ஢.      ᯮ짮 ᮢ 
            ⥫쭮    .EXE-ணࠬ    ⥫쭠,
         祭   "" ᨬ  ᠬ  ਬ ।-
         .  ᫨  ᥣ  ⫨砥  dat _seg,  ணࠬ
             ⥫쭠 䫨⭠ .  ਬ,
           @TypeStr  ।  dat_seg  ⢥ -

                                      - 1-9 -
            @InitPrg ,   ᥣ  뢠
         dat_seg.

                             ४⨢ ⨭ 

            ᫨   㢨  ⨭ ,    䠩
           ᥬ୮  ணࠬ ४⨢ MASM .LALL.  ⥬ 
         䠩 .LST  ࠢ   ࢮ砫 ⨭ 襣 ਬ-
         .    ASSUME ds:data_seg 㤥  ⨭.  -
          ० ⨭   ᯮ  ४⨢ .XALL.
           ୥ MASM  ०,  ⠭  㬮砭.  ᫨ 
            ७, ᯮ ४⨢ .SALL.


                                  ஡⥪

            ନ "஡⥪"  ᮢᥬ ७.   ⢨⥫쭮,
         ஡⥪ ᮢᥬ  ,     ⨬      
         ணࠬ ।⢠ LINK /।/  LIB /ࠡ稪 ⥪/
          .    ६ 樨,
         ⠪      ।⠢ ᮡ ४⨢  MASM  ⮫쪮 
         MASM.  ।⢠ LINK  LIB  ,      .  
         ⮣ ஡⥪  ᮡ 䠩 ⨯ include ().
           ।  ⤥쭮  䠩,  뢠  MYLIB.MAC
           STANDARD.  MLB   -   (   
         ⨬ ),     ᥬ஢  ।⢮
         饭  室 ⥪ ணࠬ ४⨢ include. ਬ,

             INCLUDE  C:\AS\LIB\STANDARD.MLB  \*

            ࠢ ᠭ   㪠 ⥫  ,   
         ᥩ  ⥬.    䠩  ⨭  ப,  祭   䠩
         include, 稭  㪢 "C", ࠢ  ப ७
         稭   "+" (  MASM  4.0)   ஢-
          ७. 筮, ᫨    ⥪    -
          ஬ 䠩 .LST மᠭﬨ,   ४⨢
         .XLIST "몫" ⨭ । include,   ⥬ "" 
         ⭮ (᫥ include),  ਬ ४⨢ .LIST.
            ᯮ짮 ஡⥪  ᭮뢠   ᫥
         த४⨢.   쭮 । ᭠砫  ।    
         ணࠬ,    ⥬ ⬥ ⠪ । (   ᪮॥
          㭨⮦!),   ᯮ짮 ᪮쪨 ம।-
              ஡⥪.  ⠢訥 -
         ம।  ⥫쭮 ࠭⢮   ⠡
         ᨬ MASM     .     
           ४⨢ PURGE  ().  PURGE    
         ᠭ  㪠 .    மᠭ ।饣
         ਬ ᫥ 뤠 ४⨢:

            PURGE @DosCall,@InitStk,@InitPrg,@Finis,@DisStr,@TypeStr

             頥  ࠭⢮ ,  ⮥ மᠭﬨ,
            ᯮ짮   㣨 楫.





                                      - 1-10 -
                         த४⨢ ७ - REPT

            MASM ᯥ稢      ப.  -
             ਠ ,  祬     ᢮
         ᮡ ।祭.
             ⢥ ࢮ ਬ ।,   ⨬ ᮧ 
         ᥣ    ࠡ⪨ 䠩.  祭 -
           䠩  ᯮ㥬 ⮤ ⥫  䠩 , ⠪   -
         ⨬ ࠡ  祬   䠩,  襬 ணࠬ, ᢠ-
            㭨쭮 .

            file_head    MACRO       fnum
            file_hand_&fnum   dw     ?     ; 䠩
            file_nmax_&fnum   db     49    ;.  䠩
            file_nlen_&fnum   db     ?     ;⢨.  䠩
            file_name_&fnum   db     50 dup (?) ;  䠩
                           ENDM

            祬  fnum ( 䠩)      ᯮ짮  ४⨢
         LOCAL? ⮬,   ᠬ   ⪨   -
         묨.     ⢫   㣨 ⥩  ண-
         ࠬ  楫 ⠭  䠩, 祭  -
         ஢   ࠢ 䠩  ..       
         ᮢ襭⢮.   室 ᮮ ணࠬ 䠩
         ஢,  ᫨  ⨬ ६ ࠡ뢠   䠩?
          ᫥  맢 file_head (⥫ 䠩):

            file_head       1      ;1-  䠩
            file_head       2      ;2-  䠩

             ⮣,  ᯮ ४⨢ REPT (),   
          file_head ⠪, ⮡  । ⮫쪮 , ᪮-
          室.   ਢ  ⨭ 1-3.

                    ⨭ 1-3. ᠭ  㯠  䠩
            ------------------------------------------------------------

            fcnt           =            0  ;।  - ᨬ
            file_head2     MACRO       fnum
            file_hand_&fnum     dw      ?      ; 䠩
            file_nmax_&fnum     db      49     ;.  䠩
            file_nlen_&fnum     db      ?      ;.  䠩
            file_name_&fnum     db      50 dup (?)  ;  䠩
                           ENDM
            file_head      MACRO        fnum
                           REPT         fnum   ;  "fnum" ࠧ
                           file_head2   %fcnt  ;ᮧ   #"fcnt"
            fcnt           =    fcnt + 1
                           ENDM                ;  ७
                           ENDM                ;  file_head
            -------------------------------------------------------------

               ⨭ 1-4,  맮  file_head , 
         ᢮ ।,  뢠  file_head2,  ᯮ 
         ࠧ  祭 fnum. 筮,  ७  祭-
           ⨭,  ⠭  㬮砭,   뢠
          饭  file_head2.   १ ࠡ REPT  -
              ᮧ  ࠢ 䠩. ⨬,

                                      - 1-11 -
          ४⨢ REPT  稢 ப ENDM, ࠢ  
         ४⨢ MACRO. c  ७   稢  ENDM
         ( ). 筮 ENDM      
         ம।.

           ⨭ 1-4.  ७  ᠭ 㯠  䠩
         -----------------------------------------------------------------

                         file_head 2
            3       file_hand_0    dw   ?    ; 䠩
            3       file_nmax_0    db   49   ;.   䠩
            3       file_nlen_0    db   ?    ;⢨.  䠩
            3       file_name_0    db   50 dup (?)  ;  䠩
            3       file_hand_1    dw   ?    ; 䠩
            3       file_nmax_1    db   49   ;.   䠩
            3       file_nlen_1    db   ?    ;⢨.  䠩
            3       file_name_1    db   50 dup (?)  ;  䠩
         ------------------------------------------------------------------

               ४⨢ REPT  ⠪  ᯮ짮  稪.
         稪 -  ६,   ஢ 祭.   
         祭  ,    ।   -
          ᢠ (=). ( MASM  । ६, -
          ᪨ 祭,  ᯮ    equ  (ࠢ-
         ),     ६   । ६,   祭
          ,  ਬ  ࠢ⢠ (=).) 稪, -
         塞      file_head,  뢠  fcnt (稪 䠩).
         稪 fcnt 㢥稢  1   室  file_head. 
         祬 ⪨ 室  file_head2,  file_hand_0  ..,    
         file_hand_fcnt?   ࠧ  fcnt   ᢮ -
         ?   ⢥   砥       "%",饬    맮
         file_head2 । fcnt.   業 ।뢠  ᨬ
           祭.    ᯮ짮  業,  -
         室  .  ᫨   ⠫ ᫨    ⠢
         fcnt   k:

                            REPT      fnum   ;  "fnum" ࠧ
            file_hand_&%fcnt       dw   ?         ; 䠩   ,

              訡 ᨬ:


            file_hand_fcnt         dw   ?         ; 䠩

             業 (%) ࠡ⠥ ⮫쪮  㬥  ஢맮-
         ! ஬ ⮣, 祭 ᨬ   ᮫⭮  (-
         頥) ⠭⮩.
            㣨   ᯥ⮬     ,   稪
         fcnt 樠  ஡.   ⮬,  
          ⨬ ⠭  fcnt   0 直 ࠧ  맮 file_head
         (  맢 㡫஢ ⮪). ,  fcnt  
         - 樠஢,  :

            fcnt       =           fcnt +  1


                                      - 1-12 -
         맮  ᮮ饭  訡 "  ।".


              ஡  த४⨢ ७ - IRP  IRPC

            ஬ ४⨢  REPT MASM ন   ४⨢ -
         ய७.   - IRP (࠭祭 ७)  IRPC  (-
         ࠭祭 ७ ᨬ).   ⢨⥫쭮,   
          ᪮筮.  ⮣ ७ ந室  
         ,   ᯨ᪥ 㬥⮢    㬥.  ⨭
         1-5 ਢ ਬ ய७,   test_vac  ।-
         祭   ⮢  ᥣ .

             ⨭ 1-5. ਬ  ७ IRP   ७
         ------------------------------------------------------------------

            test_mac    MACRO     args            ;। "test_mac"
                        IRP       dummy,<&args>
                        db        dummy           ; 
                        ENDM                      ; "IRP"
                        ENDM                      ; "test_mac"

                        test_mac   'one'                <-- 1- 맮
            2           db         'one'          ; 
                        test_mac <'two','three','four'> <-- 2- 맮
            2           db        'two'           ; 
            2           db        'three'         ; 
            2           db        'four'          ; 
         ------------------------------------------------------------------

              室  ७  ⢥  祭 dummy
         ᯮ । 祭 ᯨ᪠ 㬥⮢.  ᯮ -
         ४⨢ IRP,      믮    ⢨  ਬ
         ⮫쪮  맮 .   ୮ 맮 test_ mac  IRP
          db ࠧ     ப ᯨ᪠ 㬥⮢.
               ᮢ   ᯥ樠 ᨬ - 㣫 ᪮
         (<  >).   test_mac । 稥 ⮫쪮  -
         ,   ⨬ ᫠  ᯨ᮪ 㬥⮢.  ᪮
         믮  㭪,  ८ࠧ ⥪,  祭   ,  
          ࠫ.   ࠧ, 'two','three','four' -
            㬥,    .  ᠬ 㣫 ᪮
         ਭ饬     뫠.   test_mac args 
         祭 'two','three','four',    <'two','three','four'>.  
         祬  ४⨢ IRP 뫨  㣫 ᪮.
              ᭥  ਬ  ப!  -
         ,     ப,   ᪠,   
           ஢ ਢ  ⠭ .  ᫨  ᯮ㥬 -
          define byte (। ) ⠪:

            db        'dummy'             ; 

         MASM ࠧ稢 ப ᫥騬 ࠧ:

            2         db     'dummy'      ; 

            ᮧ    쭮  祭 dummy,   

                                      - 1-13 -
         ᤥ ,    ⨬.    맢  ᯮ짮  -
         ⢨⥫쭮 㬥 १

            db        '&dummy'            ; 

          MASM ࠧ୥  ப 

            2         db     "one"        ; 

             ਢ      ᯥ樠쭮  訡 "⥭ ⥪
         ᫥ ".   訡 , ᫨  砩 ᮧ
         ᪮ ४ᨢ 맮 .   饬 砥 MASM 롥
            ࠭  ᯮ㥬 ᨬ.  -
         ⥫!  ᮮ饭  訡 뤠   ,   
         ४ ࠡ MASM,  "Cntrl-C".

                             ᯮ짮 

             ⮣ ,   稫,  -  ᯮ 
         ⨯ "⥭᪮" ணࠬ஢. , ᫨  ।
           ணࠬ,      ⭮ -
         १ ⮩ 맮 .   ,   । 
           MACRO,   ᢠ    -
         ⥫쭮  ᭠  㬥⠬. மᠭ 稢-
          ஬ ENDM.  ᫥ 믮 மᠭ  맮  
         ⢫   ,    ᫥ 
         ࠬ.
             ⠪ ,   MASM,  ᯮ ४⨢ LOCAL,  
         ࠡ뢠 㭨 ⪨   ਬ ४⨢  -
         ७.    ४⨢ ७   ᯮ짮 -
          ७  ᫥饩 .
            ࠢ筮 㪮⢮  ணࠬ   樮 ⥬
         MS-DOS   ᮤন மᠭ  ⥬ -
         . ஬ ⮣,   ⠪ ᮤঠ  ᭮ -
         ,  ।祭  襭   (ਬ, ६-
         饭  ப).    㪮⢮    訬  ᮡ 
         ਬ ᮢ   ஢.    ਢ  
         ⠡,   猪   묨.   .  1-1
         ਢ ᢮ த४⨢, ᯮ㥬 MASM.  . 1-2 -
           ᯥ樠  ம;    .  1-3 ᮡ࠭
         த४⨢ ࠢ ⨭.
               諨   祭 ᮢ  -
          ணࠬ.   믮 ࠡ  ᮧ  ᮢ
          室 ,    ᥬ  ணࠬ. 
         ⥬ ᫥饣 ࠧ.

                             ᫮  ᥬ஢

             ᠭ ணࠬ  ᥬ 祭    -
          祭  ணࠬ ᥪ権. ᯮ -
         , 뫮  ⠪    롨 ࠧ-
           ࠢ  ࠡ  ணࠬ   ᨬ  㬥⮢,
         ।  . MASM ᯥ稢   १ -
          ᥬ஢.

                                      - 1-14 -

               ॡ ᫮ ᥬ஢?  ।-
         ,      ணࠬ, ,  設-
          ⠪ ணࠬ,   - 訡.  ᭥ -
         ⥫ ࠡ ணࠬ  蠥        
         ⫠ .   ,     㢥७,
          ணࠬ 믮 ࠢ쭮,      -
         ,  ⮡ ணࠬ 믮﫠  譨 .  ⠪ 
         ணࠬ, ⭮, ᮤন   訡, ⫠ -
           ਤ 믮 ᭮.    㤠 ஢
         ⮬⥫쭮.   襭 ⮩ ஡     ᯮ짮
         ᫮ ᥬ஢.  ⨭ 1-6  ⢨ -
         ४⥫ "DEBUG" (⫠)        ᫮
         ᥬ஢.    訩 ᯮᮡ ।஢ ண-
         ࠬ,  ४⥫ .SALL ᯮ짮   ன
           ७  @TypeStr.      饭 ⮫쪮 
         ப, 易  ᫮ ᥬ஢.

                             1-1. த४⨢

            --------------------------------------------------------
            ४⨢      ६          ᠭ ਬ
            --------------------------------------------------------
            mname MACRO    parameter_list      AH
                                                 -
                                                 ம-
                                               ; parameter_list
                                               । ଠ
                                               㬥, ᯮ-
                                                 .

            ENDM                                
                                                
                                               மᠭ  -
                                                ७ REPT,IRP
                                                IRPC. 稥 -
                                               ⥫쭮!

            EXITM                                
                                                ⨦ 室 
                                               .  
                                               ᯮ    -
                                                ᥬ஢.

            LOCAL      symbol_list              
                                               ।  ᥬ-
                                                ᨬ    ᯨ᪠
                                               symbol_list  㭨-
                                                ᨬ.
                                                 ??, 
                                                - ⭠
                                               ᫠.

            PURGE      macro_list               AH
                                               ⮦ ᠭ 
                                                ᯨ᪠ macro_list.


                                      - 1-15 -
            --------------------------------------------------------
            ४⨢      ६          ᠭ ਬ
            --------------------------------------------------------
            REPT       ࠦ               
                                                 ,
                                               ࠧ饭  REPT
                                                ENDM,⮫쪮 ࠧ,᪮-
                                                  ࠦ.

            ITP       dummy,<parameter_list>   AH 

                                                  
                                                IRP    ENDM 
                                                祭  para-
                                               meter_list, -
                                                ࠬ (dummy)
                                               祭 ࠬ  -
                                                ७.

            IRPC      dummy, ப              AH
                                                     
                                                 
                                                IRPC   ENDM 
                                                ᨬ ப,
                                                ଠ -
                                                 ᨬ  -
                                                ७.
            ---------------------------------------------------------

                  1-2. 樠 ᨬ  ப
            ---------------------------------------------------------
                                  ᠭ ਬ
            ---------------------------------------------------------
            &argument          ଠ 㬥  ᨬ-
                                ⥪⮬. ᮡ 室 
                              ⠭  ଠ 㬥⮢
                               ப, 祭  窨.

            ;;comment text    砥 ਩. 
                              ਩   ਢ 
                              மᠭ.

            !char             뢠,  ᫥騩  ᨬ
                               ࠫ.   ᯮ  
                              祭 &, %   ..  ७,
                                 ᨬ   -
                              ஢   ᯥ樠.

            %symbol           ᯮ  ८ࠧ ᨬ
                               ࠦ  ᫮ ⥪饩   ⥬
                              ᫥.
            <text>             ᪮ (<  >) ᯮ 
                              । ⥪,  祭 
                              ,  ࠫ. ,   祭
                               ⠪ ᪮,     । 
                                  㬥.
            ----------------------------------------------------------

                                      - 1-16 -


                    1-3. ४⨢ ࠢ ⨭ 
                                ப

            ----------------------------------------------------------
            ४⨢                ᠭ ਬ
            ----------------------------------------------------------

            .XALL        ਢ 室  ꥪ  -
                         ७, ᪫ 室 ப,   
                         ࠡ뢠 ᯮ⥫쭮 .  ⠭-
                           㬮砭.

            .LALL        ਢ  ப ७, ᪫
                         ਨ, 稭騥  㤢 窮
                          ⮩ /;;/.

            .SALL        ᪫砥 , ࠡ뢠  -
                         .

            .LIST        ਢ ப 室 ⥪  ணࠬ.
                         ⢨ ⨢ .XLIST,   -
                         ﭨ ⨭, ।塞 ४⨢
                         .XALL, .LALL  .SALL  .

            .XLIST            뤠.  ४뢠  
                          㣨  ४⨢.
            ---------------------------------------------------------


             ⨭ 1-6. ᫮ ᥬ஢ ஢ DEBUG -
                                       FALSE
         ----------------------------------------------------------------
                                    ;  - ⨭ 室 ⥪
                     FALSE    EQU     0
                     TRUE     EQU     0FFFFh
                     DEBUG    EQU     FALSE
            .
            .
            .
                     @TypeStr 'hello world!'
                     IF       DEBUG        <--- 砫 ᫮ 
                     @TypeStr 'Hi -I made it to this point in the program'
                     ENDIF                 <---  ᫮ 
            .
            .
            .
                                    ;  - ⨭ MASM

                     @TypeStr 'hello world!'
            1                   mov     dx,offset  ??0000
            1                   mov     ax,09h
            1                   int     21h     ;맢 㭪 MS-DOS
                     ENDIF
         ----------------------------------------------------------------


                                      - 1-17 -

                ਬ  ᥬ஢   祭 ४⥫
         DEBUG - FALSE ().   १  ᫮   ⨭
         MASM ᫥ ७ @TypeStr  ⮫쪮   ENDIF.
          ࠧ MASM ᮮ頥,   ᫮  ⢮, 
           ᥬ஢.  祭 ४⥫ DEBUG -
           TRUE (⨭), MASM ࠡ뢠  ணࠬ, ਢ-
           ⨭ 1-7.


             ⨭ 1-7. ᫮ ᥬ஢ ஢ DEBUG -
                                       TRUE
         ------------------------------------------------------------------

                                     ;⨭ MASM
                      DEBUG      EQU       TRUE
            .
            .
            .
                      @TypeStr  "hello world"
            1                   mov        dx,offset  ??0001
            1                   mov        ax,09h
            2                   int        21h   ;맢 㭪 MS-DOS
                      IF        DEBUG
                      @TypeStr  'Hi -I made it to this point in the program'
            1                   mov        dx,offset ??0002
            1                   mov        ah,09h
            2                   int        21h   ;맢 㭪 MS-DOS
                      ENDIF
         ----------------------------------------------------------------
              ६ ⫠  ⢮  ணࠬ.
         MASM ⠪ 砥  ⨭ ப,  뢠 ᥬ஢
         ஢.  ᫨    ।⠥ 㢨  䠩 ⨭ 
         ४⨢ ᫮ ᥬ஢  ᨬ  ⮣, -
             祭  TRUE  FALSE,  ᯮ ४⨢ .LFCOND
         ( ᯨ᮪  ﭨ).       
         뤠    ﭨ    ४⨢ .SFCOND (
         뤠  ﭨ).   ᭮,  ᫮ ᥬ-
           稭      ࠧ⥩  IF (᫨)
         (.  ᯨ᮪  . 1-4)  稢 ஬ ENDIF.
            筮 ᯮ짮  ४⥫ TRUE/FALSE  ᫮ -
         ᥬ஢   ணࠬ஢ ⥬ (ணࠬ-
          樮 ⥬ ஢). ᫨  襣 -
           室 ⥪ 樮 ⥬  몥 ᥬ-
         , ᬮ .  猪 ,  ᫮ ᥬ-
         ஢ ᯮ   쬠 ⥭ᨢ.  ᫮ ᥬ-
         ஢      ஥஢騪       樮
         ⥬,   १ ᯮ짮 ४⥫ -  䨣஢
              ।.  ४⥫, -
          ४⥫ DEBUG  襣 ਬ,  ᣥ-
          ࠡ ⥬   ⨯, ⢠  䨣-
         樨 , , ਩ ன, ࠩ஢  ..
             ࠦ,     ᫥  0  
         祭 0,  MASM ᬠਢ    FALSE.  㫥  祭
         ᬠਢ    TRUE.  筮    ᨬ TRUE ᯮ
         ⭠筮 祭 FFFFh.  ࠧ蠥 ᯮ짮 TRUE
           ⮢ . ਬ, ࠧ來  믮  AND

                                     - 1-18 -
         (᪮ )  0001  1000 ࠢ 0000,  ⠪    -
         祭  ⨭,   ᪮ ந     .
         ᯮ,  MASM ᯮ        -
         ᪨, ⠪   ⮢ 権.


                  1-4. ४⨢ ᫮ ᥬ஢

            ---------------------------------------------------------
            ४⨢       ६       ᠭ ਬ
            ---------------------------------------------------------

            IF              ࠦ     IF TRUE (᫨ ⨭)
                                          ᫨ 祭  ࠦ 
                                          㫥,  ᫮-
                                            ᥬ.

            IFE             ࠦ     IF FALSE (᫨ )
                                          ᫨ 祭 ࠦ ࠢ-
                                           ,  ᫮
                                           ᥬ.

            ELSE                          ELSE ()
                                          ᫨ 祭 ᫮ -
                                          ४⨢ ᥬ஢ ࠢ-
                                           FALSE () (᫮
                                            ᥬ),
                                          ᥬ ୠ⨢-
                                             ELSE.
                                          蠥  IFXXXX, 
                                          ᫥  ᫥ ENDIF.
                                          ⢨⥫쭮 ⮫쪮 ᫥
                                           IFXXXX.

            ENDIF                         END  IF (  IF)
                                          蠥  IF 
                                          ELSE.

            IF1,IF2                       IF MASM 室 1, IF MASM
                                          室 2
                                          ᥬ ᫮ ,
                                          ᫨ MASM-ᥬ -
                                           㪠 室.
                                          .ᨬ  IF1
                                           IF2  IFDEF  IFNDEF.

            IFDEF           ᨬ        IF c DEFINED (᫨ ᨬ-
                                           ।)
            IFNDEF          ᨬ        IF ᨬ NT DEFINED (᫨
                                          ᨬ  ।)
                                          , ।  ᨬ-
                                              譥
                                          . IFNDEF ⨢-
                                           IFDEF. . -
                                            室 ᥬ.

            IFB            <㬥>     IF 㬥 BLANK (᫨ -
                                          㬥 ).

                                      - 1-19 -
            ---------------------------------------------------------
            ४⨢       ६       ᠭ ਬ
            ---------------------------------------------------------
            IFNB           <㬥>     IF 㬥 NOT BLANK (᫨
                                          㬥  ).
                                          ,   㬥.
                                          ᯮ  ।
                                          । ࠬ஢ -
                                          . IFNB ⨢IFB.
                                          稥 㣫 ᪮ -
                                          ⥫쭮.
            IFIDN       <str1>,<str2>     IF ப1 IDENTICAL TO
                                          ப2 (᫨ ப1 -
                                          筠 ப2)
            IFDIF       <strl>,<str2>     IF ப1 DIFFERENT FROM
                                          ப2 (᫨ ப1 ⫨-
                                            ப2)
                                          ।,  
                                          ப1  ப2. IFDIF
                                          ⨢ IFIDN.
                                          稥 㣫 ᪮ -
                                          ⥫쭮.
            ---------------------------------------------------------

                                 ⭮襭

            ஬ ᯮ짮  ᨬ  ।।묨 祭ﬨ 
         䬥᪨ ࠦ MASM ন    ⭮襭,
             ਬ   ࠢ ࠬ ᫮
         ᥬ஢.  ࠬ ⭮襭  , -
         騥        祭ﬨ.  Less than (
         祬), greater than ( 祬), equal to (ࠢ)   not equal to
         ( ࠢ) - ਬ ஢ ⭮襭.
               믮 ᯥ樠 ⢨  -
         થ    . ᯮ짮 ஢ ⭮襭
         ࠧ蠥 ᮧ 쭮 ᫮ ணࠬ , -
           ⮬᪨ ࠨ   । 㭪樮-
          (ਬ, । ࠧ    -
            १ࢭ     ).  , ᯮ  
         ⭮襭, MASM  ᥣ 믮 ,  ஢.
              楫묨  ,    OFFFFh  -1 
               祭.    ᪫祭 MASM ⠪ -
          塞 祭.  ࠭ ᨨ MASM 
         ࠡ   ⥫묨 ᫠   ᫮, 
          ᨨ (1.2  ) ,   -1 ࠢ 0FFFFh,  
         ࠢ  稭    ᥫ MASM ᬠਢ  -ࠧ.
           ᫥騩 ਬ:
            True       FFFF       dw    1 gt -1        祢
            False      0000       dw    1 gt 0FFFFh    65535,   -1
            True       FFFF       dw   -1 ge 0FFFFh    -1=-1
            False      0000       dw   -1 gt 0FFFFh    -1   -1

             ਬ ,   MASM ᬠਢ 0FFFFh  -
         ⥫쭮 楫 ᫮ 65535,    ࠢ  -1 0FFFFh  -
           -1.   ⮬  :  " ।-
         ,  㦥".
             ᯨ᮪ ஢ ⭮襭 ਢ  .  1-5. -

                                      - 1-20 -
          ᯮ짮    ஢  ணࠬ஢ -
          饭    .   . 1-6 ਢ ᯨ᮪
         ४⨢ ᫮ ᥬ஢.

               1-5. ᪨    ⭮襭
                           ᫮ ᥬ஢
         ------------------------------------------------------------
               ⠪            ᠭ ਬ
         ------------------------------------------------------------
            EQ        exp1 EQ exp2     TRUE,᫨ ࠦ1 ࠢ -
                                            ࠦ2
            NE        exp1 NE exp2     TRUE,᫨ ࠦ1  ࠢ
                                            ࠦ2
            LT        exp1 LT 2     TRUE,᫨ ࠦ1 
                                            ࠦ2
            LE        exp1 LE exp2     TRUE,᫨ ࠦ1 
                                             ࠢ ࠦ 2
            GT        exp1 GT exp2     TRUE,᫨ ࠦ1 
                                            ࠦ2
            GE        exp1 GE exp2     TRUE,᫨ ࠦ1 
                                             ࠢ ࠦ2
            NOT       NOT  exp         TRUE,᫨ ࠦ - FALSE,
                                             FALSE
            AND       exp1 AND exp2    TRUE,᫨ ⮫쪮  ࠦ1
                                             ࠦ2 - TRUE
            OR        exp1 OR  exp2    TRUE,᫨ ࠦ1  -
                                            2 - TRUE
            XOR       exp1 XOR exp2    TRUE,᫨ ࠦ1 ࠢ .
                                            NOT  ࠦ2
            FALSE     (0000 16-CC)      IF TRUE  㫥 -
                                        - FALSE
            TRUE      (FFFF 16-CC)      IF TRUE oe 㫥 -
                                       ࠦ - TRUE
            ---------------------------------------------------------

               1-6. ᮪ ४⨢ ᫮ ᥬ஢

            ---------------------------------------------------------
            ४⨢                 ᠭ ਬ
            ---------------------------------------------------------
            .LFCOND         ਢ ᯨ᮪ ᥬ ᫮, -
                            ⢥  FALSE.
            .SFCOND          뤠 ᯨ᪠ ᫮, ᮮ⢥-
                             FALSE.  㬮砭 ⠭-
                             .SFCOND.
            .TFCOND         砥 ᯨ᮪ ᫮ ᥬ஢
                            FALSE 筮 ४⥫ MASM /X.
                             ᨬ  ४⥫
                            .LFCOND  .SFCOND.
            .LIST           ਢ ᯨ᮪ 室 ப. ⨢-
                             .LIST,    ࠪ-
                            ⨪ ⨭ ᫮ ᥬ஢,
                            । .LFCOND,.SFCOND  .TFCOND.
            .XLIST            뤠.  ४뢠 
                            ।騥  ४⨢.
         ------------------------------------------------------------

                                      - 1-21 -

                         ᫮ ᥬ஢. 뢮

            ⪮   ᫮ ᥬ஢,   㢨,
           ࠢ 祭  ணࠬ     -
         ஢.  ⮬   ᬮ५ ਬ ᫮ ᥬ-
           祭   祭   ⥫  ⥩
         ணࠬ.
              ஭㫨 ⮫쪮  ஡.    ਬ  뫠
         ࠧ࠭  ⮫쪮      ਬ ᫮-
          ஢.     ਬ  ?  ०
         ᥣ   ਬ  .   ᬮ७ ⮩ ⥬
          ⥯  室.

                        ᫮ ᥬ஢  

             ᫮  ᥬ஢  ᯮ  ।-
         묨  砬,  ᭮ ⥭樠 ᫮  ᥬ஢
         ॠ   ⠭   ப. -
          楫  ⥩ ᫮  ᥬ஢, 
         ᯥ樠쭮  ਥ஢  ࠡ  ப.  ᬮਬ
         ᭮   ⥩.
                 ࠧ   㯯.    㯯
         室 ,  ਥ஢  ᮧ ।  -
         ,     室 , 祬  
          ।,  室  ਭ ⭮ -
         .  ਬ஬  㦨  file_head,  ।祭 
           । 䠩.
             㯯  ।祭  樨 ,  -
           ଠ樨, 㯭 ணࠬ,  ⠪ ଠ-
         樨,   ணࠬ ⠥ ⢥  饩 -
         ஢.            㬥   ࠡ뢠
         ⢮ ᮢ 㬥⮢  ।  㬥⮢.   
          ६      ন      
         稪,  ᢮  ணࠬ   ⨭ ࠡ.  
         ୮ ࠢ,  ਢ   ⠢襩    
         ,  묨 ਬࠬ ன 㯯. 筮, 
           㯯 筮 筮 ४뢠.
               ⨯  ணࠬ ᯮ  ।⢠ 
         ⮣,  ⮡  ⥫쭮      
           -  㣮  ୮  ࠡ.   㣮 ⨯
         ணࠬ ᯮ  ।⢠  ᮧ  ᮪-
          ஢, ᭮  ᯮᮡ ᥬ ন -
         饭 ଠ.   楫 饭 ᢮ ࠡ  ணࠬ
         諥  ⠫ ॠ樨.
            ਬ஬  ᮪ ஢   ᯮ짮  ,
          ਬ   ᥬ.  設⢮ -
           8086  ᯮ짮  ॣ஢묨  ࠭-
           ࠭ ,      ।-
         ⢥ ࠭. ਬ஬   PUSH,   186/188

                                      - 1-22 -

          286  ⠫  ⥪ ।⢥ .
            쭮  ᪮஢  pushi (⠫ -
         ।⢥), ।饥 㦭 㬥  ॣ  ⠫-
         饥  ॣ.  , ᫨  ।祭  ॠ-
         樨  饩 㭪樨 ⠫, ⥫쭮, ⮡  
         ⮫쪮  ⠫  ।⢥ ,    ᠬ 蠫,
           ⠪  室. 㣨 ᫮, ணࠬ-
          ⥫  ਬ 饭 pseudoopcode (ᥢ),  -
         騩   .쭮 ᥢ   , -
         騬  ࠭    騬  ⠭  ७
          .
             蠣  ᠭ ⠪ 楫  砥 
         । ࠭.   襭 ⮩  MASM   楫
          ᯥ樠 ஢.

                            । ⨯ ࠭

             ।  8086/8088    ᭮ ⨯ ࠭.
          - ॣ஢ ࠭,  ।⢥ ࠭, ࠭ -
           .  ࠭, ਥ஢  , 
         ⨯.   ।⠢ ᮡ ᯥ樠 砨 㬬-
         ஢  (ॣ 饣 祭 A)  ॣ ᥣ⮢.   
         ⨯   ࠧ  8-  16-⮢ . -
              near (,  騥 ⮫쪮  ᬥ饭) 
         far (, 騥  ᬥ饭  ᥣ).
               㤥  ࠧ    ⨯?   㤥 ᯮ짮
          MASM .TYPE  TYPE.  . 1-7 ਢ १ -
         짮  ஢  ࠧ묨 ᠬ ࠭.

                      1-7.   MASM .TYPE  TYPE

                             ࠢ  .TYPE   TYPE
            ---------------------------------------------------------
                                       
            ---------------------------------------------------------
            .TYPE   5  7           8     । 譥
                                        2     । 쭮
                                        0     ୠ 뫪
            .TYPE  0 ... 2          0     ᮫ ०
                                        1     ணࠬᨬ
                                        2     ᨬ  
            TYPE   ६          01     ६  
                                        02     ६  ᫮
                                        04     ६  
                                               ᫮
                                        08     ६  ⢥୮
                                               ᫮
                                        10     ६  10 ⮢
                                              ࠧ୮
                                                
            TYPE  ணࠬ ⪮   FFFF   "" ணࠬ
                                               ⪠
                                        FFFE   "" ணࠬ
                                               ⪠
         -------------------------------------------------------------

                                      - 1-23 -

                             ਬ  .TYPE  TYPE
         -------------------------------------------------------------
             ६     .TYPE   ।  TYPE  ।
         -------------------------------------------------------------
            ।⢥     20    쭮      0   ୮
            ஢          20    쭮      0   ୮
            ⪠          22    쭮         ⢮
                                                         ⮢
            "" ⪠      21    쭮     FFFF ""
                                                         ⪠
            "" ⪠      21    쭮     FFFE ""
                                                         ⪠
             樨 MASM    00    ୮       0   ୮
            ᥭ              00    ୮       0   ୮
         -------------------------------------------------------------


            ᮪ ਬ஢  த.  .TYPE  ᯮ -
          ࠧ ॣ஢,    ᯮ ॣ஢ 樨
         ⨯ [BX]  ARRAY[BX][SI]. ᨬ쭠 ⠭ ⨯ A -
          ஬ .TYPE  ६, । 쭮.
             ६  ࢮ  室  ᥬ  뫪 ।  
         ᯮ.  IFDEF  ⢥ १ 頥 " ।-
         ",  .TYPE  頥  "୮",   TYPE 頥 㫥
         .  뫪 ।   ਬ ⮫쪮  ࠢ:
         ᫨ ,  ਬ  .

                     訡   ᮡ MASM

             ᯮ짮  ஢  MASM 易   ᮡ-
         .  MASM  室 ᥬ஬, 騬 -
         祭  ᨬ  ࢮ 室  ⥬ 騬 ᨬ 
         ஬ 室.  ணࠬ ⪨  ⪨   ᨬ-
         .   祭 ।  ६ ࢮ 室,  ⥬
         ᯮ  ஬ 室  樨 ணࠬ .
            ᬮਬ ᫥饥 ॢ ᮡ⨩.    㦥  뫪
         ।  MASM   ᯮ   ࢮ 室   ᯮᮡ
         ।  ⨯. ⪠ 뫪   ᨬ 뢠 -
          ᮮ饭  訡 "  ।".  MASM 㦨
          訡  ࢮ 室,       த  -
         ᥬ஢.  MASM  ᯮᮡ   訡,  । ⨯
         ᨬ  ⥪,  ஬  . ᫨  ।-
           ୮,  MASM   ᢮ ࠡ,  뤠 ᮮ饭
         "䠧 訡  室",    㪮   
          ᫥   nop ( 樨),   ⥫.
              ᯮᮡ ࠭ 䠧 訡   ଠ-
           ࠡ MASM.   設⢥ 砥 MASM ᯮᮡ ।
         ⨯ ࠭  ⥪. ணࠬ । ਬ 室
           ᥣ   筮   ணࠬ ᮢ. 
          ᯥ樠 砥,   MASM  訡 ।-
         ,  ணࠬ  । 冷 ࠡ ᥬ, -
           ४ PTR (㪠⥫).    

                                     - 1-24  -
         PTR ணࠬ   㪠 ⨯ 뫪 ।, , ᫥-
         ⥫쭮, MASM  ᤥ 訡筮 ।. , 
         ࠡ 楫  ,  ⥫쭮 㢥稢
         ⭮ 訡筮 ࠦ.  ᫨  楫 
         ।祭  ࠡ⪨  ᮢ ࠭,  筮 -
         祭  ⠪  㤭 ।  ⥪.  ஬ ⮣,
          ᯮ짮 PTR       -
           (  㢨   @PushOP),    ⨣ 楫 ᢮-
          ணࠬ  譨 ⠫.
            ஠஢ ,   訡筮 ।  ࠡ뢠
         䠧 訡,    襩 ⭮  ࠭  -
         .    䠧 訡  १⮬ ᬥ -
         묨 ᨬ (ਬ,  ⮪) ᢮ 祭  室-
         ,  ,  ⮡   ࠡ뢠          ꥬ
         ணࠬ      室.   ।࠭ 祭
         ⮪, ࠧ饭 ᫥ ,  , 祬 MASM 
         㪮祭  ﬨ NOP.   室  㣮
          ⠪ ⠢ ﭭ묨 ணࠬ ⪨.

                              ࠢ ப. ਬ

             ᮦ,  ᯮᮡ  .TYPE ᯮ  -
         ।⢥ ࠭  ॣ ⥫쭮 㬥蠥  -
          ⨯ ࠭ .   ᮡ  , -
           㬥  ॣ஬,    ᪮஢ ᯮᮡ
          ⮣.  । ⮣,    㬥 ॣ-
         ஬,  筮  ⮫쪮    ।,  
         ᫨    ॣ஬    । ᭮
         뫪,  ।⥫쭮  뫪  ।⢥
         .
              ⠥  ᯮ짮 ᫮ ᥬ஢-
             ४⨢ IRP  IRPC.     砥 
         । ਭ 㬥    - .
          襭  -   㬥 ॣ஬, ᯮ
         ᮯ⠢ ப.       .TYPE    ।
         ⮫쪮 ,    ॣ  쭮  ᮫,  
          ஢ન   ॣ  ਬ    ᮯ⠢
         ப.   㭪  믮  ਢ   ⨭ 1-8 
         ?reg.


              ⨭ 1-8.  ᮯ⠢  ॣ஢ - ?reg
         -----------------------------------------------------------------

            FALSE    EQU     0
            TRUE     EQU     0FFFFh
            ;;
            ;;**** ?REG - ।,   㬥 ॣ஬
            ;;
            ?reg     MACRO   arg
            ?isr8    =       FALSE
            ?isr16   =       FALSE
                     IRP     reg,<ax,bx,cx,dx,bp,sp,si,di,cs,ds,es,ss>
                     IFIDN   <&&reg>,<&arg>
                     ?isr16  =       TRUE
                     EXITM

                                      - 1-25 -
                     ENDIF
                     ENDM    ;;  ᥪ樨 IRP
            ;; ᫨ ࠢ, ⠭ 
                     IF      (?isr16)
                     EXITM
                     ENDIF
            ;; ᫨   ࠢ, த 
                     IRP     reg,<ah,bh,ch,dh,al,bl,cl,dl>
                     IFIDN   <&&reg>,<&arg>
                     ?isr8   =        TRUE
                     EXITM
                     ENDIF
                     ENDM    ;;  ᥪ樨  IRP
            ;; ᫨ ࠢ, ⠭ 
                     IF      (?isr8)
                     EXITM
                     ENDIF
            ;; ᫨  ࠢ, ஡ ய  ॣ஢
                     IRP     reg,<AX,BX,CX,DX,BP,SP,SI,DI,CS,DS,ES,SS>
                     IFIDN   <&&reg>,<&arg>
                     ?sir16  =       TRUE
                     EXITM
                     ENDIF
                     ENDM    ;;  ᥪ樨 IRP
            ;; ᫨ ࠢ, ⠭ 
                     IF      (?isr16)
                     EXITM
                     ENDIF
            ;; ᫨   ࠢ, ஡ 
                     IRP     reg,<AH,BH,CH,DH,AL,BL,CL,DL>
                     IFIDN   <&&reg>,<&arg>
                     ?isr8   =        TRUE
                     EXITM
                     ENDIF
                     ENDM    ;;  ᥪ樨 IRP
                     ENDM    ;;  மᠭ
         -----------------------------------------------------------------

            C楢 ⮣ ,     ᮯ⠢, -
          :

            IRP       reg,<ax,bx,cx,dx,bp,sp,si,di,cs,ds,es,ss>
            IFIDN     <&&reg>,<&arg1>
            ?isr16    %        TRUE

            ஢  ப  ⠪:

             reg ࠢ ax...ss 믮 . . .
                ᫨ reg ࠢ 㬥 arg . . .
                     㬥  ॣ!

             ᫥  ⠭          .
         -,  室  ஢  ॣ஢, ᠭ
          묨, ⠪  訬 㪢. ४⨢ ᫮ ᥬ-
         ஢  IFIDN ࠢ ப  筮 ᮮ⢥⢨. ᬮ
           ᨫ,  ?reg  .   ᮯ⠢  -
         ஢, 騥   让    㪢 (ਬ

                                      - 1-26 -
         "aL"). -,  室  ஢    ஢ન:  
         16-⮢ ॣ஢    8-⮢ ॣ஢.   -
         樨 稥  ⤥ ஢ப  ਭ   
         룮,  ⠪ ஢ન  묨  ᫥饬 -
         .
             ?reg     ⥫ ᨭ⠪᪨ .
          - ४⨢ 襭  EXITM.   ४⨢ ᯮ-
           襭 ࠡ  ?reg  㦥 ᮢ.
             祢 ᯮ짮  ᠭ    
         IFIDN. ᭮ 㪮  MASM   짮⥫
          "㪠뢠 ⮫쪮 ᠭ,  ᪮쪮    ஢
         ".  ⮫ 筮 ࠦ   ᭮  -
         襭 ஡.  "஢ " ⭮   㡨 -
         ,    뫪,   㡨 ,  室 
         ᠭ.  ࠧ, arg1 ਢ ⮫쪮   ᠭ-
         ,   ६  reg, ᠭ ண 室  
         ,  ॡ   ᠭ. ଠ   -
         ত,    । ࠧ襭 ⢠ ஢ -
           ⢠ ॡ㥬 ᠭ.    , 
            室 㪠뢠 ⢮ ᠭ,  ⪨
         ᠭ ਬ஢,   ࠢ쭮 㭪樮஢-
         ,  㢥砫 ᯥ宬.
            ਢ ⨭ 1-9   ?reg 뢠,   
         믮     㭪.  , ॣ b,
          ᯮ MASM,  뢠  ?reg.    
           ⮫,   室 ᮡ ண ࠢ
          室 ⥪ ணࠬ  .


              ⨭ 1-9.   ࠢ  ॣ஢ - ?reg
         -----------------------------------------------------------------

                       ?reg   ax      ; "AX" - ॣ ?
            FFFF       dw     ?isr16               <--- TRUE
                       ?reg   CS      ; "CS" - ॣ ?
            FFFF       dw     ?isr16               <--- TRUE
                       ?reg   zork    ; "ZORK" - ॣ ?
            0000       dw     ?isr16               <--- FALSE
            0000       dw     ?isr8                <--- FALSE
                       ?reg   01234h  ; "1234" - ॣ ?
            0000       dw     ?isr16               <--- FALSE
            0000       dw     ?isr8                <--- FALSE
                       ?reg   b      ; "BP" - ॣ ?
            0000       dw     ?isr16               <--- FALSE
            0000       dw     ?isr8                <--- FALSE
         -----------------------------------------------------------------

                      ⠪᪨  㬥⮢ 

              , ᯮ饣  ॣ஢,  ॠ-
          饭  PUSH,  ஥   @PUSHOP (⮫-
          ࠭).  (砭:  ᬠਢ  pusha  " -
         ⮫ ",  PUSHA   樨  稯 186,188
          286  Intel.  ᯮ짮      ࠭
         ᮢ⨬ ᭨ . 筮,  ᥣ  ᯮ짮
          PUSHA   pusha  ய஢ 8086  8088).
             㯮  ࠭ ⭮⥫쭮 ⨯ ࠭,   

                                      - 1-27 -
         ।    ॣ஬,  室    
         ।.      @PUSHOP ।,   
         ࠭  뫪   ।⢥  .  @PUSHOP
         뫠      ?reg,     ?reg   祭 
         ணࠬ  @PUSHO.  @PUSHOP .  ⨭ 1-10.
            @PUSHOP ᯮ   ?reg ࠧ 16-    8-
         ⮢ ॣ.    PUSH  ࠡ뢠  8-⮢
         ॣ,  祭 ࢮ ᨬ  ॣ ᯮ-
          ४⨢ IRPC. ⥬ @PUSHOP  , ନ ,⠪ -
         ࠧ,   16-⮢ ॣ, ஥ ਥ  PUSH. -
         ⨬,      ⮬    ᭮  室  ᯮ짮
         㤢 ᠭ, 祬   ஭ ଠ쭮 㬥-
         , ⠪  楯 ப    殢.
              砥,  । 稥 ।⢥
         ,  뢠  @PushIm.     ᫮ , 祬
         쭮 室,  ⠪  ।,   ।
         ।⢥     ⥪    ᯮ짮  ॣ.
          ⮣  ᯮ 㪠⥫  (BP)   ⥪.
         ᫥ ࠭ BP  AX  ⥪ @PushIm  ।⢥
            ᮤন AX,      ᮤন
         BP.  ᫥ ⠭ ᮤন BP   ᮤন-
          AX,  ⠫   ⥪.   @PushIm ਢ  -
         ⨭ 1-11.

                   ⨭ 1-10. 饭  PUSH - @PushOp
         ----------------------------------------------------------------

            ;; **** @PushOp   饭 ࠭  PUSH
            ;; ᫨ ࠭ ।,   :
            ;;              ॣ஬
            ;;              뫪  
            ;;
            ;; ᫨ ࠭  ।,   뫪 
            ;;              ।⢥ 
            @PushOp  Macro  arg
                     .SALL
                     IFDEF  &arg                 ;; ࠭ । ...
                        ?argtyp = .type &arg           ;;   ⨯
                        IF     ((?argtyp and 3) EQ 2)  ;;࠭ - 
                          ?argsiz = ((type &arg) + 1)/2 ;;  
                                                        ;;  ᫮
                          ?argoff = 0          ;; ⠭ ᬥ饭  0
                          REPT   ?argsiz   ;;    ᫮
                             ?argadd = word ptr &arg + ?argoff ;;
                             .XALL                               ⨯ ptr
                             push     ?argadd ;;த- . 
                             .SALL
                             ?argoff = ?argoff + 2 ;;᫥- ᫮ 
                           ENDM
                         ENDIF
                         IF ((?argtyp AND 3) EQ 1)  ;;࠭ - ணࠬ
                           @PushImOff   &arg  ;;த ᬥ饭 ⪨
                         ENDIF
                         IFE    (?argtyp and 3) ;;࠭ - .祭
                           ?reg &arg
                           IF   (?isr16)        ;;࠭ - ॣ 16
                             .XALL

                                      - 1-28 -
                             push        &arg   ;;த ।.
                             .SALL
                          ELSE
                            IF  (?isr8)         ;;࠭ - ॣ 8
                              IRPC chr1,&arg1
                                .XALL
                                push  &&chr1&&x ;;࠭ ⪨ ॣ.
                                .SALL
                                EXITM
                                ENDM
                             ELSE            ;;। ।.
                                @PushIm &arg  ;;த ।. 
                              ENDIF
                            ENDIF
                          ENDIF
                        ELSE                  ;;த ।.
                           @PushIm &arg
                        ENDIF
                        ENDM                  ;; மᠭ
         -----------------------------------------------------------------


            ⨭ 1-11.  ⠫ ।⢥  -
                                      @PushIm
         ----------------------------------------------------------------

            ;; **** @PushIm  ⠫ ।⢥ 
            @PushIm Macro arg
                    .XALL
                    push   bp       ;;࠭ 㪠⥫ 
                    mov    bp,sp    ;;६ 㪠⥫ ⥪  BP
                    push   ax       ;;࠭ ⥫
                    mov    ax,&arg  ;; ।⢥ 
                    xchg   [bp],ax  ;;  BP  ।. 
                    mov    bp,ax    ;;⠭  BP  AX
                    pop    ax       ;;⠭ ⥫
                    .SALL
                    ENDM            ;; மᠭ
         ----------------------------------------------------------------

              ᢥ뢠   ᢥ   -
             ⥪.       ⥪ ᭮.
         ᫨   ন 뢠,  ।࠭ -
         ⭮  ⥪    믮 ⮫쪮 -
         १ 饭 뢠.
               砥,      ⪠ ⮫  ⥪
         ணࠬ ,   ।,  ணࠬ  -
         ࠭  ⢨⥫쭮  ᬥ饭 ⪨.   ⠫  ⥪
         ᬥ饭 ⪨,   ।⢥ ,  뫮  ᯮ짮
          @PushImOff.   ⫨砥   @PushIm ⮫쪮 ᯮ-
          :

             mov      ax,offset  &arg   ,

          ⨢ ⮬ ६饭     @PushIm.  
         @PushImOff ਢ  ⨭ 1-12.


                                      - 1-29 -

                ⨭ 1-12.    த   ⥪ ᬥ饭
                       ।⢥  - @PushImOff
         ---------------------------------------------------------------

            ;; **** @PushImOff  த ᬥ饭 ।.
            @PushImOff  MACRO  arg
                   .XALL
                   ush    bp       ;;࠭ 㪠⥫ 
                   mov     bp,sp    ;;६ 㪠⥫ ⥪  BP
                   push    ax       ;;࠭ ⥫
                   mov     ax,offset &arg ;; ᬥ饭
                                          ;;।.
                   xchg    [bp],ax  ;;  BP  .
                   mov     bp,ax    ;;⠭   BP  AX
                   pop     ax       ;;⠭ ⥫
                   .SALL
                   ENDM             ;; மᠭ
         ----------------------------------------------------------------


            ᫥  砥,   ᯮ @PushOp, -
          ⪠ אַ ⠫  ⥪  .  -
             ⮬  砥  砥  ⮬,   ⥪ ਭ
         ⮫쪮 16-⮢ .  ᯮ  ४⨢  ४  PTR,
          㡥 MASM ࠭ 㦭  ᫮.  @PushOp -
         ন 横,           ᫮
         ࠭塞  ,  㢥稢       室
         横.   ࠧ  ࠭  ⥪  ᫮, -
          ᫮, 10-⮢    .
            , ⨬,    @PushOp      ࠡ뢠
         뫪, ᮤঠ騥 ᫮  (2[BP]  ..).  砥 -
         室   ਬ  ஢ન, ᯮ -
         த४⨢  IRPC      㬥  ᪮,
         樨 " + "  " + ᬥ饭".
            ⮣    @PushOp ਢ  ⨭ 1-13, 
         ᮤন १ ᪮쪨 맮  @PushOp.
            ᫥  ⨭,   @PushO ࠡ뢠 4-᫮-
          ६,     .  ⠫ 
                㬥.    ⮣ ᨢ ⨭ 
         ,     ப  ६頥  (0000  
         ࢮ ᫮, 0002  ண  ..).  ᮦ,   
            ਢ 132- ⨭, , ᫨  -
          ஢, ஡  ⠪ ⨭ ᠬ.
             ਬ ᮡ  ⥬,      -
         ,   ਬ   ᥣ ।⥫쭥 ਬ-
          ணࠬ.   ᠥ ࠡ⪨ ⥪ (  @PushIm 
         @PushImOff),    ᯮᮡ 믮  樨  "-
         " ﭨ  CALL  ⥪.   ᮡ   ६-
         饭  ⨨   ⥪,  ⠪  ணࠬ  
          設 ⥪  ⢨ ,  맢 쥧
         ᫮.

                              ।०
                     ᯮ짮 ᫮  ᥬ஢
                                  ᮢ  MASM

            ਬ ,   ࠫ ,     ࠡ뢠

                                      - 1-30 -
               뢠 ணࠬ.     ।⠢
          २⢠  ன 樨 ணࠬ   
         ᢮   ࠭祭  ᯮ짮 ⥪,  १-
         ⮬  ணࠬ   ꥬ .   ணࠬ-
         ,   ,  楫ᮮࠧ 뢠  ࠡ-
         饥 ,     -  ணࠬ,    ,  
          ࠧ⢫ .  饬 砥  ᯮ -
         ,  ணࠬ  ,  ६ 筮,   
          䨣஢ ணࠬ, ந    ᫮-
         .  ᯮ ணࠬ,  ணࠬ    
         㦭 ᯮ    (⠪,  ⮡   뫮 
         ).
            㣨 ⮭  ⮬  ࠡ     ᯮ짮
         ᨬ.   ,  ᨬ ।   -
           equ  =.  ⥬  ᨬ  MASM  
          祭ﬨ.   砥,   ணࠬ 뢠,  
         㬥    ᨬ  .  ᭮ 㪮-
           MASM 㬥   ⢨⥫묨  -
         ࠬ   ᯮ짮 ⠭ "  ".  㬥
           ᮧ     ,  ᯮ  
         ⥪⮢ ⠭, ।  ⠢ ப ⥪ 
         㣮 .     ᨬ.      
         ᢮  ⥪⮢  祭     equ,   
          ஢  ᫥⢨.  쪮  = ࠧ-
         蠥  ᢠ ᨬ ஢ 祭  ਡ TYPE.
         ਬ ⠪ ࠭祭    ᯮᮡ  室 ।⠢-
           ᬮ७ ஢ ୮ ࠢ.

             ⨭ 1-13. ਬ ७ 饭  @PushOp
         -----------------------------------------------------------------
            dat_seg SEGMENT
            datq    dq      4040414142424343h
            dat_seg ENDS
                    .
                    .
                    .
            start:
                    @PushOp ax          ;࠭ 饣 ॣ
            1               push   ax
                    @PushOp cs          ;࠭ ॣ ᥣ
            1               push   cs
                    @PuchOp al          ;࠭ ⪮ ॣ
            2               push   ax...     ;ᤥ 騩 ॣ
                    @PushOp 01234h      ;࠭ ⠭
            2               push   bp
            2               mov    bp,sp
            2               push   ax
            2               mov    ax,01234h
            2               xchg   [bp],ax
            2               mov    bp,ax
            2               pop    ax
                    @PushOp  'A'         ;࠭ ⠭
            2                push   bp
            2                mov    bp,sp
            2                push   ax

                                      - 1-31 -
            2                mov    ax,'A'
            2                xchg   [bp],ax
            2                mov    bp,ax
            2                pop    ax
                   @PushOp   start     ;࠭ ᬥ饭 ணࠬ.⪨
            2                push   bp
            2                mov    bp,sp
            2                push   ax
            2                mov    ax,offset start
            2                xchg   [bp],ax
            2                mov    bp,ax
            2                pop    ax
                   @PushOp   datq       ;࠭ ⢥ ६
            2                push   ?argadd         ;1- ᫮
            2                push   ?argadd         ;2- ᫮
            2                push   ?argadd         ;3- ᫮
            2                push   ?argadd         ;4- ᫮
                   .
                   .
                   .
         ----------------------------------------------------------------

                  ࠢ  몥 ᥬ

            ,     室 ।⢠  ஥
          ஢ ࠢ,  ࠧ 㯨  ⮬.
             㯮ॡ    ୮  ࠢ
         ।⠢  . 1-8.
             . 1-8   ᯮ  ॠ樨
         ୮ ࠢ  ஢ ணࠬ.  -
          몠  ;   㣨 -  .  ⨬  ⮫쪮,  
         AH    ᯮ짮   IF-THEN-ELSE  -
         -77.   ᥬ   ⠪   楫 -
         ஢,       ন IF-THEN-ELSE  -
           ᥬ஢.   稭   :   ,   
         ᥬ  室      ஢ 祬 모 ᮪
         ஢.     訫,       ⥫쭮
          ணࠬ஢,     ॠ , ᯮ
         ।⢠, ᬮ७ ࠭.
             ⨫   ᬮ७  .   - 
         CASE (롮). ,   ।⠢, ⢮ 
         ᨭ⠪ 몠 ᪠,    樨 
            㣨 몠 ணࠬ஢.   CASE -
         砥  ஢થ  ࠢ⢮ 祭 祢 ६ var
           ᯨ᪠.  ᫨ 室   ਠ   ᯨ᪠
          ᮤঠ    ⮬  ,   ।, 
          祢 ६. ᯮ,  MASM  ࠧ蠥 -
         짮 ப  (=) ஬ 祭 ᨬ.
              CASE ,     
         砨    ᮮ⢥騥   ⪨  ⢥ 㬥⮢ 
         .  ᥢ ᬠਢ  ᫥饬 ࠧ 
         .
             ᯨ᮪ ᠭ ஢ ᮢ  ࠢ
         ਢ  ⨭ 1-14.    쭮 ᯮ짮-
          ਥ  (;;),      .
           ࠡ뢠 ⢮ ᨬ.  ᯮ짮-
            ⨬ 浪  ⥮᪨ ࠭祭 -

                                      - 1-32 -
            89.  MASM ᪮॥ 室  । -
         ,  祬  । .  樠  ॡ-
         .  ᨬ ᠬ樠騥.


                   1-8.  ୮ ࠢ

            --------------------------------------------------------
                                     
            --------------------------------------------------------
            IF-THEN           IF<᫮> (믮, ᫨ ᫮
                              ⨭)
                              ENDIF
            IF-THEN-ELSE      IF<᫮> (믮, ᫨ ᫮ -
                              ⨭)
                              ELSE (믮, ᫨ ᫮ )
                              ENDIF
            DO-WHILE          WHILE <᫮> (믮, ᫨ ᫮-
                               ⨭)
                              END_WHILE
            REPEAT-UNTIL      REPEAT (믮, ᫨ ᫮ )
                              UNTIL <᫮>
            FOR-DO            FOR<var> = <begin> to <end> (믮
                                楫 祭 var 
                              begin   end  ⥫쭮,  㢥稢
                               㬥 var   宦
                              横)
                              END_FOR
            CASE_OF_<var>     CASE <var> OF
                              <case A> (믮, ᫨ var = A)
                              <case B> (믮, ᫨ var = B)
                              .  .  .
                              <case N> (믮, ᫨ var = N)
                              < 㬮砭> (믮, ᫨  -
                              ⢥⢨)
                              END_CASE


                ⨭ 1-14. ஢  ࠢ
         -----------------------------------------------------------------

            PAGE    50,132   ;⠭ 뤠 ⨭   ࠭
            ;;********************************************************
            ;;                            
            ;;********************************************************
            ;;
            FALSE   EQU     0          ;। "FALSE"
            TRUE    EQU     0FFFFh     ;। "TRUE"
            ;;
            ;;** @TestSym *************************SUPPORT MACRO******
            ;; ,   । ஢ . ᫨ ,
            ;;  ⠭ "?SYMDEF"  樠樨 稪 ⮣
            ;; ஢. 筮   ࢮ 室 ᪠
            ;; 稪  0. 祭  ᨬ  砫 室 2
            ;;   襭. ,  ᨬ "?p2sw..."
            ;;   "Phase 2 SWitch" (४⥫ 䠧 2).
            ;; ஢,   ஢  २樠樨 -

                                      - 1-33 -
            ;;  ஢ 10. 砭: 祭 10 ࠭  -
            ;; 砫쭮 ஢  ⥬, ⮡ १ࢨ஢ 
            ;; ஢     .
            ;;
            @TestSym MACRO p1,p2
                    IF1       ;;᫨ 1- 室,஢  ।
                    IFNDEF    &p1&p2
            ?p2sw&p1&p2      = TRUE    ;;⠭  2- 室
                                       ;;८। ४⥫,
            ?symdef          = FALSE   ;;뢠饥 樠- 稪
                     ELSE
            ?symdef          = true    ;;ࠧ 饭 稪
                     ENDIF   ;; ஢ન ᠭ ᨬ
                     ENDIF   ;; ஢ન 1- 室
                     ;;
                     IF2     ;;᫨ 2- 室, २樠-
                     IF      (?p2sw&p1&p2) ;;᫨ २樠. , 
            ?p2sw&p1&p2      = FALSE   ;; ४⥫ ८-
                                       ;; 2- 室
                     IF      (?p2sw&1&10) ;;  ஢ 樠-
                                           ;;஢ 10
                     .ERR    ;;   ᮮ饭  訡
                     %OUT @TestSym mfcro: &p1 ஢  
                     %OUT                   2- 室
                     ENDIF   ;;. ஢ 10  ஢થ 樠-樨
            ?symdef          = FALSE   ;;맢 २樠- 稪
                     ELSE
            ?symdef          = TRUE    ;;ࠧ 饭 稪
                     ENDIF   ;; ஢ "᫨  २樠."
                     ENDIF   ;; ஢ 室 2
                     ENDM    ;; மᠭ
            ;;
            ;;**@ZeroSym**************************SUPPORT MACRO********
            ;; 樠஢ 稪 ᫥⥫쭮 ⥩
            ;;  ࢮ ᯮ짮
            @ZeroSym         MACRO     p1,p2
            &p1&p2 =        0
                   ENDM
            ;;
            ;; ** @IncSym *********************** SUPPORT MACRO ******
            ;;   1 稪 ᫥⥫쭮 ⥩
            @IncSym          MACRO    p1,p2
            &p1&p2 =                  &p1&p2   + 1
                   ENDM
            ;;
            ;; ** @DecSym *********************** SUPPORT MACRO *****
            ;;   1 稪 ᫥⥫쭮 ⥩
            @DecSym          MACRO    p1,p2
            &p1&p2 =                  &p1&p2   -1
                   ENDM
            ;;
            ;; ** @MakeJmp2 ********************** SUPPORT MACRO *****
            ;; ⠢  室 (JMP)  ணࠬ 
            @MakeJmp2        MACRO    p1,p2,p3
                    jmp               &p1&p2&p3
                   ENDM

                                      - 1-34 -
            ;;
            ;; ** @MakeJmp *********************** SUPPORT MACRO *****
            ;; ଠ஢ ᨬ   JMP
            @MakeJmp         MACRO    p1,p2,p3
            ??tmp  =                  &p3&p2
                   @MakeJmp2          p1,p2,%??tmp
                   ENDM
            ;;
            ;; ** @MakeJmpLabel2 *****************SUPPORT MMACRO *****
            ;; ⠢   JMP  ணࠬ 
            @MakeJmpLabel2   MACRO    p1,p2,p3
            &p1&p2&p3:
                   ENDM
            ;;
            ;; ** @MakeJmpLabel ****************** SUPPORT MACRO *****
            ;; ଠ஢ ᨬ  । ⪨ -
            ;;  JMP
            @MakeJmpLabel    MACRO    p1,p2,p3
            ??tmp  =                  &p3&p2
                  @MakeJmpLabel2      p1,pp2,%??tmp
                  ENDM
            ;;
            ;; ** @IfTrue ************ STRUCTURED CONTROL MACRO *****
            ;; ஢  "IF" - IF TRUE
            @IfTrue          MACRO    p1
                  LOCAL         iftrue
                   j&p1          iftrue    ;;३  ᥪ樨 "IF"
                   IFNDEF        ?if_level ;;⠭  ஢
                                           ;;
            ?if_level            =      10
                   ELSE
            ?if_level            =      ?if_level + 1
                   ENDIF
                   @TestSym      ?if_nest,%?if_level  ;;⠭ 
                                        ;; ᫥⥫쭮
                   If            (?symdef)
                   @IncSym       ?if_nest,%?if_level
                   ELSE
                   @ZeroSym      ?if_nest,%?if_level
                   ENDIF
            ;; ⠢ 室   ᥪ "ELSE"  "IF NOT"
                   @MakeJmp      ?if_,%?if_level,?if_nest
            iftrue:
                   ENDM
            ;;
            ;; **  @IfElse *********** STRUCTURED CONTROL MACRO *****
            ;; ஢  "ELSE"
            @IfElse          MACRO
                   IFNDEF         ?if_level
            ;  - "@IfElse"  ⮣  "@IfTrue"
                   EXITM
                   ENDIF
                   IF(?if_level LT 10)
            ;  - "@IfElse"  ⮣  "@IfTrue"
                   EXITM
                   ENDIF
            ;; ஢  "@IfElse"
                   @IncxSym       ?if_nest,%?if_level

                                      - 1-35 -
                   @MakeJmp       ?if_,%?if_level,?if_nest
                   @DecSym        ?if_nest,%?if_level
                   @MakeJmpLabel  ?if_,%?if_level,?if_nest
                   @IncSym        ?if_nest,%?if_level
                   ENDM
            ;;
            ;; ** @IfEnd *********** STRUCTURED CONTROL MACRO *****
            ;; ஢  "END"  ᮢ⭮
            ;; ᯮ짮  "@IfTrue"
            @IfEnd  MACRO
                    IFNDEF    ?if_level
            ;  - "@IfEnd"  ⮣  "@IfTrue"
                   EXITM
                   ENDIF
                   IF  (?if_level LT 10)
            ;  - "@IfEnd"  ⮣  "@IfTrue"
                   EXITM
                   ENDIF
            ;; ஢  "@IfEnd"
                   @MakeJmpLabel  ?if_,%?if_level,?if_nest
            ?if_level     =       ?if_level - 1
                   ENDM
            ;;
            ;; ** @DoWhile ******** STRUCTURED CONTROL MACRO *****
            ;; ஢  "DO_WHILE"
            @DoWhile       MACRO  p1,p2,p3
                   LOCAL   iftrue
                   IFNDEF  ?do_level      ;;⠭  ஢
                                          ;;
            ?do_level      =      10
                   ELSE
            ?do_level      =      ?do_level + 1
                   ENDIF
            ;; ⠭   ᫥⥫쭮  ஢
            ;; 
                   @TestSym       ?do_nest,%?do_level
                   IF             (?symdef)
                   @IncSym        ?do_nest,%?do_level
                   ELSE
                   @ZeroSym       ?do_nest,%?do_level
                   ENDIF
            ;; ⠢  砫 横
                   @MkeJmpLabel  ?do_,%?do_level,?do_nest
            ;; ⠢  ணࠬ  ஢ ᫮
                   cmp      &p1,&p3
            ;; ३  ᥪ樨 "DO_WHILE_TRUE"
                   j&p2     iftrue
            ;; ३  ᫥饩 ⪥ ᫥⥫쭮
                   @IncSym        ?do_nest,%?do_level
            ;; ⠢  ணࠬ  室   横
                   @MakeJmp       ?do_,%?do_level,?do_nest
            ;;  ᥪ "DO_WHILE_TRUE"
            iftrue:
                   ENDM
            ;;
            ;; ** @DoExit *********** STRUCTURED CONTROL MACRO *****
            ;; ஢  "DO_EXIT"  ᮢ⭮

                                      - 1-36 -
            ;; ᯮ짮  "@DoWhile"
            @DoExit      MACRO
            ;; ⠢  ணࠬ  室   横
                         @MakeJmp        ?do_,%?do_level,?do_nest
                         ENDM
            ;;
            ;; ** @DoEnd ************ STRUCTURED CONTROL MACRO *****
            ;; ஢  "DO_END"  ᮢ⭮
            ;; ᯮ짮  "@DoWhile"
            ;;  @DoEnd  ணࠬ   -
            ;; ஢ ENDDO
            @DoEnd       MACRO
                         IFNDEF          ?do_level
            ;  - "@DoEnd"  ⮣  "@DoWhile"
                         EXITM
                         ENDIF
                         IF  (?do_level LT 10)
            ;  - "@DoEnd"  ⮣  "@DoWhile"
                         EXITM
                         ENDIF
            ;; 室  ।  ᫥⥫쭮
                         @DecSym         ?do_nest,%?do_level
            ;; ஢ 室  砫 横
                         @MakeJmp        ?do_,%?do_level,?do_nest
            ;; ३  ᫥饩 ⪥ ᫥⥫쭮
                         @IncSym         ?do_nest,%?do_level
            ;; ஢   "@DoEnd"
                         @MakeJmpLabel   ?do_,%?do_level,?do_nest
            ?do_level      =       ?do_level - 1
                         ENDM
            ;;
            ;; ** @Repeat *********** STRUCTURED CONTROL MACRO *****
            ;; ஢  "@Repeat"
            ;; "@Repeat"  ணࠬ   -
            ;; ஢ REPEAT-UNTIL
            @Repeat      MACRO
                   IFNDEF   ?rep_level   ;;⠭  ஢
                                          ;;
            ?rep_level     =        10
                   ELSE
            ?rep_level     =        ?rep_level + 1
                   ENDIF
            ;; ⠭   ᫥⥫쭮  ஢
            ;; 
                   @TestSym         ?rep_nest,%?rep_level
                   IF               (?symdef)
                   @IncSym          ?rep_nest,%?rep_level
                   ELSE
                   @ZeroSym         ?rep_nest,%?rep_level
                   ENDIF
            ;; ⠢  室  砫 横
                   @MakeJmpLabel    ?rep_,%?rep_level,?rep_nest
                   ENDM
            ;;
            ;; ** @Until ***********STRUCTURED CONTROL MACRO *****
            ;; ஢  "@Until"  ᮢ⭮
            ;; ᯮ짮  "@Repeat"

                                      - 1-37 -
            @Until       MACRO      p1,p2,p3
                         LOCAL      iftrue
                         IFNDEF     ?rep_level
            ;  - "@Until"  ⮣  "@Repeat"
                         EXITM
                         ENDIF
                         IF (?rep_level LT 10)
            ;  - "@Until"  ⮣  "@Repeat"
                         EXITM
                         ENDIF
            ;; ⠢  ணࠬ  ஢ ᫮
                         cmp             &p1,&p3
            ;; ३  ᥪ樨 "@Until" .TRUE.
                         j&p2            iftrue
            ;; ⠢ 室  砫 横
                         @MakeJmp    ?rep_,%?rep_level,?rep_nest
            iftrue:
            ?rep_level     =        ?rep_level- 1
                         ENDM
            ;;
            ;; ** @For *********** STRUCTURED CONTROL MACRO *****
            ;; ஢  "@For". ᯮ 
            ;;  ⠪:
            ;;     @For     counter,begin,end,dir,step
            ;;
            @For    MACRO           p1,p2,p3,p4,p5
                    LOCAL           first
                    LOCAL           iftrue
                    IFNDEF          ?for_level  ;;⠭ 
                                    ;;஢ 
            ?for_level     =        10
                    ELSE
            ?for_level     =        ?for_level + 1
                    ENDIF
            ;; ⠭   ᫥⥫쭮 
            ;; ஢ 
                    @TestSym        ?for_nest,%?for_level
                    IF              (?symdef)
                    @IncSym         ?for_nest,%?for_level
                    ELSE
                    @ZeroSym        ?for_nest,%?for_level
                    ENDIF
            ;; ⠢  ணࠬ  樠 稪 -
            ;; ( 1- 蠣)
                    mov             &p1,&p2 ;樠஢ 稪
                    jmp             first   ; 横 FOR
            ;; ⠢  室  砫 横
                    @MakeJmpLabel   ?for_,%?for_level,?for_nest
            ;; ⠢  ணࠬ  蠣 ᫥  믮
            ;;  ஢
                    IFIDN           <P4>,<+>
                    inc             &p1     ;㢥 稪
                    ELSE
                    IFIDN           <p4>,<->
                    dec             &p1     ;㬥 稪
                    ELSE
            ;  - ୠ ᯥ䨪 蠣   "@For"

                                      - 1-38 -
                    EXITM
                    ENDIF
                    ENDIF
            first:           ;஢  室 த
            ;; ⠢  ணࠬ  ஢ ᫮
                    cmp             &p1,&p3  ;⨣  ?
            ;; ३  ᥪ樨 "FOR_TRUE"
                    IFIDN           <p4>,<+>
                    jl              iftrue   ; - த 横 FOR
                    ELSE            ;; 㬮砭 -  蠣 "-"
                    jg              iftrue   ; - த 横 FOR
                    ENDIF
            ;; ३  ᫥饩 ⪥ ᫥⥫쭮
                    @IncSym         ?for_nest,%?for_level
            ;; ⠢  ணࠬ  室   横
                    @MakeJmp        ?for,%?for_level,?for_nest
            iftrue:
                    ENDM
            ;;
            ;; ** @ForEnd ******** STRUCTURED CONTROL MACRO *****
            ;; ஢  "FOR_END"  ᮢ⭮
            ;; ᯮ짮  "FOR"
            ;; @ForEnd  ணࠬ   -
            ;; ஢ 横 FOR
            @ForEnd MACRO
                    IFNDEF          ?for_level
            ;  - "@ForEnd"  ⮣  "FOR"
                    EXITM
                    ENDIF
                    IF  (?for_level LT 10)      page_end12
            ;
                    EXITM
                    ENDIF
            ;;
                    @DecSym          ?for_nest,%?for_level
            ;;
                    @MakeJmp         ?for_,%?for_level,?for_nest
            ;;
                    @IncSym          ?for_nest,%?for_level
            ;;
                    @MakeJmpLabel    ?for_,%?for_level,?for_nest
            ?for_level       =       ?for_level- 1
                    ENDM
            ;; **************************************************

                       ࠡ ஢ 

               ᮢ  ⥪   室 প
           ࠢ.  ᬮਬ ਬ, ਢ 
         .1-2.      IF-THEN-ELSE  ॡ  
         ஢ 室  ६ 㭨묨 ⪠.   -
          㭨 ⮪, ᣥ஢ ४⨢ LOCAL,  
          ᯮ짮 ᨬ -  室 ᮧ ᮡ⢥
         ⪨   稪.  ᯥ稢 אַ ࠢ -
         祩.
               ஢  筮 ⮣ -
         .  ,    . 1-2  IF-THEN-ELSE,
         易    ᫮  b,  ᯮ  ᫥⥫쭮  ⮪
         3,4,5.   ॠ ,  ⠪  ⪨ ᯮ  ⮬

                                      - 1-39 -
          浪,    室,  ⪨ 室. , 
         ⮫쪮    ࠢ, ⮩ 稪
          ࠢ.    ᫥⥫쭮 ⮪ 
           ஢ IF-THEN-ELSE   쥧  ⮪
         ᫥⥫쭮.    ஡ 蠥 ᯮ짮 
          ஢  ᢮ 稪.
             ⪨  ᮧ  ।⢮ 祭   
           ⮢ ଠ樨.   ⮬  -
         䨪 ⨯ , ਬ, ?if_us, do_, ?rep_. 
         ᯮ  㬥襭 ⭮ 䫨   ᮧ묨
         짮⥫  ᨬ   ⪠.  ன  ଠ樨
         ।⠢ ᮡ ஢ ,   ᯮ 
         ࠧ祭    ஬  ⪨ n   ஢  
         ஬ ⪨ n  ᭮ ஢   ஬  ⪨ n
          㣮 ஢ .,  ᯥ祭 㭨쭮-
          ⪨  室 ⭮ ஢   -
          祭 稪.
                           

                              [        j(a)     1_1:
                              [        jmp      1_2:
            IF(᫮ ) ----[  L_1:        .       () true-
                              [              .                    |
                                             .                    |
                               [       j(b)     1_3:              |
               IF(᫮ b)---[       jmp      1_4:              |
                               [  L_3:                (b) o true|
                                             .                    |
                                             .                    |
                                             .                    |
                              [         jmp     1_5:              |
               ELSE ----------[   L_4:       .       (b)  false|
                              [              .                    |
                                             .                    |
               ENDIF -----------  L_5:              (a)  true-
                             [          jmp     1_6:
            ELSE ------------[    L_2:             (a)  false-
                             [               .                    |
                                             .                    |
                                             .                    |
                               [        j(c)    1_7:              |
               IF(᫮ ) --[        jmp     1_8:              |
                               [  L_7:             (c)  true   |
                                             .                    |
                                             .                    |
                                             .                    |
                              [         jmp     1_9:              |
               ELSE-----------[   L_8:              (c)  false |
                              [              .                    |
                                             .                    |
                                             .                    |
               ENDIF------------- L_9:             (a)  false-

            ENDIF---------------- L_6:

            .1-2.  ࠢ IF   ᮮ⢥  
                       몥 ᥬ

                                      - 1-40 -
             ࠢ   㭨 ⠢ ⪨, ᣥ஢
         訬 ஢묨 ᠬ,     ⨭  1-15.
            ᫠  ஢ , 祭 -
         ண 稭  10  ⥬, ⮡  ஢  ᥣ
         뫨  १ࢨ஢    .    ।頥 ᮢ
         ஢ 1 稪 11 (1-11)  ஢ 11 稪 1 (11-1).
            ⪨ ⥪ ணࠬ   筮  ᮮ⢥  ⮬,  
         ।⠢  .  1-2.   ⠫쭮 ᬮ७  㢨,
          ७   몥 ᥬ ᮧ    -
         ,  ।⠢  .1-2.
              ⪨    ⥩,   ⨯  -
         ୮ ࠢ  ন  稪.   -
          砥  ᥡ ᨬ 稪  㪠  ⥪饣 ஢
         .  饭  ᮯ஢  稪 
         ᮧ ᫥騥 :  testsym,  zerosym,  incsym   decsym.
         ⨬  ᠬ  । 㬥,    ᯮ 
         ᮧ 稪.  㬥 ।⠢ ᮡ  䨪
         ⨯ (?if_)  ⥪騥 ஢ .


                   ਥ ஢   ।०

             室  ᮧ  ⢨⥫    室 
          室,   㤥  ᯮ짮    mkjmp,  mkjmp2,
         mklbl    mklbl1.  ⢨⥫ ⪨   䨪
         ⨯  ஢.  ⢥ ᯮᮡ   ᫮  祭
         ᨬ 砥   ਬ  業 (%), 
         ⢨⥫ ⮫쪮  ᯮ짮  㬥⮬  맮 .
          ⨬ ᫨ ᨬ, ।塞  ⠬ ଠ-
         樨  稪, ⠪:

            mkjmp2      p1,p2,%&p3&p2

             㪮⢮  MASM ᮮ頥 ,     -
         ᠭ  (&)    ᯮ짮  맮 .   -
         ,   ᮧ ६ ६  ᯮ짮 .

            ??tmp =     &p3&p2
                    mkjmp2 p1,p2,%??tmp

                 ᮡ ᫥饥.  ࢠ ଠ,  ᮤঠ
         ᠭ  맮 ,   ࠡ.  롮 ⮩
          뢠 ஡ 饩 ᮢ⨬   ॠ-
         㥬. ஬ ⮣,  ᥣ   ᮬ, 
          ন    ᠭ樮஢ 㭪  
         ॠ樨 ᮢ⨬.  襭 ⮩  ⠥  -
         ⥫.
             ᯮ짮    ᠭ樮஢     
         ணࠬ,   饩 ணࠬ ,  饩 -
           "᪨ 譨"  ४ᨢ .  ஬ ⮣,
           ⨦ 魮  ⮤ ᮧ ᨬ 稪 
         ᪮쪨 ⥩     室  ᮧ  
         稪.  । ᢮ ᯮ짮  稪  樠-
         ஢,   ⨢ 砥 ࢠ  ⪠  㢥  

                                      - 1-41 -
         㬥   祭 맮 訡 "  ।".  -
          ᫮  IFDEF,   ஢,  ॡ  
         樠   ᯮ짮 ᨬ.
            樠 易     ⮭ ࠡ MASM.  
          ⠭, MASM  室 ᥬ஬, ।-
         騬  ᨬ  ࢮ 室  ⥬ ᯮ騬   -
         ஬.   ,   । ᨬ 饭    ࢮ
         室    ஬.   ࠧ,   MASM 稭 ன
         室,   稪 ࢮ 室 㦥 ।    ᮤঠ
         ᢮  祭. ᫨  砫 ண 室 २樠-
          ᨬ  ந室, 䠧  訡,  ⠪  
         砫 祭 稪 ⫨.
             樠樨 ᨬ  ࢮ 室 室  -
           IFDEF,  ⠪   ࠭   ,  ᪮쪮 稪
         ॡ,   ᯮ짮 IFDEF  ஬ 室 -
         .   訫  ஡, ᮧ ᨬ ?2sw ...,  
         ஬ 室   室 ⠭  㫥
         祭.   砥  Switch (४⥫) 䠧 2.  
          ஢ન ।⠢   ,  -
            ஢  ᠬ 孥 ஢, 㪠뢠,
          樨 IF-IFEND, DOWHILE-DOEND  .. ᯠ७ ࠢ쭮.
             ⨭  1-16 ਢ  ਬ ७ ᮢ
         ୮ ࠢ, । ࠭.   , 
               ७,    ࠡ뢠  
         ⪨ 室.  ᫨     ࠡ⮩  -
         ᮢ    ⠫쭮,  ᯮ ४⨢ .LALL.  ਡ
         ⮫쪮  ᮪饭 ਬ, ⠪  ࠡ⪠   -
          믮 ⢠ 蠣.  ⢮ 蠣 ⠪ -
         , 祬 ந室 㢥祭 ॡ㥬 ६ ᥬ஢-
            ணࠬ.   ᯮ    ,      ண
         ᥬ஢,  뢠  ஥ ஢.


                  ⨭ 1-15.   IF-THEN-ELSE

         ----------------------------------------------------------------
                         ;  室  ணࠬ

                      @IfTrue e             ᫮ (a)
                        @IfTrue e           ᫮  (b)
                        @IfElse             "else"  ᫮ (b)
                        @IfEnd               ᫮ (b)
                      @IfElse               "else"  ᫮ (a)
                        @IfTrue e           ᫮ (c)
                        @IfElse             "else"  ᫮ (c)
                        @IfEnd               ᫮ (c)
                      @IfEnd                 ᫮ (a)
                         ; ⨭ ७
                      @IfTrue e             ᫮ (a)
            1         je    ??0000
            3         jmp     ?if_100
            1 ??0000:
              ; 믮, ᫨ ᫮ () ⨭
                      @IfTrue e             ᫮ (b)
            1         je    ??0001
            3         jmp     ?if_110

                                      - 1-42 -
            1 ??0001:
              ; 믮, ᫨ ᫮ (b) ⨭
                      @IfElse               "else"  ᫮ (b)
            3         jmp     ?if_111
            3 ?if_110:
              ; 믮, ᫨ ᫮ (b)  ⨭
                      @IfEnd                 ᫮ (b)
            3 ?if_111:
                      @IfElse               "else"  ᫮ (a)
            3         jmp     ?if_101
            3 ?if_100:
              ; 믮, ᫨ ᫮ ()  ⨭
                      @IfTrue e              ᫮ (c)
            1         je    ??0002
            3         jmp     ?if_112
            1 ??0002:
              ; 믮, ᫨ ᫮ () ⨭
                      @IfElse               "else"  ᫮ (c)
            3         jmp     ?if_113
            3 ?if_112:
              ; 믮, ᫨ ᫮ ()  ⨭
                      @IfEnd                 ᫮ (c)
            3 ?if_113:
                      @IfEnd                 ᫮ (a)
            3 ?if_101:
         ---------------------------------------------------------------


               ⨭ 1-16. ७  ஢ ᮢ

         ----------------------------------------------------------------
                      @IfTrue e
            1         je    ??0000
            3         jmp     ?if_100
            1 ??0000:
              ; 믮, ᫨ ⨭
                      @IfElse
            3         jmp     ?if_101
            3 ?if_100:
              ; 믮, ᫨  ⨭
                      @IfEnd
            3 ?if_101:
              ;- - - - - - - - - - - - - - - - - - - - - - - - - -
                      @DoWhile ax,le,bx
            3 ?do_100:
            1         cmp      ax,bx
            1         jle    ??0001
            3         jmp     ?do_101
            1 ??0001:
              ; 믮   ax <= bx
                      @DoExit
            3         jmp     ?do_101
              ;   ணࠬ
                      @DoEnd
            3         jmp      ?do_100
            3  ?do_101:
            ;- - - - - - - - - - - - - - - - - - - - - - - - - -  - -

                                      - 1-43 -
                       @Repeat
            3  ?rep_100:
               ; 믮  ᮡ ᫮
                       @Until   ax,e,bx
            1          cmp      ax,bx
            1          je     ??0002
            3          jmp      ?rep_100
            1  ??0002:
               ;- - - - - - - - - - - - -- - - - - - - - - - - - - - -
                       @For     ax,10,20,+
            1          mov      ax,10       ;樠஢ 稪
            1          jmp      ??0003      ; 横 FOR
            3  ?for_100:
            1          inc      ax          ;㢥 稪
            1  ??0003:        ;஢  室 த
            1          cmp      ax,20       ;⨣  
            1          jl       ??0004      ; - த 横
            3          jmp      ?for_101
            1  ??0004:
               ; 믮   = 10  20  蠣 2
                       @ForEnd
            3          jmp      ?for_100
            3  ?for_101:
         ----------------------------------------------------------------

                                  ᥢ-CASE

            ᫥ ,  ஥      ⮩  ,  
         ᥢ-case,  ।⠢ ⨭ 1-17.    
          "।"  ন   ,    -
           ᬠਢ     ୮ ࠢ.  
         ᢮ 㭪  case  室    ᯥਧ樨,
         ⨯ 塞  GOTO  몥 ࠭.


                     ⨭ 1-17. ᠭ  ᥢ-se

         ----------------------------------------------------------------
            @Case        MACRO    ey,ase_list,jm_labels
                         ??tmp_1  = 0
                         IRP      match,<&case_list> ;;᫥⥫-
                                                    ;; ਠ⮢
                           ??tmp_1= ??tmp_1 + 1  ;;⠭ 
                                                 ;;
                           cmp    key,&&match  ;ਠ ?
                           ??tmp_2= 0
                           IRP    retl,<&jmp_labels> ;;᫥⥫-
                                                    ;; 室
                             ??tmp_2=0 ??tmp_2 + 1  ;;  ⨦
                                                    ;; 
                             IF   (??tmp_1 EQ ??tmp_2)
                               je &&&retl                     ; !
                               EXITM
                             ENDIF    ;; ஢ન ᫮
                           ENDM       ;; 2-  IRP
                         ENDM         ;; 1-  IRP
                         ENDM         ;; மᠭ
         ---------------------------------------------------------------

                                      - 1-44 -

            ᮡ 訩 ਬ ६ ᨭ⠪-
            ᯨ᪮.  譨 横, irp match,<&case_list>,
         ⠭ ᫥⥫쭮 ⮢  ᯨ᪠  ਠ⮢,  
         ७ 横, irp retl,<&jmp_labels>, 롨ࠥ ᮮ⢥騥
         ⪨ 室. 襭   ᯮ짮   ॠ-
         樨 ᮢ ⠭.
              ⠭ 譨 横  ⠭  ᫥-
         ⥫쭮 ⮢ ᯨ᪠   ᮢ. ᫥ ।-
          ᮢ,  ᪠   xth,  室  ७-
           横    ⠭ ᫥⥫쭮  xth ⮣
         ᯨ᪠.    ਠ⮢ ॠ樨   ᮧ-
           室__믮_᫮,   ࠭ 室
              ⨢.    ࠧ  ,
            ஡ 室 ᯮ짮 ⥫-
          ᠭ.
            ७   @Case  ।⠢  ⨭ 1-18.   ,
         ⮡   ᯨ᪥       , -
         砥 ணࠬ.  ⨢ 砥   祭 -
           ࠢ.


                    ⨭ 1-18. ७  ᥢ-@Case

         ----------------------------------------------------------------
                @Case    al,<'A','B','C','D'>,<subA,subB,subC,subD>
            2              cmp   al,'A'    ;ਠ ᮮ⢥?
            3              je    subA               ; !
            2              cmp   al,'B'    ;ਠ ᮮ⢥?
            3              je    subB               ; !
            2              cmp   al,'C'    ;ਠ ᮮ⢥?
            3              je    subC               ; !
            2              cmp   al,'D'    ;ਠ ᮮ⢥?
            3              je    subD               ; !
                subA:
                         jmp     merge
                subB:
                         jmp     merge
                subC:
                         jmp     merge
                subD:
                         jmp     merge
                default:
                merge:
         ----------------------------------------------------------------



                                   

               ᯮ짮    樨   ண-
         ࠬ .    室  ⮤ , ,
          楫 祭 ᬮਬ ,  騥 ⮫쪮 .
            ⥩訬 ਬ஬  MASM, 饩 , -
         :

                                      - 1-45 -

            TenBytes      DB      10  DUP 4     ;१ࢨ஢ 10
                                                ;⮢  ஬ 4

               ࠭祭 ਬ,  ⠪    ।-
         ⥫쭠,   ⨬  ᫥⥫쭮 ᥫ 
          ᭮ .   ⢥ ਬ १ࢨ㥬 N ᫮ -
            ᥫ  1  N:

         @FirstTry    MACRO  N       ;;।   ࠬ஬ N
                    NUMB = 0         ;;樠஢ ᫮
                      REPT N         ;; ᫥饥 N ࠧ
                      NUMB = NUMB+1  ;; 㢥 
                      DW    NUMB     ;;। ᫮ NUMB
                      ENDM           ;;  REPT
                    ENDM             ;; 

            ⨬,     ४⨢ MACRO  ⢮
         ENDM.  ࢮ ६, NUMB, 祭 ᢠ ஬
         =,   EQU,     祭   REPT.
            ४⨢ REPT ।⠢ ᮡ 横  , ⨯
         do...while 몠 ᮪ ஢.    ⢨, -
         祭  REPT  ENDM,  N ࠧ.   砥 ந室 㢥-
         祭 NUMB  1,  ⥬ ᮧ ᫮, ᮤঠ饥  ᫮.
         (  ,    㪠뢠 MASM  ᮧ ⠭, -
            ᥬ஢.    㪠뢠  横,
         騩 室  ६ 믮 ணࠬ)
            ᫨ மᠭ  FirstTry   砫 襩 ணࠬ-
         ,   ⥬ ᯮ짮   ᥣ   N, ࠢ 4, 
         稬:
            @FirstTry 4
          ᮮ⢥ ⮬,  MASM 㤥 ᥬ஢  ᫮-
          ᥫ  1  4.
             ᫨誮 ⮩ ਬ ᯮ짮 .   -
          , ᮧ ⠡ 筮- ᥫ,  -
          㦨 ⠡楩 ᬮ  ८ࠧ ⭠-
             BCD.


            @BCDtable  MACRO  N    ;;।   ࠬ஬ N
                    NUMB = 0       ;;樠஢ ᫠
                    HIGHBYTE = 0
                      REPT N       ;; ᫥饥 N ࠧ
                      NUMB = NUMB+1  ;;㢥 
                      IF (NUMB GT 9)
                      NUMB = 0
                      HIGHBYTE = HIGHBYTE + 10H
                      ENDIF
                      IF (HIGHBYTE GT 90H)
                      EXITM
                      ENDIF
                    BCDNUMB = (NUMB OR HIGHBYTE)
                    DW BCDNUMB   ;;। ᫮   NUMB
                  ENDM          ;;   REPT
                ENDM            ;;  


                                      - 1-46 -

             ਬ ⥫쭮 ᫮,     ।⠢ 祣
         ᮡ  ⭮ ணࠬ.  ० 祬 ஢  -
            ४⨢ (ନ "४⨢"  ᯮ㥬 
         祭 ⮣,      MASM,     ),
         ࠧ ᬮ १ ࠡ ணࠬ  N, ⠭-
           20:

            38                  @BCDtable   20
            39 0004  0001        2 DW   BCDNUMB  ;
            40 0006  0002        2 DW   BCDNUMB  ;
            41 0008  0003        2 DW   BCDNUMB  ;
            42 000A  0004        2 DW   BCDNUMB  ;
            43 000C  0005        2 DW   BCDNUMB  ;
            44 000E  0006        2 DW   BCDNUMB  ;
            45 0010  0007        2 DW   BCDNUMB  ;
            46 0012  0008        2 DW   BCDNUMB  ;
            47 0014  0009        2 DW   BCDNUMB  ;
            48 0016  0010        2 DW   BCDNUMB  ;
            49 0018  0011        2 DW   BCDNUMB  ;
            50 001A  0012        2 DW   BCDNUMB  ;
            51 001C  0013        2 DW   BCDNUMB  ;
            52 001E  0014        2 DW   BCDNUMB  ;
            53 002O  0015        2 DW   BCDNUMB  ;
            54 0022  0016        2 DW   BCDNUMB  ;
            55 0024  0017        2 DW   BCDNUMB  ;
            56 0026  0018        2 DW   BCDNUMB  ;
            57 0028  0019        2 DW   BCDNUMB  ;
            58 002A  0020        2 DW   BCDNUMB  ;

             ⮫ ।⠢ ᮡ   ப  ᥬ୮
         ⨭,  ன - ᬥ饭  ⭮⥫쭮 ,  ⨩
         - ,   ⥫ - ⠡ ᥫ BCD  1  20.
             筮 ᬮਬ  . ० ᥣ  樠-
         㥬  ६.  NUMB 㤥 横  1  9,  ।-
         ⠢  訩 ,    ६  HIGHBYTE 㤥 ।⠢
           ᮪ 浪. ⠫쭮   ࠢ -
         ४⨢ REPT.     ७  㢥稢
          1 ६ NUMB.  ⥬ ।塞, ࠢ   10, , ᫨
          ⠪,  । ᪠ 横 ⠭   0. ⥬
         塞  HIGHBYTE - 10, 㢥稢  ⪮ ᫠  -
          BCD.  蠥  IF.
            騬 蠣 ஢塞,  ᫨ ஥  ᫮   BCD
           ⮣,    ࠭  ᫮,   室  .
         ।᫥ ⢨ ᮧ ᫮   BCD,  믮  
         ᪮  ""  ன   ன ⪮.  ,
         ᮧ ᫮,  ᮤঠ饥 ॡ㥬 ᫮  BCD.  ENDM -
         蠥 横 REPT;  ன - 蠥 .  뫪  ᯨ
         ᥫ BCD 室 ⪠.    ⨬      
         ࠧ,  頥  .  ᯮ㥬  ⠭
         @, ⮡   ᮧ MASM:

            @BCDtable MACRO N    ;;।   ࠬ஬ N
                    BCD1to&N label word       ;;। 
                    NUMB = 0     ;;樠஢ ᫠
                    HIGHBYTE = 0
                      REPT N     ;; ᫥饥 N ࠧ

                                      - 1-47 -
                      NUMB = NUMB+1   ;;㢥 
                        IF (NUMB GT 9)
                        NUMB = 0
                        HIGHBYTE = HIGHBYTE + 10H
                        ENDIF
                        IF (HIGHBYTE GT 90H)
                        EXITM
                        ENDIF
                      BCDNUMB = (NUMB OR HIGHBYTE)
                      DW    BCDNUMB ;;। ᫮   NUMB
                      ENDM          ;;  REPT
                    ENDM            ;; 

              ⨭   룫廊 ⠪:

            31                   @BCDtabel   20
            32 0004          1   BCD1to20  label word ;। 
            33 0004  0001    2       DW    BCDNUMB         ;
            34 0006  0002    2       DW    BCDNUMB         ;
            35 0008  0003    2       DW    BCDNUMB         ;
             ..

             ᠭ  (&)  ᮮ頥 MASM  室 ⠢
         祭 N,  ᯮ㥬  樨஢ .      
             㤮⢮.  稥   ᯨ᪠ ᥫ BCD ⮫쪮 
         ⪨ ⠢   㯠  ᯨ  ᯮ짮  .
           ⥫      ᯨ᪠.   -
         ࠦ %     祭  ᫠   ᯮ짮-
             ⪨.   ९뢠     
         ᫥ :

            @BCD     MACRO      NAME,NUMBER    ;;NAME  ⪨
                            ;;NUMBER  
                     BCDof&NAME     DW  NUMBER ;;। ᫮ 
                                    ;;NUMBER   BCD
                     ENDM           ;; 
            ;;
            @BCDtable MACRO N  ;;।   ࠬ஬ N
                     NUMB  = 0 ;;樠஢ ᫠
                     INDEX = 0
                     HIGHBYTE        = 0
                       REPT N   ;; ᫥饥 N ࠧ
                       INDEX = INDEX + 1
                       NUMB  = NUMB + 1   ;;㢥 
                         IF (NUMB GT 9)
                       NUMB        = 0
                       HIGHBYTE = HIGHBYTE + 10H
                       ENDIF
                       IF (HIGHBYTE  GT 90H)
                       EXITM
                       ENDIF
                       BCDNUMB = (NUMB OR HIGHBYTE)
                       @BCD %INDEX,BCDNUMB    ;;INDEX  ⪨
                                 ;;BCDNUMBER  
                       ENDM      ;;  REPT
                     ENDM        ;; 


                                      - 1-48 -

            ,    ᬮਬ ⨭,   ,    
         ⠡ ᥫ BCD  ᮮ⢥ :

                        @BCDtable  20
            0004  0001   3 BCDof1  DW  BCDNUMB  ;। ᫮ 
            0006  0002   3 BCDof2  DW  BCDNUMB  ;      NUMBER
            0008  0003   3 BCDof3  DW  BCDNUMB  ;        
            000A  0004   3 BCDof4  DW  BCDNUMB  ;    BCD
            .
            .
            .

             ࠧ  ᮧ ᫮ ⠡.᫨  -
          ⨯ (N x M)/((P+Q) MOD T),   筮  ⠡
               ᮧ MASM.
            ஢  ९   ,  稢   ⥪
         襣  - த ᫥饣:

            IFE (BCDNUMB LE 0FFFFh) ;;, 祬  ࠭ ᫮?
            DW      BCDNUMB         ;;筮 
            ELSE
            %OUT ERROR IN @BCD MACRO

             OUT 뢮 ᮮ饭  ࠭  ६ ᥬ஢-
           -    砥 ᮮ饭 "ERROR IN @BCD MACRO" (訡 
          @BCD).
                ᯮ짮 ࠬ,   ,
         ࠧ 묨.  ⢥ 筮 ࠬ  ⠪
            ⮢,   㤥 ᯮ짮 
         ⨢ ᮧ .  ਬ, ᫨  ⨬ ⠭
         ᯨ᮪ ᮮ饭,   뢮  ࠭,   -
          ஭:

            @OptDisp MACRO OptType,Options ;; OptType = ⪠,
                                           ;; Options = ᯨ᮪
            OptType&list     db   Options
            ENDM                           ;; 

         ⥬   ᯮ짮 o  ᥣ :

            @OptDisp LineSpeed,<'2400sq],'2400','4800'>

            Linespeed - 㤥   ⪥,    ப  㣫
         ᪮ 㤥 ⠢  ४⨢ db,  ᫨  ࠫ:

            LineSpeedList   db      '1200'
                            db      '2400'
                            db      '4800'

             ਬ ࠭祭,  ⠪   㯥   ப
          室  ,      4 ᨬ. ⥫-
               ப ६ , 稢-
           㫥     ASII.   ਢ  ᮧ ⠪
         ப:


                                      - 1-49 -
            @MakeList MACRO Name2,messag
                    MESSAGE&Name2    db   CR,LF,messag,CR,LF,0
                    ENDM
            ;;
            @OptDisp MACRO Options ;;OptType = ⪠,Options =  ᯨ᮪
                    Name3 = 0
                      IRP msg,<Options>
                      Name3 = Name3 + 1
                      @MakeList %Name3,msg
                      ENDM
                    ENDM             ;; 
            ப ᥣ    ᯮ짮 ⠪:

            @OptDisp <'Error','Waiting','Computing'>

             ப  㣫 ᪮ 㤥   e-
         ⨢ db,    ᫥饬 ࠣ ⨭:

                              @OptDisp <'Error','Waiting','Computing'>
           0D 0A 45 72 72 6F 72 3 MESSAGE1 db CR,LF,'ERROR',CR,LF,0
           0D 0A 57 61 69 74 69 3 MESSAGE2 db CR,LF,'Waiting',CR,LF,0
           0D 0A 43 6F 6D 70 75 3 MESSAGE3 db CR,LF,'Computing',CR,LF,0
            ⥫ ⮬    ,    ᮧ-
          室 ᫠ ப  ᯮ짮    ४⨢  IRP
           ࠫ쭮  ⥪  (<  >).     襭
         ஡ 㯠  ⮬ ᯨ ப.  室 ᯨ᮪ -
         ᮢ. 饥  ।⠢ 襭 ⮩ ஡.
            @MakeList ACRO Name2,messag
                    MESSAGE&Name2   db    CR,LF,messag,CR,LF,0
                    ENDM
            ;;
            @MakeNames  MACRO Name5
                    db       MESSAGE&Name5
                    ENDM                   ;; REPT
            ;;
            @OptDisp MACRO Options ;;OptType =  ⪠, Options = ᯨ᮪
                    Name3 = 0
                      IRP   msg,<Options>
                      Name3 = Name3 + 1
                      @MakeList  %Name3,msg
                      ENDM
                      Name4 = 0
                      MessageList Label WORD
                        REPT Name3
                        Name4 = Name4 + 1
                        @MakeNames  %Name4
                        ENDM                  ;; REPT
                      ENDM                    ;; 
               ᯮ   ᥪ樨 ,   稬  
         १,  ᫨  ࠫ ᫥饥:
            @OptDisp  <'Error','Waiting','Computing'>
            MESSAGE1    db   CR,LF,'Error',CR,LF,0
            MESSAGE2    db   CR,LF','Waiting',CR,LF,0
            MESSAGE3    db   CR,LF,'Computing',CR,LF,0
            MessageList Label   WORD
            dw      MESSAGE1
            dw      MESSAGE2
            dw      MESSAGE3

                                      - 1-50 -
            筮,  樨        ᤥ
         ࠧ .    ᨫ    ⥩.
             ⮤   ᯮ짮  樨 ணࠬ
         ,   ⥯  ᬮਬ.

                         樨 ணࠬ 
             ।⠢ ᮡ  堭 । ᥬ
          ⢨  ணࠬ஢.  ,    -
          ணࠬ  ᨪ,  ⠢   믮 -
           ࠡ,     ணࠬ  ARO,  -
         ⠢  ᥬ,      砥 MASM,  믮  
           ࠡ  ணࠬ஢.  ,   ⢥
         饭 ਬ ⮣,      ,  ਢ ,
         ॠ饥  ᨬ  䠩:
            @WritToFil MACRO    ;;। 
                   mov       ah,40h   ;;㭪 DOS    䠩
                   int       21h                ;;맮 DOS
                   ENDM                         ;; 
              ⮣,  ⮡  ࠧ,   ⨬ 
         ᨬ  䠩, ९뢠  MOV  INT,   ᯮ짮-
           WritToFil.
         Ŀ
               ࠢ⥫ ࠪ⨪ ᮢ  ணࠬ      
                                                                        
              ணࠬ   ᤥ   ᠬ,    
           ,   ଫ  ணࠬ -
           ணࠬ  䥪⨢.       - 
         ணࠬ  砥  ⮬,   ⠢ 㦭 ண-
         ࠬ  ।⢥  䠩 室 ⥪,   ६
           ணࠬ ࠧ頥 -  㣮 ,   
         믮  ணࠬ     ⢫ 室
            ᯮ. 㣨 ᫮, ᯮ짮 -
         ᮢ  ᮧ 饣    -
          室  믮 ணࠬ,  ᫮ 맮
          ⮬  ணࠬ.                                    
             ᯮ㥬   ணࠬ    ᮮࠦ-
         ,    ⪮ ࠧ 頥  -  -
         䮭      १  த -  ६
          室  㣮   ࠢ뢠 ⪮  -
         襩 .  ஬ ⮣,  ப  ⥭  㬥襭
         ᢮ ࠧ஢,  ⠪     ணࠬ 直 ࠧ,
            ᯮ짮.  ᫨  砥 ᫨誮 -
         ,   ᫥ ନ  ணࠬ.    "誮
         "?     室, 室  -
          ணࠬ,  ⮣,   ᯮ 㭪,  
         ⭮襭 祭   ᪮ 믮 ணࠬ.     
             ࠡ ॥,  ⠪   ॡ ࠭ -
         ஢,饭  ⥪ ࠬ஢  ..   -
         ७ ⪨ ᮢ      ⥫  
         ꥪ  ᯮ  䠩. 砫   , ᫨
         ,    ⠭ ࠢ塞, ९   -
         ணࠬ.   㢨,  ନ 맮 ணࠬ
           .                                                  
         

                                      - 1-51 -

                                 ᫮ 

            ਢ  ਬ ப ᫨誮 ,  ⮬ ࠧ-
          ᪮쪮 "ਮ ".  ।,    楫 -
           ⥫    ᨬ  ࠭,        䠩.
            ९  ᫥騬 ࠧ:

            @WritToFil MACRO EOFLAG   ;;। INCHRIF 
                                   ;;㬥⮬ EKOFLAG
            IFIDN <EKOFLAG>,<EKO>  ;;᫨ 㬥 EKOFLAG
                                   ;;祭 ६ 㪢
                                   ;;EKO, ᥬ஢
                                   ;;᫥ ப
            mov      ah,06h  ;;㭪 DOS   
                             ;;⠭ 뢮
            ELSE       ;;᫨ EKOFLAG  筮 ६ 㪢
                       ;; EKO, ᥬ஢ ᫥ ப
            mov      ah,40h    ;;㭪 DOS    䠩
            int      21h                     ;;맮 DOS
            ENDM                             ;; 

              砥 MASM  㬥 EKOFLAG  楫  -
         ।,  ⠢: mov ah,06h  mov ah,40h:

            @WritToFil EKO    ; MASM ⠢ MOV AH,06  
                              ;INT 21H
                    .
                    .
                    .         ;⠪  㬥 祭 EKO
            @WritToFil NOEKO  ;MASM ⠢ MOV AH,40H 
                              ;INT 21H
                    .
                    .
                    .         ;⠪  㬥  祭 EKO


            ⨬,   ।饬 ਬ  NOEKO    -
         짮 PHUBAH  - , ⠪  ᭮  -
         砥  ⮬,  ⮡ 㬥⮬  뫮 EK.  ࠬ
         쭮 ந.   ࠭  訡,  ᫨
          㤥   襬 @WritToFil ECHO.   蠥 
            ࠭,  ⠪   EKO  㪠 ECHO.  
          ᪫   ⠪ 訡, ࠭稢 -
          ᯮ짮 EKO  NOEKO:

         @WritToFil MACRO EKOFLAG  ;;। INCHRIF c 㬥⮬
                                   ;;EKOFLAG
                    IFIDN <EKOFLAG>,<EKO> ;;᫨ EKOFLAG = EKO,

                                      - 1-52 -
                                   ;;ᥬ஢ ᫥- ப
                    mov     ah,06h    ;;㭪 DOS   
                                   ;;⠭ 䠩
                    ELSE           ;; ⨢ 砥
                    IFIDN <EKOFLAG>,<NOEKO> ;;᫨ EKOFLAG = NOEKO,
                                            ;;ᥬ஢
                    mov     ah,40h ;;㭪 DOS    䠩
                    ELSE           ;;᫨ 㬥  ᮮ⢥,
                                            ;; 
                    .ERR   ;;뤠 訡 ᥬ஢
                    ENDIF    ;; ஢ન ᫮
                    int     21h             ;; 맮 DOS
                    ENDM                    ;;  

                                  

            ᬮ७     ᯮ  㭪  DOS  
         ᨬ  ⠭⭮ ன⢮ 뢮   䠩.    
            ஢,  뫠     뢠
         뢮,   ᫨   ⠪, த ࠡ. 㭪 DOS 0Bh
         ஢, 뫠   ,  AL = 0FFh, ᫨ ᨬ-
          㯥,  AL = 00, ᫨ ᨬ  㯥.    -
             chkchr    ⥬  뢠     襣 
         WritToFil:

            @ChkChr MACRO    ;;।  @ChkChr
                    mov      ah,0Bh   ;;஢ ⠭ 
                    int      21h      ;;맮 DOS
                    ENDM              ;; 
            ;;
            @WritToFil MACRO WAITFLAG,EKOFLAG ;; 2 㬥
                    LOCAL    bye   ;;। ଠ 
                    IFNB     <WAITFLAG>  ;;᫨   WAITFLAG 
                                         ;;, ᥬ஢
                                         ;;᫥饥
                    @ChkChr   ;;,   ᨬ
                    cmp      al,0   ;; al = 0 => ᨬ  
                    je       bye    ;;᫨ ᨬ , த
                    ENDIF           ;; ஢ન ᫮
                    IFIDN    <EKOFLAG>,<EKO> ;;᫨ EKOFLAG=EKO, -
                                             ;;ᥬ஢
                    MOV      AH,06H          ;;㭪 DOS  
                                             ;; ⠭ 뢮
                    ELSE            ;; ⨢ 砥
                      IFIDN <KOFLAG>,<NOEKO> ;;᫨ EKOFLAG=NOEKO,
                                             ;;ᥬ஢
                      MOV   AH,40H   ;;㭪 DOS    䠩
                      ELSE         ;;᫨ 㬥  ᮮ⢥
                      .ERR         ;;뤠 訡 ᥬ஢
                    ENDIF          ;; ஢ન ᫮
                    int     21h              ;;맮 DOS
            bye:
                    ENDM                     ;; 


            㤨    ᨨ WritToFil. ४-
          LOCAL ᮮ頥 MASM,   ⪠ bye    ଠ쭮 -

                                      - 1-53 -
         , MASM   ॠ 直 ࠧ,   -
         뢠  ணࠬ.  ࠭ ஡ ᯮ짮 
          ⮩  ⪨  ணࠬ ,   맢  訡 ᥬ-
         ஢.  MASM ᥬ , ᯮ   ࠧ 
         ??0000,   ன ࠧ - ??0001  ..   ??FFFFh,  
         맢       ணࠬ  65536 ࠧ.  ४⨢ LOCAL
          ᫥ ࠧ   ४⨢ MACRO - ।    -
             ਩!   IFNB WAITFLAG ᮮ頥
         MACRO  室 ᥬ஢ ᫥  ப ⮫쪮
         ⮣,  㬥 WAIT-FLAG  .  ⨢ 砥 ண-
         ࠬ  祭  㤥,  ࢮ ᥬ㥬 ப -
            ப  IFIDN.   ।⠢  
         樨 ணࠬ ,    㤥   -
          ணࠬ,  ᫥ ஢ન 祩 㤥 ᪠. -
          IFNB ஢ ⢮ WAITFLAG   ᯥ,  -
          ࠧ   맢    ᫥ :

            @WritToFil WAIT,EKO
            @WritToFil WAITE,EKO
            @WritToFil NoWate,EKO
            @WritToFil FOOBAH,EKO

          ⥬ ஢ ,  " " . ⨬ ⠪,
           稫  ,    뢠 -
         .

                        ᪮쪮 ᫮   

             ᯮ짮  ࠬ WAITFLAG  ।,  -
         ᥬ஢ ணࠬ    祭  ,   ⠪
           ᯮ짮    ,   ⢫
          롮  ६ ᥬ஢. ਬ,  ⨬ ஢
         ⨥ ,  ᫨  室  ० ⫠  ᫨ -
          ࠬ WAITFLAG,     - 㣨  ᫮.
          மᠭ ⠪:

            @WritToFil MARO   WAITFLAG,EKOFLAG
                    LOCAL    bye     ;;। ଠ 
                    ;; ਥ ᨬ  ⠭⭮ 
                    ;;2 㬥: WAITFLAG  EKOFLAG ।,
                    ;; ᨬ  ⮡ࠧ 
                    .CREF  ;; 뤠 ४ 뫮
                                     ;; ⮪  ..
                    x = 0            ;;  - 
                    IFNDEF  DEBUG    ;;᫨ ࠬ DEBUG  -
                    x = 1            ;;, ⠭ 䫠  1
                    ENDIF            ;; ஢ન ᫮
                    IFNB <WAITFLAG>  ;;᫨   WAITFLAG
                    x = 2            ;; , 䫠 = 2
                    ENDIF            ;; ஢ન ᫮
                    IF ( EQ 1) or (x eq 2) ;;᫨  ।
                                ;;DEBUG    WAITFLAG
                    @ChkChr     ;;஢,   ᨬ
                    cmp     al,0  ;;al = 0 => ᨬ  
                    je      bye   ;;᫨ ᨬ , த
                    ENDIF       ;; ஢ન ᫮
                    IFIDN <EKOFLAG>,<EKO>   ;;᫨ EKOFLAG = EKO,

                                      - 1-54 -
                                ;;ᥬ஢ ᫥ ப
                    mov     ah,06h  ;;㭪 DOS   
                                    ;;⠭ 뢮
                    ELSE            ;; ⨢ 砥
                      IFIDN <EKOFLAG>,<NOEKO>  ;;᫨ EKOFLAG=NOEKO,
                                          ;;ᥬ஢
                      mov   ah,40h    ;;㭪 DOS    䠩
                      ELSE       ;;᫨ 㬥  ᮮ⢥
                        .ERR     ;;뤠 訡 ᥬ஢
                    %OUT 訡   @WritToFil - EKOFLAG  
                  ENDIF             ;; ஢ન ᫮
                ENDIF               ;; ஢ન ᫮
                int       21h       ;;맮 DOS
            bye:
                .CREF     ;;⠭ 뤠 ४ 뫮
                ND                ;; 


              ६ ᥬ஢  ।  ०  DEBUG
           ᯮ짮  /d:
            MASM  myprgm,,,; /dDEBUG
            맮  WritToFil  ஢ ணࠬ ,
         ஢騩 .
             ।,      ᨬ,   ᯮ㥬
         䫠 ( ஬ =,    equ,     ८।塞  
         ᫥   IF).   (x eq 1 )  (x eq 2)  
             ஢ x gt 0  x NE 0,  a  ⢨⥫쭮
          祭,  ⫨筮     樠樨  (0).
         ⨬,    ⠪  ᪮쪮  ४⨢. 
         ;; ᮮ MASM,  ਨ     ⨭
         ᥬ. ४⨢ .REF  ६ ᥬ஢  -
           ⨭ ४ 뫮, ᮮ MASM,   㦭
         ஬  ⨭ ,  ᯮ㥬묨 ⮫쪮  .
         ४⨢ .REF ⠭ 뤠  ४  뫮  
         ⠢襩  ⨭.  ஬ ⮣,      㪠뢠.
          ⠪  ४⨢ %OUT,  㤥 뢮  ࠭
         ⠢   ᮮ饭  訡.    ᯥਬ-
         㥬  묨 ⥫묨 ﬨ.

                          , 뢠饥 ணࠬ

                ਬ  砥  㭨-
         ᠫ쭮  맮 ணࠬ 筮 맮 ணࠬ  -
          ᮪ ஢.   砥  ⠫ ᪮-
          ࠬ஢  ⥪  맮 ணࠬ.  쭮 , 
         ᪫祭 ॡ  ᯮᮡ   ६ 
         ࠬ஢,   ᢮ ।   ६ ࠧ
         (,᫮,  ᫮, ⢥⭮ ᫮  10-⮢ -
             饩 窮).   믮  ॡ  -
         㥬  .TYPE  TYPE (    ।
          ஬). ᯮ짮  .TYPE  
         ন  ॣ ⨯ BX,  ⠪  ᫮     .
          .TYPE  頥 ,   ⮢ ண ᮤ-
          ᫥ ଠ:


                                      - 1-55 -
             0 = 1, ᫨  ணࠬ ᨬ,  = 0
             1 = 1, ᫨  ᨬ  ,   = 0
             5 = 1, ᫨  ।,           = 0
             7 = 1, ᫨  - 譨 ࠬ, ᫨ 
                                     騩            = 0
          ⠫  㫥.
            ਬ, ᫨    ᨬ  ,  ।  쭮,
         .TYPE  頥 祭 001000100b ( 22h);  -- -
         ⠭    1  5.     ⨬ ࠧ ᯮ짮
         ॣ஢ (ணࠬ ᨬ)  ⢥ ࠬ஢,   㤥
         ਬ  .TYPE  ᮮ饭  稨 ࠬ஢,  -
           .    ⨬ ন  ࠧ筮
          ⤥쭮,   ᯮ㥬  TYPE,  騩 
          㬥⮢  . ਬ,

            TYPE N =  1, ᫨ N  - 
            TYPE N =  2, ec N  - ᫮
            TYPE N =  4, ec N  -  ᫮
            TYPE N =  8, ᫨ N  - ⢥୮ ᫮
            TYPE N = 10, ᫨ N  - ⨡⮢ ᫮ (..  -
                                   饩  窮)
            TYPE N = XX, ᫨ N  - c    ⮢
            TYPE N = FFFF,᫨ N - "" ணࠬ ⪠
            TYPE N = FFFE,᫨ N - "㤠" ணࠬ ⪠

            饥   ᯮ짮 ४⨢ TYPE 
            .TYPE:

            @FcnCall MACRO  Fnctn,ParmList  ;;ᯨ᮪ -  ࠬ-
                   IRP     N,<ParmList2>    ;;।. ७
                   BYTELENGTH = TYPE N      ;;  "⠫-
                              ;;" ⮢  
                     IF ((.TYPE N ) NE  22H)     ;;N ।  -
                                                 ;;ᨬ  ?
                     push  N ;;᫨  - । 16-⮢ ॣ        ;;
                     ELSE    ;; ⨢ 砥 । 
                       IF (BYTELENGTH EQ 2) ;;⮣, ᫨ ࠬ 2-
                                            ;;⮢,
                     push N      ;;⮫
                     ELSE        ;; ⨢ 砥
                       IF (BYTELENGTH EQ 1)  ;;᫨ ࠬ 1-⮢,
                                  ;;।,  AX 㯥
                       mov      ah,0  ;;   AX
                       mov      al,N  ;;ᤥ  ࠬ ᫮
                       push     ax  ;;⠪, ⮡   த 
                       ELSE         ;; ⨢ 砥
                         IF (BYTELENGTH EQ 4) ;;᫨ ࠬ 4-⮢
                         push    word ptr N     ;;த 1- 
                         push    word ptr N + 2  ;;2- ᫮
                         ELSE      ;; ⨢ 砥
                           IF (BYTELENGTH EQ 8) ;;᫨ ࠬ 8-.
                           push  word ptr N     ;;த 1-,
                           push  word ptr N + 2   ;;  2-
                           push  word ptr N + 4   ;;  3- 
                           push  word ptr N + 6   ;;  4- ᫮
                           ELSE         ;; ⨢ 砥
                             IF  (BYTELENGTH EQ  10)   ;;᫨ ࠬ
                                             ;;10-⮢, த

                                      - 1-56 -
                             push word ptr N   ;; 1-
                             push word ptr N + 2       ;; 2-
                             push word ptr N + 4       ;; 3-
                             push word ptr N + 6       ;; 4-  
                             push word ptr N + 8       ;; 5- ᫮
                             ELSE
                             .ERR
                             ENDIF
                           ENDIF
                         ENDIF
                       ENDIF
                     ENDIF
                   ENDIF
                 call Fnctn
                 ENDM                               ;; IRP
                 ENDM                               ;; 


            ⥫ २⢮    ,   
         ࠭  㪠뢠 ⢮ ࠬ஢,  ஥ ⨬ -
          ணࠬ,  ।⢥ 饭  .  
         맢  ணࠬ  ६ ࠬࠬ,    -  -
         . ਬ:

            @FcnCall Fcn1,<word1,word2,byte3>
            @FcnCall Fcn2,<word1,byte3>

              맮 ணࠬ    䠪᪨ -
         ࠭祭 ᫮ ࠬ஢.
                 ⪮.    -
         ⪮  ,      뫨      祭
         BYTELENGTH,  ⨯ ணࠬ ⮪  ;   ।,
          ॣ AX 㯥 ⮫쪮  ⮢ ࠬ  ..
          設⢠  ⪮  : 横,  -
          BYTELENGTH,   ন    , 
           ⮬     㣨 ஡,  ⮬   
         ᬠਢ ୠ⨢,  ⠥ ᢮ 祩  "⠫-
         "   뢠 ணࠬ!  ਬ 㦨  -
         樨 ४⨢ TYPE  .TYPE,   ᬮ७ 楫
         㭪樨  맮  ணࠬ  ॡ  襣.  ० 祬
         த ࠧ ⮣   ᤥ ⪮  ⢫祭  
           .

                            ਬ ४⨢ STRUC

             ।⠢ ᮡ ४⨢ ᥬ, 騥
          ந ᫮ ଠ ,  騥  ⮢,  ᫮ 
         ..,  ⠪  ࠧ,  ⮡    ᫮ ࠧ-
         ⥫쭮  㯭.  祭 宦     -
          ᪠.   ⫨  ⥬,   ASM ஢ -
         㤭,      饭.    ⢥   ਬ,
              ᯮ짮  ,  ।饬 ࠬ,
         ࠧ ।,    ᠫ  ணࠬ,  믮
         ⥬᪨  㭪樨.    ਢ ,   
           ᮧ:


                                      - 1-57 -
            MathNumbers      STRUC
            BooLean1         DB         (0)     ; 1 
            BooLean2         DB         (0)     ; 1 
            ShortInteger1    DW         (0)     ; 1 ᫮
            ShortInteger2    DW         (0)     ; 1 ᫮
            LongInteger1     DD         (0)     ; 1  ᫮
            LongInteger2     DD         (0)     ; 1  ᫮
            Float1           DT         (0)     ; 1 10-⮢ ᫮
                                                ; ( 8087)
            Float2           DT         (0)     ; 1 10-⮢ ᫮
                                                ; ( 8087)
            MathNumbers      ENDS

            MathNumbers । ⨯ . STRU  ENDS ࠭稢-
          砫   ᠭ .      ᯮ짮-
          MthNumbers    ,  ਬ, ⠪:

            TrueFalse   MathNumbers    <1,0,,,,,,>
            MaxMinShort MathNumbers    <,,32767,-32768,,,,>
            MaxMinLong  MathNumbers    <,,,,2147483647,-2147483648,,>
            e           MathNumbers    <,,,,,,,2.718281828>

            ListLength  = 100
            MathList    MathNumbers    ListLength dup <,,,,,,,>

             १ࢨ஢  104 ᫠.   34   ᫮
          ᯨ᮪ ᥫ  3536 ⮢.  ࢮ砫쭮    
         ᢮ ᠭ 樠  0,   ⥬  ᥪ樨  -
         ⠭  ࠧ 祭.      ᬠ-
            ४⨢ ,  ।塞 짮⥫.  
         ⮢  ८ࠧ MASM  ⮢ ᬥ饭  -
         ⥫쭮 砫 .   뫠  ᫠ 
              筮 ⠪,       -
         . ਬ,

            m       MaxMinShort.ShortInteger1,ax

             ⭮

            cmp       [MaxMinShort + 2],ax

             ⢥ ਬ,  ᫨  ⨬ ᬮ  ᯨ᮪ -
         ᥫ  ᪠ ࢮ ᫠  饩 ⮩  0, ᫥
         :

                      mov      di,MathList ;  ᯨ᪠
                      mov      cx,ListLength ; ᯨ᪠  横-
                      mov      bx,(TYPE TrueFalse) ; 
            CmpLup:   cmp      [di].Float1,0 ;᫮   > 0?
                      jl       ExitLup  ;᫨ , ᪠
                      add      di,bx    ;㪠⥫  .
                      loop     Cmplup   ;ᬮ  ᯨ᮪ -
            ExitLup:...

                      ⢥ 

              㤮 ⥩ ᯮ짮   
         ,            ६ ८࣠뢠 ᠭ

                                      - 1-58 -
               ,    -
         ⮬᪨     ᥬ஢.  ਬ,  
         ।  MathList ⠪, ⮡   﫨 ⠬
            ᫠      饩   ⮩      
         LibraryPtr.

            MathNumbers          STRUC
            Float1                DT    (0)   ;1 10-⮢ ᫮
            Float2                DT    (0)   ;1 10-⮢ ᫮
            ShortInteger1         DW    (0)   ;1 ᫮
            ShortInteger2         DW    (0)   ;1 ᫮
            LongInteger1          DD    (0)   ;1  ᫮
            LongInteger2          DD    (0)   ;1  ᫮
            Boolean1              DB    (0)   ;1 
            Boolean2              DB    (0)   ;1 
            LibraryPtr            DD    (?)   ;1  ᫮
            MathNumbers          ENDS

             襬 砥 २⢮ ᯮ짮    ⮬,
          ᫥ ॠᥬ஢ ᥩ ணࠬ  ⮢  -
          ᠭ  [di].Float1 -० 㤥 㪠뢠 
         ࢮ  ᫮  饩 ⮩,     ८࣠ -
         .   ࠧ, ணࠬ ,  뫠  
           ,   ॡ ४஢.  ⨬,  ,
          ᫨  䠩 ᯮ    ᠭ  ,  
          ॣ㯯஢ 騥  ⠪,  ⮡  ⢥-
         砫  .  ࣠   ॣ㯯஢-
          騥 ,      ⭮⥫쭮
         ⮯.    㡥,   ⢨⥫  
         ᮮ⢥   .
             ⫨稥   몠   MASM    ᮤ-
           ᠭ  㣨  ( ⮣  ᮡ 稭,  ,
         ⭮,     MASM  ࠭祭 㤥 -
         ).   稭, ⮡    ᮤঠ 
         㣮 ,   祬   稫      
         LibraryPtr.  ।,      Library, -
          ⠪:

            Library STRUC
            FloatLib        DD      (0)    ;㪠⥫  .  
            ShortIntLib     DD      (0)    ;㪠⥫  .  -
                                           ;⪨ 楫묨
            LongIntLib      DD      (0)    ;㪠⥫  .  -
                                           ;묨 楫묨
            ooleanLib      DD      (0)    ;㪠⥫  .  -
                                           ;묨 祭ﬨ
            Library ENDS

               ।   ணࠬ  -
         ᠬ, ࣠묨  . ਬ,

            ddLibs Library  <FloatAdd,ShortAdd,LongAdd,BooleanAdd>
            Sublibs Library  <FloatSub,ShortSub,LongSub,BooleanSub>
            MultLibs Library <FloatMult,ShortMult,LongMult,BooleanMult>
            .
            .
            .

                                      - 1-59 -
                 ᯮ짮   -
           ᫥饬 ணࠬ ᥣ:

            lds        si,MathList[bx] ; ⭮ 
            push       ds    ;࠭   
            push       si
            lds        si,LibraryPtr ; ᮢ ⥪
            call       [ds:si].LongIntLib    ;室  믮
                                             ;樨

            C⢥騥 㪠⥫ 㦠     ६
         ᥬ஢,    ६ 믮 ணࠬ. ५ -
         짮    ।  ணࠬ ࠬ-
         ஢    㪠⥫   ⮬,   뢠騩 ணࠬ  ᥣ
            , ᬮ  ⢮  , ஢-
           祭 ᥩ  ணࠬ.     㪠-
         ⥫  㣨  ,   塞 ணࠬ  
         室  ⠫   / 뢠 .
          "᮪⨥ " ࠧ    ᯮ  -
         ⭮  ਥ஢  몠 ⨯ ++  Smalltalk,   
            ⮣  ᠬ,  ਬ ⮫쪮 .
         ਬ ।    ⠪    -
         ,   ᮧ  .  ਬ,    
         22 ⠬ PSP (䨪 ணࠬ ᥣ),  MS-DOS -
         頥  砫 믮塞 䠩,   १ ᫥ -
         :

            PSP    STRUC
            INT32         DB     2 DUP (?)    ; 2 
            MemSize       DW     (?)          ; 1 ᫮
            Reserved      DB     (?)          ; 1 
            DOSCall       DB     5 DUP (?)    ; 5 ⮢
            TermVctr      DW     2 DUP (?)    ; 2 ᫮
            BreakVctr     DW     2 DUP (?)    ; 2 ᫮
            ErrorVctr     DW     2 DUP (?)    ; 2 ᫮
            PSP      ENDS

               PSP    ᫥饣 ணࠬ
         ࠣ:


            mov    di,0   ; PSP 稭  ᬥ饭 0
            push   cs     ; ᥣ PSP  cs
            pop    ds     ; ᥣ PSP -> ds
            mov    si,[di].MemSize  ; ࠧ  ணࠬ ->
                                    ;  ᥣ

                          ࠬ ணࠬ

              ,   ᯮᮡ 襭      ᠭ
         㭨ᠫ쭮 楤 맮 ணࠬ.   
         ⮩ ஡. 訩 ਠ । ࠬ஢ ணࠬ
         - १  .   ⢥ ਬ ।  -
         襩 ணࠬ    ⮢ ᯨ᪠ ᥫ, ।
           ᬮ७  .   ᥣ   ᥣ 
         ᬥ饭.  ࠧ, , 뢠饥 ணࠬ  ।-
         饥 ࠬ, 㤥 룫拉 ⠪:

                                      - 1-60 -

            @FcnCall  MACRO  Fnctn,StrucAddr   ; ணࠬ 
                                               ;
                     push   offset  StrucAddr
                     push   segment StrucAddr
                     call   Fnctn

             砥,     室 ᥬ஢ ,
          ᥬ  ন.  室  ࠭ -
          MASM,   - 訡  ᥬ  ⨯ -
          室.   ஡  ⠪   -
            ,    ண MASM  
         ন.    ⥩ 襭 ⮩ ஡ 砥  
         ᯮ짮 , ஥ ᥬ ,  ᫨  -
         﫠   㪮⢠  Intel. ਬ, ᫥饥
           믮   室.

            @JmpShort  MACRO  destin
                    db        0EBh  ;1-   室
                    n = destin - *  ;᫨ ﭨ 室
                    IFE       (n LE 255)  ;  ?
                      db      n           ;ﭨ 室
                    ELSE
                      .ERR         ;뤠 ᮮ饭  訡
                      %OUT 訡   @JumpShort.
                    ENDIF          ; ஢ન ᫮
                    db         90h   ;3-  
                                     ;⪮ 室
                    ENDM

             ਬ  ࠭  .  ᮧ  ᫮-
            室   ᫮ .  ⮡ 
         ,  ᮮ騬,   ணࠬ ᮧ  -
         ᥬ,   ᯮ  , 祬 ᠭ   -
         ⮤.

                                    祭

                , ᫮ ᥬ஢  
         MASM 襭.   ,   ਬ஢    -
         ⢮ 쭮 ᫮,   ᮬ 騥  
          ᥬ  .
             ⮩        ।⠢  ⢮
         ਬ஢, 稭     ᫮묨, ⠪  뫠 -
             ⥩. ᯮ ਬ  -
          ᮡ⢥ ࠦ,   । ࠭ 
            MASM-ᥬ.
                ᫥ 뢠 稭 ᯮ짮 ᮢ
          ᫮ ᥬ஢.   ⢥ত,   ࠢ쭮  -
         짮    ⥩        ࣠樨
         ணࠬ,  , ᫥⥫쭮,  ⠥    
         㬥  ६,  室     ⫠.   ,  
         ।⠢ ਬ   㦥᪨ ᮢ⠬, -
           묨 ।०ﬨ   ,   ᯮ-
              ࠧ  ணࠬ᪨ -
         몮.
