diff --git a/codeOptimizers/src/prog8/optimizer/ConstExprEvaluator.kt b/codeOptimizers/src/prog8/optimizer/ConstExprEvaluator.kt index 560396989..3910cca6b 100644 --- a/codeOptimizers/src/prog8/optimizer/ConstExprEvaluator.kt +++ b/codeOptimizers/src/prog8/optimizer/ConstExprEvaluator.kt @@ -252,7 +252,7 @@ class ConstExprEvaluator { return when(call.target.nameInSource[0]) { "math" -> evalMath(call, constArgs) "floats" -> evalFloats(call, constArgs) - "string" -> evalString(call, constArgs) + "strings" -> evalString(call, constArgs) else -> null } } diff --git a/codeOptimizers/src/prog8/optimizer/ExpressionSimplifier.kt b/codeOptimizers/src/prog8/optimizer/ExpressionSimplifier.kt index be2bdf7f5..4dd5dce32 100644 --- a/codeOptimizers/src/prog8/optimizer/ExpressionSimplifier.kt +++ b/codeOptimizers/src/prog8/optimizer/ExpressionSimplifier.kt @@ -546,7 +546,7 @@ class ExpressionSimplifier(private val program: Program, private val errors: IEr return listOf(IAstModification.ReplaceNode(functionCallExpr, cast, parent)) } } - else if(functionCallExpr.target.nameInSource == listOf("string", "contains")) { + else if(functionCallExpr.target.nameInSource == listOf("strings", "contains")) { val target = (functionCallExpr.args[0] as? IdentifierReference)?.targetVarDecl(program) if(target?.value is StringLiteral) { errors.info("for actual strings, use a regular containment check instead: 'char in string'", functionCallExpr.position) diff --git a/compiler/res/prog8lib/cx16/diskio.p8 b/compiler/res/prog8lib/cx16/diskio.p8 index 5897c232a..b2032c643 100644 --- a/compiler/res/prog8lib/cx16/diskio.p8 +++ b/compiler/res/prog8lib/cx16/diskio.p8 @@ -13,7 +13,7 @@ %import textio %import conv -%import string +%import strings %import syslib diskio { @@ -163,7 +163,7 @@ io_error: if lf_start_list(pattern_ptr) { while lf_next_entry() { if list_filetype!="dir" { - filenames_buffer += string.copy(list_filename, filenames_buffer) + 1 + filenames_buffer += strings.copy(list_filename, filenames_buffer) + 1 files_found++ if filenames_buffer - buffer_start > filenames_buf_size-20 { @(filenames_buffer)=0 @@ -265,7 +265,7 @@ io_error: if not list_skip_disk_name { if list_pattern==0 return true - if string.pattern_match(list_filename, list_pattern) + if strings.pattern_match(list_filename, list_pattern) return true } list_skip_disk_name = false @@ -297,7 +297,7 @@ close_end: ; if you're going to read from it yourself instead of using f_read()! f_close() - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) cbm.SETLFS(READ_IO_CHANNEL, drivenumber, READ_IO_CHANNEL) ; note: has to be Channel,x,Channel because otherwise f_seek doesn't work void cbm.OPEN() ; open 12,8,12,"filename" if_cc { @@ -457,7 +457,7 @@ _end jsr cbm.READST modifier[3] = 'w' if open_for_seeks modifier[3] = 'm' - cx16.r0L = string.append(list_filename, modifier) ; secondary 13 requires a mode suffix to signal we're writing/modifying + cx16.r0L = strings.append(list_filename, modifier) ; secondary 13 requires a mode suffix to signal we're writing/modifying cbm.SETNAM(cx16.r0L, list_filename) cbm.SETLFS(WRITE_IO_CHANNEL, drivenumber, WRITE_IO_CHANNEL) void cbm.OPEN() ; open 13,8,13,"filename" @@ -519,7 +519,7 @@ no_mciout: str device_not_present_error = "device not present #xx" if cbm.READST()==128 { device_not_present_error[len(device_not_present_error)-2] = 0 - void string.copy(conv.str_ub(drivenumber), &device_not_present_error+len(device_not_present_error)-2) + void strings.copy(conv.str_ub(drivenumber), &device_not_present_error+len(device_not_present_error)-2) return device_not_present_error } @@ -596,7 +596,7 @@ io_error: } sub internal_save_routine(uword filenameptr, uword startaddress, uword savesize, bool headerless) -> bool { - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) cbm.SETLFS(1, drivenumber, 0) uword @shared end_address = startaddress + savesize cx16.r0L = 0 @@ -651,7 +651,7 @@ io_error: sub internal_load_routine(uword filenameptr, uword address_override, bool headerless) -> uword { - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) ubyte secondary = 1 cx16.r1 = 0 if address_override!=0 @@ -677,7 +677,7 @@ io_error: ; -- delete a file on the drive list_filename[0] = 's' list_filename[1] = ':' - ubyte flen = string.copy(filenameptr, &list_filename+2) + ubyte flen = strings.copy(filenameptr, &list_filename+2) cbm.SETNAM(flen+2, list_filename) cbm.SETLFS(1, drivenumber, 15) void cbm.OPEN() @@ -689,9 +689,9 @@ io_error: ; -- rename a file on the drive list_filename[0] = 'r' list_filename[1] = ':' - ubyte flen_new = string.copy(newfileptr, &list_filename+2) + ubyte flen_new = strings.copy(newfileptr, &list_filename+2) list_filename[flen_new+2] = '=' - ubyte flen_old = string.copy(oldfileptr, &list_filename+3+flen_new) + ubyte flen_old = strings.copy(oldfileptr, &list_filename+3+flen_new) cbm.SETNAM(3+flen_new+flen_old, list_filename) cbm.SETLFS(1, drivenumber, 15) void cbm.OPEN() @@ -701,7 +701,7 @@ io_error: sub send_command(uword commandptr) { ; -- send a dos command to the drive (don't read any response) - cbm.SETNAM(string.length(commandptr), commandptr) + cbm.SETNAM(strings.length(commandptr), commandptr) cbm.SETLFS(15, drivenumber, 15) void cbm.OPEN() cbm.CLRCHN() @@ -776,7 +776,7 @@ internal_vload: list_filename[0] = 'c' list_filename[1] = 'd' list_filename[2] = ':' - void string.copy(path, &list_filename+3) + void strings.copy(path, &list_filename+3) send_command(list_filename) } @@ -785,19 +785,19 @@ internal_vload: list_filename[0] = 'm' list_filename[1] = 'd' list_filename[2] = ':' - void string.copy(name, &list_filename+3) + void strings.copy(name, &list_filename+3) send_command(list_filename) } sub rmdir(str name) { ; -- remove a subdirectory. - void string.find(name, '*') + void strings.find(name, '*') if_cs return ; refuse to act on a wildcard * list_filename[0] = 'r' list_filename[1] = 'd' list_filename[2] = ':' - void string.copy(name, &list_filename+3) + void strings.copy(name, &list_filename+3) send_command(list_filename) } @@ -860,7 +860,7 @@ io_error: sub prepend(str dir) { if dir[0]=='/' and dir[1]==0 return - cx16.r9L = string.length(dir) + cx16.r9L = strings.length(dir) cx16.r12 -= cx16.r9L sys.memcopy(dir, cx16.r12, cx16.r9L) cx16.r12-- @@ -874,7 +874,7 @@ io_error: list_filename[1] = '-' list_filename[2] = 'h' list_filename[3] = ':' - void string.copy(name, &list_filename+4) + void strings.copy(name, &list_filename+4) send_command(list_filename) } diff --git a/compiler/res/prog8lib/shared_cbm_diskio.p8 b/compiler/res/prog8lib/shared_cbm_diskio.p8 index a29720377..2bc35646a 100644 --- a/compiler/res/prog8lib/shared_cbm_diskio.p8 +++ b/compiler/res/prog8lib/shared_cbm_diskio.p8 @@ -2,7 +2,7 @@ %import textio %import conv -%import string +%import strings %import syslib diskio { @@ -141,7 +141,7 @@ io_error: if lf_start_list(pattern_ptr) { while lf_next_entry() { if list_filetype!="dir" { - filenames_buffer += string.copy(list_filename, filenames_buffer) + 1 + filenames_buffer += strings.copy(list_filename, filenames_buffer) + 1 files_found++ if filenames_buffer - buffer_start > filenames_buf_size-20 { @(filenames_buffer)=0 @@ -243,7 +243,7 @@ io_error: if not list_skip_disk_name { if list_pattern==0 return true - if string.pattern_match(list_filename, list_pattern) + if strings.pattern_match(list_filename, list_pattern) return true } list_skip_disk_name = false @@ -275,7 +275,7 @@ close_end: ; if you're going to read from it yourself instead of using f_read()! f_close() - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) cbm.SETLFS(READ_IO_CHANNEL, drivenumber, READ_IO_CHANNEL) ; note: has to be Channel,x,Channel because otherwise f_seek doesn't work void cbm.OPEN() ; open 12,8,12,"filename" if_cc { @@ -398,7 +398,7 @@ _end jsr cbm.READST ; and check the drive's status message! f_close_w() - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) cbm.SETLFS(WRITE_IO_CHANNEL, drivenumber, 1) void cbm.OPEN() ; open 13,8,1,"filename" if_cc { @@ -444,7 +444,7 @@ _end jsr cbm.READST str device_not_present_error = "device not present #xx" if cbm.READST()==128 { device_not_present_error[len(device_not_present_error)-2] = 0 - void string.copy(conv.str_ub(drivenumber), &device_not_present_error+len(device_not_present_error)-2) + void strings.copy(conv.str_ub(drivenumber), &device_not_present_error+len(device_not_present_error)-2) return device_not_present_error } uword messageptr = &list_filename @@ -508,7 +508,7 @@ io_error: } sub save(uword filenameptr, uword start_address, uword savesize) -> bool { - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) cbm.SETLFS(1, drivenumber, 0) uword @shared end_address = start_address + savesize cx16.r0L = 0 @@ -539,7 +539,7 @@ io_error: ; and the rest is loaded at the given location in memory. ; Returns the end load address+1 if successful or 0 if a load error occurred. sub load(uword filenameptr, uword address_override) -> uword { - cbm.SETNAM(string.length(filenameptr), filenameptr) + cbm.SETNAM(strings.length(filenameptr), filenameptr) ubyte secondary = 1 cx16.r1 = 0 if address_override!=0 @@ -578,7 +578,7 @@ io_error: ; -- delete a file on the drive list_filename[0] = 's' list_filename[1] = ':' - ubyte flen = string.copy(filenameptr, &list_filename+2) + ubyte flen = strings.copy(filenameptr, &list_filename+2) cbm.SETNAM(flen+2, list_filename) cbm.SETLFS(1, drivenumber, 15) void cbm.OPEN() @@ -590,9 +590,9 @@ io_error: ; -- rename a file on the drive list_filename[0] = 'r' list_filename[1] = ':' - ubyte flen_new = string.copy(newfileptr, &list_filename+2) + ubyte flen_new = strings.copy(newfileptr, &list_filename+2) list_filename[flen_new+2] = '=' - ubyte flen_old = string.copy(oldfileptr, &list_filename+3+flen_new) + ubyte flen_old = strings.copy(oldfileptr, &list_filename+3+flen_new) cbm.SETNAM(3+flen_new+flen_old, list_filename) cbm.SETLFS(1, drivenumber, 15) void cbm.OPEN() @@ -611,7 +611,7 @@ io_error: sub send_command(uword commandptr) { ; -- send a dos command to the drive - cbm.SETNAM(string.length(commandptr), commandptr) + cbm.SETNAM(strings.length(commandptr), commandptr) cbm.SETLFS(15, drivenumber, 15) void cbm.OPEN() cbm.CLRCHN() diff --git a/compiler/res/prog8lib/shared_string_functions.p8 b/compiler/res/prog8lib/shared_string_functions.p8 index 28b1441ec..5e61b96f3 100644 --- a/compiler/res/prog8lib/shared_string_functions.p8 +++ b/compiler/res/prog8lib/shared_string_functions.p8 @@ -1,4 +1,4 @@ -string { +strings { ; the string functions shared across compiler targets %option merge, no_symbol_prefixing, ignore_unused @@ -12,11 +12,11 @@ string { ; -- gets rid of whitespace and other non-visible characters at the end of the string if s[0]==0 return - cx16.r0L = string.length(s) + cx16.r0L = length(s) do { cx16.r0L-- cx16.r1L = s[cx16.r0L] - } until cx16.r0L==0 or string.isprint(cx16.r1L) and not string.isspace(cx16.r1L) + } until cx16.r0L==0 or isprint(cx16.r1L) and not isspace(cx16.r1L) s[cx16.r0L+1] = 0 } @@ -24,7 +24,7 @@ string { ; -- gets rid of whitespace and other non-visible characters at the start of the string (destructive) cx16.r0 = lstripped(s) if cx16.r0 != s - void string.copy(cx16.r0, s) + void copy(cx16.r0, s) } sub lstripped(str s) -> str { @@ -35,7 +35,7 @@ string { do { cx16.r0L++ cx16.r1L = s[cx16.r0L] - } until cx16.r1L==0 or string.isprint(cx16.r1L) and not string.isspace(cx16.r1L) + } until cx16.r1L==0 or isprint(cx16.r1L) and not isspace(cx16.r1L) return s+cx16.r0L } @@ -49,11 +49,11 @@ string { ; -- gets rid of whitespace characters at the end of the string if s[0]==0 return - cx16.r0L = string.length(s) + cx16.r0L = length(s) do { cx16.r0L-- cx16.r1L = s[cx16.r0L] - } until cx16.r0L==0 or not string.isspace(cx16.r1L) + } until cx16.r0L==0 or not isspace(cx16.r1L) s[cx16.r0L+1] = 0 } @@ -61,7 +61,7 @@ string { ; -- gets rid of whitespace characters at the start of the string (destructive) cx16.r0 = ltrimmed(s) if cx16.r0 != s - void string.copy(cx16.r0, s) + void copy(cx16.r0, s) } sub ltrimmed(str s) -> str { @@ -72,41 +72,41 @@ string { do { cx16.r0L++ cx16.r1L = s[cx16.r0L] - } until not string.isspace(cx16.r1L) + } until not isspace(cx16.r1L) return s+cx16.r0L } sub startswith(str st, str prefix) -> bool { - ubyte prefix_len = string.length(prefix) - ubyte str_len = string.length(st) + ubyte prefix_len = length(prefix) + ubyte str_len = length(st) if prefix_len > str_len return false cx16.r9L = st[prefix_len] st[prefix_len] = 0 - cx16.r9H = string.compare(st, prefix) as ubyte + cx16.r9H = compare(st, prefix) as ubyte st[prefix_len] = cx16.r9L return cx16.r9H==0 } sub endswith(str st, str suffix) -> bool { - ubyte suffix_len = string.length(suffix) - ubyte str_len = string.length(st) + ubyte suffix_len = length(suffix) + ubyte str_len = length(st) if suffix_len > str_len return false - return string.compare(st + str_len - suffix_len, suffix) == 0 + return compare(st + str_len - suffix_len, suffix) == 0 } sub findstr(str haystack, str needle) -> ubyte { ; searches for needle in haystack. ; returns index in haystack where it first occurs, and Carry set, ; or if needle doesn't occur in haystack it returns Carry clear and 255 (an invalid index.) - cx16.r2L = string.length(haystack) - cx16.r3L = string.length(needle) + cx16.r2L = length(haystack) + cx16.r3L = length(needle) if cx16.r3L <= cx16.r2L { cx16.r2L = cx16.r2L-cx16.r3L+1 cx16.r3 = haystack repeat cx16.r2L { - if string.startswith(cx16.r3, needle) { + if startswith(cx16.r3, needle) { sys.set_carry() return cx16.r3-haystack as ubyte } diff --git a/compiler/res/prog8lib/string.p8 b/compiler/res/prog8lib/strings.p8 similarity index 99% rename from compiler/res/prog8lib/string.p8 rename to compiler/res/prog8lib/strings.p8 index 447f7f0a0..d6dc22b17 100644 --- a/compiler/res/prog8lib/string.p8 +++ b/compiler/res/prog8lib/strings.p8 @@ -2,7 +2,7 @@ %import shared_string_functions -string { +strings { %option no_symbol_prefixing, ignore_unused asmsub length(uword string @AY) clobbers(A) -> ubyte @Y { @@ -60,7 +60,7 @@ _loop dey stx P8ZP_SCRATCH_B1 sta cx16.r0 sty cx16.r0+1 - jsr string.length + jsr length tya sec sbc P8ZP_SCRATCH_B1 @@ -158,7 +158,7 @@ _found tya stx P8ZP_SCRATCH_B1 sta _str sty _str+1 - jsr string.length + jsr length dey lda _str sta P8ZP_SCRATCH_W1 diff --git a/compiler/res/prog8lib/virtual/string.p8 b/compiler/res/prog8lib/virtual/strings.p8 similarity index 96% rename from compiler/res/prog8lib/virtual/string.p8 rename to compiler/res/prog8lib/virtual/strings.p8 index 8d9d37cec..95af20007 100644 --- a/compiler/res/prog8lib/virtual/string.p8 +++ b/compiler/res/prog8lib/virtual/strings.p8 @@ -2,7 +2,7 @@ %import shared_string_functions -string { +strings { %option ignore_unused sub length(str st) -> ubyte { @@ -73,7 +73,7 @@ string { ; returns Carry set if found + index in A, or Carry clear if not found (and A will be 255, an invalid index). ; NOTE: because this isn't an asmsub, there's only a SINGLE return value here. On the c64/cx16 targets etc there are 2 return values. ubyte ix - for ix in string.length(stringptr)-1 downto 0 { + for ix in length(stringptr)-1 downto 0 { if stringptr[ix]==character { sys.set_carry() return ix @@ -96,8 +96,8 @@ string { ; Often you don’t have to call this explicitly and can just write string1 = string2 ; but this function is useful if you’re dealing with addresses for instance. %ir {{ - loadm.w r65534,string.copy.source - loadm.w r65535,string.copy.target + loadm.w r65534,strings.copy.source + loadm.w r65535,strings.copy.target syscall 39 (r65534.w, r65535.w): r0.b returnr.b r0 }} @@ -116,8 +116,8 @@ string { ; Note that you can also directly compare strings and string values with eachother using ; comparison operators ==, < etcetera (this will use strcmp automatically). %ir {{ - loadm.w r65534,string.compare.st1 - loadm.w r65535,string.compare.st2 + loadm.w r65534,strings.compare.st1 + loadm.w r65535,strings.compare.st2 syscall 16 (r65534.w, r65535.w) : r0.b returnr.b r0 }} diff --git a/compiler/src/prog8/compiler/BuiltinFunctions.kt b/compiler/src/prog8/compiler/BuiltinFunctions.kt index 132668795..6b34eb897 100644 --- a/compiler/src/prog8/compiler/BuiltinFunctions.kt +++ b/compiler/src/prog8/compiler/BuiltinFunctions.kt @@ -109,7 +109,7 @@ private fun builtinSizeof(args: List, position: Position, program: P val elementDt = ArrayToElementTypes.getValue(dt.getOr(DataType.UNDEFINED)) NumericLiteral.optimalInteger(program.memsizer.memorySize(elementDt) * length, position) } - dt istype DataType.STR -> throw SyntaxError("sizeof(str) is undefined, did you mean len, or perhaps string.length?", position) + dt istype DataType.STR -> throw SyntaxError("sizeof(str) is undefined, did you mean len, or perhaps strings.length?", position) else -> NumericLiteral(DataType.UBYTE, program.memsizer.memorySize(dt.getOr(DataType.UNDEFINED)).toDouble(), position) } } else { diff --git a/compiler/src/prog8/compiler/ModuleImporter.kt b/compiler/src/prog8/compiler/ModuleImporter.kt index b088ce613..c09ff13fc 100644 --- a/compiler/src/prog8/compiler/ModuleImporter.kt +++ b/compiler/src/prog8/compiler/ModuleImporter.kt @@ -97,7 +97,10 @@ class ModuleImporter(private val program: Program, importModule(it) }, failure = { - errors.err("no module found with name $moduleName. Searched in: $sourcePaths (and internal libraries)", import.position) + if(moduleName=="string") + errors.err("the 'string' module is now named 'strings'", import.position) + else + errors.err("no module found with name $moduleName. Searched in: $sourcePaths (and internal libraries)", import.position) return null } ) diff --git a/compiler/src/prog8/compiler/astprocessing/AstChecker.kt b/compiler/src/prog8/compiler/astprocessing/AstChecker.kt index 0a73314ce..102f05320 100644 --- a/compiler/src/prog8/compiler/astprocessing/AstChecker.kt +++ b/compiler/src/prog8/compiler/astprocessing/AstChecker.kt @@ -1989,7 +1989,7 @@ internal class AstChecker(private val program: Program, } else if(targetDatatype==DataType.STR) { if(sourceDatatype==DataType.UWORD) - errors.err("can't assign UWORD to STR. If the source is a string and you actually want to overwrite the target string, use an explicit string.copy(src,tgt) instead.", position) + errors.err("can't assign UWORD to STR. If the source is a string and you actually want to overwrite the target string, use an explicit strings.copy(src,tgt) instead.", position) else errors.err("type of value $sourceDatatype doesn't match target $targetDatatype", position) } diff --git a/compiler/test/arithmetic/aggregates.p8 b/compiler/test/arithmetic/aggregates.p8 index f67c64325..4eff7cdd5 100644 --- a/compiler/test/arithmetic/aggregates.p8 +++ b/compiler/test/arithmetic/aggregates.p8 @@ -1,6 +1,6 @@ %import floats %import textio -%import string +%import strings %import anyall %zeropage basicsafe @@ -24,10 +24,10 @@ main { if length!=5 txt.print("error len1\n") length = len(uwarr) if length!=5 txt.print("error len2\n") - length=string.length(name) + length=strings.length(name) if length!=5 txt.print("error strlen1\n") name[3] = 0 - length=string.length(name) + length=strings.length(name) if length!=3 txt.print("error strlen2\n") ; ANY diff --git a/compiler/test/arithmetic/bitshift.p8ir b/compiler/test/arithmetic/bitshift.p8ir deleted file mode 100644 index c2c57c744..000000000 --- a/compiler/test/arithmetic/bitshift.p8ir +++ /dev/null @@ -1,2886 +0,0 @@ - - - -compTarget=virtual -output=PRG -launcher=BASIC -zeropage=BASICSAFE -loadAddress=0 -optimize=true -outputDir=/home/irmen/Projects/prog8/compiler/test/arithmetic - - - - - -ubyte main.start.a zp=DONTCARE -byte main.start.signedb zp=DONTCARE -uword main.start.uw zp=DONTCARE -word main.start.sw zp=DONTCARE -uword main.shiftruw0.q zp=DONTCARE -uword main.shiftruw1.q zp=DONTCARE -uword main.shiftruw2.q zp=DONTCARE -uword main.shiftruw3.q zp=DONTCARE -uword main.shiftruw4.q zp=DONTCARE -uword main.shiftruw5.q zp=DONTCARE -uword main.shiftruw6.q zp=DONTCARE -uword main.shiftruw7.q zp=DONTCARE -uword main.shiftruw8.q zp=DONTCARE -uword main.shiftruw9.q zp=DONTCARE -uword main.shiftruw10.q zp=DONTCARE -uword main.shiftruw11.q zp=DONTCARE -uword main.shiftruw12.q zp=DONTCARE -uword main.shiftruw13.q zp=DONTCARE -uword main.shiftruw14.q zp=DONTCARE -uword main.shiftruw15.q zp=DONTCARE -word main.shiftrsw0.q zp=DONTCARE -word main.shiftrsw1.q zp=DONTCARE -word main.shiftrsw2.q zp=DONTCARE -word main.shiftrsw3.q zp=DONTCARE -word main.shiftrsw4.q zp=DONTCARE -word main.shiftrsw5.q zp=DONTCARE -word main.shiftrsw6.q zp=DONTCARE -word main.shiftrsw7.q zp=DONTCARE -word main.shiftrsw8.q zp=DONTCARE -word main.shiftrsw9.q zp=DONTCARE -word main.shiftrsw10.q zp=DONTCARE -word main.shiftrsw11.q zp=DONTCARE -word main.shiftrsw12.q zp=DONTCARE -word main.shiftrsw13.q zp=DONTCARE -word main.shiftrsw14.q zp=DONTCARE -word main.shiftrsw15.q zp=DONTCARE -uword main.shiftluw0.q zp=DONTCARE -uword main.shiftluw1.q zp=DONTCARE -uword main.shiftluw2.q zp=DONTCARE -uword main.shiftluw3.q zp=DONTCARE -uword main.shiftluw4.q zp=DONTCARE -uword main.shiftluw5.q zp=DONTCARE -uword main.shiftluw6.q zp=DONTCARE -uword main.shiftluw7.q zp=DONTCARE -uword main.shiftluw8.q zp=DONTCARE -uword main.shiftluw9.q zp=DONTCARE -uword main.shiftluw10.q zp=DONTCARE -uword main.shiftluw11.q zp=DONTCARE -uword main.shiftluw12.q zp=DONTCARE -uword main.shiftluw13.q zp=DONTCARE -uword main.shiftluw14.q zp=DONTCARE -uword main.shiftluw15.q zp=DONTCARE -uword main.shiftluw16.q zp=DONTCARE -uword main.shiftluw17.q zp=DONTCARE -word main.shiftlsw0.q zp=DONTCARE -word main.shiftlsw1.q zp=DONTCARE -word main.shiftlsw2.q zp=DONTCARE -word main.shiftlsw3.q zp=DONTCARE -word main.shiftlsw4.q zp=DONTCARE -word main.shiftlsw5.q zp=DONTCARE -word main.shiftlsw6.q zp=DONTCARE -word main.shiftlsw7.q zp=DONTCARE -word main.shiftlsw8.q zp=DONTCARE -word main.shiftlsw9.q zp=DONTCARE -word main.shiftlsw10.q zp=DONTCARE -word main.shiftlsw11.q zp=DONTCARE -word main.shiftlsw12.q zp=DONTCARE -word main.shiftlsw13.q zp=DONTCARE -word main.shiftlsw14.q zp=DONTCARE -word main.shiftlsw15.q zp=DONTCARE -word main.shiftlsw16.q zp=DONTCARE -word main.shiftlsw17.q zp=DONTCARE -ubyte main.shiftlb0.yy zp=DONTCARE -ubyte main.shiftlb1.yy zp=DONTCARE -ubyte main.shiftlb2.yy zp=DONTCARE -ubyte main.shiftlb3.yy zp=DONTCARE -ubyte main.shiftlb4.yy zp=DONTCARE -ubyte main.shiftlb5.yy zp=DONTCARE -ubyte main.shiftlb6.yy zp=DONTCARE -ubyte main.shiftlb7.yy zp=DONTCARE -ubyte main.shiftlb8.yy zp=DONTCARE -ubyte main.shiftlb9.yy zp=DONTCARE -ubyte main.shiftrb0.yy zp=DONTCARE -ubyte main.shiftrb1.yy zp=DONTCARE -ubyte main.shiftrb2.yy zp=DONTCARE -ubyte main.shiftrb3.yy zp=DONTCARE -ubyte main.shiftrb4.yy zp=DONTCARE -ubyte main.shiftrb5.yy zp=DONTCARE -ubyte main.shiftrb6.yy zp=DONTCARE -ubyte main.shiftrb7.yy zp=DONTCARE -ubyte main.shiftrb8.yy zp=DONTCARE -ubyte main.shiftrb9.yy zp=DONTCARE -byte main.shiftlsb0.yy zp=DONTCARE -byte main.shiftlsb1.yy zp=DONTCARE -byte main.shiftlsb2.yy zp=DONTCARE -byte main.shiftlsb3.yy zp=DONTCARE -byte main.shiftlsb4.yy zp=DONTCARE -byte main.shiftlsb5.yy zp=DONTCARE -byte main.shiftlsb6.yy zp=DONTCARE -byte main.shiftlsb7.yy zp=DONTCARE -byte main.shiftlsb8.yy zp=DONTCARE -byte main.shiftlsb9.yy zp=DONTCARE -byte main.shiftrsb0.yy zp=DONTCARE -byte main.shiftrsb1.yy zp=DONTCARE -byte main.shiftrsb2.yy zp=DONTCARE -byte main.shiftrsb3.yy zp=DONTCARE -byte main.shiftrsb4.yy zp=DONTCARE -byte main.shiftrsb5.yy zp=DONTCARE -byte main.shiftrsb6.yy zp=DONTCARE -byte main.shiftrsb7.yy zp=DONTCARE -byte main.shiftrsb8.yy zp=DONTCARE -byte main.shiftrsb9.yy zp=DONTCARE -ubyte txt.chrout.char zp=DONTCARE -uword txt.print.text zp=DONTCARE -ubyte txt.print_ubbin.prefix zp=DONTCARE -ubyte txt.print_ubbin.value zp=DONTCARE -ubyte txt.print_uwbin.prefix zp=DONTCARE -uword txt.print_uwbin.value zp=DONTCARE -uword txt.input_chars.buffer zp=DONTCARE -ubyte conv.str_ubbin.value zp=DONTCARE -uword conv.str_ubbin.out_ptr zp=DONTCARE -uword conv.str_uwbin.value zp=DONTCARE -uword conv.str_uwbin.out_ptr zp=DONTCARE - - -ubyte[21] main.inputbuffer=63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0 zp=DONTCARE -ubyte[18] prog8_interned_strings.string_1=117,98,121,116,101,32,115,104,105,102,116,32,108,101,102,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[20] prog8_interned_strings.string_2=101,110,116,101,114,32,116,111,32,99,111,110,116,105,110,117,101,58,10,0 zp=NOT_IN_ZEROPAGE -ubyte[19] prog8_interned_strings.string_3=117,98,121,116,101,32,115,104,105,102,116,32,114,105,103,104,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[24] prog8_interned_strings.string_4=115,105,103,110,101,100,32,98,121,116,101,32,115,104,105,102,116,32,108,101,102,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[25] prog8_interned_strings.string_5=115,105,103,110,101,100,32,98,121,116,101,32,115,104,105,102,116,32,114,105,103,104,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[18] prog8_interned_strings.string_6=117,119,111,114,100,32,115,104,105,102,116,32,108,101,102,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[19] prog8_interned_strings.string_7=117,119,111,114,100,32,115,104,105,102,116,32,114,105,103,104,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[24] prog8_interned_strings.string_8=115,105,103,110,101,100,32,119,111,114,100,32,115,104,105,102,116,32,108,101,102,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[25] prog8_interned_strings.string_9=115,105,103,110,101,100,32,119,111,114,100,32,115,104,105,102,116,32,114,105,103,104,116,10,0 zp=NOT_IN_ZEROPAGE -ubyte[17] conv.string_out=63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,0 zp=DONTCARE - - - - - - - - - - - - - - - -storezm.b main.start.a -preparecall 1 -load.w r3,prog8_interned_strings.string_1 -call txt.print(text=r3.w) -preparecall 0 -call main.shiftlb0():r4.b -storem.b r4,main.start.a -preparecall 2 -loadm.b r5,main.start.a -load.b r6,1 -call txt.print_ubbin(value=r5.b,prefix=r6.b) -preparecall 1 -load.b r7,10 -call txt.chrout(char=r7.b) -preparecall 0 -call main.shiftlb1():r8.b -storem.b r8,main.start.a -preparecall 2 -loadm.b r9,main.start.a -load.b r10,1 -call txt.print_ubbin(value=r9.b,prefix=r10.b) -preparecall 1 -load.b r11,10 -call txt.chrout(char=r11.b) -preparecall 0 -call main.shiftlb2():r12.b -storem.b r12,main.start.a -preparecall 2 -loadm.b r13,main.start.a -load.b r14,1 -call txt.print_ubbin(value=r13.b,prefix=r14.b) -preparecall 1 -load.b r15,10 -call txt.chrout(char=r15.b) -preparecall 0 -call main.shiftlb3():r16.b -storem.b r16,main.start.a -preparecall 2 -loadm.b r17,main.start.a -load.b r18,1 -call txt.print_ubbin(value=r17.b,prefix=r18.b) -preparecall 1 -load.b r19,10 -call txt.chrout(char=r19.b) -preparecall 0 -call main.shiftlb4():r20.b -storem.b r20,main.start.a -preparecall 2 -loadm.b r21,main.start.a -load.b r22,1 -call txt.print_ubbin(value=r21.b,prefix=r22.b) -preparecall 1 -load.b r23,10 -call txt.chrout(char=r23.b) -preparecall 0 -call main.shiftlb5():r24.b -storem.b r24,main.start.a -preparecall 2 -loadm.b r25,main.start.a -load.b r26,1 -call txt.print_ubbin(value=r25.b,prefix=r26.b) -preparecall 1 -load.b r27,10 -call txt.chrout(char=r27.b) -preparecall 0 -call main.shiftlb6():r28.b -storem.b r28,main.start.a -preparecall 2 -loadm.b r29,main.start.a -load.b r30,1 -call txt.print_ubbin(value=r29.b,prefix=r30.b) -preparecall 1 -load.b r31,10 -call txt.chrout(char=r31.b) -preparecall 0 -call main.shiftlb7():r32.b -storem.b r32,main.start.a -preparecall 2 -loadm.b r33,main.start.a -load.b r34,1 -call txt.print_ubbin(value=r33.b,prefix=r34.b) -preparecall 1 -load.b r35,10 -call txt.chrout(char=r35.b) -preparecall 0 -call main.shiftlb8():r36.b -storem.b r36,main.start.a -preparecall 2 -loadm.b r37,main.start.a -load.b r38,1 -call txt.print_ubbin(value=r37.b,prefix=r38.b) -preparecall 1 -load.b r39,10 -call txt.chrout(char=r39.b) -preparecall 0 -call main.shiftlb9():r40.b -storem.b r40,main.start.a -preparecall 2 -loadm.b r41,main.start.a -load.b r42,1 -call txt.print_ubbin(value=r41.b,prefix=r42.b) -preparecall 1 -load.b r43,10 -call txt.chrout(char=r43.b) -preparecall 1 -load.w r44,prog8_interned_strings.string_2 -call txt.print(text=r44.w) -preparecall 1 -load.w r45,main.inputbuffer -call txt.input_chars(buffer=r45.w) -preparecall 1 -load.w r46,prog8_interned_strings.string_3 -call txt.print(text=r46.w) -preparecall 0 -call main.shiftrb0():r47.b -storem.b r47,main.start.a -preparecall 2 -loadm.b r48,main.start.a -load.b r49,1 -call txt.print_ubbin(value=r48.b,prefix=r49.b) -preparecall 1 -load.b r50,10 -call txt.chrout(char=r50.b) -preparecall 0 -call main.shiftrb1():r51.b -storem.b r51,main.start.a -preparecall 2 -loadm.b r52,main.start.a -load.b r53,1 -call txt.print_ubbin(value=r52.b,prefix=r53.b) -preparecall 1 -load.b r54,10 -call txt.chrout(char=r54.b) -preparecall 0 -call main.shiftrb2():r55.b -storem.b r55,main.start.a -preparecall 2 -loadm.b r56,main.start.a -load.b r57,1 -call txt.print_ubbin(value=r56.b,prefix=r57.b) -preparecall 1 -load.b r58,10 -call txt.chrout(char=r58.b) -preparecall 0 -call main.shiftrb3():r59.b -storem.b r59,main.start.a -preparecall 2 -loadm.b r60,main.start.a -load.b r61,1 -call txt.print_ubbin(value=r60.b,prefix=r61.b) -preparecall 1 -load.b r62,10 -call txt.chrout(char=r62.b) -preparecall 0 -call main.shiftrb4():r63.b -storem.b r63,main.start.a -preparecall 2 -loadm.b r64,main.start.a -load.b r65,1 -call txt.print_ubbin(value=r64.b,prefix=r65.b) -preparecall 1 -load.b r66,10 -call txt.chrout(char=r66.b) -preparecall 0 -call main.shiftrb5():r67.b -storem.b r67,main.start.a -preparecall 2 -loadm.b r68,main.start.a -load.b r69,1 -call txt.print_ubbin(value=r68.b,prefix=r69.b) -preparecall 1 -load.b r70,10 -call txt.chrout(char=r70.b) -preparecall 0 -call main.shiftrb6():r71.b -storem.b r71,main.start.a -preparecall 2 -loadm.b r72,main.start.a -load.b r73,1 -call txt.print_ubbin(value=r72.b,prefix=r73.b) -preparecall 1 -load.b r74,10 -call txt.chrout(char=r74.b) -preparecall 0 -call main.shiftrb7():r75.b -storem.b r75,main.start.a -preparecall 2 -loadm.b r76,main.start.a -load.b r77,1 -call txt.print_ubbin(value=r76.b,prefix=r77.b) -preparecall 1 -load.b r78,10 -call txt.chrout(char=r78.b) -preparecall 0 -call main.shiftrb8():r79.b -storem.b r79,main.start.a -preparecall 2 -loadm.b r80,main.start.a -load.b r81,1 -call txt.print_ubbin(value=r80.b,prefix=r81.b) -preparecall 1 -load.b r82,10 -call txt.chrout(char=r82.b) -preparecall 0 -call main.shiftrb9():r83.b -storem.b r83,main.start.a -preparecall 2 -loadm.b r84,main.start.a -load.b r85,1 -call txt.print_ubbin(value=r84.b,prefix=r85.b) -preparecall 1 -load.b r86,10 -call txt.chrout(char=r86.b) -preparecall 1 -load.w r87,prog8_interned_strings.string_2 -call txt.print(text=r87.w) -preparecall 1 -load.w r88,main.inputbuffer -call txt.input_chars(buffer=r88.w) -preparecall 1 -load.w r89,prog8_interned_strings.string_4 -call txt.print(text=r89.w) -preparecall 0 -call main.shiftlsb0():r90.b -storem.b r90,main.start.signedb -preparecall 2 -loadm.b r91,main.start.signedb -load.b r92,1 -call txt.print_ubbin(value=r91.b,prefix=r92.b) -preparecall 1 -load.b r93,10 -call txt.chrout(char=r93.b) -preparecall 0 -call main.shiftlsb1():r94.b -storem.b r94,main.start.signedb -preparecall 2 -loadm.b r95,main.start.signedb -load.b r96,1 -call txt.print_ubbin(value=r95.b,prefix=r96.b) -preparecall 1 -load.b r97,10 -call txt.chrout(char=r97.b) -preparecall 0 -call main.shiftlsb2():r98.b -storem.b r98,main.start.signedb -preparecall 2 -loadm.b r99,main.start.signedb -load.b r100,1 -call txt.print_ubbin(value=r99.b,prefix=r100.b) -preparecall 1 -load.b r101,10 -call txt.chrout(char=r101.b) -preparecall 0 -call main.shiftlsb3():r102.b -storem.b r102,main.start.signedb -preparecall 2 -loadm.b r103,main.start.signedb -load.b r104,1 -call txt.print_ubbin(value=r103.b,prefix=r104.b) -preparecall 1 -load.b r105,10 -call txt.chrout(char=r105.b) -preparecall 0 -call main.shiftlsb4():r106.b -storem.b r106,main.start.signedb -preparecall 2 -loadm.b r107,main.start.signedb -load.b r108,1 -call txt.print_ubbin(value=r107.b,prefix=r108.b) -preparecall 1 -load.b r109,10 -call txt.chrout(char=r109.b) -preparecall 0 -call main.shiftlsb5():r110.b -storem.b r110,main.start.signedb -preparecall 2 -loadm.b r111,main.start.signedb -load.b r112,1 -call txt.print_ubbin(value=r111.b,prefix=r112.b) -preparecall 1 -load.b r113,10 -call txt.chrout(char=r113.b) -preparecall 0 -call main.shiftlsb6():r114.b -storem.b r114,main.start.signedb -preparecall 2 -loadm.b r115,main.start.signedb -load.b r116,1 -call txt.print_ubbin(value=r115.b,prefix=r116.b) -preparecall 1 -load.b r117,10 -call txt.chrout(char=r117.b) -preparecall 0 -call main.shiftlsb7():r118.b -storem.b r118,main.start.signedb -preparecall 2 -loadm.b r119,main.start.signedb -load.b r120,1 -call txt.print_ubbin(value=r119.b,prefix=r120.b) -preparecall 1 -load.b r121,10 -call txt.chrout(char=r121.b) -preparecall 0 -call main.shiftlsb8():r122.b -storem.b r122,main.start.signedb -preparecall 2 -loadm.b r123,main.start.signedb -load.b r124,1 -call txt.print_ubbin(value=r123.b,prefix=r124.b) -preparecall 1 -load.b r125,10 -call txt.chrout(char=r125.b) -preparecall 0 -call main.shiftlsb9():r126.b -storem.b r126,main.start.signedb -preparecall 2 -loadm.b r127,main.start.signedb -load.b r128,1 -call txt.print_ubbin(value=r127.b,prefix=r128.b) -preparecall 1 -load.b r129,10 -call txt.chrout(char=r129.b) -preparecall 1 -load.w r130,prog8_interned_strings.string_2 -call txt.print(text=r130.w) -preparecall 1 -load.w r131,main.inputbuffer -call txt.input_chars(buffer=r131.w) -preparecall 1 -load.w r132,prog8_interned_strings.string_5 -call txt.print(text=r132.w) -preparecall 0 -call main.shiftrsb0():r133.b -storem.b r133,main.start.signedb -preparecall 2 -loadm.b r134,main.start.signedb -load.b r135,1 -call txt.print_ubbin(value=r134.b,prefix=r135.b) -preparecall 1 -load.b r136,10 -call txt.chrout(char=r136.b) -preparecall 0 -call main.shiftrsb1():r137.b -storem.b r137,main.start.signedb -preparecall 2 -loadm.b r138,main.start.signedb -load.b r139,1 -call txt.print_ubbin(value=r138.b,prefix=r139.b) -preparecall 1 -load.b r140,10 -call txt.chrout(char=r140.b) -preparecall 0 -call main.shiftrsb2():r141.b -storem.b r141,main.start.signedb -preparecall 2 -loadm.b r142,main.start.signedb -load.b r143,1 -call txt.print_ubbin(value=r142.b,prefix=r143.b) -preparecall 1 -load.b r144,10 -call txt.chrout(char=r144.b) -preparecall 0 -call main.shiftrsb3():r145.b -storem.b r145,main.start.signedb -preparecall 2 -loadm.b r146,main.start.signedb -load.b r147,1 -call txt.print_ubbin(value=r146.b,prefix=r147.b) -preparecall 1 -load.b r148,10 -call txt.chrout(char=r148.b) -preparecall 0 -call main.shiftrsb4():r149.b -storem.b r149,main.start.signedb -preparecall 2 -loadm.b r150,main.start.signedb -load.b r151,1 -call txt.print_ubbin(value=r150.b,prefix=r151.b) -preparecall 1 -load.b r152,10 -call txt.chrout(char=r152.b) -preparecall 0 -call main.shiftrsb5():r153.b -storem.b r153,main.start.signedb -preparecall 2 -loadm.b r154,main.start.signedb -load.b r155,1 -call txt.print_ubbin(value=r154.b,prefix=r155.b) -preparecall 1 -load.b r156,10 -call txt.chrout(char=r156.b) -preparecall 0 -call main.shiftrsb6():r157.b -storem.b r157,main.start.signedb -preparecall 2 -loadm.b r158,main.start.signedb -load.b r159,1 -call txt.print_ubbin(value=r158.b,prefix=r159.b) -preparecall 1 -load.b r160,10 -call txt.chrout(char=r160.b) -preparecall 0 -call main.shiftrsb7():r161.b -storem.b r161,main.start.signedb -preparecall 2 -loadm.b r162,main.start.signedb -load.b r163,1 -call txt.print_ubbin(value=r162.b,prefix=r163.b) -preparecall 1 -load.b r164,10 -call txt.chrout(char=r164.b) -preparecall 0 -call main.shiftrsb8():r165.b -storem.b r165,main.start.signedb -preparecall 2 -loadm.b r166,main.start.signedb -load.b r167,1 -call txt.print_ubbin(value=r166.b,prefix=r167.b) -preparecall 1 -load.b r168,10 -call txt.chrout(char=r168.b) -preparecall 0 -call main.shiftrsb9():r169.b -storem.b r169,main.start.signedb -preparecall 2 -loadm.b r170,main.start.signedb -load.b r171,1 -call txt.print_ubbin(value=r170.b,prefix=r171.b) -preparecall 1 -load.b r172,10 -call txt.chrout(char=r172.b) -preparecall 1 -load.w r173,prog8_interned_strings.string_2 -call txt.print(text=r173.w) -preparecall 1 -load.w r174,main.inputbuffer -call txt.input_chars(buffer=r174.w) -preparecall 1 -load.w r175,prog8_interned_strings.string_6 -call txt.print(text=r175.w) -preparecall 0 -call main.shiftluw0():r176.w -storem.w r176,main.start.uw -preparecall 2 -loadm.w r177,main.start.uw -load.b r178,1 -call txt.print_uwbin(value=r177.w,prefix=r178.b) -preparecall 1 -load.b r179,10 -call txt.chrout(char=r179.b) -preparecall 0 -call main.shiftluw1():r180.w -storem.w r180,main.start.uw -preparecall 2 -loadm.w r181,main.start.uw -load.b r182,1 -call txt.print_uwbin(value=r181.w,prefix=r182.b) -preparecall 1 -load.b r183,10 -call txt.chrout(char=r183.b) -preparecall 0 -call main.shiftluw2():r184.w -storem.w r184,main.start.uw -preparecall 2 -loadm.w r185,main.start.uw -load.b r186,1 -call txt.print_uwbin(value=r185.w,prefix=r186.b) -preparecall 1 -load.b r187,10 -call txt.chrout(char=r187.b) -preparecall 0 -call main.shiftluw3():r188.w -storem.w r188,main.start.uw -preparecall 2 -loadm.w r189,main.start.uw -load.b r190,1 -call txt.print_uwbin(value=r189.w,prefix=r190.b) -preparecall 1 -load.b r191,10 -call txt.chrout(char=r191.b) -preparecall 0 -call main.shiftluw4():r192.w -storem.w r192,main.start.uw -preparecall 2 -loadm.w r193,main.start.uw -load.b r194,1 -call txt.print_uwbin(value=r193.w,prefix=r194.b) -preparecall 1 -load.b r195,10 -call txt.chrout(char=r195.b) -preparecall 0 -call main.shiftluw5():r196.w -storem.w r196,main.start.uw -preparecall 2 -loadm.w r197,main.start.uw -load.b r198,1 -call txt.print_uwbin(value=r197.w,prefix=r198.b) -preparecall 1 -load.b r199,10 -call txt.chrout(char=r199.b) -preparecall 0 -call main.shiftluw6():r200.w -storem.w r200,main.start.uw -preparecall 2 -loadm.w r201,main.start.uw -load.b r202,1 -call txt.print_uwbin(value=r201.w,prefix=r202.b) -preparecall 1 -load.b r203,10 -call txt.chrout(char=r203.b) -preparecall 0 -call main.shiftluw7():r204.w -storem.w r204,main.start.uw -preparecall 2 -loadm.w r205,main.start.uw -load.b r206,1 -call txt.print_uwbin(value=r205.w,prefix=r206.b) -preparecall 1 -load.b r207,10 -call txt.chrout(char=r207.b) -preparecall 0 -call main.shiftluw8():r208.w -storem.w r208,main.start.uw -preparecall 2 -loadm.w r209,main.start.uw -load.b r210,1 -call txt.print_uwbin(value=r209.w,prefix=r210.b) -preparecall 1 -load.b r211,10 -call txt.chrout(char=r211.b) -preparecall 0 -call main.shiftluw9():r212.w -storem.w r212,main.start.uw -preparecall 2 -loadm.w r213,main.start.uw -load.b r214,1 -call txt.print_uwbin(value=r213.w,prefix=r214.b) -preparecall 1 -load.b r215,10 -call txt.chrout(char=r215.b) -preparecall 0 -call main.shiftluw10():r216.w -storem.w r216,main.start.uw -preparecall 2 -loadm.w r217,main.start.uw -load.b r218,1 -call txt.print_uwbin(value=r217.w,prefix=r218.b) -preparecall 1 -load.b r219,10 -call txt.chrout(char=r219.b) -preparecall 0 -call main.shiftluw11():r220.w -storem.w r220,main.start.uw -preparecall 2 -loadm.w r221,main.start.uw -load.b r222,1 -call txt.print_uwbin(value=r221.w,prefix=r222.b) -preparecall 1 -load.b r223,10 -call txt.chrout(char=r223.b) -preparecall 0 -call main.shiftluw12():r224.w -storem.w r224,main.start.uw -preparecall 2 -loadm.w r225,main.start.uw -load.b r226,1 -call txt.print_uwbin(value=r225.w,prefix=r226.b) -preparecall 1 -load.b r227,10 -call txt.chrout(char=r227.b) -preparecall 0 -call main.shiftluw13():r228.w -storem.w r228,main.start.uw -preparecall 2 -loadm.w r229,main.start.uw -load.b r230,1 -call txt.print_uwbin(value=r229.w,prefix=r230.b) -preparecall 1 -load.b r231,10 -call txt.chrout(char=r231.b) -preparecall 0 -call main.shiftluw14():r232.w -storem.w r232,main.start.uw -preparecall 2 -loadm.w r233,main.start.uw -load.b r234,1 -call txt.print_uwbin(value=r233.w,prefix=r234.b) -preparecall 1 -load.b r235,10 -call txt.chrout(char=r235.b) -preparecall 0 -call main.shiftluw15():r236.w -storem.w r236,main.start.uw -preparecall 2 -loadm.w r237,main.start.uw -load.b r238,1 -call txt.print_uwbin(value=r237.w,prefix=r238.b) -preparecall 1 -load.b r239,10 -call txt.chrout(char=r239.b) -preparecall 0 -call main.shiftluw16():r240.w -storem.w r240,main.start.uw -preparecall 2 -loadm.w r241,main.start.uw -load.b r242,1 -call txt.print_uwbin(value=r241.w,prefix=r242.b) -preparecall 1 -load.b r243,10 -call txt.chrout(char=r243.b) -preparecall 0 -call main.shiftluw17():r244.w -storem.w r244,main.start.uw -preparecall 2 -loadm.w r245,main.start.uw -load.b r246,1 -call txt.print_uwbin(value=r245.w,prefix=r246.b) -preparecall 1 -load.b r247,10 -call txt.chrout(char=r247.b) -preparecall 1 -load.w r248,prog8_interned_strings.string_2 -call txt.print(text=r248.w) -preparecall 1 -load.w r249,main.inputbuffer -call txt.input_chars(buffer=r249.w) -preparecall 1 -load.w r250,prog8_interned_strings.string_7 -call txt.print(text=r250.w) -preparecall 0 -call main.shiftruw0():r251.w -storem.w r251,main.start.uw -preparecall 2 -loadm.w r252,main.start.uw -load.b r253,1 -call txt.print_uwbin(value=r252.w,prefix=r253.b) -preparecall 1 -load.b r254,10 -call txt.chrout(char=r254.b) -preparecall 0 -call main.shiftruw1():r255.w -storem.w r255,main.start.uw -preparecall 2 -loadm.w r256,main.start.uw -load.b r257,1 -call txt.print_uwbin(value=r256.w,prefix=r257.b) -preparecall 1 -load.b r258,10 -call txt.chrout(char=r258.b) -preparecall 0 -call main.shiftruw2():r259.w -storem.w r259,main.start.uw -preparecall 2 -loadm.w r260,main.start.uw -load.b r261,1 -call txt.print_uwbin(value=r260.w,prefix=r261.b) -preparecall 1 -load.b r262,10 -call txt.chrout(char=r262.b) -preparecall 0 -call main.shiftruw3():r263.w -storem.w r263,main.start.uw -preparecall 2 -loadm.w r264,main.start.uw -load.b r265,1 -call txt.print_uwbin(value=r264.w,prefix=r265.b) -preparecall 1 -load.b r266,10 -call txt.chrout(char=r266.b) -preparecall 0 -call main.shiftruw4():r267.w -storem.w r267,main.start.uw -preparecall 2 -loadm.w r268,main.start.uw -load.b r269,1 -call txt.print_uwbin(value=r268.w,prefix=r269.b) -preparecall 1 -load.b r270,10 -call txt.chrout(char=r270.b) -preparecall 0 -call main.shiftruw5():r271.w -storem.w r271,main.start.uw -preparecall 2 -loadm.w r272,main.start.uw -load.b r273,1 -call txt.print_uwbin(value=r272.w,prefix=r273.b) -preparecall 1 -load.b r274,10 -call txt.chrout(char=r274.b) -preparecall 0 -call main.shiftruw6():r275.w -storem.w r275,main.start.uw -preparecall 2 -loadm.w r276,main.start.uw -load.b r277,1 -call txt.print_uwbin(value=r276.w,prefix=r277.b) -preparecall 1 -load.b r278,10 -call txt.chrout(char=r278.b) -preparecall 0 -call main.shiftruw7():r279.w -storem.w r279,main.start.uw -preparecall 2 -loadm.w r280,main.start.uw -load.b r281,1 -call txt.print_uwbin(value=r280.w,prefix=r281.b) -preparecall 1 -load.b r282,10 -call txt.chrout(char=r282.b) -preparecall 0 -call main.shiftruw8():r283.w -storem.w r283,main.start.uw -preparecall 2 -loadm.w r284,main.start.uw -load.b r285,1 -call txt.print_uwbin(value=r284.w,prefix=r285.b) -preparecall 1 -load.b r286,10 -call txt.chrout(char=r286.b) -preparecall 0 -call main.shiftruw9():r287.w -storem.w r287,main.start.uw -preparecall 2 -loadm.w r288,main.start.uw -load.b r289,1 -call txt.print_uwbin(value=r288.w,prefix=r289.b) -preparecall 1 -load.b r290,10 -call txt.chrout(char=r290.b) -preparecall 0 -call main.shiftruw10():r291.w -storem.w r291,main.start.uw -preparecall 2 -loadm.w r292,main.start.uw -load.b r293,1 -call txt.print_uwbin(value=r292.w,prefix=r293.b) -preparecall 1 -load.b r294,10 -call txt.chrout(char=r294.b) -preparecall 0 -call main.shiftruw11():r295.w -storem.w r295,main.start.uw -preparecall 2 -loadm.w r296,main.start.uw -load.b r297,1 -call txt.print_uwbin(value=r296.w,prefix=r297.b) -preparecall 1 -load.b r298,10 -call txt.chrout(char=r298.b) -preparecall 0 -call main.shiftruw12():r299.w -storem.w r299,main.start.uw -preparecall 2 -loadm.w r300,main.start.uw -load.b r301,1 -call txt.print_uwbin(value=r300.w,prefix=r301.b) -preparecall 1 -load.b r302,10 -call txt.chrout(char=r302.b) -preparecall 0 -call main.shiftruw13():r303.w -storem.w r303,main.start.uw -preparecall 2 -loadm.w r304,main.start.uw -load.b r305,1 -call txt.print_uwbin(value=r304.w,prefix=r305.b) -preparecall 1 -load.b r306,10 -call txt.chrout(char=r306.b) -preparecall 0 -call main.shiftruw14():r307.w -storem.w r307,main.start.uw -preparecall 2 -loadm.w r308,main.start.uw -load.b r309,1 -call txt.print_uwbin(value=r308.w,prefix=r309.b) -preparecall 1 -load.b r310,10 -call txt.chrout(char=r310.b) -preparecall 0 -call main.shiftruw15():r311.w -storem.w r311,main.start.uw -preparecall 2 -loadm.w r312,main.start.uw -load.b r313,1 -call txt.print_uwbin(value=r312.w,prefix=r313.b) -preparecall 1 -load.b r314,10 -call txt.chrout(char=r314.b) -preparecall 1 -load.w r315,prog8_interned_strings.string_2 -call txt.print(text=r315.w) -preparecall 1 -load.w r316,main.inputbuffer -call txt.input_chars(buffer=r316.w) -preparecall 1 -load.w r317,prog8_interned_strings.string_8 -call txt.print(text=r317.w) -preparecall 0 -call main.shiftlsw0():r318.w -storem.w r318,main.start.sw -preparecall 2 -loadm.w r319,main.start.sw -load.b r320,1 -call txt.print_uwbin(value=r319.w,prefix=r320.b) -preparecall 1 -load.b r321,10 -call txt.chrout(char=r321.b) -preparecall 0 -call main.shiftlsw1():r322.w -storem.w r322,main.start.sw -preparecall 2 -loadm.w r323,main.start.sw -load.b r324,1 -call txt.print_uwbin(value=r323.w,prefix=r324.b) -preparecall 1 -load.b r325,10 -call txt.chrout(char=r325.b) -preparecall 0 -call main.shiftlsw2():r326.w -storem.w r326,main.start.sw -preparecall 2 -loadm.w r327,main.start.sw -load.b r328,1 -call txt.print_uwbin(value=r327.w,prefix=r328.b) -preparecall 1 -load.b r329,10 -call txt.chrout(char=r329.b) -preparecall 0 -call main.shiftlsw3():r330.w -storem.w r330,main.start.sw -preparecall 2 -loadm.w r331,main.start.sw -load.b r332,1 -call txt.print_uwbin(value=r331.w,prefix=r332.b) -preparecall 1 -load.b r333,10 -call txt.chrout(char=r333.b) -preparecall 0 -call main.shiftlsw4():r334.w -storem.w r334,main.start.sw -preparecall 2 -loadm.w r335,main.start.sw -load.b r336,1 -call txt.print_uwbin(value=r335.w,prefix=r336.b) -preparecall 1 -load.b r337,10 -call txt.chrout(char=r337.b) -preparecall 0 -call main.shiftlsw5():r338.w -storem.w r338,main.start.sw -preparecall 2 -loadm.w r339,main.start.sw -load.b r340,1 -call txt.print_uwbin(value=r339.w,prefix=r340.b) -preparecall 1 -load.b r341,10 -call txt.chrout(char=r341.b) -preparecall 0 -call main.shiftlsw6():r342.w -storem.w r342,main.start.sw -preparecall 2 -loadm.w r343,main.start.sw -load.b r344,1 -call txt.print_uwbin(value=r343.w,prefix=r344.b) -preparecall 1 -load.b r345,10 -call txt.chrout(char=r345.b) -preparecall 0 -call main.shiftlsw7():r346.w -storem.w r346,main.start.sw -preparecall 2 -loadm.w r347,main.start.sw -load.b r348,1 -call txt.print_uwbin(value=r347.w,prefix=r348.b) -preparecall 1 -load.b r349,10 -call txt.chrout(char=r349.b) -preparecall 0 -call main.shiftlsw8():r350.w -storem.w r350,main.start.sw -preparecall 2 -loadm.w r351,main.start.sw -load.b r352,1 -call txt.print_uwbin(value=r351.w,prefix=r352.b) -preparecall 1 -load.b r353,10 -call txt.chrout(char=r353.b) -preparecall 0 -call main.shiftlsw9():r354.w -storem.w r354,main.start.sw -preparecall 2 -loadm.w r355,main.start.sw -load.b r356,1 -call txt.print_uwbin(value=r355.w,prefix=r356.b) -preparecall 1 -load.b r357,10 -call txt.chrout(char=r357.b) -preparecall 0 -call main.shiftlsw10():r358.w -storem.w r358,main.start.sw -preparecall 2 -loadm.w r359,main.start.sw -load.b r360,1 -call txt.print_uwbin(value=r359.w,prefix=r360.b) -preparecall 1 -load.b r361,10 -call txt.chrout(char=r361.b) -preparecall 0 -call main.shiftlsw11():r362.w -storem.w r362,main.start.sw -preparecall 2 -loadm.w r363,main.start.sw -load.b r364,1 -call txt.print_uwbin(value=r363.w,prefix=r364.b) -preparecall 1 -load.b r365,10 -call txt.chrout(char=r365.b) -preparecall 0 -call main.shiftlsw12():r366.w -storem.w r366,main.start.sw -preparecall 2 -loadm.w r367,main.start.sw -load.b r368,1 -call txt.print_uwbin(value=r367.w,prefix=r368.b) -preparecall 1 -load.b r369,10 -call txt.chrout(char=r369.b) -preparecall 0 -call main.shiftlsw13():r370.w -storem.w r370,main.start.sw -preparecall 2 -loadm.w r371,main.start.sw -load.b r372,1 -call txt.print_uwbin(value=r371.w,prefix=r372.b) -preparecall 1 -load.b r373,10 -call txt.chrout(char=r373.b) -preparecall 0 -call main.shiftlsw14():r374.w -storem.w r374,main.start.sw -preparecall 2 -loadm.w r375,main.start.sw -load.b r376,1 -call txt.print_uwbin(value=r375.w,prefix=r376.b) -preparecall 1 -load.b r377,10 -call txt.chrout(char=r377.b) -preparecall 0 -call main.shiftlsw15():r378.w -storem.w r378,main.start.sw -preparecall 2 -loadm.w r379,main.start.sw -load.b r380,1 -call txt.print_uwbin(value=r379.w,prefix=r380.b) -preparecall 1 -load.b r381,10 -call txt.chrout(char=r381.b) -preparecall 0 -call main.shiftlsw16():r382.w -storem.w r382,main.start.sw -preparecall 2 -loadm.w r383,main.start.sw -load.b r384,1 -call txt.print_uwbin(value=r383.w,prefix=r384.b) -preparecall 1 -load.b r385,10 -call txt.chrout(char=r385.b) -preparecall 0 -call main.shiftlsw17():r386.w -storem.w r386,main.start.sw -preparecall 2 -loadm.w r387,main.start.sw -load.b r388,1 -call txt.print_uwbin(value=r387.w,prefix=r388.b) -preparecall 1 -load.b r389,10 -call txt.chrout(char=r389.b) -preparecall 1 -load.w r390,prog8_interned_strings.string_2 -call txt.print(text=r390.w) -preparecall 1 -load.w r391,main.inputbuffer -call txt.input_chars(buffer=r391.w) -preparecall 1 -load.w r392,prog8_interned_strings.string_9 -call txt.print(text=r392.w) -preparecall 0 -call main.shiftrsw0():r393.w -storem.w r393,main.start.sw -preparecall 2 -loadm.w r394,main.start.sw -load.b r395,1 -call txt.print_uwbin(value=r394.w,prefix=r395.b) -preparecall 1 -load.b r396,10 -call txt.chrout(char=r396.b) -preparecall 0 -call main.shiftrsw1():r397.w -storem.w r397,main.start.sw -preparecall 2 -loadm.w r398,main.start.sw -load.b r399,1 -call txt.print_uwbin(value=r398.w,prefix=r399.b) -preparecall 1 -load.b r400,10 -call txt.chrout(char=r400.b) -preparecall 0 -call main.shiftrsw2():r401.w -storem.w r401,main.start.sw -preparecall 2 -loadm.w r402,main.start.sw -load.b r403,1 -call txt.print_uwbin(value=r402.w,prefix=r403.b) -preparecall 1 -load.b r404,10 -call txt.chrout(char=r404.b) -preparecall 0 -call main.shiftrsw3():r405.w -storem.w r405,main.start.sw -preparecall 2 -loadm.w r406,main.start.sw -load.b r407,1 -call txt.print_uwbin(value=r406.w,prefix=r407.b) -preparecall 1 -load.b r408,10 -call txt.chrout(char=r408.b) -preparecall 0 -call main.shiftrsw4():r409.w -storem.w r409,main.start.sw -preparecall 2 -loadm.w r410,main.start.sw -load.b r411,1 -call txt.print_uwbin(value=r410.w,prefix=r411.b) -preparecall 1 -load.b r412,10 -call txt.chrout(char=r412.b) -preparecall 0 -call main.shiftrsw5():r413.w -storem.w r413,main.start.sw -preparecall 2 -loadm.w r414,main.start.sw -load.b r415,1 -call txt.print_uwbin(value=r414.w,prefix=r415.b) -preparecall 1 -load.b r416,10 -call txt.chrout(char=r416.b) -preparecall 0 -call main.shiftrsw6():r417.w -storem.w r417,main.start.sw -preparecall 2 -loadm.w r418,main.start.sw -load.b r419,1 -call txt.print_uwbin(value=r418.w,prefix=r419.b) -preparecall 1 -load.b r420,10 -call txt.chrout(char=r420.b) -preparecall 0 -call main.shiftrsw7():r421.w -storem.w r421,main.start.sw -preparecall 2 -loadm.w r422,main.start.sw -load.b r423,1 -call txt.print_uwbin(value=r422.w,prefix=r423.b) -preparecall 1 -load.b r424,10 -call txt.chrout(char=r424.b) -preparecall 0 -call main.shiftrsw8():r425.w -storem.w r425,main.start.sw -preparecall 2 -loadm.w r426,main.start.sw -load.b r427,1 -call txt.print_uwbin(value=r426.w,prefix=r427.b) -preparecall 1 -load.b r428,10 -call txt.chrout(char=r428.b) -preparecall 0 -call main.shiftrsw9():r429.w -storem.w r429,main.start.sw -preparecall 2 -loadm.w r430,main.start.sw -load.b r431,1 -call txt.print_uwbin(value=r430.w,prefix=r431.b) -preparecall 1 -load.b r432,10 -call txt.chrout(char=r432.b) -preparecall 0 -call main.shiftrsw10():r433.w -storem.w r433,main.start.sw -preparecall 2 -loadm.w r434,main.start.sw -load.b r435,1 -call txt.print_uwbin(value=r434.w,prefix=r435.b) -preparecall 1 -load.b r436,10 -call txt.chrout(char=r436.b) -preparecall 0 -call main.shiftrsw11():r437.w -storem.w r437,main.start.sw -preparecall 2 -loadm.w r438,main.start.sw -load.b r439,1 -call txt.print_uwbin(value=r438.w,prefix=r439.b) -preparecall 1 -load.b r440,10 -call txt.chrout(char=r440.b) -preparecall 0 -call main.shiftrsw12():r441.w -storem.w r441,main.start.sw -preparecall 2 -loadm.w r442,main.start.sw -load.b r443,1 -call txt.print_uwbin(value=r442.w,prefix=r443.b) -preparecall 1 -load.b r444,10 -call txt.chrout(char=r444.b) -preparecall 0 -call main.shiftrsw13():r445.w -storem.w r445,main.start.sw -preparecall 2 -loadm.w r446,main.start.sw -load.b r447,1 -call txt.print_uwbin(value=r446.w,prefix=r447.b) -preparecall 1 -load.b r448,10 -call txt.chrout(char=r448.b) -preparecall 0 -call main.shiftrsw14():r449.w -storem.w r449,main.start.sw -preparecall 2 -loadm.w r450,main.start.sw -load.b r451,1 -call txt.print_uwbin(value=r450.w,prefix=r451.b) -preparecall 1 -load.b r452,10 -call txt.chrout(char=r452.b) -preparecall 0 -call main.shiftrsw15():r453.w -storem.w r453,main.start.sw -preparecall 2 -loadm.w r454,main.start.sw -load.b r455,1 -call txt.print_uwbin(value=r454.w,prefix=r455.b) -preparecall 1 -load.b r456,10 -call txt.chrout(char=r456.b) -return - - - - - - - -load.w r457,$a49f -storem.w r457,main.shiftruw0.q -loadm.w r458,main.shiftruw0.q -returnr.w r458 - - - - - - - -load.w r459,$a49f -storem.w r459,main.shiftruw1.q -loadm.w r460,main.shiftruw1.q -lsr.w r460 -returnr.w r460 - - - - - - - -load.w r461,$a49f -storem.w r461,main.shiftruw2.q -loadm.w r462,main.shiftruw2.q -load.b r463,2 -lsrn.w r462,r463 -returnr.w r462 - - - - - - - -load.w r464,$a49f -storem.w r464,main.shiftruw3.q -loadm.w r465,main.shiftruw3.q -load.b r466,3 -lsrn.w r465,r466 -returnr.w r465 - - - - - - - -load.w r467,$a49f -storem.w r467,main.shiftruw4.q -loadm.w r468,main.shiftruw4.q -load.b r469,4 -lsrn.w r468,r469 -returnr.w r468 - - - - - - - -load.w r470,$a49f -storem.w r470,main.shiftruw5.q -loadm.w r471,main.shiftruw5.q -load.b r472,5 -lsrn.w r471,r472 -returnr.w r471 - - - - - - - -load.w r473,$a49f -storem.w r473,main.shiftruw6.q -loadm.w r474,main.shiftruw6.q -load.b r475,6 -lsrn.w r474,r475 -returnr.w r474 - - - - - - - -load.w r476,$a49f -storem.w r476,main.shiftruw7.q -loadm.w r477,main.shiftruw7.q -load.b r478,7 -lsrn.w r477,r478 -returnr.w r477 - - - - - - - -load.w r479,$a49f -storem.w r479,main.shiftruw8.q -loadm.w r480,main.shiftruw8.q -msig.b r481,r480 -ext.b r482,r481 -returnr.w r482 - - - - - - - -load.w r483,$a49f -storem.w r483,main.shiftruw9.q -loadm.w r484,main.shiftruw9.q -msig.b r485,r484 -lsr.b r485 -ext.b r486,r485 -returnr.w r486 - - - - - - - -load.w r487,$a49f -storem.w r487,main.shiftruw10.q -loadm.w r488,main.shiftruw10.q -msig.b r489,r488 -load.b r490,2 -lsrn.b r489,r490 -ext.b r491,r489 -returnr.w r491 - - - - - - - -load.w r492,$a49f -storem.w r492,main.shiftruw11.q -loadm.w r493,main.shiftruw11.q -msig.b r494,r493 -load.b r495,3 -lsrn.b r494,r495 -ext.b r496,r494 -returnr.w r496 - - - - - - - -load.w r497,$a49f -storem.w r497,main.shiftruw12.q -loadm.w r498,main.shiftruw12.q -msig.b r499,r498 -load.b r500,4 -lsrn.b r499,r500 -ext.b r501,r499 -returnr.w r501 - - - - - - - -load.w r502,$a49f -storem.w r502,main.shiftruw13.q -loadm.w r503,main.shiftruw13.q -msig.b r504,r503 -load.b r505,5 -lsrn.b r504,r505 -ext.b r506,r504 -returnr.w r506 - - - - - - - -load.w r507,$a49f -storem.w r507,main.shiftruw14.q -loadm.w r508,main.shiftruw14.q -msig.b r509,r508 -load.b r510,6 -lsrn.b r509,r510 -ext.b r511,r509 -returnr.w r511 - - - - - - - -load.w r512,$a49f -storem.w r512,main.shiftruw15.q -loadm.w r513,main.shiftruw15.q -msig.b r514,r513 -load.b r515,7 -lsrn.b r514,r515 -ext.b r516,r514 -returnr.w r516 - - - - - - - -load.w r517,-$3039 -storem.w r517,main.shiftrsw0.q -loadm.w r518,main.shiftrsw0.q -returnr.w r518 - - - - - - - -load.w r519,-$3039 -storem.w r519,main.shiftrsw1.q -loadm.w r520,main.shiftrsw1.q -asr.w r520 -returnr.w r520 - - - - - - - -load.w r521,-$3039 -storem.w r521,main.shiftrsw2.q -loadm.w r522,main.shiftrsw2.q -load.b r523,2 -asrn.w r522,r523 -returnr.w r522 - - - - - - - -load.w r524,-$3039 -storem.w r524,main.shiftrsw3.q -loadm.w r525,main.shiftrsw3.q -load.b r526,3 -asrn.w r525,r526 -returnr.w r525 - - - - - - - -load.w r527,-$3039 -storem.w r527,main.shiftrsw4.q -loadm.w r528,main.shiftrsw4.q -load.b r529,4 -asrn.w r528,r529 -returnr.w r528 - - - - - - - -load.w r530,-$3039 -storem.w r530,main.shiftrsw5.q -loadm.w r531,main.shiftrsw5.q -load.b r532,5 -asrn.w r531,r532 -returnr.w r531 - - - - - - - -load.w r533,-$3039 -storem.w r533,main.shiftrsw6.q -loadm.w r534,main.shiftrsw6.q -load.b r535,6 -asrn.w r534,r535 -returnr.w r534 - - - - - - - -load.w r536,-$3039 -storem.w r536,main.shiftrsw7.q -loadm.w r537,main.shiftrsw7.q -load.b r538,7 -asrn.w r537,r538 -returnr.w r537 - - - - - - - -load.w r539,-$3039 -storem.w r539,main.shiftrsw8.q -loadm.w r540,main.shiftrsw8.q -msig.b r541,r540 -exts.b r542,r541 -returnr.w r542 - - - - - - - -load.w r543,-$3039 -storem.w r543,main.shiftrsw9.q -loadm.w r544,main.shiftrsw9.q -msig.b r545,r544 -asr.b r545 -exts.b r546,r545 -returnr.w r546 - - - - - - - -load.w r547,-$3039 -storem.w r547,main.shiftrsw10.q -loadm.w r548,main.shiftrsw10.q -msig.b r549,r548 -load.b r550,2 -asrn.b r549,r550 -exts.b r551,r549 -returnr.w r551 - - - - - - - -load.w r552,-$3039 -storem.w r552,main.shiftrsw11.q -loadm.w r553,main.shiftrsw11.q -msig.b r554,r553 -load.b r555,3 -asrn.b r554,r555 -exts.b r556,r554 -returnr.w r556 - - - - - - - -load.w r557,-$3039 -storem.w r557,main.shiftrsw12.q -loadm.w r558,main.shiftrsw12.q -msig.b r559,r558 -load.b r560,4 -asrn.b r559,r560 -exts.b r561,r559 -returnr.w r561 - - - - - - - -load.w r562,-$3039 -storem.w r562,main.shiftrsw13.q -loadm.w r563,main.shiftrsw13.q -msig.b r564,r563 -load.b r565,5 -asrn.b r564,r565 -exts.b r566,r564 -returnr.w r566 - - - - - - - -load.w r567,-$3039 -storem.w r567,main.shiftrsw14.q -loadm.w r568,main.shiftrsw14.q -msig.b r569,r568 -load.b r570,6 -asrn.b r569,r570 -exts.b r571,r569 -returnr.w r571 - - - - - - - -load.w r572,-$3039 -storem.w r572,main.shiftrsw15.q -loadm.w r573,main.shiftrsw15.q -msig.b r574,r573 -load.b r575,7 -asrn.b r574,r575 -exts.b r576,r574 -returnr.w r576 - - - - - - - -load.w r577,$a49f -storem.w r577,main.shiftluw0.q -loadm.w r578,main.shiftluw0.q -returnr.w r578 - - - - - - - -load.w r579,$a49f -storem.w r579,main.shiftluw1.q -loadm.w r580,main.shiftluw1.q -lsl.w r580 -returnr.w r580 - - - - - - - -load.w r581,$a49f -storem.w r581,main.shiftluw2.q -loadm.w r582,main.shiftluw2.q -load.b r583,2 -lsln.w r582,r583 -returnr.w r582 - - - - - - - -load.w r584,$a49f -storem.w r584,main.shiftluw3.q -loadm.w r585,main.shiftluw3.q -load.b r586,3 -lsln.w r585,r586 -returnr.w r585 - - - - - - - -load.w r587,$a49f -storem.w r587,main.shiftluw4.q -loadm.w r588,main.shiftluw4.q -load.b r589,4 -lsln.w r588,r589 -returnr.w r588 - - - - - - - -load.w r590,$a49f -storem.w r590,main.shiftluw5.q -loadm.w r591,main.shiftluw5.q -load.b r592,5 -lsln.w r591,r592 -returnr.w r591 - - - - - - - -load.w r593,$a49f -storem.w r593,main.shiftluw6.q -loadm.w r594,main.shiftluw6.q -load.b r595,6 -lsln.w r594,r595 -returnr.w r594 - - - - - - - -load.w r596,$a49f -storem.w r596,main.shiftluw7.q -loadm.w r597,main.shiftluw7.q -load.b r598,7 -lsln.w r597,r598 -returnr.w r597 - - - - - - - -load.w r599,$a49f -storem.w r599,main.shiftluw8.q -loadm.w r601,main.shiftluw8.q -load.b r602,0 -concat.b r600,r601,r602 -returnr.w r600 - - - - - - - -load.w r603,$a49f -storem.w r603,main.shiftluw9.q -loadm.w r605,main.shiftluw9.q -lsl.b r605 -load.b r606,0 -concat.b r604,r605,r606 -returnr.w r604 - - - - - - - -load.w r607,$a49f -storem.w r607,main.shiftluw10.q -loadm.w r609,main.shiftluw10.q -load.b r610,2 -lsln.b r609,r610 -load.b r611,0 -concat.b r608,r609,r611 -returnr.w r608 - - - - - - - -load.w r612,$a49f -storem.w r612,main.shiftluw11.q -loadm.w r614,main.shiftluw11.q -load.b r615,3 -lsln.b r614,r615 -load.b r616,0 -concat.b r613,r614,r616 -returnr.w r613 - - - - - - - -load.w r617,$a49f -storem.w r617,main.shiftluw12.q -loadm.w r619,main.shiftluw12.q -load.b r620,4 -lsln.b r619,r620 -load.b r621,0 -concat.b r618,r619,r621 -returnr.w r618 - - - - - - - -load.w r622,$a49f -storem.w r622,main.shiftluw13.q -loadm.w r624,main.shiftluw13.q -load.b r625,5 -lsln.b r624,r625 -load.b r626,0 -concat.b r623,r624,r626 -returnr.w r623 - - - - - - - -load.w r627,$a49f -storem.w r627,main.shiftluw14.q -loadm.w r629,main.shiftluw14.q -load.b r630,6 -lsln.b r629,r630 -load.b r631,0 -concat.b r628,r629,r631 -returnr.w r628 - - - - - - - -load.w r632,$a49f -storem.w r632,main.shiftluw15.q -loadm.w r634,main.shiftluw15.q -load.b r635,7 -lsln.b r634,r635 -load.b r636,0 -concat.b r633,r634,r636 -returnr.w r633 - - - - - - - -load.w r637,$a49f -storem.w r637,main.shiftluw16.q -load.w r638,0 -returnr.w r638 - - - - - - - -load.w r639,$a49f -storem.w r639,main.shiftluw17.q -load.w r640,0 -returnr.w r640 - - - - - - - -load.w r641,-$3039 -storem.w r641,main.shiftlsw0.q -loadm.w r642,main.shiftlsw0.q -returnr.w r642 - - - - - - - -load.w r643,-$3039 -storem.w r643,main.shiftlsw1.q -loadm.w r644,main.shiftlsw1.q -lsl.w r644 -returnr.w r644 - - - - - - - -load.w r645,-$3039 -storem.w r645,main.shiftlsw2.q -loadm.w r646,main.shiftlsw2.q -load.b r647,2 -lsln.w r646,r647 -returnr.w r646 - - - - - - - -load.w r648,-$3039 -storem.w r648,main.shiftlsw3.q -loadm.w r649,main.shiftlsw3.q -load.b r650,3 -lsln.w r649,r650 -returnr.w r649 - - - - - - - -load.w r651,-$3039 -storem.w r651,main.shiftlsw4.q -loadm.w r652,main.shiftlsw4.q -load.b r653,4 -lsln.w r652,r653 -returnr.w r652 - - - - - - - -load.w r654,-$3039 -storem.w r654,main.shiftlsw5.q -loadm.w r655,main.shiftlsw5.q -load.b r656,5 -lsln.w r655,r656 -returnr.w r655 - - - - - - - -load.w r657,-$3039 -storem.w r657,main.shiftlsw6.q -loadm.w r658,main.shiftlsw6.q -load.b r659,6 -lsln.w r658,r659 -returnr.w r658 - - - - - - - -load.w r660,-$3039 -storem.w r660,main.shiftlsw7.q -loadm.w r661,main.shiftlsw7.q -load.b r662,7 -lsln.w r661,r662 -returnr.w r661 - - - - - - - -load.w r663,-$3039 -storem.w r663,main.shiftlsw8.q -loadm.w r665,main.shiftlsw8.q -load.b r666,0 -concat.b r664,r665,r666 -returnr.w r664 - - - - - - - -load.w r667,-$3039 -storem.w r667,main.shiftlsw9.q -loadm.w r669,main.shiftlsw9.q -lsl.b r669 -load.b r670,0 -concat.b r668,r669,r670 -returnr.w r668 - - - - - - - -load.w r671,-$3039 -storem.w r671,main.shiftlsw10.q -loadm.w r673,main.shiftlsw10.q -load.b r674,2 -lsln.b r673,r674 -load.b r675,0 -concat.b r672,r673,r675 -returnr.w r672 - - - - - - - -load.w r676,-$3039 -storem.w r676,main.shiftlsw11.q -loadm.w r678,main.shiftlsw11.q -load.b r679,3 -lsln.b r678,r679 -load.b r680,0 -concat.b r677,r678,r680 -returnr.w r677 - - - - - - - -load.w r681,-$3039 -storem.w r681,main.shiftlsw12.q -loadm.w r683,main.shiftlsw12.q -load.b r684,4 -lsln.b r683,r684 -load.b r685,0 -concat.b r682,r683,r685 -returnr.w r682 - - - - - - - -load.w r686,-$3039 -storem.w r686,main.shiftlsw13.q -loadm.w r688,main.shiftlsw13.q -load.b r689,5 -lsln.b r688,r689 -load.b r690,0 -concat.b r687,r688,r690 -returnr.w r687 - - - - - - - -load.w r691,-$3039 -storem.w r691,main.shiftlsw14.q -loadm.w r693,main.shiftlsw14.q -load.b r694,6 -lsln.b r693,r694 -load.b r695,0 -concat.b r692,r693,r695 -returnr.w r692 - - - - - - - -load.w r696,-$3039 -storem.w r696,main.shiftlsw15.q -loadm.w r698,main.shiftlsw15.q -load.b r699,7 -lsln.b r698,r699 -load.b r700,0 -concat.b r697,r698,r700 -returnr.w r697 - - - - - - - -load.w r701,-$3039 -storem.w r701,main.shiftlsw16.q -load.w r702,0 -returnr.w r702 - - - - - - - -load.w r703,-$3039 -storem.w r703,main.shiftlsw17.q -load.w r704,0 -returnr.w r704 - - - - - - - -load.b r705,$ed -storem.b r705,main.shiftlb0.yy -loadm.b r706,main.shiftlb0.yy -returnr.b r706 - - - - - - - -load.b r707,$ed -storem.b r707,main.shiftlb1.yy -loadm.b r708,main.shiftlb1.yy -lsl.b r708 -returnr.b r708 - - - - - - - -load.b r709,$ed -storem.b r709,main.shiftlb2.yy -loadm.b r710,main.shiftlb2.yy -load.b r711,2 -lsln.b r710,r711 -returnr.b r710 - - - - - - - -load.b r712,$ed -storem.b r712,main.shiftlb3.yy -loadm.b r713,main.shiftlb3.yy -load.b r714,3 -lsln.b r713,r714 -returnr.b r713 - - - - - - - -load.b r715,$ed -storem.b r715,main.shiftlb4.yy -loadm.b r716,main.shiftlb4.yy -load.b r717,4 -lsln.b r716,r717 -returnr.b r716 - - - - - - - -load.b r718,$ed -storem.b r718,main.shiftlb5.yy -loadm.b r719,main.shiftlb5.yy -load.b r720,5 -lsln.b r719,r720 -returnr.b r719 - - - - - - - -load.b r721,$ed -storem.b r721,main.shiftlb6.yy -loadm.b r722,main.shiftlb6.yy -load.b r723,6 -lsln.b r722,r723 -returnr.b r722 - - - - - - - -load.b r724,$ed -storem.b r724,main.shiftlb7.yy -loadm.b r725,main.shiftlb7.yy -load.b r726,7 -lsln.b r725,r726 -returnr.b r725 - - - - - - - -load.b r727,$ed -storem.b r727,main.shiftlb8.yy -load.b r728,0 -returnr.b r728 - - - - - - - -load.b r729,$ed -storem.b r729,main.shiftlb9.yy -load.b r730,0 -returnr.b r730 - - - - - - - -load.b r731,$ed -storem.b r731,main.shiftrb0.yy -loadm.b r732,main.shiftrb0.yy -returnr.b r732 - - - - - - - -load.b r733,$ed -storem.b r733,main.shiftrb1.yy -loadm.b r734,main.shiftrb1.yy -lsr.b r734 -returnr.b r734 - - - - - - - -load.b r735,$ed -storem.b r735,main.shiftrb2.yy -loadm.b r736,main.shiftrb2.yy -load.b r737,2 -lsrn.b r736,r737 -returnr.b r736 - - - - - - - -load.b r738,$ed -storem.b r738,main.shiftrb3.yy -loadm.b r739,main.shiftrb3.yy -load.b r740,3 -lsrn.b r739,r740 -returnr.b r739 - - - - - - - -load.b r741,$ed -storem.b r741,main.shiftrb4.yy -loadm.b r742,main.shiftrb4.yy -load.b r743,4 -lsrn.b r742,r743 -returnr.b r742 - - - - - - - -load.b r744,$ed -storem.b r744,main.shiftrb5.yy -loadm.b r745,main.shiftrb5.yy -load.b r746,5 -lsrn.b r745,r746 -returnr.b r745 - - - - - - - -load.b r747,$ed -storem.b r747,main.shiftrb6.yy -loadm.b r748,main.shiftrb6.yy -load.b r749,6 -lsrn.b r748,r749 -returnr.b r748 - - - - - - - -load.b r750,$ed -storem.b r750,main.shiftrb7.yy -loadm.b r751,main.shiftrb7.yy -load.b r752,7 -lsrn.b r751,r752 -returnr.b r751 - - - - - - - -load.b r753,$ed -storem.b r753,main.shiftrb8.yy -load.b r754,0 -returnr.b r754 - - - - - - - -load.b r755,$ed -storem.b r755,main.shiftrb9.yy -load.b r756,0 -returnr.b r756 - - - - - - - -load.b r757,-$7b -storem.b r757,main.shiftlsb0.yy -loadm.b r758,main.shiftlsb0.yy -returnr.b r758 - - - - - - - -load.b r759,-$7b -storem.b r759,main.shiftlsb1.yy -loadm.b r760,main.shiftlsb1.yy -lsl.b r760 -returnr.b r760 - - - - - - - -load.b r761,-$7b -storem.b r761,main.shiftlsb2.yy -loadm.b r762,main.shiftlsb2.yy -load.b r763,2 -lsln.b r762,r763 -returnr.b r762 - - - - - - - -load.b r764,-$7b -storem.b r764,main.shiftlsb3.yy -loadm.b r765,main.shiftlsb3.yy -load.b r766,3 -lsln.b r765,r766 -returnr.b r765 - - - - - - - -load.b r767,-$7b -storem.b r767,main.shiftlsb4.yy -loadm.b r768,main.shiftlsb4.yy -load.b r769,4 -lsln.b r768,r769 -returnr.b r768 - - - - - - - -load.b r770,-$7b -storem.b r770,main.shiftlsb5.yy -loadm.b r771,main.shiftlsb5.yy -load.b r772,5 -lsln.b r771,r772 -returnr.b r771 - - - - - - - -load.b r773,-$7b -storem.b r773,main.shiftlsb6.yy -loadm.b r774,main.shiftlsb6.yy -load.b r775,6 -lsln.b r774,r775 -returnr.b r774 - - - - - - - -load.b r776,-$7b -storem.b r776,main.shiftlsb7.yy -loadm.b r777,main.shiftlsb7.yy -load.b r778,7 -lsln.b r777,r778 -returnr.b r777 - - - - - - - -load.b r779,-$7b -storem.b r779,main.shiftlsb8.yy -load.b r780,0 -returnr.b r780 - - - - - - - -load.b r781,-$7b -storem.b r781,main.shiftlsb9.yy -load.b r782,0 -returnr.b r782 - - - - - - - -load.b r783,-$7b -storem.b r783,main.shiftrsb0.yy -loadm.b r784,main.shiftrsb0.yy -returnr.b r784 - - - - - - - -load.b r785,-$7b -storem.b r785,main.shiftrsb1.yy -loadm.b r786,main.shiftrsb1.yy -asr.b r786 -returnr.b r786 - - - - - - - -load.b r787,-$7b -storem.b r787,main.shiftrsb2.yy -loadm.b r788,main.shiftrsb2.yy -load.b r789,2 -asrn.b r788,r789 -returnr.b r788 - - - - - - - -load.b r790,-$7b -storem.b r790,main.shiftrsb3.yy -loadm.b r791,main.shiftrsb3.yy -load.b r792,3 -asrn.b r791,r792 -returnr.b r791 - - - - - - - -load.b r793,-$7b -storem.b r793,main.shiftrsb4.yy -loadm.b r794,main.shiftrsb4.yy -load.b r795,4 -asrn.b r794,r795 -returnr.b r794 - - - - - - - -load.b r796,-$7b -storem.b r796,main.shiftrsb5.yy -loadm.b r797,main.shiftrsb5.yy -load.b r798,5 -asrn.b r797,r798 -returnr.b r797 - - - - - - - -load.b r799,-$7b -storem.b r799,main.shiftrsb6.yy -loadm.b r800,main.shiftrsb6.yy -load.b r801,6 -asrn.b r800,r801 -returnr.b r800 - - - - - - - -load.b r802,-$7b -storem.b r802,main.shiftrsb7.yy -loadm.b r803,main.shiftrsb7.yy -load.b r804,7 -asrn.b r803,r804 -returnr.b r803 - - - - - - - -load.b r805,-$7b -storem.b r805,main.shiftrsb8.yy -loadm.b r806,main.shiftrsb8.yy -load.b r807,8 -asrn.b r806,r807 -returnr.b r806 - - - - - - - -load.b r808,-$7b -storem.b r808,main.shiftrsb9.yy -loadm.b r809,main.shiftrsb9.yy -load.b r810,8 -asrn.b r809,r810 -returnr.b r809 - - - - - - - - -ubyte txt.chrout.char - - -loadm.b r65535,txt.chrout.char -syscall 2(r65535.b) -return - - - - - -uword txt.print.text - - -loadm.w r65535,txt.print.text -syscall 3(r65535.w) -return - - - - - -ubyte txt.print_ubbin.value -ubyte txt.print_ubbin.prefix - - -loadm.b r811,txt.print_ubbin.prefix -bsteq label_gen_1 -preparecall 1 -load.b r812,$25 -call txt.chrout(char=r812.b) - - -preparecall 1 -preparecall 1 -loadm.b r813,txt.print_ubbin.value -call conv.str_ubbin(value=r813.b):r814.w -call txt.print(text=r814.w) -return - - - - - -uword txt.print_uwbin.value -ubyte txt.print_uwbin.prefix - - -loadm.b r815,txt.print_uwbin.prefix -bsteq label_gen_2 -preparecall 1 -load.b r816,$25 -call txt.chrout(char=r816.b) - - -preparecall 1 -preparecall 1 -loadm.w r817,txt.print_uwbin.value -call conv.str_uwbin(value=r817.w):r818.w -call txt.print(text=r818.w) -return - - - - - -uword txt.input_chars.buffer - - -loadm.w r65534,txt.input_chars.buffer -load.b r65535,$50 -syscall 6(r65534.w,r65535.b):r0.b -returnr.b r0 - - - - - - - - -ubyte conv.str_ubbin.value - - -load.w r819,conv.string_out -storem.w r819,conv.str_ubbin.out_ptr -load.b r820,8 - - -roxlm.b conv.str_ubbin.value -bstcs label_gen_5 -load.b r821,$30 -loadm.w r822,conv.str_ubbin.out_ptr -storei.b r821,r822 -jump label_gen_6 - - -load.b r823,$31 -loadm.w r824,conv.str_ubbin.out_ptr -storei.b r823,r824 - - -incm.w conv.str_ubbin.out_ptr -dec.b r820 -bstne label_gen_3 - - -loadm.w r825,conv.str_ubbin.out_ptr -storezi.b r825 -load.w r826,conv.string_out -returnr.w r826 - - - - - -uword conv.str_uwbin.value - - -load.w r827,conv.string_out -storem.w r827,conv.str_uwbin.out_ptr -load.b r828,$10 - - -roxlm.w conv.str_uwbin.value -bstcs label_gen_9 -load.b r829,$30 -loadm.w r830,conv.str_uwbin.out_ptr -storei.b r829,r830 -jump label_gen_10 - - -load.b r831,$31 -loadm.w r832,conv.str_uwbin.out_ptr -storei.b r831,r832 - - -incm.w conv.str_uwbin.out_ptr -dec.b r828 -bstne label_gen_7 - - -loadm.w r833,conv.str_uwbin.out_ptr -storezi.b r833 -load.w r834,conv.string_out -returnr.w r834 - - - - - - diff --git a/compiler/test/arithmetic/builtins.p8 b/compiler/test/arithmetic/builtins.p8 index 123f67e9d..13ea9edad 100644 --- a/compiler/test/arithmetic/builtins.p8 +++ b/compiler/test/arithmetic/builtins.p8 @@ -1,6 +1,6 @@ %import textio %import floats -%import string +%import strings %import syslib %import math %import anyall diff --git a/compiler/test/ast/TestConst.kt b/compiler/test/ast/TestConst.kt index 68966cc65..c378814aa 100644 --- a/compiler/test/ast/TestConst.kt +++ b/compiler/test/ast/TestConst.kt @@ -238,13 +238,13 @@ main { val src=""" %import floats %import math -%import string +%import strings main { sub start() { float fl = 1.2 ; no other assignments - bool @shared result1 = string.isdigit(math.diff(119, floats.floor(floats.deg(fl)) as ubyte)) - bool @shared result2 = string.isletter(math.diff(119, floats.floor(floats.deg(1.2)) as ubyte)) + bool @shared result1 = strings.isdigit(math.diff(119, floats.floor(floats.deg(fl)) as ubyte)) + bool @shared result2 = strings.isletter(math.diff(119, floats.floor(floats.deg(1.2)) as ubyte)) } }""" val result = compileText(Cx16Target(), true, src, writeAssembly = false)!! diff --git a/compiler/test/comparisons/more_compares.p8 b/compiler/test/comparisons/more_compares.p8 index 3dbc1e27d..2c0e535e1 100644 --- a/compiler/test/comparisons/more_compares.p8 +++ b/compiler/test/comparisons/more_compares.p8 @@ -1,7 +1,7 @@ %zeropage basicsafe %import textio %import floats -%import string +%import strings main { sub start() { @@ -15,10 +15,10 @@ main { sub test_string() { str name="john" - if (string.compare(name, "aaa")==0) or (string.compare(name, "john")==0) or (string.compare(name, "bbb")==0) { + if (strings.compare(name, "aaa")==0) or (strings.compare(name, "john")==0) or (strings.compare(name, "bbb")==0) { txt.print("name1 ok\n") } - if (string.compare(name, "aaa")==0) or (string.compare(name, "zzz")==0) or (string.compare(name, "bbb")==0) { + if (strings.compare(name, "aaa")==0) or (strings.compare(name, "zzz")==0) or (strings.compare(name, "bbb")==0) { txt.print("name2 fail!\n") } diff --git a/docs/import-all-atari.p8 b/docs/import-all-atari.p8 index 117e55e77..6a0a64eae 100644 --- a/docs/import-all-atari.p8 +++ b/docs/import-all-atari.p8 @@ -7,7 +7,7 @@ %import cx16logo %import math %import prog8_lib -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/import-all-c128.p8 b/docs/import-all-c128.p8 index b5182054c..f042a63f3 100644 --- a/docs/import-all-c128.p8 +++ b/docs/import-all-c128.p8 @@ -9,7 +9,7 @@ ;;%import floats %import math %import prog8_lib -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/import-all-c64.p8 b/docs/import-all-c64.p8 index feb461a7b..97453f2a9 100644 --- a/docs/import-all-c64.p8 +++ b/docs/import-all-c64.p8 @@ -10,7 +10,7 @@ %import graphics %import math %import prog8_lib -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/import-all-cx16.p8 b/docs/import-all-cx16.p8 index 063efc8a1..347c05c55 100644 --- a/docs/import-all-cx16.p8 +++ b/docs/import-all-cx16.p8 @@ -18,7 +18,7 @@ %import prog8_lib %import psg %import sprites -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/import-all-neo.p8 b/docs/import-all-neo.p8 index d265ae6e5..40df2470b 100644 --- a/docs/import-all-neo.p8 +++ b/docs/import-all-neo.p8 @@ -6,5 +6,5 @@ %import conv %import math %import prog8_lib -%import string +%import strings %import syslib diff --git a/docs/import-all-pet32.p8 b/docs/import-all-pet32.p8 index 6fdf094d6..04d9d9d5b 100644 --- a/docs/import-all-pet32.p8 +++ b/docs/import-all-pet32.p8 @@ -7,7 +7,7 @@ %import cx16logo %import math %import prog8_lib -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/import-all-virtual.p8 b/docs/import-all-virtual.p8 index 7d7741e76..4a90f8788 100644 --- a/docs/import-all-virtual.p8 +++ b/docs/import-all-virtual.p8 @@ -11,7 +11,7 @@ %import math %import monogfx %import prog8_lib -%import string +%import strings %import syslib %import test_stack %import textio diff --git a/docs/source/_static/symboldumps/skeletons-atari.txt b/docs/source/_static/symboldumps/skeletons-atari.txt index 65e7df9df..44bd32160 100644 --- a/docs/source/_static/symboldumps/skeletons-atari.txt +++ b/docs/source/_static/symboldumps/skeletons-atari.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-atari.p8 @@ -137,10 +138,10 @@ math { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -192,12 +193,20 @@ atari { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/_static/symboldumps/skeletons-c128.txt b/docs/source/_static/symboldumps/skeletons-c128.txt index 1ae9b43f0..4a17583a1 100644 --- a/docs/source/_static/symboldumps/skeletons-c128.txt +++ b/docs/source/_static/symboldumps/skeletons-c128.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-c128.p8 @@ -179,10 +180,10 @@ diskio { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -453,12 +454,20 @@ c128 { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/_static/symboldumps/skeletons-c64.txt b/docs/source/_static/symboldumps/skeletons-c64.txt index ac5e6c73f..6ebfdae66 100644 --- a/docs/source/_static/symboldumps/skeletons-c64.txt +++ b/docs/source/_static/symboldumps/skeletons-c64.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-c64.p8 @@ -102,6 +103,8 @@ LIBRARY MODULE NAME: floats --------------------------- floats { + const float E + const float EPSILON const float PI const float TWOPI const float π @@ -300,10 +303,10 @@ diskio { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -575,12 +578,22 @@ c64 { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const float MAX_FLOAT + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const float MIN_FLOAT + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/_static/symboldumps/skeletons-cx16.txt b/docs/source/_static/symboldumps/skeletons-cx16.txt index 2992c8b3e..01d656a01 100644 --- a/docs/source/_static/symboldumps/skeletons-cx16.txt +++ b/docs/source/_static/symboldumps/skeletons-cx16.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-cx16.p8 @@ -236,6 +237,8 @@ LIBRARY MODULE NAME: floats --------------------------- floats { + const float E + const float EPSILON const float PI const float TWOPI const float π @@ -600,10 +603,10 @@ sprites { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -1129,12 +1132,22 @@ cx16 { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const float MAX_FLOAT + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const float MIN_FLOAT + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () @@ -1192,8 +1205,7 @@ LIBRARY MODULE NAME: textio txt { const ubyte DEFAULT_HEIGHT const ubyte DEFAULT_WIDTH - const uword VERA_TEXTMATRIX_ADDR - const ubyte VERA_TEXTMATRIX_BANK + const long VERA_TEXTMATRIX ubyte[] color_to_charcode bell () chrout (ubyte character @A) = $ffd2 diff --git a/docs/source/_static/symboldumps/skeletons-neo.txt b/docs/source/_static/symboldumps/skeletons-neo.txt index a3a8d10d7..b2227452d 100644 --- a/docs/source/_static/symboldumps/skeletons-neo.txt +++ b/docs/source/_static/symboldumps/skeletons-neo.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-neo.p8 @@ -127,10 +128,10 @@ math { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -177,12 +178,20 @@ neo { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/_static/symboldumps/skeletons-pet32.txt b/docs/source/_static/symboldumps/skeletons-pet32.txt index f4de0b06c..762c88ba7 100644 --- a/docs/source/_static/symboldumps/skeletons-pet32.txt +++ b/docs/source/_static/symboldumps/skeletons-pet32.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-pet32.p8 @@ -137,10 +138,10 @@ math { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (uword target @R0, uword suffix @R1) -> clobbers (Y) -> ubyte @A compare (uword string1 @R0, uword string2 @AY) -> clobbers (Y) -> byte @A contains (uword string @AY, ubyte character @X) -> bool @Pc @@ -210,12 +211,20 @@ cbm { } sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/_static/symboldumps/skeletons-virtual.txt b/docs/source/_static/symboldumps/skeletons-virtual.txt index 3d0584ece..40c2cbf2b 100644 --- a/docs/source/_static/symboldumps/skeletons-virtual.txt +++ b/docs/source/_static/symboldumps/skeletons-virtual.txt @@ -1,5 +1,6 @@ -Prog8 compiler v10.5.1 by Irmen de Jong (irmen@razorvine.net) +Prog8 compiler v10.6-SNAPSHOT by Irmen de Jong (irmen@razorvine.net) +Prerelease version from git commit 7a647300 in branch nextversion This software is licensed under the GNU GPL 3.0, see https://www.gnu.org/licenses/gpl.html Compiling program import-all-virtual.p8 @@ -143,6 +144,8 @@ LIBRARY MODULE NAME: floats --------------------------- floats { + const float E + const float EPSILON const float PI const float TWOPI const float π @@ -251,10 +254,10 @@ monogfx { } -LIBRARY MODULE NAME: string ---------------------------- +LIBRARY MODULE NAME: strings +---------------------------- -string { +strings { append (str target, str suffix) -> ubyte compare (str st1, str st2) -> byte contains (str st, ubyte character) -> bool @@ -294,12 +297,22 @@ LIBRARY MODULE NAME: syslib --------------------------- sys { - const ubyte sizeof_bool - const ubyte sizeof_byte - const ubyte sizeof_float - const ubyte sizeof_ubyte - const ubyte sizeof_uword - const ubyte sizeof_word + const byte MAX_BYTE + const float MAX_FLOAT + const ubyte MAX_UBYTE + const uword MAX_UWORD + const word MAX_WORD + const byte MIN_BYTE + const float MIN_FLOAT + const ubyte MIN_UBYTE + const uword MIN_UWORD + const word MIN_WORD + const ubyte SIZEOF_BOOL + const ubyte SIZEOF_BYTE + const ubyte SIZEOF_FLOAT + const ubyte SIZEOF_UBYTE + const ubyte SIZEOF_UWORD + const ubyte SIZEOF_WORD const ubyte target clear_carry () clear_irqd () diff --git a/docs/source/libraries.rst b/docs/source/libraries.rst index 8b50dab79..02bfa74dc 100644 --- a/docs/source/libraries.rst +++ b/docs/source/libraries.rst @@ -78,7 +78,7 @@ len (x) Note: this can be different from the number of *bytes* in memory if the datatype isn't a byte. See sizeof(). Note: lengths of strings and arrays are determined at compile-time! If your program modifies the actual length of the string during execution, the value of len(s) may no longer be correct! - (use the ``string.length`` routine if you want to dynamically determine the length by counting to the + (use the ``strings.length`` routine if you want to dynamically determine the length by counting to the first 0-byte) @@ -482,8 +482,8 @@ to see what's in there. (Note: slight variations for different compiler targets) descriptions for the various methods in this library for details and tips. -string ------- +strings +------- Provides string manipulation routines. ``length (str) -> ubyte length`` @@ -527,7 +527,7 @@ Provides string manipulation routines. ``compare (string1, string2) -> ubyte result`` Returns -1, 0 or 1 depending on whether string1 sorts before, equal or after string2. Note that you can also directly compare strings and string values with each other - using ``==``, ``<`` etcetera (it will use string.compare for you under water automatically). + using ``==``, ``<`` etcetera (it will use strings.compare for you under water automatically). This even works when dealing with uword (pointer) variables when comparing them to a string type. ``copy (from, to) -> ubyte length`` diff --git a/docs/source/programming.rst b/docs/source/programming.rst index b3345c046..9cd95c7c5 100644 --- a/docs/source/programming.rst +++ b/docs/source/programming.rst @@ -432,13 +432,13 @@ read the syntax reference on strings. Using the ``in`` operator you can easily check if a character is present in a string, example: ``if '@' in email_address {....}`` (however this gives no clue about the location -in the string where the character is present, if you need that, use the ``string.find()`` +in the string where the character is present, if you need that, use the ``strings.find()`` library function instead) **Caution:** This checks *all* elements in the string with the length as it was initially declared. Even when a string was changed and is terminated early with a 0-byte early, the containment check with ``in`` will still look at all character positions in the initial string. -Consider using ``string.find`` followed by ``if_cs`` (for instance) to do a "safer" search +Consider using ``strings.find`` followed by ``if_cs`` (for instance) to do a "safer" search for a character in such strings (one that stops at the first 0 byte) @@ -482,7 +482,7 @@ by the compiler everywhere you refer to the constant (and no memory is allocated for the constant itself). Onlythe simple numeric types (byte, word, float) can be defined as a constant. If something is defined as a constant, very efficient code can usually be generated from it. Variables on the other hand can't be optimized as much, need memory, and more code to manipulate them. -Note that a subset of the library routines in the ``math``, ``string`` and ``floats`` modules are recognised in +Note that a subset of the library routines in the ``math``, ``strings`` and ``floats`` modules are recognised in compile time expressions. For example, the compiler knows what ``math.sin8u(12)`` is and replaces it with the computed result. When using ``&`` (the address-of operator but now applied to a datatype), the variable will point to specific location in memory, diff --git a/docs/source/todo.rst b/docs/source/todo.rst index 50b408034..4c05cbbfd 100644 --- a/docs/source/todo.rst +++ b/docs/source/todo.rst @@ -8,7 +8,6 @@ Future Things and Ideas ^^^^^^^^^^^^^^^^^^^^^^^ - something to reduce the need to use fully qualified names all the time. 'with' ? Or 'using '? -- rename 'string' module to 'strings' to be consistent with 'floats'? - on the C64: make the floating point routines @banked so that basic can be permanently banked out even if you use floats? But this will crash when the call is done from program code at $a000+ - Libraries: improve ability to create library files in prog8; for instance there's still stuff injected into the start of the start() routine AND there is separate setup logic going on before calling it. Make up our mind! Maybe all setup does need to be put into start() ? because the program cannot function correctly when the variables aren't initialized properly bss is not cleared etc. etc. diff --git a/examples/animals.p8 b/examples/animals.p8 index 10e98b044..a100a7546 100644 --- a/examples/animals.p8 +++ b/examples/animals.p8 @@ -1,5 +1,5 @@ %import textio -%import string +%import strings ; Animal guessing game where the computer gets smarter every time. ; Note: this program can be compiled for multiple target systems. @@ -114,8 +114,8 @@ main { animals[new_animal_number] = animal_names_ptr questions[new_question_number] = questions_ptr - animal_names_ptr += string.copy(name, animal_names_ptr)+1 ; store animal name in buffer - questions_ptr += string.copy(userinput, questions_ptr)+1 ; store question in buffer + animal_names_ptr += strings.copy(name, animal_names_ptr)+1 ; store animal name in buffer + questions_ptr += strings.copy(userinput, questions_ptr)+1 ; store question in buffer answers_questions[new_question_number] = mkword(0, 0) if answer[0]=='y' diff --git a/examples/c64/banking.p8 b/examples/c64/banking.p8 index 908d5cee5..c166d050b 100644 --- a/examples/c64/banking.p8 +++ b/examples/c64/banking.p8 @@ -1,4 +1,4 @@ -%import string +%import strings %import textio %option no_sysinit %zeropage basicsafe @@ -9,7 +9,7 @@ main { sub start() { ; copy basic rom to ram and replace ready prompt sys.memcopy($a000, $a000, $2000) - void string.copy(iso:"HELLO!\r", $a378) + void strings.copy(iso:"HELLO!\r", $a378) txt.print("8 bytes at $f000 (kernal rom):\n") for cx16.r0 in $f000 to $f007 { @@ -21,7 +21,7 @@ main { ; store some other data in the RAM below those kernal ROM locations ; switch off kernal rom to see those bytes ; we cannot print during this time and the IRQ has to be disabled temporarily as well. - void string.copy("hello !?", $f000) + void strings.copy("hello !?", $f000) sys.set_irqd() c64.banks(%101) ; switch off roms ubyte[8] buffer diff --git a/examples/cx16/amiga.p8 b/examples/cx16/amiga.p8 index ccf89bb96..14d52a4f8 100644 --- a/examples/cx16/amiga.p8 +++ b/examples/cx16/amiga.p8 @@ -1,6 +1,6 @@ %import textio %import palette -%import string +%import strings %import gfx_hires ; Mockup of a classic Amiga Workbench screen. @@ -164,7 +164,7 @@ widget { const ubyte height = 28 highlightedrect(x, y, width, height, false, false) uword middlex = x+width/2+1 - ubyte halfstring = string.length(caption) * 4 + ubyte halfstring = strings.length(caption) * 4 gfx_hires.text(middlex-halfstring,y+height+1,1,caption) gfx_hires.disc(x+width/4+4, y+height/2, height/2-3, 1) gfx_hires.fillrect(x+20,y+12,width/2,height/2-4,3) diff --git a/examples/cx16/chunkedfile/mcf.p8 b/examples/cx16/chunkedfile/mcf.p8 index 710978439..701506a0a 100644 --- a/examples/cx16/chunkedfile/mcf.p8 +++ b/examples/cx16/chunkedfile/mcf.p8 @@ -1,5 +1,5 @@ %import syslib -%import string +%import strings ; Streaming routine for MCF files (multipurpose chunk format): ; 1. call open() @@ -18,7 +18,7 @@ mcf { sub open(str filename, ubyte drive, ubyte channel) -> bool { file_channel = channel - cbm.SETNAM(string.length(filename), filename) + cbm.SETNAM(strings.length(filename), filename) cbm.SETLFS(channel, drive, 2) void cbm.OPEN() if_cc { diff --git a/examples/cx16/fileseek.p8 b/examples/cx16/fileseek.p8 index e945caf05..3f0e91845 100644 --- a/examples/cx16/fileseek.p8 +++ b/examples/cx16/fileseek.p8 @@ -16,8 +16,8 @@ main { if diskio.f_open_w("@:seektestfile.bin") { repeat 100 { str text = "hello world.*" - void diskio.f_write(text, string.length(text)) - total += string.length(text) + void diskio.f_write(text, strings.length(text)) + total += strings.length(text) } diskio.f_close_w() txt.print("written size=") diff --git a/examples/cx16/floatparse.p8 b/examples/cx16/floatparse.p8 index 594fd832f..d4812559f 100644 --- a/examples/cx16/floatparse.p8 +++ b/examples/cx16/floatparse.p8 @@ -1,6 +1,6 @@ %import floats %import textio -%import string +%import strings %zeropage basicsafe main { @@ -75,7 +75,7 @@ main { '-' -> negative=true '+', ' ' -> { /* skip */ } else -> { - if string.isdigit(cx16.r0L) { + if strings.isdigit(cx16.r0L) { result *= 10 result += cx16.r0L - '0' } else @@ -92,7 +92,7 @@ main { cx16.r0L = @(stringptr) if cx16.r0L==' ' continue - else if string.isdigit(cx16.r0L) { + else if strings.isdigit(cx16.r0L) { exponent-- result *= 10 result += cx16.r0L - '0' @@ -113,7 +113,7 @@ main { '+', ' ' -> { /* skip */ } '-' -> neg_exponent=true else -> { - if string.isdigit(cx16.r0L) { + if strings.isdigit(cx16.r0L) { exp_value *= 10 exp_value += cx16.r0L - '0' } else diff --git a/examples/test.p8 b/examples/test.p8 index e13fcb643..26f02a64e 100644 --- a/examples/test.p8 +++ b/examples/test.p8 @@ -1,5 +1,7 @@ %import floats +%import strings + main { sub start() { } diff --git a/examples/textelite.p8 b/examples/textelite.p8 index 204d83b86..f48e3c0f1 100644 --- a/examples/textelite.p8 +++ b/examples/textelite.p8 @@ -1,7 +1,7 @@ %import textio %import conv %import diskio -%import string +%import strings %zeropage basicsafe ; Prog8 adaptation of the Text-Elite galaxy system trading simulation engine. @@ -517,7 +517,7 @@ galaxy { ubyte distance = planet.distance(px, py) if distance <= max_distance { planet.name = make_current_planet_name() - planet.name[0] = string.upperchar(planet.name[0]) + planet.name[0] = strings.upperchar(planet.name[0]) uword tx = planet.x uword ty = planet.y if local { @@ -803,7 +803,7 @@ planet { } } randname[nx] = 0 - randname[0] = string.upperchar(randname[0]) + randname[0] = strings.upperchar(randname[0]) return randname } @@ -875,12 +875,12 @@ planet { source_ptr = source_stack[stack_ptr] } else { if c == $b0 { - @(result_ptr) = string.upperchar(name[0]) + @(result_ptr) = strings.upperchar(name[0]) result_ptr++ concat_string(&name + 1) } else if c == $b1 { - @(result_ptr) = string.upperchar(name[0]) + @(result_ptr) = strings.upperchar(name[0]) result_ptr++ ubyte ni for ni in 1 to len(name) { @@ -995,7 +995,7 @@ planet { sub print_name_uppercase() { for cx16.r0L in name - txt.chrout(string.upperchar(cx16.r0L)) + txt.chrout(strings.upperchar(cx16.r0L)) } sub getword(ubyte listnum, ubyte wordidx) -> uword { @@ -1012,7 +1012,7 @@ util { if pc == 0 return true ; to lowercase for case insensitive compare: - if string.lowerchar(pc)!=string.lowerchar(sc) + if strings.lowerchar(pc)!=strings.lowerchar(sc) return false prefixptr++ stringptr++ @@ -1020,7 +1020,7 @@ util { } sub print_right(ubyte width, uword s) { - repeat width - string.length(s) { + repeat width - strings.length(s) { txt.spc() } txt.print(s)