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À