(******************************************************************************

    :Program.    Joystick.mod
    :Contents.   procedures for joystick control
    :Version.    0.1
    :Date.       17.10.91
    :Author.     Markus Uhlendahl    Peter Groth
    :Address.    Vorm Burgtor 16     Kleine Koppel 12
    :Address.    D-4408 Dülmen       D-4408 Dülmen
    :Phone.      02594/81540         02594/82375
    :Language.   Modula-2 / Assembler
    :Translator. M2Amiga 4.0d
    :History.    17.10.91 --- 0.1 --- created

******************************************************************************)
IMPLEMENTATION MODULE Joystick;
(*$ ReturnChk:=FALSE *)


FROM Definitions IMPORT
  Direction;

FROM R IMPORT
  D0;

FROM SYSTEM IMPORT
  ASSEMBLE;


PROCEDURE Joy(joynumber{D0}:INTEGER) : Direction;
(*$ EntryExitCode:=FALSE *)

BEGIN
  ASSEMBLE (
        ASL.W   #1,D0
        LEA     $00DFF00A,A0
        MOVE.W  0(A0,D0.W),D1
        MOVE.W  D1,D0
        AND.W   #3,D0
        ASR.W   #6,D1
        AND.W   #12,D1
        OR.W    D0,D1
        MOVE.B  TABLE(PC,D1.W),D0
        RTS
TABLE:  DC.B    0,2,0,3,1,0,0,0,0,0,0,0,4,0,0,0
        END );
END Joy;


PROCEDURE Fire(joynumber{D0}:INTEGER) : BOOLEAN;
(*$ EntryExitCode:=FALSE *)

BEGIN
  ASSEMBLE (
        MOVEQ   #6,D1
        ADD.B   D0,D1
        MOVE.W  $00BFE000,D0
        BTST    D1,D0
        SEQ     D0
        RTS
        END );
END Fire;


END Joystick.
