Код:
; ---------------------------------------------------------------------------
;
; Erase
;
sub_4D5_2364: proc far
seg002:2364
seg002:2364 var_4 = byte ptr -4
seg002:2364 var_2 = byte ptr -2
seg002:2364
seg002:2364 push bp
seg002:2365 mov bp, sp
seg002:2367 mov ax, 4
seg002:236A call __aFchkstk
seg002:236F mov [bp+var_2], 0
seg002:2373 mov ax, 4Fh ; 'O'
seg002:2376 push ax
seg002:2377 mov cx, 17h
seg002:237A push cx
seg002:237B mov dx, 28h ; '('
seg002:237E push dx
seg002:237F mov bx, 0Bh
seg002:2382 push bx
seg002:2383 call sub_876_135A
seg002:2388 add sp, 8
seg002:238B mov ax, 3Fh ; '?'
seg002:238E push ax
seg002:238F mov ax, 4Fh ; 'O'
seg002:2392 push ax
seg002:2393 mov ax, 17h
seg002:2396 push ax
seg002:2397 mov ax, 28h ; '('
seg002:239A push ax
seg002:239B mov ax, 0Bh
seg002:239E push ax
seg002:239F call sub_876_14F6
seg002:23A4 add sp, 0Ah
seg002:23A7 mov ax, 1Fh
seg002:23AA push ax
seg002:23AB mov ax, 34h ; '4'
seg002:23AE push ax
seg002:23AF mov ax, 0Bh
seg002:23B2 push ax
seg002:23B3 mov cx, 2Ch ; ','
seg002:23B6 push cx
seg002:23B7 push ax
seg002:23B8 call sub_876_14F6
seg002:23BD add sp, 0Ah
seg002:23C0 mov ax, 2Ch ; ','
seg002:23C3 push ax
seg002:23C4 mov ax, 0Bh
seg002:23C7 push ax
seg002:23C8 call sub_876_1930
seg002:23CD add sp, 4
seg002:23D0 mov ax, aErase ;1AC2h
seg002:23D3 push ax
seg002:23D4 call print_string
seg002:23D9 add sp, 2
seg002:23DC
seg002:23DC loc_4D5_23DC: ; CODE XREF: sub_4D5_2364+D0j
seg002:23DC ; sub_4D5_2364+1DEj ...
seg002:23DC mov ax, 4Eh ; 'N'
seg002:23DF push ax
seg002:23E0 mov ax, 0Ch
seg002:23E3 push ax
seg002:23E4 mov cx, 29h ; ')'
seg002:23E7 push cx
seg002:23E8 push ax
seg002:23E9 call sub_876_197E
seg002:23EE add sp, 8
seg002:23F1 mov ax, 29h ; ')'
seg002:23F4 push ax
seg002:23F5 mov ax, 0Ch
seg002:23F8 push ax
seg002:23F9 call sub_876_1930
seg002:23FE add sp, 4
seg002:2401 mov ax, aReadyToEraseYC ;1ACCh
seg002:2404 push ax
seg002:2405 call print_string
seg002:240A add sp, 2
seg002:240D call sub_DD8_1296
seg002:2412 mov [bp+var_4], al
seg002:2415 cmp al, 0Dh
seg002:2417 jz loc_4D5_2421
seg002:2419 cmp al, 0Ah
seg002:241B jz loc_4D5_2421
seg002:241D cmp al, 1Bh
seg002:241F jnz loc_4D5_242A
seg002:2421
seg002:2421 loc_4D5_2421: ; CODE XREF: sub_4D5_2364+B3j
seg002:2421 ; sub_4D5_2364+B7j
seg002:2421 call sub_DD8_126E
seg002:2426 jmp loc_4D5_25C8
seg002:2429 ; ---------------------------------------------------------------------------
seg002:2429 nop
seg002:242A
seg002:242A loc_4D5_242A: ; CODE XREF: sub_4D5_2364+BBj
seg002:242A cmp [bp+var_4], 59h ; 'Y'
seg002:242E jz loc_4D5_2436
seg002:2430 cmp [bp+var_4], 79h ; 'y'
seg002:2434 jnz loc_4D5_23DC
seg002:2436
seg002:2436 loc_4D5_2436: ; CODE XREF: sub_4D5_2364+CAj
seg002:2436 mov al, [bp+var_4]
seg002:2439 sub ah, ah
seg002:243B push ax
seg002:243C call sub_876_1BE8
seg002:2441 add sp, 2
seg002:2444 mov ax, 4Eh ; 'N'
seg002:2447 push ax
seg002:2448 mov ax, 16h
seg002:244B push ax
seg002:244C mov ax, 29h ; ')'
seg002:244F push ax
seg002:2450 mov cx, 0Dh
seg002:2453 push cx
seg002:2454 call sub_876_197E
seg002:2459 add sp, 8
seg002:245C mov ax, 3Fh ; '?'
seg002:245F push ax
seg002:2460 mov ax, 4Fh ; 'O'
seg002:2463 push ax
seg002:2464 mov cx, 17h
seg002:2467 push cx
seg002:2468 mov cx, 28h ; '('
seg002:246B push cx
seg002:246C mov cx, 0Ch
seg002:246F push cx
seg002:2470 call sub_876_14F6
seg002:2475 add sp, 0Ah
seg002:2478 call sub_DD8_1398
seg002:247D dec ax
seg002:247E jnz loc_4D5_24B2
seg002:2480 call sub_0_15A6
seg002:2485 dec ax
seg002:2486 jnz loc_4D5_24B2
seg002:2488 mov ax, 29h ; ')'
seg002:248B push ax
seg002:248C mov cx, 0Dh
seg002:248F push cx
seg002:2490 call sub_876_1930
seg002:2495 add sp, 4
seg002:2498 mov ax, aThePacInsert_5 ;1AE5h
seg002:249B push ax
seg002:249C call print_string
seg002:24A1 add sp, 2
seg002:24A4 mov ax, 4Fh ; 'O'
seg002:24A7 push ax
seg002:24A8 mov ax, 4Ah ; 'J'
seg002:24AB push ax
seg002:24AC mov ax, 0Dh
seg002:24AF jmp loc_4D5_257F
seg002:24B2 ; ---------------------------------------------------------------------------
seg002:24B2
seg002:24B2 loc_4D5_24B2: ; CODE XREF: sub_4D5_2364+11Aj
seg002:24B2 ; sub_4D5_2364+122j
seg002:24B2 cmp word_1F45_3290, 0
seg002:24B7 jz loc_4D5_24C2
seg002:24B9 mov ax, 0AFh ; 'ï'
seg002:24BC push ax
seg002:24BD mov ax, aEraseNow____3 ;1B07h
seg002:24C0 jmp short loc_4D5_24C9
seg002:24C2 ; ---------------------------------------------------------------------------
seg002:24C2
seg002:24C2 loc_4D5_24C2: ; CODE XREF: sub_4D5_2364+153j
seg002:24C2 mov ax, 0F0h ; '¨'
seg002:24C5 push ax
seg002:24C6 mov ax, aEraseNow____4 ;1B15h
seg002:24C9
seg002:24C9 loc_4D5_24C9: ; CODE XREF: sub_4D5_2364+15Cj
seg002:24C9 push ax
seg002:24CA mov ax, 29h ; ')'
seg002:24CD push ax
seg002:24CE mov ax, 0Dh
seg002:24D1 push ax
seg002:24D2 call sub_876_3370
seg002:24D7 add sp, 8
seg002:24DA push cs
seg002:24DB call near ptr sub_4D5_25FE
seg002:24DE mov [bp+var_2], al
seg002:24E1 cmp word_1F45_3290, 0
seg002:24E6 jz loc_4D5_24F2
seg002:24E8 mov ax, 3Fh ; '?'
seg002:24EB push ax
seg002:24EC mov ax, aEraseNow____5 ;1B23h
seg002:24EF jmp short loc_4D5_24F9
seg002:24F1 ; ---------------------------------------------------------------------------
seg002:24F1 nop
seg002:24F2
seg002:24F2 loc_4D5_24F2: ; CODE XREF: sub_4D5_2364+182j
seg002:24F2 mov ax, 7
seg002:24F5 push ax
seg002:24F6 mov ax, aEraseNow____6 ;1B31h
seg002:24F9
seg002:24F9 loc_4D5_24F9: ; CODE XREF: sub_4D5_2364+18Bj
seg002:24F9 push ax
seg002:24FA mov ax, 29h ; ')'
seg002:24FD push ax
seg002:24FE mov ax, 0Dh
seg002:2501 push ax
seg002:2502 call sub_876_3370
seg002:2507 add sp, 8
seg002:250A mov ax, 29h ; ')'
seg002:250D push ax
seg002:250E mov ax, 0Eh
seg002:2511 push ax
seg002:2512 call sub_876_1930
seg002:2517 add sp, 4
seg002:251A cmp [bp+var_2], 0
seg002:251E jnz loc_4D5_255A
seg002:2520 mov ax, aEraseOk_0 ;1B3Fh
seg002:2523 push ax
seg002:2524 call print_string
seg002:2529 add sp, 2
seg002:252C call sub_DD8_1246
seg002:2531 dec word_1F45_2E40
seg002:2535 js loc_4D5_2546
seg002:2537 mov bx, word_1F45_2E3E
seg002:253B mov byte ptr [bx], 7
seg002:253E inc word_1F45_2E3E
seg002:2542 jmp loc_4D5_23DC
seg002:2545 ; ---------------------------------------------------------------------------
seg002:2545 nop
seg002:2546
seg002:2546 loc_4D5_2546: ; CODE XREF: sub_4D5_2364+1D1j
seg002:2546 mov ax, 2E3Eh
seg002:2549 push ax
seg002:254A mov ax, 7
seg002:254D push ax
seg002:254E call __flsbuf
seg002:2553 add sp, 4
seg002:2556 jmp loc_4D5_23DC
seg002:2559 ; ---------------------------------------------------------------------------
seg002:2559 nop
seg002:255A
seg002:255A loc_4D5_255A: ; CODE XREF: sub_4D5_2364+1BAj
seg002:255A cmp [bp+var_2], 1
seg002:255E jnz loc_4D5_2596
seg002:2560 push word_1F45_3298
seg002:2564 push word_1F45_3296
seg002:2568 mov ax, aEraseErrorAt_0 ;1B4Ah
seg002:256B push ax
seg002:256C call print_string
seg002:2571 add sp, 6
seg002:2574 mov ax, 4Fh ; 'O'
seg002:2577 push ax
seg002:2578 mov ax, 3Eh ; '>'
seg002:257B push ax
seg002:257C mov ax, 0Eh
seg002:257F
seg002:257F loc_4D5_257F: ; CODE XREF: sub_4D5_2364+14Bj
seg002:257F ; sub_4D5_2364+262j
seg002:257F push ax
seg002:2580 mov cx, 29h ; ')'
seg002:2583 push cx
seg002:2584 push ax
seg002:2585 call sub_876_14F6
seg002:258A add sp, 0Ah
seg002:258D call sub_876_1624
seg002:2592 jmp loc_4D5_23DC
seg002:2595 ; ---------------------------------------------------------------------------
seg002:2595 nop
seg002:2596
seg002:2596 loc_4D5_2596: ; CODE XREF: sub_4D5_2364+1FAj
seg002:2596 cmp [bp+var_2], 2
seg002:259A jz loc_4D5_259F
seg002:259C jmp loc_4D5_23DC
seg002:259F ; ---------------------------------------------------------------------------
seg002:259F
seg002:259F loc_4D5_259F: ; CODE XREF: sub_4D5_2364+236j
seg002:259F mov ax, 29h ; ')'
seg002:25A2 push ax
seg002:25A3 mov cx, 16h
seg002:25A6 push cx
seg002:25A7 call sub_876_1930
seg002:25AC add sp, 4
seg002:25AF mov ax, aIncorrectDev_7 ;1B61h
seg002:25B2 push ax
seg002:25B3 call print_string
seg002:25B8 add sp, 2
seg002:25BB mov ax, 4Fh ; 'O'
seg002:25BE push ax
seg002:25BF mov ax, 3Ah ; ':'
seg002:25C2 push ax
seg002:25C3 mov ax, 16h
seg002:25C6 jmp short loc_4D5_257F
seg002:25C8 ; ---------------------------------------------------------------------------
seg002:25C8
seg002:25C8 loc_4D5_25C8: ; CODE XREF: sub_4D5_2364+C2j
seg002:25C8 mov ax, 4Fh ; 'O'
seg002:25CB push ax
seg002:25CC mov cx, 17h
seg002:25CF push cx
seg002:25D0 mov dx, 28h ; '('
seg002:25D3 push dx
seg002:25D4 mov bx, 0Bh
seg002:25D7 push bx
seg002:25D8 call sub_876_197E
seg002:25DD add sp, 8
seg002:25E0 mov ax, 7Fh ; ''
seg002:25E3 push ax
seg002:25E4 mov ax, 4Fh ; 'O'
seg002:25E7 push ax
seg002:25E8 mov ax, 17h
seg002:25EB push ax
seg002:25EC mov ax, 28h ; '('
seg002:25EF push ax
seg002:25F0 mov ax, 0Bh
seg002:25F3 push ax
seg002:25F4 call sub_876_14F6
seg002:25F9 mov sp, bp
seg002:25FB pop bp
seg002:25FC retf
seg002:25FC sub_4D5_2364 endp
aErase: db ' Erase : ',0
aReadyToEraseYC: db 'Ready to erase (Y/<CR>)?',0
aThePacInsert_5: db 'The PAC inserted is not correct !',0
aEraseNow____3: db 'Erase now ...',0
aEraseNow____4: db 'Erase now ...',0
aEraseNow____5: db 'Erase now ...',0
aEraseNow____6: db 'Erase now ...',0
aEraseOk_0: db 'Erase ok !',0
aEraseErrorAt_0: db 'Erase error ! at %04hX',0
aIncorrectDev_7: db ' incorrect Device ',0