⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fdog.asm

📁 硬盘卫士
💻 ASM
字号:
code segment
     assume cs:code;ds:code
     org 100h
start:jmp init
old13h dd ?
buf db 512 dup(0)
lmsg db 'Babysoft  (R) Floppy Disk Dog version 1.0',0Ah,0Dh
     db 'Copyright (C) 1997.11 LiuYaDing,Babysoft Corp.',0Ah,0Dh,'$'
hhmsg db 'Floppy Disk Dog installed.',0Ah,0Dh,'$'
jxok db 'Floppy Disk Dog has installed flag on disk.',0Ah,0Dh,'$'
msg db 'Invalid floppy!!!'
dev db 0
jsz db 0
set dd 0ffff0000h
new13h proc far
    pushf
    cmp ah,2
    jb old
    cmp ah,3
    ja old
    cmp dl,80h
    jz old
    jmp jx
old:popf
    jmp cs:old13h
jx: popf
    pushf
    push ds
    push es
    push ax
    push bx
    push cx
    push dx
    push si
    push di
    mov ax,cs
    mov ds,ax
    mov es,ax
    mov dev,dl
    mov jsz,3
    mov ax,201h
    mov cx,2
    mov dh,0
    mov bx,offset buf
    pushf
    call cs:old13h
readfat:
    mov ax,201h
    mov cx,2
    mov dh,0
    mov bx,offset buf
    pushf
    call cs:old13h
    jnc cmpid
    cmp jsz,3
    jz cmpid
    dec jsz
    mov ax,0e07h
    int 10h
    mov ah,0
    mov dl,dev
    call cs:old13h
    pushf
    jmp readfat
cmpid:
    mov ax,word ptr [buf+1]
    cmp ax,3456h
    jz oold
    mov ah,3
    mov bh,0
    int 10h
    push dx
    mov dx,30h
    lea si,msg
    mov cx,17
loop1:
    mov ah,2
    int 10h
    mov bl,70h
    mov ah,9
    lodsb
    int 10h
    inc dl
    loop loop1
    mov ah,2
    pop dx
    int 10h
    mov ah,0
    int 16h
    or al,20h
    cmp al,'y'
    jnz reset
    pop di
    pop si
    pop dx
    pop cx
    pop bx
    pop ax
    pop es
    pop ds
    popf
    mov ah,4ch
    int 21h
reset:
    mov bx,0
    mov si,0
    xor ax,ax
    mov ds,ax
    mov word ptr ds:[472h],1234h
    push cs
    pop ds
    jmp set[bx][si]
oold:
    pop di
    pop si
    pop dx
    pop cx
    pop bx
    pop ax
    pop es
    pop ds
    popf
    assume ds:nothing
    jmp cs:old13h
new13h endp
init:
    push cs
    pop ds
    mov dx,offset lmsg
    mov ah,9
    int 21h
    mov si,80h
    mov al,[si]
    cmp al,0
    jz zl
    mov si,82h
    mov al,[si]
    and al,0fh
    dec al
    cmp al,1
    ja error
    push ax
    mov cx,1
    mov dx,1
    mov bx,offset buf
    int 25h
    mov ax,3456h
    mov word ptr [buf+1],ax
    popf
    pop ax
    mov cx,1
    mov dx,1
    int 26h
    jnc exit
error:
    mov ah,9
    mov dx,offset er
    int 21h
    mov ax,4c00h
    int 21h
exit:
    mov dx,offset jxok
    mov ah,9
    int 21h
    mov ax,4c00h
    int 21h
er db 07h,'Write-protected or Invalid driver!',0Ah,0Dh,'$'
zl: mov ax,3513h
    int 21h
    mov di,bx
    mov si,offset new13h
    mov cx,offset init
    sub cx,si
    cld
    repz cmpsb
    jnz zl1
    mov dx,offset hmsg
    mov ah,9
    int 21h
    mov ax,4c00h
    int 21h
hmsg:
    db 07h,'Floppy Disk Dog has already installed!',0Ah,0Dh,'$'
zl1:
    mov dx,offset hhmsg
    mov ah,9
    int 21h
    mov word ptr old13h,bx
    mov word ptr old13h+2,es
    mov dx,offset new13h
    mov ax,2513h
    int 21h
    mov dx,offset init
    int 27h
code ends
     end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -