AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Assembler 16Bit Sound

Ein Thema von neolithos · begonnen am 4. Dez 2003 · letzter Beitrag vom 7. Dez 2003
Antwort Antwort
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#1

Assembler 16Bit Sound

  Alt 4. Dez 2003, 21:25
Code:
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
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.

Hat jemand einen Link oder eine Erklärung, was mit welcher Port-Adresse machbar ist?
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Assembler 16Bit Sound

  Alt 6. Dez 2003, 10:24
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
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#3

Re: Assembler 16Bit Sound

  Alt 7. Dez 2003, 18:54
Vielen herzlichen dank! Das reicht für die Ausarbeitung!


Zitat von negaH:
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
Und wie gesagt, das Programm läuft nicht unter Windows, DOS, Linux, ...
Nur unter dem BIOS!
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz