mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-08-03 16:31:59 +02:00
* Again change ANSI font handling
* Add prompt.json
This commit is contained in:
parent
1e3e0b8baa
commit
91d395e8bc
7 changed files with 188 additions and 18 deletions
|
@ -24,7 +24,8 @@ exports.resetScreen = resetScreen;
|
|||
exports.normal = normal;
|
||||
exports.goHome = goHome;
|
||||
exports.disableVT100LineWrapping = disableVT100LineWrapping;
|
||||
exports.setFont = setFont;
|
||||
exports.setSyncTERMFont = setSyncTERMFont;
|
||||
exports.getSyncTERMFontFromAlias = getSyncTERMFontFromAlias;
|
||||
exports.fromPipeCode = fromPipeCode;
|
||||
|
||||
|
||||
|
@ -82,7 +83,7 @@ var SGRValues = {
|
|||
negative : 7,
|
||||
hidden : 8,
|
||||
|
||||
normal : 22,
|
||||
normal : 22, //
|
||||
steady : 25,
|
||||
positive : 27,
|
||||
|
||||
|
@ -118,6 +119,136 @@ function getBGColorValue(name) {
|
|||
// See http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt
|
||||
// :TODO: document
|
||||
// :TODO: Create mappings for aliases... maybe make this a map to values instead
|
||||
// :TODO: Break this up in to two parts:
|
||||
// 1) FONT_AND_CODE_PAGES (e.g. SyncTERM/cterm)
|
||||
// 2) SAUCE_FONT_MAP: Sauce name(s) -> items in FONT_AND_CODE_PAGES.
|
||||
// ...we can then have getFontFromSAUCEName(sauceFontName)
|
||||
// Also, create a SAUCE_ENCODING_MAP: SAUCE font name -> encodings
|
||||
|
||||
//
|
||||
// An array of CTerm/SyncTERM font/encoding values. Each entry's index
|
||||
// corresponds to it's escape sequence value (e.g. cp437 = 0)
|
||||
//
|
||||
// See https://github.com/protomouse/synchronet/blob/master/src/conio/cterm.txt
|
||||
//
|
||||
var SYNCTERM_FONT_AND_ENCODING_TABLE = [
|
||||
'cp437',
|
||||
'cp1251',
|
||||
'koi8_r',
|
||||
'iso8859_2',
|
||||
'iso8859_4',
|
||||
'cp866',
|
||||
'iso8859_9',
|
||||
'haik8',
|
||||
'iso8859_8',
|
||||
'koi8_u',
|
||||
'iso8859_15',
|
||||
'iso8859_4',
|
||||
'koi8_r_b',
|
||||
'iso8859_4',
|
||||
'iso8859_5',
|
||||
'ARMSCII_8',
|
||||
'iso8859_15',
|
||||
'cp850',
|
||||
'cp850',
|
||||
'cp885',
|
||||
'cp1251',
|
||||
'iso8859_7',
|
||||
'koi8-r_c',
|
||||
'iso8859_4',
|
||||
'iso8859_1',
|
||||
'cp866',
|
||||
'cp437',
|
||||
'cp866',
|
||||
'cp885',
|
||||
'cp866_u',
|
||||
'iso8859_1',
|
||||
'cp1131',
|
||||
'c64_upper',
|
||||
'c64_lower',
|
||||
'c128_upper',
|
||||
'c128_lower',
|
||||
'atari',
|
||||
'pot_noodle',
|
||||
'mo_soul',
|
||||
'microknight_plus',
|
||||
'topaz_plus',
|
||||
'microknight',
|
||||
'topaz',
|
||||
];
|
||||
|
||||
//
|
||||
// A map of various font name/aliases such as those used
|
||||
// in SAUCE records to SyncTERM/CTerm names
|
||||
//
|
||||
// This table contains lowercased entries with any spaces
|
||||
// replaced with '_' for lookup purposes.
|
||||
//
|
||||
var FONT_ALIAS_TO_SYNCTERM_MAP = {
|
||||
'cp437' : 'cp437',
|
||||
'ibm_vga' : 'cp437',
|
||||
'ibmpc' : 'cp437',
|
||||
'ibm_pc' : 'cp437',
|
||||
'pc' : 'cp437',
|
||||
'cp437_art' : 'cp437',
|
||||
'ibmpcart' : 'cp437',
|
||||
'ibmpc_art' : 'cp437',
|
||||
'ibm_pc_art' : 'cp437',
|
||||
'msdos_art' : 'cp437',
|
||||
'msdosart' : 'cp437',
|
||||
'pc_art' : 'cp437',
|
||||
'pcart' : 'cp437',
|
||||
|
||||
'ibm_vga50' : 'cp437',
|
||||
'ibm_vga25g' : 'cp437',
|
||||
'ibm_ega' : 'cp437',
|
||||
'ibm_ega43' : 'cp437',
|
||||
|
||||
'topaz' : 'topaz',
|
||||
'amiga_topaz_1' : 'topaz',
|
||||
'amiga_topaz_1+' : 'topaz_plus',
|
||||
'topazplus' : 'topaz_plus',
|
||||
'topaz_plus' : 'topaz_plus',
|
||||
'amiga_topaz_2' : 'topaz',
|
||||
'amiga_topaz_2+' : 'topaz_plus',
|
||||
'topaz2plus' : 'topaz_plus',
|
||||
|
||||
'pot_noodle' : 'pot_noodle',
|
||||
'p0tnoodle' : 'pot_noodle',
|
||||
'amiga_p0t-noodle' : 'pot_noodle',
|
||||
|
||||
'mo_soul' : 'mo_soul',
|
||||
'mosoul' : 'mo_soul',
|
||||
'mO\'sOul' : 'mo_soul',
|
||||
|
||||
'amiga_microknight' : 'microknight',
|
||||
'amiga_microknight+' : 'microknight_plus',
|
||||
|
||||
|
||||
'atari' : 'atari',
|
||||
'atarist' : 'atari',
|
||||
|
||||
};
|
||||
|
||||
function setSyncTERMFont(name, fontPage) {
|
||||
var p1 = miscUtil.valueWithDefault(fontPage, 0);
|
||||
|
||||
assert(p1 >= 0 && p1 <= 3);
|
||||
|
||||
var p2 = SYNCTERM_FONT_AND_ENCODING_TABLE[name];
|
||||
if(_.isNumber(p2)) {
|
||||
return ESC_CSI + p1 + ';' + p2 + ' D';
|
||||
}
|
||||
|
||||
return '';
|
||||
}
|
||||
|
||||
function getSyncTERMFontFromAlias(alias) {
|
||||
return FONT_ALIAS_TO_SYNCTERM_MAP[alias.toLowerCase().replace(/ /g, '_')];
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
var FONT_MAP = {
|
||||
// Codepage 437 English
|
||||
'cp437' : 0,
|
||||
|
@ -204,6 +335,7 @@ var FONT_MAP = {
|
|||
'topaz' : 42,
|
||||
|
||||
};
|
||||
*/
|
||||
|
||||
// Create methods such as up(), nextLine(),...
|
||||
Object.keys(CONTROL).forEach(function onControlName(name) {
|
||||
|
@ -291,6 +423,7 @@ function disableVT100LineWrapping() {
|
|||
//
|
||||
// See http://cvs.synchro.net/cgi-bin/viewcvs.cgi/*checkout*/src/conio/cterm.txt
|
||||
//
|
||||
/*
|
||||
function setFont(name, fontPage) {
|
||||
name = name.toLowerCase().replace(/ /g, '_'); // conform to map
|
||||
|
||||
|
@ -305,6 +438,7 @@ function setFont(name, fontPage) {
|
|||
|
||||
return '';
|
||||
}
|
||||
*/
|
||||
|
||||
// Also add:
|
||||
// * fromRenegade(): |<0-23>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue