restored the blue.sys driver
authorThomas Bluemel <thomas@reactsoft.com>
Tue, 20 Jan 2004 20:00:45 +0000 (20:00 +0000)
committerThomas Bluemel <thomas@reactsoft.com>
Tue, 20 Jan 2004 20:00:45 +0000 (20:00 +0000)
svn path=/trunk/; revision=7790

21 files changed:
reactos/drivers/dd/blue/dll/makefile [deleted file]
reactos/drivers/dd/blue/dll/messages.h [deleted file]
reactos/drivers/dd/blue/dll/mpu401.c [deleted file]
reactos/drivers/dd/blue/dll/mpu401.coff [deleted file]
reactos/drivers/dd/blue/dll/mpu401.def [deleted file]
reactos/drivers/dd/blue/dll/mpu401.edf [deleted file]
reactos/drivers/dd/blue/dll/mpu401.map [deleted file]
reactos/drivers/dd/blue/dll/mpu401.rc [deleted file]
reactos/drivers/dd/blue/dll/mpu401.sym [deleted file]
reactos/drivers/dd/blue/makefile
reactos/drivers/dd/blue/mpu401.c [deleted file]
reactos/drivers/dd/blue/mpu401.h [deleted file]
reactos/drivers/dd/blue/mpu401.rc [deleted file]
reactos/drivers/dd/blue/portio.c [deleted file]
reactos/drivers/dd/blue/readme.txt [deleted file]
reactos/drivers/dd/blue/sbdebug.h [deleted file]
reactos/drivers/dd/blue/settings.c [deleted file]
reactos/drivers/dd/blue/test.c [deleted file]
reactos/drivers/dd/blue/test/playmidi.c [deleted file]
reactos/drivers/dd/blue/test/test.mid [deleted file]
reactos/drivers/dd/blue/test/z [deleted file]

diff --git a/reactos/drivers/dd/blue/dll/makefile b/reactos/drivers/dd/blue/dll/makefile
deleted file mode 100644 (file)
index 4b152b6..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-PATH_TO_TOP = ../../../..
-
-TARGET_BOOTSTRAP = no
-
-TARGET_TYPE = dynlink
-
-TARGET_NAME = mpu401
-
-TARGET_GCCLIBS = winmm
-
-TARGET_OBJECTS = mpu401.o
-
-include $(PATH_TO_TOP)/rules.mak
-
-include $(TOOLS_PATH)/helper.mk
diff --git a/reactos/drivers/dd/blue/dll/messages.h b/reactos/drivers/dd/blue/dll/messages.h
deleted file mode 100644 (file)
index 32077fe..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-// These were missed out of mmsystem.h so I define them here until I get
-// round to submitting a patch for mmsystem.h :)
-
-#define DRVM_INIT       100
-#define DRVM_EXIT       101
-#define DRVM_DISABLE        102
-#define DRVM_ENABLE     103
-
-#define MODM_INIT       DRVM_INIT
-#define MODM_GETNUMDEVS     1
-#define MODM_GETDEVCAPS     2
-#define MODM_OPEN       3
-#define MODM_CLOSE      4
-#define MODM_PREPARE        5
-#define MODM_UNPREPARE      6
-#define MODM_DATA       7
-#define MODM_LONGDATA       8
-#define MODM_RESET              9
-#define MODM_GETVOLUME      10
-#define MODM_SETVOLUME      11
-#define MODM_CACHEPATCHES   12
-#define MODM_CACHEDRUMPATCHES   13
-
-#define MIDM_INIT       DRVM_INIT
-#define MIDM_GETNUMDEVS     53
-#define MIDM_GETDEVCAPS     54
-#define MIDM_OPEN           55
-#define MIDM_CLOSE          56
-#define MIDM_PREPARE        57
-#define MIDM_UNPREPARE      58
-#define MIDM_ADDBUFFER      59
-#define MIDM_START          60
-#define MIDM_STOP           61
-#define MIDM_RESET          62
diff --git a/reactos/drivers/dd/blue/dll/mpu401.c b/reactos/drivers/dd/blue/dll/mpu401.c
deleted file mode 100644 (file)
index a1fc4af..0000000
+++ /dev/null
@@ -1,369 +0,0 @@
-/*
- *
- * COPYRIGHT:            See COPYING in the top level directory
- * PROJECT:              ReactOS kernel
- * FILE:                 services/dd/mpu401/dll/mpu401.c
- * PURPOSE:              MPU-401 MIDI driver WINMM interface
- * PROGRAMMER:           Andrew Greenwood
- * UPDATE HISTORY:
- *                       Sept 28, 2003: Created
- */
-
-#include <windows.h>
-typedef UINT *LPUINT;
-#include <mmsystem.h>
-#include "messages.h"
-
-
-#define DBG printf
-
-
-// Erm... This is in mmsystem i think:
-LONG APIENTRY DefDriverProc(DWORD  dwDriverIdentifier,
-                            HANDLE hDriver,
-                            UINT   message,  // Bug in ptypes32.h
-                            LONG   lParam1,
-                            LONG   lParam2);
-
-
-
-
-STATIC int MessageLength(BYTE b)
-{
-    if (b > 0xf8)   return 1;
-
-    switch(b)
-    {
-        case 0xf0 : case 0xf4 : case 0xf5 : case 0xf6 : case 0xf7 :
-            return 1;
-        case 0xf1 : case 0xf3 :
-            return 2;
-        case 0xf2 :
-            return 3;
-    }
-
-    switch(b & 0xf0)
-    {
-        case 0x80 : case 0x90 : case 0xa0 : case 0xb0 : case 0xe0 :
-            return 2;
-    }
-
-    return 0;   // must be a status byte
-}
-
-
-DWORD APIENTRY modMessage(DWORD id, DWORD msg, DWORD dwUser,
-                          DWORD dwParam1, DWORD dwParam2)
-{
-    switch(msg)
-    {
-        case MODM_GETNUMDEVS :
-            DBG("MODM_GETNUMDEVS\n");
-            break;
-
-        case MODM_GETDEVCAPS :
-            DBG("MODM_GETDEVCAPS\n");
-            break;
-
-        case MODM_OPEN :
-            DBG("MODM_OPEN\n");
-            break;
-
-        case MODM_CLOSE :
-            DBG("MODM_CLOSE\n");
-            break;
-
-        case MODM_DATA :
-        /*
-            MODM_DATA requests that the driver process a short MIDI message.
-            
-            PARAMETERS
-                id :        ?
-                dwUser :    ?
-                dwParam1 :  MIDI message packed into a 32-bit number
-                dwParam2 :  ?
-
-            RETURN VALUES
-                ???
-        */
-        {
-            int i;
-            BYTE b[4];
-            DBG("MODM_DATA\n");
-            for (i = 0; i < 4; i ++)
-            {
-                b[i] = (BYTE)(dwParam1 % 256);
-                dwParam1 /= 256;
-            }
-            // midiOutWrite(data, length, client?)
-// somehow we need to keep track of running status
-//            return midiOutWrite(b, modMIDIlength((PMIDIALLOC)dwUser, b[0]),
-//                                (PMIDIALLOC)dwUser);
-        }
-
-        case MODM_LONGDATA :
-            DBG("MODM_LONGDATA\n");
-            break;
-
-        case MODM_RESET :
-            DBG("MODM_RESET\n");
-            break;
-
-        case MODM_SETVOLUME :
-            DBG("MODM_SETVOLUME\n");
-            break;
-
-        case MODM_GETVOLUME :
-            DBG("MODM_GETVOLUME\n");
-            break;
-
-        case MODM_CACHEPATCHES :
-            DBG("MODM_CACHEPATCHES\n");
-            break;
-
-        case MODM_CACHEDRUMPATCHES :
-            DBG("MODM_CACHEDRUMPATCHES\n");
-            break;
-    }
-
-//    return MMSYSERR_NOT_SUPPORTED;
-}
-
-
-
-LRESULT DriverProc(DWORD dwDriverID, HDRVR hDriver, UINT uiMessage,
-                   LPARAM lParam1, LPARAM lParam2)
-/*
-    ROUTINE
-        DriverProc
-
-    PURPOSE
-        Process driver messages
-
-    PARAMETERS
-        dwDriverID :    Identifier of installable driver
-        hDriver :       Handle of the installable driver instance
-        uiMessage :     Which operation to perform
-        lParam1 :       Message-dependent
-        lParam2 :       Message-dependent
-
-    NOTES
-        For parameters that aren't listed in the messages, they are not
-        used.
-        
-        Loading and unloading messages occur in this order:
-        DRV_LOAD - DRV_ENABLE - DRV_OPEN
-        DRV_CLOSE - DRV_DISABLE - DRV_FREE
-*/
-{
-    switch(uiMessage)
-    {
-        case DRV_LOAD :
-        /*
-            DRV_LOAD notifies the driver that it has been loaded. It should
-            then make sure it can function properly.
-
-            PARAMETERS
-                (No Parameters)
-
-            RETURN VALUES
-                Non-zero if successful
-                Zero if not
-        */
-            DBG("DRV_LOAD\n");
-            break;
-
-        case DRV_FREE :
-        /*
-            DRV_FREE notifies the driver that it is being unloaded. It
-            should make sure it releases any memory or other resources.
-
-            PARAMETERS
-                hDriver :       Hande of the installable driver instance
-
-            RETURN VALUES
-                Nothing
-        */
-            DBG("DRV_FREE\n");
-            break;
-
-        case DRV_OPEN :
-        /*
-            DRV_OPEN directs the driver to open a new instance.
-
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-                lParam1 :       Wide string specifying configuration
-                                information, or this can be NULL
-                lParam2 :       32-bit driver-specific data
-            
-            RETURN VALUES
-                Non-zero if successful
-                Zero if not
-        */
-            DBG("DRV_OPEN\n");
-            break;
-
-        case DRV_CLOSE :
-        /*
-            DRV_CLOSE directs the driver to close the specified instance.
-
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-                lParam1 :       32-bit value passed from DriverClose()
-                lParam2 :       32-bit value passed from DriverClose()
-
-            RETURN VALUES
-                Non-zero if successful
-                Zero if not
-        */
-            DBG("DRV_CLOSE\n");
-            break;
-
-        case DRV_ENABLE :
-        /*
-            DRV_ENABLE enables the driver (as if you didn't see THAT one
-            coming!)
-
-            PARAMETERS
-                hDriver :       Handle of the installable driver instance
-            
-            RETURN VALUES
-                Nothing
-        */
-            DBG("DRV_ENABLE\n");
-            break;
-
-        case DRV_DISABLE :
-        /*
-            DRV_DISABLE disables the driver - see above comment ;) This
-            message comes before DRV_FREE.
-
-            PARAMETERS
-                hDriver :       Handle of the installable driver instance
-
-            RETURN VALUES
-                Nothing
-        */
-            DBG("DRV_DISABLE\n");
-            break;
-
-        case DRV_QUERYCONFIGURE :
-        /*
-            DRV_QUERYCONFIGURE asks the driver if it supports custom
-            configuration.
-            
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-
-            RETURN VALUES
-                Non-zero to indicate the driver can display a config dialog
-                Zero if not
-        */
-            DBG("DRV_QUERYCONFIGURE\n");
-            break;
-
-        case DRV_CONFIGURE :
-        /*
-            DRV_CONFIGURE requests the driver to display a configuration
-            dialog box.
-            
-            PARAMETERS
-                dwDriverID :    Identified of the installable driver
-                hDriver :       Handle of the installable driver instance
-                lParam1 :       Handle of the parent window of the dialog
-                lParam2 :       Address of a DRVCONFIGINFO, or NULL
-
-            RETURN VALUES
-                DRVCNF_OK       The configuration was successful
-                DRVCNF_CANCEL   The user cancelled the dialog box
-                DRVCNF_RESTART  The configuration requires a reboot
-        */
-            DBG("DRV_CONFIGURE\n");
-            break;
-
-        case DRV_INSTALL :
-        /*
-            DRV_INSTALL notifies the driver that it is being installed.
-
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-                lParam2 :       Address of a DEVCONFIGINFO, or NULL
-
-            RETURN VALUES
-                DRVCNF_OK       The configuration was successful
-                DRVCNF_CANCEL   The user cancelled the dialog box
-                DRVCNF_RESTART  The configuration requires a reboot
-        */
-            DBG("DRV_INSTALL\n");
-            break;
-
-        case DRV_REMOVE :
-        /*
-            DRV_REMOVE notifies the driver that it is being removed from the
-            system.
-            
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-            
-            RETURN VALUES
-                Nothing
-        */
-            DBG("DRV_REMOVE\n");
-            break;
-
-        case DRV_POWER :
-        /*
-            DRV_POWER notifies the driver that power is being turned on/off.
-            
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-
-            RETURN VALUES
-                Nothing
-        */
-            DBG("DRV_POWER\n");
-
-        case DRV_EXITSESSION :
-        /*
-            DRV_EXITSESSION notifies the driver that Windows is shutting down.
-            
-            PARAMETERS
-                dwDriverID :    Identifier of the installable driver
-                hDriver :       Handle of the installable driver instance
-
-            RETURN VALUES
-                Nothing
-        */
-
-//        case DRV_PNPINSTALL : break;
-        default :
-            return DefDriverProc(dwDriverID, hDriver, uiMessage, lParam1, lParam2);
-    }
-
-    return DefDriverProc(dwDriverID, hDriver, uiMessage, lParam1, lParam2);
-}
-
-
-BOOL CALLBACK DProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
-{
-//    if (uMsg == WM_INITDIALOG)
-//        return -1;
-
-    return 0;
-}
-
-
-void Test()
-{
-//    HWND Dlg = CreateDialog(GetModuleHandle(NULL), "Config", NULL, DProc);
-    HWND Z = CreateWindow("Static", "", WS_OVERLAPPEDWINDOW | WS_VISIBLE, 0, 0, 20, 20, NULL, NULL, GetModuleHandle(NULL), NULL);
-    if (DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(1001), Z, DProc) == -1)
-        MessageBox(NULL, "Error", "Error", MB_OK | MB_TASKMODAL);
-}
diff --git a/reactos/drivers/dd/blue/dll/mpu401.coff b/reactos/drivers/dd/blue/dll/mpu401.coff
deleted file mode 100644 (file)
index fa062af..0000000
Binary files a/reactos/drivers/dd/blue/dll/mpu401.coff and /dev/null differ
diff --git a/reactos/drivers/dd/blue/dll/mpu401.def b/reactos/drivers/dd/blue/dll/mpu401.def
deleted file mode 100644 (file)
index 4525b27..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-LIBRARY mpu401
-
-DESCRIPTION "MPU401 driver DLL"
-
-EXETYPE WINDOWS
-
-EXPORTS
-DriverProc
-;mxdMessage
-;auxMessage
-;wodMessage
-;widMessage
-modMessage = modSynthMessage
-Test
diff --git a/reactos/drivers/dd/blue/dll/mpu401.edf b/reactos/drivers/dd/blue/dll/mpu401.edf
deleted file mode 100644 (file)
index 085f66e..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-EXPORTS
-DriverProc
-modMessage
-Test
diff --git a/reactos/drivers/dd/blue/dll/mpu401.map b/reactos/drivers/dd/blue/dll/mpu401.map
deleted file mode 100644 (file)
index 270cdba..0000000
+++ /dev/null
@@ -1,415 +0,0 @@
-00000000 A __loader_flags__
-00000000 A __minor_image_version__
-00000000 A __minor_os_version__
-00000000 A __minor_subsystem_version__
-00000001 A __dll__
-00000001 A __major_image_version__
-00000003 A __subsystem__
-00000004 A __major_os_version__
-00000004 A __major_subsystem_version__
-00000200 A __file_alignment__
-00001000 A __section_alignment__
-00001000 A __size_of_heap_commit__
-00001000 A __size_of_stack_commit__
-00100000 A __size_of_heap_reserve__
-00200000 A __size_of_stack_reserve__
-10000000 A __image_base__
-10001000 t .text
-10001000 T __end__
-10001000 T _DllMainCRTStartup@12
-10001000 T _end
-10001000 T end
-10001000 t lab
-10001090 t ___dll_exit
-10001100 T _atexit
-10001130 T __onexit
-10001150 t .text
-10001150 T ___do_frame_init
-10001170 T ___do_frame_fini
-10001190 t .text
-10001190 t .text
-10001190 t _MessageLength
-1000130c T _modMessage
-1000130c T _modMessage@20
-100014f0 T _DriverProc
-10001664 T _DProc@16
-1000167e T _Test
-10001700 t .text
-10001700 T _DefDriverProc@20
-10001710 t .text
-10001710 t .text
-10001710 t .text
-10001710 T _DllMain@12
-10001720 t .text
-10001720 T ___do_global_dtors
-10001750 T ___do_global_ctors
-100017b0 T ___main
-10001820 t .text
-10001820 t _size_of_encoded_value
-10001870 t _read_uleb128
-100018b0 t _read_sleb128
-10001900 t _read_encoded_value_with_base
-10001a00 t _init_object_mutex
-10001a20 t _init_object_mutex_once
-10001aa0 T ___register_frame_info_bases
-10001b30 T ___register_frame_info
-10001b50 T ___register_frame
-10001b80 T ___register_frame_info_table_bases
-10001c10 T ___register_frame_info_table
-10001c30 T ___register_frame_table
-10001c50 T ___deregister_frame_info_bases
-10001d40 T ___deregister_frame_info
-10001d50 T ___deregister_frame
-10001d80 t _base_from_object
-10001dd0 t _get_cie_encoding
-10001e80 t _fde_unencoded_compare
-10001ea0 t _fde_single_encoding_compare
-10001f20 t _fde_mixed_encoding_compare
-10001fc0 t _frame_heapsort
-10002140 t _classify_object_over_fdes
-10002260 t _add_fdes
-10002370 t _linear_search_fdes
-10002490 t _search_object
-10002710 T __Unwind_Find_FDE
-10002860 t _init_object
-10002af0 t _fde_split
-10002bb0 t .text
-10002bb0 T ___w32_sharedptr_initialize
-10002d70 t .text
-10002d70 t .text
-10002d70 T ___dllonexit
-10002d80 t .text
-10002d80 T _fflush
-10002d90 t .text
-10002d90 T _free
-10002da0 t .text
-10002da0 T __errno
-10002db0 t .text
-10002db0 T _malloc
-10002dc0 t .text
-10002dc0 T _printf
-10002dd0 t .text
-10002dd0 T _strlen
-10002de0 t .text
-10002de0 T _abort
-10002df0 t .text
-10002df0 T _strtoul
-10002e00 t .text
-10002e00 T _memset
-10002e10 t .text
-10002e10 t .text
-10002e10 t .text
-10002e10 T _CreateWindowExA@48
-10002e20 t .text
-10002e20 T _DialogBoxParamA@20
-10002e30 t .text
-10002e30 T _MessageBoxA@16
-10002e40 t .text
-10002e40 t .text
-10002e40 t .text
-10002e40 T _GetModuleHandleA@4
-10002e50 t .text
-10002e50 T _CreateMutexA@12
-10002e60 t .text
-10002e60 T _InterlockedIncrement@4
-10002e70 t .text
-10002e70 T _Sleep@4
-10002e80 t .text
-10002e80 T _ReleaseMutex@4
-10002e90 t .text
-10002e90 T _WaitForSingleObject@8
-10002ea0 t .text
-10002ea0 T _FindAtomA@4
-10002eb0 t .text
-10002eb0 T _AddAtomA@4
-10002ec0 t .text
-10002ec0 T _GetAtomNameA@12
-10002ed0 t .text
-10002ed0 t .text
-10002ed0 t .text
-10002ed0 t .text
-10002ed0 t ___reg_frame_ctor
-10002ee0 t ___dereg_frame_dtor
-10002ef0 T ___CTOR_LIST__
-10002ef0 T __CTOR_LIST__
-10002ef4 t .ctors
-10002efc T ___DTOR_LIST__
-10002efc T __DTOR_LIST__
-10002f00 t .dtors
-10002f08 T etext
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 d .data
-10003000 D __data_start__
-10003000 d _initialized
-10003004 d _p.0
-10003010 d .data
-10003010 d _once.0
-10003020 d .data
-10003020 d ___w32_sharedptr
-10003024 D ___w32_sharedptr_terminate
-10003028 D ___w32_sharedptr_unexpected
-1000302c D ___w32_sharedptr_unseen_objects
-10003030 D ___w32_sharedptr_seen_objects
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 d .data
-10003040 D __CRT_MT
-10003050 d .data
-10003050 D __data_end__
-10004000 r .eh_frame
-10004000 r .eh_frame
-10004000 R ___EH_FRAME_BEGIN__
-10004368 r .eh_frame
-10004368 r ___EH_FRAME_END__
-1000436c R ___RUNTIME_PSEUDO_RELOC_LIST__
-1000436c R ___RUNTIME_PSEUDO_RELOC_LIST_END__
-1000436c R __RUNTIME_PSEUDO_RELOC_LIST__
-1000436c R __RUNTIME_PSEUDO_RELOC_LIST_END__
-10005000 b .bss
-10005000 B __bss_start__
-10005000 b _first_atexit
-10005010 b _next_atexit
-10005020 b .bss
-10005020 b _obj
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b .bss
-10005040 b _marker.1
-10005050 b _object_mutex
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005060 b .bss
-10005080 B __bss_end__
-10006000 e .edata
-10006028 e name
-10006034 e afuncs
-10006040 e anames
-1000604c e anords
-10006052 e n3
-1000605d e n1
-10006062 e n2
-10007000 i .idata$2
-10007000 I __head_libkernel32_a
-10007014 i .idata$2
-10007014 I __head_libmsvcrt_a
-10007028 i .idata$2
-10007028 I __head_libuser32_a
-1000703c i .idata$2
-1000703c I __head_libwinmm_a
-10007064 i .idata$4
-10007068 i .idata$4
-10007068 i hname
-1000706c i .idata$4
-10007070 i .idata$4
-10007074 i .idata$4
-10007078 i .idata$4
-1000707c i .idata$4
-10007080 i .idata$4
-10007084 i .idata$4
-10007088 i .idata$4
-1000708c i .idata$4
-10007090 i .idata$4
-10007094 i .idata$4
-10007094 i hname
-10007098 i .idata$4
-1000709c i .idata$4
-100070a0 i .idata$4
-100070a4 i .idata$4
-100070a8 i .idata$4
-100070ac i .idata$4
-100070b0 i .idata$4
-100070b4 i .idata$4
-100070b8 i .idata$4
-100070bc i .idata$4
-100070c0 i .idata$4
-100070c4 i .idata$4
-100070c4 i hname
-100070c8 i .idata$4
-100070cc i .idata$4
-100070d0 i .idata$4
-100070d4 i .idata$4
-100070d8 i .idata$4
-100070d8 i hname
-100070dc i .idata$4
-100070e0 i .idata$5
-100070e4 i .idata$5
-100070e4 I __imp__AddAtomA@4
-100070e4 i fthunk
-100070e8 i .idata$5
-100070e8 I __imp__CreateMutexA@12
-100070ec i .idata$5
-100070ec I __imp__FindAtomA@4
-100070f0 i .idata$5
-100070f0 I __imp__GetAtomNameA@12
-100070f4 i .idata$5
-100070f4 I __imp__GetModuleHandleA@4
-100070f8 i .idata$5
-100070f8 I __imp__InterlockedIncrement@4
-100070fc i .idata$5
-100070fc I __imp__ReleaseMutex@4
-10007100 i .idata$5
-10007100 I __imp__Sleep@4
-10007104 i .idata$5
-10007104 I __imp__WaitForSingleObject@8
-10007108 i .idata$5
-1000710c i .idata$5
-10007110 i .idata$5
-10007110 I __imp____dllonexit
-10007110 i fthunk
-10007114 i .idata$5
-10007114 I __imp___errno
-10007118 i .idata$5
-10007118 I __imp__abort
-1000711c i .idata$5
-1000711c I __imp__fflush
-10007120 i .idata$5
-10007120 I __imp__free
-10007124 i .idata$5
-10007124 I __imp__malloc
-10007128 i .idata$5
-10007128 I __imp__memset
-1000712c i .idata$5
-1000712c I __imp__printf
-10007130 i .idata$5
-10007130 I __imp__strlen
-10007134 i .idata$5
-10007134 I __imp__strtoul
-10007138 i .idata$5
-1000713c i .idata$5
-10007140 i .idata$5
-10007140 I __imp__CreateWindowExA@48
-10007140 i fthunk
-10007144 i .idata$5
-10007144 I __imp__DialogBoxParamA@20
-10007148 i .idata$5
-10007148 I __imp__MessageBoxA@16
-1000714c i .idata$5
-10007150 i .idata$5
-10007154 i .idata$5
-10007154 I __imp__DefDriverProc@20
-10007154 i fthunk
-10007158 i .idata$5
-1000715c i .idata$6
-10007168 i .idata$6
-10007178 i .idata$6
-10007184 i .idata$6
-10007194 i .idata$6
-100071a8 i .idata$6
-100071c0 i .idata$6
-100071d0 i .idata$6
-100071d8 i .idata$6
-100071f0 i .idata$6
-10007200 i .idata$6
-1000720c i .idata$6
-10007214 i .idata$6
-10007220 i .idata$6
-10007228 i .idata$6
-10007234 i .idata$6
-10007240 i .idata$6
-1000724c i .idata$6
-10007258 i .idata$6
-10007264 i .idata$6
-10007278 i .idata$6
-1000728c i .idata$6
-1000729c i .idata$6
-100072ac i .idata$7
-100072b0 i .idata$7
-100072b4 i .idata$7
-100072b8 i .idata$7
-100072bc i .idata$7
-100072c0 i .idata$7
-100072c4 i .idata$7
-100072c8 i .idata$7
-100072cc i .idata$7
-100072d0 i .idata$7
-100072d0 I __libkernel32_a_iname
-100072e0 i .idata$7
-100072e4 i .idata$7
-100072e8 i .idata$7
-100072ec i .idata$7
-100072f0 i .idata$7
-100072f4 i .idata$7
-100072f8 i .idata$7
-100072fc i .idata$7
-10007300 i .idata$7
-10007304 i .idata$7
-10007308 i .idata$7
-10007308 I __libmsvcrt_a_iname
-10007314 i .idata$7
-10007318 i .idata$7
-1000731c i .idata$7
-10007320 i .idata$7
-10007320 I __libuser32_a_iname
-1000732c i .idata$7
-10007330 i .idata$7
-10007330 I __libwinmm_a_iname
-10008000 d .rsrc
-10009000 d .reloc
diff --git a/reactos/drivers/dd/blue/dll/mpu401.rc b/reactos/drivers/dd/blue/dll/mpu401.rc
deleted file mode 100644 (file)
index cbdbc2c..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <defines.h>
-#include <reactos/resource.h>
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-
-1001 DIALOGEX 0, 0, 230, 230
-STYLE WS_POPUP | WS_BORDER | DS_CENTER | DS_MODALFRAME | WS_CAPTION | DS_ABSALIGN | WS_SYSMENU
-FONT 8, "Tahoma", FW_BOLD, 0
-CAPTION "Settings"
-BEGIN
-    GROUPBOX    "", 0, 5, 2, 220, 203
-
-    LTEXT       "Sample Device Technology :", 666, 11, 10, 210, 12
-    COMBOBOX    "", 666, 10, 20, 210, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT       "Playback Samples Using :", 666, 11, 40, 150, 12
-    COMBOBOX    "", 666, 10, 50, 210, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT       "Record Samples Using :", 666, 11, 70, 150, 12
-    COMBOBOX    "", 666, 10, 80, 210, 80, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON  "OK", 666, 90, 210, 50, 14
-    
-    PUSHBUTTON "Settings", 666, 160, 40, 50, 14
-    PUSHBUTTON "Settings", 666, 160, 70, 50, 14
-
-    LTEXT       "Sample playback is DISABLED.", 666, 11, 180, 210, 12
-END
-
-
-
-VS_VERSION_INFO VERSIONINFO
-       FILEVERSION     RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
-       PRODUCTVERSION  RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
-       FILEFLAGSMASK   0x3fL
-#ifdef _DEBUG
-       FILEFLAGS       0x1L
-#else
-       FILEFLAGS       0x0L
-#endif
-       FILEOS          0x40004L
-       FILETYPE        0x2L
-       FILESUBTYPE     0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName",       RES_STR_COMPANY_NAME
-            VALUE "FileDescription",    "MPU-401 MIDI Driver DLL\0"
-            VALUE "FileVersion",    "0.0.1\0"
-            VALUE "InternalName",   "mpu401\0"
-            VALUE "LegalCopyright",    RES_STR_LEGAL_COPYRIGHT
-            VALUE "OriginalFilename",   "mpu401.dll\0"
-            VALUE "ProductName",       RES_STR_PRODUCT_NAME
-            VALUE "ProductVersion",    RES_STR_PRODUCT_VERSION
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
diff --git a/reactos/drivers/dd/blue/dll/mpu401.sym b/reactos/drivers/dd/blue/dll/mpu401.sym
deleted file mode 100644 (file)
index be1e4f7..0000000
Binary files a/reactos/drivers/dd/blue/dll/mpu401.sym and /dev/null differ
index 58f8d33..3de5c2d 100644 (file)
@@ -1,4 +1,4 @@
-# $Id: makefile,v 1.23 2004/01/20 19:35:59 silverblade Exp $
+# $Id: makefile,v 1.24 2004/01/20 20:00:45 weiden Exp $
 
 PATH_TO_TOP = ../../..
 
 
 PATH_TO_TOP = ../../..
 
@@ -6,11 +6,9 @@ TARGET_BOOTSTRAP = yes
 
 TARGET_TYPE = driver
 
 
 TARGET_TYPE = driver
 
-TARGET_NAME = mpu401
+TARGET_NAME = blue
 
 
-TARGET_OBJECTS = mpu401.o \
-               portio.o \
-               settings.o
+TARGET_OBJECTS = blue.o
 
 TARGET_CFLAGS = -Wall -Werror
 
 
 TARGET_CFLAGS = -Wall -Werror
 
diff --git a/reactos/drivers/dd/blue/mpu401.c b/reactos/drivers/dd/blue/mpu401.c
deleted file mode 100644 (file)
index ed274d4..0000000
+++ /dev/null
@@ -1,406 +0,0 @@
-/*
- *
- * COPYRIGHT:            See COPYING in the top level directory
- * PROJECT:              ReactOS kernel
- * FILE:                 services/dd/mpu401/mpu401.c
- * PURPOSE:              MPU-401 MIDI device driver
- * PROGRAMMER:           Andrew Greenwood
- * UPDATE HISTORY:
- *                       Sept 26, 2003: Copied from beep.c as template
- *                       Sept 27, 2003: Implemented MPU-401 init & playback
- */
-
-/* INCLUDES ****************************************************************/
-
-#include <ddk/ntddk.h>
-//#include <ddk/ntddbeep.h>
-
-//#define NDEBUG
-#include <debug.h>
-
-#include "mpu401.h"
-
-
-/* INTERNAL VARIABLES ******************************************************/
-
-UINT DeviceCount = 0;
-
-
-/* FUNCTIONS ***************************************************************/
-
-NTSTATUS InitDevice(
-    IN PWSTR RegistryPath,
-    IN PVOID Context)
-{
-//    PDEVICE_INSTANCE Instance = Context;
-    PDEVICE_OBJECT DeviceObject; // = Context;
-    PDEVICE_EXTENSION Parameters; // = DeviceObject->DeviceExtension;
-    UNICODE_STRING DeviceName = UNICODE_STRING_INITIALIZER(L"\\Device\\MPU401_Out_0");
-    UNICODE_STRING SymlinkName = UNICODE_STRING_INITIALIZER(L"\\??\\MPU401_Out_0");
-//    CONFIG Config;
-    RTL_QUERY_REGISTRY_TABLE Table[2];
-    NTSTATUS s;
-
-    // This is TEMPORARY, to ensure that we don't process more than 1 device.
-    // I'll remove this limitation in the future.
-    if (DeviceCount > 0)
-    {
-        DPRINT("Sorry - only 1 device supported by MPU401 driver at present :(\n");
-        return STATUS_NOT_IMPLEMENTED;
-    }
-
-    DPRINT("Creating IO device\n");
-
-    s = IoCreateDevice(Context, // driverobject
-                         sizeof(DEVICE_EXTENSION),
-                         &DeviceName,
-                         FILE_DEVICE_SOUND, // Correct?
-                         0,
-                         FALSE,
-                         &DeviceObject);
-
-    if (!NT_SUCCESS(s))
-        return s;
-
-    DPRINT("Device Extension at 0x%x\n", DeviceObject->DeviceExtension);
-    Parameters = DeviceObject->DeviceExtension;
-
-    DPRINT("Creating DOS link\n");
-
-    /* Create the dos device link */
-    IoCreateSymbolicLink(&SymlinkName,
-                      &DeviceName);
-
-    DPRINT("Initializing device\n");
-
-//    DPRINT("Allocating memory for parameters structure\n");
-    // Bodged:
-//    Parameters = (PDEVICE_EXTENSION)ExAllocatePool(NonPagedPool, sizeof(DEVICE_EXTENSION));
-//    DeviceObject->DeviceExtension = Parameters;
-//    Parameters = Instance->DriverObject->DriverExtension;
-
-    DPRINT("DeviceObject at 0x%x, DeviceExtension at 0x%x\n", DeviceObject, Parameters);
-    
-    if (! Parameters)
-    {
-        DPRINT("NULL POINTER!\n");
-        return STATUS_INSUFFICIENT_RESOURCES;
-    }
-
-//    Instance->DriverObject->DriverExtension = Parameters;
-
-    DPRINT("Setting reg path\n");
-    Parameters->RegistryPath = RegistryPath;
-//    Parameters->DriverObject = Instance->DriverObject;
-
-    DPRINT("Zeroing table memory and setting query routine\n");
-    RtlZeroMemory(Table, sizeof(Table));
-    Table[0].QueryRoutine = LoadSettings;
-
-    DPRINT("Setting port and IRQ defaults\n");
-    Parameters->Port = DEFAULT_PORT;
-    Parameters->IRQ = DEFAULT_IRQ;
-
-// Only to be enabled once we can get support for multiple cards working :)
-/*    
-    DPRINT("Loading settings from: %S\n", RegistryPath);
-    
-    s = RtlQueryRegistryValues(RTL_REGISTRY_ABSOLUTE, RegistryPath, Table,
-                                &Parameters, NULL);
-*/
-
-    if (! NT_SUCCESS(s))
-        return s;
-
-    DPRINT("Port 0x%x  IRQ %d\n", Parameters->Port, Parameters->IRQ);
-
-//    Instance->P
-
-    // Enter UART mode (should be done in init phase
-    if (! InitUARTMode(Parameters->Port))
-    {
-        DPRINT("UART mode initialization FAILED!\n");
-        // Set state indication somehow
-        // Failure - what error code do we give?!
-        // return STATUS_????
-    }
-
-    DeviceCount ++;
-
-    return STATUS_SUCCESS;
-}
-
-
-static NTSTATUS STDCALL
-MPU401Create(PDEVICE_OBJECT DeviceObject,
-          PIRP Irp)
-/*
- * FUNCTION: Handles user mode requests
- * ARGUMENTS:
- *                       DeviceObject = Device for request
- *                       Irp = I/O request packet describing request
- * RETURNS: Success or failure
- */
-{
-    DPRINT("MPU401Create() called!\n");
-    
-    // Initialize the MPU-401
-    // ... do stuff ...
-
-
-    // Play a note to say we're alive:
-//    WaitToSend(MPU401_PORT);
-//    MPU401_WRITE_DATA(MPU401_PORT, 0x90);
-//    WaitToSend(MPU401_PORT);
-//    MPU401_WRITE_DATA(MPU401_PORT, 0x50);
-//    WaitToSend(MPU401_PORT);
-//    MPU401_WRITE_DATA(MPU401_PORT, 0x7f);
-
-    Irp->IoStatus.Status = STATUS_SUCCESS;
-    Irp->IoStatus.Information = 0;
-    IoCompleteRequest(Irp,
-                   IO_NO_INCREMENT);
-
-    return(STATUS_SUCCESS);
-}
-
-
-static NTSTATUS STDCALL
-MPU401Close(PDEVICE_OBJECT DeviceObject,
-         PIRP Irp)
-/*
- * FUNCTION: Handles user mode requests
- * ARGUMENTS:
- *                       DeviceObject = Device for request
- *                       Irp = I/O request packet describing request
- * RETURNS: Success or failure
- */
-{
-  PDEVICE_EXTENSION DeviceExtension;
-  NTSTATUS Status;
-
-  DPRINT("MPU401Close() called!\n");
-  
-  DeviceExtension = DeviceObject->DeviceExtension;
-
-  Status = STATUS_SUCCESS;
-
-  Irp->IoStatus.Status = Status;
-  Irp->IoStatus.Information = 0;
-  IoCompleteRequest(Irp,
-                   IO_NO_INCREMENT);
-
-  return(Status);
-}
-
-
-static NTSTATUS STDCALL
-MPU401Cleanup(PDEVICE_OBJECT DeviceObject,
-           PIRP Irp)
-/*
- * FUNCTION: Handles user mode requests
- * ARGUMENTS:
- *                       DeviceObject = Device for request
- *                       Irp = I/O request packet describing request
- * RETURNS: Success or failure
- */
-{
-  UINT Channel;
-  DPRINT("MPU401Cleanup() called!\n");
-
-    // Reset the device (should we do this?)
-    for (Channel = 0; Channel <= 15; Channel ++)
-    {
-        // All notes off
-//        MPU401_WRITE_MESSAGE(MPU401_PORT, 0xb0 + Channel, 123, 0);
-        // All controllers off
-//        MPU401_WRITE_MESSAGE(MPU401_PORT, 0xb0 + Channel, 121, 0);
-    }
-
-
-  Irp->IoStatus.Status = STATUS_SUCCESS;
-  Irp->IoStatus.Information = 0;
-  IoCompleteRequest(Irp,
-                   IO_NO_INCREMENT);
-
-  return(STATUS_SUCCESS);
-}
-
-
-static NTSTATUS STDCALL
-MPU401DeviceControl(PDEVICE_OBJECT DeviceObject,
-                 PIRP Irp)
-/*
- * FUNCTION: Handles user mode requests
- * ARGUMENTS:
- *                       DeviceObject = Device for request
- *                       Irp = I/O request packet describing request
- * RETURNS: Success or failure
- */
-{
-    PIO_STACK_LOCATION Stack;
-    PDEVICE_EXTENSION DeviceExtension;
-    UINT ByteCount;
-    PBYTE Data;
-
-    DPRINT("MPU401DeviceControl() called!\n");
-
-    DeviceExtension = DeviceObject->DeviceExtension;
-    Stack = IoGetCurrentIrpStackLocation(Irp);
-
-    switch(Stack->Parameters.DeviceIoControl.IoControlCode)
-    {
-        case IOCTL_MIDI_PLAY :
-        {
-            DPRINT("Received IOCTL_MIDI_PLAY\n");
-            Data = (PBYTE) Irp->AssociatedIrp.SystemBuffer;
-
-            DPRINT("Sending %d bytes of MIDI data to 0x%d:\n", Stack->Parameters.DeviceIoControl.InputBufferLength, DeviceExtension->Port);
-            
-            for (ByteCount = 0; ByteCount < Stack->Parameters.DeviceIoControl.InputBufferLength; ByteCount ++)
-            {
-                DPRINT("0x%x ", Data[ByteCount]);
-
-                MPU401_WRITE_BYTE(DeviceExtension->Port, Data[ByteCount]);
-//                if (WaitToSend(MPU401_PORT))
-//                    MPU401_WRITE_DATA(MPU401_PORT, Data[ByteCount]);
-            }
-
-            Irp->IoStatus.Status = STATUS_SUCCESS;
-            IoCompleteRequest(Irp, IO_NO_INCREMENT);
-            
-            return(STATUS_SUCCESS);
-        }
-    }
-    
-    return(STATUS_SUCCESS);
-
-/*
-  DeviceExtension = DeviceObject->DeviceExtension;
-  Stack = IoGetCurrentIrpStackLocation(Irp);
-  BeepParam = (PBEEP_SET_PARAMETERS)Irp->AssociatedIrp.SystemBuffer;
-
-  Irp->IoStatus.Information = 0;
-
-  if (Stack->Parameters.DeviceIoControl.IoControlCode != IOCTL_BEEP_SET)
-    {
-      Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED;
-      IoCompleteRequest(Irp,
-                       IO_NO_INCREMENT);
-      return(STATUS_NOT_IMPLEMENTED);
-    }
-
-  if ((Stack->Parameters.DeviceIoControl.InputBufferLength != sizeof(BEEP_SET_PARAMETERS))
-      || (BeepParam->Frequency < BEEP_FREQUENCY_MINIMUM)
-      || (BeepParam->Frequency > BEEP_FREQUENCY_MAXIMUM))
-    {
-      Irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
-      IoCompleteRequest(Irp,
-                       IO_NO_INCREMENT);
-      return(STATUS_INVALID_PARAMETER);
-    }
-
-  DueTime.QuadPart = 0;
-*/
-  /* do the beep!! */
-/*  DPRINT("Beep:\n  Freq: %lu Hz\n  Dur: %lu ms\n",
-        pbsp->Frequency,
-        pbsp->Duration);
-
-  if (BeepParam->Duration >= 0)
-    {
-      DueTime.QuadPart = (LONGLONG)BeepParam->Duration * -10000;
-
-      KeSetTimer(&DeviceExtension->Timer,
-                DueTime,
-                &DeviceExtension->Dpc);
-
-      HalMakeBeep(BeepParam->Frequency);
-      DeviceExtension->BeepOn = TRUE;
-      KeWaitForSingleObject(&DeviceExtension->Event,
-                           Executive,
-                           KernelMode,
-                           FALSE,
-                           NULL);
-    }
-  else if (BeepParam->Duration == (DWORD)-1)
-    {
-      if (DeviceExtension->BeepOn == TRUE)
-       {
-         HalMakeBeep(0);
-         DeviceExtension->BeepOn = FALSE;
-       }
-      else
-       {
-         HalMakeBeep(BeepParam->Frequency);
-         DeviceExtension->BeepOn = TRUE;
-       }
-    }
-
-  DPRINT("Did the beep!\n");
-
-  Irp->IoStatus.Status = STATUS_SUCCESS;
-  IoCompleteRequest(Irp,
-                   IO_NO_INCREMENT);
-  return(STATUS_SUCCESS);
-*/
-}
-
-
-static NTSTATUS STDCALL
-MPU401Unload(PDRIVER_OBJECT DriverObject)
-{
-  DPRINT("MPU401Unload() called!\n");
-  return(STATUS_SUCCESS);
-}
-
-
-NTSTATUS STDCALL
-DriverEntry(PDRIVER_OBJECT DriverObject,
-           PUNICODE_STRING RegistryPath)
-/*
- * FUNCTION:  Called by the system to initalize the driver
- * ARGUMENTS:
- *            DriverObject = object describing this driver
- *            RegistryPath = path to our configuration entries
- * RETURNS:   Success or failure
- */
-{
-//  PDEVICE_EXTENSION DeviceExtension;
-//  PDEVICE_OBJECT DeviceObject;
-//  DEVICE_INSTANCE Instance;
-  // Doesn't support multiple instances (yet ...)
-  NTSTATUS Status;
-
-  DPRINT("MPU401 Device Driver 0.0.1\n");
-
-    // Is this really necessary? Yes! (Talking to myself again...)
-//    Instance.DriverObject = DriverObject;
-    // previous instance = NULL...
-
-//    DeviceExtension->RegistryPath = RegistryPath;
-
-  DriverObject->Flags = 0;
-  DriverObject->MajorFunction[IRP_MJ_CREATE] = (PDRIVER_DISPATCH)MPU401Create;
-  DriverObject->MajorFunction[IRP_MJ_CLOSE] = (PDRIVER_DISPATCH)MPU401Close;
-  DriverObject->MajorFunction[IRP_MJ_CLEANUP] = (PDRIVER_DISPATCH)MPU401Cleanup;
-  DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = (PDRIVER_DISPATCH)MPU401DeviceControl;
-  DriverObject->DriverUnload = (PDRIVER_UNLOAD)MPU401Unload;
-
-    // Major hack to just get this damn thing working:
-    Status = InitDevice(RegistryPath, DriverObject);    // ????
-
-//    DPRINT("Enumerating devices at %wZ\n", RegistryPath);
-
-//    Status = EnumDeviceKeys(RegistryPath, PARMS_SUBKEY, InitDevice, (PVOID)&DeviceObject); // &Instance;
-
-    // check error
-
-  /* set up device extension */
-//  DeviceExtension = DeviceObject->DeviceExtension;
-//  DeviceExtension->BeepOn = FALSE;
-
-  return(STATUS_SUCCESS);
-}
-
-/* EOF */
diff --git a/reactos/drivers/dd/blue/mpu401.h b/reactos/drivers/dd/blue/mpu401.h
deleted file mode 100644 (file)
index 4b2ce0b..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- *
- * COPYRIGHT:            See COPYING in the top level directory
- * PROJECT:              ReactOS kernel
- * FILE:                 services/dd/mpu401/mpu401.h
- * PURPOSE:              MPU-401 MIDI device driver header
- * PROGRAMMER:           Andrew Greenwood
- * UPDATE HISTORY:
- *                       Sept 26, 2003: Created
- */
-
-#ifndef __INCLUDES_MPU401_H__
-#define __INCLUDES_MPU401_H__
-
-#define DEFAULT_PORT    0x330
-#define DEFAULT_IRQ     9
-
-#define DEVICE_SUBKEY   L"Devices"
-#define PARMS_SUBKEY    L"Parameters"
-
-#define REGISTRY_PORT   L"Port"
-
-// At the moment, we just support a single device with fixed parameters:
-#define MPU401_PORT     DEFAULT_PORT
-#define MPU401_IRQ      DEFAULT_IRQ
-
-#define MPU401_TIMEOUT  10000
-
-#define IOCTL_SOUND_BASE FILE_DEVICE_SOUND
-// wave base 0
-#define IOCTL_MIDI_BASE  0x0080
-
-#define IOCTL_MIDI_GET_CAPABILITIES CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
-#define IOCTL_MIDI_SET_STATE CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0002, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-#define IOCTL_MIDI_GET_STATE CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0003, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-#define IOCTL_MIDI_SET_VOLUME CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
-#define IOCTL_MIDI_GET_VOLUME CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
-#define IOCTL_MIDI_PLAY CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0006, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-#define IOCTL_MIDI_RECORD CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0007, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-#define IOCTL_MIDI_CACHE_PATCHES CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0008, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-#define IOCTL_MIDI_CACHE_DRUM_PATCHES CTL_CODE(IOCTL_SOUND_BASE, IOCTL_MIDI_BASE + 0x0009, METHOD_BUFFERED, FILE_WRITE_ACCESS)
-
-
-// The MPU-401 has 2 ports, usually 0x330 and 0x331, which are known as
-// "data" and "status/command", respectively. These macros deal with
-// reading from and writing to these ports:
-
-#define MPU401_WRITE_DATA(bp, x)    WRITE_PORT_UCHAR((PUCHAR) bp, x)
-#define MPU401_READ_DATA(bp)        READ_PORT_UCHAR((PUCHAR) bp)
-#define MPU401_WRITE_COMMAND(bp, x) WRITE_PORT_UCHAR((PUCHAR) bp+1, x)
-#define MPU401_READ_STATUS(bp)      READ_PORT_UCHAR((PUCHAR) bp+1)
-
-
-// Flow control
-
-#define MPU401_READY_TO_SEND(bp) \
-    MPU401_READ_STATUS(bp) & 0x80
-
-#define MPU401_READY_TO_RECEIVE(bp) \
-    MPU401_READ_STATUS(bp) & 0x40
-
-
-#define MPU401_WRITE_BYTE(bp, x) \
-    if (WaitToSend(bp)) MPU401_WRITE_DATA(bp, x)
-
-#define MPU401_WRITE_MESSAGE(bp, status, da, db) \
-    MPU401_WRITE(bp, status); \
-    MPU401_WRITE(bp, da); \
-    MPU401_WRITE(bp, db)
-
-//#define MPU401_READ(bp)
-//    if (WaitToRead(bp)) ... ???
-
-/*
-    DEVICE_EXTENSION contains the settings for each individual device
-*/
-
-typedef struct _DEVICE_EXTENSION
-{
-    PWSTR RegistryPath;
-    PDRIVER_OBJECT DriverObject;
-    UINT Port;
-    UINT IRQ;
-//  KDPC Dpc;
-//  KTIMER Timer;
-//  KEVENT Event;
-//  BOOLEAN BeepOn;
-} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
-
-/*
-    DEVICE_INSTANCE contains ???
-*/
-
-typedef struct _DEVICE_INSTANCE
-{
-    // pPrevGDI
-    PDRIVER_OBJECT DriverObject;
-} DEVICE_INSTANCE, *PDEVICE_INSTANCE;
-
-/*
-    CONFIG contains device parameters (port/IRQ)
-    THIS STRUCTURE IS REDUNDANT
-*/
-
-//typedef struct _CONFIG
-//{
-//    UINT Port;
-//    UINT IRQ;
-//} CONFIG, *PCONFIG;
-
-/*
-    Some callback typedefs
-*/
-
-typedef NTSTATUS REGISTRY_CALLBACK_ROUTINE(PWSTR RegistryPath, PVOID Context);
-typedef REGISTRY_CALLBACK_ROUTINE *PREGISTRY_CALLBACK_ROUTINE;
-
-
-/*
-    Prototypes for functions in portio.c :
-*/
-
-BOOLEAN WaitToSend(UINT BasePort);
-BOOLEAN WaitToReceive(UINT BasePort);
-BOOLEAN InitUARTMode(UINT BasePort);
-
-/*
-    Prototypes for functions in settings.c :
-*/
-
-NTSTATUS EnumDeviceKeys(
-    IN PUNICODE_STRING RegistryPath,
-    IN PWSTR SubKey,
-    IN PREGISTRY_CALLBACK_ROUTINE Callback,
-    IN PVOID Context);
-
-NTSTATUS LoadSettings(
-    IN  PWSTR ValueName,
-    IN  ULONG ValueType,
-    IN  PVOID ValueData,
-    IN  ULONG ValueLength,
-    IN  PVOID Context,
-    IN  PVOID EntryContext);
-
-#endif
diff --git a/reactos/drivers/dd/blue/mpu401.rc b/reactos/drivers/dd/blue/mpu401.rc
deleted file mode 100644 (file)
index e3cd6b4..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#include <defines.h>
-#include <reactos/resource.h>
-
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
-
-VS_VERSION_INFO VERSIONINFO
-       FILEVERSION     RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
-       PRODUCTVERSION  RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
-       FILEFLAGSMASK   0x3fL
-#ifdef _DEBUG
-       FILEFLAGS       0x1L
-#else
-       FILEFLAGS       0x0L
-#endif
-       FILEOS          0x40004L
-       FILETYPE        0x2L
-       FILESUBTYPE     0x0L
-BEGIN
-    BLOCK "StringFileInfo"
-    BEGIN
-        BLOCK "040904b0"
-        BEGIN
-            VALUE "CompanyName",       RES_STR_COMPANY_NAME
-            VALUE "FileDescription",    "MPU-401 MIDI Driver\0"
-            VALUE "FileVersion",    "0.0.1\0"
-            VALUE "InternalName",   "mpu401\0"
-            VALUE "LegalCopyright",    RES_STR_LEGAL_COPYRIGHT
-            VALUE "OriginalFilename",   "mpu401.sys\0"
-            VALUE "ProductName",       RES_STR_PRODUCT_NAME
-            VALUE "ProductVersion",    RES_STR_PRODUCT_VERSION
-        END
-    END
-    BLOCK "VarFileInfo"
-    BEGIN
-        VALUE "Translation", 0x409, 1200
-    END
-END
-
diff --git a/reactos/drivers/dd/blue/portio.c b/reactos/drivers/dd/blue/portio.c
deleted file mode 100644 (file)
index 9e04b8a..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- *
- * COPYRIGHT:            See COPYING in the top level directory
- * PROJECT:              ReactOS kernel
- * FILE:                 services/dd/mpu401/portio.c (see also mpu401.h)
- * PURPOSE:              MPU-401 MIDI port I/O helper
- * PROGRAMMER:           Andrew Greenwood
- * UPDATE HISTORY:
- *                       Sept 26, 2003: Created
- */
-
-#include <windows.h>
-#include <ddk/ntddk.h>
-#include "mpu401.h"
-
-
-BOOLEAN WaitToSend(UINT BasePort)
-{
-    int TimeOut;
-    
-    DbgPrint("WaitToSend ");
-
-    // Check if it's OK to send
-    for (TimeOut = MPU401_TIMEOUT;
-         ! MPU401_READY_TO_SEND(BasePort) && TimeOut > 0;
-         TimeOut --);
-
-    // If a time-out occurs, we report failure
-    if (! TimeOut)
-    {
-        DbgPrint("FAILED\n");
-        return FALSE;
-    }
-    
-    DbgPrint("SUCCEEDED\n");
-
-    return TRUE;
-}
-
-
-BOOLEAN WaitToReceive(UINT BasePort)
-{
-    int TimeOut;
-
-    DbgPrint("WaitToSend ");
-
-    // Check if it's OK to receive
-    for (TimeOut = MPU401_TIMEOUT;
-         ! MPU401_READY_TO_RECEIVE(BasePort) && TimeOut > 0;
-         TimeOut --);
-
-    // If a time-out occurs, we report failure
-    if (! TimeOut)
-    {
-        DbgPrint("FAILED\n");
-        return FALSE;
-    }
-    
-    DbgPrint("SUCCEEDED\n");
-
-    return TRUE;
-}
-
-
-BOOLEAN InitUARTMode(UINT BasePort)
-{
-    UINT TimeOut;
-    UCHAR Status = 0;
-
-    DbgPrint("InitUARTMode() called\n");
-
-    // Check if it's OK to send
-    if (! WaitToSend(BasePort))
-        return FALSE;
-
-    DbgPrint("Resetting MPU401\n");
-
-    // Send an MPU reset:
-    MPU401_WRITE_COMMAND(BasePort, 0xff);
-
-    // Check if it's OK to receive (some cards will ignore the above reset
-    // command and so will not issue an ACK, so time out is NOT an error)
-    DbgPrint("Waiting for an ACK\n");
-    if (WaitToReceive(BasePort))
-    {
-        // Check to make sure the reset was acknowledged:
-        for (TimeOut = MPU401_TIMEOUT;
-             Status = (MPU401_READ_DATA(BasePort) & 0xfe) && TimeOut > 0;
-             TimeOut --);
-    }
-
-    DbgPrint("Entering UART mode\n");
-    // Now we kick the MPU401 into UART ("dumb") mode
-    MPU401_WRITE_COMMAND(BasePort, 0x3f);
-
-    return TRUE;
-}
diff --git a/reactos/drivers/dd/blue/readme.txt b/reactos/drivers/dd/blue/readme.txt
deleted file mode 100644 (file)
index 5a59256..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-----------------------------------
-REACTOS MPU-401 MIDI DEVICE DRIVER
-by Andrew Greenwood
-----------------------------------
-
-This driver initializes the MPU-401 MIDI/joystick port found on
-most sound cards, and allows the sending of simple messages.
-
-It's far from complete, and at present will only support 1 device.
-
-In Bochs, the MIDI output will be played using whatever device is
-set up in Windows as your MIDI output.
-
-For real hardware, the output will be played to whatever device is
-attached to your MIDI/joystick port, or, in some cases, the wave-table
-or other synth on-board your card (note: this is NOT an FM synth
-driver!)
-
-
-Thanks to Vizzini and all the other great ReactOS developers for
-helping me code this driver and also for giving me encouragement.
-
-I'd also like to thank Jeff Glatt, whose MIDI and MPU-401
-documentation has been a valuable resource to me over the past few
-years, and who provided me with almost all of my knowledge of MIDI
-and MPU-401. His site is at: www.borg.com/~jglatt/
-
-- Andrew "Silver Blade" Greenwood
diff --git a/reactos/drivers/dd/blue/sbdebug.h b/reactos/drivers/dd/blue/sbdebug.h
deleted file mode 100644 (file)
index 30e7fee..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef NDEBUG
-#define TEST_STATUS(s) \
-        if (! NT_SUCCESS(s)) \
-        { \
-            if (s == STATUS_NO_MORE_ENTRIES) \
-                DPRINT("NTSTATUS == NO MORE ENTRIES\n") \
-            else if (s == STATUS_BUFFER_OVERFLOW) \
-                DPRINT("NTSTATUS == BUFFER OVERFLOW\n") \
-            else if (s == STATUS_BUFFER_TOO_SMALL) \
-                DPRINT("NTSTATUS == BUFFER TOO SMALL\n") \
-            else if (s == STATUS_INVALID_PARAMETER) \
-                DPRINT("NTSTATUS == INVALID PARAMETER\n") \
-            else if (s == STATUS_OBJECT_NAME_NOT_FOUND) \
-                DPRINT("NTSTATUS == OBJECT NAME NOT FOUND\n") \
-            else if (s == STATUS_INVALID_HANDLE) \
-                DPRINT("NTATATUS == INVALID_HANDLE\n") \
-            else if (s == STATUS_ACCESS_DENIED) \
-                DPRINT("NTSTATUS == ACCESS_DENIED\n") \
-            else \
-                DPRINT("NTSTATUS == FAILURE (???)\n"); \
-        }
-#else
-#define TEST_STATUS(s)
-#endif
diff --git a/reactos/drivers/dd/blue/settings.c b/reactos/drivers/dd/blue/settings.c
deleted file mode 100644 (file)
index ef6e31d..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- *
- * COPYRIGHT:            See COPYING in the top level directory
- * PROJECT:              ReactOS kernel
- * FILE:                 services/dd/mpu401/settings.c
- * PURPOSE:              MPU-401 MIDI device driver setting management
- * PROGRAMMER:           Andrew Greenwood
- * UPDATE HISTORY:
- *                       Sept 27, 2003: Created
- */
-
-#include <ntddk.h>
-#include <windows.h>
-
-#include "mpu401.h"
-
-// #define NDEBUG
-#include <debug.h>
-#include "sbdebug.h"  // our own debug helper
-
-
-NTSTATUS
-OpenDevicesKey(
-    IN PWSTR RegistryPath,
-    OUT PHANDLE Key)
-/*
-    Description:
-        Create a volatile key under this driver's Services node to contain
-        the device name list.
-
-    Parameters:
-        RegistryPath    The location of the registry entry
-        Key             The key in the registry
-
-    Return Value:
-        NT status STATUS_SUCCESS if successful (duh...)
-*/
-{
-    NTSTATUS s;
-    HANDLE hKey;
-    OBJECT_ATTRIBUTES oa;
-    UNICODE_STRING uStr;
-
-    // Attempt to open the key
-
-    RtlInitUnicodeString(&uStr, RegistryPath);
-
-    InitializeObjectAttributes(&oa, &uStr, OBJ_CASE_INSENSITIVE, NULL,
-                                (PSECURITY_DESCRIPTOR)NULL);
-
-    s = ZwOpenKey(&hKey, KEY_CREATE_SUB_KEY, &oa);
-
-    if (! NT_SUCCESS(s))
-        return s;   // Problem
-
-
-    // Now create sub key
-
-    RtlInitUnicodeString(&uStr, (PWSTR) DEVICE_SUBKEY);
-
-    InitializeObjectAttributes(&oa, &uStr, OBJ_CASE_INSENSITIVE, hKey,
-                                (PSECURITY_DESCRIPTOR)NULL);
-
-    s = ZwCreateKey(Key, KEY_ALL_ACCESS, &oa, 0, NULL, REG_OPTION_VOLATILE,
-                    NULL);
-
-    ZwClose(hKey);
-
-    return s;
-}
-
-
-
-NTSTATUS EnumDeviceKeys(
-    IN PUNICODE_STRING RegistryPath,
-    IN PWSTR SubKey,
-    IN PREGISTRY_CALLBACK_ROUTINE Callback,
-    IN PVOID Context)
-/*
-    Description:
-        Enumerate the device subkeys in the driver's registry entry, and
-        call the specified callback routine for each device.
-
-    Parameters:
-        RegistryPath    The location of the registry entry
-        Subkey          The device's subkey
-        Callback        A routine called for each device
-        Context         ???
-
-    Return Value:
-        NT status STATUS_SUCCESS if successful
-*/
-{
-    NTSTATUS s;
-    OBJECT_ATTRIBUTES oa;
-    HANDLE hKey, hSubKey;
-    UNICODE_STRING SubkeyName;
-    ULONG i;
-
-    // Attempt to open the key
-
-    InitializeObjectAttributes(&oa, RegistryPath, OBJ_CASE_INSENSITIVE,
-                                NULL, (PSECURITY_DESCRIPTOR)NULL);
-
-    s = ZwOpenKey(&hKey, KEY_READ, &oa);
-
-        TEST_STATUS(s); // debugging
-
-    if (! NT_SUCCESS(s))
-        return s;   // Problem
-
-    RtlInitUnicodeString(&SubkeyName, SubKey);
-
-    DPRINT("Subkey: %wZ\n", &SubkeyName);
-
-    InitializeObjectAttributes(&oa, &SubkeyName, OBJ_CASE_INSENSITIVE,
-                                hKey, (PSECURITY_DESCRIPTOR)NULL);
-
-    s = ZwOpenKey(&hSubKey, KEY_ENUMERATE_SUB_KEYS, &oa);
-
-    ZwClose(hKey);
-
-        TEST_STATUS(s); // debugging
-
-    if (! NT_SUCCESS(s))
-        return s;
-
-
-    // And now, the enumeration
-
-    for (i = 0;; i ++)
-    {
-        KEY_BASIC_INFORMATION Info;
-        PKEY_BASIC_INFORMATION pInfo;
-        ULONG ResultLength = 0;
-        ULONG Size = 0;
-        PWSTR Pos;
-        PWSTR Name;
-
-        // Find the length of the subkey data
-
-//        Info.NameLength = 0;    // TEMPORARY!
-
-        s = ZwEnumerateKey(hSubKey, i, KeyBasicInformation, &Info,
-                            sizeof(Info), &ResultLength);
-
-        if (s == STATUS_NO_MORE_ENTRIES)
-            break;
-
-        DPRINT("Found an entry, allocating memory...\n");
-
-//        Size = Info.NameLength + FIELD_OFFSET(KEY_BASIC_INFORMATION, Name[0]);
-        Size = ResultLength + FIELD_OFFSET(KEY_BASIC_INFORMATION, Name[0]);
-
-        DPRINT("Size is %d\n", Size);
-
-        pInfo = (PKEY_BASIC_INFORMATION) ExAllocatePool(PagedPool, Size);
-
-        if (pInfo == NULL)
-        {
-            DPRINT("INSUFFICIENT RESOURCES!\n");
-            s = STATUS_INSUFFICIENT_RESOURCES;
-            break;
-        }
-
-        DPRINT("Re-enumerating...\n");
-
-        s = ZwEnumerateKey(hSubKey, i, KeyBasicInformation, pInfo, Size,
-                            &ResultLength);
-
-//        TEST_STATUS(s); // debugging
-
-        if (! NT_SUCCESS(s))
-        {
-            ExFreePool((PVOID) pInfo);
-            s = STATUS_INTERNAL_ERROR;
-            break;
-        }
-
-        DPRINT("Allocating memory for name...\n");
-
-        Name = ExAllocatePool(PagedPool,
-                          RegistryPath->Length + sizeof(WCHAR) +
-                          SubkeyName.Length + sizeof(WCHAR) +
-                          pInfo->NameLength + sizeof(UNICODE_NULL));
-
-        if (Name == NULL)
-        {
-            DPRINT("INSUFFICIENT RESOURCES!");
-            ExFreePool((PVOID) pInfo);
-            return STATUS_INSUFFICIENT_RESOURCES;
-        }
-
-        // Copy the key name
-        RtlCopyMemory((PVOID)Name, (PVOID)RegistryPath->Buffer, RegistryPath->Length);
-        Pos = Name + (RegistryPath->Length / sizeof(WCHAR));
-        Pos[0] = '\\';
-        Pos++;
-
-        // Copy the parameters sub key name
-        RtlCopyMemory((PVOID)Pos, (PVOID)SubKey, SubkeyName.Length);    //SubkeyName?
-        Pos += SubkeyName.Length / sizeof(WCHAR);
-        Pos[0] = '\\';
-        Pos ++;
-
-        // Copy the device sub key name
-        RtlCopyMemory((PVOID)Pos, (PVOID)pInfo->Name, pInfo->NameLength);
-        Pos += pInfo->NameLength / sizeof(WCHAR);
-        Pos[0] = UNICODE_NULL;
-
-        ExFreePool((PVOID)pInfo);
-
-        DPRINT("Calling callback...\n");
-
-        s = (*Callback)(Name, Context);
-
-        if (! NT_SUCCESS(s))
-        {   DPRINT("Callback FAILED\n");
-            break;}
-    }
-
-    ZwClose(hSubKey);
-
-    DPRINT("%d device registry keys found\n", i);
-
-    if ((i == 0) && (s == STATUS_NO_MORE_ENTRIES))
-        return STATUS_DEVICE_CONFIGURATION_ERROR;
-
-    return s == STATUS_NO_MORE_ENTRIES ? STATUS_SUCCESS : s;
-}
-
-
-
-NTSTATUS LoadSettings(
-    IN  PWSTR ValueName,
-    IN  ULONG ValueType,
-    IN  PVOID ValueData,
-    IN  ULONG ValueLength,
-    IN  PVOID Context,
-    IN  PVOID EntryContext)
-/*
-    Description:
-        Read the settings for a particular device
-
-    Parameters:
-        ValueName       The value to read from the registry
-        ValueType       ?
-        ValueData       ?
-        ValueLength     ?
-        Context         The configuration structure to write to
-        EntryContext    ?
-
-    Return Value:
-        NT status STATUS_SUCCESS if successful
-*/
-{
-    PDEVICE_EXTENSION DeviceInfo = Context;
-
-    if (ValueType == REG_DWORD)
-    {
-        if (! _wcsicmp(ValueName, REGISTRY_PORT))
-        {
-            DeviceInfo->Port = *(PULONG) ValueData;
-            DPRINT("Registry port = 0x%x\n", DeviceInfo->Port);
-        }
-
-        // More to come... (config.c)
-    }
-
-    else
-    {
-        // ?
-    }
-
-    return STATUS_SUCCESS;
-}
-
-
-
-NTSTATUS SaveSettings(
-    IN  PWSTR RegistryPath,
-    IN  ULONG Port,
-    IN  ULONG IRQ,
-    IN  ULONG DMA)
-/*
-    Description:
-        Saves the settings for a particular device
-
-    Parameters:
-        RegistryPath    Where to save the settings to
-        Port            The device's port number
-        IRQ             The device's interrupt number
-        DMA             The device's DMA channel
-
-    Return Value:
-        NT status STATUS_SUCCESS if successful
-*/
-{
-    NTSTATUS s;
-
-    DPRINT("SaveSettings() unimplemented\n");
-
-//    UNIMPLEMENTED;
-
-    return STATUS_SUCCESS;
-}
diff --git a/reactos/drivers/dd/blue/test.c b/reactos/drivers/dd/blue/test.c
deleted file mode 100644 (file)
index ff4aedc..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <stdio.h>
-#include <windows.h>
-#include <ddk/ntddk.h>
-#include "mpu401.h"
-
-int main()
-{
-//    NTSTATUS s;
-//    PHANDLE Handle;
-//    PIO_STATUS_BLOCK Status;
-    DWORD BytesReturned;
-    BYTE Test[3]; // Will store MIDI data
-    BYTE Notes[] = {50, 52, 54, 55, 57, 59, 61};
-    HANDLE Device;
-    UINT Note;
-    UINT Junk;
-
-    printf("Test program for MPU401 driver\n");
-
-    Device = CreateFile("\\\\.\\MPU401_Out_0", GENERIC_READ | GENERIC_WRITE,
-                        FILE_SHARE_READ | FILE_SHARE_WRITE,
-                        NULL,
-                        OPEN_EXISTING,
-                        FILE_FLAG_NO_BUFFERING,
-                        NULL);
-
-    if (Device == INVALID_HANDLE_VALUE)
-    {
-        printf("Device is busy or could not be found.\n");
-        return -1;
-    }
-
-    printf("Device is open, let's play some music...\n");
-
-        Test[0] = 0x90;
-        Test[2] = 0x7f;
-
-    for (Note = 0; Note < sizeof(Notes); Note ++)
-    {
-        Test[1] = Notes[Note];
-
-    DeviceIoControl(
-        Device,
-        IOCTL_MIDI_PLAY,
-        &Test,
-        sizeof(Test),
-        NULL,
-        0,
-        &BytesReturned,
-        NULL
-        );
-
-        for (Junk = 0; Junk < 100000; Junk ++);   // Pause
-    }
-
-
-/*    s = IoCreateFile(Handle, GENERIC_READ | GENERIC_WRITE,
-                     OBJ_KERNEL_HANDLE,
-                     Status,
-                     0,
-                     FILE_SHARE_READ | FILE_SHARE_WRITE,
-                     FILE_OPEN,
-                     FILE_NON_DIRECTORY_FILE,
-                     NULL,
-                     0,
-                     CreateFileTypeNone,
-                     NULL,
-                     0);
-*/
-}
diff --git a/reactos/drivers/dd/blue/test/playmidi.c b/reactos/drivers/dd/blue/test/playmidi.c
deleted file mode 100644 (file)
index 498fb32..0000000
+++ /dev/null
@@ -1,519 +0,0 @@
-/*
-    playmidi.c
-
-    MIDI playback tester
-*/
-
-#include <stdio.h>
-#include <windows.h>
-// typedef UINT *LPUINT;
-#include <mmsystem.h>
-#include <malloc.h>
-
-
-struct GENERIC_CHUNK
-{
-    char    Header[4];
-    ULONG   Length;
-} GENERIC_CHUNK;
-
-
-struct MTHD_CHUNK
-{
-    char    Header[4];
-    ULONG   Length;
-    USHORT  Format;
-    USHORT  NumTracks;
-    USHORT  Division;
-} MTHD_CHUNK;
-
-
-struct MidiMessage
-{
-    UINT    Time;
-    UCHAR   Status;
-    UCHAR   Data1;
-    UCHAR   Data2;
-    UCHAR   Data3;
-};
-
-
-struct MessageQueue
-{
-    UINT MessageCount;
-    UINT MessageCapacity;
-    UINT QueuePos;
-    struct MidiMessage* Messages;  // MQ[trk][entry]
-};
-
-
-struct Song
-{
-    USHORT Format;
-    USHORT NumTracks;
-    USHORT Division; // correct?
-    struct MessageQueue* Tracks;
-};
-
-
-struct Song Song;
-
-
-USHORT SwapShortBytes(USHORT *Value)
-{
-    return *Value = ((*Value % 256) * 256) + (*Value / 256);
-}
-
-
-ULONG SwapLongBytes(ULONG *Value)
-{
-    BYTE b[4];
-    INT i;
-
-    for (i = 0; i < 4; i ++)
-    {
-        b[i] = *Value % 256;
-        *Value /= 256;
-    }
-
-    printf("SLB : %u %u %u %u\n", b[0], b[1], b[2], b[3]);
-
-    return *Value = (b[0] * 256 * 256 *256) +
-           (b[1] * 256 * 256) +
-           (b[2] * 256) +
-           b[3];
-}
-
-
-ULONG ReadVarLen(FILE* f, ULONG *b)
-{
-    char c;
-    ULONG v;
-
-    *b ++;
-
-    if ((v = getc(f)) & 0x80)
-    {
-        v &= 0x7f;
-        do
-        {
-            v = (v << 7) + ((c = getc(f)) & 0x7f);
-            *b ++;
-        }
-        while (c & 0x80);
-    }
-
-    return v;
-}
-
-
-BOOLEAN QueueMessage(UINT Track, struct MidiMessage* Msg)
-{
-    PVOID OldPtr = NULL;
-
-//    printf("QueueMessage called\n");
-
-    if (Song.Tracks[Track].MessageCount + 1 > Song.Tracks[Track].MessageCapacity)
-    {
-        Song.Tracks[Track].MessageCapacity += 1;
-        OldPtr = Song.Tracks[Track].Messages;
-
-//        printf("Allocating %d bytes - ", Song.Tracks[Track].MessageCapacity * sizeof(struct MidiMessage));
-
-        Song.Tracks[Track].Messages =
-            realloc(Song.Tracks[Track].Messages,
-            Song.Tracks[Track].MessageCapacity * sizeof(struct MidiMessage));
-
-//        printf("0x%x\n", Song.Tracks[Track].Messages);
-
-        if (! Song.Tracks[Track].Messages)
-        {
-            Song.Tracks[Track].Messages = OldPtr;
-            return FALSE;
-        }
-    }
-
-    // Copy the message
-    Song.Tracks[Track].Messages[Song.Tracks[Track].MessageCount] = *Msg;
-
-//    printf("Message 0x%x %d %d %d\n", Msg->Status, Msg->Data1, Msg->Data2, Msg->Data3);
-
-    Song.Tracks[Track].MessageCount ++;
-//    printf("Msg count %u\n", Song.Tracks[Track].MessageCount);
-
-    return TRUE;
-}
-
-
-BOOLEAN DequeueMessage(UINT Track, struct MidiMessage* Msg)
-{
-    printf("Dequeueing message from %u < %u\n", Song.Tracks[Track].QueuePos, Song.Tracks[Track].MessageCount);
-
-    if (Song.Tracks[Track].QueuePos >= Song.Tracks[Track].MessageCount)
-    {
-        printf("No more messages in queue\n");
-        return FALSE;
-    }
-
-    *Msg = Song.Tracks[Track].Messages[Song.Tracks[Track].QueuePos];
-
-    Song.Tracks[Track].QueuePos ++;
-
-    return TRUE;
-}
-
-
-UINT GetMessageLength(BYTE b)
-{
-    switch(b)
-    {
-        case 0xf0 : // case 0xf4 : case 0xf5 : case 0xf6 : case 0xf7 :
-            return 0;   // ignore
-        case 0xf1 : case 0xf3 :
-            return 2;
-        case 0xf2 :
-            return 3;
-        case 0xff : // meta event
-            return 0;
-    }
-
-    if (b > 0xf8)   return 1;
-
-    switch(b & 0xf0)
-    {
-        case 0x80 : case 0x90 : case 0xa0 : case 0xb0 : case 0xe0 :
-            return 2;
-        case 0xc0 : case 0xd0 :
-            return 1;
-    }
-
-    return 0;   // must be a status byte
-}
-
-
-
-
-
-UINT ReadEvent(FILE* f, struct MidiMessage* Msg)
-{
-    ULONG Bytes = 0;
-    ULONG MsgLen = 0;
-    UCHAR Status;
-    PVOID NextByte = NULL;
-
-    Msg->Data1 = 0;
-    Msg->Data2 = 0;
-    Msg->Data3 = 0;
-
-    Msg->Time = ReadVarLen(f, &Bytes); // Increment ?
-//    Bytes = 4;  // WRONG!
-//    printf("Message at %u :  ", Msg->Time);
-    Status = getc(f);
-    Bytes ++;
-
-    // Figure out if we're using running status or not
-    if (Status & 0x80)
-    {
-        Msg->Status = Status;
-        NextByte = &Msg->Data1;
-//            printf("NRS\n");
-    }
-    else
-    {
-        Bytes --;
-        MsgLen --;    // ok?
-        Msg->Data1 = Status;
-        NextByte = &Msg->Data2;
-    }
-
-    Bytes += MsgLen = GetMessageLength(Msg->Status);
-//    printf("Len(%u) ", Bytes);
-
-
-//    if (Bytes <= 4) // System messages are ignored
-//    {
-        if (Msg->Status == 0xf0)
-        {
-            ReadVarLen(f, &Bytes);  // we don't care!
-            while ((! feof(f)) && (Status = fgetc(f) != 0x7f))
-            {
-                Bytes ++;
-            }
-//            printf("Ignored %u bytes of SysEx\n", Bytes);
-            return Bytes;
-        }
-
-        else if (Msg->Status == 0xff)    // meta event
-        {
-            UCHAR METype, MELen;
-            // process the message somehow... (pass song pointer?)
-            METype = getc(f); // What type of event it is
-            MELen = getc(f);    // How long it is
-            fseek(f, MELen, SEEK_CUR);
-            if (METype == 0x2f) // track end
-                return FALSE;
-//            printf("Found a meta-event of type %u, length %u (ignored it)\n", METype, MELen);
-            return Bytes + MELen;
-        }
-
-        else if (Msg->Status > 0xf0)
-            return Bytes + 1;
-//    }
-//    else if (Bytes > 4 + 3)
-//    {
-//        printf("MIDI bytecount > 3. THIS SHOULD NOT HAPPEN!\n");
-//    }
-
-//    printf("Reading %u bytes .. ", MsgLen);
-    fread(NextByte, 1, MsgLen, f);
-
-//    printf("Message 0x%x %d %d %d\n", Msg->Status, Msg->Data1, Msg->Data2, Msg->Data3);
-
-    if (feof(f))
-        return FALSE;
-
-    return Bytes;
-}
-
-
-UINT Trk = 0;
-
-BOOLEAN ReadChunk(FILE* f)
-{
-    struct GENERIC_CHUNK Chunk;
-
-    fread(&Chunk, sizeof(GENERIC_CHUNK), 1, f);
-    SwapLongBytes(&Chunk.Length);
-
-    if (feof(f))
-        return FALSE;
-
-    if (! strncmp(Chunk.Header, "MThd", 4))
-    {
-        int i;
-
-        struct MTHD_CHUNK HeaderChunk;
-        memcpy(&HeaderChunk, &Chunk, sizeof(GENERIC_CHUNK));
-        printf("Found MThd chunk\n");
-
-        fread(&HeaderChunk.Format, 1, Chunk.Length, f);
-        SwapShortBytes(&HeaderChunk.Format);
-        SwapShortBytes(&HeaderChunk.NumTracks);
-        SwapShortBytes(&HeaderChunk.Division);
-
-        Song.Format = HeaderChunk.Format;
-        Song.NumTracks = HeaderChunk.NumTracks;
-        Song.Division = HeaderChunk.Division;
-
-        Song.Tracks = malloc(Song.NumTracks * sizeof(struct MessageQueue));
-
-        for (i = 0; i < Song.NumTracks; i ++)
-        {
-            Song.Tracks[i].MessageCount = 0;
-            Song.Tracks[i].MessageCapacity = 0;
-            Song.Tracks[i].QueuePos = 0;
-            Song.Tracks[i].Messages = NULL;
-        }
-
-        switch(HeaderChunk.Format)
-        {
-            case 0 :
-                printf("Single track format\n");
-                if (HeaderChunk.NumTracks > 1)
-                {
-                    printf("Found more than one track!\n");
-                    return FALSE;
-                }
-                printf("1 track\n");
-                break;
-
-            case 1 :
-                printf("Multi-track format\n");
-                if (HeaderChunk.NumTracks < 1)
-                {
-                    printf("MIDI file contains no tracks!\n");
-                    return FALSE;
-                }
-                printf("%u track(s)\n", HeaderChunk.NumTracks);
-                break;
-
-            default :
-                printf("Unsupported format!\n");
-                return FALSE;
-        }
-    }
-
-    else if (! strncmp(Chunk.Header, "MTrk", 4))
-    {
-        struct MidiMessage Msg;
-        UINT ByteCount = 0;
-
-//        Song.Tracks[Trk].MessageCapacity = 0;
-//        Song.Tracks[Trk].MessageCount = 0;
-//        Song.Tracks[Trk].Messages = NULL;
-
-        printf("Found an MTrk chunk - length %u\n", Chunk.Length);
-
-        Msg.Time = 0;   // this gets incremented
-
-        while (ReadEvent(f, &Msg))
-        {
-            if (Msg.Status >= 0xf0)
-                continue;
-
-            if ((Msg.Data1 & 0x80) ||
-                (Msg.Data2 & 0x80) ||
-                (Msg.Data3 & 0x80))
-            {
-                printf("WARNING: Malformed MIDI message: 0x%x %u %u %u\n", Msg.Status, Msg.Data1, Msg.Data2, Msg.Data3);
-            }
-//            else
-//                printf("0x%x %u %u %u\n", Msg.Status, Msg.Data1, Msg.Data2, Msg.Data3);
-
-            if (! QueueMessage(Trk, &Msg))
-            {
-                UINT i;
-
-                printf("Out of memory\n");
-
-                for (i = 0; i < Trk; i ++)
-                {
-                    free(Song.Tracks[Trk].Messages);
-                }
-                free(Song.Tracks);
-                abort();
-            }
-        }
-
-        printf("%u messages were processed\n", Song.Tracks[Trk].MessageCount);
-
-        Trk ++;
-
-
-//        while (ByteCount < Chunk.Length)
-//        {
-//            printf("%u < %u ?\n", ByteCount, Chunk.Length);
-//            ByteCount += ReadEvent(f, &Msg);
-            // ...
-//        }
-
-//        fseek(f, Chunk.Length, SEEK_CUR);
-    }
-
-    else
-    {
-        // skip it...
-        printf("Haven't got a clue what this chunk is: %s\n", Chunk.Header);
-        fseek(f, Chunk.Length, SEEK_CUR);
-    }
-
-    return TRUE;
-}
-
-
-BOOLEAN Load(char* Filename)
-{
-    FILE* f = fopen(Filename, "rb");
-
-    if (! f)
-    {
-        printf("File not found!\n");
-        return FALSE;
-    }
-
-//    fread(&Header, 1, 4, f);
-//    printf("Header = %s\n", Header);
-
-//    if (strncmp(Header, "MThd", 4))
-//    {
-//        printf("Not a MIDI file!\n");
-//        return FALSE;
-//    }
-
-    while (! feof(f))
-        if (! ReadChunk(f)) break;
-
-//    fread(&Length, 4, 1, f);
-//    Length = SwapLongBytes(Length);
-
-//    if (Length != 6)
-//    {
-//        printf("Abnormal MThd chunk length : %u\n", Length);
-//        return FALSE;
-//    }
-
-//    fread(&Format, 2, 1, f);
-//    Format = SwapShortBytes(Format);
-//    fread(&NumTracks, 2, 1, f);
-//    NumTracks = SwapShortBytes(NumTracks);
-
-
-    // Ignore this for now:
-//    fread(&Division, 2, 1, f);
-
-    fclose(f);
-    return TRUE;
-}
-
-
-#define PACK_MIDI(s, d1, d2, d3) \
-    (d3 * 256 * 256 * 256) + \
-    (d2 * 256 * 256) + \
-    (d1 * 256) + s
-
-
-BOOLEAN Play()
-{
-    printf("Now playing - press any key to stop...\n");
-    UINT Trk;
-    struct MidiMessage Msg;
-    HANDLE Timer;
-    LARGE_INTEGER ns;
-    HMIDIOUT Device;
-
-    if (midiOutOpen(&Device, -1, NULL, 0, CALLBACK_NULL) != MMSYSERR_NOERROR)
-    {
-        printf("midiOutOpen() failed!\n");
-        return FALSE;
-    }
-
-    Timer = CreateWaitableTimer(NULL, TRUE, "PlayMidiTimer");
-
-    while(DequeueMessage(5, &Msg))  // fix this
-    {
-        if (Msg.Time > 0)
-        {
-            ns.QuadPart = 20000 * Msg.Time;
-            ns.QuadPart = - ns.QuadPart;
-            SetWaitableTimer(Timer, &ns, 0, NULL, NULL, FALSE);
-            WaitForSingleObject(Timer, INFINITE);
-        }
-
-        printf("%u :  ", Msg.Time);
-        printf("0x%x %d %d %d\n", Msg.Status, Msg.Data1, Msg.Data2, Msg.Data3);
-        midiOutShortMsg(Device, PACK_MIDI(Msg.Status, Msg.Data1, Msg.Data2, Msg.Data3));
-    }
-
-    return TRUE;
-}
-
-
-int main(int argc, char* argv[])
-{
-    printf("MIDI Playback Test Applet\n");
-    printf("by Andrew Greenwood\n\n");
-
-    if (argc == 1)
-    {
-        printf("Need a filename\n");
-        return -1;
-    }
-
-    printf("Playing %s\n", argv[1]);
-
-    if (Load(argv[1]))
-        if (! Play())
-            return -1;
-
-    return 0;
-}
diff --git a/reactos/drivers/dd/blue/test/test.mid b/reactos/drivers/dd/blue/test/test.mid
deleted file mode 100644 (file)
index 16f5b6f..0000000
Binary files a/reactos/drivers/dd/blue/test/test.mid and /dev/null differ
diff --git a/reactos/drivers/dd/blue/test/z b/reactos/drivers/dd/blue/test/z
deleted file mode 100644 (file)
index 618f735..0000000
+++ /dev/null
@@ -1,907 +0,0 @@
-MIDI Playback Test Applet
-by Andrew Greenwood
-
-Playing test.mid
-SLB : 0 0 0 6
-Found MThd chunk
-Multi-track format
-14 track(s)
-SLB : 0 0 0 38
-Found an MTrk chunk - length 38
-0 < 38 ?
-Message at 0 :  Len(5) Found a meta-event of type 81, length 3 (ignored it)
-8 < 38 ?
-Message at 0 :  Len(5) Found a meta-event of type 88, length 4 (ignored it)
-17 < 38 ?
-Message at 86012 :  Len(5) Found a meta-event of type 81, length 3 (ignored it)
-25 < 38 ?
-Message at 768 :  Len(5) Found a meta-event of type 81, length 3 (ignored it)
-33 < 38 ?
-Message at 175363 :  Len(5) Found a meta-event of type 47, length 0 (ignored it)
-SLB : 0 0 10 122
-Found an MTrk chunk - length 2682
-0 < 2682 ?
-Message at 0 :  Len(5) Found a meta-event of type 1, length 8 (ignored it)
-13 < 2682 ?
-Message at 1 :  Len(5) Reading 1 bytes .. Message 0xc3 90 3 120
-18 < 2682 ?
-Message at 8 :  Len(7) Reading 3 bytes .. Message 0xb3 7 116 129
-25 < 2682 ?
-Message at 2231 :  Len(7) Reading 3 bytes .. Message 0x93 59 110 92
-32 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-38 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-44 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-50 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 108
-56 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 68
-62 < 2682 ?
-Message at 2489 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-68 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-74 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-80 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-86 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-92 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-98 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-104 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-110 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-116 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 131 4
-122 < 2682 ?
-Message at 2489 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-128 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-134 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-140 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-146 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-152 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-158 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-164 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-170 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-176 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-182 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-188 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-194 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-200 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-206 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-212 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 132 68
-218 < 2682 ?
-Message at 2491 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-224 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-230 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-236 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-242 < 2682 ?
-Message at 64 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-248 < 2682 ?
-Message at 448 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-254 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-260 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-266 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-272 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-278 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-284 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-290 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-296 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-302 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-308 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-314 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-320 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-326 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-332 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-338 < 2682 ?
-Message at 52 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-344 < 2682 ?
-Message at 52 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-350 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-356 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-362 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-368 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-374 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-380 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-386 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-392 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-398 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-404 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-410 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-416 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-422 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-428 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-434 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 131 44
-440 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 132 68
-446 < 2682 ?
-Message at 8666 :  Len(6) Reading 2 bytes .. Message 0x93 0 147 59
-452 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 92 131 59
-458 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 4 147 62
-464 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 44 131 62
-470 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 4 147 59
-476 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 108 131 59
-483 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 68 147 57
-490 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-496 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-502 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-508 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-514 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-520 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-526 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 96 131 57
-532 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 0 147 55
-538 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 60 131 55
-545 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x83 4 147 57
-552 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x83 44 131 57
-558 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x83 4 147 57
-564 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x83 92 131 57
-570 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x83 4 147 57
-576 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 57
-583 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 57
-589 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-595 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-601 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-607 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-613 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 96 131 57
-619 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 0 147 55
-625 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-631 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-637 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 60 131 55
-644 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x84 68 147 59
-651 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x84 92 131 59
-657 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x84 4 147 62
-663 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x84 44 131 62
-669 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x84 4 147 64
-675 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 64
-682 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-688 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-694 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-700 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-706 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-712 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-718 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-724 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 59
-730 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-736 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 57
-742 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-748 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 57
-754 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-760 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 60 131 55
-767 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 52
-773 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 52
-779 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-785 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-791 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-797 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 60 131 57
-804 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-810 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-816 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-822 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-828 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-834 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 60 131 57
-841 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-847 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-853 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-859 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 44 131 55
-865 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-871 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x83 44 131 59
-878 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x83 100 147 57
-884 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 57
-891 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-897 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 59
-904 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 60
-910 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-916 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-922 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-928 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-934 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 44 131 59
-940 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-946 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 60
-953 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-959 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-965 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-971 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-977 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-983 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-989 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-995 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-1001 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1007 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1013 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1019 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-1025 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1031 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1037 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 57
-1043 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 57
-1050 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1056 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 59
-1063 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1069 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1075 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 60
-1081 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1087 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1093 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1099 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1105 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1111 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1117 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-1123 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1129 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 44 131 57
-1135 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-1141 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 55
-1148 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1154 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 96 131 59
-1160 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 0 147 57
-1166 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1172 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1178 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1184 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 68 147 57
-1191 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 57
-1198 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1204 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 59
-1211 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1217 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1223 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 60
-1229 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 60
-1235 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1241 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 44 131 59
-1247 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1253 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 60
-1260 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1266 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-1272 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1278 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1284 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-1290 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-1296 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-1302 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-1308 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1314 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1320 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1326 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-1332 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1338 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-1344 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 100 147 57
-1350 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 57
-1357 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1363 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 12 131 59
-1370 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1376 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 60
-1382 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-1388 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 59
-1394 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1400 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 60
-1406 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 62
-1412 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 62
-1418 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 60
-1424 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 60
-1430 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 64
-1436 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 124 131 64
-1442 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 64
-1448 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x82 124 131 64
-1455 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 68 147 59
-1462 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 48 131 59
-1468 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 0 147 57
-1474 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 44 131 57
-1480 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-1486 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-1492 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-1498 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 96 131 57
-1504 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 0 147 55
-1510 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-1516 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-1522 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x82 124 131 55
-1529 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x89 4 195 62
-1536 < 2682 ?
-Message at 0 :  Len(7) Reading 3 bytes .. Message 0x93 59 110 92
-1543 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1549 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-1555 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1561 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 108
-1567 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 68
-1573 < 2682 ?
-Message at 2489 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1579 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1585 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1591 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1597 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1603 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1609 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-1615 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-1621 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-1627 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 131 4
-1633 < 2682 ?
-Message at 2489 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-1639 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1645 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1651 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1657 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-1663 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-1669 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1675 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1681 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1687 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1693 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-1699 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-1705 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1711 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1717 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-1723 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 132 68
-1729 < 2682 ?
-Message at 2491 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1735 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1741 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-1747 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1753 < 2682 ?
-Message at 64 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-1759 < 2682 ?
-Message at 448 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1765 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1771 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1777 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1783 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1789 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1795 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1801 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-1807 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1813 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-1819 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1825 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-1831 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1837 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-1843 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1849 < 2682 ?
-Message at 52 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1855 < 2682 ?
-Message at 52 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1861 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1867 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1873 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-1879 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1885 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1891 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1897 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1903 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1909 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 60
-1915 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1921 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1927 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1933 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-1939 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1945 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 131 44
-1951 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-1957 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-1963 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1969 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-1975 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-1981 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1987 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-1993 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-1999 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2005 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-2011 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2017 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2023 < 2682 ?
-Message at 444 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2029 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2035 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2041 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2047 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2053 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2059 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2065 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2071 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2077 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2083 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2089 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2095 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2101 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2107 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-2113 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2119 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2125 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2131 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2137 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2143 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-2149 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2155 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2161 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2167 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2173 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2179 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2185 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2191 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2197 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-2203 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2209 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2215 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2221 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-2227 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-2233 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2239 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2245 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2251 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 68
-2257 < 2682 ?
-Message at 2489 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2263 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2269 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2275 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2281 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2287 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-2293 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2299 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2305 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-2311 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2317 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2323 < 2682 ?
-Message at 444 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2329 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2335 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2341 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2347 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2353 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2359 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2365 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2371 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2377 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2383 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2389 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2395 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2401 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2407 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 100 147
-2413 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2419 < 2682 ?
-Message at 441 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2425 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 12
-2431 < 2682 ?
-Message at 443 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2437 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2443 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2449 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2455 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2461 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2467 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2473 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2479 < 2682 ?
-Message at 62 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2485 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2491 < 2682 ?
-Message at 60 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2497 < 2682 ?
-Message at 64 :  Len(6) Reading 2 bytes .. Message 0x93 110 124 131
-2503 < 2682 ?
-Message at 64 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2509 < 2682 ?
-Message at 64 :  Len(6) Reading 2 bytes .. Message 0x93 110 130 124
-2515 < 2682 ?
-Message at 448 :  Len(6) Reading 2 bytes .. Message 0x93 110 129 68
-2521 < 2682 ?
-Message at 2491 :  Len(6) Reading 2 bytes .. Message 0x93 110 48 131
-2527 < 2682 ?
-Message at 59 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-2533 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 44 131
-2539 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2545 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2551 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2557 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 96 131
-2563 < 2682 ?
-Message at 57 :  Len(6) Reading 2 bytes .. Message 0x93 110 0 147
-2569 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 92 131
-2575 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 4 147
-2581 < 2682 ?
-Message at 55 :  Len(6) Reading 2 bytes .. Message 0x93 110 130 124
-2587 < 2682 ?
-Message at 439 :  Len(6) Reading 2 bytes .. Message 0x93 110 197 4
-2593 < 2682 ?
-Message at 6535 :  Len(6) Reading 2 bytes .. Message 0x93 120 0 195
-2599 < 2682 ?
-Message at 80 :  Len(6) Reading 2 bytes .. Message 0x93 0 147 59
-2605 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 92 131 59
-2611 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 4 147 62
-2617 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 44 131 62
-2623 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x93 4 147 59
-2629 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 108 131 59
-2636 < 2682 ?
-Message at 110 :  Len(7) Reading 3 bytes .. Message 0x81 68 147 57
-2643 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 57
-2649 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 55
-2655 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 55
-2661 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 59
-2667 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 92 131 59
-2673 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 4 147 57
-2679 < 2682 ?
-Message at 110 :  Len(6) Reading 2 bytes .. Message 0x81 96 131 57
-SLB : 110 129 60 131
-Haven't got a clue what this chunk is: n
-SLB : 131 60 129 110