# HG changeset patch # User Jonas Hultén # Date 1599920723 -7200 # Sat Sep 12 16:25:23 2020 +0200 # Branch develop # Node ID 39bdd8df116ecff77e094ec07b64065f7a64699f # Parent ce3500dd672686fe31b606f052a9db940d65d667 Added 7 bit ascii conversion format. diff --git a/jasm/docs/jasm.md b/jasm/docs/jasm.md --- a/jasm/docs/jasm.md +++ b/jasm/docs/jasm.md @@ -2055,16 +2055,20 @@ Comment + ascii7 + 7 bit ascii format. + + petscii The character set used in Commodore 8 bit computers. zx80 - + Sinclair specific character set. zx81 - + Sinclair specific character set. diff --git a/jasm/strings/string_conversions.cpp b/jasm/strings/string_conversions.cpp --- a/jasm/strings/string_conversions.cpp +++ b/jasm/strings/string_conversions.cpp @@ -29,6 +29,7 @@ std::string_view("petscii"), std::string_view("zx80"), std::string_view("zx81"), + std::string_view("ascii7"), }; const std::string_view StringConversions::_subformats[static_cast(StringConversions::SubFormat::NumFormats)] = { @@ -59,6 +60,7 @@ _conversions.insert(format_hash(Format::Petscii, SubFormat::UppercaseScreen, Locale::English)); _conversions.insert(format_hash(Format::ZX80, SubFormat::Default, Locale::English)); _conversions.insert(format_hash(Format::ZX81, SubFormat::Default, Locale::English)); + _conversions.insert(format_hash(Format::Ascii7, SubFormat::Default, Locale::English)); { // fill petascii lowercase @@ -388,6 +390,13 @@ ConversionMap &map = _conversions.at(format_hash(Format::ZX81, SubFormat::Default, Locale::English)); add_characters(conversions, map); } + + { + ConversionMap &map = _conversions.at(format_hash(Format::Ascii7, SubFormat::Default, Locale::English)); + for(wchar_t c = L'\x0'; c < L'\x80'; ++c) { + map[c] = c; + } + } } template diff --git a/jasm/strings/string_conversions.h b/jasm/strings/string_conversions.h --- a/jasm/strings/string_conversions.h +++ b/jasm/strings/string_conversions.h @@ -27,6 +27,7 @@ Petscii, ZX80, ZX81, + Ascii7, NumFormats, Invalid = NumFormats, }; diff --git a/jasm/unit_tests/results/test_string_conversion_ascii_7.bin b/jasm/unit_tests/results/test_string_conversion_ascii_7.bin new file mode 100644 --- /dev/null +++ b/jasm/unit_tests/results/test_string_conversion_ascii_7.bin @@ -0,0 +1,1 @@ +!#$abcABà \ No newline at end of file diff --git a/jasm/unit_tests/test_string_conversion_ascii_7.asm b/jasm/unit_tests/test_string_conversion_ascii_7.asm new file mode 100644 --- /dev/null +++ b/jasm/unit_tests/test_string_conversion_ascii_7.asm @@ -0,0 +1,8 @@ +// assembler command line arguments: 6502 [-v0] + +section code, "main", 0 +{ + define byte[] = { + string("!#$abcABC", "ascii7", "high_bit_term") + } +} \ No newline at end of file diff --git a/jasm/website/site/docs/index.html b/jasm/website/site/docs/index.html --- a/jasm/website/site/docs/index.html +++ b/jasm/website/site/docs/index.html @@ -2157,16 +2157,20 @@ Comment + ascii7 + 7 bit ascii format. + + petscii The character set used in Commodore 8 bit computers. zx80 - + Sinclair specific character set. zx81 - + Sinclair specific character set.