X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=s51%2Fs51.h;h=f4dcce66d259b6ea20159daaddea9fa1acb879eb;hp=b916acb6d3d911c6f3df914a5d328ff196d6fad4;hb=18edacdb1e6e429cc29a164e22ef2a566096b9d9;hpb=e75918f3667a5c8ad294bec4acef6fe81682edf6 diff --git a/s51/s51.h b/s51/s51.h index b916acb6..f4dcce66 100644 --- a/s51/s51.h +++ b/s51/s51.h @@ -19,60 +19,105 @@ #include extern char *s51_prompt; - extern struct ccdbg *s51_dbg; +extern int s51_interrupted; +extern int s51_monitor; enum command_result { - command_proceed, command_debug, command_syntax, command_error + command_success, command_debug, command_syntax, command_interrupt, command_error, +}; + +struct command_function { + char *name; + char *alias; + enum command_result (*func)(int argc, char **argv); + char *usage; + char *help; }; +struct command_function * +command_string_to_function(struct command_function *functions, char *name); + +enum command_result +command_function_help(struct command_function *functions, int argc, char **argv); + +void +command_syntax_error(int argc, char **argv); + +enum command_result +command_quit (int argc, char **argv); + +enum command_result +command_help (int argc, char **argv); + enum command_result -command_quit (FILE *output, int argc, char **argv); +command_stop (int argc, char **argv); enum command_result -command_help (FILE *output, int argc, char **argv); +command_di (int argc, char **argv); enum command_result -command_di (FILE *output, int argc, char **argv); +command_ds (int argc, char **argv); enum command_result -command_ds (FILE *output, int argc, char **argv); +command_dx (int argc, char **argv); enum command_result -command_dx (FILE *output, int argc, char **argv); +command_set (int argc, char **argv); enum command_result -command_set (FILE *output, int argc, char **argv); +command_dump (int argc, char **argv); enum command_result -command_dump (FILE *output, int argc, char **argv); +command_file (int argc, char **argv); enum command_result -command_pc (FILE *output, int argc, char **argv); +command_pc (int argc, char **argv); enum command_result -command_break (FILE *output, int argc, char **argv); +command_break (int argc, char **argv); enum command_result -command_clear (FILE *output, int argc, char **argv); +command_clear (int argc, char **argv); enum command_result -command_run (FILE *output, int argc, char **argv); +command_run (int argc, char **argv); enum command_result -command_next (FILE *output, int argc, char **argv); +command_next (int argc, char **argv); enum command_result -command_step (FILE *output, int argc, char **argv); +command_step (int argc, char **argv); enum command_result -command_load (FILE *output, int argc, char **argv); +command_load (int argc, char **argv); enum command_result -command_halt (FILE *output, int argc, char **argv); +command_halt (int argc, char **argv); enum command_result -command_reset (FILE *output, int argc, char **argv); +command_reset (int argc, char **argv); + +enum command_result +command_status (int argc, char **argv); + +enum command_result +command_info (int argc, char **argv); + +enum command_result +cc_wait(void); void -command_read (FILE *input, FILE *output); +command_read (void); + +void +s51_printf(char *format, ...); + +void +s51_putc(int c); + +int +s51_check_input(void); + +int +s51_read_line(char *line, int len);