1. define and document a new terminal entry point term->do_arc() The definition is in src/term_api.h; documentation is in term/README 2. in the term.c routine change_term(), add a line if (term->arc == 0) term->arc = do_arc; 3. wherever the code calls do_arc(), replace this with term->do_arc(). I think there are only 3 such places. 4. Write your specific routine TERM_do_arc() and initialize its TERM_TABLE to point to it.