MILC logo

IndexVorigeVolgendeLeeg

Muis uitlezen
Onbekend, 00-00-00


    
Het uitlezen van de joystick-poorten gaat via de PSG-registers. Raar 
maar waar. In de PSG-chip zijn 2 "general purpose" registers vrij en 
daar hebben ze de onder andere de joystick-ingangen aangehangen.

De beschrijving van die 2 PSG-registers is als volgt:

Register 14: Read-only. (op MSX BELANGRIJK! HIER KAN JE JE PSG ANDERS 
                        MEE OPBLAZEN!)

Bit 7: cassette-ingengssignaal
bit 6: alleen gebruikt in Japanse MSX computers (= ??)
bit 5: invoersignaal pin 7 (TRG 2)
bit 4: invoersignaal pin 6 (TRG 1)
bit 3: invoersignaal pin 4 (right)
bit 2: invoersignaal pin 3 (left)
bit 1: invoersignaal pin 2 (back)
bit 0: invoersignaal pin 1 (forward)


Register 15: Zowel lezen als schrijven.

Bit 7: KANA led besturing (alleen Jap. MSX-en) 0=aan, 1=uit.
bit 6: Keuze of register 14 betrekking heeft op joystickpoort 1 of 2
       (1 = poort 2)
bit 5: uitvoersignaal pin 8, poort 2
bit 4: uitvoersignaal pin 8, poort 1
bit 3: uitvoersignaal pin 7, poort 2
bit 2: uitvoersignaal pin 6, poort 2
bit 1: uitvoersignaal pin 7, poort 1
bit 0: uitvoersignaal pin 6, poort 1


PSG-registers lezen/schrijven gaat door het registernummer naar poort 
&HA0 te schrijven, waarna de waarde in poort &HA1 kan worden geschreven, 
of uitgelezen kan worden uit poort &HA2. 


De muis moet uitgelezen worden door 4 keer een joystick-poort uit te 
lezen. In bits 3-0 van register 14 krijg je dan achtereenvolgens binnen:
hoge deel van de X-offset (bit 7-4)
lage deel van de X-offset (bit 3-0)
hoge deel van de Y-offset (bit 7-4)
lage deel van de Y-offset (bit 3-0)
Deze offsets zijn negatief.

Bit 4 (voor poort 1) mot steeds geinverteerd worden bij iedere 
lees-aktie, zie listing...



Een routine om de muis uit te lezen:


        LD    D,&B10010011     ; Dit is de invoer als poort 1 uitgelezen
        LD    E,&B00010000     ; wordt
 

        LD    D,&B11101100     ; En dit voor poort 2
        LD    E,&B00100000


GTMOUS: ; LEES MUIS UIT. Invoer: D/E=.... Uitvoer: H=X-offset, L=Y-offset

        LD    B,WACHT2        ; wacht de eerste keer langer
        CALL  GTOFS2          ; Lees bit 7-4 van X-offset
        AND   0FH
        RLCA
        RLCA
        RLCA
        RLCA
        LD    C,A
        CALL  GTOFST          ; Lees bit 3-0 van X-offset
        AND   0FH
        OR    C
        LD    H,A             ; Sla komplete offset in A' op
        CALL  GTOFST          ; Lees bit 7-4 van Y-offset
        AND   0FH
        RLCA
        RLCA
        RLCA
        RLCA
        LD    C,A
        CALL  GTOFST          ; Lees bit 3-0 van Y-offset
        AND   0FH
        OR    C
        LD    L,A             ; Sla komplete offset in L op
        RET

WACHT1: EQU   10              ; Wachtvariabele bij uitlezen muis. Laten staan.
WACHT2: EQU   30              ; Idem

GTOFST: LD    B,WACHT1
GTOFS2: LD    A,15            ; Lees muis uit
        OUT   (0A0H),A
        LD    A,D
        OUT   (0A1H),A
        XOR   E
        LD    D,A

WACHT:  DJNZ  WACHT           ; Wacht even, de muis is nogal traag

        LD    A,14
        OUT   (0A0H),A
        IN    A,(0A2H)
        RET

Red. MiLC - het kan zijn dat deze source niet helemaal volledig is. Aan het
einde van de tekstfile stond allemaal rommel. -niet getest-

    

Index

Vorige

Volgende