This is an example how to remote control a computer by another one. It's  re-
stricted to the mouse control. The first program just sends all acia data to the
midi port. The second program receives the data and replaces the original mouse-
handler. This way, it's possible to use the mouse of one computer to control an-
other one.


* ----- cut here ----- cu here ----- cut here ----- cut here ----- cut here ----


The following program sends all input from the keyboard acia to the midiport:
-----------------------------------------------------------------------------

********************************************************************************
* written by:     Emanuel Mcklin                                              *
*                 Zschokkestrasse 7                                            *
*                 CH-8037 Zrich                                               *
*                 FREDDY@ezrz1.vmsmail.ethz.ch                                 *
*                                                                              *
* written with:   Turboassembler 1.xx                                          *
********************************************************************************

PROGRAMM_ANFANG:PEA         KEYBOARD(PC)
                PEA         $00050046
                TRAP        #13                   ; Keyboardhandler installieren
                ADDQ.W      #8,SP
                MOVE.L      D0,OLD_KEYBOARD
                CLR.W       -(SP)
                PEA         PROGRAMM_ENDE-PROGRAMM_ANFANG+256.w
                MOVE.W      #49,-(SP)
                TRAP        #1                    ; PTERMRES

*-------------------------------------------------------------------------------

                        DC.L 'XBRA'
                        DC.L '----'
OLD_KEYBOARD:           DC.L 0
KEYBOARD:       TST.B       $FFFFFC00.w
                BPL.S       NO_IKBD
                TST.W       $0000059E.w
                BEQ.S       NO_FRAME
                CLR.W       -(SP)
NO_FRAME:       PEA         RETURN(PC)
                MOVE        SR,-(SP)
NO_IKBD:        MOVE.L      OLD_KEYBOARD(PC),-(SP)
                RTS

*-------------------------------------------------------------------------------

RETURN:         BTST        #1,$FFFFFC04.w
                BEQ.S       RETURN
                MOVE.B      $FFFFFC02.w,$FFFFFC06.w
                RTE
PROGRAMM_ENDE:          END


* ----- cut here ----- cu here ----- cut here ----- cut here ----- cut here ----


On the receiving computer, you have to start the following program:
-------------------------------------------------------------------

********************************************************************************
* written by:     Emanuel Mcklin                                              *
*                 Zschokkestrasse 7                                            *
*                 CH-8037 Zrich                                               *
*                 FREDDY@ezrz1.vmsmail.ethz.ch                                 *
*                                                                              *
* written with:   Turboassembler 1.xx                                          *
*                                                                              *
* gets mouse datas from the midi port and replaces the original mouse handler  *
********************************************************************************

ACIA_STATUS_MIDI        EQU $FFFFFC04
ISRB                    EQU $FFFFFA91

START:          MOVE.W      #34,-(SP)
                TRAP        #14                   ; KBDVBASE
                ADDQ.W      #2,SP
                MOVEA.L     D0,A0

                MOVE.L      16(A0),OLD_MOUSEVEC
; the following line can be deleted, if u wanna use both mouses together
                MOVE.L      #MOUSEVEC,16(A0)

                PEA         KEYBOARD(PC)
                MOVE.W      #$0118/4,-(SP)        ; Keyboard Vector
                MOVE.W      #5,-(SP)
                TRAP        #13                   ; SETEXC
                ADDQ.W      #8,SP
                MOVE.L      D0,OLD_KEYBOARD

                CLR.W       -(SP)
                PEA         END-START+256.w
                MOVE.W      #49,-(SP)
                TRAP        #1                    ; PTERMRES

*-------------------------------------------------------------------------------

                        DC.L 'XBRA'
                        DC.L '----'
OLD_KEYBOARD:           DC.L 0
KEYBOARD:       TST.B       ACIA_STATUS_MIDI.w
                BPL.S       NO_MIDI
                TST.W       $0000059E.w
                BEQ.S       NO_FRAME
                CLR.W       -(SP)
NO_FRAME:       PEA         RETURN(PC)
                MOVE        SR,-(SP)
NO_MIDI:        MOVE.L      OLD_KEYBOARD(PC),-(SP)
                RTS

*-------------------------------------------------------------------------------

RETURN:         MOVEM.L     D0-A6,-(SP)
                LEA         ACIA_STATUS_MIDI.w,A0
                LEA         KEY_IGNORE_MIDI(PC),A6
                BSR.S       RECEIVE_DATA          ; receive MIDI
                MOVEM.L     (SP)+,D0-A6
                MOVE.B      #$BF,ISRB.w
                RTE

*-------------------------------------------------------------------------------

RECEIVE_DATA:   MOVEQ       #0,D0
                MOVE.B      2(A0),D0

                TST.B       (A6)                  ; packet is on the way?
                BEQ.S       NO_PACKET
                SUBQ.B      #1,(A6)
                TST.B       1(A6)
                BPL.S       RTS                   ; not interessting for me?

                MOVE.B      D0,4(A6)              ; yep, let's go and get it
                TST.B       (A6)
                BEQ.S       CALL_MOUSEVEC         ; all datas sent?
                MOVE.B      D0,3(A6)
RTS:            RTS

CALL_MOUSEVEC:  LEA         MOUSE_MESSAGE_MIDI(PC),A0
                PEA         RETURN_MOUSEVEC(PC)
                MOVE.L      OLD_MOUSEVEC(PC),-(SP)
RETURN_MOUSEVEC:RTS

NO_PACKET:      CMP.W       #$00F6,D0
                BLO.S       RTS
                MOVE.B      D0,2(A6)
                SUB.W       #$00F6,D0
                MOVE.B      KEYIGNORE_TABELLE(PC,D0.w),(A6)
                SUBQ.W      #2,D0
                CMP.W       #3,D0
                SLS         1(A6)
                RTS

*---------------

KEYIGNORE_TABELLE:      DC.B 7,5,2,2,2,2,6,2,1,1

*-------------------------------------------------------------------------------

                        DC.L 'XBRA'
                        DC.L '----'
OLD_MOUSEVEC:           DC.L 0
MOUSEVEC:       RTS

*-------------------------------------------------------------------------------

                        BSS
KEY_IGNORE_MIDI:        DS.B 1                    ; Statuspacket on the way?
MOUSE_PACKET_MIDI:      DS.B 1                    ; Mousepacket on the way?
MOUSE_MESSAGE_MIDI:     DS.B 3                    ; Mousepacket
END:                    END
