加快磁碟片操作速度的組譯工具原始碼

來源:互聯網
上載者:User
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
;功能:加快磁碟片的操作速度
;來源:《軟體報》1995年合訂本 60 頁
;作者:成都  盧軍(Purple Endurer修正了一個引起程式無法彙編的地方)
;原理:
;我們都知道軟碟機讀寫結束後並不可以立刻取出磁碟,  因為軟碟機燈未熄滅之前就取出磁碟
;將刮傷磁碟。在大量讀寫磁碟片的時侯等待磁碟機燈滅是非常令人著急的。用過hd-copy的
;讀者都可以體會到,hd-copy使用時當軟碟機一讀寫完畢磁碟機燈叉立刻熄滅了,馬上就可以
;取出磁碟,非常的方便。從這裡我們也可以看到用軟體的方法可能縮短磁碟機燈熄滅的時
;間。
;在bios資料區的40:40地址處儲存著一個表明磁碟機馬達接通時間的計數,每個時鐘(1/18.2
;秒)節拍,計數減1。當計數為0時,馬達停轉,磁碟機燈熄滅,計數又恢複為256,計數在0
;和256之間反覆迴圈。因此我們可以縮短這個計數減速減為0的時間,從而使磁碟機燈提早熄
;滅。pc及其相容機的硬中斷08H完成兩個功能,它首先把這個計數減一,然後通知定時器的
;應用程式發出INT 1CH中斷。因此在下面的這個程式中我們修改了 08H 中斷,使每次 08H
;中斷使計數減2。這樣我們等待磁碟機燈熄滅的時間可以縮短一半,加快了磁碟物速度。
;
;採用COM檔案編寫,並且採用INT 27H駐留。
;因此必須用EXE2BIN轉化為COM檔案後才可運行。
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PCOM SEGMENT BYTE PUBLIC
     ASSUME CS: PCOM, DS: PCOM
     ORG 100h
FASTOFF PROC FAR
START:
        JMP SHORT INSTALL
        OLD_INT_08H_ENTRY DD 00000000H   ;儲存原08H中斷程式
FASTOFF ENDP

INT_08H_ENTRY PROC FAR
        PUSH DS
        PUSH AX                          ;儲存現場
        MOV AX, 40H
        MOV DS, AX

        CMP BYTE PTR DS:40H, 2          ;計數小於2則不再
        JB EXIT                         ;使計數減一
        DEC BYTE PTR DS: 40H

        ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
        ;若將以上的3句改為      mov byte ptr ds:40h,-1
        ;這樣這個數永遠減不完,軟碟機燈豈不是永遠不滅?
        ;這樣誰還敢用磁碟片;-)
        ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

EXIT:
        POP AX
        POP DS
        JMP CS: OLD_INT_08H_ENTRY       ;調用原08H中斷子程式
INSTALL:
        LEA DX, COPYRIGHT               ;列印程式資訊
        MOV AH, 09H
        INT 21H
        MOV AH, 35H
        MOV AL, 08H
        INT 21H                         ;取原08H中斷向量
        MOV WORD PTR OLD_INT_08H_ENTRY, BX
        MOV WORD PTR OLD_INT_08H_ENTRY+2, ES
        MOV DX, OFFSET INT_08H_ENTRY
        MOV AH, 25H
        MOV AL, 08H                     ;設定新的08H中斷向量
        INT 21H
        LEA DX, FASTOFF+100             ;原文為:LEA DX, FINISH+100
        INT 27H                         ;駐留退出
        COPYRIGHT DB 'FASTOFF INSTALL. LUJUN.1995', 13, 10, '$'
INT_08H_ENTRY ENDP
PCOM ENDS
     END START

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.