M .hgtags +2 -0
@@ 7,3 7,5 @@ fd2e5ddd8245bd2bf536a8314b8e0da74e931fd9
623723ab9e348d44e09f6abd6a8d27bb2332831a version_1.28
97c4baa181af787fe7da475556ebc5e4f6d89610 version_1.29
5a17bdbc9b0761db92c0c7700e7a84617703aa5f version_1.30
+58e017b2030419a730ce66cb0524232d41f6de3c version_1.31
+538d4f5eabab5ba345f83a24bc81d05848dfe520 version_1.32
M core/core/json/json_reader.cpp +14 -15
@@ 111,22 111,22 @@ namespace core { namespace json {
void Reader::read_and_buffer_encoded_char() {
read_next_char();
- if (_char == 'u') {
+ if (_char == L'u') {
read_and_buffer_hex();
return;
}
- if (_char == '"' || _char == '\\' || _char == '/') {
+ if (_char == L'"' || _char == L'\\' || _char == L'/') {
- } else if (_char == 'b') {
+ } else if (_char == L'b') {
_char = 8;
- } else if (_char == 'f') {
+ } else if (_char == L'f') {
_char = 12;
- } else if (_char == 'n') {
+ } else if (_char == L'n') {
_char = 10;
- } else if (_char == 'r') {
+ } else if (_char == L'r') {
_char = 13;
- } else if (_char == 't') {
+ } else if (_char == L't') {
_char = 9;
} else {
generate_parse_error("Invalid character following \\ in a string.");
@@ 173,8 173,7 @@ namespace core { namespace json {
}
void Reader::buffer_wide_character(uint32_t wide_char) {
- static_assert(sizeof(uint32_t) == sizeof(wchar_t), "Wide character is assumed to be 32-bit");
- _char = wide_char;
+ _char = static_cast<wchar_t>(wide_char);
buffer_character();
}
@@ 195,8 194,8 @@ namespace core { namespace json {
while(true) {
read_next_char();
if (is_digit()) {
- number = number * 10 + (_char - '0');
- } else if (_char == 'e' || _char == '.') {
+ number = number * 10 + (_char - L'0');
+ } else if (_char == L'e' || _char == L'.') {
unread_char();
parse_float = true;
break;
@@ 224,7 223,7 @@ namespace core { namespace json {
void Reader::parse_decimal(int32_t integer, bool negative, float &number) {
read_next_char();
- if (_char == 'e') {
+ if (_char == L'e') {
float exponent = 0.0f;
parse_exponent(exponent);
number = static_cast<float>(integer) * powf(10.0f, exponent);
@@ 237,8 236,8 @@ namespace core { namespace json {
while(true) {
read_next_char();
if (is_digit()) {
- decimals += multiplier * (_char - '0');
- } else if (_char == 'e') {
+ decimals += multiplier * (_char - L'0');
+ } else if (_char == L'e') {
float exponent = 0.0f;
parse_exponent(exponent);
@@ 284,7 283,7 @@ namespace core { namespace json {
bool Reader::is_negative_number() {
peek_next_char();
- if (_char == '-') {
+ if (_char == L'-') {
read_next_char();
return true;
}
M jasm/CMakeLists.txt +2 -2
@@ 27,8 27,8 @@ add_executable(jasm ${jasm_src})
if (${MINGW})
add_custom_command(TARGET jasm POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libgcc_s_seh-1.dll" $<TARGET_FILE_DIR:jasm>
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libstdc++-6.dll" $<TARGET_FILE_DIR:jasm>
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "/usr/lib/gcc/x86_64-w64-mingw32/10-win32/libgcc_s_seh-1.dll" $<TARGET_FILE_DIR:jasm>
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different "/usr/lib/gcc/x86_64-w64-mingw32/10-win32/libstdc++-6.dll" $<TARGET_FILE_DIR:jasm>
)
endif()
M jasm/version.h +1 -1
@@ 1,1 1,1 @@
-1,31
+1,32
M jasm/website/site/index.html +17 -2
@@ 121,10 121,10 @@
<h1>The Binaries</h1>
<ul>
<li>
- <a href="binaries/jasm_1.31_linux64.7z">jAsm 1.31 for 64-bit Linux</a>
+ <a href="binaries/jasm_1.32_linux64.7z">jAsm 1.32 for 64-bit Linux</a>
</li>
<li>
- <a href="binaries/jasm_1.31_win64.7z">jAsm 1.31 for 64-bit Windows</a>
+ <a href="binaries/jasm_1.32_win64.7z">jAsm 1.32 for 64-bit Windows</a>
</li>
</ul>
<h1>The Source</h1>
@@ 139,6 139,21 @@
<h1>Version History</h1>
<ul>
<li>
+ 1.32
+ <ul>
+ <li>JSON import function.</li>
+ <li>Break statement for loops.</li>
+ <li>Optional argument to the BRK instruction.</li>
+ <li>Arithmetic shift right operator.</li>
+ <li>Shifts supports negative values.</li>
+ <li>Assignment add for strings.</li>
+ <li>Loop over characters in a string using range for.</li>
+ <li>min() and max() functions can take a list argument.</li>
+ <li>Fix for a bug that accepted null characters in include files.</li>
+ <li>"petscii" conversion format has been replaced with "pet", "pet2001", "vic20", "c16", "plus4", "c64" and "c128".</li>
+ </ul>
+ </li>
+ <li>
1.31
<ul>
<li>Fixed a serious bug where 16 bit branches in 65ce02 and 45gs02 jumped to the wrong address.</li>
M release.py +1 -1
@@ 55,7 55,7 @@ def build_mingw(version):
if error_code != 0:
raise Exception("Failed to compress")
os.chdir("..")
- error_code = run(["7z", "a", "../jasm/website/site/binaries/jasm_%s_win64.7z" % version, "/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libgcc_s_seh-1.dll", "/usr/lib/gcc/x86_64-w64-mingw32/9.3-win32/libstdc++-6.dll"])
+ error_code = run(["7z", "a", "../jasm/website/site/binaries/jasm_%s_win64.7z" % version, "/usr/lib/gcc/x86_64-w64-mingw32/10-win32/libgcc_s_seh-1.dll", "/usr/lib/gcc/x86_64-w64-mingw32/10-win32/libstdc++-6.dll"])
if error_code != 0:
raise Exception("Failed to compress")
finally: