Computer piepst nicht
-
- Beiträge: 462
- Registriert: Di 19. Aug 2014, 09:30
Computer piepst nicht
Ich habe es nie geschafft, einen Ton aus dem Beep-Lautsprecher, der beim Motherboard bei "Speaker" angeschlossen ist, piepsen zu lassen und meinte, der Ton würde auf die Soundkarte umgeleitet. Doch aus den großen Lautsprechern kommt auch nichts. Systemsounds sind aktiviert und hörbar, Musik usw. sowieso. Unter Windows funktioniert es. Ich will vor allem zum Programmieren zur Kontrolle bei der Fehlersuche Beeps erzeugen können. Mein kleines Allroundprogramm DO erzeugt solche Beeps:
DO SOUND 200
ich höre aber nichts.
DO Kommandozeilenprogramm Archiv
DO SOUND 200
ich höre aber nichts.
DO Kommandozeilenprogramm Archiv
-
- Beiträge: 241
- Registriert: Fr 2. Apr 2021, 17:29
Hallo Martin
Bei mir piept der interne Lautsprecher. Bei meinem Lenovo ThinkCentre leite ich die Systemtöne und sonstiger Sound mit \MMOS2\ASwitch.exe auf die Soundkarte um, aber Dein DO-Piep wird nicht umgelaitet. Wahrscheinlich ist Dein PC-Lautsprecher kaputt, resp. die Elektronik. Das ist mir mal passiert, als ich bei einem alten PC den internen gegen einen anderen LS getauscht habe, der aussen lauter piepsen sollte. Nach einiger Zeit war er verstummt.
Bei mir piept der interne Lautsprecher. Bei meinem Lenovo ThinkCentre leite ich die Systemtöne und sonstiger Sound mit \MMOS2\ASwitch.exe auf die Soundkarte um, aber Dein DO-Piep wird nicht umgelaitet. Wahrscheinlich ist Dein PC-Lautsprecher kaputt, resp. die Elektronik. Das ist mir mal passiert, als ich bei einem alten PC den internen gegen einen anderen LS getauscht habe, der aussen lauter piepsen sollte. Nach einiger Zeit war er verstummt.
- Frank Wochatz
- Beiträge: 1138
- Registriert: So 22. Dez 2013, 22:04
- Wohnort: Berlin
- Kontaktdaten:
Also da es unter Win funktioniert, kann ja die Hardware eigentlich nicht kaputt sein.
Was mir aufgefallen ist, in einer VM funktioniert der Speaker nicht. Nutzt Du OS2 in einer VM oder direkt auf der Hardware? Es gibt in Virtualbox irgendwo Hinweise auf ein Speaker-Pasthrough, aber hier mit OS2 als Gast funktioniert das nicht, Jedenfalls nicht mit einer Standardinstallation von VBox und OS/2.
Was mir aufgefallen ist, in einer VM funktioniert der Speaker nicht. Nutzt Du OS2 in einer VM oder direkt auf der Hardware? Es gibt in Virtualbox irgendwo Hinweise auf ein Speaker-Pasthrough, aber hier mit OS2 als Gast funktioniert das nicht, Jedenfalls nicht mit einer Standardinstallation von VBox und OS/2.
-
- Beiträge: 241
- Registriert: Fr 2. Apr 2021, 17:29
Mir war nicht ganz klar, was unter Windows funktionieren soll. Das DO.exe hat Martin ja für OS/2 geschrieben und unter Windows habe ich noch nie den internen Lautsprecher gehört, wenn eine Soundkarte installiert war. Dieser war noch früher unter DOS hörbar, aber diese Zeiten sind lange vorbei.
Dieses "PC Speaker Passthrough" ist bei VirtualBox noch eine experimentelle Funktion nur für Linux-Wirtssysteme. Bei anderen Lösungen wie VMware oder Virtual PC funktioniert es jedoch problemlos - auch mit OS/2-Gastsystemen.Frank Wochatz hat geschrieben: ↑Fr 2. Feb 2024, 09:48 Also da es unter Win funktioniert, kann ja die Hardware eigentlich nicht kaputt sein.
Was mir aufgefallen ist, in einer VM funktioniert der Speaker nicht. Nutzt Du OS2 in einer VM oder direkt auf der Hardware? Es gibt in Virtualbox irgendwo Hinweise auf ein Speaker-Pasthrough, aber hier mit OS2 als Gast funktioniert das nicht, Jedenfalls nicht mit einer Standardinstallation von VBox und OS/2.
Siehe auch: https://docs.oracle.com/en/virtualizati ... assthrough
Funktioniert ein simplesMartin Vieregg hat geschrieben: ↑Do 1. Feb 2024, 19:52 Ich habe es nie geschafft, einen Ton aus dem Beep-Lautsprecher, der beim Motherboard bei "Speaker" angeschlossen ist, piepsen zu lassen und meinte, der Ton würde auf die Soundkarte umgeleitet. Doch aus den großen Lautsprechern kommt auch nichts. Systemsounds sind aktiviert und hörbar, Musik usw. sowieso. Unter Windows funktioniert es. Ich will vor allem zum Programmieren zur Kontrolle bei der Fehlersuche Beeps erzeugen können. Mein kleines Allroundprogramm DO erzeugt solche Beeps:
DO SOUND 200
ich höre aber nichts.
DO Kommandozeilenprogramm Archiv
Code: Alles auswählen
ECHO ^G
-
- Beiträge: 241
- Registriert: Fr 2. Apr 2021, 17:29
Nein, da wird G angezeigt, also wie bei ECHO G
Hast du eine Soundkarte/on-board Sound ? Dann umgeht:
https://hobbes.nmsu.edu/download/pub/os ... le_2-0.zip
das Problem indem es die "DosBeep" API (16-bit als auch 32-bit) durch Funktionalität ersetzt die statt eines Tones aus dem Lautsprecher einen Sinuston der gewünschten Frequenz und Länge erzeugt und das Signal auf die Soundkarte schickt (mittels MMPM). Hab ich mal geschrieben weil jemand nämlich genau das Problem hatte: ein Programm, welches "DosBeep" benutzt aber keinen Computer mehr, der überhaupt nur einen Lautsprecher hätte (so wie auch meiner).
Es ist ein readme dabei, wie das Programm geändert werden muss (in diesem Falle, das DO/SOUND Executable).
Low level mäßig ist Folgendes zu erklären: das "Gefiepe" aus dem Lautsprecher wird dadurch erzeugt, dass ein Kanal des Intel 8254 Zählerbausteins dazu hergenommen wird ein Rechtecksignal zu erzeugen (und genau diese Funktionalität benutzt die original Implementierung von DosBeep). Das wird dann noch über ein Gate geleitet (was dann natürlich noch geschlossen werden muss) und landet dann direkt auf dem Lautsprecher (wobei der arme Lautsprecher dann als Tiefpassfilter fungieren muss um aus dem Rechtecksignal noch ein einigermassen passables Sinussignal zu machen ...).
Das Ganze wird über einige I/O ports programmiert. Wenn das also unter Windows tatsächlich noch funktioniert, dann ist unter OS/2 womöglich das Gate nicht durchgeschaltet oder Windows benutzt ein gänzlich anderes Device um den Ton zu erzeugen.
https://hobbes.nmsu.edu/download/pub/os ... le_2-0.zip
das Problem indem es die "DosBeep" API (16-bit als auch 32-bit) durch Funktionalität ersetzt die statt eines Tones aus dem Lautsprecher einen Sinuston der gewünschten Frequenz und Länge erzeugt und das Signal auf die Soundkarte schickt (mittels MMPM). Hab ich mal geschrieben weil jemand nämlich genau das Problem hatte: ein Programm, welches "DosBeep" benutzt aber keinen Computer mehr, der überhaupt nur einen Lautsprecher hätte (so wie auch meiner).
Es ist ein readme dabei, wie das Programm geändert werden muss (in diesem Falle, das DO/SOUND Executable).
Low level mäßig ist Folgendes zu erklären: das "Gefiepe" aus dem Lautsprecher wird dadurch erzeugt, dass ein Kanal des Intel 8254 Zählerbausteins dazu hergenommen wird ein Rechtecksignal zu erzeugen (und genau diese Funktionalität benutzt die original Implementierung von DosBeep). Das wird dann noch über ein Gate geleitet (was dann natürlich noch geschlossen werden muss) und landet dann direkt auf dem Lautsprecher (wobei der arme Lautsprecher dann als Tiefpassfilter fungieren muss um aus dem Rechtecksignal noch ein einigermassen passables Sinussignal zu machen ...).
Das Ganze wird über einige I/O ports programmiert. Wenn das also unter Windows tatsächlich noch funktioniert, dann ist unter OS/2 womöglich das Gate nicht durchgeschaltet oder Windows benutzt ein gänzlich anderes Device um den Ton zu erzeugen.
Zuletzt geändert von erdmann am Di 6. Feb 2024, 08:31, insgesamt 1-mal geändert.
Vielleicht hätte ich für die Allgemeinheit dazuschreiben sollen, daß ^G verkürzt die durch die Tastenkombination Strg+G erzeugte Steuerungskodierung (BELL) darstellt.
Eine Frage an die Spezialisten: Welcher der so erzeugten Töne aus CMD.EXE oder COMMAND.COM ist höher?
Ein "echo ^G" auf der CMD.EXE Kommandozeile ruft offensichtlich kein "DosBeep" auf. Keine Ahnung ob da überhaupt etwas passiert.
Bei der ursprünglichen Frage ging es doch um die Funktion des eingebauten Lautsprechers. Dann scheint es zumindest eine alternative Methode im Protected Mode zu geben, welche unter allen OS/2-Versionen inkl. NT funktioniert.
Mir ist schon klar um was es ging. Allerdings hätte ich erwartet, dass CMD.EXE einfach "DosBeep" benutzt um den Lautsprecherton zu erzeugen (das wäre das Einfachste und Naheliegendste).
Jetzt wo ich CMD.EXE aber "instrumentiert" habe, stelle ich fest, dass es "DosBeep" nicht aufruft, wenn man "echo ^G" auf der Kommandozeile eingibt.
Dann muss CMD.EXE also direkt die Ports programmieren. Das würde aber bedeuten, dass es ein IOPL Segment haben muss oder "DosPortAccess" und dergleichen nutzt, weil außer "DOSCALLS" von CMD.EXE keine weiteren DLLs angezogen werden.
Hörst du denn was, wenn du "echo ^G" auf der Kommandozeile eingibst ? Ich kann das nicht testen, weil ich gar keinen eingebauten Lautsprecher mehr habe.
Jetzt wo ich CMD.EXE aber "instrumentiert" habe, stelle ich fest, dass es "DosBeep" nicht aufruft, wenn man "echo ^G" auf der Kommandozeile eingibt.
Dann muss CMD.EXE also direkt die Ports programmieren. Das würde aber bedeuten, dass es ein IOPL Segment haben muss oder "DosPortAccess" und dergleichen nutzt, weil außer "DOSCALLS" von CMD.EXE keine weiteren DLLs angezogen werden.
Hörst du denn was, wenn du "echo ^G" auf der Kommandozeile eingibst ? Ich kann das nicht testen, weil ich gar keinen eingebauten Lautsprecher mehr habe.
Herausfinden wird man es wohl fast nur mit dem Kernel Debugger. Ich hätte vermutet, daß es über DosDevIOCtl gemacht wird. Sicher kann ich den Piepton hören, sowohl unter CMD als auch in der COMMAND.COM. Mir fiel nur auf, daß der Ton nach meinem Höreindruck unter DOS etwas höher ist. Mir ging es letztlich nur darum, fehlerhafte Bibliotheken oder ähnliche Einflüsse als Ursache auszuschließen.erdmann hat geschrieben: ↑Di 13. Feb 2024, 10:20 Mir ist schon klar um was es ging. Allerdings hätte ich erwartet, dass CMD.EXE einfach "DosBeep" benutzt um den Lautsprecherton zu erzeugen (das wäre das Einfachste und Naheliegendste).
Jetzt wo ich CMD.EXE aber "instrumentiert" habe, stelle ich fest, dass es "DosBeep" nicht aufruft, wenn man "echo ^G" auf der Kommandozeile eingibt.
Dann muss CMD.EXE also direkt die Ports programmieren. Das würde aber bedeuten, dass es ein IOPL Segment haben muss oder "DosPortAccess" und dergleichen nutzt, weil außer "DOSCALLS" von CMD.EXE keine weiteren DLLs angezogen werden.
Hörst du denn was, wenn du "echo ^G" auf der Kommandozeile eingibst ? Ich kann das nicht testen, weil ich gar keinen eingebauten Lautsprecher mehr habe.
-
- Beiträge: 462
- Registriert: Di 19. Aug 2014, 09:30
Bei Ctrl-G in der Kommandozeile höre ich auch nichts. Könnte es sein, dass wegen installiertem Sound der Sound auf den Lautsprecherausgang geleitet wird, und das aber irgendwie nicht funktioniert?