mirror of
https://github.com/irmen/prog8.git
synced 2024-11-29 17:50:35 +00:00
added petscii mappings for ^, _, \, {, } and |
This commit is contained in:
parent
a086d6e009
commit
42033ebd35
@ -172,7 +172,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0xA1 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0xA1 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0xA2 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0xA2 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0xA3 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0xA3 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0xA4 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0xA4 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0xA5 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0xA5 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0xA6 -> MEDIUM SHADE
|
'\u2592', // ▒ 0xA6 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0xA7 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0xA7 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -236,7 +236,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0xE1 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0xE1 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0xE2 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0xE2 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0xE3 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0xE3 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0xE4 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0xE4 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0xE5 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0xE5 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0xE6 -> MEDIUM SHADE
|
'\u2592', // ▒ 0xE6 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0xE7 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0xE7 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -431,7 +431,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0xA1 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0xA1 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0xA2 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0xA2 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0xA3 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0xA3 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0xA4 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0xA4 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0xA5 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0xA5 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0xA6 -> MEDIUM SHADE
|
'\u2592', // ▒ 0xA6 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0xA7 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0xA7 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -495,7 +495,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0xE1 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0xE1 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0xE2 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0xE2 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0xE3 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0xE3 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0xE4 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0xE4 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0xE5 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0xE5 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0xE6 -> MEDIUM SHADE
|
'\u2592', // ▒ 0xE6 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0xE7 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0xE7 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -626,7 +626,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0x61 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0x61 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0x62 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0x62 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0x63 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0x63 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0x64 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0x64 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0x65 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0x65 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0x66 -> MEDIUM SHADE
|
'\u2592', // ▒ 0x66 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0x67 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0x67 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -885,7 +885,7 @@ object Petscii {
|
|||||||
'\u258c', // ▌ 0x61 -> LEFT HALF BLOCK
|
'\u258c', // ▌ 0x61 -> LEFT HALF BLOCK
|
||||||
'\u2584', // ▄ 0x62 -> LOWER HALF BLOCK
|
'\u2584', // ▄ 0x62 -> LOWER HALF BLOCK
|
||||||
'\u2594', // ▔ 0x63 -> UPPER ONE EIGHTH BLOCK
|
'\u2594', // ▔ 0x63 -> UPPER ONE EIGHTH BLOCK
|
||||||
'_', // ▁ 0x64 -> LOWER ONE EIGHTH BLOCK
|
'\u2581', // ▁ 0x64 -> LOWER ONE EIGHTH BLOCK
|
||||||
'\u258f', // ▏ 0x65 -> LEFT ONE EIGHTH BLOCK
|
'\u258f', // ▏ 0x65 -> LEFT ONE EIGHTH BLOCK
|
||||||
'\u2592', // ▒ 0x66 -> MEDIUM SHADE
|
'\u2592', // ▒ 0x66 -> MEDIUM SHADE
|
||||||
'\u2595', // ▕ 0x67 -> RIGHT ONE EIGHTH BLOCK
|
'\u2595', // ▕ 0x67 -> RIGHT ONE EIGHTH BLOCK
|
||||||
@ -1049,9 +1049,21 @@ object Petscii {
|
|||||||
private val encodingScreencodeLowercase = decodingScreencodeLowercase.withIndex().associate{it.value to it.index}
|
private val encodingScreencodeLowercase = decodingScreencodeLowercase.withIndex().associate{it.value to it.index}
|
||||||
private val encodingScreencodeUppercase = decodingScreencodeUppercase.withIndex().associate{it.value to it.index}
|
private val encodingScreencodeUppercase = decodingScreencodeUppercase.withIndex().associate{it.value to it.index}
|
||||||
|
|
||||||
|
private fun replaceSpecial(chr: Char): Char =
|
||||||
|
// characters often used in C like source code can be translated with a little bit of fantasy:
|
||||||
|
when(chr) {
|
||||||
|
'^' -> '↑'
|
||||||
|
'_' -> '▁'
|
||||||
|
'{' -> '┤'
|
||||||
|
'}' -> '├'
|
||||||
|
'|' -> '│'
|
||||||
|
'\\' -> '╲'
|
||||||
|
else -> chr
|
||||||
|
}
|
||||||
|
|
||||||
fun encodePetscii(text: String, lowercase: Boolean = false): List<Short> {
|
fun encodePetscii(text: String, lowercase: Boolean = false): List<Short> {
|
||||||
fun encodeChar(chr: Char, lowercase: Boolean): Short {
|
fun encodeChar(chr3: Char, lowercase: Boolean): Short {
|
||||||
|
val chr = replaceSpecial(chr3)
|
||||||
val screencode = if(lowercase) encodingPetsciiLowercase[chr] else encodingPetsciiUppercase[chr]
|
val screencode = if(lowercase) encodingPetsciiLowercase[chr] else encodingPetsciiUppercase[chr]
|
||||||
return screencode?.toShort() ?: when (chr) {
|
return screencode?.toShort() ?: when (chr) {
|
||||||
'\u0000' -> 0.toShort()
|
'\u0000' -> 0.toShort()
|
||||||
@ -1087,7 +1099,8 @@ object Petscii {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun encodeScreencode(text: String, lowercase: Boolean = false): List<Short> {
|
fun encodeScreencode(text: String, lowercase: Boolean = false): List<Short> {
|
||||||
fun encodeChar(chr: Char, lowercase: Boolean): Short {
|
fun encodeChar(chr3: Char, lowercase: Boolean): Short {
|
||||||
|
val chr = replaceSpecial(chr3)
|
||||||
val screencode = if(lowercase) encodingScreencodeLowercase[chr] else encodingScreencodeUppercase[chr]
|
val screencode = if(lowercase) encodingScreencodeLowercase[chr] else encodingScreencodeUppercase[chr]
|
||||||
return screencode?.toShort() ?: when (chr) {
|
return screencode?.toShort() ?: when (chr) {
|
||||||
'\u0000' -> 0.toShort()
|
'\u0000' -> 0.toShort()
|
||||||
|
@ -4,16 +4,13 @@
|
|||||||
|
|
||||||
main {
|
main {
|
||||||
|
|
||||||
blocklabel:
|
|
||||||
|
|
||||||
sub start() {
|
sub start() {
|
||||||
|
txt.print("^\n")
|
||||||
label1:
|
txt.print("_\n")
|
||||||
ubyte xx=99
|
txt.print("{\n")
|
||||||
if 0==xx {
|
txt.print("}\n")
|
||||||
txt.print("fout")
|
txt.print("|\n")
|
||||||
}
|
txt.print("\\\n")
|
||||||
txt.print("loading ")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user