Annotation of hatari/tools/hatari-local-rs232.sh, revision 1.1

1.1     ! root        1: #!/bin/sh
        !             2: #
        !             3: # Start two Hatari instances connected through emulated rs232 connection.
        !             4: # Given arguments (if any) are passed to the invoked Hatari instances.
        !             5: # Their rs232 connection goes through shared local fifo file.
        !             6: 
        !             7: # open fifos
        !             8: for i in 1 2; do
        !             9:        mkfifo rs232-$i
        !            10: done
        !            11: 
        !            12: # pass all args to the Hatari instances
        !            13: hatari="hatari $*"
        !            14: 
        !            15: # connect the Hatari instances with fifos
        !            16: echo "$hatari --rs232-in rs232-1 --rs232-out rs232-2 &"
        !            17: $hatari --rs232-in rs232-1 --rs232-out rs232-2 &
        !            18: echo "$hatari --rs232-in rs232-2 --rs232-out rs232-1 &"
        !            19: $hatari --rs232-in rs232-2 --rs232-out rs232-1 &
        !            20: 
        !            21: # Without this Hataris would deadlock as fifos
        !            22: # block the process until both ends are opened.
        !            23: # Hatari opens rs232 output first (for writing),
        !            24: # so this needs to read it.
        !            25: catpids=""
        !            26: cat rs232-2 >/dev/null &
        !            27: catpids="$catpids $!"
        !            28: cat rs232-1 >/dev/null &
        !            29: catpids="$catpids $!"
        !            30: 
        !            31: # after connections are open, fifo files can be removed
        !            32: sleep 2
        !            33: for i in 1 2; do
        !            34:        rm rs232-$i
        !            35: done
        !            36: # as can the 'cat' processes
        !            37: kill -9 $catpids

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.