home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-387-Vol-3of3.iso
/
p
/
pastalk.zip
/
INITSPD.ASM
< prev
next >
Wrap
Assembly Source File
|
1989-04-22
|
2KB
|
54 lines
title InitSpeed
; computes machine performance index
; Michael Day
; released to public domain by authors
; as of 22 April 1989
CODE segment public
assume CS:CODE, DS:CODE
public InitSpeed
; Outputs sound sample beginning at address Start, and continuing for
; Count bytes.
; function InitSpeed:word;
InitSpeed proc far
sti ;insure ints are on
push DS ;save DS
mov AX,0040H ;BIOS data segment
mov DS,AX ;into DS
mov DI,6CH ;offset for lsh of timer
mov AL,[DI] ;get lsb of timer
xor CX,CX ;initialize large count
xor DX,DX ;(longint version)
call Subr ;loop until timer changes
mov AL,[DI] ;get new timer value
xor CX,CX ;initialize large count
xor DX,DX ;(longint version)
call Subr ;call delay subr
pop DS ;restore DS
mov AX,CX ;count to lsh of dividnd
not AX ;AX=count for 55 msec
mov CX,55 ;msec per timer tick
div CX ;compute count for 1 msec
ret ;returns count in AX
InitSpeed endp
;-------------------------------------------------
; wait for tick count to happen
Subr:
cmp AL,[DI] ;check if timer changed
jnz SubEnd ;quit after 1 timer tick
loop subr ;count and loop
inc DX ;overflow into dx
cmp DX,54 ;check if too far
jb subr ;go for full count
SubEnd:
ret ;return from local subr
CODE ends
end