Seite 1 von 1

Computer piepst nicht

Verfasst: Do 1. Feb 2024, 19:52
von Martin Vieregg
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

Re: Computer piepst nicht

Verfasst: Fr 2. Feb 2024, 02:00
von ThomasFrey
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.

Re: Computer piepst nicht

Verfasst: Fr 2. Feb 2024, 09:48
von Frank Wochatz
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.

Re: Computer piepst nicht

Verfasst: Fr 2. Feb 2024, 15:24
von ThomasFrey
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.

Re: Computer piepst nicht

Verfasst: Mo 5. Feb 2024, 01:07
von ak120
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.
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.

Siehe auch: https://docs.oracle.com/en/virtualizati ... assthrough

Re: Computer piepst nicht

Verfasst: Mo 5. Feb 2024, 19:51
von ak120
Martin 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
Funktioniert ein simples

Code: Alles auswählen

ECHO ^G
auf der DOS- bzw. OS/2-Befehlszeile auch nicht?

Re: Computer piepst nicht

Verfasst: Di 6. Feb 2024, 01:48
von ThomasFrey
Nein, da wird G angezeigt, also wie bei ECHO G

Re: Computer piepst nicht

Verfasst: Di 6. Feb 2024, 08:06
von erdmann
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.

Re: Computer piepst nicht

Verfasst: Di 6. Feb 2024, 08:28
von ak120
ThomasFrey hat geschrieben: Di 6. Feb 2024, 01:48 Nein, da wird G angezeigt, also wie bei ECHO G
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?

Re: Computer piepst nicht

Verfasst: Mo 12. Feb 2024, 19:20
von erdmann
Ein "echo ^G" auf der CMD.EXE Kommandozeile ruft offensichtlich kein "DosBeep" auf. Keine Ahnung ob da überhaupt etwas passiert.

Re: Computer piepst nicht

Verfasst: Di 13. Feb 2024, 07:14
von ak120
erdmann hat geschrieben: Mo 12. Feb 2024, 19:20 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.

Re: Computer piepst nicht

Verfasst: Di 13. Feb 2024, 10:20
von erdmann
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.

Re: Computer piepst nicht

Verfasst: Di 13. Feb 2024, 15:21
von ak120
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.
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.