| 1 | /* scp.h: simulator control program headers\r |
| 2 | \r |
| 3 | Copyright (c) 1993-2006, Robert M Supnik\r |
| 4 | \r |
| 5 | Permission is hereby granted, free of charge, to any person obtaining a\r |
| 6 | copy of this software and associated documentation files (the "Software"),\r |
| 7 | to deal in the Software without restriction, including without limitation\r |
| 8 | the rights to use, copy, modify, merge, publish, distribute, sublicense,\r |
| 9 | and/or sell copies of the Software, and to permit persons to whom the\r |
| 10 | Software is furnished to do so, subject to the following conditions:\r |
| 11 | \r |
| 12 | The above copyright notice and this permission notice shall be included in\r |
| 13 | all copies or substantial portions of the Software.\r |
| 14 | \r |
| 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r |
| 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r |
| 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r |
| 18 | ROBERT M SUPNIK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r |
| 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r |
| 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r |
| 21 | \r |
| 22 | Except as contained in this notice, the name of Robert M Supnik shall not\r |
| 23 | be used in advertising or otherwise to promote the sale, use or other dealings\r |
| 24 | in this Software without prior written authorization from Robert M Supnik.\r |
| 25 | \r |
| 26 | 09-Aug-06 JDB Added assign_device and deassign_device\r |
| 27 | 14-Jul-06 RMS Added sim_activate_abs\r |
| 28 | 06-Jan-06 RMS Added fprint_stopped_gen\r |
| 29 | Changed arg type in sim_brk_test\r |
| 30 | 07-Feb-05 RMS Added ASSERT command\r |
| 31 | 09-Sep-04 RMS Added reset_all_p\r |
| 32 | 14-Feb-04 RMS Added debug prototypes (from Dave Hittner)\r |
| 33 | 02-Jan-04 RMS Split out from SCP\r |
| 34 | */\r |
| 35 | \r |
| 36 | #ifndef _SIM_SCP_H_\r |
| 37 | #define _SIM_SCP_H_ 0\r |
| 38 | \r |
| 39 | /* run_cmd parameters */\r |
| 40 | \r |
| 41 | #define RU_RUN 0 /* run */\r |
| 42 | #define RU_GO 1 /* go */\r |
| 43 | #define RU_STEP 2 /* step */\r |
| 44 | #define RU_CONT 3 /* continue */\r |
| 45 | #define RU_BOOT 4 /* boot */\r |
| 46 | \r |
| 47 | /* get_sim_opt parameters */\r |
| 48 | \r |
| 49 | #define CMD_OPT_SW 001 /* switches */\r |
| 50 | #define CMD_OPT_OF 002 /* output file */\r |
| 51 | #define CMD_OPT_SCH 004 /* search */\r |
| 52 | #define CMD_OPT_DFT 010 /* defaults */\r |
| 53 | \r |
| 54 | /* Command processors */\r |
| 55 | \r |
| 56 | t_stat reset_cmd (int32 flag, char *ptr);\r |
| 57 | t_stat exdep_cmd (int32 flag, char *ptr);\r |
| 58 | t_stat eval_cmd (int32 flag, char *ptr);\r |
| 59 | t_stat load_cmd (int32 flag, char *ptr);\r |
| 60 | t_stat run_cmd (int32 flag, char *ptr);\r |
| 61 | t_stat attach_cmd (int32 flag, char *ptr);\r |
| 62 | t_stat detach_cmd (int32 flag, char *ptr);\r |
| 63 | t_stat assign_cmd (int32 flag, char *ptr);\r |
| 64 | t_stat deassign_cmd (int32 flag, char *ptr);\r |
| 65 | t_stat save_cmd (int32 flag, char *ptr);\r |
| 66 | t_stat restore_cmd (int32 flag, char *ptr);\r |
| 67 | t_stat exit_cmd (int32 flag, char *ptr);\r |
| 68 | t_stat set_cmd (int32 flag, char *ptr);\r |
| 69 | t_stat show_cmd (int32 flag, char *ptr);\r |
| 70 | t_stat brk_cmd (int32 flag, char *ptr);\r |
| 71 | t_stat do_cmd (int32 flag, char *ptr);\r |
| 72 | t_stat assert_cmd (int32 flag, char *ptr);\r |
| 73 | t_stat help_cmd (int32 flag, char *ptr);\r |
| 74 | t_stat spawn_cmd (int32 flag, char *ptr);\r |
| 75 | t_stat echo_cmd (int32 flag, char *ptr);\r |
| 76 | \r |
| 77 | /* Utility routines */\r |
| 78 | \r |
| 79 | t_stat sim_process_event (void);\r |
| 80 | t_stat sim_activate (UNIT *uptr, int32 interval);\r |
| 81 | t_stat sim_activate_abs (UNIT *uptr, int32 interval);\r |
| 82 | t_stat sim_cancel (UNIT *uptr);\r |
| 83 | int32 sim_is_active (UNIT *uptr);\r |
| 84 | double sim_gtime (void);\r |
| 85 | uint32 sim_grtime (void);\r |
| 86 | int32 sim_qcount (void);\r |
| 87 | t_stat attach_unit (UNIT *uptr, char *cptr);\r |
| 88 | t_stat detach_unit (UNIT *uptr);\r |
| 89 | t_stat assign_device (DEVICE *dptr, char *cptr);\r |
| 90 | t_stat deassign_device (DEVICE *dptr);\r |
| 91 | t_stat reset_all (uint32 start_device);\r |
| 92 | t_stat reset_all_p (uint32 start_device);\r |
| 93 | char *sim_dname (DEVICE *dptr);\r |
| 94 | t_stat get_yn (char *ques, t_stat deflt);\r |
| 95 | char *get_sim_opt (int32 opt, char *cptr, t_stat *st);\r |
| 96 | char *get_glyph (char *iptr, char *optr, char mchar);\r |
| 97 | char *get_glyph_nc (char *iptr, char *optr, char mchar);\r |
| 98 | t_value get_uint (char *cptr, uint32 radix, t_value max, t_stat *status);\r |
| 99 | char *get_range (DEVICE *dptr, char *cptr, t_addr *lo, t_addr *hi,\r |
| 100 | uint32 rdx, t_addr max, char term);\r |
| 101 | t_stat get_ipaddr (char *cptr, uint32 *ipa, uint32 *ipp);\r |
| 102 | t_value strtotv (char *cptr, char **endptr, uint32 radix);\r |
| 103 | t_stat fprint_val (FILE *stream, t_value val, uint32 rdx, uint32 wid, uint32 fmt);\r |
| 104 | CTAB *find_cmd (char *gbuf);\r |
| 105 | DEVICE *find_dev (char *ptr);\r |
| 106 | DEVICE *find_unit (char *ptr, UNIT **uptr);\r |
| 107 | DEVICE *find_dev_from_unit (UNIT *uptr);\r |
| 108 | REG *find_reg (char *ptr, char **optr, DEVICE *dptr);\r |
| 109 | CTAB *find_ctab (CTAB *tab, char *gbuf);\r |
| 110 | C1TAB *find_c1tab (C1TAB *tab, char *gbuf);\r |
| 111 | SHTAB *find_shtab (SHTAB *tab, char *gbuf);\r |
| 112 | BRKTAB *sim_brk_fnd (t_addr loc);\r |
| 113 | uint32 sim_brk_test (t_addr bloc, uint32 btyp);\r |
| 114 | void sim_brk_clrspc (uint32 spc);\r |
| 115 | char *match_ext (char *fnam, char *ext);\r |
| 116 | t_stat sim_cancel_step (void);\r |
| 117 | void sim_debug_u16 (uint32 dbits, DEVICE* dptr, const char* const* bitdefs,\r |
| 118 | uint16 before, uint16 after, int terminate);\r |
| 119 | void sim_debug (uint32 dbits, DEVICE* dptr, const char* fmt, ...);\r |
| 120 | void fprint_stopped_gen (FILE *st, t_stat v, REG *pc, DEVICE *dptr);\r |
| 121 | \r |
| 122 | #endif\r |