MILC logo

IndexVorigeVolgendeLeeg

Muis aansturing in ASM
Alex vd Wal, 00-00-00


    
             DE MUIS LEESAKTIE

Er  is in  het verleden nogal wat verwarring geweest over de 
vraag hoe  een MSX2  de muis leest omdat de VDP van een MSX2 
een  hardwarematische muisleesroutine bevat, die echter niet 
gebruikt  wordt.  De  twee  joystickpoorten  zitten  op alle 
MSX'en aan  register 14  en 15 van de PSG en de VDP heeft er 
geen bal mee te maken.

Om een komplete leesaktie te doen is nogal wat  nodig  omdat
de muis maar de beschikking heeft over een 4  bits  databus.
Om dus 2 keer een 8 bits offset te lezen (X en  Y)  moet  er
dus 4 keer gelezen worden waarbij de muis eerst verteld moet
worden dat er gelezen  gaat  worden.  Aan  de  hand  van  de
routine (GTMOUS) zal ik nu het algoritme verklaren.

We nemen even aan dat de muis in poort 1 zit. In  dat  geval
staat in (PORT) de waarde 10111111B en in (PORT+1) de waarde
00010000B

GTMOUS:
- Lees PSG register 15
- Wis bit 6, dit geeft aan dat de muis in poort 1 zit
  (Zet bit 6 om aan te geven dat de muis in poort 2 zit)
- Zet bit 4, zodat de muis weet dat nu XH klaargezet moet
  worden. Bit 5 doet hetzelfde voor poort 2
  Opm: XH/YH = Bit 4-7 van X/Y offset
       XL/YL = Bit 0-3 van X/Y offset
- Wacht even op muis (het is een relatief traag ding)
- Lees XH (Verdere details volgen)
- Lees XL
- Lees YH
- Lees YL
Dit lezen is niet eenvoudig omdat de muis  niet  automatisch
weet wanneer een van de waarden gelezen is. Om aan  de	muis
te vertellen dat je de  waarde  gelezen  hebt,  moet  bit  4
(indien de muis in poort 2 zit bit 5) van  PSG  register  15
geinverteerd  worden.  Als  tijdens  de  volgende  leesaktie
register  15  weer  geschreven  wordt  zal   de   muis   dit
geinverteerde bit zien waarop het  beestje  de	volgende  te
lezen waarde op zijn 4  bits  databus  zet.  Na  een  kleine
wachttijd wordt deze waarde dan uit register 14 gelezen.


    

Index

Vorige

Volgende