home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh4x / sh43b.d64 / joystick.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  3KB  |  119 lines

  1. 2 OPEN1,8,1,"MA.JOY"
  2. 5 SYS 36864
  3. 6 .OPT P,O1
  4. 7 *= $C000
  5. 9 ;
  6. 10 ;  *** MA.JOY ***
  7. 11 ;
  8. 12 ; ANDREAS WENDKER
  9. 13 ; (null)JENBERGSWEG 112 D
  10. 14 ; 2050 HAMBURG 80
  11. 15 ; TEL. (040) 720 68 04
  12. 16 ;
  13. 17 ;
  14. 18 ; AUFRUF -> SYS 49152, NUMMER
  15. 19 ;
  16. 20 ; FUNKTION -> JOYSTICK-ABFRAGE
  17. 21 ;
  18. 22 ;
  19. 23 ;
  20. 50 GETBYTE = $B79E;ZAHL (0-255) AUS BASIC-TEXT HOLEN
  21. 51 ;UND IN X UEBERGEBEN
  22. 52 CHKCOM = $AEFD;AUF KOMMA PRUEFEN
  23. 53 FEHAUS = $A437;FEHLERMELDUNG AUSGEBEN
  24. 54 LETVAR = $A9A5;BASIC-BEFEHL LET BEARBEITEN
  25. 90 ;
  26. 91 ;JOYSTICK-PORT-NUMMER AUS BASIC-TEXT HOLEN, WERTEBEREICHS-UEBERPRUEFUNG
  27. 92 ;SOWIE BESTIMMUNG EINIGER PARAMETER
  28. 93 ;
  29. 100 START JSR CHKCOM;KOMMA UEBERSPRINGEN
  30. 120 JSR GETBYTE;NUMMER DES JOYSTICK-PORTS HOLEN
  31. 140 DEX;PRUEFEN, OB ZAHL = 1 BZW. 2
  32. 160 CPX #2
  33. 180 BCC OK
  34. 200 LDX #14;SONST FEHLERMELDUNG AUSGEBEN
  35. 220 JMP FEHAUS;-> ILLEGAL QUANTITY ERROR
  36. 240 OK INX;JE NACH JOYSTICK-PORT-NUMMER
  37. 260 LDA #"1";A MIT "1" BZW. "2" LADEN UND
  38. 280 CPX #2;X AUF JOYSTICK-REGISTER
  39. 300 BNE JONUM;ZEIGEN LASSEN
  40. 320 LDX #0
  41. 340 LDA #"2";ASCII-CODE DER PORT-NUMMER ALS 2. BUCHSTABEN
  42. 360 JONUM STA TEXT+1;DES VARIABLEN-NAMENS UEBERNEHMEN
  43. 370 ;
  44. 371 ;VARIABE 'J1' BZW. 'J2' BEARBEITEN -> JE NACH BEWEGUNGSRICHTUNG
  45. 372 ;DES JOYSTICKS EINEN WERT VON 0 BIS 8 ZUWEISEN
  46. 373 ;
  47. 380 LDA #"J";1.BUCHSTABE = "J"
  48. 400 STA TEXT;-> VARIABLE HEISST NUN 'J1' BZW. 'J2'
  49. 420 LDA 56320,X;WERT DES JOYSTICK-REGISTERS HOLEN
  50. 440 PHA;UND RETTEN
  51. 460 AND #%00001111;UNTERE VIER BITS ISOLIEREN
  52. 480 LDY #8
  53. 500 JOSUCH CMP VERWER,Y;UND MIT ALLEN MOEGLICHEN WERTEN VERGLEICHEN
  54. 520 BEQ FOUND
  55. 540 DEY
  56. 560 BPL JOSUCH
  57. 580 FOUND TYA;A ENTHAELT JETZT DEN WERT, DER DER VARIABLEN
  58. 582 ;ZUGEWIESEN WERDEN SOLL
  59. 600 JSR ANLEGEN;VARIABLE ANLEGEN
  60. 610 ;
  61. 611 ;JETZT DIE VARIABLE 'F1' BZW. 'F2' BEARBEITEN
  62. 612 ;-> JE NACH ZUSTAND DES FEUERKNOPFES 0 ODER 1 ZUWEISEN
  63. 613 ;
  64. 620 LDA #"F";VARIABLEN-NAMEN AB TEXT UMBENENNEN
  65. 640 STA TEXT;IN 'F1' BZW. 'F2'
  66. 660 PLA;WERT DES JOYSTICK-REGISTERS ZURUECKHOLEN
  67. 680 AND #%00010000;FEUERKNOPF-BIT ISOLIEREN
  68. 700 CMP #0
  69. 720 BEQ FEUOK;KNOPF GEDRUECKT
  70. 740 LDA #1
  71. 760 FEUOK EOR #1;BIT 0 UMDREHEN -> A ENHAELT NUN
  72. 761 ;GEWUENSCHTEN WERT
  73. 762 ;
  74. 763 ;ROUTINE ZUM ANLEGEN DER VARIABLEN
  75. 764 ;-> BEI J1/J2 WIRD SIE ALS UNTERPROGRAMM AUFGERUFEN, BEI F1/F2
  76. 765 ;GANZ NORMAL DURCHGEGANGEN
  77. 766 ;-> IN A MUSS DER SPAETERE WERT DER VARIABLEN STEHEN
  78. 767 ;
  79. 770 ANLEGEN CLC;ASCII-CODE DER ZAHL ERMITTELN
  80. 780 ADC #48
  81. 800 STA TEXT+3;UND IN BASIC-BEFEHL AB TEXT EINFUEGEN
  82. 820 LDA $7A;CHRGET-ZEIGER RETTEN
  83. 840 PHA
  84. 860 LDA $7B
  85. 880 PHA
  86. 900 LDA #<TEXT;CHRGET-ZEIGER AUF EIGENEN BEFEHL
  87. 920 STA $7A;AB TEXT RICHTEN
  88. 940 LDA #>TEXT
  89. 960 STA $7B
  90. 980 JSR LETVAR;BEFEHL ABARBEITEN -> WERTZUWEISUNG
  91. 1000 PLA;CHRGET-ZEIGER AUF ALTES BYTE RICHTEN
  92. 1020 STA $7B
  93. 1040 PLA
  94. 1060 STA $7A
  95. 1080 RTS
  96. 9000 ;
  97. 9001 ;ALLE DENKBAREN KOMBINATIONEN DER VIER BEWEGUNGSRICHTUNGEN
  98. 9002 ;DES JOYSTICKS -> REIHENFOLGE ENTSPRICHT
  99. 9003 ;DEN SPAETEREN VARIABLEN-WERTEN
  100. 9004 ;
  101. 10000 VERWER .BYTE %00001111;NICHT BEWEGT
  102. 10001 .BYTE %00001110;OBEN
  103. 10002 .BYTE %00001101;UNTEN
  104. 10003 .BYTE %00001011;LINKS
  105. 10004 .BYTE %00000111;RECHTS
  106. 10005 .BYTE %00001010;OBEN-LINKS
  107. 10006 .BYTE %00000110;OBEN-RECHTS
  108. 10007 .BYTE %00001001;UNTEN-LINKS
  109. 10008 .BYTE %00000101;UNTEN-RECHTS
  110. 10500 ;
  111. 10501 ;BASIC-BEFEHL    J1=0
  112. 10502 ;-> VERSCHLUESSELT ZUR BEARBEITUNG DURCH DAS BETRIEBSSYSTEM
  113. 10504 ;-> BEFEHL WIRD JE NACH VARIABLE GEAENDERT
  114. 10505 ;
  115. 11000 TEXT .ASC "J1";PLATZ FUER VARIABLEN-NAMEN
  116. 11001 .BYTE $B2;BASIC-TOKEN FUER '='
  117. 11002 .BYTE 48, 0;PLATZ FUER ASCII-CODE DES ERGEBNISSES
  118. 11003 ;DIE 0 KENNZEICHNET DAS BEFEHLS-ENDE
  119.