Ultimamente mi è capitato di vedere dei giochi carini, anche molto recenti, che però (cosa abbastanza incredibile… ) non prevedono l’impiego del joystick ma solo l’uso della tastiera… Credo era dal 1983 che non mi capitava più di imbattermi in videogiochi per il Vic “senza joystick”…
Così, pensando che magari la leggera complessità insita nella programmazione del joystick, sul Vic, possa far desistere qualcuno dall’includerlo nei propri giochi o programmi, ho pensato di realizzare una semplice ed efficace utility in LM che provvede ad effettuare una lettura corretta del joystick del Vic, presentando i dati pronti per essere utilizzati con semplicità in un qualsiasi programma scritto in BASIC o in Assembler. I dati di ogni sensore di movimento vengono rilevati in maniera indipendente, permettendo di rilevare, ad esempio, la pressione sul tasto di fuoco anche quando si sta operando sulla leva. Per leggere i dati dovete semplicemente attivare la routine con il comando “SYS”, e poi leggere il contenuto di cinque locazioni di memoria;
758 = up
759 = down
760 = sinistra
761 = destra
762 = fire
Dove un “1” segnala un’eventuale azione sulla leva o sul tasto “fire”.
Ad esempio, per rilevare (da BASIC) lo spostamento a sinistra della leva, con il programma allocato a partire da 5120 dovete digitare;
XX SYS5120
XX IFPEEK(760)=1THEN…
Il programma non è ottimizzato, ma occupa solo 113 bytes ed è completamente rilocabile, potete cioè metterlo in un punto qualunque della memoria, purché il comando “SYS” con cui lo attivate sia seguito dall’indirizzo a cui il programma inizia.
Insieme con il programma ho incluso due semplici “demo”; il primo si lancia con “RUN 100”, il secondo con “RUN 200”.
Buona programmazione!!!