Hello,

I have add some ml-sourcecode which I used to communicate between 2 
msx computers. Hopefully you know some ML.

I noticed that I used 2 pins for communication, it 
were the two firebutton-pins. Unfortunatly I couldn't find a 
schematic of the joystickport so I don't exactly know which pins are 
used for the firebuttons.

Rainier Maas
[EMAIL PROTECTED]
icq:2845783

SourceCode:

ORG &HC000

SBYTE:  DB 0
RBYTE:  DB 0

SENDBY: LD    A,(SBYTE)         ;Send a byte (8 bits)
        LD    C,A
        LD    B,4
SENDB2: LD    A,C
        AND   3
        XOR   3
        SLA   A
        SLA   A
        OR    &HB3
        PUSH  AF
        LD    A,C
        SRL   A
        SRL   A
        LD    C,A
        DJNZ  SENDB2
        POP   AF
        POP   BC
        POP   DE
        POP   HL
        PUSH  AF
        PUSH  BC
        PUSH  DE
        PUSH  HL
        CALL  Z80
        CALL  SYN1
        LD    B,4
SENDB3: POP   AF
        LD    E,A
        CALL  SEND
        CALL  WAIT
        DJNZ  SENDB3
        LD    E,&HBF
        CALL  SEND
        JP    R800

READBY: CALL  Z80       ; wait for and receive byte
        CALL  SYN2
        LD    B,4
        CALL  READ
        LD    DE,15
        CALL  WAIT3
READB2: CALL  WAIT2
        CALL  READ
        PUSH  AF
        CALL  WAIT2
        CALL  READ
        PUSH  AF
        CALL  WAIT2
        CALL  READ
        PUSH  AF
        DJNZ  READB2
        CALL  R800
        XOR   A
        LD    B,4
READB3: LD    C,A
        POP   DE
        LD    A,D
        POP   DE
        CP    D
        POP   DE
        JR    NZ,READB4
        LD    D,A
READB4: LD    A,C
        SLA   A
        SLA   A
        OR    D
        DJNZ  READB3
        LD    (RBYTE),A
READB5: CALL  READ
        OR    A
        JR    NZ,READB5
        RET

SEND:   DI                      ; send 2 bits
        LD    A,15
        OUT   (&HA0),A
        LD    A,E
        OUT   (&HA1),A
        RET

READ:   DI                      ; read 2 bits
        LD    A,15
        OUT   (&HA0),A
        IN    A,(&HA2)
        AND   &HDF
        OR    &H4C
        OUT   (&HA1),A
        LD    A,&H0E
        OUT   (&HA0),A
        IN    A,(&HA2)
        SRL   A
        SRL   A
        SRL   A
        SRL   A
        AND   3
        XOR   3
        RET

READ2:  DI
        LD    A,&H0E
        OUT   (&HA0),A
        IN    A,(&HA2)
        SRL   A
        SRL   A
        SRL   A
        SRL   A
        AND   3
        XOR   3
        RET

SYN1:   LD    E,&HB3            ; Synchronize both msx computers before
communication
        LD    B,5
SYN11:  CALL  SEND
        DJNZ  SYN11
        CALL  READ
        OR    A
        JR    Z,SYN1
        LD    E,&HBF
        JP    SEND

SYN2:   CALL  READ
        OR    A
        JR    Z,SYN2
        LD    E,&HB3
        CALL  SEND
        LD    DE,20
        JP    WAIT3

Z80:    LD    A,(&H2D)          ; set TurboR to z80-mode
        CP    3
        RET   C
        LD    A,&H00
        JP    &H0180

R800:   LD    A,(&H2D)          ; set TurboR to R800-mode
        CP    3
        RET   C
        LD    A,&H02
        JP    &H0180


WAIT:   LD    DE,100            ; Wait a while
        JR    WAIT3

WAIT2:  LD    DE,25
        JR    WAIT3

WAIT3:  DEC   DE
        LD    A,E
        OR    D
        JR    NZ,WAIT3
        RET



****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****

Reply via email to