|
|
@ -679,15 +679,18 @@ class TermScreen { |
|
|
|
this.screenBG = new Array(screenLength).fill(' '); |
|
|
|
this.screenBG = new Array(screenLength).fill(' '); |
|
|
|
this.screenAttrs = new Array(screenLength).fill(' '); |
|
|
|
this.screenAttrs = new Array(screenLength).fill(' '); |
|
|
|
|
|
|
|
|
|
|
|
let strArr = (typeof Array.from !== 'undefined' ? Array.from(str) : str.split('')); |
|
|
|
let strArray = typeof Array.from !== 'undefined' |
|
|
|
while (i < strArr.length && cell < screenLength) { |
|
|
|
? Array.from(str) |
|
|
|
let character = strArr[i++]; |
|
|
|
: str.split(''); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
while (i < strArray.length && cell < screenLength) { |
|
|
|
|
|
|
|
let character = strArray[i++]; |
|
|
|
let charCode = character.codePointAt(0); |
|
|
|
let charCode = character.codePointAt(0); |
|
|
|
|
|
|
|
|
|
|
|
let data, count; |
|
|
|
let data; |
|
|
|
switch (charCode) { |
|
|
|
switch (charCode) { |
|
|
|
case SEQ_SET_COLOR_ATTR: |
|
|
|
case SEQ_SET_COLOR_ATTR: |
|
|
|
data = parse3B(strArr[i]+strArr[i+1]+strArr[i+2]); |
|
|
|
data = parse3B(strArray[i] + strArray[i + 1] + strArray[i + 2]); |
|
|
|
i += 3; |
|
|
|
i += 3; |
|
|
|
fg = data & 0xF; |
|
|
|
fg = data & 0xF; |
|
|
|
bg = data >> 4 & 0xF; |
|
|
|
bg = data >> 4 & 0xF; |
|
|
@ -695,20 +698,20 @@ class TermScreen { |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case SEQ_SET_COLOR: |
|
|
|
case SEQ_SET_COLOR: |
|
|
|
data = parse2B(strArr[i]+strArr[i+1]); |
|
|
|
data = parse2B(strArray[i] + strArray[i + 1]); |
|
|
|
i += 2; |
|
|
|
i += 2; |
|
|
|
fg = data & 0xF; |
|
|
|
fg = data & 0xF; |
|
|
|
bg = data >> 4 & 0xF; |
|
|
|
bg = data >> 4 & 0xF; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case SEQ_SET_ATTR: |
|
|
|
case SEQ_SET_ATTR: |
|
|
|
data = parse2B(strArr[i]+strArr[i+1]); |
|
|
|
data = parse2B(strArray[i] + strArray[i + 1]); |
|
|
|
i += 2; |
|
|
|
i += 2; |
|
|
|
attrs = data & 0xFF; |
|
|
|
attrs = data & 0xFF; |
|
|
|
break; |
|
|
|
break; |
|
|
|
|
|
|
|
|
|
|
|
case SEQ_REPEAT: |
|
|
|
case SEQ_REPEAT: |
|
|
|
count = parse2B(strArr[i]+strArr[i+1]); |
|
|
|
let count = parse2B(strArray[i] + strArray[i + 1]); |
|
|
|
i += 2; |
|
|
|
i += 2; |
|
|
|
for (let j = 0; j < count; j++) { |
|
|
|
for (let j = 0; j < count; j++) { |
|
|
|
this.screen[cell] = lastChar; |
|
|
|
this.screen[cell] = lastChar; |
|
|
|