37 lines
937 B
NASM
37 lines
937 B
NASM
|
; GAMEPORT.ASM
|
||
|
;
|
||
|
|
||
|
.MODEL TINY
|
||
|
|
||
|
.DATA
|
||
|
|
||
|
yes DB 13,10,"Game port is installed.",13,10,"$"
|
||
|
no DB 13,10,"Game port is not installed.",13,10,"$"
|
||
|
|
||
|
.CODE
|
||
|
ORG 100h
|
||
|
|
||
|
start: mov al, 1 ;value to write to port
|
||
|
mov dx, 201h ;port number
|
||
|
out dx, al ;write to port
|
||
|
mov cx, 0F00h ;# of loops
|
||
|
|
||
|
port_loop:
|
||
|
in al, dx ;read from port
|
||
|
and al, 0Fh ;if jstick present, then AL should be
|
||
|
cmp al, 0Fh ; 0Fh after ANDing with 0Fh.
|
||
|
je jstick_exists
|
||
|
loop port_loop
|
||
|
mov dx, OFFSET no ;gameport not installed
|
||
|
jmp SHORT done
|
||
|
|
||
|
jstick_exists:
|
||
|
mov dx, OFFSET yes ;gameport installed
|
||
|
|
||
|
done: mov ah, 9h
|
||
|
int 21h
|
||
|
|
||
|
mov ax, 4c00h
|
||
|
int 21h
|
||
|
|
||
|
END start
|