Accelerate the assembly program source code for floppy operation speed

xiaoxiao2021-03-06  46

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

; Function: speed up the speed of the floppy disk

Source: "Software News" 1995 Combined 60 pages

; Author: Chengdu Lu Jun (Purple Endurer Fixed a bug caused program can not compile the place)

;principle:

We all know that the disk is not immediately removed after the floppy drive reading and writing, because the disk is removed before the floppy drive is not extinguished.

Wrap the disk. Waiting for the driver light in a large number of read and write floppy disks, it is very urgent. HD-COPY

Readers can experience, HD-COPY uses when the floppy drive is written, the driver fork is turned off, and it can be

Take out the disk, very convenient. From here we can also see how the software can shorten the driver lights out

;between.

A 40:40 address in the BIOS data area, saved a count indicating the drive motor on time, each clock (1 / 18.2

; Seconds) beat, count the countd; When the count is 0, the motor is stopped, the driver is turned off, and the count is restored to 256, counting in 0

And repeated cycles between 256. So we can shorten this time to reduce the time of 0.0, so that the driver light is quenched early.

Unexpected. The hard interruption of the PC and its compatible machine completes two functions, which first reduces this count, then notify the timer

The application issues an INT 1CH interrupt. So in this program we have modified 08h interruption, make each 08h

The interrupt reduces the count 2. This way we wait for the driver light to shorten half, speed up the speed of the magnetic drive.

;

The COM file is written, and INT 27h is used.

Therefore, it is necessary to run with EXE2BIN to be converted to a COM file.

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

PCOM segment byte public

Assume CS: PCOM, DS: PCOM

ORG 100H

Fastoff Proc Far

Start:

JMP Short Install

OLD_INT_08H_ENTRY DD 00000000H; save the original 08H interrupt program

Fastoff ENDP

INT_08H_ENTRY PROC FAR

Push DS

Push ax; save the site

MOV AX, 40H

MOV DS, AX

CMP BYTE PTR DS: 40H, 2; Counting less than 2 no longer

JB EXIT; minus the count

Dec byte PTR DS: 40H

; !!!!!!!!!!!!!!!!!!!!!!!!!!!

If the above 3 sentences is changed to MOV BYTE PTR DS: 40H, -1

This number will never be reduced, and the floppy drive is not never destroyed?

Who dares to use floppy disks ;-)

; !!!!!!!!!!!!!!!!!!!!!!!!!!!

EXIT:

POP AX

POP DS

JMP CS: OLD_INT_08H_ENTRY; call the original 08H interrupt subroutine

INSTALL:

Lea DX, Copyright; Print Program Information

MOV AH, 09HINT 21H

MOV AH, 35H

MOV Al, 08H

INT 21h; Take the original 08h interrupt vector

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; Set new 08h interrupt vector

Int 21h

LEA DX, FASTOFF 100; original: Lea DX, Finish 100

INT 27h; resident exit

Copyright DB 'Fastoff Install. Lujun.1995', 13, 10, '$'

INT_08H_ENTRY ENDP

PCOM ENDS

End Start

转载请注明原文地址:https://www.9cbs.com/read-56043.html

New Post(0)