Soundausgabe ohne OS ?



  • hallo..

    mal ne frage:

    ist es irgendwie möglich in assembler die soundkarte anzusprechen, ohne
    dass man eine betriebssystem-library verwendet ?

    wenn ja , in welcher form ?

    oder gibt es so standardsoundeffekte, die jede soundkarte kann ?
    so c64-mäßig 😉

    mfg haMMer



  • Hi.

    Hammer schrieb:

    ist es irgendwie möglich in assembler die soundkarte anzusprechen, ohne
    dass man eine betriebssystem-library verwendet ?

    Sicher. Per In/Out. Das OS machts letztendlich auch nicht anders, Zauberei steckt jedenfalls nicht dahinter 😉
    Beachten solltest du allerdings, dass in PM-Betriebssystemen wie Windows nicht ohne Weiteres auf I/O-Ports zugegriffen werden kann.

    wenn ja , in welcher form ?

    Soundkartenabhaengig.
    Bei neueren PCI-Soundkarten gibt es allerdings das Problem, dass meistens keine genaueren Beschreibungen der Resourcenbelegung kostenlos vorfuergbar sind.

    oder gibt es so standardsoundeffekte, die jede soundkarte kann ?
    so c64-mäßig 😉

    So etwas in der Art gab es tatsaechlich!
    Nahezu alle ISA-Soundkarten waren letztendlich SoundBlaster-kompatibel.

    Bei PCI-Soundkarten gibt es allerdings AFAIK keine Standards mehr. => Wenn du nicht in einer Firma arbeitest, die ein OS entwickelt, hast du eher schlechte Karten, an die Spezifikationen der PCI-Teile zu kommen.



  • Nubuo T schrieb:

    Nahezu alle ISA-Soundkarten waren letztendlich SoundBlaster-kompatibel.

    Sind das die für diesen alten breiteren Slot??? Ich kenn' nur PCI, AGP und so einen etwas älteren Slot, der wie PCI in groß aussieht. Manchmal is dahinter noch etwas, das vage an einen PCI-Slot erinnert. Naja, keine gute Beschreibung, aber sind das die???



  • *OMG* So sehr ist ISA schon in Vergessenheit geraten. 😮 😞
    Aber ich denke, was du beschreibst ist einmal ein ISA und einmal ein EISA-Slot (der mit dem "PCI-Slot" dahinter)



  • Nobuo T schrieb:

    *OMG* So sehr ist ISA schon in Vergessenheit geraten. 😮 😞
    Aber ich denke, was du beschreibst ist einmal ein ISA und einmal ein EISA-Slot (der mit dem "PCI-Slot" dahinter)

    Moment, ISA ist der kurze schwarze mit den großen Steckern, dann EISA hat noch einen gelichartigen dahintergesetzt. Der mit dem PCI-Artigen noch dahinter ist EISA mit Vesa Local Bus 🙂



  • hmmm, also ist das dann so, dass die Hersteller von den Soundkarten ihre
    eigene Maschinenbefehle haben ?
    oder wie meinst du das mit den Spezifikationen ?

    kennst du da zufällig grad was ?

    wie würde sowas als asm code z.b. aussehen ...

    mfg



  • Hammer schrieb:

    hmmm, also ist das dann so, dass die Hersteller von den Soundkarten ihre
    eigene Maschinenbefehle haben ?

    Was meinst du mit "Maschinenbefehle"?
    Extra OpCodes fuer die CPU bringt ein Zusatzgeraet wie eine PCI-Karte jedenfalls nicht mit.

    Hammer schrieb:

    oder wie meinst du das mit den Spezifikationen ?

    zB. was du in die I/O-Ports schreiben musst, damit die Lautsaterke veraendert oder ein Wavebuffer abgespielt wird.

    Hammer schrieb:

    kennst du da zufällig grad was ?

    wie würde sowas als asm code z.b. aussehen ...

    Ich habe da nur etwas fuer SoundBlaster. Fuer PCI-Soundkarten habe ich wie gesagt nichts.

    ;Reset SoundBlaster DSP / Detect SoundBlaster DSP
    
    Proc ResetDSP NEAR   ;if CF-failure
    
      mov  dx,[word ptr DSPAddr]
      add  dl,06h
      mov  al,01h
      out  dx,al
      in   al,dx
      in   al,dx
      in   al,dx
      in   al,dx
      mov  al,00h
      out  dx,al
      add  dl,08h
      mov  cx,00C8h
    @@Loop0:
      in   al,dx
      test al,al
      js   short @@2NDTest
      loop @@Loop0
      jmp  short @@EndLoop
    @@2NDTest:
      sub  dl,04h
      in   al,dx
      add  dl,04h
      cmp  al,0AAh ;wenn z, wird c 0
      je   short @@SBFound
      loop @@Loop0
    @@EndLoop:
      stc
    @@SBFound:
      ret
    ENDP ResetDSP
    

    @TriPhoenix: Aha 🙂



  • danke danke..
    🙂


Anmelden zum Antworten