📄 nfl.h
字号:
#define K_RDWR 0x60 /* keyboard data & cmds (read/write) */#define K_STATUS 0x64 /* keyboard status */#define K_CMD 0x64 /* keybd ctlr command (write-only) */#define K_OBUF_FUL 0x01 /* output buffer full */#define K_IBUF_FUL 0x02 /* input buffer full */#define KC_CMD_WIN 0xd0 /* read output port */#define KC_CMD_WOUT 0xd1 /* write output port */#define KB_OUTPUT_MASK 0xdd /* enable output buffer full interrupt enable data line enable clock line */#define KB_A20_ENABLE 0x02/* Codes for getchar. */#define ASCII_CHAR(x) ((x) & 0xFF)#define KEY_LEFT 0x4B00#define KEY_RIGHT 0x4D00#define KEY_UP 0x4800#define KEY_DOWN 0x5000#define KEY_IC 0x5200 /* insert char */#define KEY_DC 0x5300 /* delete char */#define KEY_BACKSPACE 0x0008#define KEY_HOME 0x4700#define KEY_END 0x4F00#define KEY_NPAGE 0x4900#define KEY_PPAGE 0x5100/* Default video attributes */#define A_NORMAL 0x7#define A_REVERSE 0x70/* Define ACS_* ourselves, since the definitions are not consistent among various curses implementations. */#undef ACS_ULCORNER#undef ACS_URCORNER#undef ACS_LLCORNER#undef ACS_LRCORNER#undef ACS_HLINE#undef ACS_VLINE#undef ACS_LARROW#undef ACS_RARROW#undef ACS_UARROW#undef ACS_DARROW#define ACS_ULCORNER '+'#define ACS_URCORNER '+'#define ACS_LLCORNER '+'#define ACS_LRCORNER '+'#define ACS_HLINE '-'#define ACS_VLINE '|'#define ACS_LARROW '<'#define ACS_RARROW '>'#define ACS_UARROW '^'#define ACS_DARROW 'v'/* Special graphics characters for IBM displays. */#define DISP_UL 218#define DISP_UR 191#define DISP_LL 192#define DISP_LR 217#define DISP_HORIZ 196#define DISP_VERT 179#define DISP_LEFT 0x1b#define DISP_RIGHT 0x1a#define DISP_UP 0x18#define DISP_DOWN 0x19#ifndef ASM_FILE/* * Below this should be ONLY defines and other constructs for C code. *//* The flag for debug mode. */extern int debug;/* Color settings */extern int normal_color, highlight_color;/* If LINEAR is nonzero, then set the Intel processor to linear mode. Otherwise, bit 20 of all memory accesses is always forced to zero, causing a wraparound effect for bugwards compatibility with the 8086 CPU. */void gateA20 (int linear);/* memory probe routines */int get_memsize (int type);int get_eisamemsize (void);/* Get the linear address of a ROM configuration table. Return zero, if fails. */unsigned long get_rom_config_table (void);/* Get APM BIOS information. */void get_apm_info (void);/* Get VBE controller information. *//*int get_vbe_controller_info (struct vbe_controller *controller);*//* Get VBE mode information. *//*int get_vbe_mode_info (int mode_number, struct vbe_mode *mode);*//* Set VBE mode. */int set_vbe_mode (int mode_number);/* Return the data area immediately following our code. */int get_code_end (void);/* low-level timing info *//*int getrtsecs (void);int currticks (void);*//* Clear the screen. */void cls (void);/* The console part of cls. */void console_cls (void);/* Turn off cursor. */void console_nocursor (void);/* Get the current cursor position (where 0,0 is the top left hand corner of the screen). Returns packed values, (RET >> 8) is x, (RET & 0xff) is y. */int getxy (void);/* The console part of getxy. */int console_getxy (void);/* Set the cursor position. */void gotoxy (int x, int y);/* The console part of gotoxy. */void console_gotoxy (int x, int y);/* The console part of putchar. */void console_putchar (int c);/* Wait for a keypress, and return its packed BIOS/ASCII key code. Use ASCII_CHAR(ret) to extract the ASCII code. */int getkey (void);/* The console part of getkey. */int console_getkey (void);/* Like GETKEY, but doesn't block, and returns -1 if no keystroke is available. */int checkkey (void);/* The console part of checkkey. */int console_checkkey (void);/* Sets text mode character attribute at the cursor position. See A_* constants defined above. */void set_attrib (int attr);/* The console part of set_attrib. */void console_setattrib (int attr);/* The table for a builtin. */struct builtin{ /* The command name. */ char *name; /* The callback function. */ int (*func) (char *, int); /* The combination of the flags defined above. */ int flags; /* The short version of the documentation. */ char *short_doc; /* The long version of the documentation. */ char *long_doc;};/* All the builtins are registered in this. */extern struct builtin *builtin_table[];extern int show_menu;/* Control the auto fill mode. */extern int auto_fill;/* This variable specifies which console should be used. */extern int terminal;#define TERMINAL_CONSOLE (1 << 0) /* keyboard and screen */#define TERMINAL_SERIAL (1 << 1) /* serial console */#define TERMINAL_HERCULES (1 << 2) /* hercules */#define TERMINAL_DUMB (1 << 16) /* dumb terminal */void init_builtins (void);void init_config (void);char *skip_to (int after_equal, char *cmdline);struct builtin *find_command (char *command);#endifvoid init_bios_info (void);/* * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2, or (at * your option) any later version. *//* * Definitions of data structures generated by the menu compiler * and expected by the menu program. All offsets are from the * beginning of the data area. *//* * Structure describing the data area, starts at 0. */struct menu_header{ char major, minor; /* Versions */ unsigned short flags; /* Capabilities */ unsigned int timeout; /* Global timeout */ unsigned int selectprompt; /* Offset of string saying Select... */ unsigned int confirmprompt; /* Offset of string saying Confirm... */ unsigned int nmenus; /* Number of menus stored */ /* Here follow unsigned int offsets of menus */};/* * Structure describing one menu. The number of items is one * greater than the last valid index. The 0th item holds the * data to be displayed before any user input. */struct menu{ unsigned int timeout; /* Timeout for this menu */ unsigned int nitems; /* Items in this menu */ /* Here follow unsigned int offsets of items */};/* * Structure describing one item in a menu. */struct item{ unsigned int title;};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -