|
Home -
Gallery
Geology
Music
Software
Hiking
Links
Sport
What?
Projects Sources V4 Flightsim Joystick Workshop 1 2 3 4 5 6 7 8 Anl A B C D E F G H I J K L M N O |
Page 353 of 401
< > |
Anlage E zum Joystick-Papier
Radtke/Lampton1996, deutsch, Seite 168
Assembler-Funktion readstick
Assembler-Modul für DOS
Die Assembler-Routine demonstriert direktes Lesen des Status-Byte aus dem Port plus Extraktion eines Wertes aus dem Port-Bit durch Zeit-Messung mittels einer Befehls-Schleife.
Schlüsselpassage:
_readstick PROC
; Lies aktuelle Position des Joysticks auf der von BMASK
; angegebenen Achse
ARG bmask:WORD
push bp
mov bp,sp
cli ; Interrupts abschalten,
; stören das Timing
mov ah,byte ptr bmask ; Hole die Bitmask nach ah
mov al,0
mov dx,GAMEPORT ; Richte DX auf den Joystick-Port
mov cx,0 ; Vorbereitung 65536 Durchläufe
out dx,al ; Setze die Joysick-Bits auf 1
loop2:
in al,dx ; Liest die Joysick-Bits
test al,ah ; Ist das geforderte Bit noch 1?
loopne loop2 ; In diesem Fall (und wenn
; Zählung des Maximums
; noch nicht stattfand,
; versuche es noch einmal.
sti ; Zählung abgeschlossen,
; Interrupts wieder einschalten.
mov ax,0
sub ax,cx ; CX von Null abziehen,
; um die Zahl zu erhalten
pop bp
ret
Das ist die genaueste Möglichkeit der Signal-Erfassung software-seitig.
.