home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh4x
/
sh43b.d64
/
joystick.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
3KB
|
119 lines
2 OPEN1,8,1,"MA.JOY"
5 SYS 36864
6 .OPT P,O1
7 *= $C000
9 ;
10 ; *** MA.JOY ***
11 ;
12 ; ANDREAS WENDKER
13 ; (null)JENBERGSWEG 112 D
14 ; 2050 HAMBURG 80
15 ; TEL. (040) 720 68 04
16 ;
17 ;
18 ; AUFRUF -> SYS 49152, NUMMER
19 ;
20 ; FUNKTION -> JOYSTICK-ABFRAGE
21 ;
22 ;
23 ;
50 GETBYTE = $B79E;ZAHL (0-255) AUS BASIC-TEXT HOLEN
51 ;UND IN X UEBERGEBEN
52 CHKCOM = $AEFD;AUF KOMMA PRUEFEN
53 FEHAUS = $A437;FEHLERMELDUNG AUSGEBEN
54 LETVAR = $A9A5;BASIC-BEFEHL LET BEARBEITEN
90 ;
91 ;JOYSTICK-PORT-NUMMER AUS BASIC-TEXT HOLEN, WERTEBEREICHS-UEBERPRUEFUNG
92 ;SOWIE BESTIMMUNG EINIGER PARAMETER
93 ;
100 START JSR CHKCOM;KOMMA UEBERSPRINGEN
120 JSR GETBYTE;NUMMER DES JOYSTICK-PORTS HOLEN
140 DEX;PRUEFEN, OB ZAHL = 1 BZW. 2
160 CPX #2
180 BCC OK
200 LDX #14;SONST FEHLERMELDUNG AUSGEBEN
220 JMP FEHAUS;-> ILLEGAL QUANTITY ERROR
240 OK INX;JE NACH JOYSTICK-PORT-NUMMER
260 LDA #"1";A MIT "1" BZW. "2" LADEN UND
280 CPX #2;X AUF JOYSTICK-REGISTER
300 BNE JONUM;ZEIGEN LASSEN
320 LDX #0
340 LDA #"2";ASCII-CODE DER PORT-NUMMER ALS 2. BUCHSTABEN
360 JONUM STA TEXT+1;DES VARIABLEN-NAMENS UEBERNEHMEN
370 ;
371 ;VARIABE 'J1' BZW. 'J2' BEARBEITEN -> JE NACH BEWEGUNGSRICHTUNG
372 ;DES JOYSTICKS EINEN WERT VON 0 BIS 8 ZUWEISEN
373 ;
380 LDA #"J";1.BUCHSTABE = "J"
400 STA TEXT;-> VARIABLE HEISST NUN 'J1' BZW. 'J2'
420 LDA 56320,X;WERT DES JOYSTICK-REGISTERS HOLEN
440 PHA;UND RETTEN
460 AND #%00001111;UNTERE VIER BITS ISOLIEREN
480 LDY #8
500 JOSUCH CMP VERWER,Y;UND MIT ALLEN MOEGLICHEN WERTEN VERGLEICHEN
520 BEQ FOUND
540 DEY
560 BPL JOSUCH
580 FOUND TYA;A ENTHAELT JETZT DEN WERT, DER DER VARIABLEN
582 ;ZUGEWIESEN WERDEN SOLL
600 JSR ANLEGEN;VARIABLE ANLEGEN
610 ;
611 ;JETZT DIE VARIABLE 'F1' BZW. 'F2' BEARBEITEN
612 ;-> JE NACH ZUSTAND DES FEUERKNOPFES 0 ODER 1 ZUWEISEN
613 ;
620 LDA #"F";VARIABLEN-NAMEN AB TEXT UMBENENNEN
640 STA TEXT;IN 'F1' BZW. 'F2'
660 PLA;WERT DES JOYSTICK-REGISTERS ZURUECKHOLEN
680 AND #%00010000;FEUERKNOPF-BIT ISOLIEREN
700 CMP #0
720 BEQ FEUOK;KNOPF GEDRUECKT
740 LDA #1
760 FEUOK EOR #1;BIT 0 UMDREHEN -> A ENHAELT NUN
761 ;GEWUENSCHTEN WERT
762 ;
763 ;ROUTINE ZUM ANLEGEN DER VARIABLEN
764 ;-> BEI J1/J2 WIRD SIE ALS UNTERPROGRAMM AUFGERUFEN, BEI F1/F2
765 ;GANZ NORMAL DURCHGEGANGEN
766 ;-> IN A MUSS DER SPAETERE WERT DER VARIABLEN STEHEN
767 ;
770 ANLEGEN CLC;ASCII-CODE DER ZAHL ERMITTELN
780 ADC #48
800 STA TEXT+3;UND IN BASIC-BEFEHL AB TEXT EINFUEGEN
820 LDA $7A;CHRGET-ZEIGER RETTEN
840 PHA
860 LDA $7B
880 PHA
900 LDA #<TEXT;CHRGET-ZEIGER AUF EIGENEN BEFEHL
920 STA $7A;AB TEXT RICHTEN
940 LDA #>TEXT
960 STA $7B
980 JSR LETVAR;BEFEHL ABARBEITEN -> WERTZUWEISUNG
1000 PLA;CHRGET-ZEIGER AUF ALTES BYTE RICHTEN
1020 STA $7B
1040 PLA
1060 STA $7A
1080 RTS
9000 ;
9001 ;ALLE DENKBAREN KOMBINATIONEN DER VIER BEWEGUNGSRICHTUNGEN
9002 ;DES JOYSTICKS -> REIHENFOLGE ENTSPRICHT
9003 ;DEN SPAETEREN VARIABLEN-WERTEN
9004 ;
10000 VERWER .BYTE %00001111;NICHT BEWEGT
10001 .BYTE %00001110;OBEN
10002 .BYTE %00001101;UNTEN
10003 .BYTE %00001011;LINKS
10004 .BYTE %00000111;RECHTS
10005 .BYTE %00001010;OBEN-LINKS
10006 .BYTE %00000110;OBEN-RECHTS
10007 .BYTE %00001001;UNTEN-LINKS
10008 .BYTE %00000101;UNTEN-RECHTS
10500 ;
10501 ;BASIC-BEFEHL J1=0
10502 ;-> VERSCHLUESSELT ZUR BEARBEITUNG DURCH DAS BETRIEBSSYSTEM
10504 ;-> BEFEHL WIRD JE NACH VARIABLE GEAENDERT
10505 ;
11000 TEXT .ASC "J1";PLATZ FUER VARIABLEN-NAMEN
11001 .BYTE $B2;BASIC-TOKEN FUER '='
11002 .BYTE 48, 0;PLATZ FUER ASCII-CODE DES ERGEBNISSES
11003 ;DIE 0 KENNZEICHNET DAS BEFEHLS-ENDE