📄 config.c
字号:
goto RestartInput; } break; } else MenuTimeout = -1; if (key == 0x3f00) /* F5 */ { SkipAllConfig = TRUE; break; } if (key == 0x4200) /* F8 */ { singleStep = !singleStep; } else if(key == 0x4800 && MenuColor != -1) /* arrow up */ { if(MenuSelected>=1 && (Menus & (1 << (MenuSelected-1))) ) { MenuSelected--; } } else if(key == 0x5000 && MenuColor != -1) /* arrow down */ { if(MenuSelected<MENULINESMAX-1 && (Menus & (1 << (MenuSelected+1))) ) { MenuSelected++; } } key &= 0xff; if (key == '\r' || key == 0x1b) /* CR/ESC - use default */ break; if (isnum(key) && (Menus & (1 << (key - '0')))) { MenuSelected = key - '0'; break; } } printf("\n"); /* export the current selected config menu */ sprintf(envp, "CONFIG=%c", MenuSelected+'0'); envp += 9; if (MenuColor != -1) ClearScreen(0x7);}STATIC VOID CfgMenuDefault(BYTE * pLine){ COUNT num = 0; pLine = skipwh(pLine); if ('=' != *pLine) { CfgFailure(pLine); return; } pLine = skipwh(pLine + 1); /* Format: STACKS = stacks [, stackSize] */ pLine = GetNumArg(pLine, &num); MenuSelected = num; pLine = skipwh(pLine); if (*pLine == ',') { GetNumArg(++pLine, &MenuTimeout); }}STATIC void ClearScreen(unsigned char attr){ /* scroll down (newlines): */ iregs r; unsigned char rows; /* clear */ r.a.x = 0x0600; r.b.b.h = attr; r.c.x = 0; r.d.b.l = peekb(0x40, 0x4a) - 1; /* columns */ rows = peekb(0x40, 0x84); if (rows == 0) rows = 24; r.d.b.h = rows; init_call_intr(0x10, &r); /* move cursor to pos 0,0: */ r.a.b.h = 0x02; /* set cursorpos */ r.b.b.h = 0; /* displaypage: */ r.d.x = 0; /* pos 0,0 */ init_call_intr(0x10, &r); MenuColor = attr;}/** MENUCOLOR[=] fg[, bg]*/STATIC void CfgMenuColor(BYTE * pLine){ int num = 0; unsigned char fg, bg = 0; pLine = skipwh(pLine); if ('=' == *pLine) pLine = skipwh(pLine + 1); pLine = GetNumArg(pLine, &num); if (pLine == 0) return; fg = (unsigned char)num; pLine = skipwh(pLine); if (*pLine == ',') { pLine = GetNumArg(skipwh(pLine+1), &num); if (pLine == 0) return; bg = (unsigned char)num; } ClearScreen((bg << 4) | fg);}/********************************************************************************* National specific things. this handles only Date/Time/Currency, and NOT codepage things. Some may consider this a hack, but I like to see 24 Hour support. tom.*********************************************************************************/#define _DATE_MDY 0 /* mm/dd/yy */#define _DATE_DMY 1 /* dd.mm.yy */#define _DATE_YMD 2 /* yy/mm/dd */#define _TIME_12 0#define _TIME_24 1struct CountrySpecificInfo specificCountriesSupported[] = { /* US */ { 1, /* = W1 W437 # Country ID & Codepage */ 437, _DATE_MDY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$", /* '$' ,'EUR' */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_12 /* = 0 # time format: 0/1: 12/24 houres */ } /* Canadian French */ ,{ 2, /* = W1 W437 # Country ID & Codepage */ 863, _DATE_YMD, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$", /* '$' ,'EUR' */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Latin America */ ,{ 3, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_MDY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$", /* '$' ,'EUR' */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_12 /* = 0 # time format: 0/1: 12/24 houres */ } /* Russia - by arkady */ ,{ 7, /* = W1 W437 # Country ID & Codepage */ 866, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "RUB", /* '$' ,'EUR' */ /* should be "\xE0", but as no codepage support exists (yet), better to leave it as 'Rubels' */ " ", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 3, /* Currency format : currency follows, after blank */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* DUTCH */ ,{ 31, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Belgium */ ,{ 32, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* France */ ,{ 33, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Spain */ ,{ 34, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ "'", /* Decimal point - by aitor */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Hungary */ ,{ 36, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$HU", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Yugoslavia */ ,{ 38, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$YU", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Italy */ ,{ 39, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Switzerland */ ,{ 41, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "SF", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Czechoslovakia */ ,{ 42, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_YMD, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$YU", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* UK */ ,{ 44, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "\x9c", /* Pound sign */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Denmark */ ,{ 45, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "DKK", /* */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Sweden */ ,{ 46, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_YMD, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "SEK", /* */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ "-", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Norway */ ,{ 47, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "NOK", /* */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Poland */ ,{ 48, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_YMD, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "PLN", /* michael tyc: PLN means PoLish New zloty, I think) */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* GERMAN */ ,{ 49, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "EUR", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ ".", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 1, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Argentina */ ,{ 54, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$ar", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 1, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_12 /* = 0 # time format: 0/1: 12/24 houres */ } /* Brazil */ ,{ 55, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_DMY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$ar", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 1, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* International English */ ,{ 61, /* = W1 W437 # Country ID & Codepage */ 850, _DATE_MDY, /* Date format: 0/1/2: U.S.A./Europe/Japan */ "$", /* '$' ,'EUR' */ ".", /* ',' # Thousand's separator */ ",", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_24 /* = 0 # time format: 0/1: 12/24 houres */ } /* Japan - Yuki Mitsui */ ,{ 81, /* = W1 W437 # Country ID & Codepage */ 932, _DATE_YMD, /* Date format: 0/1/2:U.S.A./Europe/Japan */ "\x81\x8f", /* '$' ,'EUR' */ ",", /* ',' # Thousand's separator */ ".", /* '.' # Decimal point */ "/", /* '-' DateSeparator */ ":", /* ':' TimeSeparator */ 0, /* = 0 # Currency format (bit array) */ 2, /* = 2 # Currency precision */ _TIME_12 /* = 0 # time format: 0/1: 12/24 houres
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -