DREAMER DEBUGGER


Para entrar en modo Debugger, marca la casilla "Debugger" en la pantalla
principal.


El debugger tiene 4 ventanas

        -Ventana de cdigo
           En esta ventana aparece el cdigo actualmente cargado en la
           memoria del SH4. La linea blanca indica la siguiente instruccin a
           ejecutar
        -Ventana de registros
           Aqui aparecen los valores de los registros del SH4.
        -Ventana de datos
           En esta ventana se muestra el contenido de la memoria de una
           direccin especificada.
        -Ventana de mensajes
           Aqui aparecen mensajes emitidos por el emulador y por el "debug
           interface" (ver mas abajo)

Ejecutando cdigo:
        La ventana de cdigo est dividida en 2 partes: La zona de cdigo
        desensamblado y la zona de comandos.

        En la zona de comandos puedes escribir comandos para manejar el
        debugger. Los comandos soportados son los siguientes:

                D direccion     - Muestra los datos en la direccin dada   
                E direccion hex - Escribe el valor al byte en esa direccion
                F               - Dibuja el FrameBuffer en la pantalla
                G direccion     - Ejecutar hasta la direccin especificada
                R registro hex  - Escribe el valor Hex al registro especificado
                                  (no todos pueden ser modificados. El flag T
                                  se puede modificar. Ej: "r t 1")
                S               - Detener ejecucin (y vuelve al debugger)
                WC 1|0          - Oculta/muestra la ventana de cdigo
                WD 1|0          - Oculta/muestra la ventana de datos
                WM 1|0          - Oculta/muestra la ventana de mensajes
                WR 1|0          - Oculta/muestra la ventana de registros
                X               - Salir del emulador
                Z               - Reset (no funciona)
                <               - Mostrar el valor RCount en la ventana de
                                  mensajes (ver patches.txt para conocer el
                                  uso del RCount).

        Las teclas de control de ejecucin son:
                F5              - Ejecutar (todo el cdigo)
                F7              - Ejecutar 1 instruccin en modo "Trace Into"
                F8              - Ejecutar 1 instruccin en modo "Step Over"
                S               - Parar Ejecucin y volver al debugger



Debugging interface:

        El "debugging interface" permite la comunicacin entre el programa
        que se est ejecutando en el emulador y el programador que lo est
        depurando. Actualmente soporta 2 funciones:

                Detener ejecucin
                Escribir mensaje en la ventana de mensajes

        El interface funciona usando un opcode del SH4 no utilizado. Este es
        el 0x004b (cuidado con los compiladores de distinto "endianness",
        porque podra ser el 0x4b00 en algunos)


        La funcin la selecciona el registro R5:

                R5=0    Detener ejecucin y volver al debugger
                R5=1    Escribir mensaje en la ventana de mensajes. El
                        registro R6 debe contener la direccin de una cadena
                        acabada en cero en la memoria principal del SH4
                        (0x0c000000-0x0d000000,0x8c000000-0x8d000000 or
                        0xac000000-0xad000000)

        Ejemplo (usando la sintaxis del compilador de Hitachi):

        void debug_message(char *string)
        {
                register unsigned int k=(int) string;
                asm
                {
                        mov 0,R5
                        mov k,R6
                        .data.w 0x004b
                }
        }

        void debug_halt()
        {
                asm
                {
                        mov 1,R5
                        mov 0,R6
                        .data.w 0x004b
                }
        }

