;ணࠬ ।⢥ ᯮ 짮⥫᪨
;㭪権  । Windows. ⢥,  祣  ணࠬ
; ᠫ.
;;;                             PUBLICDLL   PASCAL EXECMODULS 
EXECMODULS  PROC                ;WINDOWS PASCAL FAR
;;;         ARG         @@lpszParam : DWORD     ;ࠬ 뢮 ப. 
;;;         USES ES,SI,DI


; 짮⥫᪨   襬 ਬ:

; , ᯮ㥬  ணࠬ
;;;DATASEG

           
Sym        db      32              ; ᨬ -  ஡
Offs       dw      1000            ;Ha砫쭠  

           ;饭  㧪 ணࠬ,  ᮮ饭 ᢥ
           ;  ணࠬ ᯥ祭.
Mes1       db      'PROGRAMMA', 32, 'AUTOMATIC', 32,  'MODE,', 32
           db      'EXECUTE', 32, 'SYSTEM',  32, 'FUNCTION', 32
           db      'DEVICE.', 32, 'Version', 32, '3.4F,',  32, '(R)', 32
           db      'Copyright', 32, 'Denis', 32, 'Shilovsky,', 32
           db      'Russia,', 32, 'Moscow', 32, 'Area.', 32, '2002', 32
           db      '-', 32, '2014', 32, 'yore,', 32, 'Inc.', 32, 13, 10, 4
Mes1Len    equ     $ - Mes1


;Cப co饭  ᯥ譮 ࠡ.
Mes2       db      'Programma', 32, 'automatic', 32, 'device', 32
           db      'execute', 32, 'OK', 32, '!', 13, 10, 10
Mes2Len    equ     $ - Mes2


;᫨    
Mes3       db      'Not', 32, 'creste', 32, 'the', 32, 'file.', 32
           db      'Error', 32, 'read/write', 32,  'to', 32
           db      'disk.', 13, 10, 11
Mes3Len    equ     $-Mes3


;Coo饭, ᫨ ⠪    ,  ⠥.
Mes4       db      'Error', 32, 'date', 32, 'Read', 32, 'to', 32
           db      'Diske.', 13, 10, 14
Mes4Len    equ     $-Mes4


Autory     db      'PROGRAMMA AUTOMATIC MODE, EXECUTE SYSTEM FUNCTION DEVICE || '
           db      'Version 3.1.4 || '
           db      '(R) Copyright Denis Shilovsky, Russia, Moscow Area. '
           db      '2002 - 2014 yore, Inc. EMail: deni-shilovski@yandex.ru  '
           db      'Tel: +7-903-518-99-74     |', 13,10
AutoryLen  equ     $ - Autory


Handle     dw      ?                 ;祩  ਯ.
Dpt        dd      0                 ;祩  㡫஢ .
Allocseg   dw      0                 ;  뤥 .

;᮪    ⠭⭮
;㯠  ᪮ ⥫.      
afd        db      40, 0, 1, 2       ;, , ᥪ, ࠧ ᥪ.
           db      40, 0, 2, 2       ;2 - 512 .
           db      40, 0, 3, 2
           db      40, 0, 4, 2
           db      40, 0, 5, 2
           db      40, 0, 6, 2
           db      40, 0, 7, 2
           db      40, 0, 8, 2
           db      40, 0, 9, 2


; , 믮塞 ணࠬ 
;;;CODESEG
; ᥪ ணࠬ:

           ;砫 ᭮ ணࠬ
Begin:     MOV      AX, 0000h
           MOV      DS, AX
           PUSH     ES
           POP      DS

           ;뢥 ᮮ饭  㧪 ணࠬ
           MOV       AX, SEG Sym
           MOV       DS, AX

           MOV       AX, 0B800h     ; 
           MOV       ES, AX
           MOV       SI, OFFSET Mes1     ;A ப
           MOV       DI, 1*01*2+13*2     ;   ᯫ
           MOV       CX, Mes1Len         ; ப
REP        MOVSB                    ;뢮  ࠭
           ADD       Offs, 1        ;  ࠭
           INC       Sym            ;䨪 ⠭,  ணࠬ

           ;⠭ ⨯ ᪮ ⥫
           MOV      AH, 17h   ;㭪 ⠭ ⨯ ᪥
           MOV      AL, 4     ;᪥ 720   ᪮
                              ;1,44 .
           INC      DL        ; ந -   .
           CALL        ReadDisk  ;INT      13h       ;뢠 ROM BIOS

           ;Ha  ࠭  ⠡ 뢠,
           ;ࠬ஢ ᪥ ( 1Eh)
Start:     MOV      AX, 00h          ;㭪 祭 .
           MOV      DL, 00h          ; ⥫  ।,
                                     ; 㬮砭,    .
           CALL        ReadDisk   ;INT      13h
           MOV      WORD PTR Dpt, BX              ;Coxpa ᬥ饭
           MOV      WORD PTR Dpt + 2, ES          ;Coxpa ᥣ
           MOV      DI, BX                        ; ॡ BX
           CALL        ReadDisk   ;INT      13h
           ;⠭ ࠧ  - 512 .
           MOV      BYTE PTR ES: [DI+3], 2


           ;   ந쭮 㯠,
           ; 40- ᥪ, 1- , ⠪   䠩,
           ; ஥ 䠩.
           MOV      AH, 03h   ;㭪     
           MOV      AL, 0     ; ᥪ -  .
           MOV      CH, 40    ;
           MOV      CL, 1     ;
           MOV      DH, 0     ;Ce 
           INC      DL        ; ந -   .   
           MOV      CX, 0512  ;쪮 뢠 (ࠧ  ).
           LEA      BX, Str2  ;   ES:BX
           CALL        ReadDisk  ;INT      13h   ;뢠 ROM BIOS

           JE       Continue   ;,    
           JNE      NotWriting ;Ec    


             ;Ec   ஬ 室 ணࠬ
             ;     ᡮ ᥪ.
NotWriting:  MOV      AX, SEG Sym
             MOV      DS, AX
             MOV      AX, 0B800h     ; 
             MOV      ES, AX
             MOV      SI, OFFSET Mes3     ;A ப
             MOV      DI, 12*80*2+33*2    ;B 業 ࠭
             MOV      CX, Mes3Len         ; ப
REP          MOVSB                    ;뢮  ࠭
             ADD      Offs, 1         ;  ࠭
             INC      Sym             ;䨪 ⠭,  ணࠬ
             JMP      NewShell        ;室, ᫨   .

             ;Bocc⠭ ⠡ ࠬ஢ ᪥
Continue:    MOV      ES, WORD PTR dpt + 2      ;Ce ⠡.
             MOV      BYTE PTR ES:[DI + 3], 2   ;Ko ࠧ .
             MOV      Handle, AX                ;稫 ਯ 䠩.


             ;Oc  ࠭  ॣ
NewShell:    POPF


             ;Teep,  po popay, a ce 
             MOV      AX, 0000h
             MOV      DS, AX
             PUSH     ES
             POP      DS

             ;୮ ⠭ ⨯ ᪮ ⥫.
             ;Ha  ࠭  ⠡ 뢠,
             ;ࠬ஢ ᪥ ( 1Eh)
             MOV      AX, 00h          ;㭪 祭 
             MOV      DL, 00h          ; ⥫  ।,
                                       ; 㬮砭,    .
             CALL             ReadDisk         ;INT      13h
             MOV      WORD PTR dpt, BX                ;Coxpa ᬥ饭
             MOV      WORD PTR dpt + 2, ES            ;Coxpa ᥣ
             MOV      DI, BX                          ; ॡ BX
             CALL             ReadDisk         ;INT      13h
             ;⠭ ࠧ  - 512 .
             MOV      BYTE PTR ES: [DI+3], 2

             ;    40- ᥪ, 1-
             ;,  ᫥饩 ࠡ⪨.
             MOV      AH, 02h   ;㭪 ⥭  ᪠  
             MOV      AL, 0     ; ᥪ -  .
             MOV      CH, 40    ;
             MOV      CL, 1     ;
             MOV      DH, 0     ;Ce 
             INC      DL        ; ந -   .   
             PUSH     DS
             POP      ES
             MOV      CX, 0512  ;쪮  (ࠧ,  ).
             LEA      BX, Bufin ;   ES:BX
             CALL        ReadDisk  ;INT      13h  ;뢠 ROM BIOS

             JE       Continue2  ;,   ᪥ 㯭
             JNE      NotFile    ;,    ᪥ 
                                 ;⠥   ਣ  .



             ;뢥  ࠭ coo饭,  砥
             ;᫨ ⠪    , 
             ;⠥.
NotFile:     MOV       AX, SEG Sym
             MOV       DS, AX
             MOV       AX, 0B800h     ; 
             MOV       ES, AX
             MOV       SI, OFFSET Mes4     ;A ப
             MOV       DI, 12*80*2+33*2    ;B 業 ࠭
             MOV       CX, Mes4Len         ; ப
REP          MOVSB                    ;뢮  ࠭
             ADD       Offs, 1        ;  ࠭
             INC       Sym            ;䨪 ⠭,  ணࠬ
             ;  প,   砩,
             ;᫨  ⥬,   䫠 뢮.
             XOR       AX, AX            ; ந쭮 㯠
                                         ;  짮⥫.
             CALL              KEYBORD          ;INT       16h
                                                       ;뢠 ROM BIOS

             ; ணࠬ
             MOV      AX, 0000h          ;㭪 襭, 
                                         ;襭 = 0
             CALL             QUITS        ;INT      20h
                                                  ;뢠 ROM BIOS



             ;Bocc⠭ ⠡ ࠬ஢ ᪥
Continue2:   MOV      ES, WORD PTR dpt + 2      ;Ce ⠡.
             MOV      BYTE PTR ES:[DI + 3], 2   ;Ko ࠧ .
             MOV      Handle, AX                ;稫 ਯ 䠩

             ;楤 ࠡ⪨  ,  40- ᥪ,
             ;1-    ᪥.          
             ; 砫  ࠡ뢠 ᨢ,  
             ; ࠢ騥 ᨬ. ,  
             ; 믮 室 樨, 
             ;ࠡ  묨 묨  筮 䠩.
             MOV      AL, 27       ;27 -    䠩,
             OR       AL, 10       ;10 - 砫  ப,
             OR       AL, 13       ;13 -  ப,
             OR       AL, 14       ;14 -   ⢨ <ENTER>
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
                                   ;   㡥ࠥ:
             MOV      CX, 0512     ; ப ᨬ  䠩.
REPNE        SCASB                 ; ࢮ 筮 ᨬ,
                                   ;⫨筮,  㪠.
             JNE      FunctObr101  ;᫨   , ⮫쪮  ᥫ.
             JE       FunctObr101  ;, ᫨ 諨  㣨.

             ;,  ᨬ  ⮣,  
             ;ᮤঠ  ⮬ 䠩, ⠪ ⢨  
             ;㤥 믮  ணࠬ.
             ;ࠡ뢠  - ᥫ ASCII  28  127; 
             ; 128  255.  ࢮ   
             ;⮢ ⠡,   
             ; ஢ ROM BIOS.
FunctObr101: 
             MOV      AL, 28       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt101  ;᫨ , .
             JNE      FunctObr102  ;᫨ ⠪ ᨬ  ப .      
             ;믮   , ᮮ⢥饩 樨.
FunctInt101: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP1  ;INT      1h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr102: 
             MOV      AL, 29       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt102  ;᫨ , .
             JNE      FunctObr103  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt102: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP2  ;INT      2h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr103: 
             MOV      AL, 30       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt103  ;᫨ , .
             JNE      FunctObr104  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt103: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP3  ;INT      3h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr104: 
             MOV      AL, 31       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt104  ;᫨ , .
             JNE      FunctObr105  ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt104: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP4  ;INT      4h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr105: 
             MOV      AL, 32       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt105  ;᫨ , .
             JNE      FunctObr106  ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt105: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP5  ;INT      5h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr106: 
             MOV      AL, 33       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt106  ;᫨ , .
             JNE      FunctObr107  ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt106: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP6  ;INT      6h

             ; ᪠  ப  ᨬ.
FunctObr107: 
             MOV      AL, 34       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt107  ;᫨ , .
             JNE      FunctObr108  ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt107: MOV      AX, 00h     
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           INTERRUP7  ;INT      7h  ;뢠 ROM BIOS    

             ; ᪠  ப  ᨬ.
FunctObr108: 
             MOV      AL, 35       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt108    ;᫨ , .
             JNE      FunctObr109    ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt108: MOV      AX, 0101h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr109: MOV      AL, 36       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt109  ;᫨ , .
             JNE      FunctObr110  ;᫨ ⠪ ᨬ  ப .
             
             ;믮   , ᮮ⢥饩 樨.
FunctInt109: MOV      AX, 0202h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS
             ; ᪠  ப  ᨬ.
FunctObr110: MOV      AL, 37       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt110   ;᫨ , .
             JNE      FunctObr111   ;᫨ ⠪ ᨬ  ப .
             
             ;믮   , ᮮ⢥饩 樨.
FunctInt110: MOV      AX, 0303h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr111: MOV      AL, 38       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt111   ;᫨ , .
             JNE      FunctObr112   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt111: MOV      AX, 0404h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr112: MOV      AL, 39       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt112   ;᫨ , .
             JNE      FunctObr113   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt112: MOV      AX, 0505h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr113: MOV      AL, 40       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt113   ;᫨ , .
             JNE      FunctObr114   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt113: MOV      AX, 0606h  
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr114: MOV      AL, 41       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt114   ;᫨ , .
             JNE      FunctObr115   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt114: MOV      AH, 00h      ;00h - ⠭ ०
             MOV      AL, 12h      ;12h - ᪨ 640 x 480 
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr115: MOV      AL, 42       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt115   ;᫨ , .
             JNE      FunctObr116   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt115: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           POWER      ;INT      11h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr116: MOV      AL, 43       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt116   ;᫨ , .
             JNE      FunctObr117   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt116: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MEMORY     ;INT      12h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr117: MOV      AL, 44       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt117   ;᫨ , .
             JNE      FunctObr118   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt117: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadDisk   ;INT      13h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr118: MOV      AL, 45       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt118   ;᫨ , .
             JNE      FunctObr119   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt118: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT      14h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr119: MOV      AL, 46       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt119   ;᫨ , .
             JNE      FunctObr120   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt119: MOV      AX, 0000h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT      15h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr120: MOV      AL, 47       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt120   ;᫨ , .
             JNE      FunctObr121   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt120: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           PRINT      ;INT      17h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr121: MOV      AL, 48       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt121   ;᫨ , .
             JNE      FunctObr122   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt121: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           CMOS       ;INT      1Ah  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr122: MOV      AL, 49       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt122   ;᫨ , .
             JNE      FunctObr123   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt122: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           BREAK      ;INT      1Bh  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr123: MOV      AL, 50       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt123   ;᫨ , .
             JNE      FunctObr124   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt123: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MELODY     ;INT      1Ch  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr124: MOV      AL, 51       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt124   ;᫨ , .
             JNE      FunctObr125   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt124: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           GRFPARM    ;INT      1Dh  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr125: MOV      AL, 52       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt125   ;᫨ , .
             JNE      FunctObr126   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt125: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FLOPPY2    ;INT      1Eh  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr126: MOV      AL, 53       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt126   ;᫨ , .
             JNE      FunctObr133   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt126: MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           SCREEN2    ;INT      1Fh  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr133: MOV      AL, 60       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt133   ;᫨ , .
             JNE      FunctObr195   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt133: MOV       AX, SEG Sym
             MOV       DS, AX
             MOV       AX, 0B800h     ; 
             MOV       ES, AX
             MOV       SI, OFFSET Mes2     ;A ப
             MOV       DI, 12*80*2+33*2    ;B 業 ࠭
             MOV       CX, Mes2Len         ; ப
REP          MOVSB                    ;뢮  ࠭
             ADD       Offs, 1        ;  ࠭
             INC       Sym            ;䨪 ⠭,  ணࠬ

             ; ᪠  ப  ᨬ.
FunctObr195: MOV      AL, 122      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt195   ;᫨ , .
             JNE      FunctObr196   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt195: MOV      AX, 0101h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr196: MOV      AL, 123      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt196   ;᫨ , .
             JNE      FunctObr197   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt196: MOV      AX, 0202h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr197: MOV      AL, 124      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩. 
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt197   ;᫨ , .
             JNE      FunctObr198   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt197: MOV      AX, 0303
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr198: MOV      AL, 125      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt198   ;᫨ , .
             JNE      FunctObr199   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt198: MOV      AX, 0404
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr199: MOV      AL, 126      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt199   ;᫨ , .
             JNE      FunctObr200  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt199: MOV      AX, 0505
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr200: MOV      AL, 227      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt200  ;᫨ , .
             JNE      FunctObr201  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt200: MOV      AX, 0606h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr201: MOV      AL, 228      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt201  ;᫨ , .
             JNE      FunctObr202  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt201: MOV      AX, 0707h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL            FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr202: MOV      AL, 229      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt202  ;᫨ , .
             JNE      FunctObr1    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt202: MOV      AX, 0808h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

FunctObr1:   MOV      AL, 128      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt1    ;᫨ , .
             JNE      FunctObr2    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt1:   MOV      AX, 0909h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr2:   MOV      AL, 129      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt2    ;᫨ , .
             JNE      FunctObr3    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt2:   MOV      AX, 1010h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr3:   MOV      AL, 130      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt3    ;᫨ , .
             JNE      FunctObr4    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt3:   MOV      AX, 1111h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr4:   MOV      AL, 131      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt4    ;᫨ , .
             JNE      FunctObr5    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt4:   MOV      AX, 1212h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr5:   MOV      AL, 132      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt5    ;᫨ , .
             JNE      FunctObr6    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt5:   MOV      AX, 1313
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr6:   MOV      AL, 133      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt6    ;᫨ , .
             JNE      FunctObr7    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt6:   MOV      AX, 1414h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr7:   MOV      AL, 134      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt7    ;᫨ , .
             JNE      FunctObr8    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt7:   MOV      AX, 1515
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT   10h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr8:   MOV      AL, 135      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt8    ;᫨ , .
             JNE      FunctObr9    ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt8:   MOV      AX, 0000h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr9:   MOV      AL, 136      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt9    ;᫨ , .
             JNE      FunctObr10   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt9:   MOV      AX, 0101h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr10:  MOV      AL, 137      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt10   ;᫨ , .
             JNE      FunctObr11   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt10:  MOV      AX, 0202h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr11:  MOV      AL, 138      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt11   ;᫨ , .
             JNE      FunctObr12   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt11:  MOV      AX, 0303
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr12:  MOV      AL, 139      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt12   ;᫨ , .
             JNE      FunctObr13   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt12:  MOV      AX, 0404h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL             ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr13:  MOV      AL, 140      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt13   ;᫨ , .
             JNE      FunctObr14   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt13:  MOV      AX, 0505
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr14:  MOV      AL, 141      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt14   ;᫨ , .
             JNE      FunctObr15   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt14:  MOV      AH, 00h      ;00h - ⠭ ०
             MOV      AL, 12h      ;12h - ᪨ 640 x 480 
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           FONTS      ;INT      10h  ;뢠 ROM BIOS   

             ; ᪠  ப  ᨬ.
FunctObr15:  MOV      AL, 142      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt15   ;᫨ , .
             JNE      FunctObr16   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt15:  MOV      AX, 0101h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           POWER      ;INT   11h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr16:  MOV      AL, 143      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt16   ;᫨ , .
             JNE      FunctObr17   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt16:  MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MEMORY     ;INT      12h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr17:  MOV      AL, 144      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt17   ;᫨ , .
             JNE      FunctObr18   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt17:  MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadDisk   ;INT      13h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr18:  MOV      AL, 145      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt18   ;᫨ , .
             JNE      FunctObr19   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt18:  MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           ReadPort   ;INT      14h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr19:  MOV      AL, 146      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt19   ;᫨ , .
             JNE      FunctObr20   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt19:  MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT      15h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr20:  MOV      AL, 147      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt20   ;᫨ , .
             JNE      FunctObr21   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt20:  MOV      AX, 00h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           PRINT      ;INT      17h  ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr21:  MOV      AL, 148      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt21   ;᫨ , .
             JNE      FunctObr22   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt21:  MOV      AX, 0000h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr22:  MOV      AL, 149      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨             
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt22   ;᫨ , .
             JNE      FunctObr23   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt22:  MOV      AX, 0101
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr23:  MOV      AL, 150      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨               
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt23   ;᫨ , .
             JNE      FunctObr24   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt23:  MOV      AX, 0202
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr24:  MOV      AL, 151      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt24   ;᫨ , .
             JNE      FunctObr25   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt24:  MOV      AX, 0303
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr25:  MOV      AL, 152      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt25   ;᫨ , .
             JNE      FunctObr26   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt25:  MOV      AX, 0404h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr26:  MOV      AL, 153      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt26   ;᫨ , .
             JNE      FunctObr33   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt26:  MOV      AX, 0505
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, OFFSET Str2
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr33:  MOV      AL, 60       ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt33    ;᫨ , .
             JNE      FunctObr95    ;᫨ ⠪ ᨬ  ப .
FunctInt33:
             MOV       AX, SEG Sym
             MOV       DS, AX
             MOV       AX, 0B800h     ; 
             MOV       ES, AX
             MOV       SI, OFFSET Mes2     ;A ப
             MOV       DI, 12*80*2+33*2    ;B 業 ࠭
             MOV       CX, Mes2Len         ; ப
REP          MOVSB                    ;뢮  ࠭
             ADD       Offs, 1        ;  ࠭
             INC       Sym            ;䨪 ⠭,  ணࠬ

             ; ᪠  ப  ᨬ.
FunctObr95:  MOV      AL, 222      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt95   ;᫨ , .
             JNE      FunctObr96   ;᫨ ⠪ ᨬ  ப .             
             ;믮   , ᮮ⢥饩 樨.
FunctInt95:  MOV      AX, 0606
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           MOUSE      ;INT   15h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr96:  MOV      AL, 223      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt96   ;᫨ , .
             JNE      FunctObr97   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt96:  MOV      AX, 0000h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr97:  MOV      AL, 224      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨 
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt97   ;᫨ , .
             JNE      FunctObr98   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt97:  MOV      AH, 0101
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr98:  MOV      AL, 225      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt98   ;᫨ , .
             JNE      FunctObr99   ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt98:  MOV      AX, 0202h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr99:  MOV      AL, 226      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨              
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt99   ;᫨ , .
             JNE      FunctObr100  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt99:  MOV      AX, 0303
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS

             ; ᪠  ப  ᨬ.
FunctObr100: MOV      AL, 227      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt100  ;᫨ , .
             JNE      FunctObr301  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt100: MOV      AX, 0404h
             MOV      BX, 01h
             MOV      CX, 0512
             MOV      DX, 0001h              
             CALL           ReadPort   ;INT   14h   ;뢠 ROM BIOS


             ; ᪠  ப  ᨬ.
FunctObr301: MOV      AL, 228      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt301  ;᫨ , .
             JNE      FunctObr302  ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt301: CALL     WEP          ;㧪 㦭 ணࠬ


             ; ᪠  ப  ᨬ.
FunctObr302: MOV      AL, 227      ; ᨬ,   饬.
             PUSH     DS           ;ந ᥣ ॣ
             POP      ES           ;  ப.
             CLD                   ;   ப.
             LEA      SI, Str2     ;DS: SI --> ப 筨
             LEA      DI, Bufin    ;ES: DI --> ப 񬭨
             MOV      CX, 0512     ; ப ᨬ 䠩.
REPNE        SCASB                 ; ࢮ ⠪ ᥫ  ப.
             JE       FunctInt303  ;᫨ , .
             JNE      FilExit      ;᫨ ⠪ ᨬ  ப .
             ;믮   , ᮮ⢥饩 樨.
FunctInt303:       
             CALL     LibMain      ;㧪 㦭 ணࠬ





             ; 砭 ࠡ  䠩 ᢮,
             ; ॣ.
FilExit:     POP      DS
             ;Bocc⠭ ⠡ ࠬ஢ ᪥
             MOV      ES, WORD PTR dpt + 2     ;Ce ⠡
             MOV      BYTE PTR ES:[DI + 3], 2  ;Ko ࠧ ᥪ

             ;Oc  ࠭  ॣ
             POPF
             ;⠭ ᥣ  砫 ணࠬ
             MOV      AX, 0000h
             MOV      DS, AX
             ;३   横 믮 ணࠬ
             JMP      Start





             ;襭 ணࠬ
             RET    ; ࠡ稪. ,  Windows ணࠬ
                    ;  㦥, ⮫쪮  
                    ;짮⥫.
             
EXECMODULS   ENDP


; ⥬ ணࠬ 襩 ⠡ 뢠  ᠬ
;INT 00h - 07h  10h - 20h, 㦠 ⥬ ணࠬ 
;⨢    ᠬ,  믮 ᮮ⢥
;㭪権  樮 ⥬.

;⥬ ணࠬ INT 0h
Intr00h:
INTRRUP0     PROC      
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             ADD       Byte Ptr [BX+SI],AL
             RET       ;  ࠡ稪 뢠
INTRRUP0     ENDP
Intr00hLen   EQU   $ - Intr00h
; ணࠬ ࠡ稪 INT 0h



;⥬ ணࠬ INT 1h
Intr01h:
INTERRUP1  PROC      
           CLI       ; 뢠
           dw        0
           SUB       BYTE PTR CS:[21A8h],4D  
           SUB       WORD PTR [BP+DI+06],AX  
           PUSH      WORD PTR [BP-10]  
           PUSH      SI  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      SS  
           PUSH      AX  
           ADD       SP,08  
           PUSH      DS  
           PUSH      WORD PTR [BP+06]  
           LEA       AX,WORD PTR [BP-62]  
           PUSH      SS  
           PUSH      AX  
           ADD       SP,08  
           PUSH      CX  
           PUSH      DS  
           POP       ES  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      AX  
           ADD       SP,08  
           SUB       AH,AH  
           MOV       WORD PTR [BP-06],AX  
           OR        AX,AX  
           MOV       ES,[BP-10]  
           LEA       BX,WORD PTR [SI-01]  
           MOV       AL,BYTE PTR ES:[BX]  
           AND       AL,02  
           CMP       AL,01  
           SBB       AL,AL  
           INC       AL  
           MOV       BYTE PTR [BP-01],AL  
           MOV       BYTE PTR [BP+00],5Ch  
           MOV       AL,BYTE PTR [DI+5001]  
           MOV       AL,BYTE PTR [DI+5Eh]  
           PUSH      AX  
           PUSH      BX  
           ADD       SP,06  
           CMP       BYTE PTR [BP-01],2Eh  
           MOV       DX, 004Fh  
           CMP       WORD PTR ES:[1024],2Eh  
           PUSH      WORD PTR [BP+08]  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      AX  
           CMP       BYTE PTR [BP-01],2Eh  
           CMP       WORD PTR [BP+14],74  
           ADC       BH,BH  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      AX  
           ADD       SP,04  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      AX  
           PUSH      DX  
           ADD       SP,04  
           MOV       WORD PTR [BP-06],AX  
           MOV       ES,[BP-10]  
           LEA       BX,WORD PTR [SI-01]  
           MOV       BYTE PTR ES:[BX],2Eh  
           CMP       BYTE PTR [DI+57],06  
           PUSH      WORD PTR [BP-10]  
           PUSH      SI  
           ADD       SP,04  
           INC       AX  
           MOV       AX,022Eh  
           ADD       SI,AX  
           CMP       WORD PTR [BP-06],01  
           INC       WORD PTR [BP-0Ah]  
           MOV       AX,WORD PTR [BP+04]  
           DEC       WORD PTR [BP+04]  
           OR        AX,AX  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP1  ENDP
Intr01hLen   EQU   $ - Intr01h
; ணࠬ ࠡ稪 INT 1h


;⥬ ணࠬ INT 2h
Intr02h:
INTERRUP2  PROC      
           MOV       SI,WORD PTR [BP-80]  
           CMP       SI,14  
           MOV       DX, 444Fh  
           PUSH      WORD PTR ES:[2E7Ah]  
           PUSH      WORD PTR ES:[782Eh]  
           ADD       SP,04  
           PUSH      WORD PTR [BP-08]  
           POP       BX  
           CMP       SI,14  
           MOV       AX,012Eh  
           DEC       SI  
           MOV       BX,WORD PTR ES:[722Eh]  
           MOV       DI,WORD PTR [BX+0786]  
           MOV       BX,WORD PTR ES:[722Eh]  
           MOV       DI,WORD PTR [BX+0790]  
           PUSH      SI  
           PUSH      DI  
           PUSH      WORD PTR [BX+021Eh]  
           LEA       AX,WORD PTR [BP-62]  
           PUSH      AX  
           MOV       AX, 1099  
           CBW         
           PUSH      AX  
           ADD       SP,8Bh  
           INC       SI  
           NEG       BYTE PTR [BP+5Fh]  
           CLD       
REP        STOSB                                        
           PUSH      DI  
           PUSH      SI  
           MOV       SI,WORD PTR [1097]  
           MOV       AX, 404Fh  
           MOV       BX, 02B4h  
           MOV       CX, 334Fh  
           MOV       BX,WORD PTR ES:[722Eh]  
           PUSH      DS  
           PUSH      WORD PTR [BX+076Ch]  
           PUSH      WORD PTR [BX+078Eh]  
           NOP         
           PUSH      CS  
           ADD       SP,06  
           MOV       DX, 444Fh  
           MOV       AX, 782Eh  
           MOV       DX, 222Eh  
           MOV       AX,DX  
           OR        AX,WORD PTR ES:[782Eh]  
           XOR       AX,AX  
           PUSH      AX  
           POP       BX  
           MOV       WORD PTR [BP-02],AX  
           MOV       DI,WORD PTR [BP-80]  
                 
           MOV       SI,WORD PTR [BP+40]  
           CMP       DI,14  
           CMP       DI,01  
           SBB       AX,AX  
           NEG       AX  
           PUSH      AX  
           PUSH      DX  
           PUSH      WORD PTR [BP+06]  
           PUSH      DX  
           ADD       SP,08  
           MOV       DX, 575Ch  
           MOV       AL,BYTE PTR [SI+01]  
           IN        AL,50  
           MOV       AL,BYTE PTR [BX+SI]  
           ADD       BYTE PTR [BX+SI],AL  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP2  ENDP
Intr02hLen   EQU   $ - Intr02h
; ணࠬ ࠡ稪 INT 2h



;⥬ ணࠬ INT 3h
Intr03h:
INTERRUP3   PROC      
            CLI       ; 뢠
            INC       SP  
            POP       SI  
            PUSH      AX  
            PUSH      BX  
            ADD       SP,06  
            PUSH      WORD PTR [BP+08]  
            PUSH      WORD PTR [BP+04]  
            ADD       SP,04  
            PUSH      DS  
            PUSH      DI  
            ADD       SP,04  
            MOV       DX, 102Eh   
            CMP       DI,14  
            MOV       DX, 444Fh  
            PUSH      WORD PTR ES:[227Ah]  
            PUSH      WORD PTR ES:[782Eh]  
            ADD       SP,04  
            AND       BYTE PTR [BP-02],DH  
            POP       BX  
            CMP       DI,01  
            ADD       BYTE PTR [BX+SI],AL  
            MOV       DX, 334Fh  
            MOV       BX,WORD PTR ES:[722Eh]  
            MOV       SI,WORD PTR [BX+0786]  
            MOV       DX, 334Fh  
            MOV       BX,WORD PTR ES:[722Eh]  
            MOV       SI,WORD PTR [BX+0790]  
            PUSH      DI  
            PUSH      SI  
            PUSH      WORD PTR [BX+021Eh]  
            PUSH      WORD PTR [BP+06]  
            MOV       BX, 1099   
            CBW         
            PUSH      AX  
            ADD       SP,5Eh  
            POP       DI  
            PUSH      SI  
            PUSH      BP  
            MOV       BP, 000Ch  
            MOV       AX,WORD PTR [1044]  
            MOV       WORD PTR [BP-0Ah],AX  
            LEA       AX,WORD PTR [BP-10]  
            PUSH      AX  
            LEA       AX,WORD PTR [BP-12]  
            PUSH      AX  
            NOP         
            PUSH      CS  
            ADD       SP,04  
            MOV       DX, 344Fh  
            MOV       BX,WORD PTR ES:[722Eh]  
            PUSH      DS  
            PUSH      WORD PTR [BX+076Ch]  
            PUSH      WORD PTR [BX+078Eh]  
            NOP         
            PUSH      CS  
            ADD       SP,06  
            MOV       DX, 444Fh  
            MOV       AX, 782Eh  
            AND       BYTE PTR [BX+SI],AH  
            MOV       WORD PTR ES:[270Ah],DX  
            MOV       AX,DX  
            OR        AX,WORD PTR ES:[782Eh]  
            XOR       AX,AX  
            PUSH      SP  
            POP       BX  
            MOV       WORD PTR [BP-0Eh],AX  
            MOV       DX, 404Fh  
            ADD       BYTE PTR [BX+SI],AL  
            STI       ; 뢠
            RET       ; 横 १⭮ ࠡ稪
INTERRUP3   ENDP
Intr03hLen   EQU   $ - Intr03h
; ணࠬ ࠡ稪 INT 3h


;⥬ ணࠬ INT 4h
Intr04h:
INTERRUP4  PROC      
           CLI       ; 뢠
           ADD       BYTE PTR [BX+SI],AL  
           CMP       WORD PTR [BP+0Eh],01  
           SBB       AX,AX  
           NEG       AX  
           PUSH      AX  
           PUSH      DX  
           PUSH      WORD PTR [BP+08]  
           CMP       WORD PTR [BP+0Eh],04  
           AND       BYTE PTR [BX+SI],AH  
           MOV       AX, 042Eh  
           MOV       AX, 062Eh  
           PUSH      AX  
           ADD       SP,08  
           PUSH      DS  
           PUSH      WORD PTR [BP+08]  
           LEA       AX,WORD PTR [BP-62]  
           PUSH      SS  
           PUSH      AX  
           MOV       BX,WORD PTR [BP-0Ah]  
           ADD       SP,08  
           MOV       AX,WORD PTR [BX+2Eh]  
           MOV       DX,WORD PTR [BX+2Eh]  
           MOV       WORD PTR [BP-04],AX  
           MOV       WORD PTR [BP-02],DX  
           MOV       SI,AX  
           MOV       DI,WORD PTR [BP-17]  
           ADC       AL,01  
           INC       SI  
           MOV       BX,WORD PTR [BP-0Ah]  
           CMP       BYTE PTR [BX+57],06  
           AND       BYTE PTR [BX+SI],AH  
           LEA       AX,WORD PTR [BP-00B8h]  
           PUSH      SS  
           PUSH      AX  
           MOV       ES,[BP-02]  
           PUSH      WORD PTR ES:[SI]  
           ADD       SP,06  
           PUSH      WORD PTR [BP-02]  
           PUSH      SI  
           LEA       AX,WORD PTR [BP-008Bh]  
           PUSH      SS  
           PUSH      AX  
           ADD       SP,08  
           MOV       WORD PTR [BP-06],010Fh 
           ADD       BYTE PTR CS:[BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       AX,880D  
           INC       SI  
           STC         
           AND       BYTE PTR [BX+SI],AH  
           MOV       BX,WORD PTR [BP-0Ah]  
           SUB       AH,AH  
           MOV       AL,BYTE PTR [BX+5001]  
           MOV       AL,BYTE PTR [BX+5Eh]  
           PUSH      AX  
           PUSH      DX  
           ADD       SP,06  
           CMP       BYTE PTR [BP-07],2Eh  
           MOV       DX, 424Fh  
           CMP       WORD PTR ES:[1099],2Eh  
           CMP       WORD PTR [BP+0Eh],04  
           MOV       AX, 042Eh  
           MOV       AX, 062Eh  
           PUSH      AX  
           PUSH      WORD PTR [BP+0Ch]  
           LEA       SP,WORD PTR [BX+SI]  
           AND       BYTE PTR [BP-00B8h],AL  
           PUSH      SS  
           PUSH      AX  
           PUSH      DI  
           PUSH      WORD PTR [BP+08]  
           ADD       SP,0Ch  
           CMP       BYTE PTR [BP-07],2Eh  
           CMP       BYTE PTR [BP+09],8Eh
           ADD       BYTE PTR [BX+SI],AL  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP4  ENDP
Intr04hLen   EQU   $ - Intr04h
; ணࠬ ࠡ稪 INT 4h


;⥬ ணࠬ INT 5h
Intr05h:
INTERRUP5  PROC      
           CLI       ; 뢠
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           CMP       WORD PTR [BP+0Eh],04  
           PUSH      WORD PTR [BP+0Ch]  
           PUSH      DI  
           LEA       AX,WORD PTR [BP-008h]  
           PUSH      SS  
           PUSH      AX  
           ADD       SP,08  
           PUSH      DI  
           LEA       AX,WORD PTR [BP-008Bh]  
           PUSH      SS  
           PUSH      AX  
           ADD       SP,06  
           AND       BYTE PTR [BX+SI],AH  
           LEA       AX,WORD PTR [BP-00]  
           PUSH      AX  
           PUSH      DI  
           ADD       SP,04  
           MOV       WORD PTR [BP-06],AX  
           MOV       ES,[BP-02]  
           LEA       BX,WORD PTR [SI-01]  
           MOV       BYTE PTR ES:[BX],2Eh  
           MOV       BX,WORD PTR [BP-0Ah]  
           CMP       BYTE PTR [BX+57],06  
           PUSH      WORD PTR [BP-02]  
           PUSH      SI  
           ADD       SP,04  
           INC       AX  
           MOV       AX,022Eh  
           ADD       SI,AX  
           CMP       WORD PTR [BP-06],01  
           INC       WORD PTR [BP-0Ch]  
           AND       BYTE PTR [BX+SI],AH  
           MOV       AX,WORD PTR [BP+06]  
           DEC       WORD PTR [BP+06]  
           OR        AX,AX  
           CMP       WORD PTR [BP-99],0 
           MOV       SI,WORD PTR [BP+0Eh]  
           MOV       DX, 444Fh  
           PUSH      WORD PTR ES:[2E7Ah]  
           PUSH      WORD PTR ES:[2E78h]  
           ADD       SP,04  
           PUSH      WORD PTR [BP-0Eh]  
           POP       BX  
           CMP       SI,04  
           MOV       DX, 373Eh  
           AND       BYTE PTR ES:[BX+SI],AH  
           MOV       BX,WORD PTR [722Eh]  
           MOV       DI,WORD PTR [BX+078Ah] 
           MOV       DX, 373Eh  
           MOV       BX,WORD PTR ES:[722Eh] 
           MOV       DI,WORD PTR [BX+078Ch]  
           CMP       SI,04  
           MOV       AX,SI  
           MOV       AX,062Eh  
           PUSH      AX  
           PUSH      DI  
           PUSH      WORD PTR [BP+0Ch]  
           LEA       AX,WORD PTR [BP-62]  
           PUSH      AX  
           MOV       AL, 10  
           CBW         
           PUSH      AX  
           ADD       SP,8Bh  
           INC       SI  
           POP       SI  
           POP       DI  
           PUSH      DI  
           AND       BYTE PTR [BX+SI],AH  
           PUSH      SI  
           MOV       SI,WORD PTR [1049]  
           PUSH      WORD PTR [BP+04]  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP5  ENDP
Intr05hLen   EQU   $ - Intr05h
; ணࠬ ࠡ稪 INT 5h


;⥬ ணࠬ INT 6h
Intr06h:
INTERRUP6  PROC      
           CLI       ; 뢠
           ADD       BYTE PTR [BX+SI],AL  
           POP       BX  
           MOV       DX, 404Fh  
           MOV       WORD PTR [DI-0Ch],AX 
           LEA       AX,WORD PTR [BP-06]  
           PUSH      AX  
           LEA       AX,WORD PTR [BP-08]  
           PUSH      AX  
           NOP         
           PUSH      CS  
           ADD       SP,04  
           CMP       BYTE PTR [SI+2Eh],74  
           PUSH      CS  
           PUSH      AX  
           POP       BX  
           XOR       AX,AX  
           PUSH      DI  
           PUSH      SI  
           DEC       BP  
           MOV       WORD PTR [DI-0Dh],BX  
           MOV       DI,AX  
           MOV       WORD PTR [BP-02],DX  
           MOV       AL,BYTE PTR [SI+57]  
           SUB       AH,AH  
           PUSH      AX  
           PUSH      DX  
           PUSH      DI  
           NOP         
           PUSH      CS  
           ADD       SP,06  
           OR        AX,AX  
           MOV       DI,96  
           XOR       SI,SI  
           PUSH      DS  
           PUSH      DI  
           ADD       SP,04  
           INC       AX  
           ADD       DI,AX  
           INC       SI  
           MOV       AL, 10  
           CBW         
           CMP       AX,SI  
           MOV       AX,WORD PTR [DI-14]  
           PUSH      WORD PTR [BX+SI+04] 
           dw        0 
           ADC       CL,BYTE PTR [BP+DI]  
           ADD       BYTE PTR [BX+SI],AL
           OR        AX,AX  
           PUSH      WORD PTR [BX+SI]  
           NOP         
           PUSH      CS  
           POP       BX  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       SP,04  
           MOV       WORD PTR [DI-3Ch],AX  
           CMP       WORD PTR [DI-3Ch],00  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       CX,WORD PTR [DI-3Ch]  
           PUSH      DI
           DB        35,  6,  0, 248   ;AND       AX,F8h  
           ADD       SP,04  
           ADD       BYTE PTR [BX+SI],AL   
           CMP       WORD PTR [DI-99],9Fh   
           NOP         
           PUSH      CS  
           ADD       BYTE PTR [BX+SI],AL   
           MOV       DI,960Ah  
           XOR       SI,SI  
           PUSH      DS  
           PUSH      DI  
           ADD       SP,04  
           INC       AX  
           ADD       DI,AX  
           INC       SI  
           ADD       BYTE PTR [BX+SI],CL   
           CBW         
           CMP       AX,SI  
           MOV       SI,WORD PTR [BP+04]  
           MOV       WORD PTR [DI-04],AX  
           PUSH      DS  
           PUSH      DI  
           ADD       BYTE PTR [BX+SI],AL  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP6  ENDP
Intr06hLen   EQU   $ - Intr06h
; ணࠬ ࠡ稪 INT 6h


;⥬ ணࠬ INT 7h
Intr07h:
INTERRUP7  PROC      
           CLI       ; 뢠
           PUSH      DS  
           PUSH      SI  
           PUSH      BX  
           PUSH      DX  
           ADD       SP,1Ah  
           CMP       WORD PTR [DI-34],00
           MOV       BX,WORD PTR [317Eh]  
           CMP       BYTE PTR [BX+09],01  
           PUSH      WORD PTR [DI+10] 
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL 
           SUB       AH,AH  
           MOV       WORD PTR [DI-38],AX  
           CMP       WORD PTR [DI-38],00  
           MOV       AX,WORD PTR [DI-14]  
           PUSH      WORD PTR [BX+SI+04]  
           MOV       AX,WORD PTR [DI-14]  
           PUSH      WORD PTR [BX+SI]  
           PUSH      WORD PTR [DI-10]  
           MOV       DX, 424Fh
           MOV       WORD PTR [DI-0Ch],AX  
           CMP       WORD PTR [DI-38],00  
           PUSH      BP  
           PUSH      DI  
           PUSH      DS
           PUSH      DX  
           ADD       SP,08  
           MOV       DX, 443Eh  
           MOV       BX, WORD PTR ES:[722Eh]  
           PUSH      DS  
           PUSH      WORD PTR [BX+076Ch]  
           PUSH      WORD PTR [BX+078Eh]  
           NOP         
           PUSH      CS  
           ADD       SP,06  
           MOV       DX, 444Fh  
           MOV       WORD PTR [DI-10],AX  
           MOV       WORD PTR ES:[2E7Ah],DX  
           MOV       AX,DX  
           OR        AX,WORD PTR ES:[782Eh]  
           PUSH      CX  
           POP       BX  
           MOV       WORD PTR [BP-02],AX  
           CMP       WORD PTR [DI-38],00  
           PUSH      BX  
           PUSH      DX  
           PUSH      SI  
           PUSH      SP  
           ADD       SP,08  
           PUSH      BX  
           PUSH      DX  
           MOV       DX, 443Eh  
           MOV       CX,WORD PTR [DI-38]   
           PUSH      DS  
           PUSH      WORD PTR [BX+024Ah]  
           PUSH      WORD PTR [BP+06]  
           PUSH      SI  
           ADD       SP,0Ch  
           MOV       DX, 444Fh  
           PUSH      WORD PTR ES:[2E7Ah]  
           PUSH      CX  
           PUSH      AX  
           MOV       BX, 334Fh  
           MOV       BX,WORD PTR [DI-38]  
           PUSH      DS  
           PUSH      WORD PTR [BX+06]  
           ADD       SP,0Ch  
           MOV       DX, 444Fh  
           PUSH      WORD PTR ES:[2E7Ah]  
           PUSH      WORD PTR ES:[782Eh]  
           PUSH      AX  
           PUSH      BX  
           PUSH      CX
           PUSH      DX
           ADD       BYTE PTR [BX+SI],AL  
           STI       ; 뢠
           RET       ; 横 १⭮ ࠡ稪
INTERRUP7  ENDP
Intr07hLen   EQU   $ - Intr07h
; ணࠬ ࠡ稪 INT 7h


;⥬ ணࠬ INT 10h
Intr10h:
;砫 ᭮ ணࠬ
FONTS     PROC    
          CLI     ; 뢠
          PUSHF   ;Coxpa a   IRET
          ;楤 IOS 樠樨 ணࠬ 뢠 10
          MOV     DX,1E10h
          MOV     SP,08  
          MOV     WORD PTR [DI-08],CX  
          MOV     WORD PTR [SI+08],BX

          ;,  ணࠬ  ।
          ;祭 䫠  ॣ஢
          ;AH  AX  ஬, 
          ;ᯮ짮   .
          LEA     DX, IntVect4
          TEST    DX, 10h
          INC     DX

          ;। ⥬,   ᯮ
          ;祭  䫠 
          ;ॣ஢ AH  AX, ந ࡮
          ; 뢠 INT 10h   
          ; ᮮ⢥騩  ᥣ⭮
          ; ⨢ .
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BL, 10h   ; 뢠 ᨬ  
          CLD               ; 
REP       STOSB             ;
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 
          
          ; 楤 ᯮ 㭪樨
          ;ࠡ  ஫஬ ⥬  
          ;짮⥫ (맮 ⮩ ⥬ ணࠬ
          ;  ⠡ १ BIOS, 室饣
          ;   ⨢ , १
          ;뢠 INT 10h)
          PUSH    AX  ;⢮ ॣ AX
                      ; 쭥 ⢨
          POP     BX  ; BX ⠢
                      ;᢮  䨪樨

          ;   䫠 AH  AX,
          ; ⢨ ᭮ 䨪樨 ࠢ饩
          ;ணࠬ 
          AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    

          
          ;।  㭪 ⥬ ணࠬ
          ;뫠 ॡ 짮⥫,   맮
          ;뢠 INT 10h
          CMP      AH, 00h
          JE       GraphSc0
          CMP      AH, 01h
          JE       GraphSc1
          CMP      AH, 02h
          JE       GraphSc2
          CMP      AH, 03h
          JE       GraphSc3
          CMP      AH, 04h
          JE       GraphSc4
          CMP      AH, 05h
          JE       GraphSc5
          CMP      AH, 06h
          JE       GraphSc6
          CMP      AH, 07h
          JE       GraphSc7
          CMP      AH, 08h
          JE       GraphSc8
          CMP      AH, 09h
          JE       GraphSc9
          CMP      AH, 0Ah
          JE       GraphSc10
          CMP      AH, 0Bh
          JE       GraphSc11
          CMP      AH, 0Ch
          JE       GraphSc12
          CMP      AH, 0Dh
          JE       GraphSc13
          CMP      AH, 0Eh
          JE       GraphSc14
          CMP      AH, 0Fh
          JE       GraphSc15
          CMP      AH, 10h
          JE       GraphSc16
          CMP      AH, 11h
          JE       GraphSc17
          CMP      AH, 12h
          JE       GraphSc18
          CMP      AH, 13h
          JE       GraphSc19
          CMP      AH, 14h
          JE       GraphSc20
          CMP      AH, 15h
          JE       GraphSc21


        ;㭪樨 ࠡ  ॠ㥬 ⥬
        ;ணࠬ INT 10h
GraphSc0:
          ;㧪 ணࠬ 樠樨 ⥪⮢ 
          ;᪨ ० ࠩ.
          CALL       Graph
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc1:
          ;⠭ ० ⮡ࠦ   .
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0
          ;, 뢥  ࠦ.
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AL, 1         ;
          OUT       DX, AL        ;⠭ 梥
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc2:
          ;⠭     ᯫ.
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ; ॣ
          PUSH      AX
          PUSH      BX
          PUSH      CX
          PUSH      DX
          ;㭪 뢮  ᯫ
          ;祭  , ᫮  ।
          MOV       AH, 00h     
          MOV       AL, 0
          MOV       AX, 0000h                              
          MOV       ES, AX
          MOV       ES:0, AX     ;ࢠ   ࠭
          MOV       ES:0, BX     ; 
          MOV       AH, 00h     
          MOV       AL,0         ;K 宫⮣ ᨣ
          MOV       BX, 0        ;   
          MOV       ES:0[BX], AX
          MOV       SI, 0000h    ; ப
          MOV       DI, 0000h    ;B  ࠭
          MOV       CX, 0000h    ; ப
REP       STOSB     ;   ⨢  
          MOV       AL, 00
          MOV       DS, AX
          MOV       AX, 0B800h  ; 
          MOV       ES, AX
          MOV       DI, 0000h   ;饭  ࠭
          LEA       SI, atd5    ; ᮮ饭
          MOV       CX, 0000h   ;᫮ 뢮 ⮢
REP       MOVSB     ; ⮡ࠦ  ᯫ
          ;᢮ ॣ
          POP       AX
          POP       BX
          POP       CX
          POP       DX
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc3:
          ;祭 ० ⮡ࠦ  ࠧ .
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          MOV       AX, 0100      ;㭪 01h  ࠩ
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX
          ;㭪 㢥祭 ࠧ 
          AAM
          IMUL      DX
          AAA
          ADD       DX, 00h   
          ;㭪 㬥襭 ࠧ 
          MOV       AL, 0FFh      
          OUT       DX, AL        
          INC       DX
          AAS
          SUB       DX, 00h
          AAD
          IDIV       DX
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc4:
          ;㫨஢ મ 梥⮢ ,  
          ; ࠬ஢,   㭪樨 INT 10h.
          MOV       AX, 0B800h
          MOV       DS, AX
          MOV       AX, 0400h  ;㭪 04h  ࠩ
          ;㧨 ࠬ ᭮ 16- 梥⮢ 
          ;஫ 
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 2      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;।⢥ ⥭ ࠬ, 
          ; 16- ᭮ 梥⮢  ன⢠
          ;஫ 
          MOV       CX, 000Fh  ;ᥣ 梥⮢   16
          OUT       10h, AL    ;1
          OUT       10h, AL    ;2
          OUT       10h, AL    ;3
          OUT       10h, AL    ;4
          OUT       10h, AL    ;5
          OUT       10h, AL    ;6
          OUT       10h, AL    ;7
          OUT       10h, AL    ;8
          OUT       10h, AL    ;9
          OUT       10h, AL    ;10
          OUT       10h, AL    ;11
          OUT       10h, AL    ;12
          OUT       10h, AL    ;13
          OUT       10h, AL    ;14
          OUT       10h, AL    ;15
          OUT       10h, AL    ;16
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          ;  256-  梥⮢ 砥 ਬ
          ;横  16- ⭮   1-  
          ; 饣 梥. ⠭  ਭ楯 16 x 16 = 256.
SetClr0:  MOV       CX, 16     ; 横,  16 ࠧ  
                               ;⮣, ⮡    256-
                               ;梥⮢.
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color0 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr0 ;᪨ 室  .

SetClr1:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color1 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr1 ;᪨ 室  .

SetClr2:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color2 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr2 ;᪨ 室  .

SetClr3:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color3 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr3 ;᪨ 室  .

SetClr4:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color4 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr4 ;᪨ 室  .
          
SetClr5:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color5 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr5 ;᪨ 室  .

SetClr6:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color6 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr6 ;᪨ 室  .

SetClr7:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color7 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr7 ;᪨ 室  .

SetClr8:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color8 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr8 ;᪨ 室  .

SetClr9:  MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color9 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr9 ;᪨ 室  .

SetClr10: MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color10 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr10 ;᪨ 室  .

SetClr11: MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color11 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr11 ;᪨ 室  .

SetClr12: MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color12 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr12 ;᪨ 室  .

SetClr13: MOV       CX, 16     ; 横,   16 ࠧ. 
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color13 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr13 ;᪨ 室  .

SetClr14:
          DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color14 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr14 ;᪨ 室  .

SetClr15: DAA       ;   ࠭
          MOV       BX, 0014h  ;ᨬ쭮 祭,  .
          MOV       CX, 4      ; 梥  4- ⠬.
          LEA       DX, Color15 ;㧪  ⮡ࠦ 㦭 梥.
          ADC       DL, 01h    ; ࠧ   1 ,  .
          MOV       DX, OFFSET PlusClr     ;塞    梥.
          INC       DX         ; 㦥   ⠫.
          AAA       ;, 㦥 ।  .
          AAD       ;  ।ਭ   ⮪  . 
          CBW       ;ꥤ ॣ 梥   祭.
          LOOPZ     SetClr15 ;᪨ 室  .
          
          ;  横 16  16 ࠢ 256.
          LODSB              ;᪨ 室  
          MOV       CH, 255  ;稫 ࠧ 256 梥⮢.
          CLD       ;஢ 
REP       STOSB     ;䨪஢   ࠬ 祭
                    ;梥⮢.
          ;㧨 ࠬ 256- 祭 梥⮢ 
          ;஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 2      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ࠬ, 
          ; 256- ᭮ 梥⮢  ன⢮
          ;஫ .  筮,
          ;ᯮ짮 8- ࠧ來 ᨣ, 
          ;㪠뢠  ।  ⤥쭮 ,
          ;  梥.
          MOV       CX, 00FFh  ;ᥣ 梥⮢   256
          IN        AL, 10h    ;1     ⮢ ਭ楯:
          IN        AL, 10h    ;2            8
          IN        AL, 10h    ;3
          IN        AL, 10h    ;4
          IN        AL, 10h    ;5
          IN        AL, 10h    ;6
          IN        AL, 10h    ;7
          IN        AL, 10h    ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          ;室  砭 ⠭筮 楤
          JMP       ScNxt

GraphSc5:
          ;⠭ ࠭.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;樠 ⠭  ࠭.
          ;⮡  樫஢, 㦭  
          ;ᯫ ⮡ࠦ ன ࠭.
Cistka:   MOV       CX, 50     ; 50 ࠧ .
          MOV       DI, 0001h  ;  ࢮ ᥫ.
          MOV       CL, SpeedStrLen    ; 㧠 . 
          LEA       SI, SpeedStr  ;㧪  饩 ப.
          LOOPZ     Cistka     ;室  믮 横.
          MOV       CH, 80     ;. ᫮ ᨬ  ਧ⠫.
          MOV       CX, 50     ;. ᫮ ᨬ  ⨪.
          CLD       ;஢ ⠭ 
REP       MOVSB     ;Caa 䨪ca
          ;Te ᯮ  ⥫쭮 ப,
          ;  ⥫ ᯮ塞 ணࠬ, ⮡
          ;䨪஢ 樠  ࠭.
SpeedStr  dd     0, 0, 0, 0, 0, 0, 0, 0, 0, 0
          dd     0, 0, 0, 0, 0, 0, 0, 0, 0, 0
SpeedStrLen      EQU      $ - SpeedStr
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc6:
          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ࢮ ᥫ
          ; ᯫ  ⥫ .   
          ;ᠬ ᫮ 権. , ᠬந쭮 
          ;ᯫ  ६ ⮫쪮 .
          MOV       DI, 0000h  ;⠭  祭
                               ;砫쭮  
                               ;  ᯫ.
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAS       ;⠭ 䫠 㤠 室 ᫠ ᥫ.
          SUB       DI, 99h    ;  ॣ DI 室 祭.
          DAS       ;⠭ 䫠  㤠 䨪஢ 祭.
          SBB       DI, 99h    ;  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          SBB       CX, 0560h  ; ⥪騥 祭   䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          DEC       DI         ;䨪஢ ᫥ 㤠,  
          DEC       CX         ;ॣ DI  CX ⥫쭮 饭.
          DAS       ;୮ ⠭ 䫠 뢠 ᥫ, 
                    ;⢥ত  ⮩ 樨.
          AAS       ;T  襭.  㯠  㣮.
          NEG       DI         ;  ⥫쭮 祭
          NEG       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc7:
          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ᫥ ᥫ
          ; ᯫ    .  ਭ楯,
          ; , 筠 ।饩  ன   
          ;६饭 ⢫,  .
          MOV       DI, 9999h  ;饭   ࠭.   
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAA       ;⠭ 䫠  室 ᫠ ᥫ.
          ADD       DI, 99h    ;ਡ  ॣ DI  祭.
          DAA       ;⠭ 䫠  㤠 䨪஢ 祭.
          ADC       DI, 99h    ;ਡ  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          ADC       CX, 0560h  ;ਡ  ⥪騬 祭 䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          INC       DI         ;䨪஢ ᫥ ,  
          INC       CX         ;ॣ DI  CX 饭.
          DAS       ;୮ ⠭ 䫠  ᥫ.
          AAA       ;T  襭.  㯠  㣮.
          NOT       DI         ;  ⥫쭮 祭
          NOT       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc8:
          ;⥭ ᨬ   ਡ  樨 .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ; 梥 뢮 ᨬ.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 0FFh
          INC       BX       ; ᫥饬 
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc9:
          ; ᨬ   ਡ   .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          IN        AL, DX        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          IN        AL, DX        ;⠭ ᪨ ⮢
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AL, 0         ; 梥
          IN        AL, DX        ;⠭ 梥
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 0
          INC       BX       ; ᫥饬 
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc10:
          ; ᨬ,  ਡ   .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          IN        AL, DX        ;⠭ ᪨ ⮢
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 0
          INC       BX       ; ᫥饬 
          ;室  砭 ⠭筮 楤
          JMP       ScNxt


GraphSc11:
          ;१ࢭ 㭪  ࠡ  ࠩࠬ,
          ;᪨ 樮 ⥬, ⨯ Windows, Linix,
          ;OS/2  Unix ᮢ⨬  ⠭묨 
          ;ࠬࠬ BIOS  DOS.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;१ࢨ஢   ⥬ ணࠬ
          ;믮饩 㭪樨,  ।ᬮ७ 
          ;ࠩ஬ ROM BIOS
RezerfSub:          db   96  Dup   (?)
          ;室  砭 ⠭筮 楤
          JMP       ScNxt

GraphSc12:
          ; ᥫ  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ; 梥 뢮 ᨬ.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          ;뢥  ᥫ  ᯫ.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSB     ;뢮     ᯫ.
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc13:
          ;⥭ ᥫ  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0001h  ; 
          ; 梥 뢮 ᨬ.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          ;  ᥫ   ⨢ .
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;஢ .
REP       STOSB     ;   .
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc14:
          ; ᨬ  ० ⥫⠩.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ; 梥 뢮 ᨬ.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSB     ;뢮 2-   ᯫ.  
          ;室  砭 ⠭筮 楤
          JMP       ScNxt

GraphSc15:
          ;祭 ଠ樨,  ⥪饬 ० ஫.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⥬ ணࠬ 樨 ࠡ /뢮
          ;ன⢠ ࠡ  (᪮ ).
          ;ணࠬ 㯠  , ᠭ 
          ;楤 IOS,  ⮩,  室  
          ;奬 ஫ ,  ਭ᪮ .
          CLI     ; 뢠.
          PUSHF   ;Coxpa a   IRET.
          MOV     AH, 10h    ;C砫 ३  ࠩ 10h
          MOV     BX, 00h    ; 10h   ।
          MOV     CX, VideoVectLen
          LEA     DX, VideoVect   ;㧨   
          MOV     DX, 0010h       ;   㪠
          CLD     ; 
REP       STOSB   ;࡮  10h  
          ;楤 IOS 樠樨 ணࠬ 뢠 10
          PUSH    DS       ;Code begin the execute program
          PUSH    AX
          PUSH    CX
          MOV     AX,0040H
          MOV     DS,AX
          MOV     AL,10H
          MOV     AL,10H
          MOV     AL,10H
          OUT     20,AL
          OUT     225,AL
          IN      AL,20
          OUT     225,AL
          MOV     AH,AL
          OR      AL,AL
          JZ      VdSb1
          MOV     AL,10h
          OUT     160,AL
          MOV     AL,10h
          OUT     225,AL
          MOV     AL,10h
          OUT     245,AL
          IN      AL,160
          OUT     225,AL
          MOV     CL,AL
          OR      AL,AL
          JZ      VdSb2
          IN      AL,161
          OUT     225,AL
          OR      AL,CL
          OUT     161,AL
          OUT     225,AL
          MOV     AL,20
          OUT     160,AL
          JB      VdSb4
VdSb2:    IN      AL,21
          OR      AL,AH
          OUT     225,AL
          AND     AL,251
          OUT     21,AL
          IN      AL,10h
VdSb4:    MOV     AL,20
          OUT     225,AL
          MOV     AX,20
          OUT     20,AL
          JB      VdSb3
VdSb1:    MOV     AX, 0000h
VdSb3:    MOV     AH, 0000h
          IN      AL, 10h
          POP     CX
          POP     AX
          POP     DX
          ;䨪஢ ⠭  
          ;⥪饬 ०,   
          ; 쭥襣 ⥭  ᯮ짮
          XCHG    AL, DH   ;易 ॣ AL 
                           ;ॣ஬  DH.
          SAHF             ;㧪 AH  訩 .
          INC     DH       ; ⢮
                           ; 㪠 ॣ.
          XOR     DH, BH   ; ஥ 
                           ;ࠡ  묨.
          PUSH    DS       ;ந ᥣ
          POP     ES       ;ॣ   .
          MOV     CX, 128  ;騩 ࠧ  
                           ;  ॢ 128 .
          MOV     BX, 1    ;ਯ ⢮
          CLD     ; 
REP       STOSB   ;,   ⥪饬 ०
                  ;饭   , 
                  ;쭥襣 ᯮ짮.
          STC     ; 믮  樨.
          ;室  砭 ⠭筮 楤
          JMP        ScNxt
VideoVect            dw    0   ;塠⭠ 祩  ਯ.
VideoVectLen         EQU   $ - VideoVect


GraphSc16:
          ;⠭ ॣ 梥 䮭  ᨬ  ᯫ.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AX, DX        ; (,  ।)
          OUT       DX, AL        ;⠭ 梥

          ; 梥 뢮 ᨬ.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          IN        AL, DX        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;䨪஢ 祭 ࠬ
REP       MOVSB     ;  ࠬ஢  
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc17:
          ;㧪  짮⥫.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;㧨 ࠬ 㦭  짮⥫ 8 x 14
          MOV       BH, 14     ; 14 祪
          MOV       BL, 0      ; 0 
          MOV       CX, 256    ;᫮ ᨬ  ⠡
          MOV       DX, 00h    ; ࢮ ᨬ
REP       STOSB     ;䨪஢  ࠬ  ,
                    ; ⮡ࠦ ᨬ  ᯫ

          ;⠭ ࠬ஢ ⥪⢮  8 x 14.
          MOV     AH, 11h   ;㭪 11h -  8 x 14
          MOV     AL, 1     ;㧪    ᨬ            
          MOV     CH, 0     ; ᨬ ⠡        
          MOV     CL, 255   ;᫥ ᨬ ⠡        
          MOV     DH, 1     ; ਭ ⮡ࠦ
          MOV     DL, 14    ;  ⮡ࠦ       
          PUSH    DS        ; ॣ
          POP     ES        ; ॣ
          ;;;;MOV     CX, FontLoadLen ; 㦠 .
          ;;;;LEA     DX, FontLoad    ;㧪  㦠
                                      ;    256-
                                      ;ᨬ.
          MOV     DL, 14    ;⢥न    14 
          DIV     DX        ;  14
          AAD               ;⠭  ⨣⮬.
          SHR     DL, 1     ; ᤢ ࠢ  䨪樨
                            ; ᨬ  ᯫ.
          AAA               ;ਭ ᤢ  ॣ.
         
          ;஢ઠ ⠭ ࠬ஢ 㦭 
          ;짮⥫ 8 x 14
          MOV       BH, 14     ; 14 祪
          MOV       BX, 1      ;1  (8 )  ਭ
          MOV       BL, 0      ; 0 
          MOV       CX, 256    ;᫮ ᨬ  ⠡
          MOV       DX, 00h    ; ࢮ ᨬ
          CLD       ;ࠢ 
REP       CMPSB     ;ࠢ

          ;䨪㥬 ⮡ࠦ ⮣  ࠭
          ; (ᯫ)   㦥
          ;  ,  ᮮ⢥饩 楤
          ;믮  IOS,   뢠 BIOS  DOS
          ADC       DL, 1    ;ਡ ⥭樠쭮, 騩
                             ; .
          SAR       DL, 1    ; ࠢ  ந쭮
                             ;⢮ ࠧ冷.
          AAA       ;⢥न .
          CLD       ;䨪஢ ⮢ 뢮.
          MOV       SI, 0    ; ASCII   ।!
          MOV       DL, 1    ;⢮  
          MOV       CX, 1    ;   
REP       MOVSB     ;䨪஢ ।   樨
          ;室  砭 ⠭筮 楤
          JMP        ScNxt


GraphSc18:
          ;㭪 12h - 樠 ࠡ  梥⮢ ன
          ;256 ࠧ 梥⮢.    ࠡ  DOS 
          ;BIOS ন, 筮 ⮫쪮,  ᪮ ०
          ; ࠧ襭 320 x 200 祪.  ࠡ  , ।-
          ;⥫쭮 樠  ० 㭪樥 12h
          ;INT 10h. ,  ⮬ ,    ஢,
          ;, ⨯ VEGA.
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;樠஢   ᪮  
          ;⠭ ० 䨪樨 梥⮢ ॣ
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 2      ; 䨪樨 梥⮢ ॣ
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h   ;   0  ASCII
          MOV       CX, 2 * 16  ;騥 ᫮ ⢮ ⮢

          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥

          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;⠭ 梥.
          LEA       DX, RezerfSub2  ;㧨   
          MOV       CX, 32          ;    ᥫ
                                    ;ࠦ  梥.
REP       STOSB     ;䨪஢
          ;楤 ⠭ 梥⮢   
          ;梥⮢ ⥭
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AX, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 

          ;⠭   16- ⥭   ࠭
          ;梥.   ⥭, ⥬ ।饣.  
          ;ਭ楯 祭  ⥭ ᢮  
          ;  室 梥 譥  .
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AX, 2      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          ADC       AH, 00h    ;।⥫쭮, 䨪஢
                               ;ॣ   饭
          AAA       ;⠢ ॣ  ॡ㥬 ﭨ

          ; ()
          MOV       BX, 00h    ;ਯ ୮ 梥
          MOV       AX, OFFSET Color0 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette0
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᨭ)
          MOV       BX, 01h    ;ਯ ᨭ 梥
          MOV       AX, OFFSET Color1 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette1
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 02h    ;ਯ 񭮣 梥
          MOV       AX, OFFSET Color2 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette2
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 03h    ;ਯ १ 梥
          MOV       AX, OFFSET Color3 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette3
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 04h    ;ਯ ᭮ 梥
          MOV       AX, OFFSET Color4 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette4
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (筥)
          MOV       BX, 05h    ;ਯ 筥 梥
          MOV       AX, OFFSET Color5 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette5
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (䨮⮢)
          MOV       BX, 06h    ;ਯ 䨮⮢ 梥
          MOV       AX, OFFSET Color6 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette6
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 07h    ;ਯ ண 梥
          MOV       AX, OFFSET Color7 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette7
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (񬭮-)
          MOV       BX, 08h    ;ਯ 񬭮-ண 梥
          MOV       AX, OFFSET Color8 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette8
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (મ-㡮)
          MOV       BX, 09h    ;ਯ મ-㡮 梥
          MOV       AX, OFFSET Color9 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette9
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᢥ⫮-)
          MOV       BX, 10h    ;ਯ ᢥ⫮-񭮣 梥
          MOV       AX, OFFSET Color10 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette10
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᢥ⫮-㡮)
          MOV       BX, 11h    ;ਯ ᢥ⫮-㡮 梥
          MOV       AX, OFFSET Color11 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette11
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (஧)
          MOV       BX, 12h    ;ਯ ஧ 梥
          MOV       AX, OFFSET Color12 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette12
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 13h    ;ਯ  梥
          MOV       AX, OFFSET Color13 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette13
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 14h    ;ਯ ⮣ 梥
          MOV       AX, OFFSET Color14 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette14
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 15h    ;ਯ  梥
          MOV       AX, OFFSET Color15 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette15
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; 室  ணࠬ
          JMP        ColorRet
          ;१ࢨ஢   ⥬ ணࠬ
          ;믮饩 㭪樨,  ।ᬮ७ 
          ;ࠩ஬ ROM BIOS
RezerfSub2:          db     32  Dup   (?)
RezerfSub2Len        EQU    $ - RezerfSub2
          ;室  砭 ⠭筮 楤
ColorRet: JMP        ScNxt



GraphSc19:
          ; ப  ० ⥫⠩.
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;஢ 
REP       MOVSW     ;䨪஢ ப  ࠭
          ;室  砭 ⠭筮 楤
          JMP        ScNxt

GraphSc20:
          ;१ࢨ஢ 㭪.
          ;  ⥬ ணࠬ 믮饩 㭪樨,
          ; ।ᬮ७  ࠩ஬ ROM BIOS
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;।⥫쭮 㧨   䨪樨,
          ;  96-   ॣ DX.
          LEA       DX, RezfSub3
          ;믮  ⮥ ᮤন,   ⥫
          ;ᯮ塞 ணࠬ.
RezfSub3:           db   96  Dup   (?)
          ;室  砭 ⠭筮 楤
          JMP       ScNxt

GraphSc21:
          ;  ᪨ ஬ ,
          ; ।⢠  ஭ ROM BIOS
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ; , ।⢥  ன ஫
          ;᪮ .
          MOV       DX, 0010h   ; ஫
          MOV       AL, 11h     ;1: 㤥 3
          OUT       DX, AL      ; ⠪  ன⢮.
          INC       AX          ;஬ AX  , ⥯
                                ; ﭭ .
          MOV       AL, 10h     ;  ⮦ ⢮.
          OUT       DX, AL      ;,  ⮢  ࠡ 
                                ;ன⢮ .
          ;뢮 ஫ ᪮ .
          MOV         DX, 0010h     ; 뢮 
          MOV         AL, 0         ;  0
          OUT         DX, AL        ;⠭ ० ⥭
          MOV         BX, 0000h     ;   0  ASCII
          MOV         CX, 0001h     ;᫮ ⮢ 
          INC         DX            ;DX = 0008h -  .
          IN          AL, 10h       ;뫪 ஡ ᨣ
          IN          AL, 10h       ;  ன⢠ 
          IN          AL, 10h       
          CMP         CX, 1         ;஢ 3 ⢮ 
          OUT         17h, AL       ;祭 ⢥⭮ ᨣ 
          OUT         17h, AL       ; ன⢠ ਭ.
          OUT         17h, AL       
          CMP         CX, 1         ;஢ 1 ⠭  
          
          ;⢮ ᭮ ॣ
          MOV     AL, 10h     ;  ஫ 뢠
          MOV     AL, 10h
          ADD     AL, 0       ;८ࠧ㥬  ᨬ 
          MOV     AH, 4Eh     ;ਡ  來 樨
          ; ॣ ᮮ⢥   256-
          ; ⮢  ⥬ ASCII
          MOV     AX, 00
          ; ⢠ ⮢, 묨  
          ; 梥,    楫 ⮡ࠦ
          ; ᯫ.
          MOV     CX, 1
          ;㧨 ࠬ ᫮ ᨬ  뢮
          MOV     DX, 00h
          ;뢥 ⮢ 祩  ᯫ
          MOV     ES: 1690, AX
          ;஢   ன 
          OUT     10h, AL     
          ;᫠   ⥪ ⮢  
          IN      AL, 10h     ;1   쬨筠  
          IN      AL, 10h     ;2   設, 뢠饩 
          IN      AL, 10h     ;3    ࠫ ஬ ().
          IN      AL, 10h     ;4
          IN      AL, 10h     ;5
          IN      AL, 10h     ;6
          IN      AL, 10h     ;7
          IN      AL, 10h     ;8
          ; 믮 
          MOV     DX, 10h   ; ஫  
          MOV     AL, 11h   ;1: 㤥 
          OUT     DX, AL        
          INC     DX        ;ன  ஫
          MOV     AL, 8     ;2:  
          OUT     DX, AL
          MOV     AL, 4     ;:  祭  ஢ 2
          OUT     DX, AL
          MOV     AL, 1     ;4: 80x86, ॡ EOI
          OUT     DX, AL
          ;᫠ 뢥   
          ; ࠫ  ()
          OUT     10h, AL       ;1   쬨筠  
          OUT     10h, AL       ;2   設, 뢠饩 
          OUT     10h, AL       ;3    ࠫ ᮬ ().
          OUT     10h, AL       ;4
          OUT     10h, AL       ;5
          OUT     10h, AL       ;6
          OUT     10h, AL       ;7
          OUT     10h, AL       ;8
          POP     ES            ;᢮ ࠭ ॣ
          POP     AX          
          ;室  砭 ⠭筮 楤
          JMP        ScNxt



ScNxt:
          ;㭪樨 ࠩ 믮塞   砥,
          ; ᨬ,  ࠬ஢ 맮 ⥬
          ;ணࠬ INT 10h
          MOV       BP, AX
          MOV       AX, ES
          ADD       AX, 0010h
          PUSH      CS
          POP       DS
          MOV       AX, 0004h
          ADD       AX, 5D2Ch
          MOV       ES, AX
          MOV       CX, 0199h
          MOV       DI, CX
          DEC       DI
          MOV       SI, DI
          STD       ; 
REP       STOSW     ; 

          STI       ; 뢠
          RET       ; ࠡ稪
Int10hLen EQU       $ - Int10h
; ⥫ ணࠬ ᠬ ࠡ稪 INT 10h

FONTS     ENDP
; ᭮ ணࠬ


;C⥬ ணࠬ ⠭ ࠧ
;⥪⮢  ᪨ ०, 
;ᮮ⢥饬 䫠  ॣ AL.
;祭  ०, ॠ㥬
;ࠩ஬ INT 10h :
;    00h - ⮢ ० 40 x 25 ᨬ, 2 梥 
;*   01h - ⮢ ० 80 x 50 ᨬ, 16 梥⮢                 
;    02h - ⮢ ० 80 x 25 ᨬ, 2 梥                 
;**  03h - ⮢ ० 80 x 25 ᨬ, 16 梥⮢                 
;    04h - ᪨ ० 320 x 200 祪, 4 梥             
;    05h - ᪨ ० 320 x 200 祪, 2 梥             
;    06h - ᪨ ० 640 x 200 祪, 2 梥             
;    07h - ⮢ ० 80 x 25 ᨬ, 2 梥                 
;    08h -  ᯮ             
;*   09h - ᪨ ० 320 x 200 祪, 16 梥⮢             
;    0Ah - ᪨ ० 640 x 200 祪, 4 梥             
;    0Bh -  ᯮ                 
;    0Ch -  ᯮ                  
;    0Dh - ᪨ ० 320 x 200 祪, 16 梥⮢             
;    0Eh - ᪨ ० 640 x 200 祪, 16 梥⮢             
;    0Fh - ᪨ ० 640 x 350 祪, 2 梥             
;    10h - ᪨ ० 640 x 350 祪, 16 梥⮢             
;    11h - ᪨ ० 640 x 480 祪, 2 梥             
;*   12h - ᪨ ० 640 x 480 祪, 16 梥⮢             
;*   13h - ᪨ ० 320 x 200 祪, 256 梥⮢             
;
;ਬ砭:
; * - ᭮ ० ࠩ  .
; ** -  ,  ᭮ ०.
GRAPH     PROC      
          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    

          ;।  㭪 ⥬ ணࠬ
          ;뫠 ॡ 짮⥫,   맮
          ;㭪樨 0h 뢠 INT 10h
          CMP      AL, 00h
          JE       Scr0
          CMP      AL, 01h
          JE       Scr1
          CMP      AL, 02h
          JE       Scr2
          CMP      AL, 03h
          JE       Scr3
          CMP      AL, 04h
          JE       Scr4
          CMP      AL, 05h
          JE       Scr5
          CMP      AL, 06h
          JE       Scr6
          CMP      AL, 07h
          JE       Scr7
          CMP      AL, 08h
          JE       Scr8
          CMP      AL, 09h
          JE       Scr9
          CMP      AL, 0Ah
          JE       Scr10
          CMP      AL, 0Bh
          JE       Scr11
          CMP      AL, 0Ch
          JE       Scr12
          CMP      AL, 0Dh
          JE       Scr13
          CMP      AL, 0Eh
          JE       Scr14
          CMP      AL, 0Fh
          JE       Scr15
          CMP      AL, 10h
          JE       Scr16
          CMP      AL, 11h
          JE       Scr17
          CMP      AL, 12h
          JE       Scr18
          CMP      AL, 13h
          JE       Scr19

;⠭ ࠧ ⥪⮢ 
;᪨ ०,  ᮮ⢥饬
;䫠  ॣ AL.
          ;⮢ ० 40 x 25 ᨬ, 2 梥
Scr0:     ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;01h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 01h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 80 x 50,
          ;  ⮡ࠦ 40 x 25 ᥫ.
          ;㭪 - 01h    ᭮ ०.
          MOV       AH, 01h    ;㭪 01h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 0110h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          MOV       CX, 8000h  ;   (80 * 50 * 2)
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          SBB       CL, 40h    ;  㪠 祭  ਧ.
          MOV       DH, 50h    ;  㣮
          SUB       DH, 25h    ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (8 * 8) + (40 * 25)  ; ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, 2000h  ; ࠧ   (40 * 25 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.          

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 0110h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 0110h     ;騬 ࠬ:
                                  ;01h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            ; ⥫ 
          MOV       AX, (8000) / 4    ; 㦭 ࠧ.
          CMC       ;⮢    
          CLD       ;  ன    .
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  .

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 0110h   ;01h - 㭪; 10h -  㯠.
          MOV       AL, 00h     ;00h -  㭪樨 ⠭ ०.
          MOV       BX, (8 * 8) + (40 * 25)  ;ࠬ ०.
          MOV       CX, 2000h   ;   (40 * 25 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;⮢ ० 80 x 50 ᨬ, 16 梥⮢
Scr1:     ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;01h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 01h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 80 x 50
          ;㭪 - 01h    ᭮ ०.
          MOV       AH, 01h    ;㭪 01h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 0110h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 50h    ;  㣮
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (8 * 8) + (80 * 50)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, 8000h  ;   (80 * 50 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 0110h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 0110h     ;騬 ࠬ:
                                  ;01h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, 8000h     ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 0110h   ;01h - 㭪; 10h -  㯠.
          MOV       AL, 01h     ;01h -  㭪樨 ⠭ ०.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       CX, 8000h   ;   (80 * 50 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;⮢ ० 80 x 25 ᨬ, 2 梥
          ;ந ᥣ ॣ ES  
Scr2:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;01h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 01h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 80 x 50,
          ;  ⮡ࠦ 80 x 25 ᥫ.
          ;㭪 - 01h    ᭮ ०.
          MOV       AH, 01h    ;㭪 01h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 0110h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          MOV       CX, 8000h  ;   (80 * 50 * 2)
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 50h    ;  㣮
          ADD       DH, 25h    ;ਡ  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (8 * 8) + (80 * 25)  ; ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          INC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, 4000h  ; ࠧ   (80 * 25 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.          

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 0110h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 0110h     ;騬 ࠬ:
                                  ;01h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            ; ⥫ 
          MOV       AX, (8000) / 2    ; 㦭 ࠧ.
          CMC       ;⮢    
          CLD       ;  ன    .
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  .

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 0110h   ;01h - 㭪; 10h -  㯠.
          MOV       AL, 02h     ;02h -  㭪樨 ⠭ ०.
          MOV       BX, (8 * 8) + (80 * 25)  ;ࠬ ०.
          MOV       CX, 4000h   ;   (80 * 25 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          INC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;⮢ ० 80 x 25 ᨬ, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr3:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;01h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 01h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 80 x 50,
          ;  ⮡ࠦ 80 x 25 ᥫ.
          ;㭪 - 01h    ᭮ ०.
          MOV       AH, 01h    ;㭪 01h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 0110h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          MOV       CX, 8000h  ;   (80 * 50 * 2)
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 50h    ;  㣮
          ADD       DH, 25h    ;ਡ  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (8 * 8) + (80 * 25)  ; ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          INC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, 4000h  ; ࠧ   (80 * 25 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.          

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 0110h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 0110h     ;騬 ࠬ:
                                  ;01h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            ; ⥫ 
          MOV       AX, (8000) / 2    ; 㦭 ࠧ.
          CMC       ;⮢    
          CLD       ;  ன    .
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  .

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 0110h   ;01h - 㭪; 10h -  㯠.
          MOV       AL, 03h     ;03h -  㭪樨 ⠭ ०.
          MOV       BX, (8 * 8) + (80 * 25)  ;ࠬ ०.
          MOV       CX, 4000h   ;   (80 * 25 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          INC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 320 x 200 祪, 4 梥
          ;ந ᥣ ॣ ES  
Scr4:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;13h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 13h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 320 x 200
          ;㭪 - 13h    ᭮ ०.
          MOV       AH, 13h    ;㭪 13h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1310h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 40h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          MOV       DL, 40h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (2 * 2) + (320 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc1  ; 
                                         ; (320 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1310h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1310h     ;騬 ࠬ:
                                  ;13h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc1  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1310h   ;13h - 㭪; 10h -  㯠.
          MOV       AL, 04h     ;04h -  㭪樨 ⠭ ०.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc1   ; 
                                          ; (320 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 320 x 200 祪, 2 梥
          ;ந ᥣ ॣ ES  
Scr5:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;13h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 13h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 320 x 200
          ;㭪 - 13h    ᭮ ०.
          MOV       AH, 13h    ;㭪 13h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1310h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 40h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          MOV       DL, 40h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (2 * 2) + (320 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc1  ; 
                                         ; (320 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1310h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1310h     ;騬 ࠬ:
                                  ;13h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc1  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1310h   ;13h - 㭪; 10h -  㯠.
          MOV       AL, 05h     ;05h -  㭪樨 ⠭ ०.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc1   ; 
                                          ; (320 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 200 祪, 2 梥
          ;ந ᥣ ॣ ES  
Scr6:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;  ⮡ࠦ 640 x 200 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          SUB       DH, 12h    ;  㪠 祭  .
          DAA       ;४ ᤥ ।
          SUB       DX, 0200h  ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc2  ; 
                                         ; (640 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc2  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 06h     ;06h -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc2   ; 
                                          ; (640 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;⮢ ० 80 x 25 ᨬ, 2 梥
          ;ந ᥣ ॣ ES  
Scr7:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;01h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 01h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 80 x 50,
          ;  ⮡ࠦ 80 x 25 ᥫ.
          ;㭪 - 01h    ᭮ ०.
          MOV       AH, 01h    ;㭪 01h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 0110h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (8 * 8) + (80 * 50)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          MOV       CX, 8000h  ;   (80 * 50 * 2)
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 50h    ;  㣮
          ADD       DH, 25h    ;ਡ  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (8 * 8) + (80 * 25)  ; ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          INC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, 4000h  ; ࠧ   (80 * 25 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.          

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 0110h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 0110h     ;騬 ࠬ:
                                  ;01h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            ; ⥫ 
          MOV       AX, (8000) / 2    ; 㦭 ࠧ.
          CMC       ;⮢    
          CLD       ;  ன    .
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  .

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 0110h   ;01h - 㭪; 10h -  㯠.
          MOV       AL, 07h     ;07h -  㭪樨 ⠭ ०.
          MOV       BX, (8 * 8) + (80 * 25)  ;ࠬ ०.
          MOV       CX, 4000h   ;   (80 * 25 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          INC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;१ࢨ஢ 㭪
          ;ந ᥣ ॣ ES  .
Scr8:     MOV       AX, 0B800h
          MOV       DS, AX
          ;१ࢨ஢   ⥬ ணࠬ
          ;믮饩 㭪樨,  ।ᬮ७ 
          ;ࠩ஬ ROM BIOS
          db   96  Dup   (?)
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 320 x 200 祪, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr9:     MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;13h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 13h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 320 x 200
          ;㭪 - 13h    ᭮ ०.
          MOV       AH, 13h    ;㭪 13h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1310h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 40h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          MOV       DL, 40h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (2 * 2) + (320 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc1  ; 
                                         ; (320 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1310h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1310h     ;騬 ࠬ:
                                  ;13h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc1  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1310h   ;13h - 㭪; 10h -  㯠.
          MOV       AL, 09h     ;09h -  㭪樨 ⠭ ०.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc1   ; 
                                          ; (320 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 200 祪, 4 梥
          ;ந ᥣ ॣ ES  
Scr10:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;  ⮡ࠦ 640 x 200 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          SUB       DH, 12h    ;  㪠 祭  .
          DAA       ;४ ᤥ ।
          SUB       DX, 0200h  ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc2  ; 
                                         ; (640 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc2  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 0Ah     ;0Ah -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc2   ; 
                                          ; (640 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;१ࢨ஢ 㭪
          ;ந ᥣ ॣ ES  .
Scr11:    MOV       AX, 0B800h
          MOV       DS, AX
          ;१ࢨ஢   ⥬ ணࠬ
          ;믮饩 㭪樨,  ।ᬮ७ 
          ;ࠩ஬ ROM BIOS
          db   96  Dup   (?)
          ; 室  ணࠬ
          JMP      QuitSub

          ;१ࢨ஢ 㭪
          ;ந ᥣ ॣ ES  .
Scr12:    MOV       AX, 0B800h
          MOV       DS, AX
          ;१ࢨ஢   ⥬ ணࠬ
          ;믮饩 㭪樨,  ।ᬮ७ 
          ;ࠩ஬ ROM BIOS
          db   96  Dup   (?)
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 320 x 200 祪, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr13:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;13h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 13h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 320 x 200
          ;㭪 - 13h    ᭮ ०.
          MOV       AH, 13h    ;㭪 13h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1310h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 40h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          MOV       DL, 40h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (2 * 2) + (320 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc1  ; 
                                         ; (320 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1310h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1310h     ;騬 ࠬ:
                                  ;13h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc1  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1310h   ;13h - 㭪; 10h -  㯠.
          MOV       AL, 0Dh     ;0Dh -  㭪樨 ⠭ ०.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc1   ; 
                                          ; (320 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 200 祪, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr14:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;  ⮡ࠦ 640 x 200 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          SUB       DH, 12h    ;  㪠 祭  .
          DAA       ;४ ᤥ ।
          SUB       DX, 0200h  ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc2  ; 
                                         ; (640 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc2  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 0Eh     ;0Eh -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc2   ; 
                                          ; (640 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 350 祪, 2 梥
          ;ந ᥣ ॣ ES  
Scr15:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;  ⮡ࠦ 640 x 200 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          SUB       DH, 03h    ;  㪠 祭  .
          DAA       ;४ ᤥ ।
          SUB       DX, 0050h  ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 350)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc3  ; 
                                         ; (640 * 350 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc3  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 0Fh     ;0Fh -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 350)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc3   ; 
                                          ; (640 * 350 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 350 祪, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr16:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;  ⮡ࠦ 640 x 200 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          SUB       DH, 03h    ;  㪠 祭  .
          DAA       ;४ ᤥ ।
          SUB       DX, 0050h  ;  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 350)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc3  ; 
                                         ; (640 * 350 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc3  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 10h     ;10h -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 350)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc3   ; 
                                          ; (640 * 350 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 480 祪, 2 梥
          ;ந ᥣ ॣ ES  
Scr17:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;ᦨ  ⮡ࠦ 640 x 480 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          ADD       DH, 04h    ;ਡ  㪠 祭  .
          DAA       ;४ ᤥ ।
          ADD       DH, 0080h  ;ਡ  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 480)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          INC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc4  ; 
                                         ; (640 * 480 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc4  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 11h     ;11h -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 480)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc4   ; 
                                          ; (640 * 480 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 640 x 480 祪, 16 梥⮢
          ;ந ᥣ ॣ ES  
Scr18:    MOV       AX, 0B800h
          MOV       DS, AX
          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;12h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 12h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥, ⮡ࠦ ० 640 x 400
          ;ᦨ  ⮡ࠦ 640 x 480 ᥫ.
          ;㭪 - 12h    ᭮ ०.
          MOV       AH, 12h    ;㭪 12h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1210h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (1 * 1) + (640 * 400)  ;ࠬ ०.
          MOV       ES: [BX], AX         ;⠭ 裡 ॣ஢.
          MOV       CX, OFFSET SzGrfSc5  ; 
                                         ; (640 * 400 * 2)
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 80h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          ADD       DH, 04h    ;ਡ  㪠 祭  .
          DAA       ;४ ᤥ ।
          ADD       DH, 0080h  ;ਡ  㪠 祭  .
          MOV       DL, 80h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (1 * 1) + (640 * 480)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          INC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc4  ; 
                                         ; (640 * 480 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1210h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1210h     ;騬 ࠬ:
                                  ;12h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc4  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1210h   ;12h - 㭪; 10h -  㯠.
          MOV       AL, 12h     ;12h -  㭪樨 ⠭ ०.
          MOV       BX, (1 * 1) + (640 * 480)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc4   ; 
                                          ; (640 * 480 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

          ;᪨ ० 320 x 200 祪, 256 梥⮢
          ;ந ᥣ ॣ ES  .
Scr19:    MOV       AX, 0B800h
          MOV       DS, AX
          ;樠஢   ᪮  
          ;⠭ ० 䨪樨 梥⮢ ॣ
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 2      ; 䨪樨 梥⮢ ॣ
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h   ;   0  ASCII
          MOV       CX, 2 * 16  ;騥 ᫮ ⢮ ⮢

          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥

          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;⠭ 梥.
          LEA       DX, RezerfSub2  ;㧨   
          MOV       CX, 32          ;    ᥫ
                                    ;ࠦ  梥.
REP       STOSB     ;䨪஢
          ;楤 ⠭ 梥⮢   
          ;梥⮢ ⥭
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AX, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 

          ;⠭   16- ⥭   ࠭
          ;梥.   ⥭, ⥬ ।饣.  
          ;ਭ楯 祭  ⥭ ᢮  
          ;  室 梥 譥  .
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AX, 2      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          ADC       AH, 00h    ;।⥫쭮, 䨪஢
                               ;ॣ   饭
          AAA       ;⠢ ॣ  ॡ㥬 ﭨ

          ; ()
          MOV       BX, 00h    ;ਯ ୮ 梥
          MOV       AX, OFFSET Color0 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette0
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᨭ)
          MOV       BX, 01h    ;ਯ ᨭ 梥
          MOV       AX, OFFSET Color1 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette1
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 02h    ;ਯ 񭮣 梥
          MOV       AX, OFFSET Color2 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette2
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 03h    ;ਯ १ 梥
          MOV       AX, OFFSET Color3 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette3
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 04h    ;ਯ ᭮ 梥
          MOV       AX, OFFSET Color4 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette4
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (筥)
          MOV       BX, 05h    ;ਯ 筥 梥
          MOV       AX, OFFSET Color5 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette5
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (䨮⮢)
          MOV       BX, 06h    ;ਯ 䨮⮢ 梥
          MOV       AX, OFFSET Color6 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette6
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 07h    ;ਯ ண 梥
          MOV       AX, OFFSET Color7 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette7
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (񬭮-)
          MOV       BX, 08h    ;ਯ 񬭮-ண 梥
          MOV       AX, OFFSET Color8 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette8
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (મ-㡮)
          MOV       BX, 09h    ;ਯ મ-㡮 梥
          MOV       AX, OFFSET Color9 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette9
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᢥ⫮-)
          MOV       BX, 10h    ;ਯ ᢥ⫮-񭮣 梥
          MOV       AX, OFFSET Color10 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette10
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (ᢥ⫮-㡮)
          MOV       BX, 11h    ;ਯ ᢥ⫮-㡮 梥
          MOV       AX, OFFSET Color11 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette11
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; (஧)
          MOV       BX, 12h    ;ਯ ஧ 梥
          MOV       AX, OFFSET Color12 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette12
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 13h    ;ਯ  梥
          MOV       AX, OFFSET Color13 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette13
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 14h    ;ਯ ⮣ 梥
          MOV       AX, OFFSET Color14 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette14
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ; ()
          MOV       BX, 15h    ;ਯ  梥
          MOV       AX, OFFSET Color15 ;㧪  ॡ㥬 梥
          MOV       CX, 4      ;᫮ ⮢, 묨  梥
          ADD       AX, 00h    ;ਡ  
          INC       AX         ;饭
          ADC       AX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭ 梥
          NOT       AX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;㧪  16- ⥭   ⮣  梥
          ; ᮧ .
          MOV       BX, OFFSET Palette15
          MOV       CX, 16     ; 16-  ⥭
          ADD       BX, 00h    ;ਡ  
          INC       BX         ;饭
          ADC       BX, 00h    ;࠭ ⥭  騢
          OUT       DX, AX     ;⠭   ॡ㥬 梥
          NOT       BX         ; ⠭ 梥
          CBW       ;⢮   ७ 祭
REP       STOSB     ;䨪஢  ⨢ 

          ;। ⥬,   㧪 㦭
          ;⥬ ணࠬ  ஫ 
          ;᪮  ந ࡮
          ;ᮮ⢥饣  뢠,  
          ;㤥 ࠡ     ᮮ⢥騩
          ; ᥣ⭮  ⨢ .
          ;13h -   訢 , 
          ; ᭮ ०.
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BX, 13h   ; 뢠 ᨬ  .
          PUSH    BX        ;䨪஢ 祭 䫠 BX 
                            ;࠭   쭥 ⢨.
          CLD               ; .
REP       STOSB             ;.
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 


          ;㧨 㦭 ⥬ ணࠬ 
          ;奬 ஫ .
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          IN        AL, DX     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          IN        AL, DX     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          IN        AL, DX     ;⠭ 梥
          ;।⢥ 㧪 ⥬ ணࠬ
          ; ⥫ ஫ ᪮ 
          ;楫, ⠪  ⠭ 㦭 䫠, 㤥
          ;믮 ᮮ⢥ ணࠬ.
          MOV       CX, OFFSET SizeBuff  ;. ࠧ 㦠
                                         ;ணࠬ - 64 .
          OUT       10h, AL       ;1   쬨筠  
          OUT       10h, AL       ;2   設, 뢠饩  
          OUT       10h, AL       ;3    ᯫ (஬)
          OUT       10h, AL       ;4
          OUT       10h, AL       ;5
          OUT       10h, AL       ;6
          OUT       10h, AL       ;7
          OUT       10h, AL       ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ
          POP       DS            ;᢮ ࠭ 
          POP       ES            ;ॣ

          ; ࠬ ⨪쭮 ᬥ饭
          ; ᯫ, ᫨ ॡ.  
          ; ⮣,  ⨬ ᬥ饭 樨஢
          ;⥫ ⥪⮢  ᪨ ०
          ; 묨 ࠬࠬ. 㦭 ०
          ;⨣   ᪠ ⮡ࠦ
          ;   ᭮ ०.
          ; 襬 砥,  ⮡ࠦ ० 320 x 200
          ;㭪 - 13h    ᭮ ०.
          MOV       AH, 13h    ;㭪 13h  ࠩ.
          MOV       ES, AX     ; 横  ஬.
          MOV       AX, 1310h  ;⢥ত ᭮ 㭪樨.
          PUSH      AX         ;䨪஢ 祭 䫠 AX.
          POP       CX         ;祭 䫠 CX   ।.
          MOV       AL, 00h    ; ந쭮 ᥫ.
          MOV       ES: 0, AX  ; 孥  㣫  ᯫ.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       ES: [BX], AX             ;⠭ 裡 ॣ஢.
          ;ࠬ ⮡ࠦ ⥪  ᪮ ०.
          MOV       CH, 01h    ; 孨 㣮
          MOV       CL, 40h    ;ࠢ 孨 㣮
          MOV       DH, 25h    ;  㣮
          MOV       DL, 40h    ;ࠢ  㣮
          AAA       ;, 㦥 ।  .
          MOV       BX, (2 * 2) + (320 * 200)  ;⠭ ࠬ ०.
          MOV       ES: [BX], AX  ;ୠ ⠭ 裡 ॣ஢.
          DEC       DX        ; 祭 ⠭  DX
          NEG       DX        ;᫮ 䨪  䫠 ॣ DX
          MOV       CX, OFFSET SzGrfSc1  ; 
                                         ; (320 * 200 * 2)
REPE      CMPSB     ;ࠢ 祭 ࠬ஢ ०.

          ;஢  ⮡ࠦ ᥫ  楫
          ;祭, ᫥饣 ⢥  ᪠񭭮
          ;⮡ࠦ ᥫ  ᯫ   ०.
          MOV       CL, ES: 9999h ;⥫   ணࠬ  .
          CMP       CL, 0  ; ⥫ ணࠬ    ⥭.
          XOR       CH, CH        ; CX = CL   .
          MOV       DI, 0000h     ;ES:DI -> 墮  PSP
          MOV       BX, 1310h     ;   ⥫ ⥬
          MOV       BX, SI        ;ணࠬ    ᮮ⢥-
          MOV       SI, 1310h     ;騬 ࠬ:
                                  ;13h -  ०
                                  ;10h -   
          XCHG      AL, AH        ; 䫠 ॣ஢.
          AAA       ;४ 䫠 ॣ.
          MOV       AX, SI            
          MOV       AX, OFFSET SzGrfSc1  ; ⠭⭮ .
          CMC       ;⮢    
          CLD       ;஢ 
REPE      SCASB     ;஢    १.
          AAD       ;  ।ਭ,   ⮪  ⠭
                    ; ࠬ஢.

          ;  ࠬ  ᨢ ᠬ 
          ; ⨢ ,  쭥襣 ᯮ짮
          ; ⥪饬 ०.
          PUSH      CX          ;   ⥭.
          POP       DX          ;,  ᮤন ந.
          MOV       AX, 1310h   ;13h - 㭪; 10h -  㯠.
          MOV       AL, 13h     ;13h -  㭪樨 ⠭ ०.
          MOV       BX, (2 * 2) + (320 * 200)  ;ࠬ ०.
          MOV       CX, OFFSET SzGrfSc1   ; 
                                          ; (320 * 200 * 2)
          MOV       ES: 0, AX   ; 孥  㣫  ᯫ.
          MOV       BX, DX      ;易 ࠬ   .
          DEC       DX          ; 祭 ⠭  DX
          NEG       DX          ;᫮ 䨪  䫠 ॣ DX
          CLD       ;஢ 
REP       STOSB     ;⢥, 䨪  .

          ;⠭ ⢥ ᨣ ࠡ⠭
          ;ࠦ   
          ;᪮ .
          PUSH      DS         ;ந ᥣ ॣ
          POP       ES         ;  .
          MOV       ES, AX
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          IN        AL, DX     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       DX, 3CEh   ; ॣ ஫
          MOV       AL, 0      ; ᪨ 梥
          OUT       DX, AL     ;⠭ 㥬 ॣ
          INC       DX         ;DX = 3C5h - ॣ 
          MOV       AL, 0      ; 
          OUT       DX, AL     ;⠭ 梥
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0


          ;ࠢ ⢥⭮ ᨣ  
          ;᪮ .
          ; 砫, ஢    
          OUT       10h, AL     
          MOV       CX, OFFSET SizeBuff ;. ࠧ 㦠
                                        ;ணࠬ - 64 .
          ;᫠   ⥪ ⮢ 
          IN        AL, 10h     ;1   쬨筠  
          IN        AL, 10h     ;2   設, 뢠饩  
          IN        AL, 10h     ;3    ᯫ (஬)
          IN        AL, 10h     ;4
          IN        AL, 10h     ;5
          IN        AL, 10h     ;6
          IN        AL, 10h     ;7
          IN        AL, 10h     ;8
          CLD       ;஢ 
REP       STOSB     ;䨪஢  
                    ;⠭ ࠬ

          ;뢮 ᥫ ⮡ࠦ  ᯫ,
          ;  ०.
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h  ;   0  ASCII
          MOV       CX, 0002h  ; .   ᠬ
                               ;⮡ࠦ,  㣮  梥.
          ;뢥  ᥫ  ᯫ.
          MOV       DI, 0000h    ;祭 ⮡ࠦ 
          MOV       SI, 0000h    ;ᯫ ந.
          MOV       BYTE PTR ES:[BX], 00Fh
          INC       BX       ; ᫥饬 
          CLD       ;⮢  뢮
REP       MOVSW     ;뢮 ᥫ  ᯫ,  ७
                    ;०.
          ; 室  ணࠬ
          JMP      QuitSub

QuitSub:
          RET      ;  ணࠬ

; 
IntVect4  db         16, 0    ;  맮 INT 10h
atd5      dd         0        ;祩  䨪樨 ந쭮 ࠬ.
PlusClr   db         155      ; ਡ塞   祭
                              ;⥫쭮 梥.
;ࠬ   16-  梥⮢,  ⮡ࠦ
;⮢  ⥪⮢  ᪮ ०.
; ॣ㫨஢ મ,  ᭮ 梥⠬: ୮, ,
;᭮, 񭮬  ᨭ,   0- 
Color0       db    0, 0, 0, 0          ;
Color1       db    0, 0, 255, 0        ;
Color2       db    0, 255, 0, 0        ;
Color3       db    0, 255, 255, 0      ;
Color4       db    255, 0, 0, 0        ;
Color5       db    255, 0, 255, 0      ;⮢
Color6       db    255, 255, 0, 155    ;筥
Color7       db    155, 155, 155, 0    ;⫮ - 
Color8       db    0, 155, 155, 0      ;񬭮 - 
Color9       db    255, 155, 255, 0    ;
Color10      db    0, 255, 0, 155      ;⫮ - 
Color11      db    0, 0, 255, 155      ;⫮ - 㡮
Color12      db    255, 0, 0, 155      ;
Color13      db    255, 0, 255, 155    ;
Color14      db    255, 255, 0, 0      ;
Color15      db    255, 255, 255, 0    ; 

;祭 梥⮢   ⮣- ⥯
; 樠樨 १⭮ ⠡ ࠡ
; 256- 梥⭮ ன.
Palette0     db   0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240
Palette1     db   1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241 
Palette2     db   2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162, 178, 194, 210, 226, 242 
Palette3     db   3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179, 195, 211, 227, 243 
Palette4     db   4, 20, 36, 52, 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244 
Palette5     db   5, 21, 37, 53, 69, 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245 
Palette6     db   6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246 
Palette7     db   7, 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247 
Palette8     db   8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216, 232, 248
Palette9     db   9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185, 201, 217, 233, 249 
Palette10    db   10, 26, 42, 58, 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250 
Palette11    db   11, 27, 43, 59, 75, 91, 107, 123, 139, 155, 171, 187, 203, 219, 235, 251 
Palette12    db   12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188, 204, 220, 236, 252 
Palette13    db   13, 29, 45, 61, 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253 
Palette14    db   14, 30, 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254 
Palette15    db   15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239, 255

SizeBuff     db   255, 255     ;. ࠧ 㦠 ணࠬ - 64 .
SzGrfSc1     db   2, 255, 255  ; ᪮ ० 320 x 200
SzGrfSc2     db   4, 255, 255  ; ᪮ ० 640 x 200
SzGrfSc3     db   7, 255, 255  ; ᪮ ० 640 x 350
SzGrfSc4     db   9,  96, 255  ; ᪮ ० 640 x 480
SzGrfSc5     db   8, 255, 255  ; ᪮ ० 640 x 400
GRAPH        ENDP
Intr10hLen   EQU   $ - Intr10h
; ணࠬ ࠡ稪 INT 10h


;⥬ ணࠬ INT 11h
Intr11h:
POWER      PROC      
           CLI       ; 뢠
           ;᢮  ॣ
           POP       AX
           POP       BX
           POP       CX
           POP       DX
           POP       SP
           POP       BP
           POP       SI
           POP       DI
           POP       DS
           POP       ES
           POP       SS
           POPF      ; 䫠, ।  樥

           ;ந ࡮  
           ;⮢  0000h   
           ; ᮮ⢥騩  ᥣ⭮
           ; ⨢ .
           MOV     ES, DX      ;஥   ES
           XOR     DI, DI      ;ES:DI -> 砫 뤥 
           MOV     CX, 2       ;2 - ᫮ ⮢  ᥣ
           MOV     AX, 0000h   ; 뢠 ᨬ  
           CLD                 ; 
REP        STOSB               ;
           ; ன  ᨣ,  ஫
           MOV     BYTE PTR ES:[DI], 0 


          ;ࠡ稪 뢠 ன⢠ -
          ;ᯥ祭  INT 11h
          ;(ࠡ⪠ ⭮ 뢠).
Power_00h:    
           MOV       DX, 0000h   ; ஫
           MOV       AL, 00h     ;1: 㤥 3
           OUT       DX, AL      ; ⠪  ன⢮.
           INC       AX          ;஬ AX  , ⥯
                                 ; ﭭ .
           MOV       AL, 00h     ;  ⮦ ⢮.
           OUT       DX, AL      ;,  ⮢  ࠡ 
                                 ;ன⢮ மᯥ祭.
           MOV       DX, 0001h   ; 뢮 
           MOV       AL, 0       ;  0
           OUT       DX, AL      ;⠭ ० ⥭
           MOV       DX, 0001h   ;   0  ASCII
           MOV       CX, 0001h   ; .
           LEA       BX, Elect1  ;㧪 ࢮ ⮢ 
           INC       BX          ;DX = 0000h -  .
           IN        AL, 00h     ;뫪 ஡ ᨣ
           IN        AL, 00h     ;  ன⢠ ன⢠
           IN        AL, 00h     ;⮮ᯥ祭.
           CMP       CX, 01h     ;஢ 1 ⢮ .
           OUT       00h, AL     ;祭 ⢥⭮ ᨣ 
           OUT       00h, AL     ; ன⢠ ⮮ᯥ祭
           OUT       00h, AL     ;ਭ᪮ .
           OUT       DX, AL      ;ࠢ 騩 ᨣ  ன⢮.
Power_00hLen      EQU         $ - Power_00h

          ;䨪஢ ணࠬ 㯠  
          ;ன மᯥ祭 १
          ; 
          MOV     ES, DX      ;஥   ES
          XOR     SI, SI      ;ES: SI -> 砫 뤥 
          CLD     ;  
          LEA     DX, Power_00h     ;砫 ⥫ १
          MOV     AL, 00h           ; 
          MOV     CX, Power_00hLen  ; ⥫ १
REP       STOSB   ; ணࠬ  
          

          ;㧨  񤭮,  ஭
          ;  ⥬ ᪠஢ .
          ;㧪 1- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 01h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl1:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 01h       ;⢮   .
          MOV       SI, OFFSET Elect1  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 01h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl1    ;  横  16 ࠧ.


          ;㧪 2- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 03h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl2:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 03h       ;⢮   
          MOV       SI, OFFSET Elect2  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 03h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl2    ;  横  16 ࠧ.

          ;㧪 3- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 07h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl3:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 07h       ;⢮   
          MOV       SI, OFFSET Elect3  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 07h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl3    ;  横  16 ࠧ.


          ;㧪 4- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 15h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl4:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 15h       ;⢮   
          MOV       SI, OFFSET Elect4  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 15h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl4    ;  横  16 ࠧ.


          ;㧪 5- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 31h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl5:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 31h       ;⢮   
          MOV       SI, OFFSET Elect5  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 31h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl5    ;  横  16 ࠧ.


          ;㧪 6- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 63h       ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl6:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 63h       ;⢮   
          MOV       SI, OFFSET Elect6  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 63h       ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl6    ;  横  16 ࠧ.

          ;㧪 7- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 0127h     ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl7:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 0127h     ;⢮   
          MOV       SI, OFFSET Elect6  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 0127      ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl7    ;  横  16 ࠧ.


          ;㧪 8- ⮢    ᪠஢.
          CMC       ;⮢    .
          XCHG      AL, AH        ; 䫠 ॣ஢.
          MOV       AH, 00h       ; ॣ   䫠.
          MOV       CL, ES: 01h   ;⥫    - ⮢ .
          CMP       BX, 0255h     ;,   .
          XOR       CH, CH        ; DX = DL   ⥭ ⮢.
          MOV       CX, 2560h     ;  2560 ࠧ
          CLD       ;C஢ .
PwrCkl8:  LODSB     ;⮢ 横 ᯮ .
          MOV       DI, 0255h     ;⢮   
          MOV       SI, OFFSET Elect6  ;㧪 㦭 ⮢ 
                                       ;  ꥪ⨢ .
          MOV       AL, 0255      ;Cooey騩 ⮩ ⮢ 
                                  ;oep aa,  cc⥬ ASCII
REPE      SCASB     ;஢    १.
          AAA       ;४ 䫠 ॣ.
          STOSB     ;࠭   ᪠஢ .
          LOOPZ     PwrCkl8    ;  横  16 ࠧ.

          ;᭮  ࠡ稪 뢠  INT 11h
          PUSH      DS
          MOV       AX, 0040h
          MOV       DS, AX
          XOR       AX, AX
          MOV       AX, 0000h
          POP       DS

          ;襭  ࠡ ࠡ稪  INT 11h
          PUSH      AX   ;⢥न   ॣ.
          PUSH      CX   ;⢮  ⮣ ॣ AX  CX.
          POP       BX   ;祭 䫠 ॣ஢ BX  SI 
          POP       SI   ; ।.
         
          PUSHF     ;Coxpa a   IRET
          STI       ; 뢠
          RET       ; ࠡ稪

; 
Elect1     db        00000001B
Elect2     db        00000011B
Elect3     db        00000111B
Elect4     db        00001111B
Elect5     db        00011111B
Elect6     db        00111111B
Elect7     db        11111111B
Elect8     db        11111111B
POWER     ENDP
Intr11hLen   EQU   $ - Intr11h
; ணࠬ ࠡ稪 INT 11h


;⥬ ணࠬ INT 12h
Intr12h:
MEMORY     PROC      
           ;B ⮩ ணࠬ  樠樨
           ;ࠡ  , 頥 ᯮ짮
           ;祭 ॣ஢ AX  CX
           CLI       ; 뢠
           PUSH      AX    ;Pe AX 
           POP       BX    ; BX  DX
           POP       DX    ;c
           PUSH      CX    ;Pe CX 

           ;室  樠
           CMP       BX,0CFh     
           JE        OurMux1
           JMP       OurMux

           ;஥  ,  ⭮騥
           ;   ணࠬ
NormMux:   db        0EAh
MuxOfs     dw        ?         
MuxSeg     dw        ?           
MemAtd     dw        0
Rexx_vect  equ       7Ch   
Rexx_call  equ       5
Rexx_func  equ       7    


           ;樠 ࠡ IOSa  
OurMux:    OR        SP,SP
           JNZ       OurMux1    
           DEC       SP    
                                      
OurMux1:   CMP       BX,1      
           JNE       NormMux 
           MOV       DX,0  
           PUSH      BX  
           POP       ES  
           MOV       BX,CS: MuxOfs   
           MOV       ES:[00BCh],BX
           MOV       BX,CS: MuxSeg   
           MOV       ES:[00BEh], BX 
           MOV       SI,0080h
           MOV       BX,SI
           CLD
REPNE      SCASB
                      

           CMP       BX,1
           JBE       ScanPrm    
           MOV       DX,BX       

ScanPrm:   MOV       DI,SI    
           MOV       BX,DX    
           MOV       SI,DI         
           CMP       BX,0
           JNE       MemDone
           JCXZ      MemDone 
           LODSB                
           DEC       DX          
           AND       BX,0DFh    

MemDone:
           XOR       BX, BX
           MOV       ES, BX
           MOV       BX, ES: [Rexx_Vect * 4]
           MOV       WORD PTR MemAtd, DX
           MOV       BX, ES: [Rexx_Vect * 4 + 2]
           MOV       WORD PTR MemAtd + 2,ax
           MOV       WORD PTR ES: [Rexx_Vect * 4], OFFSET MemAtd
           MOV       WORD PTR ES: [Rexx_Vect * 4 + 2], CS
           CLD
REP        SCASB

                  MOV       AX,2906
                  MOV       ES,AX
                  MOV       DS,AX
                  MOV       DX,0014
                  MOV       BYTE PTR CS:[0013],00
                  PUSH      SP
                  PUSH      BX
                  PUSH      AX
                  INC       CX
                  INC       BX
                  INC       BP
                  PUSH      SP
                  INC       BX
                  PUSH      SP
                  PUSH      BX
                  PUSH      AX
                  INC       CX
                  INC       BX
                  INC       BP
                  PUSH      BX
                  PUSH      AX
                  MOV       AH,07
                  POP       AX
                  POP       BX
                  PUSH      BX
                  PUSH      AX
                  MOV       AH,05
                  POP       AX
                  POP       BX
                  PUSH      AX
                  PUSH      DS
                  POP       DS
                  POP       AX
                  PUSH      ES
                  POP       ES
                  POP       AX
                  PUSH      DS
                  POP       DS
                  MOV       AX,5803
                  PUSH      DS
                  POP       DS
                  MOV       AX,5801
                  PUSH      AX
                  PUSH      ES
                  MOV       ES,AX
                  MOV       AX,ES
                  INC       AX
                  MOV       ES,AX
                  POP       ES
                  POP       AX
                  PUSH      AX
                  MOV       AX,WORD PTR [0008]
                  POP       AX
                  MOV       WORD PTR ES:[0001],0000
                  MOV       AX,2020
                  PUSH      SI
                  PUSH      DS
                  PUSH      ES
                  MOV       AH,52
                  POP       ES
                  POP       DS
                  POP       SI
                  MOV       AX,0000
                  MOV       AX,5803
                  MOV       BX,0001
                  PUSH      CS
                  POP       SS
                  PUSH      CS
                  POP       DS
                  INC       CX
                  PUSH      DS
                  INC       DX
                  PUSH      SS
                  INC       BYTE PTR [BX+SI]
                  INC       BX
                  INC       CX
                  INC       SP
                  INC       BX
                  PUSH      DS
                  PUSH      ES
                  PUSH      CS
                  POP       DS
                  MOV       DX,WORD PTR [219D]
                  MOV       AX,WORD PTR [2191]
                  MOV       BX,WORD PTR [218D]
                  MOV       CX,WORD PTR [2193]
                  PUSH      AX
                  PUSH      BX
                  PUSH      CX
                  MOV       BX,DS
                  MOV       ES,BX
                  MOV       BX,0004
                  MOV       AH,48
                  MOV       ES,AX
                  PUSH      DS
                  MOV       CX,0021
                  ADD       CX,10
REP               MOVSB
                  POP       DS
                  MOV       CX,ES
                  MOV       AH,49
                  POP       CX
                  POP       BX
                  POP       BP
                  MOV       AH,48
                  MOV       ES,AX
                  PUSH      DS
                  MOV       DS,BP
                  MOV       DI,SI
REP               MOVSB
                  POP       DS
                  MOV       ES,BP
                  MOV       AH,49
                  PUSH      ES
                  MOV       DI,0000
                  MOV       AH,48
                  MOV       AH,48
                  PUSH      AX
                  ADD       AX,BX
                  MOV       ES,AX
                  POP       AX
                  ADD       SI,CX
                  ADD       DI,CX
REP               MOVSB
                  MOV       ES,AX
                  MOV       AH,49
                  POP       ES
                  POP       DS
                  POP       SP
                  ADD       DH,CL
                  ADD       WORD PTR [BX+SI],AX
                  ADD       WORD PTR [BX+DI],AX
                  INC       CX
                  PUSH      DX
                  INC       SI
                  POP       CX
                  ADD       AX,6241
                  POP       ES
                  PUSH      DX
                  PUSH      ES
                  INC       SI
                  INC       CX
                  INC       SP
                  INC       BX
                  PUSH      AX
                  INC       BP
                  INC       BP
                  PUSH      AX
                  INC       CX
                  INC       CX
                  INC       SP
                  INC       CX
                  INC       SP
                  INC       CX
                  INC       SP
                  ADD       WORD PTR [BX+SI],AX
                  POP       WORD PTR [DI]
                  ADD       WORD PTR [BX+SI],AX
                  PUSH      DI
                  PUSH      DI
                  PUSH      DX
                  INC       DI
                  PUSH      CS
                  INC       BX
                  INC       DX
                  POP       DI
                  PUSH      SP
                  POP       DX
                  PUSH      DX
                  PUSH      CS
                  ADD       WORD PTR [BX+SI],SP
                  INC       CX
                  POP       WORD PTR [BP+SI]
                  PUSH      CS
                  INC       SI
                  PUSH      CS
                  PUSH      AX
                  INC       CX
                  POP       DS
                  INC       SI
                  INC       BX
                  INC       SI
                  PUSH      SP
                  PUSH      SP
                  INC       SP
                  DEC       SI
                  INC       SI
                  PUSH      DX
                  PUSH      CX
                  POP       DI
                  INC       BP
                  MOV       BX,0787
                  MOV       BX,0773
                  MOV       SI,0301
                  MOV       DX,BX
                  MOV       AH,4D
                  POP       DS
                  POP       DS
                  POP       DS
                  POP       DS
                  POP       AX
                  MOV       AX,WORD PTR [0376]
                  PUSH      AX
                  MOV       AH,0D
                  POP       AX
                  PUSH      BX
                  MOV       DI,0020
                  MOV       BX,WORD PTR ES:[0005]
                  PUSH      ES
                  MOV       ES,BX
                  MOV       AH,49
                  POP       ES
                  MOV       CL,BYTE PTR ES:[0001]
                  MOV       BX,WORD PTR ES:[0003]
                  MOV       AH,49
                  POP       BX
                  MOV       BP,AX
                  PUSH      AX
                  POP       AX
                  MOV       DX,0805
                  MOV       AX,WORD PTR [0311]
                  MOV       AX,WORD PTR [0313]
                  MOV       AH,49
                  MOV       BX,WORD PTR [030D]
                  MOV       AH,50
                  POP       DS
                  POP       AX
                  ADD       SP,02
                  PUSH      DS
                  POP       ES
                  MOV       DS,AX
                  MOV       DI,0080
                  MOV       CX,0040
REP               MOVSW
                  MOV       AH,51
                  MOV       WORD PTR ES:[030D],BX
                  MOV       AH,50
                  PUSH      ES
                  POP       DS
                  MOV       BX,DS
                  PUSH      DS
                  PUSH      DS
                  POP       DS
                  ADD       SP,02
                  MOV       AH,48
                  ADD       AX,0020
                  MOV       CL,04
                  MOV       AH,48
                  ADD       AX,1000
                  ADD       DX,BX
                  ADD       BX,AX
                  MOV       DI,SI
                  MOV       SI,CX
                  MOV       DI,SI
                  PUSH      DS
                  PUSH      ES
                  MOV       ES,BX
REP               MOVSB
                  POP       ES
                  POP       DS
                  MOV       AX,DS
                  MOV       SS,AX
                  MOV       SI,051D
                  MOV       CX,0533
REP               MOVSB
                  MOV       AX,WORD PTR [0366]
                  POP       DS
                  ADD       SP,02
                  PUSH      AX
                  PUSH      BX
                  MOV       BX,AX
                  MOV       AX,4408
                  POP       BX
                  POP       AX
                  POP       DS
                  ADD       SP,02
                  MOV       CX,WORD PTR [0370]
                  MOV       DX,WORD PTR [0018]
                  INC       BX
                  ADD       BX,04
                  INC       BX
                  MOV       BX,WORD PTR [0393]
                  PUSH      BX
                  PUSH      AX
                  PUSH      ES
                  PUSH      DS
                  MOV       AH,51
                  MOV       DS,BX
                  MOV       AX,WORD PTR [BX]
                  POP       ES
                  PUSH      ES
                  MOV       WORD PTR [BX],AX
                  POP       DS
                  POP       ES
                  POP       AX
                  POP       BX
                  PUSH      DS
                  PUSH      BX
                  PUSH      AX
                  MOV       AH,51
                  MOV       AX,WORD PTR [0317]
                  MOV       DS,BX
                  MOV       WORD PTR [BX],AX
                  POP       AX
                  POP       BX
                  POP       DS
                  MOV       AH,19
                  MOV       DX,0720
                  INC       BP
                  MOV       BX,AX
                  MOV       AX,4200
                  PUSH      DS
                  MOV       DX,0100
                  POP       DS
                  PUSH      AX
                  POP       AX
                  PUSH      DS
                  MOV       SI,0100
                  ADD       DX,AX
                  POP       DS
                  MOV       AX,2522
                  MOV       DX,0155
                  POP       DS
                  ADD       SP,02
                  MOV       DX,0742
                  POP       DS
                  PUSH      ES
                  PUSH      SI
                  PUSH      CX
                  PUSH      DI
                  PUSH      CX
                  PUSH      AX
                  PUSH      DS
                  POP       ES
                  MOV       DS,BP
                  MOV       AX,WORD PTR [SI+04]
                  MOV       CX,0008
                  CLD
REP               MOVSB
                  POP       AX
                  POP       CX
                  POP       DI
                  PUSH      ES
                  POP       DS
                  PUSH      DX
                  POP       DX
                  MOV       SI,0673
                  PUSH      ES
                  PUSH      DS
                  PUSH      BP
                  PUSH      SI
                  PUSH      DX
                  PUSH      CX
                  PUSH      BX
                  MOV       AH,59
                  POP       BX
                  POP       CX
                  POP       DX
                  POP       SI
                  POP       BP
                  POP       DS
                  POP       ES
                  MOV       DI,AX
                  MOV       DI,AX
                  MOV       AX,0500
                  PUSH      BX
                  MOV       BX,DI
                  MOV       AX,0501
                  POP       BX
                  PUSH      DS
                  PUSH      ES
                  POP       DS
                  MOV       DX,DI
                  MOV       BYTE PTR [DI-01],24
                  MOV       BYTE PTR [DI-01],00
                  POP       DS
                  MOV       DI,WORD PTR [0533]
                  ADD       DI,13
                  INC       SI
                  PUSH      CX
                  PUSH      DS
                  POP       ES
                  MOV       CX,0010
                  CLD
                  XLAT
REP               MOVSB
                  POP       DI
                  PUSH      ES
                  POP       DS
                  POP       CX
                  MOV       DX,0650
                  MOV       DX,0658
                  MOV       DX,0661
                  MOV       DX,0668
                  MOV       AH,03
                  MOV       AH,00
                  INC       AH
                  INC       AH
                  INC       AH
                  MOV       DX,DI
                  POP       CX
                  POP       SI
                  POP       ES
                  MOV       DX,087D
                  PUSH      SI
                  PUSH      AX
                  PUSH      BX
                  PUSH      CX
                  PUSH      DX
                  MOV       BX,SI
                  MOV       SI,DX
                  POP       DX
                  POP       CX
                  POP       BX
                  POP       AX
                  POP       SI
                  PUSH      DX
                  POP       DX
                  INC       SI
                  MOV       AH,02
                  PUSH      BX
                  PUSH      CX
                  ADD       BX,AX
                  MOV       BX,WORD PTR [BX+01]
                  MOV       AX,WORD PTR [BX]
                  MOV       CX,0004
                  PUSH      AX
                  MOV       AH,02
                  POP       AX
                  MOV       AH,02
                  MOV       AH,02
                  INC       BX
                  POP       CX
                  POP       BX
                  PUSH      AX
                  MOV       AX,1213
                  INC       SP
                  INC       SP
                  POP       DS
                  PUSH      AX
                  PUSH      AX
                  PUSH      BP
                  PUSH      AX
                  MOV       BP,SP
                  MOV       AX,WORD PTR [BP+08]
                  MOV       WORD PTR [BP+04],AX
                  MOV       AX,WORD PTR [0587]
                  MOV       WORD PTR [BP+08],AX
                  MOV       AX,WORD PTR [0585]
                  POP       AX
                  POP       BP
                  POP       DS
                  POP       AX
                  PUSH      DS
                  MOV       SI,0104
                  PUSH      BX
                  MOV       BX,DX
                  POP       BX
                  POP       DS
                  POP       DS
                  PUSH      AX
                  PUSH      BX
                  PUSH      CX
                  PUSH      DX
                  PUSH      SI
                  PUSH      DS
                  POP       ES
                  MOV       BX,000B
                  ADD       DI,AX
                  MOV       DX,0001
                  MOV       BX,2000
                  MOV       BX,AX
                  MOV       DX,DI
                  MOV       AX,4200
                  MOV       DX,0535
                  MOV       CX,0040
                  INC       SI
                  MOV       DX,WORD PTR [0535]
                  MOV       DI,DX
                  MOV       DI,WORD PTR ES:[DI]
                  POP       SI
                  POP       DX
                  POP       CX
                  POP       BX
                  POP       AX
                  POP       DS
                  MOV       AX,5800
                  MOV       BX,AX
                  MOV       AX,5801
                  MOV       BL,CH
                  MOV       AX,5803
                  MOV       AH,50
                  MOV       BX,ES
                  MOV       AX,3000
                  MOV       DX,2253
                  MOV       AX,ES
                  MOV       CL,04
                  MOV       AX,CS
                  ADD       AX,DX
                  MOV       AX,5500
                  PUSH      ES
                  POP       DS
                  MOV       AH,65
                  MOV       CX,0005
                  MOV       DI,0386
                  PUSH      DS
                  MOV       AX,6300
                  MOV       BX,DS
                  POP       DS
                  MOV       AX,WORD PTR [0016]
                  MOV       AX,1679
                  MOV       CL,04
                  MOV       CX,CS
                  ADD       AX,CX
                  ADD       AX,1000
                  MOV       AX,WORD PTR [0002]
                  PUSH      AX
                  MOV       CL,04
                  POP       AX
                  MOV       CL,04
                  MOV       ES,AX
                  MOV       AH,19
                  PUSH      DS
                  PUSH      ES
                  POP       DS
                  LEA       DI,WORD PTR [DI+0091]
                  MOV       CX,0090
REP               MOVSB

           POP       DS
           MOV       WORD PTR ES:[DI-01],AX
           PUSH      CS
           PUSH      CS
           POP       DS
           POP       ES
           MOV       SI,0080
           MOV       DI,SI
           ADD       DI,AX
           MOV       BYTE PTR [DI],0D
           PUSH      SI
           PUSH      AX
           MOV       DI,SI
           MOV       SI,WORD PTR [2251]
           STI       ; 뢠
           RET       ; ࠡ稪
MEMORY     ENDP
Intr12hLen   EQU   $ - Intr12h
; ணࠬ ࠡ稪 INT 12h


;⥬ ணࠬ INT 13h
Intr13h:
ReadDisk  PROC    

             CLI     ; 뢠
             PUSHF   ;Coxpa a   IRET

             ;楤 IOS 樠樨 ணࠬ 뢠 13
             MOV     DI, 1E13h
             MOV     SP, 512 

             JMP    Int13Beg        ;室  ᥪ 樠樨.


;  ᯮ㥬 ணࠬ INT 13h
Redef13h     LABEL      WORD                   
Int13h_vect  dd         0              ;࠭  INT 13h 
                                       ;쭥 権.
Int13Loc     equ        13h*4h         ;ࠬ 䨪樨   INT 13h.
Drive_A      equ        'A'            ; A:\
Drive_B      equ        'B'            ; B:\
Drive_C      equ        'C'            ; C:\
Drive_D      equ        'D'            ; D:\
Drive_E      equ        'E'            ; E:\
Drive_F      equ        'F'            ; F:\
Drive_X      equ        'X'            ;騩 () .
Save_Ip      dw         0              ;࠭  㯠  IP
Save_Cs      dw         0              ;࠭  㯠  CS
_Message      db         'Drv: '        ;ࠬ । 㯠.
Drive        db         ?
             db         ' Side: '
Free_Disk    db         255            ; 㯠  ⥪饬 .
Side1        db         ?
Side2        db         ?
             db         '   Tr: '      ;ࠬ । ஦.
Track1       db         ?
Track2       db         ?
             db         ' Sec: '       ;ࠬ । ᥪ.
Sector1      db         ?
Sector2      db         ?
             db         '  # secs: '   ;ࠬ । 㯠.
Sec_cnt1     db         ?
Sec_cnt2     db         ?
             db         ' Opt: '       ;ࠬ । 権.
Opt_1        db         ?
Opt_2        db         ?
             db         '   Retcd: '   ;ࠬ । 室  ᪠.
Status1      db         ?
Status2      db         ?
             db         '  Addr: '     ;ࠬ ।   ᪥.

Cs_1         db         ?           ;ࠬ । ॣ CS
Cs_2         db         ?
Cs_3         db         ?
Cs_4         db         ?
             db         ':'

Ip_1         db         ?           ;ࠬ । ࠬ IP
Ip_2         db         ?
Ip_3         db         ?
Ip_4         db         ?
             db         0Ah, 0Dh
atd          db         0           ;祩  䨪樨 
atd2         dw         0           ;祩  䨪樨  ⮢
dpt2         db         1           ;᪠ ⮣ 

Bytes        db         00000000B   ;  ⤥쭮 

Redef13hLen  EQU        $ - Redef13h


           ;樠 ⠭ ⥬ ணࠬ INT 13h
Int13Beg:                                                       

           ;   䫠,  ⢨ ᭮ 䨪樨
           ;ࠢ饩 ணࠬ .
           AAS

           ;⠥,   䫠    砥,
           ;-  뫮.
           AAA
           STOSB        ;᢮ 祭 䫠
                        ;襣 ॣ
                      
           ;ਤ ⮬ 䫠  ⢥
           ;᫠ c ।塞 ந쭮 ६.
           CMP      AH, AL                      
           CMPSB
           SCASB                               

           ;  ॣ஢ SP  DI 
           ;᫥饣 ᯮ,  ந쭮
           ;६  祭 ꥪ⨢ १.
           TEST     SP, DI
           CMC      ;⮢    


           ; 楤 ᯮ 㭪樨
           ;ࠡ  ᪮ ⥫  
           ;짮⥫ (맮 ⮩ ⥬ ணࠬ
           ;  ⠡ १ BIOS, 室饣
           ;   ⨢ , १
           ;뢠 INT 13h)
           PUSH    SP  ;⢮ ॣ SP  쭥 ⢨
           POP     DI  ; DI ⠢ ᢮  䨪樨

           ;४ ࠢ饣 ॣ
           PUSH       AX               ;⢮ 㦭
           PUSH       BP               ;ॣ.
           MOV        BP, SP                      
           MOV        AX, [BP+4]       ;⢮  IP    
           MOV        CS: Save_ip, AX  ;ନ஢   .
           MOV        AX, [BP+6]       ;⢮ ॣ CS     
           MOV        CS: Save_cs, AX  ;䮬஢  .
           POP        BP               ;᢮ 㦭 ॣ, 
           POP        AX               ;⮡ ⥬  , 
           PUSHF                       ;묨 ࠬࠬ.
           PUSH       DI
           PUSH       SI
           PUSH       DS
           PUSH       ES
           PUSH       BX
           PUSH       CX
           PUSH       DX     
           PUSH       AX

           ;,  ணࠬ  । 祭 䫠 
           ;ॣ஢ AH  AX  ஬,  ᯮ짮
           ;  .
           MOV        AX, CS
           MOV        DS, AX

           ;--------------- DRIVE (DL) ------------------
           ;। ⨯ ᪮ ⥫ 
           CMP        DL, 00h          ;  A: ? (DL=00)
           JNE        Chk1             ; 楤 ᭥ 㯠  
           MOV        Drive, Drive_A   ; ன.   ⥬  
           JMP        Drv_Exit         ; ᮢ, ஢   .
Chk1:      CMP        DL, 01h          ;  B: ?
           JNE        Chk2
           MOV        Drive, Drive_B
           JMP        Drv_Exit
Chk2:      CMP        DL, 80h          ;  C: ?
           JNE        Chk3
           MOV        Drive, Drive_C
           JMP        Drv_Exit
Chk3:      CMP        DL, 81h          ;  D: ?
           JNE        Chk4
           MOV        Drive, Drive_D
           JMP        Drv_Exit
Chk4:      CMP        DL, 82h          ;  E: ?
           JNE        Chk5
           MOV        Drive, Drive_E
           JMP        Drv_Exit
Chk5:      CMP        DL, 83h          ;  F: ?
           JNE        ChkX
           MOV        Drive, Drive_F
           JMP        Drv_Exit
ChkX:      CMP        DL, Free_Disk    ;  X: ?
           JNE        Drv_Exit
           MOV        Drive, Drive_X
                      

           ;---------------SIDE  (DH) ------------
           ;  ᪮ ⥫ (DH).

Drv_Exit:  MOV        AH, DH           ;ᨬ쭠 񬪮 ᪠.
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BA37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BA2
BA37:      ADD        AH, 37h
BA2:       MOV        CS: Side1, AH    ; ⥭ ᨫ쭮 .
           MOV        AH, DH                                    

           ;楤 뢠 ⮢  ॣ DH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AA37
           ADD        AH, 30h
           JMP        AA1
AA37:      ADD        AH, 37h
AA1:       MOV        CS: Side2, AH


           ;---------------TRACK NO. (CH)----------
           ;楤 ⥭ ஦  ⥫ (CH).
           MOV        AH, CH
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BB37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BB2
BB37:      ADD        AH, 37h
BB2:       MOV        CS: Track1, AH
           MOV        AH, CH
           
           ;楤 뢠 ⮢  ॣ CH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AB37
           ADD        AH, 30h
           JMP        AB1
AB37:      ADD        AH, 37h
AB1:       MOV        CS: Track2, AH
 

           ;----------------SECTOR NO. (CL)---------
           ;楤 ⥭   ⥫ (CL).
           MOV        AH, CL
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BC37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BC2
BC37:      ADD        AH, 37h
BC2:       MOV        CS: Sector1, AH
           MOV        AH, CL
           ;楤 뢠 ⮢  ॣ CL  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AC37
           ADD        AH, 30h
           JMP        AC1
AC37:      ADD        AH, 37h
AC1:       MOV        CS: Sector2, AH
 

           ;----------------NO. OF SECTORS (AL)-------
           ; ⢮ ⠥ ஢  ᪠ (AL).
           ; ⥭  ASCII-ᨬ. 楤 뢠  
           ; ⮢  ॣ AH  । ᮮ⢥饣
           ;  ASCII,   .
           AND        AH, 11110000B  ; ᪠  4- ⭮ 祩.
           SHR        AH, 01         ;  ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BD37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BD2
BD37:      ADD        AH, 37h
BD2:       MOV        CS: Sec_Cnt1, AH   ; ᫮ ⠥ ᥪ஢,
                                         ; ।塞  ॣ AL.

           ; ᫨   뢠 INT 13h 㪠 㭪 17h, 
           ; 室  .
           CMP        AL, 17       ; Ec  ॣ AL 㪠 㭪.
           JE         ParmFloppy   ; 17h,  室  ᮮ. ணࠬ.


           ; ᫨ ,  ४뢠 ᮤন ॣ AL  ॣ
           ; 稪 CX.
           MOV        CL, AL       ; ५ ᫮  ᥪ஢.
           MOV        CH, CL       ;  ॣ AL  ॣ 稪 CX.
           PUSH       CX


           ;楤 뢠 ⮢  ॣ AL  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AD37
           ADD        AH, 30h
           JMP        AD1
AD37:      ADD        AH, 37h
AD1:       MOV        CS: Sec_Cnt2, AH


           ;--------------OPERATION TYPE (AH)-----------------
           ; 00:reset 01:read status 02:read sectors 03:write sec.
           ; 04:scan of disky 05:format

           ; 権  ࠡ  䨧᪨ ᪮ (AH).
           ;㭪 00h: । 㯠  ன.
           ;㭪 01h: । ࠬ஢ 䨧᪮ ᪠.
           ;㭪 02h: ⥭   䨧᪮ ᪠.
           ;㭪 03h:    䨧᪨   ᮫⭮
           ;              (, , ᥪ, ஭).
           ;㭪 04h: ஢ ᪠  ⠥  
           ;             䥪 ᥪ஢.
           ;㭪 05h: ଠ஢ 䨧᪮ ᪠  楫
           ;             ୮ ᯮ짮   ᥩ.

           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01         
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BE37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BE2
BE37:      ADD        AH, 37h
BE2:       MOV        CS: Opt_1, AH

           CMC      ;⮢    

           ; ।  㭪 ⥬ ணࠬ
           ; 뫠 ॡ 짮⥫,   맮
           ; 뢠 INT 13h
           CMP      AH, 00h
           JE       FunExec0
           CMP      AH, 01h
           JE       FunExec1
           CMP      AH, 02h
           JE       FunExec2
           CMP      AH, 03h
           JE       FunExec3
           CMP      AH, 04h
           JE       FunExec4
           CMP      AH, 05h
           JE       FunExec5

           ;---------------Functional INT 13h-----------------------
           ;楤 믮 㭪権 뢠 INT 13h

FunExec0:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct0_1
          CMP      DL, 01h
          JE       DrvFnct0_2
          CMP      DL, 80h
          JE       DrvFnct0_3
          CMP      DL, 81h
          JE       DrvFnct0_4
          CMP      DL, 82h
          JE       DrvFnct0_5
          CMP      DL, 83h
          JE       DrvFnct0_6
          CMP      DL, Free_Disk
          JE       DrvFnct0_7

          ; । ⨯ ᪮ ⥫:
DrvFnct0_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1

DrvFnct0_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1


DrvFnct0_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1


DrvFnct0_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1


DrvFnct0_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1


DrvFnct0_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1

DrvFnct0_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options1



          ; ⮢ ᪠  -뢮
Options1:
          PUSH     CX        ;⢮ ॣ X.
          IN       AX, DX    ;뢥    襣 ன⢠. 
          CMPSB
          IN       AX, DX
          SCASB
          IN       AX, DX
          CLD                ;뢮 . 
REP       STOSB              ;뢮  ன⢠.
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0

          JMP       FindDrv


FunExec1:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct1_1
          CMP      DL, 01h
          JE       DrvFnct1_2
          CMP      DL, 80h
          JE       DrvFnct1_3
          CMP      DL, 81h
          JE       DrvFnct1_4
          CMP      DL, 82h
          JE       DrvFnct1_5
          CMP      DL, 83h
          JE       DrvFnct1_6
          CMP      DL, Free_Disk
          JE       DrvFnct1_7

          ; । ⨯ ᪮ ⥫:
DrvFnct1_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2

DrvFnct1_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2


DrvFnct1_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2


DrvFnct1_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2


DrvFnct1_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2
          


DrvFnct1_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2

DrvFnct1_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options2



          ; ।  ᪮ ⥫
Options2:
          PUSH     CX
          OUT      DX, AX
          CMPSB
          OUT      DX, AX
          SCASB
          OUT      DX, AX
          CLD
REP       STOSB
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0

          JMP       FindDrv


FunExec2:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct2_1
          CMP      DL, 01h
          JE       DrvFnct2_2
          CMP      DL, 80h
          JE       DrvFnct2_3
          CMP      DL, 81h
          JE       DrvFnct2_4
          CMP      DL, 82h
          JE       DrvFnct2_5
          CMP      DL, 83h
          JE       DrvFnct2_6
          CMP      DL, Free_Disk
          JE       DrvFnct2_7

          ; । ⨯ ᪮ ⥫:
DrvFnct2_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3

DrvFnct2_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3


DrvFnct2_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3


DrvFnct2_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3


DrvFnct2_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3


DrvFnct2_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3

DrvFnct2_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options3



          ;, ⥭   ᪮ ⥫
Options3:
          PUSH     CX        ;⢮ ॣ X.
          IN       AX, DX    ;뢥    襣 ன⢠. 
          IN       AX, DX
          CLD                ;뢮 . 
REP       STOSB              ;뢮  ன⢠.
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0

          JMP       FindDrv


FunExec3:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct3_1
          CMP      DL, 01h
          JE       DrvFnct3_2
          CMP      DL, 80h
          JE       DrvFnct3_3
          CMP      DL, 81h
          JE       DrvFnct3_4
          CMP      DL, 82h
          JE       DrvFnct3_5
          CMP      DL, 83h
          JE       DrvFnct3_6
          CMP      DL, Free_Disk
          JE       DrvFnct3_7

          ; । ⨯ ᪮ ⥫:
DrvFnct3_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4

DrvFnct3_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4


DrvFnct3_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4


DrvFnct3_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4


DrvFnct3_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4


DrvFnct3_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4

DrvFnct3_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options4



          ;,    ᪮ ⥫
Options4:
          PUSH     CX        ;⢮ ॣ X.
          OUT      DX, AX    ;    襣 ன⢠. 
          OUT      DX, AX
          CLD                ; . 
REP       MOVSB              ;  ன⢮.
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0
          JMP      FindDrv


FunExec4:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct4_1
          CMP      DL, 01h
          JE       DrvFnct4_2
          CMP      DL, 80h
          JE       DrvFnct4_3
          CMP      DL, 81h
          JE       DrvFnct4_4
          CMP      DL, 82h
          JE       DrvFnct4_5
          CMP      DL, 83h
          JE       DrvFnct4_6
          CMP      DL, Free_Disk
          JE       DrvFnct4_7

          ; । ⨯ ᪮ ⥫:
DrvFnct4_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5

DrvFnct4_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5


DrvFnct4_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5


DrvFnct4_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5


DrvFnct4_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5


DrvFnct4_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5

DrvFnct4_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options5


          ;, ᪠஢   ᪮ ⥫
Options5:
          PUSH     CX        ;⢮ ॣ X.
          IN       AX, DX    ;뢥    襣 ன⢠. 
          STOSB
          IN       AX, DX
          STOSB
          IN       AX, DX
          STOSB
          IN       AX, DX
          CLD                ;뢮 . 
REP       STOSB              ;뢮  ன⢠.
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0


          MOV       BYTE PTR ES:[DI], 0
          JMP       FindDrv



FunExec5:
          MOV      AL, BL     ; ५ ᮤন ॣ BX 
          MOV      AX, BX     ; ॣ AL
          ; ᭨,  ⥫  ⨯,   .
          CMP      DL, 00h
          JE       DrvFnct5_1
          CMP      DL, 01h
          JE       DrvFnct5_2
          CMP      DL, 80h
          JE       DrvFnct5_3
          CMP      DL, 81h
          JE       DrvFnct5_4
          CMP      DL, 82h
          JE       DrvFnct5_5
          CMP      DL, 83h
          JE       DrvFnct5_6
          CMP      DL, Free_Disk
          JE       DrvFnct5_7

          ; । ⨯ ᪮ ⥫:
DrvFnct5_1:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX   ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6

DrvFnct5_2:
          MOV      DX, 3F0h   ; ⠥ ᪠- 䫮-᪮   3F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h   ; ⠥  䫮-᪮.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 3F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 3F0h
          OUT      DX, AX     ; ⠭    3F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6


DrvFnct5_3:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6


DrvFnct5_4:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6


DrvFnct5_5:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6


DrvFnct5_6:
          MOV      DX, 1F0h   ; ⠥ ᪠- ⪮ ᪠   1F0h.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h   ; ⠥  ⪮ ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 1F1h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 1F0h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6

DrvFnct5_7:
          MOV      DX, 0000h  ; ⠥ ᪠- ந쭮 ᪠.         
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h  ; ⠥  ந쭮 ᪠.
          IN       AX, DX   
          STOSB               ; 㥬    ன⢠.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⢥ত 䠪  ᪠-.
          MOV      DX, 0000h
          OUT      DX, AX     ; ⠭    1F1h
          CLD
          MOVSB               ; 㥬 뢮  
          JMP      Options6


          ; ଠ஢ ᪮ ⥫.         
Options6:
          PUSH     CX        ; ⢮ ॣ X.
          OUT      DX, AX    ; 뢥 ᨣ  ଠ஢ ன⢠
                             ;   .
          MOVSB
          OUT      DX, AX
          MOVSB
          OUT      DX, AX
          MOVSB
          OUT      DX, AX
          CLD                ;뢮 . 
REP       MOVSB              ;뢮  ன⢠.
          POP      AX
          POP      DX
          CMC      ;⮢    
          TEST     SP, DI
          MOV      BYTE PTR ES:[DI], 0
          JMP       FindDrv

            
          ;---------------------------------------------------------
          ; ணࠬ । ࠬ஢, ᮥ񭭮 
          ;  ,  ᪮.
          ;---------------------------------------------------------
ParmFloppy:   MOV       BP, AX
              MOV       AX, ES

              ; ।,  㭪 㪠  ॣ
              ; AL  㦭,  । ஥ ࠡ
              ; 襣  ᪮.
              CMP      AL, 0
              JE       PrmFlpp0
              CMP      AL, 1
              JE       PrmFlpp1
              CMP      AL, 2
              JE       PrmFlpp2
              CMP      AL, 3
              JE       PrmFlpp3
              CMP      AL, 4
              JE       PrmFlpp4
              CMP      AL, 5
              JE       PrmFlpp5


           ;। ࠬ஢  ᪠
           ; 160 .
PrmFlpp0:  MOV       AL, 00h   ;㭪  - 00h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 38    ;⢮ ஦ - 38
           MOV       CX, 1280  ;⢮ ᥪ஢ - 1280
           MOV       CL, 128   ;⢮    ᥪ
           LEA       DX, Sct  ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct        db        128 Dup (?)
SctLen     EQU       $ - Sct
REP        STOSB     ;⠢   㦭 ࠬ ᪠
           JMP       FloppyExit
Birky      db        'FAT 12'

           ;। ࠬ஢  ᪠
           ; 360 ,  ᪮  䮬஢
           ; 360 KB.
PrmFlpp1:  MOV       AL, 01h   ;㭪  - 01h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 19    ;⢮ ஦ - 19
           MOV       CX, 640  ;⢮ ᥪ஢ - 2560
           MOV       CL, 32   ;⢮    ᥪ
           LEA       DX, Sct1 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct1       db        128 Dup (?)
REP        STOSB     ;ࠢ 㦥 ᢥ
           JMP       FloppyExit


           ;। ࠬ஢  ᪠
           ; 360 ,  ᪮  䮬஢
           ; 1,2 .
PrmFlpp2:     MOV       AL, 02h   ;㭪  - 02h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky2 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 38    ;⢮ ஦ - 38
           MOV       CX, 1280  ;⢮ ᥪ஢ - 1280
           MOV       CL, 00FFh ;⢮    ᥪ - 256
           LEA       DX, Sct2 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct2       db        256 Dup (?)
REP        STOSB     ;ࠢ 㦥 ᢥ
           JMP       FloppyExit
Birky2     db        'FAT 12'

           ;। ࠬ஢  ᪠
           ; 1,2 ,  ᪮  䮬஢
           ; 1,2 .
PrmFlpp3:  MOV       AL, 03h   ;㭪  - 03h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky3 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 76    ;⢮ ஦ - 76
           MOV       CX, 2560  ;⢮ ᥪ஢ - 2560
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sct3  ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct3       db        512 Dup (?)
REP        STOSB     ;ࠢ 㦥 ᢥ
           JMP       FloppyExit
Birky3     db        'FAT 12'


           ;। ࠬ஢  ᪠
           ; 720 .  ᪮  ଠ஢
           ; 1,44 .
PrmFlpp4:  MOV       AL, 04h   ;㭪  - 04h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 40    ;⢮ ஦ - 40
           MOV       CX, 1423  ;⢮ ᥪ஢ - 1423
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sct4  ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct4       db        512 Dup (?)
REP        STOSB     ;ࠢ 㦥 ᢥ
           JMP       FloppyExit


           ;। ࠬ஢  ᪠
           ; 1,44 .  ᪮ c ଠ஢
           ; 1,44 .
PrmFlpp5:  MOV       AL, 05h   ;㭪  - 05h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Birky ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 40    ;⢮ ஦ - 40
           MOV       CX, 1423  ;⢮ ᥪ஢ - 1423
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sct5 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sct5       db        512 Dup (?)
REP        STOSB     ;ࠢ 㦥 ᢥ
           JMP       FloppyExit




FloppyExit:
FindDrv:
           POP        AX
           PUSH       BX
                      
           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AE37
           ADD        AH, 30h
           JMP        AE1
AE37:      ADD        AH, 37h
AE1:       MOV        CS: Opt_2, AH

           MOV     WORD PTR atd, AX
           MOV     WORD PTR atd, DX
           TEST    DX, AX 



           ;    ᭮ ணࠬ CS:IP
           MOV        AX, CS: Save_ip
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BF37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BF2
BF37:      ADD        AH, 37h
BF2:       MOV        CS: ip_1, AH
           MOV        AX, CS: Save_ip
           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AF37
           ADD        AH, 30h
           JMP        AF1
AF37:      ADD        AH, 37h
AF1:       MOV        CS: ip_2, AH
           MOV        AX, CS: Save_ip
           XCHG       AH, AL
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BH37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BH2
BH37:      ADD        AH, 37h
BH2:       MOV        CS: ip_3, AH
           MOV        AX, cs: Save_ip
           XCHG       AH, AL
           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AH37
           ADD        AH, 30h
           JMP        AH1
AH37:      ADD        AH, 37h
AH1:       MOV        CS: ip_4, AH
           MOV        AX, CS: Save_cs
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BG37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BG2
BG37:      ADD        AH, 37h
BG2:       MOV        CS: cs_1, AH
           MOV        AX, cs: Save_cs

           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AG37
           ADD        AH, 30h
           JMP        AG1
AG37:      ADD        AH, 37h
AG1:       MOV        CS: cs_2, AH
           MOV        AX, CS: Save_cs
           XCHG       AH, AL  
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BI37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BI2
BI37:      ADD        AH, 37h
BI2:       MOV        CS: cs_3, AH 
           MOV        AX, CS: Save_cs
           XCHG       AH, AL
           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AI37
           ADD        AH, 30h
           JMP        AI1
AI37:      ADD        AH, 37h
AI1:       MOV        CS: cs_4, AH

           ;᢮  ࠭  ॣ.
           POP        AX             
           POP        DX              
           POP        CX
           POP        BX
           POP        ES
           POP        DS
           POP        SI
           POP        DI
           POPF


           ;㧨 祭 䫠 CS  IP ⠢ ࠡ稩 
           ;,  ᫥饣 室  ⥬ ࠡ稪
           ;INT 13h.                      
           PUSHF           
           PUSH       CS         
           ;᪠ IP   த 믮  楤.
           ;㧨 㦥  ⠭⭮  ࠡ稪 INT 13h.       
           PUSHF
           PUSH     CS: [Redef13h] + 2  ; "CS"  INT 13h ஢.
           PUSH     CS: [Redef13h]      ; "IP"  INT 13h ஢.

           ; ࠡ ⥬ ணࠬ INT 13h 맮.
           PUSHF
           PUSH       AX         ;࠭  祭 ॣ.
           ;⥭  ASCII-ᨬ. 楤 뢠  
           ;⮢  ॣ AH  । ᮮ⢥饣
           ; ASCII,   .
           AND        AH, 11110000B  ;᪠  4- ⭮ 祩.
           SHR        AH, 01         ; ᬠਢ  .
           SHR        AH, 01
           SHR        AH, 01
           SHR        AH, 01       ;  8  = 1 .
           CMP        AH, 0Ah      ; 祭 ᬮ  0  9.
           JNB        BJ37         ; ᫨  ࠢ  0Ah  0Fh,  
           ADD        AH, 30h      ; 祭 30h   ASCII  ᮧ.
           JMP        BJ2
BJ37:      ADD        AH, 37h
BJ2:       MOV        CS: Status1, AH 
           POP        AX
           PUSH       AX
           ;楤 뢠 ⮢  ॣ AH  ⮬
           ;砥, ᫨ ⥫  ⠥.
           AND        AH, 00001111B ;᪠  4- ⮢.
           CMP        AH, 0Ah
           JNB        AJ37
           ADD        AH, 30h
           JMP        AJ1
AJ37:      ADD        AH, 37h
AJ1:       MOV        CS: Status2, AH
           POP        AX
           INC        SI          

           POP        SI
           POP        DX
           POP        CX
           POP        AX
GoBack:    POPF

             ;楤 ⠭ ணࠬ  .
Inst_Int13:  MOV      AX, 0
             MOV      ES, AX
             MOV      DI, Int13Loc           ;࠭  .
             MOV      AX, ES: [DI]           ;   뢠 INT 13h
             MOV      BX, ES: [DI+2]         ;   
             MOV      SI, OFFSET Int13h_vect    ;     "
             MOV      [SI], AX                  ;     "
             MOV      [SI+2], BX                ;     "
             MOV      AX, 0                  
             MOV      ES, AX
             MOV      BX, DS
             CLI                       ; 뢠.
             MOV      DI, Int13Loc           ;⢮ INT 13h ....
             MOV      AX, OFFSET Int13h_vect ;   ...
             MOV      ES: [DI], AX           ;   ...
             MOV      ES: [DI+2], BX         ;   ਪ ணࠬ.
             STI                       ; 뢠.    

             ; ࠡ稪  室  ⥬.
             RET      ; ࠡ稪 INT 13h  室
                      ; ⥪ 樮 ⥬.

ReadDisk   ENDP

; 
IntVect    db      19, 0    ;  맮 INT 13h
; ⥬ 㭪権 ࠡ ணࠬ INT 13h
; 䨧᪨ ᪮
Funct0     dw      0        ;騩   ⥫
Funct1     dw      1        ;஢ઠ ࠢ
Funct2     db      32, 32   ;⥭ ଠ樨  ᪠
Funct3     db      '##'     ; ଠ樨  
Funct4     db      255, 255 ;஢ ࠭⢠
                            ;᪮ ⥫ 
                            ;稥 訡 ⥭/
Funct5     db      '""'     ;ଠ஢ ᪠
Funct6     db      '..'     ;᫮ ଠ஢ ᪠
Funct7     db      27, 27   ;஥ ଠ஢ ᪠
Funct8     db      2, 1     ;祭 ଠ樨  񬪮
                            ;᪠  㣨  ࠪ⨪
Funct9     db      1, 255   ;।⠢  ଠ樨
                            ; ⢥  ⠬
                            ;  ᪥    
                            ;宦
Funct10    db      32, 0    ;⥭ . ⢠ ᥪ஢  
Funct11    db      32, '##' ; . ⢠ ᥪ஢   
Funct12    db      '@@'     ; ९  
Funct13    db      32, 255  ;१ ⠥ ᥪ  ᪥
Funct14    db      180, 32  ;⥭  ᥪ      
Funct15    db      180, '#' ;     ᥪ  ᪥
Funct16    db      180, 2   ;䨪஢    䨧᪮
                            ;᪠.
Funct17    db      187, 2   ;樠 㯠  䠩 ⠡
Funct18    db      180, 180 ;஢ઠ 뢠  ᪠  
Funct19    db      180, 19  ;⨪ ஫ ⥫    
Funct20    db      180, 20  ;⨪ ஫ ⥢ 㯠
Funct21    db      144, 2   ;䨪஢ ⨯ ᪮ ⥫
Funct22    db      14, 118  ;䨪஢ ⥪騩  ᪠
                            ; ⥪饩 䨣樨 .
Funct23    db      2, 255   ;䨪஢  䨧᪮ ᪠
                            ; ⥪饩 䨣樨 .
Funct24    db      255, '#' ;஢ ⥪ ਣ ᪠
                            ;  饣 ଠ஢.
Funct25    db      14, 114  ;। ⨯ ⥫: ⠭
                            ; ⠭ ?
Funct26    db      '######' ;ଠ஢ ᪠  ਭ㤨⥫쭮
                            ;१ ᥣ ᪮ ࠭⢠,
                            ; 㧮 ᥪ  ᥪ 
                            ; ࠬ஢ 䠩 ⥬.


BadSector  db      255, 255, 255, 255 ; ਧ ⠥
                                      ;ᥪ 䨧᪮ ᪠
atd7       db      0           ;祩  䨪樨 
atd20      dw      0           ;祩  䨪樨  ⮢
dpt6       db      1           ;᪠ ⮣ 

Bytes3     db      00000000B   ;  ⤥쭮 

BytClast   db      512 Dup (?) ; ⤥쭮   ᪥

BytClastLen  Equ  $ - BytClast  ; 뤥  䨪樨

Path       db      20          ;᫮ ஢   ஦ 


;C⥬ ணࠬ 䨪, ॣ ࠡ ⥫
Disky    db   68, 94,   80, 104,251,111,  154,38 
         db   22, 132,  50, 131,  196,  6,255,118 
         db   8, 255,  118,  4,232,48,  8, 131 
         db   196,  4,30, 104,  250,111,  154,211 
         db   196,225,  75, 131,  196,  4,128,62 
         db   201,16,46, 117, 8, 131,  255,20 
         db   116,  3,232,240,  9, 142, 6, 68 
         db   79, 38,255,54, 122,46,38, 255 
         db   54, 120,  46, 154,50, 174,  225,75 
         db   131,196, 4, 32, 118,254,  154,92 
         db   16, 225,  75, 91, 131,255, 1, 117 
         db   15, 142, 6, 62, 79, 38,139,30 
         db   114,46,139,183,134,  7,235,13 
         db   142,  6,62, 79, 38, 139,  30, 114 
         db   46, 139,  183,144,  7, 106, 1, 86 
         db   255,183,  30,2, 255,118, 6, 160 
         db   201,16,152,80, 232,244, 5, 131 
         db   196,94,95, 201,195,46,200,184 
         db   46, 46,87, 86, 199,70,244,46 
         db   46, 161,  212,16, 137,70,246,141 
         db   70, 240,  80, 141,70, 238,  80, 144 
         db   14, 232,  144,138,131,196, 4, 142 
         db   6, 62,79, 38, 139,30,114,46 
         db   30, 255,  183,108,  7, 255,  183,142 
         db   7, 144,  14, 232,206,245,  131,196 
         db   6, 142, 6, 68, 79, 38,163,120 
         db   46, 32,32, 38, 137,22,122,46 
         db   139, 194,  38, 11,6, 120,  46, 117 
         db   5, 51,192,233,252,  1,  104,126 
         db   53, 154, 4, 15, 225,75,91, 137 
         db   70, 242,  142,  6, 64, 79,38, 199 
         db   6, 180,2, 46, 46, 128,  62, 201 
DiskyLen  Equ  $ - Disky  ; 뤥  䨪樨


;, ᥪ, , ࠧ 
;᪮ ⥫
SizeDrv   db     0,0,0,2
          db     0,0,1,2
          db     0,0,2,2
          db     0,0,3,2
          db     0,0,4,2
          db     0,0,5,2
          db     0,0,6,2
          db     0,0,7,2
          db     0,0,8,2
          db     0,0,9,2
          db     0,0,10,2
          db     0,0,11,2
          db     0,0,12,2
          db     0,0,13,2
          db     0,0,14,2
          db     0,0,15,2
          db     0,0,16,2
          db     0,0,17,2
SizeDrvLen Equ   $ - SizeDrv

Key       dw     9999h       ;

;⥫ ࠬ 楫஢, ,
;஢  ࠧ ஢ ᪮ ⥫.
SizeCol1  db     1,0,0,2
          db     1,0,1,2
          db     1,0,2,2
          db     1,0,3,2
          db     1,0,4,2
          db     1,0,5,2
          db     1,0,6,2
          db     1,0,7,2
          db     1,0,8,2
          db     1,0,9,2
          db     1,0,10,2
          db     1,0,11,2
          db     1,0,12,2
          db     1,0,13,2
          db     1,0,14,2
          db     1,0,15,2
          db     1,0,16,2
          db     1,0,17,2

;, ᥪ, , ࠧ .
SizeCol2  db     2,0,0,2
          db     2,0,1,2
          db     2,0,2,2
          db     2,0,3,2
          db     2,0,4,2
          db     2,0,5,2
          db     2,0,6,2
          db     2,0,7,2
          db     2,0,8,2
          db     2,0,9,2
          db     2,0,10,2
          db     2,0,11,2
          db     2,0,12,2
          db     2,0,13,2
          db     2,0,14,2
          db     2,0,15,2
          db     2,0,16,2
          db     2,0,17,2

;, ᥪ, , ࠧ .
SizeCol3  db     3,0,0,2
          db     3,0,1,2
          db     3,0,2,2
          db     3,0,3,2
          db     3,0,4,2
          db     3,0,5,2
          db     3,0,6,2
          db     3,0,7,2
          db     3,0,8,2
          db     3,0,9,2
          db     3,0,10,2
          db     3,0,11,2
          db     3,0,12,2
          db     3,0,13,2
          db     3,0,14,2
          db     3,0,15,2
          db     3,0,16,2
          db     3,0,17,2

;, ᥪ, , ࠧ .
SizeCol4  db     4,0,0,2
          db     4,0,1,2
          db     4,0,2,2
          db     4,0,3,2
          db     4,0,4,2
          db     4,0,5,2
          db     4,0,6,2
          db     4,0,7,2
          db     4,0,8,2
          db     4,0,9,2
          db     4,0,10,2
          db     4,0,11,2
          db     4,0,12,2
          db     4,0,13,2
          db     4,0,14,2
          db     4,0,15,2
          db     4,0,16,2
          db     4,0,17,2

;, ᥪ, , ࠧ .
SizeCol5  db     5,0,0,2
          db     5,0,1,2
          db     5,0,2,2
          db     5,0,3,2
          db     5,0,4,2
          db     5,0,5,2
          db     5,0,6,2
          db     5,0,7,2
          db     5,0,8,2
          db     5,0,9,2
          db     5,0,10,2
          db     5,0,11,2
          db     5,0,12,2
          db     5,0,13,2
          db     5,0,14,2
          db     5,0,15,2
          db     5,0,16,2
          db     5,0,17,2


Newst     db     13,10         ;Pa , ࠧ ࠬ஢
NewstLen  equ    $ - Newst

Old_disk  dd     0             ; ᫮  , ⥬
                               ;ࠡ稪 ᪮ ⥫

Err_Mes   db     'E', 12h, 'R', 12h, 'R', 12h, 'O', 12h
          db     'R', 12h, 'S', 12h, '!', 12h
Err_MesLen = $ - Err_Mes


Redef13      LABEL      WORD
OldInt13     dd         0      ;࠭   INT 13h   
Int13Loc     equ        13h*4h ;ࠬ 䨪樨   INT 13h

Intr13hLen   EQU   $ - Intr13h
; ணࠬ ࠡ稪 INT 13h



;⥬ ணࠬ INT 14h
Intr14h:
ReadPort  PROC    
          CLI     ; 뢠
          PUSHF   ;Coxpa a   IRET

          ;楤 IOS 樠樨 ணࠬ 뢠 14
          MOV     DX,1F14h
          MOV     SP,08  
          MOV     WORD PTR [DI-08],CX  
          MOV     WORD PTR [SI+08],BX

          ;,  ணࠬ  ।
          ;祭 䫠  ॣ஢
          ;AH  AX  ஬, 
          ;ᯮ짮   .
          LEA     DX, IntVect2
          TEST    DX, 14h
          INC     DX

          ;। ⥬,   ᯮ
          ;祭  䫠 
          ;ॣ஢ AH  AX, ந ࡮
          ; 뢠 INT 14h   
          ; ᮮ⢥騩  ᥣ⭮
          ; ⨢ .
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BL, 14h   ; 뢠 ᨬ  
          CLD               ; 
REP       STOSB             ;
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 
          
          ; 楤 ᯮ 㭪樨
          ;ࠡ  ᪮ ⥫  
          ;짮⥫ (맮 ⮩ ⥬ ணࠬ
          ;  ⠡ १ BIOS, 室饣
          ;   ⨢ , १
          ;뢠 INT 14h)
          PUSH    AX  ;⢮ ॣ AX
                      ; 쭥 ⢨
          POP     BX  ; BX ⠢
                      ;᢮  䨪樨

          ;   䫠 AH  AX,
          ; ⢨ ᭮ 䨪樨 ࠢ饩
          ;ணࠬ 
          AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    
          
          ;।  㭪 ⥬ ணࠬ
          ;뫠 ॡ 짮⥫,   맮
          ;뢠 INT 14h
          CMP      AH, 00h
          JE       RestPrt0
          CMP      AH, 01h
          JE       RestPrt1
          CMP      AH, 02h
          JE       RestPrt2
          CMP      AH, 03h
          JE       RestPrt3
          CMP      AH, 04h
          JE       RestPrt4
          CMP      AH, 05h
          JE       RestPrt5
          CMP      AH, 06h
          JE       RestPrt6
          CMP      AX, 07h
          JE       RestPrt7

;ணࠬ 맮 ᮮ⢥ 㭪権,  뫨
;ॡ 짮⥫,   맮 뢠
;INT 14h, ॣ樨  ஢ ஬  䨪樨,
;  ⢨,  믮 ⠢ .
RestPrt0:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv0       ;   COM1
          INC       WORD PTR CS: PortDrv0
          PUSH      WORD PTR PortDrv0
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨣ,  ஫
          MOV       BYTE PTR ES:[DI], 0 
          JMP       FindPort

RestPrt1:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv1       ;   COM2
          INC       WORD PTR CS: PortDrv1
          PUSH      WORD PTR PortDrv1
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt2:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv2       ;   COM3
          INC       WORD PTR CS: PortDrv2
          PUSH      WORD PTR PortDrv2
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt3:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv3       ;   COM4
          INC       WORD PTR CS: PortDrv3
          PUSH      WORD PTR PortDrv3
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt4:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv4       ;   LPT1
          INC       WORD PTR CS: PortDrv4
          PUSH      WORD PTR PortDrv4
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt5:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv5       ;   LPT2
          INC       WORD PTR CS: PortDrv5
          PUSH      WORD PTR PortDrv5
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt6:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv6       ;   USB1
          INC       WORD PTR CS: PortDrv6
          PUSH      WORD PTR PortDrv6
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      AL, BH     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

RestPrt7:
          MOV       ES, DX   ;஥   ES
          XOR       DI, DI   ;ES:DI -> 砫 뤥 
          MOV       DX, OFFSET PortDrv7       ;   USB2
          INC       WORD PTR CS: PortDrv7
          PUSH      WORD PTR PortDrv7
          LEA       DI, BytClast2 ;㧪  .
          XCHG      BH, AL        ;㤠  
          MOV       AX, SI        ;ந쭮 㯠.            
          MOV       CX, 1024      ;512 - ᫮ ⮢  ᥣ.
                                  ;⮢ ਭ楯:  8
          IN        AX, DX     ;1
          IN        AX, DX     ;2           
          IN        AX, DX     ;3
          IN        AX, DX     ;4
          IN        AX, DX     ;5
          IN        AX, DX     ;6
          IN        AX, DX     ;7
          IN        AX, DX     ;8
          CLD                  ;ࠢ塞  .
REP       STOSB                ; ⠭  .  
          XCHG      BH, AL     ;Bocc⠭ ० 祭 ॣ.
          POP       CX         ;⠭ CX, ।  樥.
          ; ᫥  ᨢ,  ஫.
          MOV       BYTE PTR ES:[DI], 0
          JMP       FindPort

          ;। 䫠 ॣ AL.  ।  㭪
          ; 믮  ࠡ   ⮬: ⥭, 
          ;  ⪠  㯠   (᫨,  祭).
FindPort: CMP       AL, 0    
          JE        PrtRd    ;᫨ 䫠 = 0,  ⥭.
          CMP       AL, 1
          JE        PrtWrt   ;᫨ 䫠 = 1,  .
          JG        Quit3    ;᫨ 䫠 > 1,  室 
                             ;ணࠬ.

         ; ⠭⭠ 楤 㯠,  ⥭ 
         ;   .                                    
PrtRd:   ;楤 ⥭  .
	 DEC   DX
         DEC   DX                  ;REG (xF8)
         SUB   AH,AH               
         IN    AL,DX               ;⥭   .
         MOV   BX,COM1EPTR [SI]    
         MOV   DX,BX               
         INC   BX                  
         CMP   BX,COM1ENDB [SI]    ; ?
         JNE   ISR0220             ;. ,  㯨 
                                   ;믮  楤.
         MOV   BX,COM1STRT [SI]                               

ISR0220: CMP   BX,COM1SPTR [SI]    ;஢ਬ,   ९  .
         JE    ISR0240             ;.  ९.

         MOV   COM1EPTR [SI],BX    
         MOV   BX,DX               
         MOV   [BX],AL             
	 OR    AH,1

         JMP   ISR0280             ;,  室.                    
ISR0240: OR    AH,10H              
ISR0280: OR    COM1LINE [SI],AH

         JMP   PrtCnt              ;室  ᥪ  権.


         ; ⠭⭠ 楤 㯠,   
         ;   .                                                 
PrtWrt:  ;楤   .
         MOV   AH,40H              
         MOV   BX,OUT1SPTR [SI]    

         CMP   BX,OUT1EPTR [SI]    ;   ?
         JE    ISR0480             ;.    室.   
	 DEC   DX
         DEC   DX                  ;REG (xF8)
         MOV   AL,[BX]             
         OUT   DX,AL               ;   .
         INC   BX                  

         CMP   BX,OUT1ENDB [SI]    ; 祭  䫠?
         JNE   ISR0420             ;,     ,
         MOV   BX,OUT1STRT [SI]    ; ய.                
ISR0420: MOV   OUT1SPTR [SI],BX    
         OR    AH,20H                                         

         CMP   OUT1EPTR [SI],BX    ; 祭  䫠?
         JE    ISR0480             ;,     ,
                                   ; ய.
         AND   AH,10111111B
ISR0480: OR    COM1LINE [SI],AH    

         ;ணࠬ 㯠  ᪮ ⥫,
         ;ᮥ񭭮  ᫥⥫쭮 
         ;ࠫ   ।  ⨯.
         ;। ⨯  ࠧ ᪮ ⥫,
         ;ᮥ񭭮  ᫥⥫쭮 .
         ;PORTY    PROC
         ;㧪   १ ࠢ饩 ணࠬ
PrtCnt:  MOV       CX, PortSysLen
         LEA       DX, PortSys
         CLD
REP      MOVSB     ;  

         ;Coxpa AX ࢠ ணࠬ
         PUSH      AX
         IN        AL, 0Ah    ; ன⢮
         CMP       AL, 0

         ; । ன⢠ ?
         POP       AX         ;B⠭ AX

         ; ३  ⥬ ࠡ稪
         MOV       DX, OFFSET Old_Port

         ;० ᥣ ᫥ 믮 । ⢨,
         ;  (20h)  ணࠬ 䥩.         
         MOV       AX, OFFSET  PortSys
         XCHG      AH, AL
         OUT       20h, AL
         IN        AL, 20h
         ;⢨   ⥬ ᮢ
         PUSH      BP
         MOV       BP,SP

         ;㧨  ਩ 襭  ,  
         ;ଠ쭮  .  ᥩ ᬥ,
         ;⭮⥫쭮  ,  2 ᫮ (
         ;PUSH AX  PUSH BP)
         MOV       WORD PTR 4[BP], OFFSET Old_Port
         POP       BP   ;Bocc⠭ BP
         
         ;᭮ ணࠬ 樠樨 뢠 INT 14h.
         PUSH  BX
	 PUSH  CX
	 PUSH  DX
	 PUSH  SI
	 PUSH  ES
         PUSH  DS                  ;࠭ ॣ  쭥
         MOV   BX,CS               ;権.
         MOV   DS,BX               ; ᥣ ⥪饩 樨.
         MOV   SI,DX               ;RS232 㪠  祭 ॣ SI.
         SHL   SI,1                ;㦠 ᫮.
         MOV   BX,40H              ;  .
         MOV   ES,BX               ;⥬ ॣ  ॣ .
         MOV   DX,RS232_BASE [SI]  ;㧪 RS232  ॣ .
         OR    DX,DX               ;   १⭮ .
         JE    ISR1000             ;室  ᥪ ࠡ.
         MOV   BL,AH               ;㧪   2- .
         SUB   BH,BH               ; 祭 ॣ BH.
         CMP   BX,MAXCMD           ; 祭 ॣ?
         JGE   Quit3               ;,  .
         SHL   BX,1                ; 祭,  ⨭ 樨.
         MOV   BX, OFFSET ROUTINES ;㧪 ⥬ ணࠬ  ॣ BX.

ISR1000: STI                       ; 뢠   
         PUSH  SI                  ;ਠ 1
         MOV   SI,0                
         JMP   SHORT ISR0100       ; 室   ஢.
ISR2000: STI                       ; 뢠.   
         PUSH  SI                  ;ਠ 2
         MOV   SI,2                

         ; ⨢஢ ⨥ ॣ.
ISR0100: PUSH  AX         ;࠭ 祭 ॣ஢.
	 PUSH  BX
	 PUSH  CX
	 PUSH  DX
	 PUSH  DS

         ;ணࠬ HALFSTAT.
         CLI                       ; 뢠
         MOV   AH,COM1LINE [SI]    
         MOV   BH,AH               
         AND   BH,01100001B        
         MOV   COM1LINE [SI],BH    
         STI                       ; 뢠.                     
       
         ; ⠭  㦥 ஢ 㯠
         ;  ࠫ  ᫥⥫쭮 .
         MOV   AX,40H              
         MOV   DS,AX               
         MOV   DX,WORD PTR [SI]    
	 MOV   AX,CS
         MOV   DS,AX               
         MOV   COMMBASE,DX         
ISR0120: MOV   DX,COMMBASE         
	 INC   DX
         INC   DX                  
         IN    AL,DX               
         TEST  AL,1                ; 祭 䫠 ॣ?

         JNZ   ISR0140             ;.  ,   室 
         CBW                       ; ஢.               
         MOV   CX, 8               ; 㦠 ᨢ.
         MOV   BX, AX
         MOV   BX, OFFSET ISRTABLE ;㧪   ॣ BX.

         JMP   ISR0120             ;᫨, 祭 ,   横
                                   ;  ࠧ .

        ; 楤 襭 ࠡ ࠡ稪  室
        ;  ᭮ ணࠬ.
ISR0140:         
         CLI                       ; 뢠.
         MOV AL,20H                                   
         OUT 20H,AL                          
         STI                       ; 뢠.

         ; 樠 ஡   . 
         ; ணࠬ COMMAND0 PROC  
         MOV   AH,AL               ;९ 祭  訩 ॣ.
         ADD   DX,03               ;  ࠢ ॣ஬ (xFB).
         MOV   AL,80H              ; 㦭 祭.
         OUT   DX,AL               ;㦥 = 1.

         ; 楤 ⠭ 㦭 祭, ॣ BX.    
         MOV   BL,AH               
         MOV   CL,04               
         ROL   BL,CL               
         AND   BX,0EH              
         MOV   BX,BAUDTABL [BX]    

         ; ⠭ 㦥  8250
         SUB   DX,2                ;MSB (xF9)
         MOV   AL,BH               
         OUT   DX,AL               
         DEC   DX                  ;LSB (xF8)
         MOV   AL,BL               
         OUT   DX,AL               

         ; 樠 㦥  ⠭  8250
         ADD   DX,3                ;REG  (xFB)
         MOV   AL,AH               
         AND   AL,00011111B        
         OUT   DX,AL               

         ; 襭 祭  8250  뢠.
         INC   DX                  ;REG (xFC)
         MOV   AL,00001101B        
         OUT   DX,AL               
         SUB   DX,3                ;REG (xF9)
         MOV   AL,00001111B        
         OUT   DX,AL               

         ; 楤 ⥭   ⢮  IRQ.
         DEC   DX                  ;REG (xF8)
         IN    AL,DX               
	 INC   DX
         INC   DX                  ;IIR (xFA)
         IN    AL,DX               
         ADD   DX,3                ;REG (xFD)
         IN    AL,DX               
         INC   DX                  ;MSR (xFE)
         IN    AL,DX               
         AND   AL,11110000B        
         MOV   COM1MODM [SI],AL    
         MOV   AL,60H              
         MOV   COM1LINE [SI],60H   

         ; 祭  樠樨  ᬥ饭  IRQ.
         MOV   BX,COM1STRT [SI]    ;뫪  ⥭ (IN)  .
         MOV   COM1SPTR [SI],BX    
         MOV   COM1EPTR [SI],BX    
         MOV   BX,OUT1STRT [SI]    ;뫪   (OUT)  .
         MOV   OUT1SPTR [SI],BX    
         MOV   OUT1EPTR [SI],BX    

         ;  ᯮ짮 IRQ  祭  8259 
         ;  ஫ 뢠.
         MOV   CX,SI               ;㧨 祭  .
         SHR   CL,1                ; 祭 0  1
         NEG   CL                  ; 0  -1 (-1 = COM2)
         ADD   CL,4                ;⠭  祭  3  4 (COM1=4)
         MOV   AH,0FEH             ;⠭ ⨯ ᪨.
         ROL   AH,CL               ;襭 祭  8259  뢠.
         CLI                       ; 뢠.              
         IN    AL,21H              ;㧪 㦭 ᪨ .     
         AND   AL,AH               ;  8259  ⥪饣 뢠.
         OUT   21H,AL              ;ந   騩 ஫.
         STI                       ; 뢠.               


         ;   2- ⮢  室 砫쭮 ⠭.
              
         ; 楤 ।  㯠  , । ⨥.
         ; ணࠬ COMMAND3 PROC  
         CLI                       ; ࢠ.   
         MOV   AL,COM1MODM [SI]    
         MOV   BL,AL               
         AND   AL,10110000B        
         MOV   COM1MODM [SI],AL    
         MOV   AH,COM1LINE [SI]    
         MOV   BH,AH               
         AND   BH,01100001B        
         MOV   COM1LINE [SI],BH    
         STI                       ; 뢠.             
         MOV   AL,BL               


         ; ணࠬ 砭 権  ⥪騬 ஫஬ .
         ; ணࠬ COMMAND1 PROC  
         MOV   BH,AL               ;࠭  ⥪饣 ॣ.

         ; ⪫祭 ᭮ 㯠  .
         ADD   DX,4                ;REG (xFC)
         IN    AL,DX
         OR    AL,03               
         OUT   DX,AL               ;MCR

         ;  ⥪ 権   ஬ 
         MOV   AH,80H

         ; 楤 砭    । ⨥, 
         ; ६ ⥪饩 樨.
         ; ணࠬ WAITDSR.  
         MOV   BL,RS232_TIM_OUT [SI] 
         SUB   CX,CX               ; 㣮 横.
WAIT100: MOV   AL,COM1MODM [SI]    
         AND   AL,30H                                    

         CMP   AL,30H              ; 祭 䫠 = 30.
         JE    WAIT200             ;, 祭 䫠 30,   室.
         MOV   CX,1024             ;⢮ ࠧ - 1024
         ;LOOP  WAIT100            ;  横 (. ).

         DEC   BL                           
         JNZ   WAIT100             ;᫨    ६.
         STC                                              

WAIT200: JC    COM0295             ;᫨ ⥫ ࠪ  
                                   ;   .
         MOV   BL,RS232_TIM_OUT [SI] 
         SUB   CX,CX               
COM0220: TEST  COM1LINE [SI],20H   
         JNZ   COM0230             ;. 室  믮 㦭
                                   ;樨.
         ;LOOP  COM0220            ;  65536 ࠧ (. ) 
         DEC   BL                  
         JNZ   COM0220             ;᫨  祭,   ⨣.
         JMP   SHORT COM0295       ; 祭 = 訡   ६.

COM0230: MOV   AL,BH               ; 祭 䫠 AL.
         CLI                       ; 뢠.
                                   
         TEST  COM1LINE [SI],40H   
         JNZ   COM0260             ;. 祭    40-.
                                  
         ; ᫨  ⥭  ,   浪.      
         MOV   BX,OUT1EPTR [SI]    
         MOV   [BX],AL             
         INC   BX                  
         CMP   BX,OUT1ENDB [SI]    
         JNE   COM0240             ;.   ன, 
                                   ;.
         MOV   BX,OUT1STRT [SI]    
COM0240: CMP   BX,OUT1SPTR [SI]    ;ࠢ 祭 .
         JNE   COM0250             ;,     ଠ쭮.
         OR    COM1LINE,20H        
COM0250: STI                       ; 뢠.
         MOV   OUT1EPTR [SI],BX    
         JMP   SHORT COM0290       ;室  믮  
                                   ;楤.
         ; 設 楤  㯠
         ;   .         
COM0260:
         AND   COM1LINE [SI],10111111B        ;STRT ISR.
         STI                       ; 뢠.
         SUB   DX,4                ;XMIT (xF8)
         OUT   DX,AL               

COM0290: ;ணࠬ HALFSTAT.
         CLI                       ; 뢠
         MOV   AH,COM1LINE [SI]    
         MOV   BH,AH               
         AND   BH,01100001B        
         MOV   COM1LINE [SI],BH    
         STI                       ; 뢠.                     

COM0295:
         ; 楤 אַ 㯠  .
         ; ணࠬ COMMAND2 PROC  
         MOV   BL,RS232_TIM_OUT [SI] 
	 SUB   CX,CX

COM0320: TEST  COM1LINE [SI],1     

         JNZ   COM0340             ;.  ७ .
         ;LOOP  COM0320            ; ७  樨.
                                   ;  65536 ࠧ (. )
         DEC   BL                  

         JNZ   COM0320             ;᫨ 㦭 祭 䫠,  ⨣.
         
         ;ணࠬ HALFSTAT.
         CLI                       ; 뢠
         MOV   AH,COM1LINE [SI]    
         MOV   BH,AH               
         AND   BH,01100001B        
         MOV   COM1LINE [SI],BH    
         STI                       ; 뢠.                     

         OR    AH,80H
         JMP   SHORT COM0390       ;室  砭  楤.

COM0340: ;ணࠬ COMMAND4 PROC  
         ; 樠 ࠡ 楤 뢠  ஬.
         CLI   ; 뢠.
         MOV   AH,COM1LINE [SI]    
         AND   COM1LINE [SI],61H   
         MOV   BX,COM1SPTR [SI]    
         CMP   BX,COM1EPTR [SI]    ;ࠢ,   祭  䫠?
         JE    COM0560             ;᫨ ,   室        
                                   ;ࠡ稪.
       
COM0540: ; 㧪 ⠭  ⥪騩  .
         MOV   AL,[BX]             
         INC   BX                  
         CMP   BX,COM1ENDB [SI]    ;⪫祭   ?
         JNE   COM0550             ;. 祭  ன, .
         MOV   BX,COM1STRT [SI]    
COM0550: MOV   COM1SPTR [SI],BX    
         CMP   BX,COM1EPTR [SI]    ;  祭 㯠,  㦭?  
         JNE   COM0580             ;. ,   室  ࠡ稪.

         ;  १뢠,   祭 䫠.
COM0560: AND   COM1LINE [SI],0FEH  
         AND   AH,0FEH             
         ; 室  믮  楤.
COM0580: STI   ; 뢠.

         ;ணࠬ HALFSTAT.
         CLI                       ; 뢠
         MOV   AH,COM1LINE [SI]    
         MOV   BH,AH               
         AND   BH,01100001B        
         MOV   COM1LINE [SI],BH    
         STI                       ; 뢠.                     

COM0390: AND   AH,10011110B


         ; ணࠬ ⨪  
         ; 訡  / 뢮.
         ; ணࠬ ISRLINE  PROC  
         ADD   DX,3                ;REG (xFD)
         IN    AL,DX               
         AND   AL,00011110B        
         OR    COM1LINE [SI],AL    


         ; ᪠ 楤 樠樨 㯠
         ;    ࠡ  . ᫨ ⠪ ᫥
         ;  ࠫ , ⨯ COM.x
         ; ணࠬ ISRMODEM PROC  
         ADD   DX,4                ; 䫠 ॣ   (xFE).
         IN    AL,DX               ;஢ઠ 㯠   .
         MOV   AH,AL               ;뫪   襣  訩 ॣ.
         AND   AH,11110000B        ;㧪 ᮮ⢥饩 ⮢ ᪨.
         OR    AL,COM1MODM [SI]    ;ୠ⨢ ⮢ ᪨.
         AND   AL,01001111B                                                                  
         OR    AL,AH                                                      
         MOV   COM1MODM [SI],AL    ; 設 㯠 ⥬  .   


         ;  ⠭⭮ ᪮ ⥫
         ;ᮥ񭭮, १ ᫥⥫ 
         ;ࠫ 
         ;72h - ⥫ ⠭⭮ ⨯ (७᭮
         ;ZIP-Drive, ணࠬ  १ 奬  ..)
         PUSH      AX
         POP       BX
         MOV       AX, 77h
         IN        AX, 77h
         OUT       77h, AX

         ; ⠭⭮ (⭮) ⨯ ᪮ ⥫.
FreePort:
         MOV       DH, 0077h   ;77h - ⥫ ⠭⭮
                               ;(⭮) ⨯.
         MOV       BX, 1       ;ਯ .
         MOV       CX, 36      ; 36 .       

         ;㧪 ⠭ ࠬ஢ 䠩 ⥬ FAT 
         ;⮢ ᨣ  ன⢮
         MOV       DX, OFFSET SizePrt        ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.
         MOV       CX, 68        ;᫮   ᨢ .
         LEA       DX, SizeColn1 ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.
         MOV       CX, 68        ;᫮   ᨢ .
         LEA       DX, SizeColn2 ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.
         MOV       CX, 68        ;᫮   ᨢ .
         LEA       DX, SizeColn3 ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.
         MOV       CX, 68        ;᫮   ᨢ .
         LEA       DX, SizeColn4 ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.
         MOV       CX, 68        ;᫮   ᨢ .
         LEA       DX, SizeColn5 ;㧪 ࠬ஢.
         XCHG      DH, DL        ;५ 祭   ॣ.
         IN        AX, DX        ;뫪 ᨣ  ன⢮.
         OUT       DX, AX        ;祭 ⢥ ᨣ  ன⢠.

         ;㧨  㯠  
         ;.                  
         POP       AX  ;᢮  ॣ
         PUSH      CX  ;⢮ 稪 ⮢
         POP       BX  ;᢮ 訩 ॣ
         ADD       AL,00
         OR        Word Ptr [DI-15], 3Ch
         NOP       ; , 
                   ;஢ન ⮢


         ;楤 㯠   .
         ADD       CH, Byte Ptr Atd4
         DEC       CX
         DEC       AX
         INC       BX
         ADD       Byte Ptr [BP+SI],AL
         ADD       Word Ptr [BX+DI],AX
         ADD       Byte Ptr [BP+SI],AL
         LOOPNE    CntrDTk
CntrDTk: INC       AX
         OR        SI,AX
         OR        Word Ptr [BX+SI],AX
         ADC       AL,Byte Ptr [BX+SI]
         ADD       AL,Byte Ptr [BX+SI]
         ADD       Byte Ptr [BX+SI],AL
         ADD       Byte Ptr [BX+SI],AL
         ADD       Byte Ptr [BX+SI],AL
         ADD       Byte Ptr [BX+SI],AL
         ADD       Byte Ptr [BX+SI],AL
         SUB       Word Ptr [BP+SI],CX
         ADC       AL,2Fh
         PUSH      ES
         PUSH      DX
         INC       CX
         PUSH      BX
         INC       BX
         INC       DX
         DEC       CX
         DEC       DI
         PUSH      BX
         AND       Byte Ptr [BX+SI],AH
         AND       Byte Ptr [BP+41],AL
         PUSH      SP
         XOR       Word Ptr [BP+SI],SI
         AND       Byte Ptr [BX+SI],AH
         AND       Byte Ptr [BP+DI],DH
         LEA       DX, BytClast2
         MOV       SS,CX
         MOV       SP,7BFCh
         PUSH      SS
         POP       ES
         MOV       BP,0078
         LDS       SI,DWord Ptr [BP+00]
         PUSH      DS
         PUSH      SI
         PUSH      SS
         PUSH      BP
         MOV       DI,0522
         MOV       Word Ptr [BP+00],DI
         MOV       Word Ptr [BP+02],CX

         ;     ன⢠
PortKech:
         POP       ES          ;⠭ ࠭
         POP       AX          ;ॣ
         ADD       AL, '0'     ;८ࠧ  ᨬ 
         MOV       AH, 4Eh     ;ਡ  來 㣮
         MOV       ES:1690, AX 
         MOV       AL,0Eh      ; EOI
         PUSH      AX
           
         ;Pa 뢠  ஫ ᪮ 
         IN        AL, 21h     ; ⥪ 
         AND       AL, 0FEh    ; 롮筮  0
         OUT       0Ah, AL     ;᫠  ॣ ᪨


         ;஢ ⠭  
         ;⠭묨 ࠬࠬ 䠩
         ;⥬ FAT
         IN        AX, 0Ah
         MOV       CX, 0512  ; 
         MOV       DX, OFFSET SizePrt  ;᫮ ஢  ஦
         MOV       Byte Ptr [BX+SI],00
         XLAT      ;࠭ ⮢
         CLD
REPE     CMPSB     ;ࠢ
    
         ;ઠ ࠬ஢ ⠭ 
         IN        AX, 0Ah  
         MOV       AX,8     ;᫮ ⮢  
         MOV       CX,0512  ; 
         MOV       DX, OFFSET SizePrt ;᫮ ஢  ஦
         CLD       ;ࠢ 
REPE     CMPSB     ;ࠢ

          ;楤 ।⥫쭮 樠樨
          ;ࠡ ॣ஢
Regs2:    PUSH      ES
          POP       DS
          MOV       AX, 0008h
          MOV       BP, 7C00h
          MOV       Byte Ptr [DI-02],0Fh
          MOV       CX, 0Fh  ; 16 ⮢
          CLD       ;஢ ⠭
REP       MOVSB     ;䨪஢

          ;஢  ०- 
          ;ᥪ ⥫ Boot Master.
          ;,   ଠ  ᪥
          ; 㯭  樮
          ;⥬.
          LEA       BX, BadSector2
          IN        AX, 0Ah
          CMP       AX, 255
          ;᫨,  ᥪ 䨧᪮ ᪠
          ;०,  㤥  ⮫쪮 ,
          ; ᥪ  㯭   ०.
          JGE       DTk3

          ;᫨,  ᥪ ᪮ ⥫
          ;०,  㤥  ⮫쪮 ,
          ; ᥪ  㯭   ०.
          ;⮢  ⥭ ⥫  ࢮ
          ;ᥪ   ᠬ ᫥ (ந쭮
          ; )
          MOV       AX, CX
          CWD       ;६ ࠫ 㯠
          SUB       BX, 3Ah
          MOV       AX,DWord Ptr [7C1Ch]
          CMP       AX,DWord Ptr [0008h]
          MOV       DL,Byte Ptr [BX-04]
          OR        DL,02
          MOV       Byte Ptr [BP+02],DL
          ADD       BL,10

          ; ⥭ ந쭮 ⢠
          ;⮢  孮 ⥫
          XOR       CX, CX
          INC       Byte Ptr Dpt4
          MOV       AL, Byte Ptr [BP+10]
          CBW       ; ᭮ 
          MUL       BP
          ADC       DX, CX
          PUSH      AX
          MUL       SI
          ADD       AX, BX
          DEC       AX
          DIV       BX
          POP       AX
          MOV       DI, SI

         ;室  ࠭  ⨢
         ;  ஬.
         CMP       Byte Ptr Dpt4, CH
         PUSH      AX
         MOV       CL,0Bh
         MOV       SI,7D08h
REPZ     CMPSB
         POP       AX
         DEC       SI
         ADD       DI,+20
         CMP       DI, BX
         DEC       Byte Ptr Dpt4



           ;⮢  ⥭ ⥫  ࢮ
           ;ᥪ   ᠬ ᫥ (ந쭮
           ; )
TwoRead:   MOV       AX,CX
           CWD       ;६ ࠫ 㯠
           SUB       BX, 3Ah
           MOV       AX,DWord Ptr [7C1Ch]
DTk1:      CMP       AX,DWord Ptr [0008h]
           MOV       DL,Byte Ptr [BX-04]
           JNZ       DTk2
           OR        DL,02
           MOV       Byte Ptr [BP+02],DL
DTk2:      ADD       BL,10
                              

           ; ⥭ ந쭮 ⢠
           ;⮢  孮 ⥫
DTk3:      XOR       CX,CX
           INC       Byte Ptr Dpt4
           MOV       AL, Byte Ptr [BP+10]
           CBW       ; ᭮ 
           MUL       Word Ptr [BP+16]
           ADD       AX,Word Ptr [BP+1Ch]
           ADC       DX,Word Ptr [BP+1Eh]
           ADD       AX,Word Ptr [BP+0Eh]
           ADC       DX,CX
           MOV       SI,Word Ptr [BP+11]
           PUSH      AX
           MOV       Word Ptr [BP-04],AX
           MOV       Word Ptr [BP-02],DX
           MOV       AX,0020
           MUL       SI
           MOV       BX,Word Ptr [BP+0B]
           ADD       AX,BX
           DEC       AX
           ;.       ;DIV       BX
           ADD       Word Ptr [BP-04],AX
           ADC       Word Ptr [BP-02],CX
           POP       AX
DTk5:      MOV       DI,0700



         ; ᮤন    
         ;⨢   業樨
         MOV       CX, 512 ; 
         MOV       AX, SEG BytClast2                             
         MOV       ES, AX
         MOV       SI, OFFSET BytClast2
         MOV       DI, OFFSET BytClast2
REPE     CMPSB     ;業 ⢮

         ;⢮ ⠭ ଠ, 
         ; ᫥ ⢨  ஭
         ;짮⥫ (⥭, , ଠ஢,
         ;᪠஢  稥 訡 㯠  ..)
         MOV       CX, BytClast2Len
         MOV       AX, DS  ;Hacpo ᥣ
         MOV       ES, AX  ;pecp   a
         MOV       SI, OFFSET BytClast2
         LEA       DI, BytClast2 ;㧨 ᮤন
REP      MOVSB     ;⠭    㯠

         ;஢ ⠭   
         ;⨢   㦤 짮⥫
         OUT       0Ah, AX
         MOV       AX,8     ;᫮ ⮢  
         MOV       CX,0512  ; 
         MOV       DX, OFFSET SizePrt ;᫮ ஢  ஦
         CLD
REPE     CMPSB ;ࠢ

         ;࠭ ⤥쭮 
         MOV       CX, 01
         LEA       AX, Bytes2
         SBB       AL, 00
         XLAT
REP      STOSB

         ;  
         MOV       CX, 1024
         LEA       BX, BytClast2
         XLAT
         CLD
REP      STOSB                 
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         POP       AX

         ;ઠ ࠬ஢ ⠭ 
         IN        AX, 0Ah  
         MOV       AX, 8     ;᫮ ⮢  
         MOV       CX, 0512  ; 
         MOV       DX, OFFSET SizePrt ;᫮ ஢  ஦
         CLD                
REP      SCASB     ;Cpa 

         ; ᮤন    
         ;⨢   業樨
         MOV       CX, 512 ; 
         MOV       AX, SEG BytClast2                             
         MOV       ES, AX
         MOV       SI, OFFSET BytClast2
         MOV       DI, OFFSET BytClast2
REPE     CMPSB     ;業 ⢮

         ;⢮ ⠭ ଠ, 
         ; ᫥ ⢨  ஭
         ;짮⥫ (⥭, , ଠ஢,
         ;᪠஢  稥 訡 㯠  ..)
         MOV       CX, BytClast2Len
         MOV       AX, DS  ;Hacpo ᥣ
         MOV       ES, AX  ;pecp   a
         MOV       SI, OFFSET BytClast2
         LEA       DI, BytClast2 ;㧨 ᮤন
REP      MOVSB     ;⠭    㯠

         ;஢ ⠭   
         ;⨢   㦤 짮⥫
         OUT       0Ah, AX
         MOV       AX, 8     ;᫮ ⮢  
         MOV       CX, 0512  ; 
         MOV       DX, OFFSET SizePrt ;᫮ ஢  ஦
         CLD                
REP      SCASB     ;Cpa 

         ;९ ࠬ  ᫥ 権
         PUSH      AX
         POP       BX
         MOV       AL, 0232
         MOV       DH, 0032
         MOV       CX, 08
         MOV       Byte Ptr [SI+00],00
REP      STOSB

         DEC       SP
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         PUSH      AX
         PUSH      BX
         PUSH      DX
         POP       CX
         ADD       AH,BH                      
REP      SCASB     ;Cpa 
         POP       AX

         ;࠭   ஦ ᪮ ⥫
         MOV       WORD PTR Path2, DX
         PUSHF
         PUSH      AX
         PUSH      BX
         ;;;       DB        240, 1     ;⬥. 
         SBB       AX,BP

         MOV       AL,08    ;᫮   .
         SBB       BX,SP
         MOV       CX,0512  ;   
         MOV       DX, OFFSET PortSys
         XLAT      ;࠭ ⮢.
         CLD                ;䨪஢ ⠭  , 
         REP       STOSW    ;᫥饩 ࠡ⪨.               
         ;PORTY    ENDP
           
         ;३  믮 㭪権 饣 ⥭,  ᨬ
         ; ⨯ ⥫.
         ;믮 楤 ஢ન ⥫  ⠥.
ReadPrt:
          ADD       CH, Byte Ptr Atd4
          DEC       CX
          DEC       AX
          INC       BX
          ADD       Byte Ptr [BP+SI],AL
          ADD       Word Ptr [BX+DI],AX
          ADD       Byte Ptr [BP+SI],AL
          LOOPNE    CntrTk2
CntrTk2:  INC       AX
          OR        SI,AX
          OR        Word Ptr [BX+SI],AX
          ADC       AL,Byte Ptr [BX+SI]
          ADD       AL,Byte Ptr [BX+SI]
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          SUB       Word Ptr [BP+SI],CX
          ADC       AL,2Fh
          INC       CX
          INC       BX
          INC       DX
          DEC       CX
          DEC       DI

          PUSH      SS
          POP       ES          
          MOV       SP,7BFCh
          MOV       BP,0078
          LDS       SI,DWord Ptr [BP+00]
          CLD
REP       CMPSB     ;ࠢ

          PUSH      DS
          PUSH      SI
          PUSH      SS
          PUSH      BP
          MOV       DI,0522
          MOV       Word Ptr [BP+00],DI
          MOV       Word Ptr [BP+02],CX
          LEA       DX, BytClast2
          CLD
REP       CMPSB     ;ࠢ

          ;楤 ।⥫쭮 樠樨
          ;ࠡ ॣ஢
          PUSH      ES
          POP       DS
          MOV       AX, 0008h
          MOV       BP, 7C00h
          MOV       Byte Ptr [DI-02],0Fh
          MOV       CX, 0Fh  ; 16 ⮢
          CLD       ;஢ ⠭
REP       MOVSB     ;䨪஢


          ;஢ - 짮 㯮
          ; ᪮ ⥫   楤
          ;IOS-樠樨 ணࠬ 뢠 INT 14h
          MOV       AX, Word Ptr Atd6 
          MOV       Byte Ptr Dpt4, AL
          XOR       DX, DX
          DIV       SI
          INC       DX
          ;O⬥.     ;DIV       Word Ptr [BP+1Ah]
          MOV       DH, DL
          MOV       CH, AL
          MOV       AH, 02
          OR        CL, AH
          MOV       AX, 0208
          MOV       Byte Ptr Dpt4, 0Eh
          INC       AX
          INC       DX
          ADD       BX,Word Ptr [BP+0Bh]
          DEC       CX
          PUSH      DX
          PUSH      AX
          PUSH      DX
          XOR       AL, AL  
          CMP       AX, DX 
          TEST      AX, DX 
          OUT       13h, AX
          IN        AX, DX 
          MOV       AX, 0512h
          OUT       DX, AX         
          IN        AX, DX 
          CMP       DX, 0Ah
          ;᫨,  ଠ쭮,    ணࠬ
          ;᫨,  ⠥ ଠ쭮.
          JE        DTk20       ;᫨ 㦥 訡 /뢮.
          JNE       Quit3       ;᫨, 訡 㯠  㦥.


          ;᫨ ,  뢥 ਩ ᮮ饭 
          ;஢ ⥫ ஢ । ⨥
          ;ணࠬ
DTk20:    CLI       ; 뢠

          ;ந ᥣ ॣ ES 
          ; ࠭ .
          MOV       AX, 0B800h
          MOV       ES, AX
          ;뢥  ᯫ ᨬ,  ᮮ⢥饩 楤
          ;믮  IOS,   뢠 BIOS  DOS
          MOV       AH, 14h     ;  ᨭ
          MOV       AL, '!'     ;뢮 ᨣ ᨬ
          MOV       ES:0, AX    ;ࢠ   ࠭
          MOV       ES:2, AX    ; 
          MOV       ES:4, AX    ; 
          MOV       AH, 75h     ;⮢  
          MOV       AL,0        ;K 宫⮣ ᨣ
          MOV       BX, (160 * 24) + (77 * 2) ; 樨   
          MOV       ES:0[BX], AX
          MOV       ES:2[BX], AX
          MOV       ES:4[BX], AX
          ;뢥c  ᯫ ⥪⮢ ப,  ᮮ⢥饩
          ;楤 믮  IOS,   뢠
          ;BIOS  DOS
          MOV       AX, 0B800h
          MOV       ES, AX
          MOV       SI, OFFSET Err_Info      ; ப
          MOV       DI, 22 * 80 * 1 + 1 * 2  ;B  ࠭
          MOV       CX, Err_InfoLen          ; ப
REP       MOVSB     ;䨪஢ ।   樨


          ;ந ᭮ ॣ  ᥣ .
          PUSH      ES
          POP       DS
          ;樠 ࠭  ⨢
          ;  ஬
DTk11:    MOV       SI,7D81h
          MOV       DI,Word Ptr [DI+1Ah]
          LEA       AX,Word Ptr [DI-02]
          MOV       CL,Byte Ptr [BP+0Dh]
          MUL       CX
          ADD       AX,Word Ptr [BP-04]
          ADC       DX,Word Ptr [BP-02]
          MOV       CL,04


           ;Oco ॣ
Quit3:     POP       AX
           POP       BX
           POP       CX
           POP       DX
           STI       ; 뢠.
           RET       ; ࠡ稪.       

ReadPort   ENDP


; 
IntVect2   db      20, 0    ;  맮 INT 14h
; ⥬ 㭪権 ࠡ ணࠬ INT 14h
; ᫥⥫묨  ࠫ묨 ⠬
PortDrv0   db      0Ch, 0   ;  ᫥⥫쭮  COM1
PortDrv1   db      0Bh, 0   ;  ᫥⥫쭮  COM2
PortDrv2   db      0Ah, 0   ;  ᫥⥫쭮  COM3
PortDrv3   db      0Ah, 0   ;  ᫥⥫쭮  COM4
PortDrv4   db      0Fh, 0   ;  ࠫ  LPT1
PortDrv5   db      0Dh, 0   ;  ࠫ  LPT2
PortDrv6   db      0Ah, 0   ;  ᫥⥫쭮  USB1
PortDrv7   db      0Ah, 0   ;  ᫥⥫쭮  USB2


BadSector2 db      255, 255, 255, 255 ; ਧ ⠥
                                      ;ᥪ 䨧᪮ ᪠.
Atd4       db      0           ;祩  䨪樨 .
Atd6       dw      0           ;祩  䨪樨  ⮢.
Dpt4       db      1           ;᪠ ⮣ .

Bytes2     db      00000000B   ;  ⤥쭮 .

BytClast2  db      1024 Dup (?)  ;  ,  ࠧ
                                 ;⤥쭮   ᪥.

BytClast2Len  Equ  $ - BytClast2 ; 뤥  䨪樨.

Path2      db      20          ;᫮ ஢   ஦. 


;C⥬ ணࠬ 䨪, ॣ ࠡ ⥫
;ᮥ񭭮  ᫥⥫쭮  ࠫ .
PortSys    db    62, 79,  38, 139, 30, 114, 46, 255 
           db    183, 32, 02, 144, 14, 232, 77, 152 
           db    131, 196, 04, 184, 01, 46, 94, 95 
           db    201, 195, 46, 200, 172, 46, 46, 86 
           db    139, 118, 04, 139, 198, 136, 70, 250 
           db    138, 70, 08, 136, 70,  253, 138, 70 
           db    136, 70, 254, 50, 192, 136, 70, 251 
           db    136, 70, 252, 136, 70, 255, 199, 70 
           db    244, 04, 46, 199, 70,  246, 09, 46 
           db    199, 70, 248, 01, 46, 30, 255, 118 
           db    06,  141, 70, 164, 22, 80, 144, 14 
           db    232, 205, 220, 131, 196, 08, 139, 198 
           db    72,  116, 11, 45,  03, 46, 116, 38 
           db    72,  72,  116, 52, 235, 81, 160, 202 
           db    16,  152, 139, 240, 03, 240, 138, 66 
           db    242, 136, 70, 255, 142, 06, 68, 79 
           db    38,  255, 54, 122, 46,  38, 255, 54 
           db    120, 46,  106, 06, 235, 34, 142, 06 
           db    68, 79, 38, 255, 54, 122, 46, 38
           db    255, 54, 120, 46, 106, 03, 235, 16 
           db    142, 06, 68, 79, 38, 255, 54, 122 
           db    46, 38, 255, 54, 120, 46, 106, 05 
           db    106, 01, 141, 70, 250, 22, 80, 154 
           db    04, 177, 225, 75, 131, 196, 12, 141 
           db    134, 84, 255, 22, 80, 144, 14, 232 
           db    62, 236, 131, 196, 04, 142, 06, 68 
           db    79, 38, 255, 54,  122, 46, 38, 255 
           db    54, 120, 46,  141, 70, 164, 22, 80 
           db    154, 202, 184, 225, 75, 131, 196, 04 
           db    64, 80, 106, 01, 141, 70, 164, 22 
           db    80, 154, 04, 177, 225, 75, 131, 196 
           db    12, 142, 06, 68, 79, 38,  255, 54 
PortSysLen Equ   $ - PortSys  ; 뤥  䨪樨


;, , ᥪ, ࠧ ᥪ
;᪮ ⥫.
SizePrt   db     40,0,1,2
          db     40,0,2,2
          db     40,0,3,2
          db     40,0,4,2
          db     40,0,5,2
          db     40,0,6,2
          db     40,0,7,2
          db     40,0,8,2
          db     40,0,9,2
SizePrtLen Equ   $ - SizePrt

key2      dw     9999h       ;

;⥫ ࠬ 楫஢, ,
;ᥪ஢  ࠧ ᥪ஢ ᪮ ⥫.
SizeColn1 db     1,0,1,2     ;2 -  ᥪ - 512 .
          db     1,0,2,2
          db     1,0,3,2
          db     1,0,4,2
          db     1,0,5,2
          db     1,0,6,2
          db     1,0,7,2
          db     1,0,8,2
          db     1,0,9,2 
          db     1,0,10,2
          db     1,0,11,2
          db     1,0,12,2
          db     1,0,13,2
          db     1,0,14,2
          db     1,0,15,2
          db     1,0,16,2
          db     1,0,17,2

;, , ᥪ, ࠧ ᥪ
SizeColn2 db     2,0,1,1
          db     2,0,2,1
          db     2,0,3,1
          db     2,0,4,1
          db     2,0,5,1
          db     2,0,6,1
          db     2,0,7,1
          db     2,0,8,1
          db     2,0,9,1
          db     2,0,10,1
          db     2,0,11,1
          db     2,0,12,1
          db     2,0,13,1
          db     2,0,14,1
          db     2,0,15,1
          db     2,0,16,1
          db     2,0,17,1

;, , ᥪ, ࠧ ᥪ
SizeColn3 db     3,0,1,2
          db     3,0,2,2
          db     3,0,3,2
          db     3,0,4,2
          db     3,0,5,2
          db     3,0,6,2
          db     3,0,7,2
          db     3,0,8,2
          db     3,0,9,2
          db     3,0,10,2
          db     3,0,11,2
          db     3,0,12,2
          db     3,0,13,2
          db     3,0,14,2
          db     3,0,15,2
          db     3,0,16,2
          db     3,0,17,2

;, , ᥪ, ࠧ ᥪ
SizeColn4 db     4,0,1,2
          db     4,0,2,2
          db     4,0,3,2
          db     4,0,4,2
          db     4,0,5,2
          db     4,0,6,2
          db     4,0,7,2
          db     4,0,8,2
          db     4,0,9,2
          db     4,0,10,2
          db     4,0,11,2
          db     4,0,12,2
          db     4,0,13,2
          db     4,0,14,2
          db     4,0,15,2
          db     4,0,16,2
          db     4,0,17,2

;, , ᥪ, ࠧ ᥪ
SizeColn5 db     5,0,1,2
          db     5,0,2,2
          db     5,0,3,2
          db     5,0,4,2
          db     5,0,5,2
          db     5,0,6,2
          db     5,0,7,2
          db     5,0,8,2
          db     5,0,9,2
          db     5,0,10,2
          db     5,0,11,2
          db     5,0,12,2
          db     5,0,13,2
          db     5,0,14,2
          db     5,0,15,2
          db     5,0,16,2
          db     5,0,17,2


Newst2    db     13,10         ;Pa , ࠧ ࠬ஢.
Newst2Len equ    $ - Newst2

Old_Port  dd     0             ; ᫮  , ⥬
                               ;ࠡ稪 ᪮ ⥫.

Err_Info  db     'E', 8Ch, 'R', 8Ch, 'R', 8Ch, 'O', 8Ch
          db     'R', 8Ch, 'S', 8Ch, '!'
Err_InfoLen = $ - Err_Info

BAUDTABL LABEL WORD
         DW    1047                ;110 ⮢ ᬥ饭 㪠⥫.
         DW    768                 ;150 ⮢ ᬥ饭 㪠⥫.
         DW    384                 ;300 ⮢ ᬥ饭 㪠⥫.
         DW    192                 ;600 ⮢ ᬥ饭 㪠⥫.
         DW    96                  ;1200 ⮢ ᬥ饭 㪠⥫.
         DW    48                  ;2400 ⮢ ᬥ饭 㪠⥫.
         DW    24                  ;4800 ⮢ ᬥ饭 㪠⥫.
         DW    12                  ;9600 ⮢ ᬥ饭 㪠⥫.

ROUTINES LABEL WORD
Option0  DW    0     ;樠 ࢮ  㯠.
Option1  DW    0     ;࠭ 㯠    ன.  
Option2  DW    0     ;祩    樨 㯠  .
Option3  DW    0     ;  ᫮  2- ⮢.
Option4  dW    0     ;஢ ࠡ⠭   .
MAXCMD        DW    ($-ROUTINES)/2 ;ᨬ쭮 ᫮   ⮬.
RS232_BASE    EQU WORD PTR ES:0    ; 맮 ࠡ祣 ᥣ 40.
RS232_TIM_OUT EQU BYTE PTR ES:07CH ;RS232 ६ 뢮   .


COM1SPTR     DW   0     ;砫  1
COM1BUF      DW   0            
COM2SPTR     DW   0     ;砫  2
COM2BUF      DW   0     
COM1EPTR     DW   0     ; 㯠   1
COM2EPTR     DW   0     ; 㯠   2
COM1STRT     DW   0     ;砫   COM1
COM2STRT     DW   0     ;砫   COM2
COM1ENDB     DW   0     ;   COM1
COM1END      DW   0    
COM2ENDB     DW   0     ;   COM2
COM2END      DW   0    
OUT1SPTR     DW   0     ;砫 뢮    1
OUT1BUF      DW   0     
OUT2SPTR     DW   0     ;砫 뢮    2
OUT2BUF      DW   0     
OUT1EPTR     DW   0     ; 뢮    1
OUT2EPTR     DW   0     ; 뢮    2
OUT1STRT     DW   0     ;砫  뢮  COM1
OUT2STRT     DW   0     ;砫  뢮  COM2
OUT1ENDB     DW   0     ;  뢮  COM2
OUT1END      DW   0    
OUT2ENDB     DW   0     ;  뢮  COM2
OUT2END      DW   0    
                     
COM1LINE DB    60H                 ; 㯠   COM1
COM1MODM DB    0                   ;    COM1
COM2LINE DB    60H                 ; 㯠   COM2
COM2MODM DB    0                   ;     COM2
COMMBASE DW    0                   ;砫 樨  / 뢮 
                                   ;᫥⥫ ⮢, ⨯ COM.

; 뢠 室 㯠  COM1  COM2
ISRTABLE LABEL WORD         ;騥  樨 뢠.   
         ISRMODEM  DW  0    ; 㯠   (PRI 4).
         ISRXMIT   DW  0    ; 㯠 (PRI 3).
         ISRRECV   DW  0    ; 㯠 (PRI 2).
         ISRLINE   DW  0    ; 㯠 (PRI 1).

Intr14hLen   EQU   $ - Intr14h
; ணࠬ ࠡ稪 INT 14h


;⥬ ணࠬ INT 15h
Intr15h:
MOUSE     PROC    
          JMP     MouseInit ;室  ᥪ 樠樨
IntVect15 dw      0        ;祪  ਯ

MouseInit: CLI     ; 뢠
           PUSHF   ;Coxpa a   IRET
          ;楤 IOS 樠樨 ணࠬ 뢠 15
          MOV     DX,1E15h
          MOV     SP,08  
          MOV     WORD PTR [DI-08],CX  
          MOV     WORD PTR [SI+08],BX

          ;,  ணࠬ  ।
          ;祭 䫠  ॣ஢
          ;AH  AX  ஬, 
          ;ᯮ짮   .
          LEA     DX, IntVect15
          TEST    DX, 15h
          INC     DX

          ;। ⥬,   ᯮ
          ;祭  䫠 
          ;ॣ஢ AH  AX, ந ࡮
          ; 뢠 INT 15h   
          ; ᮮ⢥騩  ᥣ⭮
          ; ⨢ .
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BL, 15h   ; 뢠 ᨬ  
          CLD               ; 
REP       STOSB             ;
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 
          
          ; 楤 ᯮ 㭪樨
          ;ࠡ  ஫஬ ⥬  
          ;짮⥫ (맮 ⮩ ⥬ ணࠬ
          ;  ⠡ १ BIOS, 室饣
          ;   ⨢ , १
          ;뢠 INT 15h)
          PUSH    AX  ;⢮ ॣ AX
                      ; 쭥 ⢨
          POP     BX  ; BX ⠢
                      ;᢮  䨪樨

          ;   䫠 AH  AX,
          ; ⢨ ᭮ 䨪樨 ࠢ饩
          ;ணࠬ 
          AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    
          
          ;।  㭪 ⥬ ணࠬ
          ;뫠 ॡ 짮⥫,   맮
          ;뢠 INT 15h 
          CMP      AH, 00h
          JE       MouseInit0
          CMP      AH, 01h
          JE       MouseInit1
          CMP      AH, 02h
          JE       MouseInit2
          CMP      AH, 03h
          JE       MouseInit3
          CMP      AH, 04h
          JE       MouseInit4
          CMP      AH, 05h
          JE       MouseInit5
          CMP      AH, 06h
          JE       MouseInit6
          JMP      MouseInit0

MouseInit0: CALL     MouseFun0
MouseInit1: CALL     MouseFun1
MouseInit2: CALL     MouseFun2
MouseInit3: CALL     MouseFun3
MouseInit4: CALL     MouseFun4
MouseInit5: CALL     MouseFun5
MouseInit6: CALL     MouseFun6

MOUSE     ENDP


            ;㭪樨 ࠡ   ॠ㥬
            ;⥬ ணࠬ INT 15h
MOUSEFUN0   PROC      
            CLI       ; 뢠
            CMP       AH,4Fh
            JZ        Mous1
            ADD       Byte Ptr [BP+16],BL
            LEA       SI,Word Ptr [BP+SI]
            NEG       DI
            MOV       AL,Byte Ptr [BP+SI]
            PUSH      CS
            IN        AX,DX
            INC       CX
            DEC       DI
            WAIT
            INC       DX
            INC       DI
            ADD       Byte Ptr [BX+SI],AL
            ADD       Byte Ptr [BX+SI],AL
            AND       Word Ptr [BP+DI],AX
            ROL       Byte Ptr [BX+DI],01
            ADD       Byte Ptr [BX+SI],BL
            XOR       BX,DI
            SBB       Byte Ptr [BP+DI+0001], BL
            ADD       Word Ptr [BX+SI],AX
            ADD       Word Ptr [BX+DI],AX
            ADD       Word Ptr [BP+DI+3Ah], AX
            POP       SP
            PUSH      DI
            DEC       CX
            DEC       SI
            DEC       BP
            INC       BP
            POP       SP
            PUSH      BX
            DEC       BP
            INC       CX
            PUSH      DX
            PUSH      SP
            INC       SP
            PUSH      DX
            PUSH      SI
            INC       BP
            POP       AX
            INC       BP
            ADD       Byte Ptr [BP+DI],DH
            MOV       Byte Ptr [BP+DI],DH
            DEC       Word Ptr [BX]
            MOV       Word Ptr SS:[3720],BX
            SHL       BX,1
            RCR       Word Ptr [BP+SI-04],1
            SBB       Byte Ptr [SI+3686],AL
            MOV       Word Ptr DS:[534Dh], BX
            INC       CX
            PUSH      DX
            PUSH      SP
            INC       SP
            PUSH      DX
            PUSH      SI
            SBB       Byte Ptr [BX-6600], DL
            MOV       Byte Ptr [BP+DI],AH
            ;db       240      ;LOCK
            XCHG      AX,DI
            ADD       CH,Byte Ptr [DI+16]
            ADD       Word Ptr [BP+16],BP
            db        111      ;OUTSW
            ADD       Word Ptr [DI+16],BP
            db        109      ;INSW
            PUSH      SS
            ADD       DI,DI

Mous1:      CMP       AL,53
            JNE       Mous2
            PUSH      AX
            PUSH      ES
            MOV       AX,0040
            MOV       ES,AX
            MOV       AL,Byte Ptr ES:[0017]
            TEST      AL,08
            JZ        Mous2
            TEST      AL,04

Mous2:      POP       ES
            POP       AX
            JZ        Mous3
            CMP       Byte Ptr CS:[167Eh], 00
            JNZ       Mous4
            CMP       AH,88
            JZ        Mous4
            CMP       AX,0229h
            JZ        Mous5
            CMP       AH,87
            JZ        Mous3
            JMP       Mous6                  

Mous3:      XOR       BX,BX
            XOR       AX,AX
Mous4:      CMP       AH,4Fh
            JNZ       Mous6
            CMP       AL,01
            JNZ       Mous7
Mous5:      INC       DI
            ADD       BH,BH
            DEC       Word Ptr [SI+02]
            INC       DI
            STD
            ADD       AX,9999h
            DEC       AX
            PUSH      ES
            DEC       DI
            MOV       AX,9999h

Mous6:      NEG       DI
            AND       BH,BH
            INC       Word Ptr [BX+SI]
            MOV       CX, 0099h
            ADD       Byte Ptr [BX+SI],AL
            ADD       Byte Ptr [BX+SI],AL
            ;db        240      ;LOCK
REP         MOVSB

            OUT       DX,AL
            ADD       AL,DH
            ADD       Byte Ptr [BX+SI],AL
            ADD       Word Ptr [BP+SI],AX
            ADD       Byte Ptr [BX+SI],AL
            ADD       AL,Byte Ptr [BP+SI]
            ADD       Byte Ptr [BX+SI],AL
            ADD       AX,Word Ptr [BP+SI]
            ADD       Byte Ptr [BX+SI],AL
            ADD       AL,02
            ADD       Byte Ptr [BX+SI],AL
            ADD       AX,0002h
            ADD       Byte Ptr [BX+SI],DL
REP         STOSB

            ADD       Byte Ptr [BX+SI+00],DH
            ADD       Byte Ptr [BP+SI],AL
            AND       BH,DL
            POP       SI
            ADD       Byte Ptr [BX+SI+00],DH
            ADC       Byte Ptr [BX+SI],AL
            XOR       Byte Ptr [BP+SI],CH
            ADD       Byte Ptr [BX+SI],AL

            CMP       AL,53
            JNZ       Mous8
            PUSH      AX
            PUSH      DS
            SUB       AX,AX
            MOV       DS,AX
            MOV       AL,Byte Ptr [0417]
            AND       AL,0Ch
            CMP       AL,0Ch
            JNZ       Mous7
            PUSHF
            MOV       CX,AX
            IN        AX,DX
Mous7:      MOV       CX,AX
Mous8:      db        102, 157    ;POPFD
            POP       DX
            POP       AX
            CLC

            CMP       AH,87
            JNE       Mous9
            PUSH      AX
            POP       AX
            CLI
            CLD
            db        96          ;PUSHA
            PUSH      ES
            PUSH      DS
Mous9:      MOV       BX,CX
            MOV       AX, 309Eh
            MOV       CX, 309Ch
            TEST      AX, 01
            JE        Mous10
            PUSH      CX
            CALL      AX
            POP       CX
            JZ        Mous11
            CALL      CX

Mous10:     MOV       CX,BX
            JNE       Mous11
            MOV       AL,02
            OUT       81,AL
            OUT       80,AL
            MOV       BX,0040
            MOV       DS,BX

Mous11:     CMP       AH,24
            JNZ       Mous12
            CMP       AL,03
            JNZ       Mous12
            POP       BX
            MOV       BX,0002
            STI
            XOR       AH,AH

Mous12:     MOV       CX,BX
            JNE       Mous16
            MOV       AL,02
            OUT       81,AL
            OUT       80,AL
            MOV       BX,0040
            MOV       DS,BX
            MOV       Word Ptr SS:[0067],BX
            MOV       Word Ptr SS:[0069],AX
            MOV       AL,8Fh
            OUT       70,AL
            MOV       AX,ES
            MOV       DS,AX
            MOV       BL,AH
            db        193, 224, 4  ;SHL       AX,04
            db        192, 235, 4  ;SHR       BL,04
            ADD       AX,SI
            ADC       BL,00
            MOV       Word Ptr [SI+0Ah],AX
            MOV       Word Ptr [SI+0Ch],BX
            MOV       AX,9999h
            MOV       Word Ptr [SI+08],AX
            MOV       Word Ptr [SI+10],AX
            MOV       Word Ptr [SI+18],AX
            MOV       AL,09
            OUT       71,AL
            db        15, 1, 99    ;LGDT      FWord Ptr [SI+08]
            db        46, 15, 1    ;LIDT      FWord Ptr CS:[707Eh]
            db        15, 1, 224   ;SMSW      AX
            OR        AL,01
            db        15, 1, 240   ;LMSW      AX
            MOV       AX,0010
            MOV       DS,AX
            MOV       AL,18
            MOV       ES,AX
            XOR       SI,SI
            XOR       DI,DI
            TEST      CX, 40
            JNZ       Mous13
            SHR       CX,1
REP         MOVSW

            JNB       Mous13
            MOVSW
Mous13:     IN        AL,61
            AND       AL,0Ch
            JNE       Mous14
            OUT       81,AL
            OUT       80,AL
            db        15, 1, 68    ;LGDT      FWord Ptr CS:[E268]
            MOV       AX,0040
            MOV       DS,AX
            MOV       ES,AX
            db        66, 193, 200, 10  ;ROR       AX,10
            MOV       CX,AX
            MOV       AX,SP
            db        36, 99            ;AND       AL,0254h
            MOV       SP,AX
Mous14:     MOV       AX,CX
            db        66, 193, 200, 10  ;ROR       AX,10
            db        46, 15, 216, 3    ;LIDT      FWord Ptr CS:   [E2B8]
            MOV       AL,00
            OUT       92,AL
            MOV       CX,001Eh
            IN        AL,79h

Mous15:     MOV       CX, 32h
            LOOP      Mous15

            CMP       SP,SP
            MOV       AL,0Fh
            OUT       70,AL
            PUSH      AX
            IN        AL,61
            POP       AX
            PUSH      AX
            IN        AL,61
            POP       AX
            MOV       AL,00
            OUT       71,AL
            JNE       Mous16
            POP       DS
            POP       ES
            db        97           ;POPA
            XCHG      AL,AH
            IN        AL,81
            XCHG      AL,AH
            OR        AH,AH
            STC
            STI

Mous16:     MOV       AL,03
            OUT       81,AL
            OUT       80,AL
            POP       DS
            POP       ES
            db        97           ;POPA
            XCHG      AL,AH
            IN        AL,81
            XCHG      AL,AH
            OR        AH,AH
            JZ        Mous17
Mous17:     STC
            STI

            TEST      AX,20
            JZ        Mous18
            CMP       AH,88
            JZ        Mous21
            CMP       AX,0231
            JZ        Mous20
Mous18:     MOV       AX,3536
            
Mous19:     CLI
            OUT       70,AL
            PUSH      AX
            IN        AL,61
            POP       AX
            PUSH      AX
            IN        AL,61
            POP       AX
            IN        AL,71
            STI

            CMP       AX,1000
            PUSHF
            db        193, 224, 4  ;SHL       AX,04
            POPF
            JBE       Mous20
            MOV       AX, 9999h
            MOV       Word Ptr SS:[9999],BX
Mous20:     db        192, 224, 16 ;SHR       BX,10

Mous21:     SUB       AX,BX
            MOV       BX,AX
            CMP       BX,000Fh
            JG        Mous22
            MOV       BX,0000
            db        193, 224, 6  ;SHL       AX,06
Mous22:     SUB       BX,000Fh
            MOV       AX,003Ch
            MOV       CX,AX
            MOV       DX,BX
            CLC
            ADD       SP,+04

            PUSH      AX
            MOV       Word Ptr SS:[0000],AX
            db        192, 224, 10 ;SHR       AX, 0Ah
            CMP       AX, 0001
            JA        Mous24
            SUB       AX,0400
            TEST      CX, 80
            JNZ       Mous23
            ADD       SP,+06
            CLC
Mous23:     CMP       AX,3C00
            JB        Mous24
            MOV       AX,003Ch
Mous24:     POP       AX

            PUSH      DI
            MOV       WORD PTR [DI-01], DX
            MOV       WORD PTR [SI-08], CX
            POP       DI
            CMP       AH,25
            JNZ       Mous25
            CMP       AL,03
            JNB       Mous27
            ADD       SP,+04
            PUSH      DS
            PUSH      SI
            PUSH      AX
Mous25:     CMP       AH,24
            JNZ       Mous26
            CMP       AL,03
            JNZ       Mous26
            POP       BX
            MOV       BX,0002
Mous26:     STI
            XOR       AH,AH
                                                  
            CMP       AH,53
            JNZ       Mous30
            JMP       Mous30
Mous27:     CMP       AX,9981
            JNZ       Mous28
            
Mous28:     JMP       Mous30
            OR        SP,SP
            CMP       AX,420Dh
            JNZ       Mous30
            PUSH      AX
            db        15, 1, 224   ;SMSW      AX
            db        15, 186, 224, 0  ;BT        AX,00
            POP       AX
            JB        Mous30

            PUSH      AX                        ;BR7
Mous30:     PUSHF

            PUSH      AX
            PUSH      BX
            POP       DS
            MOV       BX,669Fh
            MOV       AX,0000Fh
            MOV       Word Ptr [BX+02],AX
            MOV       AX,906Eh
            MOV       Word Ptr [BX],AX
            POP       DS
            POP       BX
            POP       AX


           ;ணࠬ ᮡ 㯠  ன
Mous31:    PUSH      AX
           PUSH      CX
           MOV       CX,008Ch
           PUSH      CX
           MOV       CX,000Ch
           IN        AL,61
           LOOP      Mous31
           POP       CX
           POP       DX
           POP       AX
           STI       ;Pa 뢠
           RET       ; ࠡ稪
MOUSEFUN0  ENDP



MOUSEFUN1  PROC      
           CLI       ; 뢠
           ;⠭ ० ⮡ࠦ   .
           ;ந ᥣ ॣ ES  
           MOV       AX, 0B800h
           MOV       DS, AX
           ;⠭ ०  0
           MOV       DX, 3CEh   ;  㥬 ॣ
           MOV       AL, 5      ; ॣ ०
           OUT       DX, AL     ;⠭ 樨  ॣ
                                ;०
           INC       DX         ;DX = 3CFh - ॣ  ஫
           MOV       DX, 3CFh   ; 뢮 
           MOV       AL, 0      ;  0
           OUT       DX, AL     ;⠭ ० 
           MOV       BX, 0000h     ;   0  ASCII
           MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0
          ;, 뢥  ࠦ.
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AL, 1         ;
          OUT       DX, AL        ;⠭ 梥
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

          ;⠭     ᯫ.
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ; ॣ
          PUSH      AX
          PUSH      BX
          PUSH      CX
          PUSH      DX
          ;㭪 뢮  ᯫ
          ;祭  , ᫮  ।
          MOV       AH, 00h     
          MOV       AL, 0
          MOV       AX, 0000h                              
          MOV       ES, AX
          MOV       ES:0, AX     ;ࢠ   ࠭
          MOV       ES:0, BX     ; 
          MOV       AH, 00h     
          MOV       AL,0         ;K 宫⮣ ᨣ
          MOV       BX, 0        ;   
          MOV       ES:0[BX], AX
          MOV       SI, 0000h    ; ப
          MOV       DI, 0000h    ;B  ࠭
          MOV       CX, 0000h    ; ப
REP       STOSB     ;   ⨢  
          MOV       AL, 00
          MOV       DS, AX
          MOV       AX, 0B800h  ; 
          MOV       ES, AX
          MOV       DI, 0000h   ;饭  ࠭
          MOV       CX, 0000h   ;᫮ 뢮 ⮢
REP       MOVSB     ; ⮡ࠦ  ᯫ
          ;᢮ ॣ
          POP       AX
          POP       BX
          POP       CX
          POP       DX

          ;祭 ० ⮡ࠦ  ࠧ .
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          MOV       AX, 0100      ;㭪 01h  ࠩ
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX
          ;㭪 㢥祭 ࠧ 
          AAM
          IMUL      DX
          AAA
          ADD       DX, 00h   
          ;㭪 㬥襭 ࠧ 
          MOV       AL, 0FFh      
          OUT       DX, AL        
          INC       DX
          AAS
          SUB       DX, 00h
          AAD
          IDIV       DX
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ࢮ ᥫ
          ; ᯫ  ⥫ .   
          ;ᠬ ᫮ 権. , ᠬந쭮 
          ;ᯫ  ६ ⮫쪮 .
          MOV       DI, 0000h  ;⠭  祭
                               ;砫쭮  
                               ;  ᯫ.
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAS       ;⠭ 䫠 㤠 室 ᫠ ᥫ.
          SUB       DI, 99h    ;  ॣ DI 室 祭.
          DAS       ;⠭ 䫠  㤠 䨪஢ 祭.
          SBB       DI, 99h    ;  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          SBB       CX, 0560h  ; ⥪騥 祭   䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          DEC       DI         ;䨪஢ ᫥ 㤠,  
          DEC       CX         ;ॣ DI  CX ⥫쭮 饭.
          DAS       ;୮ ⠭ 䫠 뢠 ᥫ, 
                    ;⢥ত  ⮩ 樨.
          AAS       ;T  襭.  㯠  㣮.
          NEG       DI         ;  ⥫쭮 祭
          NEG       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ᫥ ᥫ
          ; ᯫ    .  ਭ楯,
          ; , 筠 ।饩  ன   
          ;६饭 ⢫,  .
          MOV       DI, 9999h  ;饭   ࠭.   
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAA       ;⠭ 䫠  室 ᫠ ᥫ.
          ADD       DI, 99h    ;ਡ  ॣ DI  祭.
          DAA       ;⠭ 䫠  㤠 䨪஢ 祭.
          ADC       DI, 99h    ;ਡ  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          ADC       CX, 0560h  ;ਡ  ⥪騬 祭 䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          INC       DI         ;䨪஢ ᫥ ,  
          INC       CX         ;ॣ DI  CX 饭.
          DAS       ;୮ ⠭ 䫠  ᥫ.
          AAA       ;T  襭.  㯠  㣮.
          NOT       DI         ;  ⥫쭮 祭
          NOT       CX         ;  ॣ஢ DI  CX.
           ;䨪஢ ॣ   쭥襣 .
           ; CX , a ॣ DI  ᢮.
           PUSH      CX
           POP       DI
           CLD       ;,    㦥 ⠫
                     ;⨬.
REP        MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.
           STI       ; 뢠
           RET       ; ࠡ稪
MOUSEFUN1  ENDP

MOUSEFUN2  PROC      
           CLI       ; 뢠
           ;⠭ ० ⮡ࠦ   .
           ;ந ᥣ ॣ ES  
           MOV       AX, 0B800h
           MOV       DS, AX
           ;⠭ ०  0
           MOV       DX, 3CEh   ;  㥬 ॣ
           MOV       AL, 5      ; ॣ ०
           OUT       DX, AL     ;⠭ 樨  ॣ
                                ;०
           INC       DX         ;DX = 3CFh - ॣ  ஫
           MOV       DX, 3CFh   ; 뢮 
           MOV       AL, 0      ;  0
           OUT       DX, AL     ;⠭ ० 
           MOV       BX, 0000h     ;   0  ASCII
           MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
         MOV       WORD PTR [DI-34],AX  
         CMP       WORD PTR [DI-34],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-34]  
         DB        184, 1, 255      
         MOV       WORD PTR [DI-0Ch],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-0Ch], 0000h  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         PUSH      WORD PTR [DI-0Ch]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  

          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0
          ;, 뢥  ࠦ.
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AL, 1         ;
          OUT       DX, AL        ;⠭ 梥
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

         ADD       SP,04  
         MOV       WORD PTR [DI-38],AX  
         CMP       WORD PTR [DI-38],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-38]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-10],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-10], 0000h   
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI+10]  
         MOV       WORD PTR [DI-14],AX  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI+04]  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI]  
         PUSH      WORD PTR [DI-10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
          ;⠭     ᯫ.
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ; ॣ
          PUSH      AX
          PUSH      BX
          PUSH      CX
          PUSH      DX
          ;㭪 뢮  ᯫ
          ;祭  , ᫮  ।
          MOV       AH, 00h     
          MOV       AL, 0
          MOV       AX, 0000h                              
          MOV       ES, AX
          MOV       ES:0, AX     ;ࢠ   ࠭
          MOV       ES:0, BX     ; 
          MOV       AH, 00h     
          MOV       AL,0         ;K 宫⮣ ᨣ
          MOV       BX, 0        ;   
          MOV       ES:0[BX], AX
          MOV       SI, 0000h    ; ப
          MOV       DI, 0000h    ;B  ࠭
          MOV       CX, 0000h    ; ப
REP       STOSB     ;   ⨢  
          MOV       AL, 00
          MOV       DS, AX
          MOV       AX, 0B800h  ; 
          MOV       ES, AX
          MOV       DI, 0000h   ;饭  ࠭
          MOV       CX, 0000h   ;᫮ 뢮 ⮢
          XLAT
          CLD
REP       MOVSB     ; ⮡ࠦ  ᯫ
          ;᢮ ॣ
          POP       AX
          POP       BX
          POP       CX
          POP       DX

          ;祭 ० ⮡ࠦ  ࠧ .
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          MOV       AX, 0100      ;㭪 01h  ࠩ
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX
          ;㭪 㢥祭 ࠧ 
          AAM
          IMUL      DX
          AAA
          ADD       DX, 00h   
          ;㭪 㬥襭 ࠧ 
          MOV       AL, 0FFh      
          OUT       DX, AL        
          INC       DX
          AAS
          SUB       DX, 00h
          AAD
          IDIV       DX
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ࢮ ᥫ
          ; ᯫ  ⥫ .   
          ;ᠬ ᫮ 権. , ᠬந쭮 
          ;ᯫ  ६ ⮫쪮 .
          MOV       DI, 0000h  ;⠭  祭
                               ;砫쭮  
                               ;  ᯫ.
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAS       ;⠭ 䫠 㤠 室 ᫠ ᥫ.
          SUB       DI, 99h    ;  ॣ DI 室 祭.
          DAS       ;⠭ 䫠  㤠 䨪஢ 祭.
          SBB       DI, 99h    ;  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          SBB       CX, 0560h  ; ⥪騥 祭   䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          DEC       DI         ;䨪஢ ᫥ 㤠,  
          DEC       CX         ;ॣ DI  CX ⥫쭮 饭.
          DAS       ;୮ ⠭ 䫠 뢠 ᥫ, 
                    ;⢥ত  ⮩ 樨.
          AAS       ;T  襭.  㯠  㣮.
          NEG       DI         ;  ⥫쭮 祭
          NEG       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ᫥ ᥫ
          ; ᯫ    .  ਭ楯,
          ; , 筠 ।饩  ன   
          ;६饭 ⢫,  .
          MOV       DI, 9999h  ;饭   ࠭.   
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAA       ;⠭ 䫠  室 ᫠ ᥫ.
          ADD       DI, 99h    ;ਡ  ॣ DI  祭.
          DAA       ;⠭ 䫠  㤠 䨪஢ 祭.
          ADC       DI, 99h    ;ਡ  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          ADC       CX, 0560h  ;ਡ  ⥪騬 祭 䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          INC       DI         ;䨪஢ ᫥ ,  
          INC       CX         ;ॣ DI  CX 饭.
          DAS       ;୮ ⠭ 䫠  ᥫ.
          AAA       ;T  襭.  㯠  㣮.
          NOT       DI         ;  ⥫쭮 祭
          NOT       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.
           STI      ; 뢠
           RET      ; ࠡ稪
MOUSEFUN2  ENDP

MOUSEFUN3  PROC      
           CLI       ; 뢠
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           PUSH      WORD PTR [DI-18]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      CS  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       BYTE PTR [BX+SI],AL  
           ADD       SP,04  
           MOV       WORD PTR [DI-40],AX  
           CMP       WORD PTR [DI-40],00  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       CX,WORD PTR [DI-40]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-1Ch],AX  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       WORD PTR [DI-1Ch], 0000h  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       AX,WORD PTR [DI+10]  
           MOV       WORD PTR [DI-20],AX  
           MOV       AX,WORD PTR [DI-20]  
           PUSH      WORD PTR [BX+SI+04]  
           MOV       AX,WORD PTR [DI-20]  
           PUSH      WORD PTR [BX+SI]  
           PUSH      WORD PTR [DI-1Ch]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           STI       ; 뢠
           RET       ; ࠡ稪
MOUSEFUN3  ENDP

MOUSEFUN4  PROC      
           CLI       ; 뢠
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      WORD PTR [DI+10]  
           MOV       CX,WORD PTR [DI-08]  
           DB        184, 1, 255         
           MOV       WORD PTR [DI-04],AX  
           ADD       BYTE PTR [BX+SI],AL  
           PUSH      CS  
           PUSH      DS  
           STI       ; 뢠
           RET       ; ࠡ稪
MOUSEFUN4  ENDP

MOUSEFUN5  PROC      
           CLI       ; 뢠
           ;⠭ ० ⮡ࠦ   .
           ;ந ᥣ ॣ ES  
           MOV       AX, 0B800h
           MOV       DS, AX
           ;⠭ ०  0
           MOV       DX, 3CEh   ;  㥬 ॣ
           MOV       AL, 5      ; ॣ ०
           OUT       DX, AL     ;⠭ 樨  ॣ
                                ;०
           INC       DX         ;DX = 3CFh - ॣ  ஫
           MOV       DX, 3CFh   ; 뢮 
           MOV       AL, 0      ;  0
           OUT       DX, AL     ;⠭ ० 
           MOV       BX, 0000h     ;   0  ASCII
           MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
         MOV       WORD PTR [DI-34],AX  
         CMP       WORD PTR [DI-34],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-34]  
         DB        184, 1, 255      
         MOV       WORD PTR [DI-0Ch],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-0Ch], 0000h  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         PUSH      WORD PTR [DI-0Ch]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  

          ;।⥫쭠 ⪠  ࠦ.
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3CFh - ॣ 
          MOV       AL, 0FFh      ; ᥫ ⮢ ࠧ᪨஢
          OUT       DX, AL        ;⠭ ᪨ ⮢
          ;  ( ᥫ )
          MOV       BYTE PTR ES:[BX], 0
          ;, 뢥  ࠦ.
          ;⠭ 梥.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
          MOV       AL, 1         ;
          OUT       DX, AL        ;⠭ 梥
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

         ADD       SP,04  
         MOV       WORD PTR [DI-38],AX  
         CMP       WORD PTR [DI-38],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-38]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-10],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-10], 0000h   
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI+10]  
         MOV       WORD PTR [DI-14],AX  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI+04]  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI]  
         PUSH      WORD PTR [DI-10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
          ;⠭     ᯫ.
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          ; ॣ
          PUSH      AX
          PUSH      BX
          PUSH      CX
          PUSH      DX
          ;㭪 뢮  ᯫ
          ;祭  , ᫮  ।
          MOV       AH, 00h     
          MOV       AL, 0
          MOV       AX, 0000h                              
          MOV       ES, AX
          MOV       ES:0, AX     ;ࢠ   ࠭
          MOV       ES:0, BX     ; 
          MOV       AH, 00h     
          MOV       AL,0         ;K 宫⮣ ᨣ
          MOV       BX, 0        ;   
          MOV       ES:0[BX], AX
          MOV       SI, 0000h    ; ப
          MOV       DI, 0000h    ;B  ࠭
          MOV       CX, 0000h    ; ப
REP       STOSB     ;   ⨢  
          MOV       AL, 00
          MOV       DS, AX
          MOV       AX, 0B800h  ; 
          MOV       ES, AX
          MOV       DI, 0000h   ;饭  ࠭
          MOV       CX, 0000h   ;᫮ 뢮 ⮢
          XLAT
          CLD
REP       MOVSB     ; ⮡ࠦ  ᯫ
          ;᢮ ॣ
          POP       AX
          POP       BX
          POP       CX
          POP       DX

          ;祭 ० ⮡ࠦ  ࠧ .
          ;ந ᥣ ॣ ES  
          MOV       AX, 0B800h
          MOV       DS, AX
          MOV       AX, 0100      ;㭪 01h  ࠩ
          ;⠭ ०  0
          MOV       DX, 3CEh   ;  㥬 ॣ
          MOV       AL, 5      ; ॣ ०
          OUT       DX, AL     ;⠭ 樨  ॣ
                               ;०
          INC       DX         ;DX = 3CFh - ॣ  ஫
          MOV       DX, 3CFh   ; 뢮 
          MOV       AL, 0      ;  0
          OUT       DX, AL     ;⠭ ० 
          MOV       BX, 0000h     ;   0  ASCII
          MOV       CX, 80 * 175  ;騥 ᫮ ⢮ ⮢
          ;⠭  ᪨ 梥.
          MOV       DX, 3C4h      ; ॣ ᥪ
          MOV       AL, 2         ; ᪨ 梥
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX            ;DX = 3C5h - ॣ 
                                  ;ᥪ
          MOV       AL, 0Fh       ;  (મ )
          OUT       DX, AL        ;⠭ ᪨ 梥
          ;⠭ ᪨ ⮢.
          MOV       DX, 3CEh      ; ॣ ஫
          MOV       AL, 8         ; ᪨ ⮢
          OUT       DX, AL        ;⠭ 㥬 ॣ
          INC       DX
          ;㭪 㢥祭 ࠧ 
          AAM
          IMUL      DX
          AAA
          ADD       DX, 00h   
          ;㭪 㬥襭 ࠧ 
          MOV       AL, 0FFh      
          OUT       DX, AL        
          INC       DX
          AAS
          SUB       DX, 00h
          AAD
          IDIV       DX
          ;뢥  ᥫ.
          MOV       BYTE PTR ES:[BX], 95

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ࢮ ᥫ
          ; ᯫ  ⥫ .   
          ;ᠬ ᫮ 権. , ᠬந쭮 
          ;ᯫ  ६ ⮫쪮 .
          MOV       DI, 0000h  ;⠭  祭
                               ;砫쭮  
                               ;  ᯫ.
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAS       ;⠭ 䫠 㤠 室 ᫠ ᥫ.
          SUB       DI, 99h    ;  ॣ DI 室 祭.
          DAS       ;⠭ 䫠  㤠 䨪஢ 祭.
          SBB       DI, 99h    ;  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          SBB       CX, 0560h  ; ⥪騥 祭   䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          DEC       DI         ;䨪஢ ᫥ 㤠,  
          DEC       CX         ;ॣ DI  CX ⥫쭮 饭.
          DAS       ;୮ ⠭ 䫠 뢠 ᥫ, 
                    ;⢥ত  ⮩ 樨.
          AAS       ;T  襭.  㯠  㣮.
          NEG       DI         ;  ⥫쭮 祭
          NEG       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.

          ;樠  ப⪠  .
          ;ந ᥣ ॣ ES  .
          MOV       AX, 0B800h
          MOV       DS, AX
          ;ப稢 ࠦ  ᪮ ०
          ;, ⢫ ᬥ饭 ᫥ ᥫ
          ; ᯫ    .  ਭ楯,
          ; , 筠 ।饩  ன   
          ;६饭 ⢫,  .
          MOV       DI, 9999h  ;饭   ࠭.   
          PUSH      DS         ;ந ES  ᥣ
          POP       ES         ; .
          MOV       CX, 0280h  ;640 - ᨬ쭮 ᫮ ᥫ
                               ; ਧ⠫  ᪮ ०.
          AAA       ;⠭ 䫠  室 ᫠ ᥫ.
          ADD       DI, 99h    ;ਡ  ॣ DI  祭.
          DAA       ;⠭ 䫠  㤠 䨪஢ 祭.
          ADC       DI, 99h    ;ਡ  ॣ DI 䨪஢
                               ;祭 ᫠ 뢥 ᥫ.
          ADC       CX, 0560h  ;ਡ  ⥪騬 祭 䫠 CX.
                               ;  ॢ ᫮ 640. 0480 = 1280.
          INC       DI         ;䨪஢ ᫥ ,  
          INC       CX         ;ॣ DI  CX 饭.
          DAS       ;୮ ⠭ 䫠  ᥫ.
          AAA       ;T  襭.  㯠  㣮.
          NOT       DI         ;  ⥫쭮 祭
          NOT       CX         ;  ॣ஢ DI  CX.
          ;䨪஢ ॣ   쭥襣 .
          ; CX , a ॣ DI  ᢮.
          PUSH      CX
          POP       DI
          CLD       ;,    㦥 ⠫
                    ;⨬.
REP       MOVSB     ;樠 ⮡ࠦ ப⪨   ᯫ.

         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         DEC       WORD PTR [DI-44]  
         CMP       WORD PTR [DI-44],1Ch  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI-44]  
         TEST      WORD PTR [BP+SI-3D21h],DI  
         OR        AL,08h  
         DB        184, 1, 255         
         OR        AL,0Eh  
         FADD      ST(2),ST  
         OR        AL,0Ah  
         FADD      ST(2),ST  
         OR        AL,46  
         FFREE     ST(2)  
         OR        AL,59  
         FFREE     ST(2)  

         ; ࠡ ⥬
         ;ணࠬ   
         ;ࠡ稪.
MouseExit: POP      AX
           POP      BX
           POP      DX
           POP      DX
           STI      ; 뢠
           RET      ; ࠡ稪
MOUSEFUN5  ENDP

MOUSEFUN6  PROC      
          CLI       ; 뢠
          ROL       Byte Ptr [BX],1 ;BR0
          CMP       BP,Word Ptr [BX+SI+07]
          CMP       DX, AX
          POP       ES
          CMP       DI, Word Ptr [BP+SI-65]
          CMP       DX, AX
          POP       ES
          SUB       DX, BP
          ADD       AX, 3B9Ah
          XOR       Word Ptr [BX+SI], AX
	  POPF
          ADC       AX, 0649
	  POPF
          ROL       Byte Ptr [BX+DI], 01
          ADC       AX, 0061h    ;BR1

	  POPF
          ADC      AX, 0079
	  POPF
          ADC      AX, 0091
	  POPF
          ADC      AX, 9953h
          ADD      AL, DH
          MOV      DI, 241Ah
	  CLC
          ADD      AL, DH
          INC      CX
	  CLC
          ADD      AL, DH
	  CLC
          ADD      AL, DH
          TEST     AL, 39
          POP      ES
          SBB      WORD PTR [BX+16h], SI
          MOV      CX, DX   ;BR2
        
          ;db       240      ;LOCK
          OR       Word Ptr [BP+SI], BX
          MOV      DI, 091Ah
          ADD      SI, Word Ptr [BX+SI+00]
          STC           
          FIADD    DWord Ptr [BX+SI]
          ;db       240      ;LOCK
          ADD      AL, AH
          ADD      AL, DH
	  STC
          SBB      Word Ptr [BX+6Eh], DI
          INC      Byte Ptr [BX+SI]
          ;db       240      ;LOCK
          ADD      AX, 7004
          ADD      Byte Ptr [BP+DI-01], DL
          ADD      AL,BH
	  MOVSB
          ;db       240      ;LOCK     ;BR3

          ADD      AL, DH
          AND      AL, Byte Ptr [DI]
          ADD      Byte Ptr [BX+SI], AL
          CMP      BH, Byte Ptr [SI+00]
          ADD      Byte Ptr [BX+DI], CL
          CMP      DX, Word Ptr [DI]
          POP      ES
          CMP      SI, Word Ptr [DI-65]
          CMP      AX, Word Ptr [BX+1Ah]
          MOV      DI, 291Ah
	  AAS	   
          POP      ES 
          SUB      SI, Word Ptr [BX+DI]
          POP      ES 
          SBB      CH, Byte Ptr [SI] ;BR4
   
          ADD      AL,70
          ADD      Byte Ptr [BX+SI+0740], CH
          SUB      BP, Word Ptr [SI]
          INC      CX
          DEC      DI
          SUB      AL, 41
          NEG      AX
          SUB      AL, 41
          INC      DI
          POP      DI
          ADD      Word Ptr [BX+DI], SP
          SBB      Byte Ptr [SI], BL
          INC      BX
          POP      ES
          SUB      BP, DX
          db       109           ;INSW
          INC      DI
          OUT      DX, AL        ;M5

          ADD      AL,DH
          SUB      AL,41
          DEC      DI
	  LODSB 
          ADD      AL, DH
          PUSH     CS
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], AH
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], BH
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], CH
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], DH
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], CH
          FILD     Dword Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], BH

          FILD     DWord Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], BH
          FILD     DWord Ptr [BP+DI]
          AND      Byte Ptr [BP+SI], DH
	  WAIT
          ADD      SP, Word Ptr [BX+SI]
          CMP      BH, Byte Ptr [BP+03]
          AND      Byte Ptr [BP+SI], DH
          SUB      AL, 41   
          DEC      DI       
          POP      AX
          ADD      DL, Byte Ptr [BP+DI-4066]
          INC      BX
          POP      ES
          SUB      SI, AX
          XOR      DX, Word Ptr [BP+655Ch]
          ;db       240     ;LOCK
          ADD      AL, DH   ;BR7

          PUSH     CX
          POP      DX
          ADD      AL, 70
          ADD      BL, DH
          OUT      DX, AL
          ADD      AL, DH
          CLD
REP       SCASB
          OUT      DX, AL
          ADD      AL, DH
REP       STOSB
          OUT      DX, AL
          ADD      AL, DH
REP       MOVSB
          OUT      DX, AL
          ADD      AL, DH
REP       CMPSB
          OUT      DX, AL
          ADD      AL, DH
REP       MOVSB
          OUT     DX,AL   ;BR10

          OUT      DX, AL
          ADD      AL, DH
REP       SCASB
          OUT      DX, AL
          ADD      AL, DH
REP       STOSB
          OUT      DX, AL
          ADD      AL, DH
REP       MOVSB
          OUT      DX, AL
          ADD      AL, DH
REP       CMPSB
          OUT      DX, AL
          ADD      AL, DH
REP       MOVSB
          OUT      DX, AL
          ADD      AL, DH
REP       SCASB
          OUT      DX, AL
          ADD      AL, DH
REP       STOSB
          OUT      DX, AL
          ADD      AL, DH
	  AAS		    ;BR9

          DEC      BP
          ADD      SI, Word Ptr [BX+SI+01]    ;ADD      DI, Word Ptr [BX+SI-00] 
REP       SCASB
          OUT      DX, AL
          ADD      AL, DH
REP       STOSB
          OUT      DX, AL
          ADD      AL, DH
          ADD      Byte Ptr [SI], DH
	  SAHF
          IN       AL, DX
REP       MOVSB
          OUT      DX, AL
          ADD      AL, DH
REP       STOSB
          OUT      DX, AL
          ADD      AL, DH  
REP       CMPSB                           

          ADD      AL, DH
REP      STOSB
          OUT      DX, AL
          ADD      AL, DH
REP      STOSB
          OUT      DX, AL
          ADD      AL, DH
REP      STOSB
          OUT      DX, AL
          ADD      AL, DH
REP      MOVSB
          OUT      DX, AL
          ADD      AL, BH
REP      SCASB
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          ADD      BYTE PTR [BX+SI], AL
          STI      ; 뢠
          RET      ; ࠡ稪

MOUSEFUN6  ENDP

Intr15hLen   EQU   $ - Intr15h
; ணࠬ ࠡ稪 INT 15h


;⥬ ணࠬ INT 16h
Intr16h:
KEYBORD   PROC    
          JMP     KeybInit ;室  ᥪ 樠樨
IntVect16 dw      0        ;祪  ਯ

KeybInit: CLI     ; 뢠
          PUSHF   ;Coxpa a   IRET
          ;楤 IOS 樠樨 ணࠬ 뢠 16
          MOV     DX,1E16h
          MOV     SP,08  
          MOV     WORD PTR [DI-08],CX  
          MOV     WORD PTR [SI+08],BX

          ;,  ணࠬ  ।
          ;祭 䫠  ॣ஢
          ;AH  AX  ஬, 
          ;ᯮ짮   .
          LEA     DX, IntVect16
          TEST    DX, 16h
          INC     DX

          ;। ⥬,   ᯮ
          ;祭  䫠 
          ;ॣ஢ AH  AX, ந ࡮
          ; 뢠 INT 16h   
          ; ᮮ⢥騩  ᥣ⭮
          ; ⨢ .
          MOV     ES, DX    ;஥   ES
          XOR     DI, DI    ;ES:DI -> 砫 뤥 
          MOV     CX, 2     ;2 - ᫮ ⮢  ᥣ
          MOV     BL, 16h   ; 뢠 ᨬ  
          CLD               ; 
REP       STOSB             ;
          ; ன  ᨣ,  ஫
          MOV     BYTE PTR ES:[DI], 0 
          
          ; 楤 ᯮ 㭪樨
          ;ࠡ  ஫஬ ⥬  
          ;짮⥫ (맮 ⮩ ⥬ ணࠬ
          ;  ⠡ १ BIOS, 室饣
          ;   ⨢ , १
          ;뢠 INT 16h)
          PUSH    AX  ;⢮ ॣ AX
                      ; 쭥 ⢨
          POP     BX  ; BX ⠢
                      ;᢮  䨪樨

          ;   䫠 AH  AX,
          ; ⢨ ᭮ 䨪樨 ࠢ饩
          ;ணࠬ 
          AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    
          
          ;।  㭪 ⥬ ணࠬ
          ;뫠 ॡ 짮⥫,   맮
          ;뢠 INT 16h
          CMP      AH, 00h
          JE       KeybInit0
          CMP      AH, 01h
          JE       KeybInit1
          CMP      AH, 02h
          JE       KeybInit2
          CMP      AH, 03h
          JE       KeybInit3
          CMP      AH, 04h
          JE       KeybInit4
          CMP      AH, 05h
          JE       KeybInit5
          JMP      KeybInit0

KeybInit0: CALL     KeybFun0
KeybInit1: CALL     KeybFun1
KeybInit2: CALL     KeybFun2
KeybInit3: CALL     KeybFun3
KeybInit4: CALL     KeybFun4
KeybInit5: CALL     KeybFun5
KEYBORD   ENDP

          ;㭪樨 ࠡ  ன ॠ㥬
          ;⥬ ணࠬ INT 16h

KEYBFUN0   PROC      
           JMP       Beg_09h  ;易⥫쭠  
                              ;१⭮ ணࠬ
;  १⭮ ᥪ樨 ணࠬ
;ࠡ  ன.
;筠 ணࠬ ࠡ  ன,  楤 IOS.
ALT_Q      EQU       1000h    ;Pacc७ ASCII <Alt>/q
CdEx1      db        01,02
CdEx2      db        03,04
CdEx3      db        05,06
Key_atd    dw        0       ;祩  ਯ
In_sys     dd        0       ;ਯ  楢 .
Task_Reg   db        0       ;  ᪨ .
Vectory    dd        0       ;Mec  ணo .
                             ;-,   104- .
KeybCod:   db        0, 1, 2, 3, 4, 5, 6, 7, 8, 9
           db        10, 11, 12, 13, 14, 15, 16, 17, 18, 19
           db        20, 21, 22, 23, 24, 25, 26, 27, 28, 29
           db        30, 31, 32, 33, 34, 35, 36, 37, 38, 39
           db        40, 41, 42, 43, 44, 45, 46, 47, 48, 49
           db        50, 51, 52, 53, 54, 55, 56, 57, 58, 59
           db        60, 61, 62, 63, 64, 65, 66, 67, 68, 69
           db        70, 71, 72, 73, 74, 75, 76, 77, 78, 79
           db        80, 81, 82, 83, 84, 85, 86, 87, 88, 89
           db        90, 91, 92, 93, 94, 95, 96, 97, 98, 99
           db        100, 101, 102, 103, 104, 105, 106, 107, 108, 109
           db        110, 111, 112, 113, 114, 115, 116, 117, 118, 119
           db        120, 121, 122, 123, 124, 125, 126, 127


;Pe⭠ ᥪ ணࠬ
Beg_09h:   CLI       ; 뢠
           PUSHF     ;Coxpa a   IRET

           ; 砫 樨஢ ணࠬ ࠡ
           ;ࠡ  ⭮ 㯠 
           ;INT 09h.
           ; 㦥,  뫪 ⥫ ᯮ塞 ணࠬ
           ;  ,    믮.
           PUSHF   ;Coxpa a   IRET

           MOV     AH, 09h    ;C砫 ३  ࠩ 09h
           MOV     BX, 00h    ; 09h   ।
           MOV     CX, 2      ; ,  ᮤঠ 2 
           LEA     DX, Key_atd       ;㧨   
           MOV     DX, 0009h  ;   㪠
           CLD     ; 
REP        STOSB   ;࡮  09h  


;ࠡ稪 뢠   INT 09h
;(ࠡ⪠ ⭮ 뢠).
Reset_09h:    
           PUSH      AX      ;C砫 ३  ࠩ 09h
           IN        AL,09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX,AX
           MOV       ES,AX
           IN        AL,09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX,CS
           CMP       AX,BX
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL,09h  ;C   09h
           MOV       DX,0062
           CMP       BYTE PTR CS: [0001h], 01h
           JNZ       Nxt
           MOV       DX,0061
           IN        AL,DX
           AND       AL,09h
           OR        AL,09h
           OUT       61,AL
Nxt:       PUSH      CX
           MOV       CX,0001
           PUSH      DX
           POP       CX
           IN        AL,09h
           MOV       AL,20
           OUT       20,AL
           POP       DX
           POP       AX
           CMP       AL,00h
           JZ        Qt
           CMP       AL,02h
           JZ        Qt
           MOV       AX,0000h
           MOV       BX,0001h
           MOV       CX,0101h
           MOV       DX,1111h
           IN        AL,09h  ;C   09h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           JB        Exts
Qt:        MOV       DX,1111h
           MOV       CX,0101h
           MOV       BX,0001h
           MOV       AX,0000h
           IN        AL,09h  ;C   09h

           ;㫨  . ࠭ 
           ;ॡ㥬 ॣ
Exts:      PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           PUSH      BP
           PUSH      DS
           PUSH      ES
           MOV       AX, CS      ;Hac६ ᥣ ॣ DS
           MOV       DS, AX      ;  ᥣ
           MOV       AX, 40h     ;Hac஥ ॣ ES
           MOV       ES, AX      ;   BIOS
           ;Ha ࠡ ᨬ, ᪮஢   楢
           ;   AX,   묠   ⮬  
           MOV       BX, ES: 1Ah   ; । ᨬ
           MOV       AX, ES: [BX]  ; ᨬ ->  AX
           CMP       AX, Alt_Q    ;  襭 ?
           JE        New_09h      ;,  ⠭ 
           CMP       AH, 2        ;-  2- ?
           JB        FreHom       ;,  室  뢠
           CMP       AH, 12       ;-  12- ?
           JA        FreHom       ;,  室  뢠

           ;-   ।. Ho - 
           ; <Caps Lock> ?
           TEST      BYTE PTR ES: 17h,40h  ; <Caps Lock> -  6
           JZ        FreHom       ;,  室  뢠
           ;Pe <Caps Lock> 祭   
           ; <1/!> . . . <-/_>
           PUSH      BX           ;BX  
           LEA       BX, KeybCod  ; ⠡ 樨
           XCHG      AH,AL        ;-  AL  XLAT
           XLAT                   ;࠭
           POP       BX           ;Bocc⠭ BX
           MOV       BYTE PTR ES:[BX],AL ;  ASCII
                                  ; 楢 
           ;Bep  ࢠ ணࠬ
FreHom:    POP       ES          ;Boccao coxpa
           POP       DS          ;࠭ ॣ
           POP       BP          
           POP       DX          
           POP       CX
           POP       BX
           POP       AX
Reset_09hLen         EQU         $ - Reset_09h


           ;䨪஢ ணࠬ ஫
           ;⭮ 㯠  INT 09h,
           ;१⭮    쭥 権
           MOV       AX, 0009h          ; 
           MOV       BX, 1              ;ਯ 
           MOV       CX, Reset_09hLen   ; ⥫ १
           MOV       DX, OFFSET Reset_09h  ;砫 ⥫ १
           PUSH      AX  ;  ⢥ ࠡ,
           PUSH      ES  ;  ॣ
           CLD           ;  
REP        STOSB         ; ணࠬ  
           ; 䫠, ।  樥
           POPF

           ; , ।⢥  ன
           ;஫              
           MOV       DX, 0009h   ; ஫
           MOV       AL, 11h     ;1: 㤥 3
           OUT       DX, AL      ; ⠪ 
                                 ;ன⢮.
           INC       AX          ;஬ AX  , ⥯
                                 ; ﭭ .
           MOV       AL, 09h     ;  ⮦ ⢮.
           OUT       DX, AL      ;,  ⮢  ࠡ 
                                 ;ன⢮ .

           ;뢮  楢  
           ;   127- ⠭ ᪥-
           ;          
           MOV         DX, 0009h     ; 뢮 
           MOV         AL, 0         ;  0
           OUT         DX, AL        ;⠭ ० ⥭
           MOV         BX, 0000h     ;   0  ASCII
           MOV         CX, 0127h     ;᫮ ⮢  
                                     ;⥪饬 ६.
           LEA         DX, KeybCod   ;㧪  
                                     ; 業樨 ⠭
                                     ;.
           INC         DX            ;DX = 0009h -  .
           IN          AL, 09h       ;뫪 ஡ ᨣ
           IN          AL, 09h       ;  ன⢠ 
           IN          AL, 09h       ; 3- ⮢.
           CMP         CX, 03h       ;஢ 3 ⢮ 

           OUT         09h, AL       ;祭 ⢥⭮ ᨣ 
           OUT         09h, AL       ; ன⢠ CMOS-
           OUT         09h, AL       ; 3- ⮢.
           CMP         CX, 03h       ;஢ 3 ⠭ 

           ;⭠ 䨪  뤥  
           ;  ࠢ 㯥  , 
           ;쭥襣 ᯮ짮 ணࠬ 짮⥫.
           XCHG      AL, AH          ;祭 ॣ AL, 
                                     ;ᮮ⢥⢮ ॣ AX
           MOV       CX, 0003h       ;3 ⠭  
           MOV       DX, AX          ;⠭   ६
           MOV       BX, 0000h       ;஢   祩
           CLD       ;஢ 
REP        STOSB     ; 䨪  ⨢ 
           STI       ; 뢠
           RET       ; ࠡ稪    
KEYBFUN0   ENDP


KEYBFUN1   PROC      
;ࠡ稪 뢠   (㣮).           
New_09h:
           MOV     AH, 09h    ;C砫 ३  ࠩ 09h
           MOV     BX, 00h    ; 09h   ।
           MOV     CX, 2      ; ,  ᮤঠ 2 
           LEA     DX, Key_atd       ;㧨   
           MOV     DX, 0009h  ;   㪠
           CLD     ; 
REP        STOSB   ;࡮  09h  

KeyPush:   PUSH      AX         ;࠭
           PUSH      BX         ;ᯮ㥬
           PUSH      ES         ;ॣ.
           IN        AL, 60h    ; ᪥- .
           CMP       AL, 4Eh    ; ?
           JE        Old_09h    ;,  த.
           POP       AX         ;, ⠭
           POP       BX         ;࠭
           POP       ES         ;ॣ.
Old_09h:   ;  ⥬ ࠡ稪
           ;஫ .
           IN        AL, 09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX, AX
           MOV       ES, AX
           IN        AL, 09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX, CS
           CMP       AX, BX
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL, 09h  ;C   09h
           MOV       DX, 0062
           CMP       BYTE PTR CS: [0001h], 01h
           JNZ       Nxt2
           MOV       DX, 0061
           IN        AL, DX
           AND       AL, 09h
           OR        AL, 09h
           OUT       61, AL
Nxt2:      PUSH      CX
           MOV       CX, 0001
           PUSH      DX
           POP       CX
           IN        AL, 09h
           MOV       AL, 20
           OUT       20, AL
           POP       DX
           POP       AX
           CMP       AL, 00h
           JZ        Qt2
           CMP       AL, 02h
           JZ        Qt2
           MOV       AX, 0000h
           MOV       BX, 0001h
           MOV       CX, 0101h
           MOV       DX, 1111h
           IN        AL, 09h  ;C   09h
           PUSH      DS
           MOV       AX, 4333
           MOV       DS, AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX, 4333
           MOV       DS, AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX, 4333
           MOV       DS, AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           JB        Plus
Qt2:       MOV       DX, 1111h
           MOV       CX, 0101h
           MOV       BX, 0001h
           MOV       AX, 0000h
           IN        AL, 09h  ;C   09h

           ;㫨  ⥬ ࠡ稪.
           ; ࠡ⠥  ᢮.
Plus:      PUSH      AX
           PUSH      DS
           MOV       AL, 61h  ;ࠢ  
           IN        AL, 61h  ;஫ ,
           OR        AL, 80h  ;⮡  ᪥-
           OUT       61h, AL  ;⮩  
           AND       AL, 7Fh  ;ࠧ 쭥
           OUT       61h, AL  ;ࠡ ஫.
           MOV       AL, 20h  ;᫠  ஫ 뢠
           OUT       20h, AL  ;ᨣ EOI
           ;  䫠 InSys
           LES       BX, CS: In_sys
           ;⥬ ᢮?
           CMP       BYTE PTR ES: [BX], 0
           ;, ਤ .
           JNE       Wait_sys
           ;⢨ 뢠 ⨥ .

           ; 室  ࠡ稪.
           JMP       Out_09h
           ;⠭ 䫠  ᪠.
Wait_sys:  INC       BYTE PTR CS: Task_reg
New_09hLen           EQU      $ - New_09h

           ;䨪஢ ணࠬ ஫
           ;⭮ 㯠  INT 09h,
           ;१⭮    쭥 権
           MOV       AX, 0009h          ; 
           MOV       BX, 1              ;ਯ 
           MOV       CX, New_09hLen     ; ⥫ १
           MOV       DX, OFFSET New_09h  ;砫 ⥫ १
           PUSH      AX  ;  ⢥ ࠡ,
           PUSH      ES  ;  ॣ
           CLD           ;  
REP        STOSB         ; ணࠬ  
           ; 䫠, ।  樥
           POPF

Out_09h:   MOV       AL, 20h  ;᫠  ஫
           OUT       20h, AL  ;뢠 ᨣ EOI
           POP       ES   ;⠭ ࠭
           POP       BX   ;ॣ.
           POP       AX

           STI       ; 뢠
           RET       ; ࠡ稪
KEYBFUN1   ENDP
          

KEYBFUN2   PROC      
           CLI       ; 뢠
           PUSH      AX      ;C砫 ३  ࠩ 09h
           IN        AL,09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX,AX
           MOV       ES,AX
           IN        AL,09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX,CS
           CMP       AX,BX
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL,09h  ;C   09h
           MOV       DX,0062
           CMP       BYTE PTR CS: [0001h], 01h
           MOV       DX,0061
           IN        AL,DX
           AND       AL,09h
           OR        AL,09h
           OUT       61,AL
           MOV       CX,0001
           PUSH      DX
           POP       CX
           IN        AL,09h
           MOV       AL,20
           OUT       20,AL
           POP       DX
           CMP       AL,01h
           POP       AX
           CMP       AL,00h
           MOV       AX,0000h
           MOV       BX,0001h
           MOV       CX,0101h
           MOV       DX,1111h
           IN        AL,09h 
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           MOV       DX,1111h
           MOV       CX,0101h
           MOV       BX,0001h
           MOV       AX,0000h
           IN        AL,09h  ;C   09h

           ;㫨  . ࠭ 
           ;ॡ㥬 ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           PUSH      BP
           PUSH      DS
           PUSH      ES
           MOV       AX, CS      ;Hac६ ᥣ ॣ DS
           MOV       DS, AX      ;  ᥣ
           MOV       AX, 40h     ;Hac஥ ॣ ES
           MOV       ES, AX      ;   BIOS
           ;Ha ࠡ ᨬ, ᪮஢   楢
           ;   AX,   묠   ⮬  
           MOV       BX, ES: 1Ah   ; । ᨬ
           MOV       AX, ES: [BX]  ; ᨬ ->  AX
           CMP       AX, Alt_Q    ;  襭 ?
           MOV       AX, ES: [BX]  ; ᨬ ->  AX
           CMP       AH, 2        ;-  2- ?
           MOV       AX, ES: [BX]  ; ᨬ ->  AX
           CMP       AH, 12       ;-  12- ?
           TEST      BYTE PTR ES: 17h,40h  ; <Caps Lock> -  6
           PUSH      BX           ;BX  
           XCHG      AH,AL        ;-  AL  XLAT
           XLAT                   ;࠭
           POP       BX           ;Bocc⠭ BX
           MOV       BYTE PTR ES:[BX],AL ;  ASCII
                                         ; 楢 

           STI       ; 뢠
           RET       ; ࠡ稪
KEYBFUN2   ENDP


KEYBFUN3   PROC      
           CLI       ; 뢠
           PUSH      AX      ;C砫 ३  ࠩ 09h
           IN        AL,09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX,AX
           MOV       ES,AX
           IN        AL,09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX,CS
           CMP       AX,BX
         MOV       WORD PTR [DI-34],AX  
         CMP       WORD PTR [DI-34],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-34]  
         DB        184, 1, 255      
         MOV       WORD PTR [DI-0Ch],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-0Ch], 0000h  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         PUSH      WORD PTR [DI-0Ch]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
         MOV       WORD PTR [DI-38],AX  
         CMP       WORD PTR [DI-38],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-38]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-10],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-10], 0000h   
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI+10]  
         MOV       WORD PTR [DI-14],AX  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI+04]  
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL,09h  ;C   09h
           MOV       DX,0062
           CMP       BYTE PTR CS: [0001h], 01h
           MOV       DX,0061
           IN        AL,DX
           AND       AL,09h
           OR        AL,09h
           OUT       61,AL
           MOV       CX,0001
           PUSH      DX
           POP       CX
           IN        AL,09h
           MOV       AL,20
           OUT       20,AL
           POP       DX
           CMP       AL,01h
           POP       AX
           CMP       AL,00h
           MOV       AX,0000h
           MOV       BX,0001h
           MOV       CX,0101h
           MOV       DX,1111h
           IN        AL,09h 
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           MOV       DX,1111h
           MOV       CX,0101h
           MOV       BX,0001h
           MOV       AX,0000h
           IN        AL,09h  ;C   09h

           ;㫨  . ࠭ 
           ;ॡ㥬 ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           PUSH      BP
           PUSH      DS
           PUSH      ES

           STI       ; 뢠
           RET       ; ࠡ稪
KEYBFUN3   ENDP


KEYBFUN4   PROC      
           CLI       ; 뢠
           PUSH      AX      ;C砫 ३  ࠩ 09h
           IN        AL,09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX,AX
           MOV       ES,AX
           IN        AL,09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX,CS
           CMP       AX,BX
         MOV       WORD PTR [DI-34],AX  
         CMP       WORD PTR [DI-34],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-34]  
         DB        184, 1, 255      
         MOV       WORD PTR [DI-0Ch],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-0Ch], 0000h  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         PUSH      WORD PTR [DI-0Ch]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
         MOV       WORD PTR [DI-38],AX  
         CMP       WORD PTR [DI-38],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-38]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-10],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-10], 0000h   
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI+10]  
         MOV       WORD PTR [DI-14],AX  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI+04]  
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL,09h  ;C   09h
           MOV       DX,0062
           CMP       BYTE PTR CS: [0001h], 01h
           MOV       DX,0061
           IN        AL,DX
           AND       AL,09h
           OR        AL,09h
           OUT       61,AL
           MOV       CX,0001
           PUSH      DX
           POP       CX
           IN        AL,09h
           MOV       AL,20
           OUT       20,AL
           POP       DX
           CMP       AL,01h
           POP       AX
           CMP       AL,00h
           MOV       AX,0000h
           MOV       BX,0001h
           MOV       CX,0101h
           MOV       DX,1111h
           IN        AL,09h 
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           MOV       DX,1111h
           MOV       CX,0101h
           MOV       BX,0001h
           MOV       AX,0000h
           IN        AL,09h  ;C   09h

           ;㫨  . ࠭ 
           ;ॡ㥬 ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           PUSH      BP
           PUSH      DS
           PUSH      ES
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       CX,AX  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-24],AX  
         ADD       BYTE PTR [BX+SI],AL  
         FADD      QWORD PTR [BX+SI]  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-24]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-28],AX  
         CMP       WORD PTR [DI-28],00  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI-24]  
         MOV       CX,WORD PTR [DI-28]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       CX,AX  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-2Ch],AX  
         CMP       WORD PTR [DI-2Ch],00  

           STI       ; 뢠
           RET       ; ࠡ稪
KEYBFUN4   ENDP


KEYBFUN5   PROC      
           CLI       ; 뢠
           FADDP     ST(2),ST  
           OR        AL,34  
           FADDP     ST(2),ST  
           OR        AL,75  
           FIMUL     WORD PTR [BX+DI-53CAh]  
           ADC       BH,BH  
           PUSH      CS  
REP        STOSB       
           ADC       CL,BYTE PTR [BP+DI]  
           NEG       BYTE PTR [BP-3D]  
           PUSH      AX  
           PUSH      SI  
           PUSH      DI  
           PUSH      DS  
           PUSH      AX      ;C砫 ३  ࠩ 09h
           IN        AL,09h  ;C   09h
           POP       AX
           PUSH      BX
           PUSH      ES
           PUSH      ES
           PUSH      AX
           PUSH      BX
           XOR       AX,AX
           MOV       ES,AX
           IN        AL,09h  ;C   09h
           MOV       BX, WORD PTR ES: [0009h]
           MOV       AX, WORD PTR ES: [000Bh]
           MOV       BX,CS
           CMP       AX,BX
         MOV       WORD PTR [DI-34],AX  
         CMP       WORD PTR [DI-34],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-34]  
         DB        184, 1, 255      
         MOV       WORD PTR [DI-0Ch],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-0Ch], 0000h  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      WORD PTR [DI+10]  
         PUSH      WORD PTR [DI-0Ch]  
         MOV       CX,WORD PTR [DI-08]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-04],AX  
         ADD       BYTE PTR [BX+SI],AL  
         PUSH      CS  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       BYTE PTR [BX+SI],AL  
         ADD       SP,04  
         MOV       WORD PTR [DI-38],AX  
         CMP       WORD PTR [DI-38],00  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       CX,WORD PTR [DI-38]  
         DB        184, 1, 255         
         MOV       WORD PTR [DI-10],AX  
         ADD       BYTE PTR [BX+SI],AL  
         MOV       WORD PTR [DI-10], 0000h   
         ADD       BYTE PTR [BX+SI],AL  
         MOV       AX,WORD PTR [DI+10]  
         MOV       WORD PTR [DI-14],AX  
         MOV       AX,WORD PTR [DI-14]  
         PUSH      WORD PTR [BX+SI+04]  
           POP       BX
           POP       AX
           POP       ES
           PUSH      AX
           PUSH      DX
           IN        AL,09h  ;C   09h
           MOV       DX,0062
           CMP       BYTE PTR CS: [0001h], 01h
           MOV       DX,0061
           IN        AL,DX
           AND       AL,09h
           OR        AL,09h
           OUT       61,AL
           MOV       CX,0001
           PUSH      DX
           POP       CX
           IN        AL,09h
           MOV       AL,20
           OUT       20,AL
           POP       DX
           CMP       AL,01h
           POP       AX
           CMP       AL,00h
           MOV       AX,0000h
           MOV       BX,0001h
           MOV       CX,0101h
           MOV       DX,1111h
           IN        AL,09h 
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx1, 01h
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           MOV       BYTE PTR CdEx2, 02h
           POP       DS
           POP       AX
           PUSH      DS
           MOV       AX,4333
           MOV       DS,AX
           XOR       BYTE PTR CdEx3, 04h
           POP       DS
           POP       AX
           MOV       DX,1111h
           MOV       CX,0101h
           MOV       BX,0001h
           MOV       AX,0000h
           IN        AL,09h  ;C   09h
          ; ࠡ ⥬
          ;ணࠬ   
          ;ࠡ稪.
KeybExit: POP      AX
          POP      BX
          POP      DX
          POP      DX
          STI      ; 뢠
          RET      ; ࠡ稪
KEYBFUN5  ENDP

Intr16hLen   EQU   $ - Intr16h
; ணࠬ ࠡ稪 INT 16h


;⥬ ணࠬ INT 17h
Intr17h:
PRINT      PROC      
           CLI       ; 뢠

           ; 楤 ᯮ 㭪樨
           ;ࠡ  ᪮ ⥫  
           ;짮⥫ (맮 ⮩ ⥬ ணࠬ
           ;  ⠡ १ BIOS, 室饣
           ;   ⨢ , १
           ;뢠 INT 17h)
           PUSH    AX  ;⢮ ॣ AX
                       ; 쭥 ⢨
           POP     BX  ; BX ⠢
                       ;᢮  䨪樨

           ;   䫠 AH  AX,
           ; ⢨ ᭮ 䨪樨 ࠢ饩
           ;ணࠬ 
           AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    


           ;।  㭪 ⥬ ணࠬ
           ;뫠 ॡ 짮⥫,   맮
           ;뢠 INT 17h
           ;⢨  ᨬ  ⮣ 䫠
           CMP       AH, 00h
           JE        Prnt1    ; ࠭
           CMP       AH, 01h
           JE        Prnt2    ;᭥ 
           CMP       AH, 02h
           JE        Prnt3    ;祭 ⥬ ଠ樨

           ;    ⠭⭮
           ;୮ ਭ
Prnt1:     MOV       AH,2Dh  
           MOV       BX,0001h  
           MOV       AX,0000h  
           MOV       AX,0002h
           MOV       AH,34  
           MOV       BX,0001h  
           DB        180, 75     ;MOV       AH,4B  
           MOV       AL,00  
           MOV       AH,3Dh  
           MOV       AL,00  
           MOV       AH,4Fh  
           MOV       AX,0002  
           MOV       AH,2Dh  
           MOV       BX,0001h  
           MOV       AX,0000h  
           MOV       AX,0002h  
           MOV       AH,34  
           MOV       BX,0001h  
           DEC       SI  
           INC       DX  
           XOR       BYTE PTR [BX+SI],BH  
           FADD      DWORD PTR [BP+SI]  ;Control tochka 1
           ; ⮩ ,  ...
           RET       ; ࠡ稪


           ;᭥   ஬ ᮥ ਭ.
Prnt2:     PUSH      Word Ptr ES:[DI-02]      ;BR1
           PUSH      Word Ptr ES:[4602]
           PUSH      Word Ptr [BP+06]
           PUSH      DS
           POP       SI
           PUSH      Word Ptr [BP+06]
           ADD       SP,+04
           INC       AX
           ADD       SP,+0Ch
           CMP       AX, 0Ch
           PUSH      SI
           POP       DI
           ADD       SP,+04
           ADD       SP,+0Ch
           ADD       SP,+04
           MOV       BX,AX
           ADD       DI, +0Bh
           CMP       DI, +0Bh
           PUSH      SI
           POP       DI
           ADD       SP,+0Bh
           MOV       SI,Word Ptr [BP+08]
           PUSH      DS
           PUSH      Word Ptr [BP+00]
           PUSH      Word Ptr [DI+01]
           ADD       SP,+08
           RET       ; ࠡ稪

         
         ;᭥ ࠬ஢ ⥬ ਭ
Prnt3:   ADD       SI,+03
         MOV       BX,Word Ptr [BP+04]
         CMP       Byte Ptr [BX], 02h
         PUSH      DX
         POP       CX
         PUSH      Word Ptr ES:[4F44h]
         PUSH      Word Ptr ES:[2E7Ah]
         PUSH      Word Ptr ES:[2E78h]
         ADD       SP,+08
         PUSH      Word Ptr ES:[4F44h]
         PUSH      Word Ptr ES:[2E7Ah]
         PUSH      Word Ptr ES:[2E78h]
         PUSH      DS
         PUSH      SI
         ADD       SP,+04
         INC       AX
         PUSH      AX
         PUSH      CX
         PUSH      DS
         PUSH      SI

         STI       ;, 뢠 㦥
                   ; ᯮ짮
         RET       ; ࠡ稪
PRINT    ENDP

Intr17hLen   EQU   $ - Intr17h
; ணࠬ ࠡ稪 INT 17h


;⥬ ணࠬ INT 18h
Intr18h:
LOADSYS  PROC      
         CLI       ; 뢠

         ; 砫 樨஢ ணࠬ ࠡ
         ;ࠡ ᮯ⨢ ᮯ INT 75h.
         ; 㦭, 㤥  뫪 ⥫
         ;ᯮ塞 ணࠬ   ,
         ;   믮.
         PUSHF   ;Coxpa a   IRET

         MOV     AH, 75h    ;C砫 ३  ࠩ 75h
         MOV     BX, 00h    ; 75h   ।
         MOV     CX, 2      ; ,  ᮤঠ 2 
         LEA     DX, atd2   ;㧨   
         MOV     DX, 0075h  ;   㪠
         CLD     ; 
REP      STOSB   ;࡮  75h  

         ;楤 IOS 樠樨 ணࠬ 뢠 75
Proces:  PUSH    AX  
         POP     BX
         POP     CX
         PUSH    DX
         XOR     AL, AL  
         CMP     AX, 75h
         TEST    AX, 75h
         OUT     75h, AX
         IN      AX, 75h
         MOV     AX, 0001h
         OUT     75h, AX
         MOV     AX, 0001h
         IN      AX, 75h
         CMP     AX, 0Ah
         TEST    AX, 0Ah
         OUT     0Ah, AX
         IN      AX, 0Ah
         OUT     75h, AX
         IN      AX, 75h
         IN      AL, 0Ah
         OUT     0Ah, AL
         POP     DX
         POP     AX  
ProcesLen        EQU      $ - Proces

         ;䨪஢ ணࠬ ᮯ⨢
         ;ᮯ INT 75h, १⭮  
         ; 쭥 権
         MOV     AX, 0075h          ; 
         MOV     BX, 1              ;ਯ 
         MOV     CX, ProcesLen      ; ⥫ १
         MOV     DX, OFFSET Proces  ;砫 ⥫ १
         PUSH    AX  ;  ⢥ ࠡ,
         PUSH    DX  ;  ॣ
         CLD         ;  
REP      STOSB       ; ணࠬ  
         ; 䫠, ।  樥
         POPF

         ;Coxpa AX ࢠ ணࠬ
         PUSH      AX
         IN        AL, 0Ah    ; ன⢮
         CMP       AL, 0
         JNE       NxtBoot    ;Ec ॣ AL = 0

         ; । ன⢠ ?
         POP       AX         ;B⠭ AX

         ;...  ३  ⥬ ࠡ稪
NxtBoot: MOV       DX, OFFSET Old_disk

         ;Ha ᮡ⢥ ࠡ⪠ 뢠,  ᮯ.
         ;० ᥣ ᫥ 믮 । ⢨,
         ;  (75h) ணࠬ㥬 ணࠬ 䥩
         OR        AL, 0Ah
         OUT       75h, AL
         AND       AL, 7Fh
         OUT       75h, AL
         ;⢨     ⥬ ᮢ.
         PUSH      BP
         MOV       BP,SP

         ;㧨  ਩ 襭  ,  
         ;ଠ쭮  .  ᥩ ᬥ,
         ;⭮⥫쭮  ,  2 ᫮ (
         ;PUSH AX  PUSH BP)
         MOV       WORD PTR 4[BP], OFFSET Old_disk
         POP       BP   ;Bocc⠭ BP

         ;஢ 㯠  ࠫ ᪮
         ;⥫
         MOV       DX, 0Ah    ; ஫
         MOV       AL, 11h    ;1: 㤥 
         OUT       DX, AL        
         INC       DX         ;ன  ஫
         MOV       AL, 8      ;2:  
         OUT       DX, AL
         MOV       AL, 4      ;:  祭
                              ; ஢ 2
         OUT       DX, AL
         MOV       AL, 1      ;4: 80x86, ॡ EOI
         OUT       DX, AL

         ;樠  ஫ 뢠
         MOV       DX, 0Ah    ; ஫
         MOV       AL, 11     ;1: 㤥 
         OUT       DX, AL
         INC       DX         ;ன  ஫
         MOV       AL, 70h    ;2:  
         OUT       DX, AL
         MOV       AL, 2      ;:  祭
                              ; ஢ 2
         OUT       DX, AL
         MOV       AL, 1      ;4: 80x86, ॡ EOI
         OUT       DX, AL
         ADD       AL, '1'     ;८ࠧ  ᨬ .
         MOV       AH, 1Eh     ;ந ਡ ᥫ.


         ;樠 㯠  ᪮ ⥫,
         ; ண ।⮨ 㧨 樮
         ;⥬.
         PUSH      AX          ;࠭ ᯮ㥬 
         PUSH      ES          ;ࠡ稪 ॣ.
         POP       BX          ;᢮ 㦭 ॣ 
         POP       CX          ; 묨,  㤥 ࠡ.
         POP       DX
    
         MOV       AX, 0A800h  ;ந ES
         MOV       ES, AX      ;   .

         MOV       BX, 0000h   ;   ⮢ ᪠,
         MOV       BX, AX      ;  2- ᢮ ⮢.
         MOV       CX, 2       ;  ன⢠ - 2 .
         OUT       0Ah, AL     ;᫠  ஫ 뢠
                               ; 0Ah - ࠧ襭 ⥭.
                               ;ॣ ISR.

         MOV       AX, BX      ; ⢥ ᨣ  
         IN        AL, 0Ah     ;ன⢠ ISR.
         CLD       ;  .
REP      STOSB     ;    .
         MOV       ES: 1680, AX      ; ⮢  樨
                                     ; /뢮  ன⢠.


         ;᭥ ⨯ ᪮ ⥫:
         ;0Ah -    ன; 0Eh -  ᪮;
         ;76h - ⪨ ; 70h - -奬, 72h - ⥫
         ;⠭⭮ ⨯ (CD-᪮, ७᭮ ZIP-Drive,
         ;USB-  ..).
Resume:  MOV       BX, 0001h   ;  
         MOV       CX, 0002h   ; 祭  - 2 .

         CMP       DX, 000Ah   ; 設 㯠  ᥬ 譨
         JE        PhisikDisk  ;ன⢠.
         JNE       PortDrive

         CMP       DX, 0070h   ;-奬.
         JE        PhisikDisk
         JNE       PortDrive

         CMP       DX, 000Eh   ; ᪮.
         JE        PhisikDisk
         JNE       PortDrive

         CMP       DX, 0076h   ;⪨ .
         JE        PhisikDisk
         JNE       PortDrive

         CMP       DX, 0072h   ;⠭⭮ ன⢮
         JE        PortDrive
         JNE       PhisikDisk


         ; 
         ;।⢥ 믮 ணࠬ,  ன⢠
         ; ⮢ ᪨,  ᮮ⢥饣 ࠩ.
         ;㧨  ⨢   믮 
         ;ணࠬ   㯨 .
         ;楤 믮 ணࠬ ஬.

PhisikDisk:
         MOV       ES, AX      ;ந ॣ ES
         MOV       AX, DX      ;  ycன⢠.
         MOV       BX, 0001h   ;ਯ ⢮.
         PUSH      CS          ;  CS.
         POP       ES          ; ES ⨬.   
                               ; 㦥.
         XOR       DI, DI                ;ES:DI -> 砫 .
         MOV       CL, 0                 ;.
         MOV       DH, 0                 ;.
         INC       DL                    ;  㬠砭.
        ;MOV       DL, BYTE PTR Old_disk 
         SHL       DH, CL                ;     ᥪ.
         OR        DH, 0                 ; 祭 1,   2. 
         MOV       DS, AX                ;ந ॣ DS
         XOR       DI, SI                ;DS: DI -> 砫 .
         MOV       CX, 1024              ;쪮  (ࠧ,  ),
                                         ;1024  - ࠧ 㧮筮 ᥪ.
         LEA       DI, BootProg          ;㧪  .
         MOV       DI, AX                ;㤠  
                                         ;ந쭮 㯠.            
         PUSH      AX           ;  AX.
         POP       BX           ; BX ⨬.     㦥

         MOV       DX, 13h    ; 㯠  ன
                              ; 13h -  ᪮  ⪨ .
         XCHG      AL, AH     ;⮢ ⠥ 
         INC       CX         ;ॣ AL  ࠭樨.
         MOV       CL, 08h    ;⮢ ਭ楯:  8
         IN        AL, 13h    ;1     
         IN        AL, 13h    ;2           
         IN        AL, 13h    ;3
         IN        AL, 13h    ;4
         IN        AL, 13h    ;5
         IN        AL, 13h    ;6
         IN        AL, 13h    ;7
         IN        AL, 13h    ;8
         XLAT                 ; ⮢ ஬.
         CLD                  ;ࠢ塞  .
REP      STOSB                ;믮 ணࠬ ஬.
         POP       AX         ;⠭ AX. ⮡ 뢥 
                              ; ࠡ⠭ ,
                              ;㯨訥  ⨢ .
         ; ன  ᨣ,  ஫
         MOV     BYTE PTR ES:[DI], 0 


         ;,  ᫠  ன⢮ ஢ ᨣ
         ; ⮬,  ன⢮ ࠢ    , 㦠
         ;୥ BOOT-ணࠬ.                     
         MOV       ES, AX      ;ந ॣ ES
         MOV       AX, DX      ;  ycன⢠.
         MOV       BX, 0001h   ;ਯ ⢮.
         PUSH      CS          ;  CS.
         POP       ES          ; ES ⨬.   
                               ; 㦥.
         XOR       DI, DI                ;ES:DI -> 砫 .
         MOV       CL, 0                 ;.
         MOV       DH, 0                 ;.
         INC       DL                    ;  㬠砭.
        ;MOV       DL, BYTE PTR Old_disk 
         SHL       DH, CL                ;     ᥪ.
         OR        DH, 0                 ; 祭 1,   2. 
         MOV       DS, AX                ;ந ॣ DS
         XOR       DI, SI                ;DS: DI -> 砫 .
         MOV       CX, 1024              ;쪮 뫠 (ࠧ,  ),
                                         ;1024  - ࠧ 㧮筮 ᥪ.
         LEA       DI, BootProg          ;㧪  .
         MOV       DI, AX                ;㤠  
                                         ;ந쭮 㯠.            
         PUSH      AX           ;  AX.
         POP       BX           ; BX ⨬.     㦥

         
         MOV       DX, 13h    ; 㯠  ன
                              ; 13h -  ᪮  ⪨ .
         INC       CX         ;⮢ ⠥  
         XCHG      AL, AH     ;ॣ AL  ࠭樨.
         MOV       CL, 08h    ;⮢ ਭ楯:  8
         OUT       13h, AL    ;1
         OUT       13h, AL    ;2
         OUT       13h, AL    ;3
         OUT       13h, AL    ;4
         OUT       13h, AL    ;5
         OUT       13h, AL    ;6
         OUT       13h, AL    ;7
         OUT       13h, AL    ;8
         XLAT                 ; ⮢ ஬.
         CLD                  ;ࠢ塞  .
REP      STOSB                ;믮 ணࠬ ஬.
         POP       AX         ;⠭ AX. ⮡ 뢥 
                              ; ࠡ⠭ ,
                              ;㯨訥  ⨢ .
         ; ன  ᨣ,  ஫
         MOV     BYTE PTR ES:[DI], 0


         ;३  ࠡ  ⠭묨 㭪ﬨ 
         ;। ࠡᯮᮡ  䠩 ⥬
         ;᪮ ⥫,  ⮬ 砥, ᫨  ⪥
         ;㧪 ணࠬ BOOT-ᥪ 뫠  訡
         ;⥭   ᪠   ᫥⥫쭮
         ;, ⨯ COM, LPT, USB  .
         JMP     FatBoot   



         ;।⢥ 믮 ணࠬ,  ன⢠
         ; ⮢ ᪨,  ᮮ⢥饣 ࠩ.
         ;㧨  ⨢   믮 
         ;ணࠬ   㯨 .
         ;楤 믮 ணࠬ ஬.

PortDrive:
         MOV       ES, AX      ;ந ॣ ES
         MOV       AX, DX      ;  ycன⢠.
         MOV       BX, 0001h   ;ਯ ⢮.
         PUSH      CS          ;  CS.
         POP       ES          ; ES ⨬.   
                               ; 㦥.
         XOR       DI, DI                ;ES:DI -> 砫 .
         MOV       CL, 0                 ;.
         MOV       DH, 0                 ;.
         INC       DL                    ;  㬠砭.
        ;MOV       DL, BYTE PTR Old_disk 
         SHL       DH, CL                ;     ᥪ.
         OR        DH, 0                 ; 祭 1,   2. 
         MOV       DS, AX                ;ந ॣ DS
         XOR       DI, SI                ;DS: DI -> 砫 .
         MOV       CX, 1024              ;쪮  (ࠧ,  ),
                                         ;1024  - ࠧ 㧮筮 ᥪ.
         LEA       DI, BootProg          ;㧪  .
         MOV       DI, AX                ;㤠  
                                         ;ந쭮 㯠.            
         PUSH      AX           ;  AX.
         POP       BX           ; BX ⨬.     㦥

         MOV       DX, 14h    ; 㯠  ன
                              ; 14h - ᫥⥫  COM, LPT  .
         INC       CX         ;⮢ ⠥ 
         XCHG      AL, AH     ;ॣ AL  ࠭樨.
         MOV       CL, 08h    ;⮢ ਭ楯:  8
         IN        AL, 14h    ;1     
         IN        AL, 14h    ;2           
         IN        AL, 14h    ;3
         IN        AL, 14h    ;4
         IN        AL, 14h    ;5
         IN        AL, 14h    ;6
         IN        AL, 14h    ;7
         IN        AL, 14h    ;8
         XLAT                 ; ⮢ ஬.
         CLD                  ;ࠢ塞  .
REP      STOSB                ;믮 ணࠬ ஬.
         POP       AX         ;⠭ AX. ⮡ 뢥 
                              ; ࠡ⠭ ,
                              ;㯨訥  ⨢ .
         ; ன  ᨣ,  ஫
         MOV     BYTE PTR ES:[DI], 0 


         ;,  ᫠  ன⢮ ஢ ᨣ
         ; ⮬,  ன⢮ ࠢ    , 㦠
         ;୥ BOOT-ணࠬ.                     
         MOV       ES, AX      ;ந ॣ ES
         MOV       AX, DX      ;  ycன⢠.
         MOV       BX, 0001h   ;ਯ ⢮.
         PUSH      CS          ;  CS.
         POP       ES          ; ES ⨬.   
                               ; 㦥.
         XOR       DI, DI                ;ES:DI -> 砫 .
         MOV       CL, 0                 ;.
         MOV       DH, 0                 ;.
         INC       DL                    ;  㬠砭.
        ;MOV       DL, BYTE PTR Old_disk 
         SHL       DH, CL                ;     ᥪ.
         OR        DH, 0                 ; 祭 1,   2. 
         MOV       DS, AX                ;ந ॣ DS
         XOR       DI, SI                ;DS: DI -> 砫 .
         MOV       CX, 1024              ;쪮 뫠 (ࠧ,  ),
                                         ;1024  - ࠧ 㧮筮 ᥪ.
         LEA       DI, BootProg          ;㧪  .
         MOV       DI, AX                ;㤠  
                                         ;ந쭮 㯠.            
         PUSH      AX           ;  AX.
         POP       BX           ; BX ⨬.     㦥

         MOV       DX, 14h    ; 㯠  ன
                              ; 14h - ᫥⥫  COM, LPT  .
         INC       CX         ;⮢ ⠥ .
         XCHG      AL, AH     ;ॣ AL  ࠭樨.
         MOV       CL, 08h    ;⮢ ਭ楯:  8
         OUT       14h, AL    ;1
         OUT       14h, AL    ;2
         OUT       14h, AL    ;3
         OUT       14h, AL    ;4
         OUT       14h, AL    ;5
         OUT       14h, AL    ;6
         OUT       14h, AL    ;7
         OUT       14h, AL    ;8
         XLAT                 ; ⮢ ஬.
         CLD                  ;ࠢ塞  .
REP      STOSB                ;믮 ணࠬ ஬.
         POP       AX         ;⠭ AX. ⮡ 뢥 
                              ; ࠡ⠭ ,
                              ;㯨訥  ⨢ .
         ; ன  ᨣ,  ஫
         MOV     BYTE PTR ES:[DI], 0 



         ;३  ࠡ  ⠭묨 㭪ﬨ 
         ;। ࠡᯮᮡ  䠩 ⥬
         ;᪮ ⥫,  ⮬ 砥, ᫨  ⪥
         ;㧪 ணࠬ BOOT-ᥪ 뫠  訡
         ;⥭   ᪠   ᫥⥫쭮
         ;, ⨯ COM, LPT, USB  .
         ;㧪 ⠭ ࠬ஢ 䠩 ⥬ FAT 
         ;⮢ ᨣ  ன⢮
FatBoot: LEA       DX, SizeDrv   ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠
         LEA       DX, SizeCol1  ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠
         LEA       DX, SizeCol2  ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠
         LEA       DX, SizeCol3  ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠
         LEA       DX, SizeCol4  ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠
         LEA       DX, SizeCol5  ;㧪 ࠬ஢
         IN        AL, 0Ah       ;뫪 ᨣ
         OUT       0Ah, AL       ;祭 ⢥ ᨣ
                                 ; ன⢠

         ;     ன⢠
         POP       ES          ;⠭ ࠭ 
         POP       AX          ;ॣ
         ADD       AL, '0'     ;८ࠧ  ᨬ 
         MOV       AH, 4Eh     ;ਡ  來 㣮
         MOV       ES: 1690, AX 
         MOV       AL, 0Eh      ; EOI
         PUSH      AX
           
         ;Pa 뢠  ஫ ᪮ 
         IN        AL, 21h     ; ⥪ 
         AND       AL, 0FEh    ; 롮筮  0
         OUT       0Ah, AL     ;᫠  ॣ ᪨

         ;࠭ ⤥쭮 
         LEA       AX, Bytes
         SBB       AL, 00

         ;  
         LEA       BX, BytClast
         DEC       SP
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         POP       AX

         ;஢ ⠭  
         ;⠭묨 ࠬࠬ 䠩
         ;⥬ FAT
         IN        AX, 0Ah
         MOV       CX, 01FFh  ;  - 512 
         MOV       DX, OFFSET SizeDrv  ;᫮ ஢  ஦
         MOV       Byte Ptr [BX+SI],00
         CLD       ;ࠢ          
REP      CMPSB     ;ࠢ

         ;  
         LEA       BX, BytClast
         DEC       SP
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         POP       AX

         ;ઠ ࠬ஢ ⠭ 
         IN        AX, 0Ah  
         MOV       AX, 0008h  ;᫮ ⮢  
         MOV       CX, 01FFh  ;  - 512 
         MOV       DX, OFFSET SizeDrv ;᫮ ஢  ஦
         CLD       ;ࠢ          
REP      CMPSB     ;ࠢ

         ; ᮤন    
         ;⨢   業樨
         MOV       CX, 01FFh  ;  - 512 
         MOV       AX, SEG BytClast                              
         MOV       ES, AX
         MOV       SI, OFFSET BytClast
         MOV       DI, OFFSET BytClast
REPE     CMPSB     ;業 ⢮

         ;⢮ ⠭ ଠ, 
         ; ᫥ ⢨  ஭
         ;짮⥫ (⥭, , ଠ஢,
         ;᪠஢  稥 訡 㯠  ..)
         MOV       CX, BytClastLen
         MOV       AX, DS  ;Hacpo ᥣ
         MOV       ES, AX  ;pecp   a
         MOV       SI, OFFSET BytClast
         LEA       DI, BytClast  ;㧨 ᮤন
REP      MOVSB     ;⠭    㯠

         ;஢ ⠭   
         ;⨢   㦤 짮⥫
         OUT       0Ah, AX
         MOV       AX,8       ;᫮ ⮢  
         MOV       CX, 01FFh  ;  - 512 
         MOV       DX, OFFSET SizeDrv ;᫮ ஢  ஦
         CLD       ;ࠢ          
REP      CMPSB     ;ࠢ

         ;९ ࠬ  ᫥ 権
         PUSH      AX
         POP       BX
         MOV       AL,0232
         MOV       DH,0032
         MOV       Byte Ptr [SI+00],00

         ;  
         LEA       BX, BytClast
         DEC       SP
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         PUSH      AX
         PUSH      BX
         PUSH      DX
         POP       CX
         ADD       AH,BH
         CLD       ;ࠢ

         ;  
         LEA       BX, BytClast
         DEC       SP
         LAHF      ;㧪 襣   AH
         PUSHF     ;㧪 ॣ  
         POP       AX

         ;  SFT  JFT, 室騩  PSP
         MOV       DI, 18h
         ADD       DI, AX
         MOV       CL, ES:[DI]
         XOR       CH, CH
         ; ,  ⥬ ⠡ 䠩 
         LES       DI, ES:[BX+8]
         CMP       CX, ES:[DI+8]
         JB        Here
         SUB       CX, ES:[DI+8]
         LES       DI,ES:[DI]
         ;Ha諨  SFT,  ன  
Here:    MOV       AX, 59
         MUL       CL
         ADD       DI, 6
         ADD       DI, AX
         MOV      AX, ES:[DI+11h]
         MOV      DX, ES:[DI+13h]
         LES      DI, ES:[DI+8]
         MOV      BL, ES:[DI+8]
         INC      BL
         XOR      BH, BH
         MOV      CL, 9
         SHL      BX, CL
         MOV      SI, BX
         MUL      DX
         NOT      CX  ; ⠥ ⮢
         ;  DX ,  ॣ 稪
         ; CX,  ᢮
         PUSH     DX
         POP      CX
         
         ;࠭   ஦ ᪮ ⥫
         MOV       WORD PTR Path, DX
         PUSHF     ;࠭ 䫠  쭥襩 樨
         DB        240, 1
         SBB       AX,BP

         ;᫥ ⠯ ࠭樨 । 㧪
         MOV       AL,08    ;᫮   
         SBB       BX,SP
         MOV       CX,01FFh  ;  - 512 
         MOV       DX,0000h ; 襭 ⥪饩 㭪樨
         CLD       ;ࠢ          
REP      CMPSB     ;ࠢ

         ;⢮  ⨢ ,  㧪
         ;  ᯮ塞 ணࠬ  楫, ᫥饩
         ;     믮
         MOV       AL,08    ;᫮   
         SBB       BX,SP
         MOV       CX,03FFh  ;  - 1024 
         MOV       DX,0000h ; 襭 ⥪饩 㭪樨
         CLD       ;஢          
REP      STOSB     ;  


         ;⥫ ணࠬ ⠭  
         ;楤 ( 易⥫  믮,
         ;.. ணࠬ BOOT-ᥪ, 㦥 㦥).
LdProg:  POPF      ;  䫠
         PUSH      AX
         POP       DX
         ; 砫 ணࠬ 䠩,  ⠡ FAT.
         MOV       DX, WORD PTR BootProg 
         MOV       CL, 06

         ;ਯ ⥭ ணࠬ 䠩.
         SHL       DH, CL   
         OR        DH, BYTE PTR CodeLoady  ; ᮡ. 
         ;뫪  ⠥     ,
         ; 믮.
         MOV       CX, DX   
         XCHG      CL, CH   

         ;樠 믮 ஬, ணࠬ ⥬ 䠩.
         MOV       DL, BYTE PTR BootProg  
         MOV       DH, BYTE PTR CodeLoady 

         ;㧪 ணࠬ  믮
         LEA       AX, CodeLoady
         MOV       CX, OFFSET SizeProg ;. ࠧ ணࠬ
         CLD       ; 
REP      STOSB     ; 뤥 
         IN        AX, 75h   ;뫪 8- 筮
         IN        AX, 75h   ;⮢ ᨣ
         IN        AX, 75h   ; 
         IN        AX, 75h
         IN        AX, 75h   ;75h -  ᮯ⨢
         IN        AX, 75h   ;ᮯ
         IN        AX, 75h
         IN        AX, 75h
         ;஢ - 䫠   
         ;⥪ 
         MOV       AX,0075h
         OUT       75h, AX
         CMP       AX, 75h
         JNE       Err_Load
         JE        Exitprg
         OUT       75h, AX
         CMP       AX, 75h
         JNE       Err_Load
         JE        Exitprg

         ;᫨, 㦥 訡 㯠, 
         ;ந ᥣ ॣ ES  ࠭
         ;...
Err_Load:  MOV       AX, 0B800h
           MOV       ES, AX
         ;...  뢥c  ᯫ ⥪⮢ ப, 
         ;ᮮ⢥饩 楤 믮  IOS,
         ;  뢠 BIOS  DOS
         MOV       SI, OFFSET Err_Mes       ; ப
         MOV       DI, 22 * 80 * 1 + 1 * 2  ;B  ࠭
         MOV       CX, Err_MesLen           ; ப
REP      MOVSB     ;䨪஢ ।   樨



Exitprg:
         TEST      AX, DX
         POP       AX
         POP       BX
         POP       CX
         POP       DX
         STI       ; 뢠
         RET       ; ࠡ稪
;  ⠭ ࠬ ᪮ ⥫.

;  ண 砫쭮 㧪 樮
;⥬, ࠭饩  BOOT-ᥪ ⥬ ᪠.
BootProg      db        512 dup (?)  ; , 㡫騩 ணࠬ,   
                                     ;㦠  ,  믮.
BootProgLen = $ - BootProg

;  宦   㦭 䠩
; ୥ ⮫ 㧮筮 ᪠
CodeLoady     db        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
              db        85, 170
CodeLoadyLen = $ - CodeLoady

; ᨬ쭮  ࠧ 㦠
;ணࠬ - 320  (256 x 256 x 5)
SizeProg     db  5, 255, 255

LOADSYS      ENDP
Intr18hLen   EQU   $ - Intr18h
; ணࠬ ࠡ稪 INT 18h


;⥬ ணࠬ INT 19h
Intr19h:
RESTART   PROC      
          CLI       ;  뢠
          ; ணࠬ १㧪
          ;  楤 IOS
          MOV       AX, 4000h
          PUSH      AX
          POP       DS

          ;Remminy   MOV     WORD PTR [0072h], 1234
          db        199, 6, 114, 0, 52, 18
          db        184, 255, 255   ;MOV       AX, FFFFh
              
          PUSH      AX
          MOV       AX,0000h
          PUSH      AX
          RET       ;室  ।ᬮ७,
                    ;⠪   ணࠬ
                    ;१㦠 ⥬.
          ;⥫ ࠬ,  
          ; ॡ ணࠬ INT  19h
          OR        Byte Ptr [SI+1Eh], DH
          CMP       CX,0153
          JE        Rstr
          CMP       CX,0147
          JE        Rstr
          CMP       CX,014Fh
          JE        Rstr
          CMP       CX,014Dh
          JE        Rstr
          CMP       CX,014Bh
          JNZ       Rstr2

          MOV       AX,DI
          DEC       AX
          JE        Rstr3
          DEC       AX
          JE        Rstr2
          CMP       CX, 4Bh
          JNZ       Rstr2
          CMP       CX, 6Bh
          JE        Rstr3
          STC
          DEC       BP
          JE        Rstr2
          CMP       CX,+6D
          JNZ       Rstr3
          CMP       CX,+20
          JL        Rstr3
          CMP       CX,2EFFh
          JGE       Rstr2
          PUSH      AX
          PUSH      BX
          ADD       SP,+04
          MOV       AX, 110Eh
          MOV       DX, 1110h

Rstr:     PUSH      AX
          CMP       CX,+20
          CMP       DX,+22
          JL        Rstr2
          CMP       CX,2EFFh
          JGE       Rstr2
Rstr2:    ADD       SP,+04
          MOV       DX, 544Fh
          MOV       AX, 2E8Ah
          POP       DX      
          NOP
          PUSH      CS
          POP       BX
          CMP       DI,+01
          JZ        Rstr3
          AND       Byte Ptr [BP+DI+02FFh],AL
          JNZ       Rstr2
          PUSH      DX
          PUSH      CX
          PUSH      AX
          ADD       SP, 06
          ADD       DI, 03
          MOV       AX, 0000h

Rstr3:    ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
          ADD       Byte Ptr [BX+SI],AL
RESTART   ENDP
Intr19hLen   EQU   $ - Intr19h
; ணࠬ ࠡ稪 INT 19h


;⥬ ணࠬ INT 1Ah
Intr1Ah:
CMOS       PROC      
           CLI       ; 뢠
           MOV       BP, AX
           MOV       AX, ES

           ; 砫 樨஢ ணࠬ ࠡ
           ;ࠡ ᮯ⨢ ᮯ INT 08h.
           ; 㦭, 㤥  뫪 ⥫
           ;ᯮ塞 ணࠬ   ,
           ;   믮.
           PUSHF   ;Coxpa a   IRET

           MOV     AH, 08h    ;C砫 ३  ࠩ 08h
           MOV     BX, 00h    ; 08h   ।
           MOV     CX, 2      ; ,  ᮤঠ 2 
           LEA     DX, atd8   ;㧨   
           MOV     DX, 0008h  ;   㪠
           CLD     ; 
REP        STOSB   ;࡮  08h  

;ࠡ稪 뢠 ⠪⮢   INT 08h
;(ࠡ⪠ ⭮ 뢠).
Reset_08h:    
           PUSH      AX  ;࠭ ᯮ㥬  
           PUSH      ES  ;ࠡ稪 ॣ
           MOV       AX, 0B800h  ;ந ES   
           MOV       ES, AX      
           MOV       AL, 0Bh     ;  ஫ 뢠
           OUT       20h, AL     ; 0Bh - ࠧ襭 ⥭
                                 ;ॣ ISR
           JMP       $+2         ;He প
           IN        AL, 20h     ;⠥ ॣ ISR
           ADD       AL, '0'     ;८ࠧ㥬  ᨬ 
           MOV       AH, 1Eh     ;ந ਡ ᨬ
           MOV       ES: 1680, AX
           MOV       AL, 20h     ;  騩 ஫
           OUT       20h, AL     ; EOI
           JMP       $+2         ;He 
           JMP       $+2         ;প
           IN        AL, 20h     ;C ⠥ ॣ
           ADD       AL, '0'     ;८ࠧ㥬  ᨬ 
           MOV       AH, 4Eh     ;ਡ  來 㣮
           MOV       ES:1690, AX ;뢥  ࠭  㣮 
           POP       ES          ;⠭ ࠭ 
           POP       AX          ;ॣ
Reset_08hLen         EQU         $ - Reset_08h

           ;䨪஢ ணࠬ ஫
           ;⠪⮢  CMOS -  INT 08h,
           ;१⭮    쭥 権
           MOV       AX, 0008h          ; 
           MOV       BX, 1              ;ਯ 
           MOV       CX, Reset_08hLen   ; ⥫ १
           MOV       DX, OFFSET Reset_08h  ;砫 ⥫ १
           PUSH      AX  ;  ⢥ ࠡ,
           PUSH      ES  ;  ॣ
           CLD           ;  
REP        STOSB         ; ணࠬ  
           ; 䫠, ।  樥
           POPF

           ; , ।⢥  ன
           ;⠪⮢  CMOS - 
           MOV       DX, 0008h   ; ஫
           MOV       AL, 11h     ;1: 㤥 3
           OUT       DX, AL      ; ⠪ 
                                 ;ன⢮.
           INC       AX          ;஬ AX  , ⥯
                                 ; ﭭ .
           MOV       AL, 08h     ;  ⮦ ⢮.
           OUT       DX, AL      ;,  ⮢  ࠡ 
                                 ;ன⢮ .

           ;뢮  ⠪⮢  CMOS - 
           ;  ⥪ ६  .
           ;砫  ⥪饬 ६.
           MOV         DX, 0008h     ; 뢮 
           MOV         AL, 0         ;  0
           OUT         DX, AL        ;⠭ ० ⥭
           MOV         BX, 0000h     ;   0  ASCII
           MOV         CX, 0003h     ;᫮ ⮢  
                                     ;⥪饬 ६.
           LEA         DX, Times     ;㧪  
                                     ; 業樨 ⠭
                                     ;.
           INC         DX            ;DX = 0008h -  .
           IN          AL, 08h       ;뫪 ஡ ᨣ
           IN          AL, 08h       ;  ன⢠ CMOS-
           IN          AL, 08h       ; 3- ⮢.
           CMP         CX, 03h       ;஢ 3 ⢮ 

           OUT         08h, AL       ;祭 ⢥⭮ ᨣ 
           OUT         08h, AL       ; ன⢠ CMOS-
           OUT         08h, AL       ; 3- ⮢.
           CMP         CX, 03h       ;஢ 3 ⠭ 

           ;⭠ 䨪  뤥  
           ; ⠪⮢ CMOS -   ⥪饬
           ;६,  쭥襣 ᯮ짮 ணࠬ
           ;짮⥫.
           XCHG      AL, AH          ;祭 ॣ AL, 
                                     ;ᮮ⢥⢮ ॣ AX
           MOV       CX, 0003h       ;3 ⠭  
           MOV       DX, AX          ;⠭   ६
           MOV       BX, 0000h       ;஢   祩
           CLD       ;஢ 
REP        STOSB     ; 䨪  ⨢ 

           ;  ⥪饩 .
           MOV         DX, 0008h     ; 뢮 
           MOV         AL, 0         ;  0
           OUT         DX, AL        ;⠭ ० ⥭
           MOV         BX, 0003h     ;   3  ASCII
           MOV         CX, 0004h     ;᫮ ⮢  
                                     ;⥪饩 .
           LEA         DX, Dates     ;㧪  
                                     ; 業樨 ⠭
                                     ;.
           INC         DX            ;DX = 0008h -  .
           IN          AL, 08h       ;뫪 ஡ ᨣ
           IN          AL, 08h       ;  ன⢠ CMOS-
           IN          AL, 08h       ; 4- ⮢.
           IN          AL, 08h
           CMP         CX, 04h       ;஢ 4 ⢮ 

           OUT         08h, AL       ;祭 ⢥⭮ ᨣ 
           OUT         08h, AL       ; ன⢠ CMOS-
           OUT         08h, AL       ; 4- ⮢.
           OUT         08h, AL
           CMP         CX, 04h       ;஢ 4 ⠭ 

           ;⭠ 䨪  뤥  
           ; ⠪⮢ CMOS -   ⥪饩
           ;ᥣ譥 ,  쭥襣 ᯮ짮
           ;ணࠬ 짮⥫.
           XCHG      AL, AH          ;祭 ॣ AL, 
                                     ;ᮮ⢥⢮ ॣ AX
           MOV       CX, 0004h       ;4 ⠭  
           MOV       DX, AX          ;⠭   
           MOV       BX, 0003h       ;஢  ⨩ 祩
           CLD       ;஢ 
REP        STOSB     ; 䨪  ⨢ 

           PUSHF     ;࠭  䫠, 
                     ;࠭⭮ .
           STI       ; 뢠
           RET       ; ࠡ稪

; 
atd8       dw        0  ;祩  ਯ
Times      db        0, 0, 0    ;騥 ६
Dates      db        0, 0, 0, 0 ; 
CMOS       ENDP

Intr1AhLen   EQU   $ - Intr1Ah
; ணࠬ ࠡ稪 INT 1Ah


;⥬ ணࠬ INT 1Bh
Intr1Bh:
BREAK    PROC      
         CLI       ; 뢠                        

         ; 砫 樨஢ ணࠬ ࠡ
         ;ࠡ ᮯ⨢ ᮯ INT 09h.
         ; 㦭, 㤥  뫪 ⥫
         ;ᯮ塞 ணࠬ   ,
         ;   믮.
         PUSHF   ;Coxpa a   IRET
         MOV     AH, 09h    ;C砫 ३  ࠩ 09h
         MOV     BX, 00h    ; 09h   ।
         MOV     CX, 2      ; ,  ᮤঠ 2 
         LEA     DX, atd12  ;㧨   
         MOV     DX, 0009h  ;   㪠
         CLD     ; 
REP      STOSB   ;࡮  09h  
         

;ࠡ稪 뢠 ஫   INT 09h
;(ࠡ⪠ ⭮ 뢠).

         JMP     Reset2_09h  ;室  ᥪ 樠樨

;   १⭮ ᥪ樨 ணࠬ
Vect_09h   dd        0
BreakMes   db        'Z', 4, '^', 4, 32, 4, 32, 4
           db        'B', 4, 'R', 4, 'E', 4, 'A', 4, 'K', 4
KeyBreak   db        29, 8   ;  CNTR  Bs

Reset2_09h:
         PUSHF   ;Coxpa a   IRET
         CALL    CS:Vect_09h ;C砫 ३  ࠩ 09h
         PUSH    AX          ;㫨  . ࠭ 
         PUSH    BX          ;ॡ㥬 ॣ
         PUSH    CX
         PUSH    DX
         PUSH    BP
         PUSH    DS
         PUSH    ES
         MOV     AX,CS       ;Hac६ ᥣ ॣ DS
         MOV     DS,AX       ;  ᥣ
         MOV     AX,40h      ;Hac஥ ॣ ES
         MOV     ES,AX       ;   BIOS
         ;Ha ࠡ ᨬ, ᪮஢ 
         ; 楢    AX,   묠
         ;  ⮬  .
         MOV     BX,ES:1Ah   ; । ᨬ
         MOV     AX,ES:[BX]  ; ᨬ ->  AX
         CMP     AX,0000h    ;  襭 ?
         JE      InitBreak   ;,  ⠭ 
         CMP     AH,2        ;-  2- ?
         JB      FreReg      ;,  室  뢠
         CMP     AH,12       ;-  12- ?
         JA      FreReg      ;,  室  뢠

         ;-   ।. Ho - 
         ;ॡ㥬  .
         TEST    BYTE PTR ES:17h,40h ; <Ctrl>/Bs -  6
         JZ      FreReg      ;,  室  뢠

         ;㦭   
         PUSH    BX          ;BX  
         LEA     BX,KeyBreak ; ⠡ 樨
         XCHG    AH,AL       ;-  AL  XLAT
         XLAT                ;࠭
         POP     BX          ;Bocc⠭ BX
         ;  ASCII  楢 
         MOV     BYTE PTR ES:[BX],AL
    
;᢮ coxpa ࠭ ॣ
FreReg:  POP     ES          
         POP     DS          
         POP     BP          
         POP     DX          
         POP     CX
         POP     BX
         POP     AX

InitBreak:
         ;樠樨 㯠 ⭮ 㯠
         ; .
         PUSH      AX
         IN        AL,09h  ;C   09h
         POP       AX
         PUSH      BX
         PUSH      ES
         PUSH      ES
         PUSH      AX
         PUSH      BX
         XOR       AX,AX
         MOV       ES,AX
         IN        AL,09h  ;C   09h
         MOV       BX, WORD PTR ES: [0009h]
         MOV       AX, WORD PTR ES: [000Bh]
         MOV       BX,CS
         CMP       AX,BX
         POP       BX
         POP       AX
         POP       ES
         PUSH      AX
         PUSH      DX
         IN        AL,09h  ;C   09h
         MOV       DX,0062
         CMP       BYTE PTR CS: [0001h], 01h
         JNZ       BrNxt  
         MOV       DX,0061
         IN        AL,DX
         AND       AL,09h
         OR        AL,09h
         OUT       61,AL
BrNxt:   PUSH      CX
         MOV       CX,0001
         PUSH      DX
         POP       CX
         IN        AL,09h
         MOV       AL,20
         OUT       20,AL
         POP       DX
         POP       AX
         MOV       AX,0000h
         MOV       BX,0001h
         MOV       CX,0101h
         MOV       DX,1111h
         IN        AL,09h  ;C   09h
         PUSH      DS
         MOV       AX,4333
         MOV       DS,AX
         MOV       WORD PTR [BX+08], 01h
         PUSH      DS
         MOV       AX,4333
         MOV       DS,AX
         MOV       WORD PTR [BX+08], 02h
         POP       DS
         POP       AX
         PUSH      DS
         MOV       AX,4333
         MOV       DS,AX
         XOR       WORD PTR [BX+08], 04h
         MOV       DX,1111h
         MOV       CX,0101h
         MOV       BX,0001h
         MOV       AX,0000h
         IN        AL,09h  ;C   09h
         POP       ES
         POP       BX
Reset2_09hLen       EQU     $ - Reset2_09h

         ;䨪஢ ணࠬ 㯠 
         ;஫  INT 09h, १⭮
         ;   쭥 権
         MOV       AX, 0009h          ; 
         MOV       BX, 1              ;ਯ 
         MOV       CX, Reset_09hLen   ; ⥫ १
         MOV       DX, OFFSET Reset_09h  ;砫 ⥫ १
         PUSH      AX  ;  ⢥ ࠡ,
         PUSH      ES  ;  ॣ
         CLD           ;  
REP      STOSB         ; ணࠬ  
         ; 䫠, ।  樥
         POPF

         ; , ।⢥  ன
         ;,  ࠡ  .
         MOV       DX, 0009h   ; ஫
         MOV       AL, 11h     ;1: 㤥 3
         OUT       DX, AL      ; ⠪ 
                               ;ன⢮.
         INC       AX          ;஬ AX  , ⥯
                               ; ﭭ .
         MOV       AL, 09h     ;  ⮦ ⢮.
         OUT       DX, AL      ;,  ⮢  ࠡ 
                               ;ன⢮ .
         ;஢, -  
         CMP       DX, OFFSET KeyBreak
         JE        ExtBreak        ;
         JMP       NoPress         ;

ExtBreak:
         ;뢥 ᮮ饭  ਩ 㧪.
         MOV       AX, SEG symb
         MOV       DS, AX
         MOV       AX, 0B800h  ; 
         MOV       ES, AX
         MOV       DI, Offs2   ;饭  ࠭
         LEA       SI, BreakMes  ; ᮮ饭
         MOV       CX, 18      ;᫮ 뢮 ⮢
REP      MOVSB     ; ⮡ࠦ  ᯫ
         ADD       Offs2, 170  ;  ࠭
         INC       symb        ;䨪 ⠭
         ; ணࠬ   뢠
         ; 楤 IOS.
         MOV       AX, 0000h
         PUSH      AX
         POP       DS
         LES       CX,DWord Ptr [SI]         ;BR0
         MOV       DX,Word Ptr [7964h]       ;BR1
         INC       Word Ptr ES:[02B4h]
         PUSH      AX
         MOV       AX,0000h
         PUSH      AX
         POP       SI    ;᢮ ॣ
         POP       DI
         STI       ; 뢠
         RET       ;  ணࠬ, १ IOS
                   ; 뢠

         ;⪠  ࠡ⪨ ணࠬ 뢠 INT 1Bh
         ; ⮬ 砥, ᫨    
NoPress: POPF      ;,  䫠, ।  樥
         STI       ; 뢠
         RET       ; 横 १⭮ ࠡ稪

atd12    dw        0          ;祩  ਯ.
Symb     db        'a'
Offs2    dw        800        ;砫쭠   ࠭
BREAK    ENDP
Intr1BhLen   EQU   $ - Intr1Bh
; ணࠬ ࠡ稪 INT 1Bh


;⥬ ணࠬ INT 1Ch
Intr1Ch:
MELODY     PROC      
           CLI       ; 뢠
           ; 楤 ᯮ 㭪樨 ࠡ
           ; 㪮   짮⥫ (맮
           ;⮩ ⥬ ணࠬ   ⠡ १
           ;BIOS, 室饣    ⨢ ,
           ;१ 뢠 INT 1Ch)
           PUSH    AX  ;⢮ ॣ AX
                       ; 쭥 ⢨
           POP     BX  ; BX ⠢
                       ;᢮  䨪樨

           ;   䫠 AH  AX,
           ; ⢨ ᭮ 䨪樨 ࠢ饩
           ;ணࠬ 
           AAS
          ;⠥,   䫠 AH  AX
          ;   砥, - 
          ;뫮.
          AAA
          STOSB        ;᢮ 祭 䫠
                       ;襣 ॣ
                      
          ;ਤ ⮬ 䫠  ⢥
          ;᫠ c ।塞 ந쭮 ६.
          CMP      AH, AL                      
          CMPSB
          SCASB                               
          PUSH     AX       ;४ ࠢ饣 ॣ

          ;  ॣ஢ AH  AX 
          ;᫥饣 ᯮ,  ந쭮
          ;६  祭 ꥪ⨢ १.
          TEST     AH, AL
          CMC      ;⮢    


           ;।  㭪 ⥬ ணࠬ
           ;뫠 ॡ 짮⥫,   맮
           ;뢠 INT 1Ch
           ;⢨  ᨬ  ⮣ 䫠
           CMP       AH, 00h
           JE        Melody1  ;ந 㪠
           CMP       AH, 01h
           JE        Melody2  ;ᨫ 㪠


           ;⢮ ॣ 
           ;ந⢠ 㪠
Melody1:   MOV       AX, 00DCh
           PUSH      AX
           ;⢥ ந⢮ 㪠
           MOV       BX, SP
           MOV       BX, Word Ptr SS:[BX+04]
           MOV       AX, 34DDh
           MOV       DX, 0012h
           CMP       DX, BX
           MUL       BX
           MOV       BX, AX
           IN        AL, 61
           TEST      AL, 03
           JNZ       Mel
           OR        AL, 03
           OUT       61, AL
           MOV       AL, 00B6h
           OUT       43, AL
Mel:       MOV       AL, BL 
           OUT       42, AL
           MOV       AL, BH
           OUT       42, AL
           STI       ; 뢠
           RET       ; ࠡ稪
           
Melody2:   ;ந ॣ  ᨫ
           ;砭
           MOV       AX, 00C8h
           PUSH      AX
           ;⢥ ᨫ 㪠
           MOV       BX, SP
           MOV       BX ,Word Ptr SS:[BX+04]
           MOV       AX, 34DDh
           MOV       DX, 0012h
           CMP       DX, BX
           MUL       BX
           MOV       BX, AX
           OUT       42h, AL
           MOV       DX, CX
           OUT       43h, AL
           TEST      AL, 03
           JNZ       Mel2
           OR        AL, 03
           IN        AL, 61h
           MOV       AL, 00B6h
           IN        AL, 61h
Mel2:      MOV       AL, BL 
           IN        AL, 61h
           MOV       AL, BH
           IN        AL, 61h

           STI       ; 뢠
           RET       ; ࠡ稪
MELODY     ENDP

Intr1ChLen   EQU   $ - Intr1Ch
; ணࠬ ࠡ稪 INT 1Ch


;⥬ ணࠬ INT 1Dh
Intr1Dh:
GRFPARM      PROC      
             CLI       ; 뢠

             ;㧨 㭪,  ᯮ㥬
             ;뢠 INT 10h - Video Screen ROM BIOS
             ;⠪-,   砫쭮 㧪 .
             AND       WORD PTR Fnct1D, AX    ;Haa  㭪樨
             AND       BYTE PTR Vect_1D, AH   ;  뢠
             CLD       ;  ⠡ ࠭樨
             MOV       SI, 04    ;㥬 , 4- 
             ADD       SI, BX    ;⥫ ணࠬ  
             LODSB     ;㧪 ࡮ ,  

             ;樠 ⠭, ⢨  ࠡ⪥ 
             ;ᨣ
             MOV       BYTE PTR DS: [DI+1], 0
             MOV       BYTE PTR DS: [DI+2], 0
             MOV       BYTE PTR DS: [DI+3], 0  
             MOV       BYTE PTR DS: [DI+4], 0  
             MOV       BYTE PTR [BP+83],AL  
             MOV       BYTE PTR ES: [DI+1], 1  
             MOV       BYTE PTR ES: [DI+1], 1  
             MOV       BYTE PTR ES: [DI+1], 1  
             MOV       BYTE PTR ES: [DI+1], 1  

             ;樠 ࡮ ⮣ ॣ
             MOV       WORD PTR Ony, AX
             MOV       WORD PTR Ony, BX  
             MOV       WORD PTR Ony, CX  
             MOV       WORD PTR Ony, DX  
             ;樠 ࡮ ᢮ ॣ
             MOV       WORD PTR Offy, AX
             MOV       WORD PTR Offy, BX  
             MOV       WORD PTR Offy, CX  
             MOV       WORD PTR Offy, DX  
             ;樠 饣 㯠   
             ;⢨  
             MOV       AH, 4Bh  
             MOV       AL, 00 
             MOV       AH, 3Dh
             MOV       AL, 0
             MOV       AH, 4Fh
             MOV       AX, 02
             MOV       AH, 45
             MOV       BX, 1
             MOV       AX, 0
             MOV       CX, 0Fh
             MOV       AX, 02
             MOV       AH, 34  
             MOV       BX, 1
             MOV       AH, 4Bh  
             MOV       AL, 00 
             MOV       AH, 3D
             MOV       AL, 0
             MOV       AH, 4Fh
             MOV       AX, 02
             MOV       AH, 45
             MOV       CL, 1
             MOV       DH, 0
             MOV       DL, 02
             MOV       DX, 34  
             MOV       CX, 0Fh
             MOV       BX, 1
             CLD
REP          STOSB

             ;襭 ⥬ 㭪樨 ணࠬ ( IOS 㯥ࢨ)
             DB        78        ;DEC  SI
             DB        66        ;INC  DX
             DB        48, 56    ;Byte Ptr [BX+SI], BH
             DB        216, 02   ;Fadd DWord Ptr [BP+SI]
             CLD       ;  ⠡ ࠭樨
             MOV       SI, 12    ;㥬 , 12- 
             ADD       SI, BX    ;⥫ ணࠬ  
REP          STOSB     ;㧪 ࡮ ,  

             ;८ࠧ  ᨣ,  ⮡ࠦ ᨬ
             MOV       BX,AX    ;㦠
             CMP       BX,256   ;ᥣ 256 
             SUB       BX,0808  ; 8 x 8

             MOV       AX, 0     
             MOV       BX, 1    
             ;㧨   ⨢ ,
             ; 
             MOV       DX, 01 
             CMP       DX, 0808
             ;Ec   ᨬ
             ;Ec,  , ᠬ ᨬ
             SUB       BX,0808      ; 8 x 8

             ;㧪 , ।ᬮ७
             ;  ᨬ
             MOV       AX, 0001h
             MOV       CX, 00FFh  ;256 ᨬ
             MOV       BX, 8      ; 8 
REP          STOSB
             ;⮡ࠦ ᨬ  ⮩ ,  ࠭
             MOV       DX,WORD PTR CS:[BX+1774]
             CMP       DX,17A0h  
             MOV       BX,BX  
             MOV       AX,BX  
             AAM         
             MOV       DX,AX  
             XCHG      DH,DL  
             ADD       DL,30  
             MOV       AH,02  
             XCHG      DH,DL  
             ADD       DL,30  
             MOV       AH,02  
             MOV       DX,1766  
             MOV       AH,09  
             MOV       DX,WORD PTR CS:[BX+1774]  
             MOV       AH,09  
             MOV       DX,1750  
             MOV       AH,09  
             POP       DS  
             POP       DX  
             POP       BX  
             PUSH      AX  
             PUSH      SI  
REP          STOSB           
             ADC       BL, BYTE PTR SS:[6606]
             PUSHF       
             XCHG      AX, BX  
             XOR       BH, BH  
             SHL       BX, 1  
             CMP       BX, 0040h  
             JNB       LdPrm1  
             CLD         
             ADC       DI, WORD PTR [BP+08]
             POP       DX  
             ADC       SP, WORD PTR [BP+13]  
             JBE       LdPrm1  
             MOV       DX, 9015h  
             ADC       SI, WORD PTR [DI-23EDh]  
             ADC       CX, WORD PTR [BX+DI]  
             ADC       AL, 21  
             ADC       AL, 46  
             ADC       AL, 38  
             ADC       AL, 2Ch  
             ADC       AX, 154Eh  
LdPrm1:      POP       BP  
             ADC       AX, 15BAh  
             MOV       DX, 15BAh  
             ADC       AX, 15BAh  
             MOV       DX, 15BAh  
             ADC       AX, 1569h  
             JNB       LdPrm2  
             CBW         
             ADC       AX, 15BAh  
             MOV       DX, 15BAh  
             ADC       AX, 15BAh 
             MOV       DX, 15BAh 
             ADC       AX, 15BAh 
             MOV       DX, 15BAh 
LdPrm2:      ADC       AX, 61E8h 
             OR        AH, AH  
             JE        LdPrm3  
             JMP       LdPrm4  
LdPrm3:      MOV       CL, 01  
             TEST      AL, 88  
             JE        LdPrm4  
LdPrm4:      PUSH      CX
             MOV       BX, CX  
             AND       BL, 03  
             MOV       AH, BYTE PTR CS: [BX+138Ch]  
             POP       CX  
             OR        WORD PTR [BX+SI], AX  
             OR        CL,BYTE PTR [BP+DI]  
             MOV       BP, SP  
             MOV       AX, 7000  
             MOV       BYTE PTR [BP+19], AH  
             MOV       AX, 01FFh  
             MOV       WORD PTR [BP+14], AX  
             MOV       AL,20  
             MOV       WORD PTR [BP+10], AX  
             MOV       WORD PTR [BP+04], AX  
             MOV       WORD PTR [BP],AX  
             MOV       BP,SP  
             MOV       WORD PTR [BP+25], BX  
             AND       AL,0Fh  
             MOV       AX,AX  
             MOV       AL,30  
             OUT       DX,AL  
             INC       DX  
             IN        AL,DX  
             AND       AL,08  
             OUT       02h, AX  
             OR        AL,AH  
             OR        AL,01  
             MOV       BYTE PTR ES:[DI+2D],AL  
             MOV       AL,03  
             MOV       BYTE PTR ES:[DI+31],AL  
             PUSH      DS  
             PUSH      ES  
             XOR       DL,DL  
             MOV       BX, 0008h  
             MOV       CX, ES  
             MOV       SI, CS  
             CMP       CX, SI  
             JE        LdPrm7  
             LDS       SI, ES:[BX+04]  
             MOV       CX, DS  
             OR        SI, CX  
             JE        LdPrm5  
             OR        DL, 10  
LdPrm5:      LDS       SI, ES: [BX+0Ch]  
             MOV       CX, DS  
             OR        SI, CX  
             JE        LdPrm6  
             OR        DL, 08  
LdPrm6:      LDS       SI, ES: [BX+08]  
             MOV       CX, DS  
             OR        SI, CX  
             JE        LdPrm8  
             OR        DL, 04  
LdPrm8:      LDS       SI, ES: [BX+10]  
             MOV       CX, DS  
             OR        SI, CX  
             JE        LdPrm7  
             OR        DL, 01  
LdPrm7:      POP       ES  
             POP       DS  
             MOV       BYTE PTR ES:[DI+32],DL  
             MOV       AL, 03  
             MOV       DX, 03C4h  
             MOV       AH, AL  
             MOV       AH, 02  
             MOV       DL, AH  
             MOV       DH, DL  
             SHR       DH, 1  
             AND       DX, 0404h  
             AND       AX, 0303h  
             OR        AX, DX  
             MOV       WORD PTR ES:[DI+2Bh],AX  
             MOV       BP, SP  
             MOV       BYTE PTR [BP+1Ch], 1Bh  
             OR        AL,AL  
             JE        LdPrm11  
             DEC       AL  
             JE        LdPrm15  
             DEC       AL  
             JE        LdPrm16  
             MOV       BP,SP  
             MOV       BYTE PTR [BP+1Ch],00  
LdPrm11:     MOV       AX, 0020h  
             TEST      CL, 01  
             JE        LdPrm12  
             ADD       AX, 60  
LdPrm12:     TEST      CL, 02  
             JE        LdPrm13  
             ADD       AX,3Ah  
LdPrm13:     TEST      CL,04  
             JE        LdPrm14  
             ADD       AX,0303  
LdPrm14:     SUB       WORD PTR [BX+SI+7404],04  
             MOV       BH,03  
             MOV       BH,00  
             MOV       AL,0Bh  
             POP       BX  
             POP       CX  
LdPrm15:     POP       DX  
             MOV       AX,004Fh  
             CMP       BYTE PTR ES:[DI],00  
             JZ        LdPrm17  
             NOP         
             XCHG      WORD PTR [BP+52],CX  
             DEC       DI  

LdPrm17:     POP       DS
             PUSH      CX  
             OUT       10h, AX
             PUSH      DX  
             CLD         
             PUSH      BX  
             MOV       AL,52  
             LAHF        
             PUSH      SP  
             MOV       DX, 00FFh         
             PUSH      BP  
             POP       DS  
             PUSH      SI  
             PUSH      DI  
             POP       ES  

LdPrm16:     FCOM      QWORD PTR [BP-1Ch]
             POP       CX  
             IN        AL, 59h  
             IN        AL, 59h  
             IN        AL, 59h  
             IN        AL, 59h  
             TEST      AX, 58   
             POP       CX  
             IN        AL, 59h  
             IN        AL, 59h  
             IN        AL, 59h  
             OR        BYTE PTR [BX+DI-75],BL  
             FADD      DWORD PTR [BP+SI]

             NOP
             PUSH      AX  
             DEC       BP  
             DEC       CX  
             INC       SP  
             STOSW       
             PUSH      DS  
             ADD       BYTE PTR [BX+SI],AL  
             MOV       AL, 000Bh  
             ADD       BYTE PTR [BX+SI-4000],BH  
             ADD       BYTE PTR [BX+SI],AL  
             MOV       CX, 000Fh
             MOV       DX, 9999h
             IN        AL, 59h
             IN        AL, 59h  
             IN        AL, 59h
             IN        AL, 59h  
REP          MOVSB

             PUSH      AX
             PUSH      DX
             MOV       DS, CS: [59F8h]
             MOV       AX, DS  
             MOV       WORD PTR [BP+36], AX
             MOV       WORD PTR [BP+46], AX
             MOV       WORD PTR [BP+58], AX
             MOV       DS, CS: [59F0h]  
             MOV       WORD PTR [BP+04], AX
             POP       DS  
             POP       AX  
             PUSH      DX  
             OUT       DX,AL  
             POP       ES  
             POP       DX  
             OUT       DX,AX  
             POP       DX  
             PUSH      DX  
             IN        AL,DX  
             POP       DX  
             PUSH      DX  
             IN        AX,DX  
             POP       DX  
             PUSHF       
             PUSH      DI  
             XOR       DH,DH  
             MOV       DI,DX  
             ADD       DX,DI  
             POP       DI  
             POPF        
       
             MOV       DX, WORD PTR CS: [013Eh]  
             OR        DX, DX  

             POPF
             PUSH      AX  
             PUSH      BX  
             MOV       BX, WORD PTR CS: [013Ah]  
LdPrm20:     XOR       DX, BX  
             CMP       AX, WORD PTR CS: [0188]  
             JNZ       LdPrm21  
             MOV       DL,14  
             MOV       DH,AH  
LdPrm21:     ADD       BX,08  
             CMP       BH,09  
             JB        LdPrm20 
             MOV       DX, WORD PTR CS: [013Eh]  
             XOR       DL, AL  
             POP       BX  
             POP       AX  
             PUSH      DX  
             PUSH      BX  
             MOV       BX, WORD PTR CS:[013Ah]  
             XOR       DX, BX  
             CMP       AX, WORD PTR DS: [0188]  
             JNZ       LdPrm23  
             MOV       DL,04  
             AND       AL,03  
             XOR       AL,03  
             MOV       DL,AL  
             OR        DL,DL  
             JNZ       LdPrm23  
             MOV       DL,14  
             MOV       DH,AH  
LdPrm23:     ADD       BX,08  
             CMP       BH,09  
             JB        LdPrm20  
             MOV       DX, WORD PTR CS: [013Eh]  
             XOR       DL,AL  
             POP       BX  
             POP       AX  
             MOV       AL, BH  
             MOV       AX, 10  
             MOV       AH, BL  
             MOV       AL, DL  
             PUSHF       
             CLI         
             MOV       DX, 0CF8h 
             OUT       DX, AX  
             MOV       DX, 0CFCh  
             IN        AX, DX  
             POPF        
             PUSH      CX  
             POP       DX  
             XOR       CL, DL  
             PUSH      DX  
LdPrm10:     MOV       CL, 01  
             PUSH      CX  
             MOV       CL, 02  
             POP       CX  
             MOV       CL, 03  
             PUSH      DX  
             PUSH      AX  
             PUSH      DI  
             MOV       DL, 00  
             IN        AX, DX  
             MOV       DI, AX  
             XOR       AX, DX  
             MOV       BX, WORD PTR [BX+DI-18]  
             MOV       CX, DX
             CLD
REP          CMPSB

             POP      DX  
             POP      AX  
             POP      DI  
             STI      ;Pape pepa
             RET      ; ࠡ稪

;  ९뢠 , ணࠬ Funct 11.12 Int 10h
Vect_1D       DB        29        ;Ho ⥬ 뢠
Fnct1D        DB        17, 18    ;Ho 㭪樨  㭪樨
;  ⮢ 祥, ᯮ㥬   樠樨
;⥪⮢ ०
Ony           DD        1         ;ன⢮ 祭
Offy          DD        0         ;ன⢮ ⪫祭
GRFPARM      ENDP

Intr1DhLen   EQU   $ - Intr1Dh
; ணࠬ ࠡ稪 INT 1Dh


;⥬ ணࠬ INT 1Eh
Intr1Eh:
FLOPPY2    PROC      
           CLI       ;   IF = 0
           MOV       BP, AX
           MOV       AX, ES

           ;। ࠬ஢  ᪠
           ; 160 .
Flpp0:     MOV       AL, 00h   ;㭪  - 00h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat0 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 38    ;⢮ ஦ - 38
           MOV       CX, 1280  ;⢮ ᥪ஢ - 1280
           MOV       CL, 128   ;⢮    ᥪ
           LEA       DX, Sect  ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect       db        128 Dup (?)
SectLen    EQU       $ - Sect
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp1
Fat0       db        'FAT 10'

           ;। ࠬ஢  ᪠
           ; 360 ,  ᪮  䮬஢
           ; 1,2 .
Flpp1:     MOV       AL, 01h   ;㭪  - 01h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat0 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 76    ;⢮ ஦ - 76
           MOV       CX, 2560  ;⢮ ᥪ஢ - 2560
           MOV       CL, 128   ;⢮    ᥪ
           LEA       DX, Sect1 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect1      db        128 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ

           ;। ࠬ஢  ᪠
           ; 360 ,  ᪮  䮬஢
           ; 1,2 .
Flpp2:     MOV       AL, 02h   ;㭪  - 02h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat1 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 38    ;⢮ ஦ - 38
           MOV       CX, 1280  ;⢮ ᥪ஢ - 1280
           MOV       CL, 00FFh ;⢮    ᥪ - 256
           LEA       DX, Sect2 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect2      db        256 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp3
Fat1       db        'FAT 12'

           ;। ࠬ஢  ᪠
           ; 1,2 ,  ᪮  䮬஢
           ; 1,2 .
Flpp3:     MOV       AL, 03h   ;㭪  - 03h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat1 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 76    ;⢮ ஦ - 76
           MOV       CX, 2560  ;⢮ ᥪ஢ - 2560
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sect3 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect3      db        512 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp4
Fat2       db        'FAT 12'


           ;। ࠬ஢  ᪠
           ; 720 .  ᪮  ଠ஢
           ; 1,44 .
Flpp4:     MOV       AL, 04h   ;㭪  - 04h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat1 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 40    ;⢮ ஦ - 40
           MOV       CX, 1423  ;⢮ ᥪ஢ - 1423
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sect4 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect4      db        512 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ

           ;। ࠬ஢  ᪠
           ; 720 .  ᪮ c ଠ஢
           ; 1,44 .
Flpp5:     MOV       AL, 05h   ;㭪  - 05h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat1 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 40    ;⢮ ஦ - 40
           MOV       CX, 1423  ;⢮ ᥪ஢ - 1423
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sect5 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect5      db        512 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp6
Fat3       db        'FAT 12'

           ;। ࠬ஢  ᪠
           ; ⠭ ࠧ 1,44 M.
Flpp6:     MOV       AL, 06h   ;㭪  - 06h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat3 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 80    ;⢮ ஦ - 80
           MOV       CX, 2847  ;⢮ ᥪ஢ - 2847
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sect6 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect6      db        512 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ

           ;। ࠬ஢  ᪠
           ; ᨬ ࠧ 2,88 M.
Flpp7:     MOV       AL, 07h   ;㭪  - 07h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat3 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 00A0h ;⢮ ஦ - 160
           MOV       CX, 5694  ;⢮ ᥪ஢ - 5694
           MOV       CL, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, 01FFh ;⢮    ᥪ - 512
           LEA       DX, Sect7 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect7      db        512 Dup (?)
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp8
Fat4       db        'FAT 12'

           ;। ࠬ஢ 筮 ⥫,
           ; ᪮  ᪥,  ଠ஢
           ; 126 .
Flpp8:     MOV       AL, 08h   ;㭪  - 08h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat5 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CH, 10    ;⢮ ஦ - 10 
           MOV       CX, 0999  ;⢮ ᥪ஢ - 0999
           MOV       CL, 128   ;⢮    ᥪ - 128
           LEA       DX, Sect8 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect8      db        128 Dup (?)
Sect8Len   EQU       $ - Sect8
REP        CMPSB     ;ࠢ 㦥 ᢥ
           JMP       Flpp9
Fat5       db        'FAT 10'

           ;। ࠬ஢ ⠭⭮
           ;᪮ CD-᪠,  񬪮  650 .
Flpp9:     MOV       AL, 09h   ;㭪  - 09h
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat6 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CX, 90FFh ;⢮ ஦ - 400 
           MOV       CL, 3     ;  ᫠   3 .
           MOV       CH, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, OFFSET SectCD  ;⢮ ᥪ஢ - 142350
           MOV       CH, 2     ;2 - 祭   㦥 ஢.
           MOV       CX, 00FFh ;⢮    ᥪ - 512
           LEA       DX, Sect9 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
Sect9      db        512 Dup (?)
Sect9Len   EQU       $ - Sect9
REP        CMPSB     ;ࠢ 㦥 ᢥ
           ;஢ 䫠, ⮣ 
           ;ॣ AL
           CMP       AL, 0Ah
           JE        FlppExt ;᫨,  
                             ;㭪樨 0Ah,  室
                             ; ࠡ稪...
           ;...  ᫨ 09h,  த ࠡ 
           ;ணࠬ
           JMP       Flpp10
;   ᫮ ࠬ஢
Fat6       db        'FAT 15'
SectCD     db        02, 44, 14  ; ⢠ ᥪ஢
           ; ॢ  ⥬ ASCII: 02, 2C, 0E

           ;। ࠬ஢ Flash - 奬
           ;᮪ ⭮, 񬪮   10 .
           ; ணࠬ஢ ⨯ Cart Riader.
Flpp10:    MOV       AL, 0Ah   ;㭪  - 0Ah 
           MOV       CX, 6     ;⥫ ࠬ. 
           MOV       BX, OFFSET Fat6 ;㧪 祭.
           MOV       DH, 01h   ;  ᥪ ⥫.
           MOV       CX, 90FFh ;⢮ ஦ - 400 
           MOV       CL, 3     ;  ᫠   3 .
           MOV       CH, 1     ;1 - 祭   㦥 ஢.
           MOV       CX, OFFSET SectCD  ;⢮ ᥪ஢ - 142350
           MOV       CH, 2     ;2 - 祭   㦥 ஢.
           MOV       CX, 00FFh ;⢮    ᥪ - 512
           LEA       DX, Sect9 ;㧨 ᥪ  ७
           ;  ᥪ,   ⥫ ᯮ塞 ணࠬ
           ;   ᯮ쭨   ⠥
           ;ᥪ,  宫 (⢥) .
REP        CMPSB     ;ࠢ 㦥 ᢥ

           ;᢮ ॣ । 室
FlppExt:   POP       AX
           POP       BX
           POP       CX
           POP       DX
           STI       ;   IF = 1
           RET       ; ࠡ稪
FLOPPY2    ENDP

Intr1EhLen   EQU   $ - Intr1Eh
; ணࠬ ࠡ稪 INT 1Eh


;⥬ ணࠬ INT 1Fh
Intr1Fh:
SCREEN2    PROC      
           ;ந ᥣ ॣ  
           ;樨 ⠡ .
           MOV       BP, AX
           MOV       AX, ES

           CLI       ; 뢠
           ;  ᥬ, ⠪ ந ᥣ
           ;ॣ ES  
           MOV       AX, 0B800h
           MOV       DS, AX
           ;㭪 00h - ⮢ ० 40 x 25 ᨬ, 2 梥
           MOV       AL, 00h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02 ;⢮ 梥⮢  .
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn0Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn0
Scrn0:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 25  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 40  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 16  ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 16  ; 祭 筮 樨 .
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn0Len   EQU       $ - Scrn0
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 01h - ⮢ ० 80 x 50 ᨬ, 16 梥⮢
           MOV       AL, 01h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn1Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn1
Scrn1:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 50  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 80  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 8   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 8   ; 祭 筮 樨 .
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn1Len   EQU       $ - Scrn1
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 02h - ⮢ ० 80 x 25 ᨬ, 2 梥a
           MOV       AL, 02h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02 ;⢮ 梥⮢  .
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn2Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn2
Scrn2:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 25  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 80  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 8   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 16  ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn2Len   EQU       $ - Scrn2
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 03h - ⮢ ० 80 x 25 ᨬ, 16 梥⮢
           MOV       AL, 03h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn3Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn3
Scrn3:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 25  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 80  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 8   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 16  ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn3Len   EQU       $ - Scrn3
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX

           
           ;㭪 04h - ᪨ ० 320 x 200 祪, 4 梥
           MOV       AL, 04h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 04 ;⢮ 梥⮢   - 04
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn4Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn4
Scrn4:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 320 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 2   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn4Len   EQU       $ - Scrn4
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 05h - ᪨ ० 320 x 200 祪, 2 梥
           MOV       AL, 05h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02 ;⢮ 梥⮢   - 02
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn5Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn5
Scrn5:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 320 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 2   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn5Len   EQU       $ - Scrn5
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 06h - ᪨ ० 640 x 200 祪, 2 梥
           MOV       AL, 06h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02 ;⢮ 梥⮢   - 02
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn6Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn6
Scrn6:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn6Len   EQU       $ - Scrn6
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 07h - ⮢ ० 80 x 25 ᨬ, 2 梥a
           MOV       AL, 07h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02h ;⢮ 梥⮢   - 2.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn7Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn7
Scrn7:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 25  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 80  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 8   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 16  ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn7Len   EQU       $ - Scrn7
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 09h - ᪨ ० 320 x 200 祪, 16 梥⮢.
           MOV       AL, 09h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn9Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn9
Scrn9:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 320 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 2   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn9Len   EQU       $ - Scrn9
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 0Ah - ᪨ ० 640 x 200 祪, 4 梥
           MOV       AL, 0Ah
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 04h ;⢮ 梥⮢   - 4.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn10Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn10
Scrn10:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn10Len   EQU       $ - Scrn10
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 0Dh - ᪨ ० 320 x 200 祪, 16 梥⮢.
           MOV       AL, 0Dh
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn11Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn11
Scrn11:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 320 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 2   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn11Len  EQU       $ - Scrn11
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 0Eh - ᪨ ० 640 x 200 祪, 16 梥⮢.
           MOV       AL, 0Eh
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn12Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn12
Scrn12:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn12Len  EQU       $ - Scrn12
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 0Fh - ᪨ ० 640 x 350 祪, 2 梥
           MOV       AL, 0Fh
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02h ;⢮ 梥⮢   - 2 
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn13Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn13
Scrn13:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 350 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 1   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn13Len  EQU       $ - Scrn13
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 10h - ᪨ ० 640 x 350 祪, 16 梥⮢.
           MOV       AL, 10h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn14Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn14
Scrn14:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 350 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 1   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn14Len  EQU       $ - Scrn14
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 11h - ᪨ ० 640 x 480 祪, 2 梥
           MOV       AL, 11h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 02h ;⢮ 梥⮢   - 2 
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn15Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn15
Scrn15:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 480 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 1   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn15Len  EQU       $ - Scrn15
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 12h - ᪨ ० 640 x 480 祪, 16 梥⮢
           MOV       AL, 12h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn16Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn16
Scrn16:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 480 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 640 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 1   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 1   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn16Len  EQU       $ - Scrn16
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 13h - ᪨ ० 320 x 200 祪, 256 梥⮢
           MOV       AL, 13h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 00FFh  ;⢮ 梥⮢   - 256.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn17Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn17
Scrn17:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DX, 200 ; 筮 祭 樨 ப.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DX, 320 ; 祭 筮 樨 ⮫.
           INC       DX      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ  ࠦ - ᥫ
           ; ᪮ ०.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 2   ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 2   ; 祭 筮 樨 
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn17Len  EQU       $ - Scrn17
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX


           ;㭪 43h - ⮢ ० 40 x 25 ᨬ, 16 梥⮢.
           MOV       AL, 43h
           ;⢮ ॣ
           PUSH      AX
           PUSH      BX
           PUSH      CX
           PUSH      DX
           MOV       BX, 0Fh ;⢮ 梥⮢   - 16.
           ;।⥫쭮, ⢮  ࠡ祣
           ;⥫ ணࠬ ⠥ ࠬ஢.
           MOV       CX, Scrn43Len
           ;㧨    ࠡ稩 
           ;䨪㥬 .
           LEA       DX, Scrn43
Scrn43:
           ; ᯮ ,   設
           ;.
           MOV       DH, 1   ;砫  ⥪⮢ ப.
           ADD       DH, 25  ; 筮 祭 樨 ப.
           INC       DH      ;䨪஢ ⠭ ࠬ.
           NOT       DH      ;஢  ᭮ 祭.

           MOV       DL, 1   ;砫  ⥪⮢ ⮫.
           ADD       DL, 40  ; 祭 筮 樨 ⮫.
           INC       DL      ;䨪஢ ⠭ ࠬ.
           NOT       DL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           AAA
           ; ⠪, ⠭ ࠬ  ⮢
           ;, ⮡ࠦ ᨬ  ᯫ.
           MOV       BH, 0   ; 祭 室 ࠬ.
           ADD       BH, 16  ; 筮 祭 樨 .
           INC       BH      ;䨪஢ ⠭ ࠬ.
           NOT       BH      ;஢  ᭮ 祭.

           MOV       BL, 0   ; 祭 室 ࠬ.
           ADD       BL, 16  ; 祭 筮 樨 .
           INC       BL      ;䨪஢ ⠭ ࠬ.
           NOT       BL      ;஢  ᭮ 祭.
           ;筠 ४ ந쭮 祭 ᫠ ⮢,
           ;  ꥤ.
           DAA
Scrn43Len  EQU       $ - Scrn43
           CLD       ;஢ .
REP        STOSB     ;䨪஢ 㦭 ࠬ
                     ;  ⨢ .
           ;।⥫쭮, ᢮ ॣ,
           ;। 砫  樨.
           POP       AX
           POP       BX
           POP       CX
           POP       DX
           STI       ; 뢠
           RET       ; ࠡ稪
SCREEN2    ENDP

Intr1FhLen   EQU   $ - Intr1Fh
; ணࠬ ࠡ稪 INT 1Fh


;⥬ ணࠬ INT 20h
Intr20h:
QUITS   PROC      
        CLI       ; 뢠

        ;  襭
        MOV       AX, 0000h
        PUSH      AX
        POP       DS
        
        ;稥 
        LES       CX,DWord Ptr [SI]         ;BR0
        MOV       DX,Word Ptr [7964h]       ;BR1
        INC       Word Ptr ES:[02B4h]

        PUSH      AX
        MOV       AX,0000h
        PUSH      AX
        
        ;᢮ ॣ
        POP       SI
        POP       DI
        STI       ; 뢠
        RET       ;  ணࠬ, १ IOS
                  ; 뢠

        ;⥫ ࠬ,  
        ; ॡ ⥬,  맮
        ;㭪樨 INT 20h
        ;rem      ENTER     12, 46
        PUSH      DI
        MOV       DI,Word Ptr [BP+04]
        PUSH      AX
        PUSH      BX
        PUSH      CX
        PUSH      DX
        PUSH      Word Ptr [BX+078Eh]
        NOP
        PUSH      CS
        ADD       SP,+06
        PUSH      DX
        PUSH      AX
        MOV       Word Ptr [BP-0Ch],AX
        MOV       Word Ptr [BP-0Ah],DX
        ADD       SP,-01
        PUSH      Word Ptr [BP-0Ch]
        PUSH      BX
        PUSH      CX
        ADD       SP,+0Ch
        PUSH      Word Ptr [BP-0Ah]
        PUSH      Word Ptr [BP-0Ch]
        NOP
        PUSH      CS
        FADD      QWord Ptr [BP+DI+04C4h]
        PUSH      DS
        PUSH      DX
        PUSH      AX
        PUSH      Word Ptr [BP-0Ah]
        PUSH      Word Ptr [BP-0Ch]
        ADD       SP,-01
        PUSH      Word Ptr [BP-0Ch]
        PUSH      DS
        PUSH      DI
        ADD       SP,+04
        INC       AX
        PUSH      AX
        PUSH      SI
        PUSH      DS
        PUSH      DI
        ADD       SP,+0Ch
        PUSH      Word Ptr [BP-0Ah]
        PUSH      Word Ptr [BP-0Ch]
        ADD       SP,+04
        POP       DI
        RET
        PUSH      BP
        MOV       BP,SP
        PUSH      DI
        PUSH      SI
        MOV       DI,Word Ptr [BP+04]
        PUSH      DS
        PUSH      DI
        ADD       SP,+04
        MOV       SI,AX
        ADD       SI,DI
        INC       SI
        MOV       AX,SI
        DEC       SI
        PUSH      DS
        PUSH      DI
        ADD       SP,+08
        PUSH      DS
        PUSH      Word Ptr [BP+06]
        PUSH      DS
        PUSH      DI
        ADD       SP,+08
        ADD       Byte Ptr [BX+SI],AL
        STI       ; 뢠
        RET       ;  ࠡ稪
QUITS   ENDP
Intr20hLen   EQU   $ - Intr20h
; ணࠬ ࠡ稪 INT 20h

         
Bufin      db      512  dup (?)      ;     ணࠬ,
                                     ;६,  ⨬.


             ; 砭 䠩
Str2         db     27               ;祭  ⥫ ᯮ塞
                                     ;ணࠬ ᨬ ESC  ஫.

             ; ணࠬ  ⥫ ᥩ 襩 ணࠬ.




