Category : Pascal Source Code
Archive   : 3DLAB110.ZIP
Filename : CONTROLS.ASM

 
Output of file : CONTROLS.ASM contained in archive : 3DLAB110.ZIP
; CONTROLS.ASM
; Peliohjainrutiinit, (C) 1990 Pasi Kettunen
; Turbo Pascal-kielt„ varten:

EXTRN KEY : BYTE
EXTRN KEYHITC : BYTE

CODE SEGMENT
ASSUME CS:CODE
PUBLIC READJOY, KEYINT

KEYINT PROC FAR

PUSH AX ; Rekisterit talteen
PUSH BX
PUSH CX
PUSH DS

MOV AX,SEG KEY ;KEY-taulukon segment
MOV BX,OFFSET KEY ;KEY-taulukon offset

MOV DS,AX
IN AL,60H ;Luetaan n„pp„imist”
MOV CL,AL
AND CX,7FH ;Painetun/p„„stetyn
ADD BX,CX ;n„pp„imen osoite BX:„„n

NOT AL ;Otetaan vain ylin bitti
AND AL,80H ;ja k„„nnet„„n p„invastoin
MOV [BX],AL ;Asetetaan taulukkoon
MOV KEYHITC,AL
IN AL,61H ;Lopuilla k„skyill„
OR AL,80H ;kerrotaan n„pp„imist”
OUT 61H,AL ;piirille, ett„ uusia
AND AL,7FH ;painalluksia odotetaan
OUT 61H,AL
MOV AL,20H
OUT 20H,AL
POP DS ;Palautetaan rekisterit
POP CX
POP BX
POP AX
IRET ;Paluu keskeytysrutiinista

KEYINT ENDP

READJOY PROC NEAR

MOV DX,201H ;Game I/O porttiosoite
MOV CX,0FFFFH ;Toistolaskuri
CLI ;Kiellet„„n keskeytykset
OUT DX,AL ;Laukaistaan game I/O
XYLOOP: IN AL,DX ;Luetaan game I/O
TEST AL,01B ;Bitti 0 on X
JZ XREADY ;jos 0, X:n arvo on valmis
TEST AL,10B ;Bitti 1 on Y
JZ YREADY ;jos 0, Y:n arvo on valmis
LOOP XYLOOP
MOV CX,0FFFFH ;Silmukka py”rinyt loppuun
MOV BX,CX ;eli joystick puuttuu
JMP SHORT EXIT
XREADY: MOV BX,CX ;X:n arvo BX:„„n
YLOOP: IN AL,DX
TEST AL,10B ;Bitti 1 on Y
JZ EXIT
TEST AL,10B ;Sama testi toisen kerran
JZ EXIT ;jotta silmukka vastaisi
LOOP YLOOP ;ajallisesti ensimm„ist„
JMP SHORT EXIT
YREADY: MOV BX,CX ;Y:n arvo BX:„„n

XLOOP: IN AL,DX
TEST AL,01B ;Bitti 0 on X
JZ XREADY2
TEST AL,01B ;Sama testi uudestaan
JZ XREADY2
LOOP XLOOP
XREADY2:XCHG BX,CX ;Vaihdetaan X ja Y oikein
EXIT: STI ;Sallitaan keskeytykset
;X, Y perustuvat takap. py”rin. laskuriin
MOV DX,0FFFFH ;K„„nnet„„n ne oikein p„in
MOV AX,DX
SUB DX,CX ;DX = Y
SUB AX,BX ;AX = X
RET ;Paluu

READJOY ENDP

CODE ENDS

END


  3 Responses to “Category : Pascal Source Code
Archive   : 3DLAB110.ZIP
Filename : CONTROLS.ASM

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/