52 lines
1.4 KiB
C
Executable File
52 lines
1.4 KiB
C
Executable File
#pragma once
|
|
|
|
/***********************************************************************
|
|
|
|
terminal.h
|
|
|
|
ANSI Terminal Code Interface for avr8os
|
|
|
|
***********************************************************************/
|
|
|
|
#include <stdint.h>
|
|
|
|
#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 <stdio.h>
|
|
|
|
#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);
|
|
|
|
|
|
|
|
|
|
|