JOYSASM;----- JOYS.KCC - Joystickabfrage -----
;
;neu:	- mit Centronics-Buchse
;	- verschieblich
;	- Adressen: 0000 008A 000D
;	- ohne st{ndige Interrupts
;	- gleichzeitiger Druckerbetrieb
;	  m|glich mit LX400.KCC
;
;			` ml 28.12.1992
;--------------------------------------
CTC3	EQU	8FH	;CTC Kanal3
PIOD	EQU	90H	;Datenwort
PIOS	EQU	92H	;Steuerwort
ITAB	EQU	01D4H	;Interrupt-Tab.
UREL	EQU	0F00FH	;rel. UP-Aufruf
;-------
	ORG	0
CTAB:	DB	00H
	DB	0BH	;UP
	DB	0AH	;DOWN
	DB	08H	;LEFT
	DB	09H	;RIGHT
	DB	0DH	;FIRE
;-------
	DW	7F7FH
	DB	'JOYS'
	DB	1
START:	DI
	LD	HL,ISR1-#-8
	CALL	UREL
	DW	ADR-#-2
	LD	(ITAB),HL
	LD	A,ITAB	;D4H
	OUT	PIOS,A	;INT-Vektor
	LD	A,0CFH	;Bitbetrieb
	OUT	PIOS,A	;Betriebsart
	LD	A,7FH	;Bit7=Ausgang
	OUT	PIOS,A	;E/A-Steuerw.
	LD	A,97H	;Jedes Bit INT
	OUT	PIOS,A	;INT-Steuerw.
	LD	A,0C0H	;INT-Maske
	OUT	PIOS,A
	EI
	RET
;
;erste Initialisierung Joystick-Modul:
;------------------------------------
ISR1:	PUSH	AF
	PUSH	HL
	PUSH	DE
	LD	A,3	;PIO-DI
	OUT	PIOS,A
	LD	HL,ISR2-#-8
	CALL	UREL
	DW	ADR-#-2
	LD	(ITAB),HL
	LD	A,04FH	;Byte-Eingabe
	OUT	PIOS,A	;Betriebsart
	LD	A,087H	;PIO-EI
	OUT	PIOS,A	;INT-Steuerw.
	JR	END1
;
;Betrieb Joystick-Modul:
;----------------------
ISR2:	PUSH	AF
	PUSH	HL
	PUSH	DE
	PUSH	BC
	LD	HL,CTAB-#-8;Tabelle
	CALL	UREL
	DW	ADR-#-2
	IN	A,PIOD
	LD	B,4
	LD	C,A
L02:	SRL	A
	INC	HL
	JR	NC,L01	;Bit aktiv
	DJNZ	L02
	INC	HL
	BIT	4,C	;Test FIRE
	JR	Z,L01
	CALL	UREL
	DW	START-#-2
	JR	END2	;keine Funktion
L01:	LD	A,M	;Code
	LD	(IX+13),A;Tastencode
	SET	0,(IX+8);Taste vorh.
	LD	A,0A7H	;Neue ZK laden
	OUT	CTC3,A	;CTC-Steuerw.
	LD	A,08FH	;ZK Tastatur
	OUT	CTC3,A
END2:	POP	BC
END1:	POP	DE
	POP	HL
	POP	AF
	EI
	RETI
;-------
ADR:	POP	DE	;Berechnung der
	PUSH	DE	;rel. Adresse
	ADD	HL,DE
	RET
А@Аt(Аp6АnTop of Text: End of Text: Start of MC: ASM-Offset : хЫ€ц$У€сЙхЫ€жЫУ€сЙНMА~#НDА;rel. Adresse
	ADD	HL,DE
	RET
А@Аt(Аp6АnTop of Text: End of Text: Start of MC: ASM-Offset : хЫ€ц$У€сЙхЫ€жЫУ€сЙНMА~#НDА