(* =========================================================================== BBS: Canada Remote Systems Date: 05-31-93 (17:52) Number: 24475 From: MARK LEWIS Refer#: NONE To: CHARLES LUMIA Recvd: NO Subj: PC SPEAKER AND RAW SO Conf: (1221) F-PASCAL --------------------------------------------------------------------------- > Do you know how to send stuff to a PC speaker, I can't even find > the port # for it OR how to output any data through it? try this on for size ... these are three TP 6.0 Assembler routines that "mimic" the same ones that come in TP's CRT unit. DELAY was given to me by Sean Palmer (thanks sean! it works as advertised -=B-) and the other two i hacked out myself... procedure delay(ms : word); Assembler; {ms is the number of milliseconds to delay. 1000ms = 1second} *) asm mov ax,1000 mul ms mov cx,dx mov dx,ax mov ah,$86 int $15 end; procedure sound( hertz : word); Assembler; {hertz is the sound frequency to send to the speaker port} asm MOV BX,SP MOV BX,&hertz MOV AX,34DDh MOV DX,0012h CMP DX,BX JNB @J1 DIV BX MOV BX,AX IN AL,61h TEST AL,03h JNZ @J2 OR AL,03h OUT 61h,AL MOV AL,-4Ah OUT 43h,AL @J2: MOV AL,BL OUT 42h,AL MOV AL,BH OUT 42h,AL @J1: end; procedure nosound; Assembler; {turns the speaker off} asm IN AL,61h AND AL,0FCh OUT 61h,AL end;