Ausgabe 7 — Änderungen 2159 → 2160

Zeile 674: Zeile 674:
 
Daraus machen wir schnell eine Funktion:
 
Daraus machen wir schnell eine Funktion:
  
−
<pre>
+
<c>
 
void switch_on()
 
void switch_on()
 
{
 
{
 
outp(0x61,inp(0x61) | 3);
 
outp(0x61,inp(0x61) | 3);
 
}
 
}
−
</pre>
+
</c>
  
 
Okay. In Assembler baue ich das schon alles mit in die _sound-Funktion ein.
 
Okay. In Assembler baue ich das schon alles mit in die _sound-Funktion ein.
Zeile 685: Zeile 685:
 
Port 0x61 auf 00b stehen, dann ist der Lautsprecher aus. Das geht also ganz leicht:
 
Port 0x61 auf 00b stehen, dann ist der Lautsprecher aus. Das geht also ganz leicht:
  
−
<pre>
+
<c>
 
void switch_off()
 
void switch_off()
 
{
 
{
 
outp(0x61,inp(0x61) &~3);
 
outp(0x61,inp(0x61) &~3);
 
}
 
}
−
</pre>
+
</c>
  
 
Und in Assembler:
 
Und in Assembler:
−
<pre>
+
<asm>
 
_switch_off:
 
_switch_off:
 
IN AL,61h
 
IN AL,61h
Zeile 699: Zeile 699:
 
OUT 61h,AL
 
OUT 61h,AL
 
RET
 
RET
−
</pre>
+
</asm>
  
 
Fertig. An und aus können wir ihn schon machen, aber das Herzstückt kommt noch! Einen Ton
 
Fertig. An und aus können wir ihn schon machen, aber das Herzstückt kommt noch! Einen Ton
 
ausgeben. Das geht mit folgendem, diesmal zuerst in Assembler ;-):
 
ausgeben. Das geht mit folgendem, diesmal zuerst in Assembler ;-):
  
−
<pre>
+
<asm>
 
_sound:
 
_sound:
 
MOV AX,34DDH ;Die Frequenz wird in BX übergeben.
 
MOV AX,34DDH ;Die Frequenz wird in BX übergeben.
Zeile 726: Zeile 726:
 
DONE1:
 
DONE1:
 
RET
 
RET
−
</pre>
+
</asm>
  
 
So, jetzt in C:
 
So, jetzt in C:
−
<pre>
+
<c>
 
void sound(unsigned frequenz)
 
void sound(unsigned frequenz)
 
{
 
{
Zeile 741: Zeile 741:
 
//switch_off aufgerufen werden.
 
//switch_off aufgerufen werden.
 
}
 
}
−
</pre>
+
</c>
  
 
===Schluss===
 
===Schluss===