Sharp logo
The joystick MZ-1X03  
Joystick MZ-1X03 
( Operating instructions )  
How to connect

1X03 pushbuttons  


Check to be sure that power to the MZ-700 series unit as well as to the peripheral equipment are all OFF.

Remove the cover on the Joy Stick connector located on the left side of the rear panel of the MZ-700 unit. Save the cover, and attach again when disconnecting the cable.

With the projection facing up, connect the cable to either the left or right connector. If both connectors are connected, 2 Joy Sticks can be used simultaneously.


Functions related to the Joy Stick


The function JOY is completely defined in the S-Basic for the MZ-700 series.

Format: JOY ( n )
  n: integer from 0 to 7
 
Example: M = JOY ( I )
  N = JOY ( B )
 
 Function: Inputs data from the Joy Stick
 
 
There are 2 types of input data:
   For argument n, 0 - 3   
 
Stick position
meaning  
 
0
value of the X-axis of stick 1  
 
1
value of the Y-axis of stick 1  
 
2
value of the X-axis of stick 2  
 
3
value of the Y-axis of stick 2  
  Value of function JOY ( n ) ranges 0 - 255  
     
  For argument n, 4 - 7  
 
State
meaning  
 
4
state of SW1 of stick 1  
 
5
state of SW2 of stick 1  
 
6
state of SW1 of stick 2  
 
7
state of SW2 of stick 2  
 
 
Values of function JOY ( n )
 
 0
switch is in OFF state  
 
-1
switch is in ON state  
     

Program Examples
Program A


A program which moves the character black heart suit = valentine in the direction the Joy Stick is moved. ( One space is left opened on the right edge of the screen. )

Note This is an example for stick 1. To use this example for stick 2, change the argument of the JOY function in lines 20 and 30. ( 0 to 2, 1 to 3 )

   10 PRINT "Clear screen"
   20 X=INT(JOY(0) / 6.5)
   30 Y=INT(JOY(1) / 10.6)
   40 IF X=39 THEN X=38
   50 CURSOR X,Y
   60 PRINT " black heart suit = valentine";
   70 FOR A=0 TO 20:NEXT
   80 CURSOR X,Y
   90 PRINT " ";
   100 GOTO 20
Program B


This is a program which takes the input from the Joy Stick to correspond to a semi-graphic display on the screen.

If SW1 or SW2 is pressed, the color of the dot changes in sequence from 1 to 7. To use this example for stick 2 ( connected to the right connector ), change B = 0 in line 10 to B = 2.

   10 B0=:C=1:F=1:COLOR ,,7,0:PRINT "Clear screen"
   20 JX=INT(JOY(B) / 3.2)
   30 JY=INT(JOY(B+1) / 5.2)
   40 SET JX,JY,C
   50 CURSOR 2,2:PRINT JX,JY,C,
   60 IF(JOY(B+4))+(JOY(B+5)) GOTO 80
   70 F=0:GOTO 20
   80 IF F=0 GOSUB 100
   90 GOTO 20
   100 F=1:C=C+1:IF C=8 THEN C=0
   110 RETURN
Program C


This is a program which takes the input from the Joy Stick to correspond to a semi-graphic display on screen. If SW1 is pressed, the color of the dot changes in sequence from 1 to 7. If SW2 is pressed, the set and reset mode of the dot changes. If SW2 is pressed while SW1 is being pressed, and then if SW1 is released, the screen clears. To use this example for stick 2 ( connected to the right connector ), change B = 0 in line 10 to B = 2.

   10 B=0:F=1:COLOR ,,7,0:PRINT "Clear screen"
   20 JX=INT(JOY(B) / 3.2
   30 JY=INT(JOY(B+1) / 5.2
   40 SET JX,JY,C
   50 CURSOR 2,2:PRINT JX,JY,F,
   60 IF JOY(B+4) GOSUB 100
   70 IF JOY(B+5) GOSUB 130
   80 IF F THEN RESET JX,JY
   90 GOTO 20
   100 W=B+4:GOSUB 150:IF JOY(B+5) THEN PRINT "Clear screen":GOTO    140
   110 C=C+1:W=B+4:IF C=8 THEN C=0
   120 GOTO 150
   130 F=(F=0)
   140 W=B+5
   150 IF JOY(W) THEN 150
   160 RETURN
How to use at machine language level

Switch Read Routine

Stick Read Routine

 




A machine language program example is given which reads the state of the Joy Stick. The program given here reads the position of sticks 1 and 2, as well as the state of SW1 and SW2. The program is given as a subroutine.

It is assumed that this program will be used as a subroutine. The result is returned to register A. If the switch is pressed, the subroutine returns a value other than 0 to register A.

Note This program can be used in the address range of $0000 to $CFFF. It can be used beyond $D000 only in the V-RAM mode.

You can download this program ( 4KB ), it contains the assembler input and output, and a MZF-formatted file.


Go to the top of this page Home

last updated August 5, 2002
sharpmz@sharpmz.org