![]() |
Assembler 16Bit Sound
Code:
Diese kleine Function wirft den Sound-Speaker an. Ich konnte einige Werte ermitteln, was sie bedeuten. Leider fehlt mir eine Gesamt-Übersicht über die Speaker-Funktion. Habe zwar schon gegoogelt konnte aber noch nix brachbares finden.
Sound:
; ; Stellt Speaker auf eine Frequenz ein ; Eingabe: ; - BX = Frequenz in Hz ; push ax push bx push dx mov ax, 34DDh mov dx, 0012h cmp dx, bx jnc Sound_End ; klammer nicht hörbare töne aus und div durch 0 div bx ; 1193180 div Hz out 42h, al ; Setze Tone mov al, ah out 42h, al in al, 61h test al, 3 ; ist Speaker schon an ? jnz Sound_End or al, 3 out 61h, al ; Speaker an mov al, 0B6h ; Set up square wave out 43h, al Sound_End: pop dx pop bx pop ax ret Hat jemand einen Link oder eine Erklärung, was mit welcher Port-Adresse machbar ist? |
Re: Assembler 16Bit Sound
42h = Timerfrequenz, Timer 2
61h = Tastatur PIO, einzelne Bits aktivieren Timer und Umleitung der Frequenzsignale zum Speaker. Bits 1 und 2 sind die Aktivierung von Timer 2 und dessen Umleitung zum Speaker. D.h. wird auf einem Speaker ein Ton erzeugt so wird der nur durch das schneller Ein/Ausschalten einer 5V Spannung erzeugt. Dabei bestimmt Timer 2 dessen Frequenz. Der Zugriff auf diese Ports ist allerdings je nach OS beschränkt. Unter Win2k/XP sollte man ohne Treiber nicht auf diese Ports zugreifen, können, sollen, dürfen :) Schau mal im API nach Beep(), das dürfte das machen was du suchst. Gruß Hagen |
Re: Assembler 16Bit Sound
Vielen herzlichen dank! Das reicht für die Ausarbeitung!
Zitat:
Nur unter dem BIOS! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz