C 64
Tips & Tricks

Joystickabfrage in den Interrupt verlegt

Beeinflussen Sie mit dem Joystick ein Sprite während des Programmablaufs. Ein optimaler Zusatz um Spiele zu programmieren und Menüs zu unterstützen.

Ab jetzt haben Sie mit der Abfrage Ihres Joystick keine Probleme mehr. Dieses Programm übernimmt das für Sie vollständig und bewegt entsprechend der Joystickbewegungen das Sprite mit der Nummer 1. Das Programm wurde in Maschinensprache geschrieben, um eine möglichst hohe Geschwindigkeit zu erreichen. Um das Programm vom Basic-Ablauf zu trennen, wurde es in den Interrupt eingebaut. Gesteuert wird dabei mit dem Joystick in Port 2. Das Programm (Listing 1) selbst befindet sich im Kassettenpuffer und wird mit »SYS 951« gestartet. Das entsprechende Sprite (Nummer 1) läßt sich auf den gesamten Bildschirm bewegen (auch über den kritischen Punkt, bei dem das Low-Byte der X-Achse den Wert 255 übersteigt) und läuft nicht über den Rand hinaus. Versuchen Sie doch einmal das kleine Demo-Programm (Listing 2).

Um das Programm auf Port 1 umzustellen, ändern Sie mittels POKE in den folgenden Speicherstellen den Wert von »0« auf »1«: 829, 839, 849 und 854. Der Knopf des Joysticks wird vom Programm nicht berücksichtigt.

(H. Werner/og)
PROGRAMM : JOY IRQ        033C 03C6
-----------------------------------
033C : AD 00 DC 29 01 D0 03 CE   86
0344 : 01 D0 AD 00 DC 29 02 D0   D9
034C : 03 EE 01 D0 AD 00 DC 29   C1
0354 : 04 D0 03 CE 00 D0 AD 00   98
035C : DC 29 08 D0 03 EE 00 D0   32
0364 : AD 10 D0 C9 01 D0 1A AD   E1
036C : 00 D0 C9 40 D0 03 CE 00   AF
0374 : D0 AD 00 D0 C9 00 D0 08   25
037C : CE 00 D0 A9 00 8D 10 D0   02
0384 : 4C A0 03 AD 00 D0 C9 16   71
038C : D0 03 EE 00 D0 AD 00 D0   B6
0394 : C9 FF D0 08 A9 01 8D 00   6B
039C : D0 8D 10 D0 AD 01 D0 C9   0B
03A4 : E6 D0 03 CE 01 D0 AD 01   DC
03AC : D0 C9 31 D0 03 EE 01 D0   15
03B4 : 4C 31 EA 78 A9 3C 8D 14   3D
03BC : 03 A9 03 8D 15 03 58 60   92
03C4 : 20 4C                     2D
Listing 1. »JOY IRQ« geben Sie bitte mit dem MSE (Seite 7) ein
|
10 poke 2053,143:load"joy irq",8,1
20 sys 951      :rem initialisierung
30 poke v+21,1  :rem sprite ein
40 poke v+39,1  :rem farbe weiss
50 poke v+0,160 :rem sprite in...
60 poke v+1,120 :rem ...die mitte
70 poke 2040,11 :rem spritezeiger...
75 :             rem ...auf block 11
80 for x=704 to 766:poke x,255:next
85 :    rem spriteinhalt definieren
 10 POKE 2053,143:LOAD "JOY IRQ",8,1 
 20 SYS 951      :REM INITIALISIERUNG 
 30 POKE V+21,1  :REM SPRITE EIN 
 40 POKE V+39,1  :REM FARBE WEISS 
 50 POKE V+0,160 :REM SPRITE IN... 
 60 POKE V+1,120 :REM ...DIE MITTE 
 70 POKE 2040,11 :REM SPRITEZEIGER... 
 75 :             REM ...AUF BLOCK 11 
 80 FOR X=704  TO 766:POKE X,255:NEXT 
 85 :    REM SPRITEINHALT DEFINIEREN 
Listing 2. Ein kleines Demo-Programm für »JOY IRQ«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →