home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 15
/
CD_ASCQ_15_070894.iso
/
news
/
2513
/
timer.asm
< prev
next >
Wrap
Assembly Source File
|
1994-05-09
|
4KB
|
130 lines
;--------------------------------------------------------------------------
; Here is a source for measuring relative speed of computer. This source
; will NOT function properly under multitaskers, as they use timer them-
; selves. At least DesqView, OS/2 and Windows mess up with timer.
;
; This source is copyright 1994 of Teemu Peltonen aka Quark/Remedy Prods.
; If you modify this source, please do not spread it! You may spread the
; unmodified source as much as you like, but please check that length of
; the actual source (not including this comment between vertical lines) is
; 91 lines!
;
; The way of measuring computer's speed is not the best possible, but it
; works. Here's a small kind of table of speeds:
;
; CPU Output value
; 486DX/33MHz 024Ch
; 486SX/20MHz 03D4h
; 386DX/40MHz 05EDh
; 386DX/16MHz 0DBAh
; 286 /10MHz 1500h
; 086 /4.77MHz 6006h
;
; Notice! Values may differ from these about 2 up or down. You should
; run the tester for about five times and use the value that seems to
; appear most times. Disk caches and others can mess up test.
;
; Thanks to my BBS's users for testing this piece of software!
;
; If you wish to add your computer's speed here, please contact author.
; Feel free to contact me, even if you wouldn't want to add your speed..
; Contact addresses are:
; teemu.peltonen@stream.nullnet.fi in Internet
; Teemu Peltonen@2:222/100 in Fidonet
; Teemu Peltonen@68:100/100 in DGi-net
; Or call Bitstream BBS (+358-21-4383244) and leave a comment to operator
; (command C).
;--------------------------------------------------------------------------
stacki segment para stack use16 'stack'
dw 100h dup (?)
stacki ends
data segment para public use16 'data'
hexval db '0123456789ABCDEF'
stringi db 'Relative speed of computer is '
d db 0
c db 0
b db 0
a db 0
endi db 'h.$'
data ends
code segment para public use16 'code'
assume cs:code, ds:data, ss:stacki
startup:
mov ax, seg data
mov ds, ax
cli
mov al, 34h
out 43h, al ;OUT can be used as immediate
;if register value under 100h
xor al, al
out 40h, al
out 40h, al
sti
mov cx, 1000h ;action here,
here: ;must not take
dec cx ;more than 1/18
jnz here ;(0.0555) seconds to run
cli
mov al, 4h
out 43h, al
in al, 40h
mov dl, al
in al, 40h
mov dh, al
sti
neg dx ;Action took bx/1193180 seconds
mov cl, dh
and cl, 11110000b
shr cl, 4
xor bx, bx
mov bl, cl
mov ah, hexval[bx]
mov d, ah
mov cl, dh
and cl, 00001111b
xor bx, bx
mov bl, cl
mov ah, hexval[bx]
mov c, ah
mov cl, dl
and cl, 11110000b
shr cl, 4
xor bx, bx
mov bl, cl
mov ah, hexval[bx]
mov b, ah
mov cl, dl
and cl, 00001111b
xor bx, bx
mov bl, cl
mov ah, hexval[bx]
mov a, ah
mov ax, 0900h
mov dx, offset stringi
int 21h
mov ax, 4c00h
int 21h
code ends
end startup