#pragma once /*********************************************************************** terminal.h ANSI Terminal Code Interface for avr8os ***********************************************************************/ #include #define TERM_ESC "\x1b" #define TERM_CSI TERM_ESC "[" #define TERM_HOME TERM_CSI "H" #define TERM_CLEAR TERM_CSI "2J" #define TERM_SAVE_POS TERM_CSI "s" #define TERM_REST_POS TERM_CSI "u" #define TERM_HIDE TERM_CSI "?25l" #define TERM_SHOW TERM_CSI "?25h" #define TERM_CLEAR_LINE TERM_CSI "2K" #define TERM_CLEAR_EOL TERM_CSI "K" #define TERM_ENA_SCROLL TERM_CSI "r" #define TERM_SAVE_CURSOR TERM_ESC "7" #define TERM_REST_CURSOR TERM_ESC "8" #include #define term_clear(s) fprintf(s,TERM_CLEAR) #define term_home(s) fprintf(s,TERM_HOME) #define term_save(s) fprintf(s,TERM_SAVE_POS) #define term_restore(s) fprintf(s,TERM_REST_POS) #define term_hide(s) fprintf(s,TERM_HIDE) #define term_show(s) fprintf(s,TERM_SHOW) #define term_clear_line(s) fprintf(s,TERM_CLEAR_LINE) #define term_clear_eol(s) fprintf(s,TERM_CLEAR_EOL) #define term_ena_scroll(s) fprintf(s,TERM_ENA_SCROLL) #define term_scroll(s,start,end) term_p2(s,'r',start,end) #define term_goto(s,x,y) term_p2(s,'H',y,x) #define term_save_cursor(s) fprintf(s,TERM_SAVE_CURSOR) #define term_restore_cursor(s) fprintf(s,TERM_REST_CURSOR) void term_p2(FILE* stream,uint8_t cmd,uint8_t a,uint8_t b);