A generic ROM monitor interface abnd support for the WinBond w89k board
[external/binutils.git] / gdb / w89k-rom.c
1 #include "defs.h"
2 #include "gdbcore.h"
3 #include "target.h"
4 #include "monitor.h"
5
6 void w89k_open();
7 void general_open();
8
9 /*
10  * Define the monitor command strings. Since these are passed directly
11  * through to a printf style function, we need can include formatting
12  * strings. We also need a CR or LF on the end.
13  */
14
15 struct target_ops w89k_ops = {
16   "w89k",
17   "WinBond's debug monitor for the W89k Eval board",
18   "Debug on a WinBond W89K eval board.\n\
19 Specify the serial device it is connected to (e.g. /dev/ttya).",
20   w89k_open,
21   monitor_close, 
22   0,
23   monitor_detach,
24   monitor_resume,
25   monitor_wait,
26   monitor_fetch_register,
27   monitor_store_register,
28   monitor_prepare_to_store,
29   monitor_xfer_inferior_memory,
30   monitor_files_info,
31   monitor_insert_breakpoint,
32   monitor_remove_breakpoint,    /* Breakpoints */
33   0,
34   0,
35   0,
36   0,
37   0,                            /* Terminal handling */
38   monitor_kill,
39   monitor_load,                 /* load */
40   0,                            /* lookup_symbol */
41   monitor_create_inferior,
42   monitor_mourn_inferior,
43   0,                            /* can_run */
44   0,                            /* notice_signals */
45   process_stratum,
46   0,                            /* next */
47   1,
48   1,
49   1,
50   1,
51   1,                            /* all mem, mem, stack, regs, exec */
52   0,
53   0,                            /* Section pointers */
54   OPS_MAGIC,                    /* Always the last thing */
55 };
56
57 struct monitor_ops w89k_cmds = {
58   "\r",                         /* monitor init string */
59   "G\r",                        /* execute or usually GO command */
60   "G\r",                        /* continue command */
61   "T\r",                        /* single step */
62   "BP %x\r",                            /* set a breakpoint */
63   "BC %x\r",                            /* clear a breakpoint */
64   "E %x %x\r",                          /* set memory to a value */
65   "D %x\r",                             /* display memory */
66   "",                           /* prompt memory commands use */
67   "R %s %x\r",                          /* set a register */
68   "",                           /* delimiter between registers */
69   "R %s\r",                             /* read a register */
70   "L\r",                                /* download command */
71   "ROM>",                               /* monitor command prompt */
72   "",                                   /* end-of-command delimitor */
73   "",                           /* optional command terminator */
74   &w89k_ops                             /* target operations */
75 };
76
77 void
78 w89k_open(args, from_tty)
79      char *args;
80      int from_tty;
81 {
82   push_target  (&w89k_ops);
83   push_monitor (&w89k_cmds);
84   general_open (args, "w89k", from_tty);
85 }
86
87 void
88 _initialize_w89k ()
89 {
90   add_target (&w89k_ops);
91 }
92
93
94
95