mdlawler@bsu-cs.UUCP (Mike Lawler) (03/28/89)
Checksum: 1166874052 verify with brik) I'm having the following problems with the code below. It's purpose is to intercept activity of the hard drive and click the speaker. It locks up my machine with Norton's SI version 4.50 when I use the "C:" option. It also causes the sound of the speaker when the keyboard buffer is full to be a click instead of a beep. Also It compiles with MASM version 5.1, but not with MASM version 4.0 or TASM. Please email comments or suggested changes to the source code. Thanks for any replies. Cut here. cseg segment para public 'CODE' org 100h assume cs:cseg,ds:cseg start: jmp initit old_disk dd ? disk_init proc far sti pushf assume ds:nothing ; check if this request is for a diskette drive instead of for ; a hard disk. if it is, we aren't interested in it. ; TEST DL,080H ; check if this is for hard disk JZ no_bell ; exit if not call bellon call old_disk call belloff jmp disk_done no_bell: call old_disk disk_done: iret disk_init endp ; This procedure produces a tone of a specified frequency ; Enter the frequency, in HERTZ, in DI (32 to 65000) ; bellon proc near push ax push di push dx mov al,0b6h ;write timer mode reg out 43h,al mov di,32 ; freq mov dx,14h mov ax,4f38h div di out 42h,al ; write timer 2 count low byte mov al,ah out 42h,al ; write timer 2 count high byte in al,61h ; get current port setting or al,3 ; turn speaker on out 61h,al pop dx pop di pop ax ret bellon endp belloff proc near push ax in al,61h and al,0fch out 61h,al pop ax ret belloff endp initit: assume cs:cseg,ds:cseg mov bx,cs mov ds,bx mov al,13h mov ah,35h int 21h mov old_disk,bx mov old_disk[2],es clockstart: mov dx,offset disk_init mov al,13h mov ah,25h int 21h mov dx,offset initit int 27h cseg ends end start Cut here. -- Mike Lawler UUCP: <backbones>!{iuvax,pur-ee}!bsu-cs!mdlawler ARPA: mdlawler@bsu-cs.bsu.edu