diff --git a/src/main/java/dk/camelot64/kickc/Compiler.java b/src/main/java/dk/camelot64/kickc/Compiler.java
index ae6bf7a63..89809e3f9 100644
--- a/src/main/java/dk/camelot64/kickc/Compiler.java
+++ b/src/main/java/dk/camelot64/kickc/Compiler.java
@@ -1,10 +1,7 @@
 package dk.camelot64.kickc;
 
 import dk.camelot64.kickc.asm.AsmProgram;
-import dk.camelot64.kickc.model.Comment;
-import dk.camelot64.kickc.model.CompileError;
-import dk.camelot64.kickc.model.Program;
-import dk.camelot64.kickc.model.StatementSequence;
+import dk.camelot64.kickc.model.*;
 import dk.camelot64.kickc.model.statements.StatementCall;
 import dk.camelot64.kickc.model.statements.StatementSource;
 import dk.camelot64.kickc.model.symbols.Variable;
@@ -33,6 +30,9 @@ public class Compiler {
    /** Enable the zero-page coalesce pass. It takes a lot of time, but limits the zero page usage significantly. */
    private boolean enableZeroPageCoalasce = false;
 
+   /** The target platform. */
+   private TargetPlatform targetPlatform = TargetPlatform.DEFAULT;
+
    public Compiler() {
       this.program = new Program();
    }
@@ -45,11 +45,14 @@ public class Compiler {
       this.enableZeroPageCoalasce = optimizeZeroPageCoalesce;
    }
 
+   public void setTargetPlatform(TargetPlatform targetPlatform) {
+      program.setTargetPlatform(targetPlatform);
+   }
+
    public void setLog(CompileLog compileLog) {
       program.setLog(compileLog);
    }
 
-
    public static void loadAndParseFile(String fileName, Program program, Path currentPath) {
       try {
          if(!fileName.endsWith(".kc")) {
@@ -275,7 +278,6 @@ public class Compiler {
       optimizations.add(new PassNVariableReferenceInfos(program));
       optimizations.add(new Pass2UnaryNotSimplification(program));
       optimizations.add(new Pass2AliasElimination(program));
-      //optimizations.add(new Pass2SelfPhiElimination(program));
       optimizations.add(new Pass2IdenticalPhiElimination(program));
       optimizations.add(new Pass2DuplicateRValueIdentification(program));
       optimizations.add(new Pass2ConditionalJumpSimplification(program));
@@ -484,6 +486,7 @@ public class Compiler {
       new Pass4CodeGeneration(program, false).generate();
       new Pass4AssertNoCpuClobber(program).check();
       getLog().append("\nINITIAL ASM");
+      getLog().append("Target platform is "+program.getTargetPlatform().getName());
       getLog().append(program.getAsm().toString(new AsmProgram.AsmPrintState(true), program));
 
       // Find potential registers for each live range equivalence class - based on clobbering of fragments
diff --git a/src/main/java/dk/camelot64/kickc/KickC.java b/src/main/java/dk/camelot64/kickc/KickC.java
index 678be571b..6e8b212fd 100644
--- a/src/main/java/dk/camelot64/kickc/KickC.java
+++ b/src/main/java/dk/camelot64/kickc/KickC.java
@@ -6,6 +6,7 @@ import dk.camelot64.kickc.fragment.AsmFragmentTemplateSynthesizer;
 import dk.camelot64.kickc.fragment.AsmFragmentTemplateUsages;
 import dk.camelot64.kickc.model.CompileError;
 import dk.camelot64.kickc.model.Program;
+import dk.camelot64.kickc.model.TargetPlatform;
 import kickass.KickAssembler;
 import picocli.CommandLine;
 
@@ -115,6 +116,8 @@ public class KickC implements Callable<Void> {
    @CommandLine.Option(names = {"-Si"}, description = "Interleave comments with intermediate language code and ASM fragment names in the generated ASM.")
    private boolean interleaveIclFile = false;
 
+   @CommandLine.Option(names = {"-t", "-target"}, description = "The target system. Default is C64 with BASIC upstart. ")
+   private String target = TargetPlatform.C64BASIC.getName();
 
    /** Program Exit Code signaling a compile error. */
    public static final int COMPILE_ERROR = 1;
@@ -131,6 +134,21 @@ public class KickC implements Callable<Void> {
 
       Compiler compiler = new Compiler();
 
+      if(target!=null) {
+         TargetPlatform targetPlatform = TargetPlatform.getTargetPlatform(target);
+         if(targetPlatform==null) {
+            System.err.println("Unknown target platform "+target);
+            StringBuffer supported = new StringBuffer();
+            supported.append("The supported target platforms are: ");
+            for(TargetPlatform value : TargetPlatform.values()) {
+               supported.append(value.getName()).append(" ");
+            }
+            System.err.println(supported);
+            System.exit(COMPILE_ERROR);
+         }
+         compiler.setTargetPlatform(targetPlatform);
+      }
+
       if(libDir != null) {
          for(Path libPath : libDir) {
             compiler.addImportPath(libPath.toString());
diff --git a/src/main/java/dk/camelot64/kickc/model/Program.java b/src/main/java/dk/camelot64/kickc/model/Program.java
index cccbfaf21..c6ae55aaf 100644
--- a/src/main/java/dk/camelot64/kickc/model/Program.java
+++ b/src/main/java/dk/camelot64/kickc/model/Program.java
@@ -75,6 +75,8 @@ public class Program {
    private Map<LabelRef, PhiTransitions> phiTransitions;
    /** Struct values unwound to individual variables. */
    private StructUnwinding structUnwinding;
+   /** The target platform that the program is being build for. */
+   private TargetPlatform targetPlatform = TargetPlatform.DEFAULT;
 
    public Program() {
       this.scope = new ProgramScope();
@@ -85,6 +87,14 @@ public class Program {
       this.reservedZps = new ArrayList<>();
    }
 
+   public TargetPlatform getTargetPlatform() {
+      return targetPlatform;
+   }
+
+   public void setTargetPlatform(TargetPlatform targetPlatform) {
+      this.targetPlatform = targetPlatform;
+   }
+
    public StructUnwinding getStructUnwinding() {
       return structUnwinding;
    }
diff --git a/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java
new file mode 100644
index 000000000..33e6ba41d
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/model/TargetPlatform.java
@@ -0,0 +1,36 @@
+package dk.camelot64.kickc.model;
+
+/**
+ * The target platform the compiler is creating a program for.
+ */
+public enum TargetPlatform {
+   /** Commodore 64 with BASIC upstart SYS-command. */
+   C64BASIC("c64basic"),
+   /** 6502 assembler (with no upstart code.)*/
+   ASM6502("asm6502");
+
+   /** The default target platform. */
+   public static final TargetPlatform DEFAULT = C64BASIC;
+
+   /** The platform name. */
+   private String name;
+
+   TargetPlatform(String name) {
+      this.name = name;
+   }
+
+   public String getName() {
+      return name;
+   }
+
+   /** Get a target platform by name. */
+   public static TargetPlatform getTargetPlatform(String name) {
+      for(TargetPlatform value : TargetPlatform.values()) {
+         if(value.getName().equalsIgnoreCase(name)) {
+            return value;
+         }
+      }
+      return null;
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickC.g4 b/src/main/java/dk/camelot64/kickc/parser/KickC.g4
index a3f6c6e93..b5564088e 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickC.g4
+++ b/src/main/java/dk/camelot64/kickc/parser/KickC.g4
@@ -68,6 +68,7 @@ parameterDecl
 globalDirective
     : '#' directiveReserve #globalDirectiveReserve
     | '#' 'pc' '(' NUMBER ')' #globalDirectivePc
+    | '#' 'platform' '(' NAME ')' #globalDirectivePlatform
     | '#' 'encoding' '(' NAME')' #globalDirectiveEncoding
     ;
 
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickC.tokens b/src/main/java/dk/camelot64/kickc/parser/KickC.tokens
index e35ffe7a3..e74cc1bef 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickC.tokens
+++ b/src/main/java/dk/camelot64/kickc/parser/KickC.tokens
@@ -79,26 +79,27 @@ T__77=78
 T__78=79
 T__79=80
 T__80=81
-MNEMONIC=82
-KICKASM=83
-SIMPLETYPE=84
-STRING=85
-CHAR=86
-BOOLEAN=87
-NUMBER=88
-NUMFLOAT=89
-BINFLOAT=90
-DECFLOAT=91
-HEXFLOAT=92
-NUMINT=93
-BININTEGER=94
-DECINTEGER=95
-HEXINTEGER=96
-NAME=97
-ASMREL=98
-WS=99
-COMMENT_LINE=100
-COMMENT_BLOCK=101
+T__81=82
+MNEMONIC=83
+KICKASM=84
+SIMPLETYPE=85
+STRING=86
+CHAR=87
+BOOLEAN=88
+NUMBER=89
+NUMFLOAT=90
+BINFLOAT=91
+DECFLOAT=92
+HEXFLOAT=93
+NUMINT=94
+BININTEGER=95
+DECINTEGER=96
+HEXINTEGER=97
+NAME=98
+ASMREL=99
+WS=100
+COMMENT_LINE=101
+COMMENT_BLOCK=102
 'import'=1
 ';'=2
 'typedef'=3
@@ -110,73 +111,74 @@ COMMENT_BLOCK=101
 '}'=9
 '#'=10
 'pc'=11
-'encoding'=12
-'const'=13
-'extern'=14
-'align'=15
-'register'=16
-'inline'=17
-'volatile'=18
-'interrupt'=19
-'reserve'=20
-'if'=21
-'else'=22
-'while'=23
-'do'=24
-'for'=25
-'return'=26
-'break'=27
-'continue'=28
-'asm'=29
-':'=30
-'..'=31
-'signed'=32
-'unsigned'=33
-'*'=34
-'['=35
-']'=36
-'struct'=37
-'enum'=38
-'.'=39
-'->'=40
-'sizeof'=41
-'typeid'=42
-'--'=43
-'++'=44
-'+'=45
-'-'=46
-'!'=47
-'&'=48
-'~'=49
-'>>'=50
-'<<'=51
-'/'=52
-'%'=53
-'<'=54
-'>'=55
-'=='=56
-'!='=57
-'<='=58
-'>='=59
-'^'=60
-'|'=61
-'&&'=62
-'||'=63
-'?'=64
-'+='=65
-'-='=66
-'*='=67
-'/='=68
-'%='=69
-'<<='=70
-'>>='=71
-'&='=72
-'|='=73
-'^='=74
-'kickasm'=75
-'resource'=76
-'uses'=77
-'clobbers'=78
-'bytes'=79
-'cycles'=80
-'.byte'=81
+'platform'=12
+'encoding'=13
+'const'=14
+'extern'=15
+'align'=16
+'register'=17
+'inline'=18
+'volatile'=19
+'interrupt'=20
+'reserve'=21
+'if'=22
+'else'=23
+'while'=24
+'do'=25
+'for'=26
+'return'=27
+'break'=28
+'continue'=29
+'asm'=30
+':'=31
+'..'=32
+'signed'=33
+'unsigned'=34
+'*'=35
+'['=36
+']'=37
+'struct'=38
+'enum'=39
+'.'=40
+'->'=41
+'sizeof'=42
+'typeid'=43
+'--'=44
+'++'=45
+'+'=46
+'-'=47
+'!'=48
+'&'=49
+'~'=50
+'>>'=51
+'<<'=52
+'/'=53
+'%'=54
+'<'=55
+'>'=56
+'=='=57
+'!='=58
+'<='=59
+'>='=60
+'^'=61
+'|'=62
+'&&'=63
+'||'=64
+'?'=65
+'+='=66
+'-='=67
+'*='=68
+'/='=69
+'%='=70
+'<<='=71
+'>>='=72
+'&='=73
+'|='=74
+'^='=75
+'kickasm'=76
+'resource'=77
+'uses'=78
+'clobbers'=79
+'bytes'=80
+'cycles'=81
+'.byte'=82
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java b/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java
index cb8a11fa9..87153b0c2 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCBaseListener.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 
 import org.antlr.v4.runtime.ParserRuleContext;
@@ -227,6 +227,18 @@ public class KickCBaseListener implements KickCListener {
 	 * <p>The default implementation does nothing.</p>
 	 */
 	@Override public void exitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx) { }
+	/**
+	 * {@inheritDoc}
+	 *
+	 * <p>The default implementation does nothing.</p>
+	 */
+	@Override public void enterGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { }
+	/**
+	 * {@inheritDoc}
+	 *
+	 * <p>The default implementation does nothing.</p>
+	 */
+	@Override public void exitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { }
 	/**
 	 * {@inheritDoc}
 	 *
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java b/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java
index dba09d73e..52e652727 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCBaseVisitor.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
 
@@ -137,6 +137,13 @@ public class KickCBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements
 	 * {@link #visitChildren} on {@code ctx}.</p>
 	 */
 	@Override public T visitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx) { return visitChildren(ctx); }
+	/**
+	 * {@inheritDoc}
+	 *
+	 * <p>The default implementation returns the result of calling
+	 * {@link #visitChildren} on {@code ctx}.</p>
+	 */
+	@Override public T visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) { return visitChildren(ctx); }
 	/**
 	 * {@inheritDoc}
 	 *
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java
index 7f417031e..123456f74 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 import org.antlr.v4.runtime.Lexer;
 import org.antlr.v4.runtime.CharStream;
@@ -28,10 +28,10 @@ public class KickCLexer extends Lexer {
 		T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, 
 		T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, 
 		T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, 
-		T__80=81, MNEMONIC=82, KICKASM=83, SIMPLETYPE=84, STRING=85, CHAR=86, 
-		BOOLEAN=87, NUMBER=88, NUMFLOAT=89, BINFLOAT=90, DECFLOAT=91, HEXFLOAT=92, 
-		NUMINT=93, BININTEGER=94, DECINTEGER=95, HEXINTEGER=96, NAME=97, ASMREL=98, 
-		WS=99, COMMENT_LINE=100, COMMENT_BLOCK=101;
+		T__80=81, T__81=82, MNEMONIC=83, KICKASM=84, SIMPLETYPE=85, STRING=86, 
+		CHAR=87, BOOLEAN=88, NUMBER=89, NUMFLOAT=90, BINFLOAT=91, DECFLOAT=92, 
+		HEXFLOAT=93, NUMINT=94, BININTEGER=95, DECINTEGER=96, HEXINTEGER=97, NAME=98, 
+		ASMREL=99, WS=100, COMMENT_LINE=101, COMMENT_BLOCK=102;
 	public static String[] channelNames = {
 		"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
 	};
@@ -51,17 +51,17 @@ public class KickCLexer extends Lexer {
 		"T__57", "T__58", "T__59", "T__60", "T__61", "T__62", "T__63", "T__64", 
 		"T__65", "T__66", "T__67", "T__68", "T__69", "T__70", "T__71", "T__72", 
 		"T__73", "T__74", "T__75", "T__76", "T__77", "T__78", "T__79", "T__80", 
-		"MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", 
-		"NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", 
+		"T__81", "MNEMONIC", "KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", 
+		"NUMBER", "NUMFLOAT", "BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", 
 		"DECINTEGER", "HEXINTEGER", "BINDIGIT", "DECDIGIT", "HEXDIGIT", "NAME", 
 		"NAME_START", "NAME_CHAR", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK"
 	};
 
 	private static final String[] _LITERAL_NAMES = {
 		null, "'import'", "';'", "'typedef'", "','", "'='", "'('", "')'", "'{'", 
-		"'}'", "'#'", "'pc'", "'encoding'", "'const'", "'extern'", "'align'", 
-		"'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", "'if'", 
-		"'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", 
+		"'}'", "'#'", "'pc'", "'platform'", "'encoding'", "'const'", "'extern'", 
+		"'align'", "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", 
+		"'if'", "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", 
 		"'asm'", "':'", "'..'", "'signed'", "'unsigned'", "'*'", "'['", "']'", 
 		"'struct'", "'enum'", "'.'", "'->'", "'sizeof'", "'typeid'", "'--'", "'++'", 
 		"'+'", "'-'", "'!'", "'&'", "'~'", "'>>'", "'<<'", "'/'", "'%'", "'<'", 
@@ -77,7 +77,7 @@ public class KickCLexer extends Lexer {
 		null, null, null, null, null, null, null, null, null, null, null, null, 
 		null, null, null, null, null, null, null, null, null, null, null, null, 
 		null, null, null, null, null, null, null, null, null, null, null, null, 
-		null, null, null, null, null, null, null, null, null, null, "MNEMONIC", 
+		null, null, null, null, null, null, null, null, null, null, null, "MNEMONIC", 
 		"KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", "NUMFLOAT", 
 		"BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", 
 		"HEXINTEGER", "NAME", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK"
@@ -140,7 +140,7 @@ public class KickCLexer extends Lexer {
 	public ATN getATN() { return _ATN; }
 
 	public static final String _serializedATN =
-		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2g\u040f\b\1\4\2\t"+
+		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2h\u041a\b\1\4\2\t"+
 		"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
 		"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
 		"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
@@ -152,369 +152,372 @@ public class KickCLexer extends Lexer {
 		"\tI\4J\tJ\4K\tK\4L\tL\4M\tM\4N\tN\4O\tO\4P\tP\4Q\tQ\4R\tR\4S\tS\4T\tT"+
 		"\4U\tU\4V\tV\4W\tW\4X\tX\4Y\tY\4Z\tZ\4[\t[\4\\\t\\\4]\t]\4^\t^\4_\t_\4"+
 		"`\t`\4a\ta\4b\tb\4c\tc\4d\td\4e\te\4f\tf\4g\tg\4h\th\4i\ti\4j\tj\4k\t"+
-		"k\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4"+
-		"\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\f"+
-		"\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3\16\3\17"+
-		"\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3\20\3\20\3\21\3\21"+
-		"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3\22\3\22"+
-		"\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3\24\3\24"+
-		"\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\26"+
-		"\3\26\3\26\3\27\3\27\3\27\3\27\3\27\3\30\3\30\3\30\3\30\3\30\3\30\3\31"+
-		"\3\31\3\31\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33\3\33\3\33\3\33\3\34"+
-		"\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35\3\35"+
-		"\3\36\3\36\3\36\3\36\3\37\3\37\3 \3 \3 \3!\3!\3!\3!\3!\3!\3!\3\"\3\"\3"+
-		"\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3$\3$\3%\3%\3&\3&\3&\3&\3&\3&\3&\3\'"+
-		"\3\'\3\'\3\'\3\'\3(\3(\3)\3)\3)\3*\3*\3*\3*\3*\3*\3*\3+\3+\3+\3+\3+\3"+
-		"+\3+\3,\3,\3,\3-\3-\3-\3.\3.\3/\3/\3\60\3\60\3\61\3\61\3\62\3\62\3\63"+
-		"\3\63\3\63\3\64\3\64\3\64\3\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3"+
-		"9\3:\3:\3:\3;\3;\3;\3<\3<\3<\3=\3=\3>\3>\3?\3?\3?\3@\3@\3@\3A\3A\3B\3"+
-		"B\3B\3C\3C\3C\3D\3D\3D\3E\3E\3E\3F\3F\3F\3G\3G\3G\3G\3H\3H\3H\3H\3I\3"+
-		"I\3I\3J\3J\3J\3K\3K\3K\3L\3L\3L\3L\3L\3L\3L\3L\3M\3M\3M\3M\3M\3M\3M\3"+
-		"M\3M\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3O\3O\3O\3O\3P\3P\3P\3P\3P\3P\3Q\3"+
-		"Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3S\3"+
-		"S\3S\3S\3S\5S\u0310\nS\3T\3T\3T\3T\7T\u0316\nT\fT\16T\u0319\13T\3T\3T"+
-		"\3T\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U"+
-		"\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\3U\5U\u0343\nU\3V\3V\3V\3V"+
-		"\7V\u0349\nV\fV\16V\u034c\13V\3V\3V\5V\u0350\nV\3V\3V\5V\u0354\nV\5V\u0356"+
-		"\nV\3V\5V\u0359\nV\3W\3W\3W\3W\5W\u035f\nW\3W\3W\3X\3X\3X\3X\3X\3X\3X"+
-		"\3X\3X\5X\u036c\nX\3Y\3Y\5Y\u0370\nY\3Z\3Z\3Z\5Z\u0375\nZ\3[\3[\3[\3["+
-		"\3[\5[\u037c\n[\3[\7[\u037f\n[\f[\16[\u0382\13[\3[\3[\6[\u0386\n[\r[\16"+
-		"[\u0387\3\\\7\\\u038b\n\\\f\\\16\\\u038e\13\\\3\\\3\\\6\\\u0392\n\\\r"+
-		"\\\16\\\u0393\3]\3]\3]\3]\3]\5]\u039b\n]\3]\7]\u039e\n]\f]\16]\u03a1\13"+
-		"]\3]\3]\6]\u03a5\n]\r]\16]\u03a6\3^\3^\3^\5^\u03ac\n^\3^\3^\3^\5^\u03b1"+
-		"\n^\3_\3_\3_\6_\u03b6\n_\r_\16_\u03b7\3_\3_\6_\u03bc\n_\r_\16_\u03bd\5"+
-		"_\u03c0\n_\3`\6`\u03c3\n`\r`\16`\u03c4\3a\3a\3a\3a\3a\5a\u03cc\na\3a\6"+
-		"a\u03cf\na\ra\16a\u03d0\3b\3b\3c\3c\3d\3d\3e\3e\7e\u03db\ne\fe\16e\u03de"+
-		"\13e\3f\3f\3g\3g\3h\3h\7h\u03e6\nh\fh\16h\u03e9\13h\3h\6h\u03ec\nh\rh"+
-		"\16h\u03ed\3i\6i\u03f1\ni\ri\16i\u03f2\3i\3i\3j\3j\3j\3j\7j\u03fb\nj\f"+
-		"j\16j\u03fe\13j\3j\3j\3k\3k\3k\3k\7k\u0406\nk\fk\16k\u0409\13k\3k\3k\3"+
-		"k\3k\3k\4\u0317\u0407\2l\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f"+
-		"\27\r\31\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63"+
-		"\33\65\34\67\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62"+
-		"c\63e\64g\65i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087"+
-		"E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009b"+
-		"O\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00af"+
-		"Y\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3"+
-		"\2\u00c5\2\u00c7\2\u00c9c\u00cb\2\u00cd\2\u00cfd\u00d1e\u00d3f\u00d5g"+
-		"\3\2\22\3\2$$\3\2||\4\2rruu\4\2ooww\3\2))\4\2uuww\7\2dfkknnuuyy\4\2DD"+
-		"dd\3\2\62\63\3\2\62;\5\2\62;CHch\5\2C\\aac|\6\2\62;C\\aac|\4\2--//\6\2"+
-		"\13\f\17\17\"\"\u00a2\u00a2\4\2\f\f\17\17\2\u0481\2\3\3\2\2\2\2\5\3\2"+
-		"\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21"+
-		"\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2"+
-		"\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3"+
-		"\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3"+
-		"\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3"+
-		"\2\2\2\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2"+
-		"\2\2M\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2"+
-		"Y\3\2\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3"+
-		"\2\2\2\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2"+
-		"\2\2s\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2"+
-		"\177\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3"+
-		"\2\2\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2"+
-		"\2\u0091\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099"+
-		"\3\2\2\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2"+
-		"\2\2\u00a3\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab"+
-		"\3\2\2\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2"+
-		"\2\2\u00b5\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd"+
-		"\3\2\2\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c9\3\2\2\2\2\u00cf\3\2\2"+
-		"\2\2\u00d1\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\3\u00d7\3\2\2\2\5\u00de"+
-		"\3\2\2\2\7\u00e0\3\2\2\2\t\u00e8\3\2\2\2\13\u00ea\3\2\2\2\r\u00ec\3\2"+
-		"\2\2\17\u00ee\3\2\2\2\21\u00f0\3\2\2\2\23\u00f2\3\2\2\2\25\u00f4\3\2\2"+
-		"\2\27\u00f6\3\2\2\2\31\u00f9\3\2\2\2\33\u0102\3\2\2\2\35\u0108\3\2\2\2"+
-		"\37\u010f\3\2\2\2!\u0115\3\2\2\2#\u011e\3\2\2\2%\u0125\3\2\2\2\'\u012e"+
-		"\3\2\2\2)\u0138\3\2\2\2+\u0140\3\2\2\2-\u0143\3\2\2\2/\u0148\3\2\2\2\61"+
-		"\u014e\3\2\2\2\63\u0151\3\2\2\2\65\u0155\3\2\2\2\67\u015c\3\2\2\29\u0162"+
-		"\3\2\2\2;\u016b\3\2\2\2=\u016f\3\2\2\2?\u0171\3\2\2\2A\u0174\3\2\2\2C"+
-		"\u017b\3\2\2\2E\u0184\3\2\2\2G\u0186\3\2\2\2I\u0188\3\2\2\2K\u018a\3\2"+
-		"\2\2M\u0191\3\2\2\2O\u0196\3\2\2\2Q\u0198\3\2\2\2S\u019b\3\2\2\2U\u01a2"+
-		"\3\2\2\2W\u01a9\3\2\2\2Y\u01ac\3\2\2\2[\u01af\3\2\2\2]\u01b1\3\2\2\2_"+
-		"\u01b3\3\2\2\2a\u01b5\3\2\2\2c\u01b7\3\2\2\2e\u01b9\3\2\2\2g\u01bc\3\2"+
-		"\2\2i\u01bf\3\2\2\2k\u01c1\3\2\2\2m\u01c3\3\2\2\2o\u01c5\3\2\2\2q\u01c7"+
-		"\3\2\2\2s\u01ca\3\2\2\2u\u01cd\3\2\2\2w\u01d0\3\2\2\2y\u01d3\3\2\2\2{"+
-		"\u01d5\3\2\2\2}\u01d7\3\2\2\2\177\u01da\3\2\2\2\u0081\u01dd\3\2\2\2\u0083"+
-		"\u01df\3\2\2\2\u0085\u01e2\3\2\2\2\u0087\u01e5\3\2\2\2\u0089\u01e8\3\2"+
-		"\2\2\u008b\u01eb\3\2\2\2\u008d\u01ee\3\2\2\2\u008f\u01f2\3\2\2\2\u0091"+
-		"\u01f6\3\2\2\2\u0093\u01f9\3\2\2\2\u0095\u01fc\3\2\2\2\u0097\u01ff\3\2"+
-		"\2\2\u0099\u0207\3\2\2\2\u009b\u0210\3\2\2\2\u009d\u0215\3\2\2\2\u009f"+
-		"\u021e\3\2\2\2\u00a1\u0224\3\2\2\2\u00a3\u022b\3\2\2\2\u00a5\u030f\3\2"+
-		"\2\2\u00a7\u0311\3\2\2\2\u00a9\u0342\3\2\2\2\u00ab\u0344\3\2\2\2\u00ad"+
-		"\u035a\3\2\2\2\u00af\u036b\3\2\2\2\u00b1\u036f\3\2\2\2\u00b3\u0374\3\2"+
-		"\2\2\u00b5\u037b\3\2\2\2\u00b7\u038c\3\2\2\2\u00b9\u039a\3\2\2\2\u00bb"+
-		"\u03ab\3\2\2\2\u00bd\u03bf\3\2\2\2\u00bf\u03c2\3\2\2\2\u00c1\u03cb\3\2"+
-		"\2\2\u00c3\u03d2\3\2\2\2\u00c5\u03d4\3\2\2\2\u00c7\u03d6\3\2\2\2\u00c9"+
-		"\u03d8\3\2\2\2\u00cb\u03df\3\2\2\2\u00cd\u03e1\3\2\2\2\u00cf\u03e3\3\2"+
-		"\2\2\u00d1\u03f0\3\2\2\2\u00d3\u03f6\3\2\2\2\u00d5\u0401\3\2\2\2\u00d7"+
-		"\u00d8\7k\2\2\u00d8\u00d9\7o\2\2\u00d9\u00da\7r\2\2\u00da\u00db\7q\2\2"+
-		"\u00db\u00dc\7t\2\2\u00dc\u00dd\7v\2\2\u00dd\4\3\2\2\2\u00de\u00df\7="+
-		"\2\2\u00df\6\3\2\2\2\u00e0\u00e1\7v\2\2\u00e1\u00e2\7{\2\2\u00e2\u00e3"+
-		"\7r\2\2\u00e3\u00e4\7g\2\2\u00e4\u00e5\7f\2\2\u00e5\u00e6\7g\2\2\u00e6"+
-		"\u00e7\7h\2\2\u00e7\b\3\2\2\2\u00e8\u00e9\7.\2\2\u00e9\n\3\2\2\2\u00ea"+
-		"\u00eb\7?\2\2\u00eb\f\3\2\2\2\u00ec\u00ed\7*\2\2\u00ed\16\3\2\2\2\u00ee"+
-		"\u00ef\7+\2\2\u00ef\20\3\2\2\2\u00f0\u00f1\7}\2\2\u00f1\22\3\2\2\2\u00f2"+
-		"\u00f3\7\177\2\2\u00f3\24\3\2\2\2\u00f4\u00f5\7%\2\2\u00f5\26\3\2\2\2"+
-		"\u00f6\u00f7\7r\2\2\u00f7\u00f8\7e\2\2\u00f8\30\3\2\2\2\u00f9\u00fa\7"+
-		"g\2\2\u00fa\u00fb\7p\2\2\u00fb\u00fc\7e\2\2\u00fc\u00fd\7q\2\2\u00fd\u00fe"+
-		"\7f\2\2\u00fe\u00ff\7k\2\2\u00ff\u0100\7p\2\2\u0100\u0101\7i\2\2\u0101"+
-		"\32\3\2\2\2\u0102\u0103\7e\2\2\u0103\u0104\7q\2\2\u0104\u0105\7p\2\2\u0105"+
-		"\u0106\7u\2\2\u0106\u0107\7v\2\2\u0107\34\3\2\2\2\u0108\u0109\7g\2\2\u0109"+
-		"\u010a\7z\2\2\u010a\u010b\7v\2\2\u010b\u010c\7g\2\2\u010c\u010d\7t\2\2"+
-		"\u010d\u010e\7p\2\2\u010e\36\3\2\2\2\u010f\u0110\7c\2\2\u0110\u0111\7"+
-		"n\2\2\u0111\u0112\7k\2\2\u0112\u0113\7i\2\2\u0113\u0114\7p\2\2\u0114 "+
-		"\3\2\2\2\u0115\u0116\7t\2\2\u0116\u0117\7g\2\2\u0117\u0118\7i\2\2\u0118"+
-		"\u0119\7k\2\2\u0119\u011a\7u\2\2\u011a\u011b\7v\2\2\u011b\u011c\7g\2\2"+
-		"\u011c\u011d\7t\2\2\u011d\"\3\2\2\2\u011e\u011f\7k\2\2\u011f\u0120\7p"+
-		"\2\2\u0120\u0121\7n\2\2\u0121\u0122\7k\2\2\u0122\u0123\7p\2\2\u0123\u0124"+
-		"\7g\2\2\u0124$\3\2\2\2\u0125\u0126\7x\2\2\u0126\u0127\7q\2\2\u0127\u0128"+
-		"\7n\2\2\u0128\u0129\7c\2\2\u0129\u012a\7v\2\2\u012a\u012b\7k\2\2\u012b"+
-		"\u012c\7n\2\2\u012c\u012d\7g\2\2\u012d&\3\2\2\2\u012e\u012f\7k\2\2\u012f"+
-		"\u0130\7p\2\2\u0130\u0131\7v\2\2\u0131\u0132\7g\2\2\u0132\u0133\7t\2\2"+
-		"\u0133\u0134\7t\2\2\u0134\u0135\7w\2\2\u0135\u0136\7r\2\2\u0136\u0137"+
-		"\7v\2\2\u0137(\3\2\2\2\u0138\u0139\7t\2\2\u0139\u013a\7g\2\2\u013a\u013b"+
-		"\7u\2\2\u013b\u013c\7g\2\2\u013c\u013d\7t\2\2\u013d\u013e\7x\2\2\u013e"+
-		"\u013f\7g\2\2\u013f*\3\2\2\2\u0140\u0141\7k\2\2\u0141\u0142\7h\2\2\u0142"+
-		",\3\2\2\2\u0143\u0144\7g\2\2\u0144\u0145\7n\2\2\u0145\u0146\7u\2\2\u0146"+
-		"\u0147\7g\2\2\u0147.\3\2\2\2\u0148\u0149\7y\2\2\u0149\u014a\7j\2\2\u014a"+
-		"\u014b\7k\2\2\u014b\u014c\7n\2\2\u014c\u014d\7g\2\2\u014d\60\3\2\2\2\u014e"+
-		"\u014f\7f\2\2\u014f\u0150\7q\2\2\u0150\62\3\2\2\2\u0151\u0152\7h\2\2\u0152"+
-		"\u0153\7q\2\2\u0153\u0154\7t\2\2\u0154\64\3\2\2\2\u0155\u0156\7t\2\2\u0156"+
-		"\u0157\7g\2\2\u0157\u0158\7v\2\2\u0158\u0159\7w\2\2\u0159\u015a\7t\2\2"+
-		"\u015a\u015b\7p\2\2\u015b\66\3\2\2\2\u015c\u015d\7d\2\2\u015d\u015e\7"+
-		"t\2\2\u015e\u015f\7g\2\2\u015f\u0160\7c\2\2\u0160\u0161\7m\2\2\u01618"+
-		"\3\2\2\2\u0162\u0163\7e\2\2\u0163\u0164\7q\2\2\u0164\u0165\7p\2\2\u0165"+
-		"\u0166\7v\2\2\u0166\u0167\7k\2\2\u0167\u0168\7p\2\2\u0168\u0169\7w\2\2"+
-		"\u0169\u016a\7g\2\2\u016a:\3\2\2\2\u016b\u016c\7c\2\2\u016c\u016d\7u\2"+
-		"\2\u016d\u016e\7o\2\2\u016e<\3\2\2\2\u016f\u0170\7<\2\2\u0170>\3\2\2\2"+
-		"\u0171\u0172\7\60\2\2\u0172\u0173\7\60\2\2\u0173@\3\2\2\2\u0174\u0175"+
-		"\7u\2\2\u0175\u0176\7k\2\2\u0176\u0177\7i\2\2\u0177\u0178\7p\2\2\u0178"+
-		"\u0179\7g\2\2\u0179\u017a\7f\2\2\u017aB\3\2\2\2\u017b\u017c\7w\2\2\u017c"+
-		"\u017d\7p\2\2\u017d\u017e\7u\2\2\u017e\u017f\7k\2\2\u017f\u0180\7i\2\2"+
-		"\u0180\u0181\7p\2\2\u0181\u0182\7g\2\2\u0182\u0183\7f\2\2\u0183D\3\2\2"+
-		"\2\u0184\u0185\7,\2\2\u0185F\3\2\2\2\u0186\u0187\7]\2\2\u0187H\3\2\2\2"+
-		"\u0188\u0189\7_\2\2\u0189J\3\2\2\2\u018a\u018b\7u\2\2\u018b\u018c\7v\2"+
-		"\2\u018c\u018d\7t\2\2\u018d\u018e\7w\2\2\u018e\u018f\7e\2\2\u018f\u0190"+
-		"\7v\2\2\u0190L\3\2\2\2\u0191\u0192\7g\2\2\u0192\u0193\7p\2\2\u0193\u0194"+
-		"\7w\2\2\u0194\u0195\7o\2\2\u0195N\3\2\2\2\u0196\u0197\7\60\2\2\u0197P"+
-		"\3\2\2\2\u0198\u0199\7/\2\2\u0199\u019a\7@\2\2\u019aR\3\2\2\2\u019b\u019c"+
-		"\7u\2\2\u019c\u019d\7k\2\2\u019d\u019e\7|\2\2\u019e\u019f\7g\2\2\u019f"+
-		"\u01a0\7q\2\2\u01a0\u01a1\7h\2\2\u01a1T\3\2\2\2\u01a2\u01a3\7v\2\2\u01a3"+
-		"\u01a4\7{\2\2\u01a4\u01a5\7r\2\2\u01a5\u01a6\7g\2\2\u01a6\u01a7\7k\2\2"+
-		"\u01a7\u01a8\7f\2\2\u01a8V\3\2\2\2\u01a9\u01aa\7/\2\2\u01aa\u01ab\7/\2"+
-		"\2\u01abX\3\2\2\2\u01ac\u01ad\7-\2\2\u01ad\u01ae\7-\2\2\u01aeZ\3\2\2\2"+
-		"\u01af\u01b0\7-\2\2\u01b0\\\3\2\2\2\u01b1\u01b2\7/\2\2\u01b2^\3\2\2\2"+
-		"\u01b3\u01b4\7#\2\2\u01b4`\3\2\2\2\u01b5\u01b6\7(\2\2\u01b6b\3\2\2\2\u01b7"+
-		"\u01b8\7\u0080\2\2\u01b8d\3\2\2\2\u01b9\u01ba\7@\2\2\u01ba\u01bb\7@\2"+
-		"\2\u01bbf\3\2\2\2\u01bc\u01bd\7>\2\2\u01bd\u01be\7>\2\2\u01beh\3\2\2\2"+
-		"\u01bf\u01c0\7\61\2\2\u01c0j\3\2\2\2\u01c1\u01c2\7\'\2\2\u01c2l\3\2\2"+
-		"\2\u01c3\u01c4\7>\2\2\u01c4n\3\2\2\2\u01c5\u01c6\7@\2\2\u01c6p\3\2\2\2"+
-		"\u01c7\u01c8\7?\2\2\u01c8\u01c9\7?\2\2\u01c9r\3\2\2\2\u01ca\u01cb\7#\2"+
-		"\2\u01cb\u01cc\7?\2\2\u01cct\3\2\2\2\u01cd\u01ce\7>\2\2\u01ce\u01cf\7"+
-		"?\2\2\u01cfv\3\2\2\2\u01d0\u01d1\7@\2\2\u01d1\u01d2\7?\2\2\u01d2x\3\2"+
-		"\2\2\u01d3\u01d4\7`\2\2\u01d4z\3\2\2\2\u01d5\u01d6\7~\2\2\u01d6|\3\2\2"+
-		"\2\u01d7\u01d8\7(\2\2\u01d8\u01d9\7(\2\2\u01d9~\3\2\2\2\u01da\u01db\7"+
-		"~\2\2\u01db\u01dc\7~\2\2\u01dc\u0080\3\2\2\2\u01dd\u01de\7A\2\2\u01de"+
-		"\u0082\3\2\2\2\u01df\u01e0\7-\2\2\u01e0\u01e1\7?\2\2\u01e1\u0084\3\2\2"+
-		"\2\u01e2\u01e3\7/\2\2\u01e3\u01e4\7?\2\2\u01e4\u0086\3\2\2\2\u01e5\u01e6"+
-		"\7,\2\2\u01e6\u01e7\7?\2\2\u01e7\u0088\3\2\2\2\u01e8\u01e9\7\61\2\2\u01e9"+
-		"\u01ea\7?\2\2\u01ea\u008a\3\2\2\2\u01eb\u01ec\7\'\2\2\u01ec\u01ed\7?\2"+
-		"\2\u01ed\u008c\3\2\2\2\u01ee\u01ef\7>\2\2\u01ef\u01f0\7>\2\2\u01f0\u01f1"+
-		"\7?\2\2\u01f1\u008e\3\2\2\2\u01f2\u01f3\7@\2\2\u01f3\u01f4\7@\2\2\u01f4"+
-		"\u01f5\7?\2\2\u01f5\u0090\3\2\2\2\u01f6\u01f7\7(\2\2\u01f7\u01f8\7?\2"+
-		"\2\u01f8\u0092\3\2\2\2\u01f9\u01fa\7~\2\2\u01fa\u01fb\7?\2\2\u01fb\u0094"+
-		"\3\2\2\2\u01fc\u01fd\7`\2\2\u01fd\u01fe\7?\2\2\u01fe\u0096\3\2\2\2\u01ff"+
-		"\u0200\7m\2\2\u0200\u0201\7k\2\2\u0201\u0202\7e\2\2\u0202\u0203\7m\2\2"+
-		"\u0203\u0204\7c\2\2\u0204\u0205\7u\2\2\u0205\u0206\7o\2\2\u0206\u0098"+
-		"\3\2\2\2\u0207\u0208\7t\2\2\u0208\u0209\7g\2\2\u0209\u020a\7u\2\2\u020a"+
-		"\u020b\7q\2\2\u020b\u020c\7w\2\2\u020c\u020d\7t\2\2\u020d\u020e\7e\2\2"+
-		"\u020e\u020f\7g\2\2\u020f\u009a\3\2\2\2\u0210\u0211\7w\2\2\u0211\u0212"+
-		"\7u\2\2\u0212\u0213\7g\2\2\u0213\u0214\7u\2\2\u0214\u009c\3\2\2\2\u0215"+
-		"\u0216\7e\2\2\u0216\u0217\7n\2\2\u0217\u0218\7q\2\2\u0218\u0219\7d\2\2"+
-		"\u0219\u021a\7d\2\2\u021a\u021b\7g\2\2\u021b\u021c\7t\2\2\u021c\u021d"+
-		"\7u\2\2\u021d\u009e\3\2\2\2\u021e\u021f\7d\2\2\u021f\u0220\7{\2\2\u0220"+
-		"\u0221\7v\2\2\u0221\u0222\7g\2\2\u0222\u0223\7u\2\2\u0223\u00a0\3\2\2"+
-		"\2\u0224\u0225\7e\2\2\u0225\u0226\7{\2\2\u0226\u0227\7e\2\2\u0227\u0228"+
-		"\7n\2\2\u0228\u0229\7g\2\2\u0229\u022a\7u\2\2\u022a\u00a2\3\2\2\2\u022b"+
-		"\u022c\7\60\2\2\u022c\u022d\7d\2\2\u022d\u022e\7{\2\2\u022e\u022f\7v\2"+
-		"\2\u022f\u0230\7g\2\2\u0230\u00a4\3\2\2\2\u0231\u0232\7d\2\2\u0232\u0233"+
-		"\7t\2\2\u0233\u0310\7m\2\2\u0234\u0235\7q\2\2\u0235\u0236\7t\2\2\u0236"+
-		"\u0310\7c\2\2\u0237\u0238\7m\2\2\u0238\u0239\7k\2\2\u0239\u0310\7n\2\2"+
-		"\u023a\u023b\7u\2\2\u023b\u023c\7n\2\2\u023c\u0310\7q\2\2\u023d\u023e"+
-		"\7p\2\2\u023e\u023f\7q\2\2\u023f\u0310\7r\2\2\u0240\u0241\7c\2\2\u0241"+
-		"\u0242\7u\2\2\u0242\u0310\7n\2\2\u0243\u0244\7r\2\2\u0244\u0245\7j\2\2"+
-		"\u0245\u0310\7r\2\2\u0246\u0247\7c\2\2\u0247\u0248\7p\2\2\u0248\u0310"+
-		"\7e\2\2\u0249\u024a\7d\2\2\u024a\u024b\7r\2\2\u024b\u0310\7n\2\2\u024c"+
-		"\u024d\7e\2\2\u024d\u024e\7n\2\2\u024e\u0310\7e\2\2\u024f\u0250\7l\2\2"+
-		"\u0250\u0251\7u\2\2\u0251\u0310\7t\2\2\u0252\u0253\7c\2\2\u0253\u0254"+
-		"\7p\2\2\u0254\u0310\7f\2\2\u0255\u0256\7t\2\2\u0256\u0257\7n\2\2\u0257"+
-		"\u0310\7c\2\2\u0258\u0259\7d\2\2\u0259\u025a\7k\2\2\u025a\u0310\7v\2\2"+
-		"\u025b\u025c\7t\2\2\u025c\u025d\7q\2\2\u025d\u0310\7n\2\2\u025e\u025f"+
-		"\7r\2\2\u025f\u0260\7n\2\2\u0260\u0310\7c\2\2\u0261\u0262\7r\2\2\u0262"+
-		"\u0263\7n\2\2\u0263\u0310\7r\2\2\u0264\u0265\7d\2\2\u0265\u0266\7o\2\2"+
-		"\u0266\u0310\7k\2\2\u0267\u0268\7u\2\2\u0268\u0269\7g\2\2\u0269\u0310"+
-		"\7e\2\2\u026a\u026b\7t\2\2\u026b\u026c\7v\2\2\u026c\u0310\7k\2\2\u026d"+
-		"\u026e\7g\2\2\u026e\u026f\7q\2\2\u026f\u0310\7t\2\2\u0270\u0271\7u\2\2"+
-		"\u0271\u0272\7t\2\2\u0272\u0310\7g\2\2\u0273\u0274\7n\2\2\u0274\u0275"+
-		"\7u\2\2\u0275\u0310\7t\2\2\u0276\u0277\7r\2\2\u0277\u0278\7j\2\2\u0278"+
-		"\u0310\7c\2\2\u0279\u027a\7c\2\2\u027a\u027b\7n\2\2\u027b\u0310\7t\2\2"+
-		"\u027c\u027d\7l\2\2\u027d\u027e\7o\2\2\u027e\u0310\7r\2\2\u027f\u0280"+
-		"\7d\2\2\u0280\u0281\7x\2\2\u0281\u0310\7e\2\2\u0282\u0283\7e\2\2\u0283"+
-		"\u0284\7n\2\2\u0284\u0310\7k\2\2\u0285\u0286\7t\2\2\u0286\u0287\7v\2\2"+
-		"\u0287\u0310\7u\2\2\u0288\u0289\7c\2\2\u0289\u028a\7f\2\2\u028a\u0310"+
-		"\7e\2\2\u028b\u028c\7t\2\2\u028c\u028d\7t\2\2\u028d\u0310\7c\2\2\u028e"+
-		"\u028f\7d\2\2\u028f\u0290\7x\2\2\u0290\u0310\7u\2\2\u0291\u0292\7u\2\2"+
-		"\u0292\u0293\7g\2\2\u0293\u0310\7k\2\2\u0294\u0295\7u\2\2\u0295\u0296"+
-		"\7c\2\2\u0296\u0310\7z\2\2\u0297\u0298\7u\2\2\u0298\u0299\7v\2\2\u0299"+
-		"\u0310\7{\2\2\u029a\u029b\7u\2\2\u029b\u029c\7v\2\2\u029c\u0310\7c\2\2"+
-		"\u029d\u029e\7u\2\2\u029e\u029f\7v\2\2\u029f\u0310\7z\2\2\u02a0\u02a1"+
-		"\7f\2\2\u02a1\u02a2\7g\2\2\u02a2\u0310\7{\2\2\u02a3\u02a4\7v\2\2\u02a4"+
-		"\u02a5\7z\2\2\u02a5\u0310\7c\2\2\u02a6\u02a7\7z\2\2\u02a7\u02a8\7c\2\2"+
-		"\u02a8\u0310\7c\2\2\u02a9\u02aa\7d\2\2\u02aa\u02ab\7e\2\2\u02ab\u0310"+
-		"\7e\2\2\u02ac\u02ad\7c\2\2\u02ad\u02ae\7j\2\2\u02ae\u0310\7z\2\2\u02af"+
-		"\u02b0\7v\2\2\u02b0\u02b1\7{\2\2\u02b1\u0310\7c\2\2\u02b2\u02b3\7v\2\2"+
-		"\u02b3\u02b4\7z\2\2\u02b4\u0310\7u\2\2\u02b5\u02b6\7v\2\2\u02b6\u02b7"+
-		"\7c\2\2\u02b7\u0310\7u\2\2\u02b8\u02b9\7u\2\2\u02b9\u02ba\7j\2\2\u02ba"+
-		"\u0310\7{\2\2\u02bb\u02bc\7u\2\2\u02bc\u02bd\7j\2\2\u02bd\u0310\7z\2\2"+
-		"\u02be\u02bf\7n\2\2\u02bf\u02c0\7f\2\2\u02c0\u0310\7{\2\2\u02c1\u02c2"+
-		"\7n\2\2\u02c2\u02c3\7f\2\2\u02c3\u0310\7c\2\2\u02c4\u02c5\7n\2\2\u02c5"+
-		"\u02c6\7f\2\2\u02c6\u0310\7z\2\2\u02c7\u02c8\7n\2\2\u02c8\u02c9\7c\2\2"+
-		"\u02c9\u0310\7z\2\2\u02ca\u02cb\7v\2\2\u02cb\u02cc\7c\2\2\u02cc\u0310"+
-		"\7{\2\2\u02cd\u02ce\7v\2\2\u02ce\u02cf\7c\2\2\u02cf\u0310\7z\2\2\u02d0"+
-		"\u02d1\7d\2\2\u02d1\u02d2\7e\2\2\u02d2\u0310\7u\2\2\u02d3\u02d4\7e\2\2"+
-		"\u02d4\u02d5\7n\2\2\u02d5\u0310\7x\2\2\u02d6\u02d7\7v\2\2\u02d7\u02d8"+
-		"\7u\2\2\u02d8\u0310\7z\2\2\u02d9\u02da\7n\2\2\u02da\u02db\7c\2\2\u02db"+
-		"\u0310\7u\2\2\u02dc\u02dd\7e\2\2\u02dd\u02de\7r\2\2\u02de\u0310\7{\2\2"+
-		"\u02df\u02e0\7e\2\2\u02e0\u02e1\7o\2\2\u02e1\u0310\7r\2\2\u02e2\u02e3"+
-		"\7e\2\2\u02e3\u02e4\7r\2\2\u02e4\u0310\7z\2\2\u02e5\u02e6\7f\2\2\u02e6"+
-		"\u02e7\7e\2\2\u02e7\u0310\7r\2\2\u02e8\u02e9\7f\2\2\u02e9\u02ea\7g\2\2"+
-		"\u02ea\u0310\7e\2\2\u02eb\u02ec\7k\2\2\u02ec\u02ed\7p\2\2\u02ed\u0310"+
-		"\7e\2\2\u02ee\u02ef\7c\2\2\u02ef\u02f0\7z\2\2\u02f0\u0310\7u\2\2\u02f1"+
-		"\u02f2\7d\2\2\u02f2\u02f3\7p\2\2\u02f3\u0310\7g\2\2\u02f4\u02f5\7e\2\2"+
-		"\u02f5\u02f6\7n\2\2\u02f6\u0310\7f\2\2\u02f7\u02f8\7u\2\2\u02f8\u02f9"+
-		"\7d\2\2\u02f9\u0310\7e\2\2\u02fa\u02fb\7k\2\2\u02fb\u02fc\7u\2\2\u02fc"+
-		"\u0310\7e\2\2\u02fd\u02fe\7k\2\2\u02fe\u02ff\7p\2\2\u02ff\u0310\7z\2\2"+
-		"\u0300\u0301\7d\2\2\u0301\u0302\7g\2\2\u0302\u0310\7s\2\2\u0303\u0304"+
-		"\7u\2\2\u0304\u0305\7g\2\2\u0305\u0310\7f\2\2\u0306\u0307\7f\2\2\u0307"+
-		"\u0308\7g\2\2\u0308\u0310\7z\2\2\u0309\u030a\7k\2\2\u030a\u030b\7p\2\2"+
-		"\u030b\u0310\7{\2\2\u030c\u030d\7t\2\2\u030d\u030e\7q\2\2\u030e\u0310"+
-		"\7t\2\2\u030f\u0231\3\2\2\2\u030f\u0234\3\2\2\2\u030f\u0237\3\2\2\2\u030f"+
-		"\u023a\3\2\2\2\u030f\u023d\3\2\2\2\u030f\u0240\3\2\2\2\u030f\u0243\3\2"+
-		"\2\2\u030f\u0246\3\2\2\2\u030f\u0249\3\2\2\2\u030f\u024c\3\2\2\2\u030f"+
-		"\u024f\3\2\2\2\u030f\u0252\3\2\2\2\u030f\u0255\3\2\2\2\u030f\u0258\3\2"+
-		"\2\2\u030f\u025b\3\2\2\2\u030f\u025e\3\2\2\2\u030f\u0261\3\2\2\2\u030f"+
-		"\u0264\3\2\2\2\u030f\u0267\3\2\2\2\u030f\u026a\3\2\2\2\u030f\u026d\3\2"+
-		"\2\2\u030f\u0270\3\2\2\2\u030f\u0273\3\2\2\2\u030f\u0276\3\2\2\2\u030f"+
-		"\u0279\3\2\2\2\u030f\u027c\3\2\2\2\u030f\u027f\3\2\2\2\u030f\u0282\3\2"+
-		"\2\2\u030f\u0285\3\2\2\2\u030f\u0288\3\2\2\2\u030f\u028b\3\2\2\2\u030f"+
-		"\u028e\3\2\2\2\u030f\u0291\3\2\2\2\u030f\u0294\3\2\2\2\u030f\u0297\3\2"+
-		"\2\2\u030f\u029a\3\2\2\2\u030f\u029d\3\2\2\2\u030f\u02a0\3\2\2\2\u030f"+
-		"\u02a3\3\2\2\2\u030f\u02a6\3\2\2\2\u030f\u02a9\3\2\2\2\u030f\u02ac\3\2"+
-		"\2\2\u030f\u02af\3\2\2\2\u030f\u02b2\3\2\2\2\u030f\u02b5\3\2\2\2\u030f"+
-		"\u02b8\3\2\2\2\u030f\u02bb\3\2\2\2\u030f\u02be\3\2\2\2\u030f\u02c1\3\2"+
-		"\2\2\u030f\u02c4\3\2\2\2\u030f\u02c7\3\2\2\2\u030f\u02ca\3\2\2\2\u030f"+
-		"\u02cd\3\2\2\2\u030f\u02d0\3\2\2\2\u030f\u02d3\3\2\2\2\u030f\u02d6\3\2"+
-		"\2\2\u030f\u02d9\3\2\2\2\u030f\u02dc\3\2\2\2\u030f\u02df\3\2\2\2\u030f"+
-		"\u02e2\3\2\2\2\u030f\u02e5\3\2\2\2\u030f\u02e8\3\2\2\2\u030f\u02eb\3\2"+
-		"\2\2\u030f\u02ee\3\2\2\2\u030f\u02f1\3\2\2\2\u030f\u02f4\3\2\2\2\u030f"+
-		"\u02f7\3\2\2\2\u030f\u02fa\3\2\2\2\u030f\u02fd\3\2\2\2\u030f\u0300\3\2"+
-		"\2\2\u030f\u0303\3\2\2\2\u030f\u0306\3\2\2\2\u030f\u0309\3\2\2\2\u030f"+
-		"\u030c\3\2\2\2\u0310\u00a6\3\2\2\2\u0311\u0312\7}\2\2\u0312\u0313\7}\2"+
-		"\2\u0313\u0317\3\2\2\2\u0314\u0316\13\2\2\2\u0315\u0314\3\2\2\2\u0316"+
-		"\u0319\3\2\2\2\u0317\u0318\3\2\2\2\u0317\u0315\3\2\2\2\u0318\u031a\3\2"+
-		"\2\2\u0319\u0317\3\2\2\2\u031a\u031b\7\177\2\2\u031b\u031c\7\177\2\2\u031c"+
-		"\u00a8\3\2\2\2\u031d\u031e\7d\2\2\u031e\u031f\7{\2\2\u031f\u0320\7v\2"+
-		"\2\u0320\u0343\7g\2\2\u0321\u0322\7y\2\2\u0322\u0323\7q\2\2\u0323\u0324"+
-		"\7t\2\2\u0324\u0343\7f\2\2\u0325\u0326\7f\2\2\u0326\u0327\7y\2\2\u0327"+
-		"\u0328\7q\2\2\u0328\u0329\7t\2\2\u0329\u0343\7f\2\2\u032a\u032b\7d\2\2"+
-		"\u032b\u032c\7q\2\2\u032c\u032d\7q\2\2\u032d\u0343\7n\2\2\u032e\u032f"+
-		"\7e\2\2\u032f\u0330\7j\2\2\u0330\u0331\7c\2\2\u0331\u0343\7t\2\2\u0332"+
-		"\u0333\7u\2\2\u0333\u0334\7j\2\2\u0334\u0335\7q\2\2\u0335\u0336\7t\2\2"+
-		"\u0336\u0343\7v\2\2\u0337\u0338\7k\2\2\u0338\u0339\7p\2\2\u0339\u0343"+
-		"\7v\2\2\u033a\u033b\7n\2\2\u033b\u033c\7q\2\2\u033c\u033d\7p\2\2\u033d"+
-		"\u0343\7i\2\2\u033e\u033f\7x\2\2\u033f\u0340\7q\2\2\u0340\u0341\7k\2\2"+
-		"\u0341\u0343\7f\2\2\u0342\u031d\3\2\2\2\u0342\u0321\3\2\2\2\u0342\u0325"+
-		"\3\2\2\2\u0342\u032a\3\2\2\2\u0342\u032e\3\2\2\2\u0342\u0332\3\2\2\2\u0342"+
-		"\u0337\3\2\2\2\u0342\u033a\3\2\2\2\u0342\u033e\3\2\2\2\u0343\u00aa\3\2"+
-		"\2\2\u0344\u034a\7$\2\2\u0345\u0346\7^\2\2\u0346\u0349\7$\2\2\u0347\u0349"+
-		"\n\2\2\2\u0348\u0345\3\2\2\2\u0348\u0347\3\2\2\2\u0349\u034c\3\2\2\2\u034a"+
-		"\u0348\3\2\2\2\u034a\u034b\3\2\2\2\u034b\u034d\3\2\2\2\u034c\u034a\3\2"+
-		"\2\2\u034d\u034f\7$\2\2\u034e\u0350\t\3\2\2\u034f\u034e\3\2\2\2\u034f"+
-		"\u0350\3\2\2\2\u0350\u0355\3\2\2\2\u0351\u0353\t\4\2\2\u0352\u0354\t\5"+
-		"\2\2\u0353\u0352\3\2\2\2\u0353\u0354\3\2\2\2\u0354\u0356\3\2\2\2\u0355"+
-		"\u0351\3\2\2\2\u0355\u0356\3\2\2\2\u0356\u0358\3\2\2\2\u0357\u0359\t\3"+
-		"\2\2\u0358\u0357\3\2\2\2\u0358\u0359\3\2\2\2\u0359\u00ac\3\2\2\2\u035a"+
-		"\u035e\7)\2\2\u035b\u035c\7^\2\2\u035c\u035f\7)\2\2\u035d\u035f\n\6\2"+
-		"\2\u035e\u035b\3\2\2\2\u035e\u035d\3\2\2\2\u035f\u0360\3\2\2\2\u0360\u0361"+
-		"\7)\2\2\u0361\u00ae\3\2\2\2\u0362\u0363\7v\2\2\u0363\u0364\7t\2\2\u0364"+
-		"\u0365\7w\2\2\u0365\u036c\7g\2\2\u0366\u0367\7h\2\2\u0367\u0368\7c\2\2"+
-		"\u0368\u0369\7n\2\2\u0369\u036a\7u\2\2\u036a\u036c\7g\2\2\u036b\u0362"+
-		"\3\2\2\2\u036b\u0366\3\2\2\2\u036c\u00b0\3\2\2\2\u036d\u0370\5\u00b3Z"+
-		"\2\u036e\u0370\5\u00bb^\2\u036f\u036d\3\2\2\2\u036f\u036e\3\2\2\2\u0370"+
-		"\u00b2\3\2\2\2\u0371\u0375\5\u00b5[\2\u0372\u0375\5\u00b7\\\2\u0373\u0375"+
-		"\5\u00b9]\2\u0374\u0371\3\2\2\2\u0374\u0372\3\2\2\2\u0374\u0373\3\2\2"+
-		"\2\u0375\u00b4\3\2\2\2\u0376\u037c\7\'\2\2\u0377\u0378\7\62\2\2\u0378"+
-		"\u037c\7d\2\2\u0379\u037a\7\62\2\2\u037a\u037c\7D\2\2\u037b\u0376\3\2"+
-		"\2\2\u037b\u0377\3\2\2\2\u037b\u0379\3\2\2\2\u037c\u0380\3\2\2\2\u037d"+
-		"\u037f\5\u00c3b\2\u037e\u037d\3\2\2\2\u037f\u0382\3\2\2\2\u0380\u037e"+
-		"\3\2\2\2\u0380\u0381\3\2\2\2\u0381\u0383\3\2\2\2\u0382\u0380\3\2\2\2\u0383"+
-		"\u0385\7\60\2\2\u0384\u0386\5\u00c3b\2\u0385\u0384\3\2\2\2\u0386\u0387"+
-		"\3\2\2\2\u0387\u0385\3\2\2\2\u0387\u0388\3\2\2\2\u0388\u00b6\3\2\2\2\u0389"+
-		"\u038b\5\u00c5c\2\u038a\u0389\3\2\2\2\u038b\u038e\3\2\2\2\u038c\u038a"+
-		"\3\2\2\2\u038c\u038d\3\2\2\2\u038d\u038f\3\2\2\2\u038e\u038c\3\2\2\2\u038f"+
-		"\u0391\7\60\2\2\u0390\u0392\5\u00c5c\2\u0391\u0390\3\2\2\2\u0392\u0393"+
-		"\3\2\2\2\u0393\u0391\3\2\2\2\u0393\u0394\3\2\2\2\u0394\u00b8\3\2\2\2\u0395"+
-		"\u039b\7&\2\2\u0396\u0397\7\62\2\2\u0397\u039b\7z\2\2\u0398\u0399\7\62"+
-		"\2\2\u0399\u039b\7Z\2\2\u039a\u0395\3\2\2\2\u039a\u0396\3\2\2\2\u039a"+
-		"\u0398\3\2\2\2\u039b\u039f\3\2\2\2\u039c\u039e\5\u00c7d\2\u039d\u039c"+
-		"\3\2\2\2\u039e\u03a1\3\2\2\2\u039f\u039d\3\2\2\2\u039f\u03a0\3\2\2\2\u03a0"+
-		"\u03a2\3\2\2\2\u03a1\u039f\3\2\2\2\u03a2\u03a4\7\60\2\2\u03a3\u03a5\5"+
-		"\u00c7d\2\u03a4\u03a3\3\2\2\2\u03a5\u03a6\3\2\2\2\u03a6\u03a4\3\2\2\2"+
-		"\u03a6\u03a7\3\2\2\2\u03a7\u00ba\3\2\2\2\u03a8\u03ac\5\u00bf`\2\u03a9"+
-		"\u03ac\5\u00c1a\2\u03aa\u03ac\5\u00bd_\2\u03ab\u03a8\3\2\2\2\u03ab\u03a9"+
-		"\3\2\2\2\u03ab\u03aa\3\2\2\2\u03ac\u03b0\3\2\2\2\u03ad\u03ae\t\7\2\2\u03ae"+
-		"\u03b1\t\b\2\2\u03af\u03b1\7n\2\2\u03b0\u03ad\3\2\2\2\u03b0\u03af\3\2"+
-		"\2\2\u03b0\u03b1\3\2\2\2\u03b1\u00bc\3\2\2\2\u03b2\u03b3\7\62\2\2\u03b3"+
-		"\u03b5\t\t\2\2\u03b4\u03b6\5\u00c3b\2\u03b5\u03b4\3\2\2\2\u03b6\u03b7"+
-		"\3\2\2\2\u03b7\u03b5\3\2\2\2\u03b7\u03b8\3\2\2\2\u03b8\u03c0\3\2\2\2\u03b9"+
-		"\u03bb\7\'\2\2\u03ba\u03bc\5\u00c3b\2\u03bb\u03ba\3\2\2\2\u03bc\u03bd"+
-		"\3\2\2\2\u03bd\u03bb\3\2\2\2\u03bd\u03be\3\2\2\2\u03be\u03c0\3\2\2\2\u03bf"+
-		"\u03b2\3\2\2\2\u03bf\u03b9\3\2\2\2\u03c0\u00be\3\2\2\2\u03c1\u03c3\5\u00c5"+
-		"c\2\u03c2\u03c1\3\2\2\2\u03c3\u03c4\3\2\2\2\u03c4\u03c2\3\2\2\2\u03c4"+
-		"\u03c5\3\2\2\2\u03c5\u00c0\3\2\2\2\u03c6\u03cc\7&\2\2\u03c7\u03c8\7\62"+
-		"\2\2\u03c8\u03cc\7z\2\2\u03c9\u03ca\7\62\2\2\u03ca\u03cc\7Z\2\2\u03cb"+
-		"\u03c6\3\2\2\2\u03cb\u03c7\3\2\2\2\u03cb\u03c9\3\2\2\2\u03cc\u03ce\3\2"+
-		"\2\2\u03cd\u03cf\5\u00c7d\2\u03ce\u03cd\3\2\2\2\u03cf\u03d0\3\2\2\2\u03d0"+
-		"\u03ce\3\2\2\2\u03d0\u03d1\3\2\2\2\u03d1\u00c2\3\2\2\2\u03d2\u03d3\t\n"+
-		"\2\2\u03d3\u00c4\3\2\2\2\u03d4\u03d5\t\13\2\2\u03d5\u00c6\3\2\2\2\u03d6"+
-		"\u03d7\t\f\2\2\u03d7\u00c8\3\2\2\2\u03d8\u03dc\5\u00cbf\2\u03d9\u03db"+
-		"\5\u00cdg\2\u03da\u03d9\3\2\2\2\u03db\u03de\3\2\2\2\u03dc\u03da\3\2\2"+
-		"\2\u03dc\u03dd\3\2\2\2\u03dd\u00ca\3\2\2\2\u03de\u03dc\3\2\2\2\u03df\u03e0"+
-		"\t\r\2\2\u03e0\u00cc\3\2\2\2\u03e1\u03e2\t\16\2\2\u03e2\u00ce\3\2\2\2"+
-		"\u03e3\u03e7\7#\2\2\u03e4\u03e6\5\u00cdg\2\u03e5\u03e4\3\2\2\2\u03e6\u03e9"+
-		"\3\2\2\2\u03e7\u03e5\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8\u03eb\3\2\2\2\u03e9"+
-		"\u03e7\3\2\2\2\u03ea\u03ec\t\17\2\2\u03eb\u03ea\3\2\2\2\u03ec\u03ed\3"+
-		"\2\2\2\u03ed\u03eb\3\2\2\2\u03ed\u03ee\3\2\2\2\u03ee\u00d0\3\2\2\2\u03ef"+
-		"\u03f1\t\20\2\2\u03f0\u03ef\3\2\2\2\u03f1\u03f2\3\2\2\2\u03f2\u03f0\3"+
-		"\2\2\2\u03f2\u03f3\3\2\2\2\u03f3\u03f4\3\2\2\2\u03f4\u03f5\bi\2\2\u03f5"+
-		"\u00d2\3\2\2\2\u03f6\u03f7\7\61\2\2\u03f7\u03f8\7\61\2\2\u03f8\u03fc\3"+
-		"\2\2\2\u03f9\u03fb\n\21\2\2\u03fa\u03f9\3\2\2\2\u03fb\u03fe\3\2\2\2\u03fc"+
-		"\u03fa\3\2\2\2\u03fc\u03fd\3\2\2\2\u03fd\u03ff\3\2\2\2\u03fe\u03fc\3\2"+
-		"\2\2\u03ff\u0400\bj\3\2\u0400\u00d4\3\2\2\2\u0401\u0402\7\61\2\2\u0402"+
-		"\u0403\7,\2\2\u0403\u0407\3\2\2\2\u0404\u0406\13\2\2\2\u0405\u0404\3\2"+
-		"\2\2\u0406\u0409\3\2\2\2\u0407\u0408\3\2\2\2\u0407\u0405\3\2\2\2\u0408"+
-		"\u040a\3\2\2\2\u0409\u0407\3\2\2\2\u040a\u040b\7,\2\2\u040b\u040c\7\61"+
-		"\2\2\u040c\u040d\3\2\2\2\u040d\u040e\bk\3\2\u040e\u00d6\3\2\2\2&\2\u030f"+
-		"\u0317\u0342\u0348\u034a\u034f\u0353\u0355\u0358\u035e\u036b\u036f\u0374"+
-		"\u037b\u0380\u0387\u038c\u0393\u039a\u039f\u03a6\u03ab\u03b0\u03b7\u03bd"+
-		"\u03bf\u03c4\u03cb\u03d0\u03dc\u03e7\u03ed\u03f2\u03fc\u0407\4\2\3\2\2"+
-		"\4\2";
+		"k\4l\tl\3\2\3\2\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3"+
+		"\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3"+
+		"\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16\3\16\3\16\3\16\3"+
+		"\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\17\3\20\3\20\3\20\3\20\3"+
+		"\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3"+
+		"\22\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\3\23\3\24\3\24\3\24\3"+
+		"\24\3\24\3\24\3\24\3\24\3\24\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3\25\3"+
+		"\25\3\25\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\26\3\27\3\27\3\27\3\30\3"+
+		"\30\3\30\3\30\3\30\3\31\3\31\3\31\3\31\3\31\3\31\3\32\3\32\3\32\3\33\3"+
+		"\33\3\33\3\33\3\34\3\34\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3"+
+		"\35\3\35\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\36\3\37\3\37\3\37\3"+
+		"\37\3 \3 \3!\3!\3!\3\"\3\"\3\"\3\"\3\"\3\"\3\"\3#\3#\3#\3#\3#\3#\3#\3"+
+		"#\3#\3$\3$\3%\3%\3&\3&\3\'\3\'\3\'\3\'\3\'\3\'\3\'\3(\3(\3(\3(\3(\3)\3"+
+		")\3*\3*\3*\3+\3+\3+\3+\3+\3+\3+\3,\3,\3,\3,\3,\3,\3,\3-\3-\3-\3.\3.\3"+
+		".\3/\3/\3\60\3\60\3\61\3\61\3\62\3\62\3\63\3\63\3\64\3\64\3\64\3\65\3"+
+		"\65\3\65\3\66\3\66\3\67\3\67\38\38\39\39\3:\3:\3:\3;\3;\3;\3<\3<\3<\3"+
+		"=\3=\3=\3>\3>\3?\3?\3@\3@\3@\3A\3A\3A\3B\3B\3C\3C\3C\3D\3D\3D\3E\3E\3"+
+		"E\3F\3F\3F\3G\3G\3G\3H\3H\3H\3H\3I\3I\3I\3I\3J\3J\3J\3K\3K\3K\3L\3L\3"+
+		"L\3M\3M\3M\3M\3M\3M\3M\3M\3N\3N\3N\3N\3N\3N\3N\3N\3N\3O\3O\3O\3O\3O\3"+
+		"P\3P\3P\3P\3P\3P\3P\3P\3P\3Q\3Q\3Q\3Q\3Q\3Q\3R\3R\3R\3R\3R\3R\3R\3S\3"+
+		"S\3S\3S\3S\3S\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3"+
+		"T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\3T\5T\u031b\n"+
+		"T\3U\3U\3U\3U\7U\u0321\nU\fU\16U\u0324\13U\3U\3U\3U\3V\3V\3V\3V\3V\3V"+
+		"\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V\3V"+
+		"\3V\3V\3V\3V\3V\3V\3V\3V\5V\u034e\nV\3W\3W\3W\3W\7W\u0354\nW\fW\16W\u0357"+
+		"\13W\3W\3W\5W\u035b\nW\3W\3W\5W\u035f\nW\5W\u0361\nW\3W\5W\u0364\nW\3"+
+		"X\3X\3X\3X\5X\u036a\nX\3X\3X\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\3Y\5Y\u0377\nY\3"+
+		"Z\3Z\5Z\u037b\nZ\3[\3[\3[\5[\u0380\n[\3\\\3\\\3\\\3\\\3\\\5\\\u0387\n"+
+		"\\\3\\\7\\\u038a\n\\\f\\\16\\\u038d\13\\\3\\\3\\\6\\\u0391\n\\\r\\\16"+
+		"\\\u0392\3]\7]\u0396\n]\f]\16]\u0399\13]\3]\3]\6]\u039d\n]\r]\16]\u039e"+
+		"\3^\3^\3^\3^\3^\5^\u03a6\n^\3^\7^\u03a9\n^\f^\16^\u03ac\13^\3^\3^\6^\u03b0"+
+		"\n^\r^\16^\u03b1\3_\3_\3_\5_\u03b7\n_\3_\3_\3_\5_\u03bc\n_\3`\3`\3`\6"+
+		"`\u03c1\n`\r`\16`\u03c2\3`\3`\6`\u03c7\n`\r`\16`\u03c8\5`\u03cb\n`\3a"+
+		"\6a\u03ce\na\ra\16a\u03cf\3b\3b\3b\3b\3b\5b\u03d7\nb\3b\6b\u03da\nb\r"+
+		"b\16b\u03db\3c\3c\3d\3d\3e\3e\3f\3f\7f\u03e6\nf\ff\16f\u03e9\13f\3g\3"+
+		"g\3h\3h\3i\3i\7i\u03f1\ni\fi\16i\u03f4\13i\3i\6i\u03f7\ni\ri\16i\u03f8"+
+		"\3j\6j\u03fc\nj\rj\16j\u03fd\3j\3j\3k\3k\3k\3k\7k\u0406\nk\fk\16k\u0409"+
+		"\13k\3k\3k\3l\3l\3l\3l\7l\u0411\nl\fl\16l\u0414\13l\3l\3l\3l\3l\3l\4\u0322"+
+		"\u0412\2m\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31\16\33"+
+		"\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65\34\67"+
+		"\359\36;\37= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]\60_\61a\62c\63e\64g\65"+
+		"i\66k\67m8o9q:s;u<w=y>{?}@\177A\u0081B\u0083C\u0085D\u0087E\u0089F\u008b"+
+		"G\u008dH\u008fI\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009f"+
+		"Q\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3"+
+		"[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5\2\u00c7"+
+		"\2\u00c9\2\u00cbd\u00cd\2\u00cf\2\u00d1e\u00d3f\u00d5g\u00d7h\3\2\22\3"+
+		"\2$$\3\2||\4\2rruu\4\2ooww\3\2))\4\2uuww\7\2dfkknnuuyy\4\2DDdd\3\2\62"+
+		"\63\3\2\62;\5\2\62;CHch\5\2C\\aac|\6\2\62;C\\aac|\4\2--//\6\2\13\f\17"+
+		"\17\"\"\u00a2\u00a2\4\2\f\f\17\17\2\u048c\2\3\3\2\2\2\2\5\3\2\2\2\2\7"+
+		"\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2"+
+		"\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2\2\2\2"+
+		"\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2\2\2\2\'\3\2\2\2"+
+		"\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2\2\2\2\63\3\2\2\2"+
+		"\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3\2\2\2\2?\3\2\2\2"+
+		"\2A\3\2\2\2\2C\3\2\2\2\2E\3\2\2\2\2G\3\2\2\2\2I\3\2\2\2\2K\3\2\2\2\2M"+
+		"\3\2\2\2\2O\3\2\2\2\2Q\3\2\2\2\2S\3\2\2\2\2U\3\2\2\2\2W\3\2\2\2\2Y\3\2"+
+		"\2\2\2[\3\2\2\2\2]\3\2\2\2\2_\3\2\2\2\2a\3\2\2\2\2c\3\2\2\2\2e\3\2\2\2"+
+		"\2g\3\2\2\2\2i\3\2\2\2\2k\3\2\2\2\2m\3\2\2\2\2o\3\2\2\2\2q\3\2\2\2\2s"+
+		"\3\2\2\2\2u\3\2\2\2\2w\3\2\2\2\2y\3\2\2\2\2{\3\2\2\2\2}\3\2\2\2\2\177"+
+		"\3\2\2\2\2\u0081\3\2\2\2\2\u0083\3\2\2\2\2\u0085\3\2\2\2\2\u0087\3\2\2"+
+		"\2\2\u0089\3\2\2\2\2\u008b\3\2\2\2\2\u008d\3\2\2\2\2\u008f\3\2\2\2\2\u0091"+
+		"\3\2\2\2\2\u0093\3\2\2\2\2\u0095\3\2\2\2\2\u0097\3\2\2\2\2\u0099\3\2\2"+
+		"\2\2\u009b\3\2\2\2\2\u009d\3\2\2\2\2\u009f\3\2\2\2\2\u00a1\3\2\2\2\2\u00a3"+
+		"\3\2\2\2\2\u00a5\3\2\2\2\2\u00a7\3\2\2\2\2\u00a9\3\2\2\2\2\u00ab\3\2\2"+
+		"\2\2\u00ad\3\2\2\2\2\u00af\3\2\2\2\2\u00b1\3\2\2\2\2\u00b3\3\2\2\2\2\u00b5"+
+		"\3\2\2\2\2\u00b7\3\2\2\2\2\u00b9\3\2\2\2\2\u00bb\3\2\2\2\2\u00bd\3\2\2"+
+		"\2\2\u00bf\3\2\2\2\2\u00c1\3\2\2\2\2\u00c3\3\2\2\2\2\u00cb\3\2\2\2\2\u00d1"+
+		"\3\2\2\2\2\u00d3\3\2\2\2\2\u00d5\3\2\2\2\2\u00d7\3\2\2\2\3\u00d9\3\2\2"+
+		"\2\5\u00e0\3\2\2\2\7\u00e2\3\2\2\2\t\u00ea\3\2\2\2\13\u00ec\3\2\2\2\r"+
+		"\u00ee\3\2\2\2\17\u00f0\3\2\2\2\21\u00f2\3\2\2\2\23\u00f4\3\2\2\2\25\u00f6"+
+		"\3\2\2\2\27\u00f8\3\2\2\2\31\u00fb\3\2\2\2\33\u0104\3\2\2\2\35\u010d\3"+
+		"\2\2\2\37\u0113\3\2\2\2!\u011a\3\2\2\2#\u0120\3\2\2\2%\u0129\3\2\2\2\'"+
+		"\u0130\3\2\2\2)\u0139\3\2\2\2+\u0143\3\2\2\2-\u014b\3\2\2\2/\u014e\3\2"+
+		"\2\2\61\u0153\3\2\2\2\63\u0159\3\2\2\2\65\u015c\3\2\2\2\67\u0160\3\2\2"+
+		"\29\u0167\3\2\2\2;\u016d\3\2\2\2=\u0176\3\2\2\2?\u017a\3\2\2\2A\u017c"+
+		"\3\2\2\2C\u017f\3\2\2\2E\u0186\3\2\2\2G\u018f\3\2\2\2I\u0191\3\2\2\2K"+
+		"\u0193\3\2\2\2M\u0195\3\2\2\2O\u019c\3\2\2\2Q\u01a1\3\2\2\2S\u01a3\3\2"+
+		"\2\2U\u01a6\3\2\2\2W\u01ad\3\2\2\2Y\u01b4\3\2\2\2[\u01b7\3\2\2\2]\u01ba"+
+		"\3\2\2\2_\u01bc\3\2\2\2a\u01be\3\2\2\2c\u01c0\3\2\2\2e\u01c2\3\2\2\2g"+
+		"\u01c4\3\2\2\2i\u01c7\3\2\2\2k\u01ca\3\2\2\2m\u01cc\3\2\2\2o\u01ce\3\2"+
+		"\2\2q\u01d0\3\2\2\2s\u01d2\3\2\2\2u\u01d5\3\2\2\2w\u01d8\3\2\2\2y\u01db"+
+		"\3\2\2\2{\u01de\3\2\2\2}\u01e0\3\2\2\2\177\u01e2\3\2\2\2\u0081\u01e5\3"+
+		"\2\2\2\u0083\u01e8\3\2\2\2\u0085\u01ea\3\2\2\2\u0087\u01ed\3\2\2\2\u0089"+
+		"\u01f0\3\2\2\2\u008b\u01f3\3\2\2\2\u008d\u01f6\3\2\2\2\u008f\u01f9\3\2"+
+		"\2\2\u0091\u01fd\3\2\2\2\u0093\u0201\3\2\2\2\u0095\u0204\3\2\2\2\u0097"+
+		"\u0207\3\2\2\2\u0099\u020a\3\2\2\2\u009b\u0212\3\2\2\2\u009d\u021b\3\2"+
+		"\2\2\u009f\u0220\3\2\2\2\u00a1\u0229\3\2\2\2\u00a3\u022f\3\2\2\2\u00a5"+
+		"\u0236\3\2\2\2\u00a7\u031a\3\2\2\2\u00a9\u031c\3\2\2\2\u00ab\u034d\3\2"+
+		"\2\2\u00ad\u034f\3\2\2\2\u00af\u0365\3\2\2\2\u00b1\u0376\3\2\2\2\u00b3"+
+		"\u037a\3\2\2\2\u00b5\u037f\3\2\2\2\u00b7\u0386\3\2\2\2\u00b9\u0397\3\2"+
+		"\2\2\u00bb\u03a5\3\2\2\2\u00bd\u03b6\3\2\2\2\u00bf\u03ca\3\2\2\2\u00c1"+
+		"\u03cd\3\2\2\2\u00c3\u03d6\3\2\2\2\u00c5\u03dd\3\2\2\2\u00c7\u03df\3\2"+
+		"\2\2\u00c9\u03e1\3\2\2\2\u00cb\u03e3\3\2\2\2\u00cd\u03ea\3\2\2\2\u00cf"+
+		"\u03ec\3\2\2\2\u00d1\u03ee\3\2\2\2\u00d3\u03fb\3\2\2\2\u00d5\u0401\3\2"+
+		"\2\2\u00d7\u040c\3\2\2\2\u00d9\u00da\7k\2\2\u00da\u00db\7o\2\2\u00db\u00dc"+
+		"\7r\2\2\u00dc\u00dd\7q\2\2\u00dd\u00de\7t\2\2\u00de\u00df\7v\2\2\u00df"+
+		"\4\3\2\2\2\u00e0\u00e1\7=\2\2\u00e1\6\3\2\2\2\u00e2\u00e3\7v\2\2\u00e3"+
+		"\u00e4\7{\2\2\u00e4\u00e5\7r\2\2\u00e5\u00e6\7g\2\2\u00e6\u00e7\7f\2\2"+
+		"\u00e7\u00e8\7g\2\2\u00e8\u00e9\7h\2\2\u00e9\b\3\2\2\2\u00ea\u00eb\7."+
+		"\2\2\u00eb\n\3\2\2\2\u00ec\u00ed\7?\2\2\u00ed\f\3\2\2\2\u00ee\u00ef\7"+
+		"*\2\2\u00ef\16\3\2\2\2\u00f0\u00f1\7+\2\2\u00f1\20\3\2\2\2\u00f2\u00f3"+
+		"\7}\2\2\u00f3\22\3\2\2\2\u00f4\u00f5\7\177\2\2\u00f5\24\3\2\2\2\u00f6"+
+		"\u00f7\7%\2\2\u00f7\26\3\2\2\2\u00f8\u00f9\7r\2\2\u00f9\u00fa\7e\2\2\u00fa"+
+		"\30\3\2\2\2\u00fb\u00fc\7r\2\2\u00fc\u00fd\7n\2\2\u00fd\u00fe\7c\2\2\u00fe"+
+		"\u00ff\7v\2\2\u00ff\u0100\7h\2\2\u0100\u0101\7q\2\2\u0101\u0102\7t\2\2"+
+		"\u0102\u0103\7o\2\2\u0103\32\3\2\2\2\u0104\u0105\7g\2\2\u0105\u0106\7"+
+		"p\2\2\u0106\u0107\7e\2\2\u0107\u0108\7q\2\2\u0108\u0109\7f\2\2\u0109\u010a"+
+		"\7k\2\2\u010a\u010b\7p\2\2\u010b\u010c\7i\2\2\u010c\34\3\2\2\2\u010d\u010e"+
+		"\7e\2\2\u010e\u010f\7q\2\2\u010f\u0110\7p\2\2\u0110\u0111\7u\2\2\u0111"+
+		"\u0112\7v\2\2\u0112\36\3\2\2\2\u0113\u0114\7g\2\2\u0114\u0115\7z\2\2\u0115"+
+		"\u0116\7v\2\2\u0116\u0117\7g\2\2\u0117\u0118\7t\2\2\u0118\u0119\7p\2\2"+
+		"\u0119 \3\2\2\2\u011a\u011b\7c\2\2\u011b\u011c\7n\2\2\u011c\u011d\7k\2"+
+		"\2\u011d\u011e\7i\2\2\u011e\u011f\7p\2\2\u011f\"\3\2\2\2\u0120\u0121\7"+
+		"t\2\2\u0121\u0122\7g\2\2\u0122\u0123\7i\2\2\u0123\u0124\7k\2\2\u0124\u0125"+
+		"\7u\2\2\u0125\u0126\7v\2\2\u0126\u0127\7g\2\2\u0127\u0128\7t\2\2\u0128"+
+		"$\3\2\2\2\u0129\u012a\7k\2\2\u012a\u012b\7p\2\2\u012b\u012c\7n\2\2\u012c"+
+		"\u012d\7k\2\2\u012d\u012e\7p\2\2\u012e\u012f\7g\2\2\u012f&\3\2\2\2\u0130"+
+		"\u0131\7x\2\2\u0131\u0132\7q\2\2\u0132\u0133\7n\2\2\u0133\u0134\7c\2\2"+
+		"\u0134\u0135\7v\2\2\u0135\u0136\7k\2\2\u0136\u0137\7n\2\2\u0137\u0138"+
+		"\7g\2\2\u0138(\3\2\2\2\u0139\u013a\7k\2\2\u013a\u013b\7p\2\2\u013b\u013c"+
+		"\7v\2\2\u013c\u013d\7g\2\2\u013d\u013e\7t\2\2\u013e\u013f\7t\2\2\u013f"+
+		"\u0140\7w\2\2\u0140\u0141\7r\2\2\u0141\u0142\7v\2\2\u0142*\3\2\2\2\u0143"+
+		"\u0144\7t\2\2\u0144\u0145\7g\2\2\u0145\u0146\7u\2\2\u0146\u0147\7g\2\2"+
+		"\u0147\u0148\7t\2\2\u0148\u0149\7x\2\2\u0149\u014a\7g\2\2\u014a,\3\2\2"+
+		"\2\u014b\u014c\7k\2\2\u014c\u014d\7h\2\2\u014d.\3\2\2\2\u014e\u014f\7"+
+		"g\2\2\u014f\u0150\7n\2\2\u0150\u0151\7u\2\2\u0151\u0152\7g\2\2\u0152\60"+
+		"\3\2\2\2\u0153\u0154\7y\2\2\u0154\u0155\7j\2\2\u0155\u0156\7k\2\2\u0156"+
+		"\u0157\7n\2\2\u0157\u0158\7g\2\2\u0158\62\3\2\2\2\u0159\u015a\7f\2\2\u015a"+
+		"\u015b\7q\2\2\u015b\64\3\2\2\2\u015c\u015d\7h\2\2\u015d\u015e\7q\2\2\u015e"+
+		"\u015f\7t\2\2\u015f\66\3\2\2\2\u0160\u0161\7t\2\2\u0161\u0162\7g\2\2\u0162"+
+		"\u0163\7v\2\2\u0163\u0164\7w\2\2\u0164\u0165\7t\2\2\u0165\u0166\7p\2\2"+
+		"\u01668\3\2\2\2\u0167\u0168\7d\2\2\u0168\u0169\7t\2\2\u0169\u016a\7g\2"+
+		"\2\u016a\u016b\7c\2\2\u016b\u016c\7m\2\2\u016c:\3\2\2\2\u016d\u016e\7"+
+		"e\2\2\u016e\u016f\7q\2\2\u016f\u0170\7p\2\2\u0170\u0171\7v\2\2\u0171\u0172"+
+		"\7k\2\2\u0172\u0173\7p\2\2\u0173\u0174\7w\2\2\u0174\u0175\7g\2\2\u0175"+
+		"<\3\2\2\2\u0176\u0177\7c\2\2\u0177\u0178\7u\2\2\u0178\u0179\7o\2\2\u0179"+
+		">\3\2\2\2\u017a\u017b\7<\2\2\u017b@\3\2\2\2\u017c\u017d\7\60\2\2\u017d"+
+		"\u017e\7\60\2\2\u017eB\3\2\2\2\u017f\u0180\7u\2\2\u0180\u0181\7k\2\2\u0181"+
+		"\u0182\7i\2\2\u0182\u0183\7p\2\2\u0183\u0184\7g\2\2\u0184\u0185\7f\2\2"+
+		"\u0185D\3\2\2\2\u0186\u0187\7w\2\2\u0187\u0188\7p\2\2\u0188\u0189\7u\2"+
+		"\2\u0189\u018a\7k\2\2\u018a\u018b\7i\2\2\u018b\u018c\7p\2\2\u018c\u018d"+
+		"\7g\2\2\u018d\u018e\7f\2\2\u018eF\3\2\2\2\u018f\u0190\7,\2\2\u0190H\3"+
+		"\2\2\2\u0191\u0192\7]\2\2\u0192J\3\2\2\2\u0193\u0194\7_\2\2\u0194L\3\2"+
+		"\2\2\u0195\u0196\7u\2\2\u0196\u0197\7v\2\2\u0197\u0198\7t\2\2\u0198\u0199"+
+		"\7w\2\2\u0199\u019a\7e\2\2\u019a\u019b\7v\2\2\u019bN\3\2\2\2\u019c\u019d"+
+		"\7g\2\2\u019d\u019e\7p\2\2\u019e\u019f\7w\2\2\u019f\u01a0\7o\2\2\u01a0"+
+		"P\3\2\2\2\u01a1\u01a2\7\60\2\2\u01a2R\3\2\2\2\u01a3\u01a4\7/\2\2\u01a4"+
+		"\u01a5\7@\2\2\u01a5T\3\2\2\2\u01a6\u01a7\7u\2\2\u01a7\u01a8\7k\2\2\u01a8"+
+		"\u01a9\7|\2\2\u01a9\u01aa\7g\2\2\u01aa\u01ab\7q\2\2\u01ab\u01ac\7h\2\2"+
+		"\u01acV\3\2\2\2\u01ad\u01ae\7v\2\2\u01ae\u01af\7{\2\2\u01af\u01b0\7r\2"+
+		"\2\u01b0\u01b1\7g\2\2\u01b1\u01b2\7k\2\2\u01b2\u01b3\7f\2\2\u01b3X\3\2"+
+		"\2\2\u01b4\u01b5\7/\2\2\u01b5\u01b6\7/\2\2\u01b6Z\3\2\2\2\u01b7\u01b8"+
+		"\7-\2\2\u01b8\u01b9\7-\2\2\u01b9\\\3\2\2\2\u01ba\u01bb\7-\2\2\u01bb^\3"+
+		"\2\2\2\u01bc\u01bd\7/\2\2\u01bd`\3\2\2\2\u01be\u01bf\7#\2\2\u01bfb\3\2"+
+		"\2\2\u01c0\u01c1\7(\2\2\u01c1d\3\2\2\2\u01c2\u01c3\7\u0080\2\2\u01c3f"+
+		"\3\2\2\2\u01c4\u01c5\7@\2\2\u01c5\u01c6\7@\2\2\u01c6h\3\2\2\2\u01c7\u01c8"+
+		"\7>\2\2\u01c8\u01c9\7>\2\2\u01c9j\3\2\2\2\u01ca\u01cb\7\61\2\2\u01cbl"+
+		"\3\2\2\2\u01cc\u01cd\7\'\2\2\u01cdn\3\2\2\2\u01ce\u01cf\7>\2\2\u01cfp"+
+		"\3\2\2\2\u01d0\u01d1\7@\2\2\u01d1r\3\2\2\2\u01d2\u01d3\7?\2\2\u01d3\u01d4"+
+		"\7?\2\2\u01d4t\3\2\2\2\u01d5\u01d6\7#\2\2\u01d6\u01d7\7?\2\2\u01d7v\3"+
+		"\2\2\2\u01d8\u01d9\7>\2\2\u01d9\u01da\7?\2\2\u01dax\3\2\2\2\u01db\u01dc"+
+		"\7@\2\2\u01dc\u01dd\7?\2\2\u01ddz\3\2\2\2\u01de\u01df\7`\2\2\u01df|\3"+
+		"\2\2\2\u01e0\u01e1\7~\2\2\u01e1~\3\2\2\2\u01e2\u01e3\7(\2\2\u01e3\u01e4"+
+		"\7(\2\2\u01e4\u0080\3\2\2\2\u01e5\u01e6\7~\2\2\u01e6\u01e7\7~\2\2\u01e7"+
+		"\u0082\3\2\2\2\u01e8\u01e9\7A\2\2\u01e9\u0084\3\2\2\2\u01ea\u01eb\7-\2"+
+		"\2\u01eb\u01ec\7?\2\2\u01ec\u0086\3\2\2\2\u01ed\u01ee\7/\2\2\u01ee\u01ef"+
+		"\7?\2\2\u01ef\u0088\3\2\2\2\u01f0\u01f1\7,\2\2\u01f1\u01f2\7?\2\2\u01f2"+
+		"\u008a\3\2\2\2\u01f3\u01f4\7\61\2\2\u01f4\u01f5\7?\2\2\u01f5\u008c\3\2"+
+		"\2\2\u01f6\u01f7\7\'\2\2\u01f7\u01f8\7?\2\2\u01f8\u008e\3\2\2\2\u01f9"+
+		"\u01fa\7>\2\2\u01fa\u01fb\7>\2\2\u01fb\u01fc\7?\2\2\u01fc\u0090\3\2\2"+
+		"\2\u01fd\u01fe\7@\2\2\u01fe\u01ff\7@\2\2\u01ff\u0200\7?\2\2\u0200\u0092"+
+		"\3\2\2\2\u0201\u0202\7(\2\2\u0202\u0203\7?\2\2\u0203\u0094\3\2\2\2\u0204"+
+		"\u0205\7~\2\2\u0205\u0206\7?\2\2\u0206\u0096\3\2\2\2\u0207\u0208\7`\2"+
+		"\2\u0208\u0209\7?\2\2\u0209\u0098\3\2\2\2\u020a\u020b\7m\2\2\u020b\u020c"+
+		"\7k\2\2\u020c\u020d\7e\2\2\u020d\u020e\7m\2\2\u020e\u020f\7c\2\2\u020f"+
+		"\u0210\7u\2\2\u0210\u0211\7o\2\2\u0211\u009a\3\2\2\2\u0212\u0213\7t\2"+
+		"\2\u0213\u0214\7g\2\2\u0214\u0215\7u\2\2\u0215\u0216\7q\2\2\u0216\u0217"+
+		"\7w\2\2\u0217\u0218\7t\2\2\u0218\u0219\7e\2\2\u0219\u021a\7g\2\2\u021a"+
+		"\u009c\3\2\2\2\u021b\u021c\7w\2\2\u021c\u021d\7u\2\2\u021d\u021e\7g\2"+
+		"\2\u021e\u021f\7u\2\2\u021f\u009e\3\2\2\2\u0220\u0221\7e\2\2\u0221\u0222"+
+		"\7n\2\2\u0222\u0223\7q\2\2\u0223\u0224\7d\2\2\u0224\u0225\7d\2\2\u0225"+
+		"\u0226\7g\2\2\u0226\u0227\7t\2\2\u0227\u0228\7u\2\2\u0228\u00a0\3\2\2"+
+		"\2\u0229\u022a\7d\2\2\u022a\u022b\7{\2\2\u022b\u022c\7v\2\2\u022c\u022d"+
+		"\7g\2\2\u022d\u022e\7u\2\2\u022e\u00a2\3\2\2\2\u022f\u0230\7e\2\2\u0230"+
+		"\u0231\7{\2\2\u0231\u0232\7e\2\2\u0232\u0233\7n\2\2\u0233\u0234\7g\2\2"+
+		"\u0234\u0235\7u\2\2\u0235\u00a4\3\2\2\2\u0236\u0237\7\60\2\2\u0237\u0238"+
+		"\7d\2\2\u0238\u0239\7{\2\2\u0239\u023a\7v\2\2\u023a\u023b\7g\2\2\u023b"+
+		"\u00a6\3\2\2\2\u023c\u023d\7d\2\2\u023d\u023e\7t\2\2\u023e\u031b\7m\2"+
+		"\2\u023f\u0240\7q\2\2\u0240\u0241\7t\2\2\u0241\u031b\7c\2\2\u0242\u0243"+
+		"\7m\2\2\u0243\u0244\7k\2\2\u0244\u031b\7n\2\2\u0245\u0246\7u\2\2\u0246"+
+		"\u0247\7n\2\2\u0247\u031b\7q\2\2\u0248\u0249\7p\2\2\u0249\u024a\7q\2\2"+
+		"\u024a\u031b\7r\2\2\u024b\u024c\7c\2\2\u024c\u024d\7u\2\2\u024d\u031b"+
+		"\7n\2\2\u024e\u024f\7r\2\2\u024f\u0250\7j\2\2\u0250\u031b\7r\2\2\u0251"+
+		"\u0252\7c\2\2\u0252\u0253\7p\2\2\u0253\u031b\7e\2\2\u0254\u0255\7d\2\2"+
+		"\u0255\u0256\7r\2\2\u0256\u031b\7n\2\2\u0257\u0258\7e\2\2\u0258\u0259"+
+		"\7n\2\2\u0259\u031b\7e\2\2\u025a\u025b\7l\2\2\u025b\u025c\7u\2\2\u025c"+
+		"\u031b\7t\2\2\u025d\u025e\7c\2\2\u025e\u025f\7p\2\2\u025f\u031b\7f\2\2"+
+		"\u0260\u0261\7t\2\2\u0261\u0262\7n\2\2\u0262\u031b\7c\2\2\u0263\u0264"+
+		"\7d\2\2\u0264\u0265\7k\2\2\u0265\u031b\7v\2\2\u0266\u0267\7t\2\2\u0267"+
+		"\u0268\7q\2\2\u0268\u031b\7n\2\2\u0269\u026a\7r\2\2\u026a\u026b\7n\2\2"+
+		"\u026b\u031b\7c\2\2\u026c\u026d\7r\2\2\u026d\u026e\7n\2\2\u026e\u031b"+
+		"\7r\2\2\u026f\u0270\7d\2\2\u0270\u0271\7o\2\2\u0271\u031b\7k\2\2\u0272"+
+		"\u0273\7u\2\2\u0273\u0274\7g\2\2\u0274\u031b\7e\2\2\u0275\u0276\7t\2\2"+
+		"\u0276\u0277\7v\2\2\u0277\u031b\7k\2\2\u0278\u0279\7g\2\2\u0279\u027a"+
+		"\7q\2\2\u027a\u031b\7t\2\2\u027b\u027c\7u\2\2\u027c\u027d\7t\2\2\u027d"+
+		"\u031b\7g\2\2\u027e\u027f\7n\2\2\u027f\u0280\7u\2\2\u0280\u031b\7t\2\2"+
+		"\u0281\u0282\7r\2\2\u0282\u0283\7j\2\2\u0283\u031b\7c\2\2\u0284\u0285"+
+		"\7c\2\2\u0285\u0286\7n\2\2\u0286\u031b\7t\2\2\u0287\u0288\7l\2\2\u0288"+
+		"\u0289\7o\2\2\u0289\u031b\7r\2\2\u028a\u028b\7d\2\2\u028b\u028c\7x\2\2"+
+		"\u028c\u031b\7e\2\2\u028d\u028e\7e\2\2\u028e\u028f\7n\2\2\u028f\u031b"+
+		"\7k\2\2\u0290\u0291\7t\2\2\u0291\u0292\7v\2\2\u0292\u031b\7u\2\2\u0293"+
+		"\u0294\7c\2\2\u0294\u0295\7f\2\2\u0295\u031b\7e\2\2\u0296\u0297\7t\2\2"+
+		"\u0297\u0298\7t\2\2\u0298\u031b\7c\2\2\u0299\u029a\7d\2\2\u029a\u029b"+
+		"\7x\2\2\u029b\u031b\7u\2\2\u029c\u029d\7u\2\2\u029d\u029e\7g\2\2\u029e"+
+		"\u031b\7k\2\2\u029f\u02a0\7u\2\2\u02a0\u02a1\7c\2\2\u02a1\u031b\7z\2\2"+
+		"\u02a2\u02a3\7u\2\2\u02a3\u02a4\7v\2\2\u02a4\u031b\7{\2\2\u02a5\u02a6"+
+		"\7u\2\2\u02a6\u02a7\7v\2\2\u02a7\u031b\7c\2\2\u02a8\u02a9\7u\2\2\u02a9"+
+		"\u02aa\7v\2\2\u02aa\u031b\7z\2\2\u02ab\u02ac\7f\2\2\u02ac\u02ad\7g\2\2"+
+		"\u02ad\u031b\7{\2\2\u02ae\u02af\7v\2\2\u02af\u02b0\7z\2\2\u02b0\u031b"+
+		"\7c\2\2\u02b1\u02b2\7z\2\2\u02b2\u02b3\7c\2\2\u02b3\u031b\7c\2\2\u02b4"+
+		"\u02b5\7d\2\2\u02b5\u02b6\7e\2\2\u02b6\u031b\7e\2\2\u02b7\u02b8\7c\2\2"+
+		"\u02b8\u02b9\7j\2\2\u02b9\u031b\7z\2\2\u02ba\u02bb\7v\2\2\u02bb\u02bc"+
+		"\7{\2\2\u02bc\u031b\7c\2\2\u02bd\u02be\7v\2\2\u02be\u02bf\7z\2\2\u02bf"+
+		"\u031b\7u\2\2\u02c0\u02c1\7v\2\2\u02c1\u02c2\7c\2\2\u02c2\u031b\7u\2\2"+
+		"\u02c3\u02c4\7u\2\2\u02c4\u02c5\7j\2\2\u02c5\u031b\7{\2\2\u02c6\u02c7"+
+		"\7u\2\2\u02c7\u02c8\7j\2\2\u02c8\u031b\7z\2\2\u02c9\u02ca\7n\2\2\u02ca"+
+		"\u02cb\7f\2\2\u02cb\u031b\7{\2\2\u02cc\u02cd\7n\2\2\u02cd\u02ce\7f\2\2"+
+		"\u02ce\u031b\7c\2\2\u02cf\u02d0\7n\2\2\u02d0\u02d1\7f\2\2\u02d1\u031b"+
+		"\7z\2\2\u02d2\u02d3\7n\2\2\u02d3\u02d4\7c\2\2\u02d4\u031b\7z\2\2\u02d5"+
+		"\u02d6\7v\2\2\u02d6\u02d7\7c\2\2\u02d7\u031b\7{\2\2\u02d8\u02d9\7v\2\2"+
+		"\u02d9\u02da\7c\2\2\u02da\u031b\7z\2\2\u02db\u02dc\7d\2\2\u02dc\u02dd"+
+		"\7e\2\2\u02dd\u031b\7u\2\2\u02de\u02df\7e\2\2\u02df\u02e0\7n\2\2\u02e0"+
+		"\u031b\7x\2\2\u02e1\u02e2\7v\2\2\u02e2\u02e3\7u\2\2\u02e3\u031b\7z\2\2"+
+		"\u02e4\u02e5\7n\2\2\u02e5\u02e6\7c\2\2\u02e6\u031b\7u\2\2\u02e7\u02e8"+
+		"\7e\2\2\u02e8\u02e9\7r\2\2\u02e9\u031b\7{\2\2\u02ea\u02eb\7e\2\2\u02eb"+
+		"\u02ec\7o\2\2\u02ec\u031b\7r\2\2\u02ed\u02ee\7e\2\2\u02ee\u02ef\7r\2\2"+
+		"\u02ef\u031b\7z\2\2\u02f0\u02f1\7f\2\2\u02f1\u02f2\7e\2\2\u02f2\u031b"+
+		"\7r\2\2\u02f3\u02f4\7f\2\2\u02f4\u02f5\7g\2\2\u02f5\u031b\7e\2\2\u02f6"+
+		"\u02f7\7k\2\2\u02f7\u02f8\7p\2\2\u02f8\u031b\7e\2\2\u02f9\u02fa\7c\2\2"+
+		"\u02fa\u02fb\7z\2\2\u02fb\u031b\7u\2\2\u02fc\u02fd\7d\2\2\u02fd\u02fe"+
+		"\7p\2\2\u02fe\u031b\7g\2\2\u02ff\u0300\7e\2\2\u0300\u0301\7n\2\2\u0301"+
+		"\u031b\7f\2\2\u0302\u0303\7u\2\2\u0303\u0304\7d\2\2\u0304\u031b\7e\2\2"+
+		"\u0305\u0306\7k\2\2\u0306\u0307\7u\2\2\u0307\u031b\7e\2\2\u0308\u0309"+
+		"\7k\2\2\u0309\u030a\7p\2\2\u030a\u031b\7z\2\2\u030b\u030c\7d\2\2\u030c"+
+		"\u030d\7g\2\2\u030d\u031b\7s\2\2\u030e\u030f\7u\2\2\u030f\u0310\7g\2\2"+
+		"\u0310\u031b\7f\2\2\u0311\u0312\7f\2\2\u0312\u0313\7g\2\2\u0313\u031b"+
+		"\7z\2\2\u0314\u0315\7k\2\2\u0315\u0316\7p\2\2\u0316\u031b\7{\2\2\u0317"+
+		"\u0318\7t\2\2\u0318\u0319\7q\2\2\u0319\u031b\7t\2\2\u031a\u023c\3\2\2"+
+		"\2\u031a\u023f\3\2\2\2\u031a\u0242\3\2\2\2\u031a\u0245\3\2\2\2\u031a\u0248"+
+		"\3\2\2\2\u031a\u024b\3\2\2\2\u031a\u024e\3\2\2\2\u031a\u0251\3\2\2\2\u031a"+
+		"\u0254\3\2\2\2\u031a\u0257\3\2\2\2\u031a\u025a\3\2\2\2\u031a\u025d\3\2"+
+		"\2\2\u031a\u0260\3\2\2\2\u031a\u0263\3\2\2\2\u031a\u0266\3\2\2\2\u031a"+
+		"\u0269\3\2\2\2\u031a\u026c\3\2\2\2\u031a\u026f\3\2\2\2\u031a\u0272\3\2"+
+		"\2\2\u031a\u0275\3\2\2\2\u031a\u0278\3\2\2\2\u031a\u027b\3\2\2\2\u031a"+
+		"\u027e\3\2\2\2\u031a\u0281\3\2\2\2\u031a\u0284\3\2\2\2\u031a\u0287\3\2"+
+		"\2\2\u031a\u028a\3\2\2\2\u031a\u028d\3\2\2\2\u031a\u0290\3\2\2\2\u031a"+
+		"\u0293\3\2\2\2\u031a\u0296\3\2\2\2\u031a\u0299\3\2\2\2\u031a\u029c\3\2"+
+		"\2\2\u031a\u029f\3\2\2\2\u031a\u02a2\3\2\2\2\u031a\u02a5\3\2\2\2\u031a"+
+		"\u02a8\3\2\2\2\u031a\u02ab\3\2\2\2\u031a\u02ae\3\2\2\2\u031a\u02b1\3\2"+
+		"\2\2\u031a\u02b4\3\2\2\2\u031a\u02b7\3\2\2\2\u031a\u02ba\3\2\2\2\u031a"+
+		"\u02bd\3\2\2\2\u031a\u02c0\3\2\2\2\u031a\u02c3\3\2\2\2\u031a\u02c6\3\2"+
+		"\2\2\u031a\u02c9\3\2\2\2\u031a\u02cc\3\2\2\2\u031a\u02cf\3\2\2\2\u031a"+
+		"\u02d2\3\2\2\2\u031a\u02d5\3\2\2\2\u031a\u02d8\3\2\2\2\u031a\u02db\3\2"+
+		"\2\2\u031a\u02de\3\2\2\2\u031a\u02e1\3\2\2\2\u031a\u02e4\3\2\2\2\u031a"+
+		"\u02e7\3\2\2\2\u031a\u02ea\3\2\2\2\u031a\u02ed\3\2\2\2\u031a\u02f0\3\2"+
+		"\2\2\u031a\u02f3\3\2\2\2\u031a\u02f6\3\2\2\2\u031a\u02f9\3\2\2\2\u031a"+
+		"\u02fc\3\2\2\2\u031a\u02ff\3\2\2\2\u031a\u0302\3\2\2\2\u031a\u0305\3\2"+
+		"\2\2\u031a\u0308\3\2\2\2\u031a\u030b\3\2\2\2\u031a\u030e\3\2\2\2\u031a"+
+		"\u0311\3\2\2\2\u031a\u0314\3\2\2\2\u031a\u0317\3\2\2\2\u031b\u00a8\3\2"+
+		"\2\2\u031c\u031d\7}\2\2\u031d\u031e\7}\2\2\u031e\u0322\3\2\2\2\u031f\u0321"+
+		"\13\2\2\2\u0320\u031f\3\2\2\2\u0321\u0324\3\2\2\2\u0322\u0323\3\2\2\2"+
+		"\u0322\u0320\3\2\2\2\u0323\u0325\3\2\2\2\u0324\u0322\3\2\2\2\u0325\u0326"+
+		"\7\177\2\2\u0326\u0327\7\177\2\2\u0327\u00aa\3\2\2\2\u0328\u0329\7d\2"+
+		"\2\u0329\u032a\7{\2\2\u032a\u032b\7v\2\2\u032b\u034e\7g\2\2\u032c\u032d"+
+		"\7y\2\2\u032d\u032e\7q\2\2\u032e\u032f\7t\2\2\u032f\u034e\7f\2\2\u0330"+
+		"\u0331\7f\2\2\u0331\u0332\7y\2\2\u0332\u0333\7q\2\2\u0333\u0334\7t\2\2"+
+		"\u0334\u034e\7f\2\2\u0335\u0336\7d\2\2\u0336\u0337\7q\2\2\u0337\u0338"+
+		"\7q\2\2\u0338\u034e\7n\2\2\u0339\u033a\7e\2\2\u033a\u033b\7j\2\2\u033b"+
+		"\u033c\7c\2\2\u033c\u034e\7t\2\2\u033d\u033e\7u\2\2\u033e\u033f\7j\2\2"+
+		"\u033f\u0340\7q\2\2\u0340\u0341\7t\2\2\u0341\u034e\7v\2\2\u0342\u0343"+
+		"\7k\2\2\u0343\u0344\7p\2\2\u0344\u034e\7v\2\2\u0345\u0346\7n\2\2\u0346"+
+		"\u0347\7q\2\2\u0347\u0348\7p\2\2\u0348\u034e\7i\2\2\u0349\u034a\7x\2\2"+
+		"\u034a\u034b\7q\2\2\u034b\u034c\7k\2\2\u034c\u034e\7f\2\2\u034d\u0328"+
+		"\3\2\2\2\u034d\u032c\3\2\2\2\u034d\u0330\3\2\2\2\u034d\u0335\3\2\2\2\u034d"+
+		"\u0339\3\2\2\2\u034d\u033d\3\2\2\2\u034d\u0342\3\2\2\2\u034d\u0345\3\2"+
+		"\2\2\u034d\u0349\3\2\2\2\u034e\u00ac\3\2\2\2\u034f\u0355\7$\2\2\u0350"+
+		"\u0351\7^\2\2\u0351\u0354\7$\2\2\u0352\u0354\n\2\2\2\u0353\u0350\3\2\2"+
+		"\2\u0353\u0352\3\2\2\2\u0354\u0357\3\2\2\2\u0355\u0353\3\2\2\2\u0355\u0356"+
+		"\3\2\2\2\u0356\u0358\3\2\2\2\u0357\u0355\3\2\2\2\u0358\u035a\7$\2\2\u0359"+
+		"\u035b\t\3\2\2\u035a\u0359\3\2\2\2\u035a\u035b\3\2\2\2\u035b\u0360\3\2"+
+		"\2\2\u035c\u035e\t\4\2\2\u035d\u035f\t\5\2\2\u035e\u035d\3\2\2\2\u035e"+
+		"\u035f\3\2\2\2\u035f\u0361\3\2\2\2\u0360\u035c\3\2\2\2\u0360\u0361\3\2"+
+		"\2\2\u0361\u0363\3\2\2\2\u0362\u0364\t\3\2\2\u0363\u0362\3\2\2\2\u0363"+
+		"\u0364\3\2\2\2\u0364\u00ae\3\2\2\2\u0365\u0369\7)\2\2\u0366\u0367\7^\2"+
+		"\2\u0367\u036a\7)\2\2\u0368\u036a\n\6\2\2\u0369\u0366\3\2\2\2\u0369\u0368"+
+		"\3\2\2\2\u036a\u036b\3\2\2\2\u036b\u036c\7)\2\2\u036c\u00b0\3\2\2\2\u036d"+
+		"\u036e\7v\2\2\u036e\u036f\7t\2\2\u036f\u0370\7w\2\2\u0370\u0377\7g\2\2"+
+		"\u0371\u0372\7h\2\2\u0372\u0373\7c\2\2\u0373\u0374\7n\2\2\u0374\u0375"+
+		"\7u\2\2\u0375\u0377\7g\2\2\u0376\u036d\3\2\2\2\u0376\u0371\3\2\2\2\u0377"+
+		"\u00b2\3\2\2\2\u0378\u037b\5\u00b5[\2\u0379\u037b\5\u00bd_\2\u037a\u0378"+
+		"\3\2\2\2\u037a\u0379\3\2\2\2\u037b\u00b4\3\2\2\2\u037c\u0380\5\u00b7\\"+
+		"\2\u037d\u0380\5\u00b9]\2\u037e\u0380\5\u00bb^\2\u037f\u037c\3\2\2\2\u037f"+
+		"\u037d\3\2\2\2\u037f\u037e\3\2\2\2\u0380\u00b6\3\2\2\2\u0381\u0387\7\'"+
+		"\2\2\u0382\u0383\7\62\2\2\u0383\u0387\7d\2\2\u0384\u0385\7\62\2\2\u0385"+
+		"\u0387\7D\2\2\u0386\u0381\3\2\2\2\u0386\u0382\3\2\2\2\u0386\u0384\3\2"+
+		"\2\2\u0387\u038b\3\2\2\2\u0388\u038a\5\u00c5c\2\u0389\u0388\3\2\2\2\u038a"+
+		"\u038d\3\2\2\2\u038b\u0389\3\2\2\2\u038b\u038c\3\2\2\2\u038c\u038e\3\2"+
+		"\2\2\u038d\u038b\3\2\2\2\u038e\u0390\7\60\2\2\u038f\u0391\5\u00c5c\2\u0390"+
+		"\u038f\3\2\2\2\u0391\u0392\3\2\2\2\u0392\u0390\3\2\2\2\u0392\u0393\3\2"+
+		"\2\2\u0393\u00b8\3\2\2\2\u0394\u0396\5\u00c7d\2\u0395\u0394\3\2\2\2\u0396"+
+		"\u0399\3\2\2\2\u0397\u0395\3\2\2\2\u0397\u0398\3\2\2\2\u0398\u039a\3\2"+
+		"\2\2\u0399\u0397\3\2\2\2\u039a\u039c\7\60\2\2\u039b\u039d\5\u00c7d\2\u039c"+
+		"\u039b\3\2\2\2\u039d\u039e\3\2\2\2\u039e\u039c\3\2\2\2\u039e\u039f\3\2"+
+		"\2\2\u039f\u00ba\3\2\2\2\u03a0\u03a6\7&\2\2\u03a1\u03a2\7\62\2\2\u03a2"+
+		"\u03a6\7z\2\2\u03a3\u03a4\7\62\2\2\u03a4\u03a6\7Z\2\2\u03a5\u03a0\3\2"+
+		"\2\2\u03a5\u03a1\3\2\2\2\u03a5\u03a3\3\2\2\2\u03a6\u03aa\3\2\2\2\u03a7"+
+		"\u03a9\5\u00c9e\2\u03a8\u03a7\3\2\2\2\u03a9\u03ac\3\2\2\2\u03aa\u03a8"+
+		"\3\2\2\2\u03aa\u03ab\3\2\2\2\u03ab\u03ad\3\2\2\2\u03ac\u03aa\3\2\2\2\u03ad"+
+		"\u03af\7\60\2\2\u03ae\u03b0\5\u00c9e\2\u03af\u03ae\3\2\2\2\u03b0\u03b1"+
+		"\3\2\2\2\u03b1\u03af\3\2\2\2\u03b1\u03b2\3\2\2\2\u03b2\u00bc\3\2\2\2\u03b3"+
+		"\u03b7\5\u00c1a\2\u03b4\u03b7\5\u00c3b\2\u03b5\u03b7\5\u00bf`\2\u03b6"+
+		"\u03b3\3\2\2\2\u03b6\u03b4\3\2\2\2\u03b6\u03b5\3\2\2\2\u03b7\u03bb\3\2"+
+		"\2\2\u03b8\u03b9\t\7\2\2\u03b9\u03bc\t\b\2\2\u03ba\u03bc\7n\2\2\u03bb"+
+		"\u03b8\3\2\2\2\u03bb\u03ba\3\2\2\2\u03bb\u03bc\3\2\2\2\u03bc\u00be\3\2"+
+		"\2\2\u03bd\u03be\7\62\2\2\u03be\u03c0\t\t\2\2\u03bf\u03c1\5\u00c5c\2\u03c0"+
+		"\u03bf\3\2\2\2\u03c1\u03c2\3\2\2\2\u03c2\u03c0\3\2\2\2\u03c2\u03c3\3\2"+
+		"\2\2\u03c3\u03cb\3\2\2\2\u03c4\u03c6\7\'\2\2\u03c5\u03c7\5\u00c5c\2\u03c6"+
+		"\u03c5\3\2\2\2\u03c7\u03c8\3\2\2\2\u03c8\u03c6\3\2\2\2\u03c8\u03c9\3\2"+
+		"\2\2\u03c9\u03cb\3\2\2\2\u03ca\u03bd\3\2\2\2\u03ca\u03c4\3\2\2\2\u03cb"+
+		"\u00c0\3\2\2\2\u03cc\u03ce\5\u00c7d\2\u03cd\u03cc\3\2\2\2\u03ce\u03cf"+
+		"\3\2\2\2\u03cf\u03cd\3\2\2\2\u03cf\u03d0\3\2\2\2\u03d0\u00c2\3\2\2\2\u03d1"+
+		"\u03d7\7&\2\2\u03d2\u03d3\7\62\2\2\u03d3\u03d7\7z\2\2\u03d4\u03d5\7\62"+
+		"\2\2\u03d5\u03d7\7Z\2\2\u03d6\u03d1\3\2\2\2\u03d6\u03d2\3\2\2\2\u03d6"+
+		"\u03d4\3\2\2\2\u03d7\u03d9\3\2\2\2\u03d8\u03da\5\u00c9e\2\u03d9\u03d8"+
+		"\3\2\2\2\u03da\u03db\3\2\2\2\u03db\u03d9\3\2\2\2\u03db\u03dc\3\2\2\2\u03dc"+
+		"\u00c4\3\2\2\2\u03dd\u03de\t\n\2\2\u03de\u00c6\3\2\2\2\u03df\u03e0\t\13"+
+		"\2\2\u03e0\u00c8\3\2\2\2\u03e1\u03e2\t\f\2\2\u03e2\u00ca\3\2\2\2\u03e3"+
+		"\u03e7\5\u00cdg\2\u03e4\u03e6\5\u00cfh\2\u03e5\u03e4\3\2\2\2\u03e6\u03e9"+
+		"\3\2\2\2\u03e7\u03e5\3\2\2\2\u03e7\u03e8\3\2\2\2\u03e8\u00cc\3\2\2\2\u03e9"+
+		"\u03e7\3\2\2\2\u03ea\u03eb\t\r\2\2\u03eb\u00ce\3\2\2\2\u03ec\u03ed\t\16"+
+		"\2\2\u03ed\u00d0\3\2\2\2\u03ee\u03f2\7#\2\2\u03ef\u03f1\5\u00cfh\2\u03f0"+
+		"\u03ef\3\2\2\2\u03f1\u03f4\3\2\2\2\u03f2\u03f0\3\2\2\2\u03f2\u03f3\3\2"+
+		"\2\2\u03f3\u03f6\3\2\2\2\u03f4\u03f2\3\2\2\2\u03f5\u03f7\t\17\2\2\u03f6"+
+		"\u03f5\3\2\2\2\u03f7\u03f8\3\2\2\2\u03f8\u03f6\3\2\2\2\u03f8\u03f9\3\2"+
+		"\2\2\u03f9\u00d2\3\2\2\2\u03fa\u03fc\t\20\2\2\u03fb\u03fa\3\2\2\2\u03fc"+
+		"\u03fd\3\2\2\2\u03fd\u03fb\3\2\2\2\u03fd\u03fe\3\2\2\2\u03fe\u03ff\3\2"+
+		"\2\2\u03ff\u0400\bj\2\2\u0400\u00d4\3\2\2\2\u0401\u0402\7\61\2\2\u0402"+
+		"\u0403\7\61\2\2\u0403\u0407\3\2\2\2\u0404\u0406\n\21\2\2\u0405\u0404\3"+
+		"\2\2\2\u0406\u0409\3\2\2\2\u0407\u0405\3\2\2\2\u0407\u0408\3\2\2\2\u0408"+
+		"\u040a\3\2\2\2\u0409\u0407\3\2\2\2\u040a\u040b\bk\3\2\u040b\u00d6\3\2"+
+		"\2\2\u040c\u040d\7\61\2\2\u040d\u040e\7,\2\2\u040e\u0412\3\2\2\2\u040f"+
+		"\u0411\13\2\2\2\u0410\u040f\3\2\2\2\u0411\u0414\3\2\2\2\u0412\u0413\3"+
+		"\2\2\2\u0412\u0410\3\2\2\2\u0413\u0415\3\2\2\2\u0414\u0412\3\2\2\2\u0415"+
+		"\u0416\7,\2\2\u0416\u0417\7\61\2\2\u0417\u0418\3\2\2\2\u0418\u0419\bl"+
+		"\3\2\u0419\u00d8\3\2\2\2&\2\u031a\u0322\u034d\u0353\u0355\u035a\u035e"+
+		"\u0360\u0363\u0369\u0376\u037a\u037f\u0386\u038b\u0392\u0397\u039e\u03a5"+
+		"\u03aa\u03b1\u03b6\u03bb\u03c2\u03c8\u03ca\u03cf\u03d6\u03db\u03e7\u03f2"+
+		"\u03f8\u03fd\u0407\u0412\4\2\3\2\2\4\2";
 	public static final ATN _ATN =
 		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
 	static {
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens
index e35ffe7a3..e74cc1bef 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCLexer.tokens
@@ -79,26 +79,27 @@ T__77=78
 T__78=79
 T__79=80
 T__80=81
-MNEMONIC=82
-KICKASM=83
-SIMPLETYPE=84
-STRING=85
-CHAR=86
-BOOLEAN=87
-NUMBER=88
-NUMFLOAT=89
-BINFLOAT=90
-DECFLOAT=91
-HEXFLOAT=92
-NUMINT=93
-BININTEGER=94
-DECINTEGER=95
-HEXINTEGER=96
-NAME=97
-ASMREL=98
-WS=99
-COMMENT_LINE=100
-COMMENT_BLOCK=101
+T__81=82
+MNEMONIC=83
+KICKASM=84
+SIMPLETYPE=85
+STRING=86
+CHAR=87
+BOOLEAN=88
+NUMBER=89
+NUMFLOAT=90
+BINFLOAT=91
+DECFLOAT=92
+HEXFLOAT=93
+NUMINT=94
+BININTEGER=95
+DECINTEGER=96
+HEXINTEGER=97
+NAME=98
+ASMREL=99
+WS=100
+COMMENT_LINE=101
+COMMENT_BLOCK=102
 'import'=1
 ';'=2
 'typedef'=3
@@ -110,73 +111,74 @@ COMMENT_BLOCK=101
 '}'=9
 '#'=10
 'pc'=11
-'encoding'=12
-'const'=13
-'extern'=14
-'align'=15
-'register'=16
-'inline'=17
-'volatile'=18
-'interrupt'=19
-'reserve'=20
-'if'=21
-'else'=22
-'while'=23
-'do'=24
-'for'=25
-'return'=26
-'break'=27
-'continue'=28
-'asm'=29
-':'=30
-'..'=31
-'signed'=32
-'unsigned'=33
-'*'=34
-'['=35
-']'=36
-'struct'=37
-'enum'=38
-'.'=39
-'->'=40
-'sizeof'=41
-'typeid'=42
-'--'=43
-'++'=44
-'+'=45
-'-'=46
-'!'=47
-'&'=48
-'~'=49
-'>>'=50
-'<<'=51
-'/'=52
-'%'=53
-'<'=54
-'>'=55
-'=='=56
-'!='=57
-'<='=58
-'>='=59
-'^'=60
-'|'=61
-'&&'=62
-'||'=63
-'?'=64
-'+='=65
-'-='=66
-'*='=67
-'/='=68
-'%='=69
-'<<='=70
-'>>='=71
-'&='=72
-'|='=73
-'^='=74
-'kickasm'=75
-'resource'=76
-'uses'=77
-'clobbers'=78
-'bytes'=79
-'cycles'=80
-'.byte'=81
+'platform'=12
+'encoding'=13
+'const'=14
+'extern'=15
+'align'=16
+'register'=17
+'inline'=18
+'volatile'=19
+'interrupt'=20
+'reserve'=21
+'if'=22
+'else'=23
+'while'=24
+'do'=25
+'for'=26
+'return'=27
+'break'=28
+'continue'=29
+'asm'=30
+':'=31
+'..'=32
+'signed'=33
+'unsigned'=34
+'*'=35
+'['=36
+']'=37
+'struct'=38
+'enum'=39
+'.'=40
+'->'=41
+'sizeof'=42
+'typeid'=43
+'--'=44
+'++'=45
+'+'=46
+'-'=47
+'!'=48
+'&'=49
+'~'=50
+'>>'=51
+'<<'=52
+'/'=53
+'%'=54
+'<'=55
+'>'=56
+'=='=57
+'!='=58
+'<='=59
+'>='=60
+'^'=61
+'|'=62
+'&&'=63
+'||'=64
+'?'=65
+'+='=66
+'-='=67
+'*='=68
+'/='=69
+'%='=70
+'<<='=71
+'>>='=72
+'&='=73
+'|='=74
+'^='=75
+'kickasm'=76
+'resource'=77
+'uses'=78
+'clobbers'=79
+'bytes'=80
+'cycles'=81
+'.byte'=82
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCListener.java b/src/main/java/dk/camelot64/kickc/parser/KickCListener.java
index ea1a1dbd9..c54377b21 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCListener.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCListener.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 import org.antlr.v4.runtime.tree.ParseTreeListener;
 
@@ -199,6 +199,18 @@ public interface KickCListener extends ParseTreeListener {
 	 * @param ctx the parse tree
 	 */
 	void exitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx);
+	/**
+	 * Enter a parse tree produced by the {@code globalDirectivePlatform}
+	 * labeled alternative in {@link KickCParser#globalDirective}.
+	 * @param ctx the parse tree
+	 */
+	void enterGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx);
+	/**
+	 * Exit a parse tree produced by the {@code globalDirectivePlatform}
+	 * labeled alternative in {@link KickCParser#globalDirective}.
+	 * @param ctx the parse tree
+	 */
+	void exitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx);
 	/**
 	 * Enter a parse tree produced by the {@code globalDirectiveEncoding}
 	 * labeled alternative in {@link KickCParser#globalDirective}.
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCParser.java b/src/main/java/dk/camelot64/kickc/parser/KickCParser.java
index 6b53e7031..106fe9412 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCParser.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCParser.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 import org.antlr.v4.runtime.atn.*;
 import org.antlr.v4.runtime.dfa.DFA;
@@ -28,10 +28,10 @@ public class KickCParser extends Parser {
 		T__59=60, T__60=61, T__61=62, T__62=63, T__63=64, T__64=65, T__65=66, 
 		T__66=67, T__67=68, T__68=69, T__69=70, T__70=71, T__71=72, T__72=73, 
 		T__73=74, T__74=75, T__75=76, T__76=77, T__77=78, T__78=79, T__79=80, 
-		T__80=81, MNEMONIC=82, KICKASM=83, SIMPLETYPE=84, STRING=85, CHAR=86, 
-		BOOLEAN=87, NUMBER=88, NUMFLOAT=89, BINFLOAT=90, DECFLOAT=91, HEXFLOAT=92, 
-		NUMINT=93, BININTEGER=94, DECINTEGER=95, HEXINTEGER=96, NAME=97, ASMREL=98, 
-		WS=99, COMMENT_LINE=100, COMMENT_BLOCK=101;
+		T__80=81, T__81=82, MNEMONIC=83, KICKASM=84, SIMPLETYPE=85, STRING=86, 
+		CHAR=87, BOOLEAN=88, NUMBER=89, NUMFLOAT=90, BINFLOAT=91, DECFLOAT=92, 
+		HEXFLOAT=93, NUMINT=94, BININTEGER=95, DECINTEGER=96, HEXINTEGER=97, NAME=98, 
+		ASMREL=99, WS=100, COMMENT_LINE=101, COMMENT_BLOCK=102;
 	public static final int
 		RULE_file = 0, RULE_asmFile = 1, RULE_importSeq = 2, RULE_importDecl = 3, 
 		RULE_declSeq = 4, RULE_decl = 5, RULE_typeDef = 6, RULE_declTypes = 7, 
@@ -58,9 +58,9 @@ public class KickCParser extends Parser {
 
 	private static final String[] _LITERAL_NAMES = {
 		null, "'import'", "';'", "'typedef'", "','", "'='", "'('", "')'", "'{'", 
-		"'}'", "'#'", "'pc'", "'encoding'", "'const'", "'extern'", "'align'", 
-		"'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", "'if'", 
-		"'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", 
+		"'}'", "'#'", "'pc'", "'platform'", "'encoding'", "'const'", "'extern'", 
+		"'align'", "'register'", "'inline'", "'volatile'", "'interrupt'", "'reserve'", 
+		"'if'", "'else'", "'while'", "'do'", "'for'", "'return'", "'break'", "'continue'", 
 		"'asm'", "':'", "'..'", "'signed'", "'unsigned'", "'*'", "'['", "']'", 
 		"'struct'", "'enum'", "'.'", "'->'", "'sizeof'", "'typeid'", "'--'", "'++'", 
 		"'+'", "'-'", "'!'", "'&'", "'~'", "'>>'", "'<<'", "'/'", "'%'", "'<'", 
@@ -76,7 +76,7 @@ public class KickCParser extends Parser {
 		null, null, null, null, null, null, null, null, null, null, null, null, 
 		null, null, null, null, null, null, null, null, null, null, null, null, 
 		null, null, null, null, null, null, null, null, null, null, null, null, 
-		null, null, null, null, null, null, null, null, null, null, "MNEMONIC", 
+		null, null, null, null, null, null, null, null, null, null, null, "MNEMONIC", 
 		"KICKASM", "SIMPLETYPE", "STRING", "CHAR", "BOOLEAN", "NUMBER", "NUMFLOAT", 
 		"BINFLOAT", "DECFLOAT", "HEXFLOAT", "NUMINT", "BININTEGER", "DECINTEGER", 
 		"HEXINTEGER", "NAME", "ASMREL", "WS", "COMMENT_LINE", "COMMENT_BLOCK"
@@ -379,7 +379,7 @@ public class KickCParser extends Parser {
 				setState(103); 
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << T__5) | (1L << T__9) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (NAME - 75)))) != 0) );
+			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__2) | (1L << T__5) | (1L << T__9) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (NAME - 76)))) != 0) );
 			}
 		}
 		catch (RecognitionException re) {
@@ -438,7 +438,7 @@ public class KickCParser extends Parser {
 		DeclContext _localctx = new DeclContext(_ctx, getState());
 		enterRule(_localctx, 10, RULE_decl);
 		try {
-			setState(121);
+			setState(120);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,2,_ctx) ) {
 			case 1:
@@ -479,29 +479,22 @@ public class KickCParser extends Parser {
 				enterOuterAlt(_localctx, 5);
 				{
 				setState(115);
-				declFunction();
+				declKasm();
 				}
 				break;
 			case 6:
 				enterOuterAlt(_localctx, 6);
 				{
 				setState(116);
-				declKasm();
+				globalDirective();
 				}
 				break;
 			case 7:
 				enterOuterAlt(_localctx, 7);
 				{
 				setState(117);
-				globalDirective();
-				}
-				break;
-			case 8:
-				enterOuterAlt(_localctx, 8);
-				{
-				setState(118);
 				typeDef();
-				setState(119);
+				setState(118);
 				match(T__1);
 				}
 				break;
@@ -547,9 +540,9 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(123);
+			setState(122);
 			match(T__2);
-			setState(124);
+			setState(123);
 			declVariables();
 			}
 		}
@@ -600,33 +593,33 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(129);
+			setState(128);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
-			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) {
+			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) {
 				{
 				{
-				setState(126);
+				setState(125);
 				directive();
 				}
 				}
-				setState(131);
+				setState(130);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
-			setState(132);
+			setState(131);
 			typeDecl(0);
-			setState(136);
+			setState(135);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
-			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) {
+			while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) {
 				{
 				{
-				setState(133);
+				setState(132);
 				directive();
 				}
 				}
-				setState(138);
+				setState(137);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
@@ -675,9 +668,9 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(139);
+			setState(138);
 			declTypes();
-			setState(140);
+			setState(139);
 			declVariableList(0);
 			}
 		}
@@ -734,11 +727,11 @@ public class KickCParser extends Parser {
 			enterOuterAlt(_localctx, 1);
 			{
 			{
-			setState(143);
+			setState(142);
 			declVariableInit();
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(150);
+			setState(149);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,5,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -749,16 +742,16 @@ public class KickCParser extends Parser {
 					{
 					_localctx = new DeclVariableListContext(_parentctx, _parentState);
 					pushNewRecursionContext(_localctx, _startState, RULE_declVariableList);
-					setState(145);
+					setState(144);
 					if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
-					setState(146);
+					setState(145);
 					match(T__3);
-					setState(147);
+					setState(146);
 					declVariableInit();
 					}
 					} 
 				}
-				setState(152);
+				setState(151);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,5,_ctx);
 			}
@@ -831,23 +824,23 @@ public class KickCParser extends Parser {
 		DeclVariableInitContext _localctx = new DeclVariableInitContext(_ctx, getState());
 		enterRule(_localctx, 20, RULE_declVariableInit);
 		try {
-			setState(161);
+			setState(160);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,7,_ctx) ) {
 			case 1:
 				_localctx = new DeclVariableInitExprContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(153);
+				setState(152);
 				match(NAME);
-				setState(156);
+				setState(155);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) {
 				case 1:
 					{
-					setState(154);
+					setState(153);
 					match(T__4);
-					setState(155);
+					setState(154);
 					expr(0);
 					}
 					break;
@@ -858,11 +851,11 @@ public class KickCParser extends Parser {
 				_localctx = new DeclVariableInitKasmContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(158);
+				setState(157);
 				match(NAME);
-				setState(159);
+				setState(158);
 				match(T__4);
-				setState(160);
+				setState(159);
 				declKasm();
 				}
 				break;
@@ -916,37 +909,37 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(163);
+			setState(162);
 			declTypes();
-			setState(164);
+			setState(163);
 			match(NAME);
-			setState(165);
+			setState(164);
 			match(T__5);
-			setState(167);
+			setState(166);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
-			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME) {
+			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME) {
 				{
-				setState(166);
+				setState(165);
 				parameterListDecl();
 				}
 			}
 
-			setState(169);
+			setState(168);
 			match(T__6);
-			setState(170);
+			setState(169);
 			match(T__7);
-			setState(172);
+			setState(171);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
-			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0)) {
+			if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0)) {
 				{
-				setState(171);
+				setState(170);
 				stmtSeq();
 				}
 			}
 
-			setState(174);
+			setState(173);
 			match(T__8);
 			}
 		}
@@ -994,21 +987,21 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(176);
+			setState(175);
 			parameterDecl();
-			setState(181);
+			setState(180);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			while (_la==T__3) {
 				{
 				{
-				setState(177);
+				setState(176);
 				match(T__3);
-				setState(178);
+				setState(177);
 				parameterDecl();
 				}
 				}
-				setState(183);
+				setState(182);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
@@ -1078,16 +1071,16 @@ public class KickCParser extends Parser {
 		ParameterDeclContext _localctx = new ParameterDeclContext(_ctx, getState());
 		enterRule(_localctx, 26, RULE_parameterDecl);
 		try {
-			setState(188);
+			setState(187);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,11,_ctx) ) {
 			case 1:
 				_localctx = new ParameterDeclTypeContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(184);
+				setState(183);
 				declTypes();
-				setState(185);
+				setState(184);
 				match(NAME);
 				}
 				break;
@@ -1095,7 +1088,7 @@ public class KickCParser extends Parser {
 				_localctx = new ParameterDeclVoidContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(187);
+				setState(186);
 				match(SIMPLETYPE);
 				}
 				break;
@@ -1176,21 +1169,38 @@ public class KickCParser extends Parser {
 			else return visitor.visitChildren(this);
 		}
 	}
+	public static class GlobalDirectivePlatformContext extends GlobalDirectiveContext {
+		public TerminalNode NAME() { return getToken(KickCParser.NAME, 0); }
+		public GlobalDirectivePlatformContext(GlobalDirectiveContext ctx) { copyFrom(ctx); }
+		@Override
+		public void enterRule(ParseTreeListener listener) {
+			if ( listener instanceof KickCListener ) ((KickCListener)listener).enterGlobalDirectivePlatform(this);
+		}
+		@Override
+		public void exitRule(ParseTreeListener listener) {
+			if ( listener instanceof KickCListener ) ((KickCListener)listener).exitGlobalDirectivePlatform(this);
+		}
+		@Override
+		public <T> T accept(ParseTreeVisitor<? extends T> visitor) {
+			if ( visitor instanceof KickCVisitor ) return ((KickCVisitor<? extends T>)visitor).visitGlobalDirectivePlatform(this);
+			else return visitor.visitChildren(this);
+		}
+	}
 
 	public final GlobalDirectiveContext globalDirective() throws RecognitionException {
 		GlobalDirectiveContext _localctx = new GlobalDirectiveContext(_ctx, getState());
 		enterRule(_localctx, 28, RULE_globalDirective);
 		try {
-			setState(202);
+			setState(206);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,12,_ctx) ) {
 			case 1:
 				_localctx = new GlobalDirectiveReserveContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(190);
+				setState(189);
 				match(T__9);
-				setState(191);
+				setState(190);
 				directiveReserve();
 				}
 				break;
@@ -1198,31 +1208,47 @@ public class KickCParser extends Parser {
 				_localctx = new GlobalDirectivePcContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(192);
+				setState(191);
 				match(T__9);
-				setState(193);
+				setState(192);
 				match(T__10);
-				setState(194);
+				setState(193);
 				match(T__5);
-				setState(195);
+				setState(194);
 				match(NUMBER);
-				setState(196);
+				setState(195);
 				match(T__6);
 				}
 				break;
 			case 3:
-				_localctx = new GlobalDirectiveEncodingContext(_localctx);
+				_localctx = new GlobalDirectivePlatformContext(_localctx);
 				enterOuterAlt(_localctx, 3);
 				{
-				setState(197);
+				setState(196);
 				match(T__9);
-				setState(198);
+				setState(197);
 				match(T__11);
-				setState(199);
+				setState(198);
 				match(T__5);
-				setState(200);
+				setState(199);
 				match(NAME);
+				setState(200);
+				match(T__6);
+				}
+				break;
+			case 4:
+				_localctx = new GlobalDirectiveEncodingContext(_localctx);
+				enterOuterAlt(_localctx, 4);
+				{
 				setState(201);
+				match(T__9);
+				setState(202);
+				match(T__12);
+				setState(203);
+				match(T__5);
+				setState(204);
+				match(NAME);
+				setState(205);
 				match(T__6);
 				}
 				break;
@@ -1389,96 +1415,96 @@ public class KickCParser extends Parser {
 		DirectiveContext _localctx = new DirectiveContext(_ctx, getState());
 		enterRule(_localctx, 30, RULE_directive);
 		try {
-			setState(223);
+			setState(227);
 			_errHandler.sync(this);
 			switch (_input.LA(1)) {
-			case T__12:
+			case T__13:
 				_localctx = new DirectiveConstContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(204);
-				match(T__12);
-				}
-				break;
-			case T__13:
-				_localctx = new DirectiveExternContext(_localctx);
-				enterOuterAlt(_localctx, 2);
-				{
-				setState(205);
+				setState(208);
 				match(T__13);
 				}
 				break;
 			case T__14:
-				_localctx = new DirectiveAlignContext(_localctx);
-				enterOuterAlt(_localctx, 3);
+				_localctx = new DirectiveExternContext(_localctx);
+				enterOuterAlt(_localctx, 2);
 				{
-				setState(206);
-				match(T__14);
-				setState(207);
-				match(T__5);
-				setState(208);
-				match(NUMBER);
 				setState(209);
-				match(T__6);
+				match(T__14);
 				}
 				break;
 			case T__15:
-				_localctx = new DirectiveRegisterContext(_localctx);
-				enterOuterAlt(_localctx, 4);
+				_localctx = new DirectiveAlignContext(_localctx);
+				enterOuterAlt(_localctx, 3);
 				{
 				setState(210);
 				match(T__15);
 				setState(211);
 				match(T__5);
 				setState(212);
-				match(NAME);
+				match(NUMBER);
 				setState(213);
 				match(T__6);
 				}
 				break;
 			case T__16:
-				_localctx = new DirectiveInlineContext(_localctx);
-				enterOuterAlt(_localctx, 5);
+				_localctx = new DirectiveRegisterContext(_localctx);
+				enterOuterAlt(_localctx, 4);
 				{
 				setState(214);
 				match(T__16);
+				setState(215);
+				match(T__5);
+				setState(216);
+				match(NAME);
+				setState(217);
+				match(T__6);
 				}
 				break;
 			case T__17:
-				_localctx = new DirectiveVolatileContext(_localctx);
-				enterOuterAlt(_localctx, 6);
+				_localctx = new DirectiveInlineContext(_localctx);
+				enterOuterAlt(_localctx, 5);
 				{
-				setState(215);
+				setState(218);
 				match(T__17);
 				}
 				break;
 			case T__18:
+				_localctx = new DirectiveVolatileContext(_localctx);
+				enterOuterAlt(_localctx, 6);
+				{
+				setState(219);
+				match(T__18);
+				}
+				break;
+			case T__19:
 				_localctx = new DirectiveInterruptContext(_localctx);
 				enterOuterAlt(_localctx, 7);
 				{
-				setState(216);
-				match(T__18);
 				setState(220);
+				match(T__19);
+				setState(224);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,13,_ctx) ) {
 				case 1:
 					{
-					setState(217);
+					setState(221);
 					match(T__5);
-					setState(218);
+					setState(222);
 					match(NAME);
-					setState(219);
+					setState(223);
 					match(T__6);
 					}
 					break;
 				}
 				}
 				break;
-			case T__19:
+			case T__20:
 				_localctx = new DirectiveReserveZpContext(_localctx);
 				enterOuterAlt(_localctx, 8);
 				{
-				setState(222);
+				setState(226);
 				directiveReserve();
 				}
 				break;
@@ -1528,29 +1554,29 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(225);
-			match(T__19);
-			setState(226);
+			setState(229);
+			match(T__20);
+			setState(230);
 			match(T__5);
-			setState(227);
+			setState(231);
 			match(NUMBER);
-			setState(232);
+			setState(236);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			while (_la==T__3) {
 				{
 				{
-				setState(228);
+				setState(232);
 				match(T__3);
-				setState(229);
+				setState(233);
 				match(NUMBER);
 				}
 				}
-				setState(234);
+				setState(238);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
-			setState(235);
+			setState(239);
 			match(T__6);
 			}
 		}
@@ -1598,20 +1624,20 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(238); 
+			setState(242); 
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			do {
 				{
 				{
-				setState(237);
+				setState(241);
 				stmt();
 				}
 				}
-				setState(240); 
+				setState(244); 
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0) );
+			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0) );
 			}
 		}
 		catch (RecognitionException re) {
@@ -1900,16 +1926,16 @@ public class KickCParser extends Parser {
 		enterRule(_localctx, 36, RULE_stmt);
 		int _la;
 		try {
-			setState(318);
+			setState(322);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,24,_ctx) ) {
 			case 1:
 				_localctx = new StmtDeclVarContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(242);
+				setState(246);
 				declVariables();
-				setState(243);
+				setState(247);
 				match(T__1);
 				}
 				break;
@@ -1917,19 +1943,19 @@ public class KickCParser extends Parser {
 				_localctx = new StmtBlockContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(245);
+				setState(249);
 				match(T__7);
-				setState(247);
+				setState(251);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__22) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__31) | (1L << T__32) | (1L << T__33) | (1L << T__36) | (1L << T__37) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 75)) & ~0x3f) == 0 && ((1L << (_la - 75)) & ((1L << (T__74 - 75)) | (1L << (SIMPLETYPE - 75)) | (1L << (STRING - 75)) | (1L << (CHAR - 75)) | (1L << (BOOLEAN - 75)) | (1L << (NUMBER - 75)) | (1L << (NAME - 75)))) != 0)) {
+				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__21) | (1L << T__23) | (1L << T__24) | (1L << T__25) | (1L << T__26) | (1L << T__27) | (1L << T__28) | (1L << T__29) | (1L << T__32) | (1L << T__33) | (1L << T__34) | (1L << T__37) | (1L << T__38) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 76)) & ~0x3f) == 0 && ((1L << (_la - 76)) & ((1L << (T__75 - 76)) | (1L << (SIMPLETYPE - 76)) | (1L << (STRING - 76)) | (1L << (CHAR - 76)) | (1L << (BOOLEAN - 76)) | (1L << (NUMBER - 76)) | (1L << (NAME - 76)))) != 0)) {
 					{
-					setState(246);
+					setState(250);
 					stmtSeq();
 					}
 				}
 
-				setState(249);
+				setState(253);
 				match(T__8);
 				}
 				break;
@@ -1937,9 +1963,9 @@ public class KickCParser extends Parser {
 				_localctx = new StmtExprContext(_localctx);
 				enterOuterAlt(_localctx, 3);
 				{
-				setState(250);
+				setState(254);
 				commaExpr(0);
-				setState(251);
+				setState(255);
 				match(T__1);
 				}
 				break;
@@ -1947,24 +1973,24 @@ public class KickCParser extends Parser {
 				_localctx = new StmtIfElseContext(_localctx);
 				enterOuterAlt(_localctx, 4);
 				{
-				setState(253);
-				match(T__20);
-				setState(254);
-				match(T__5);
-				setState(255);
-				commaExpr(0);
-				setState(256);
-				match(T__6);
 				setState(257);
-				stmt();
+				match(T__21);
+				setState(258);
+				match(T__5);
+				setState(259);
+				commaExpr(0);
 				setState(260);
+				match(T__6);
+				setState(261);
+				stmt();
+				setState(264);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,18,_ctx) ) {
 				case 1:
 					{
-					setState(258);
-					match(T__21);
-					setState(259);
+					setState(262);
+					match(T__22);
+					setState(263);
 					stmt();
 					}
 					break;
@@ -1975,29 +2001,29 @@ public class KickCParser extends Parser {
 				_localctx = new StmtWhileContext(_localctx);
 				enterOuterAlt(_localctx, 5);
 				{
-				setState(265);
+				setState(269);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) {
+				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) {
 					{
 					{
-					setState(262);
+					setState(266);
 					directive();
 					}
 					}
-					setState(267);
+					setState(271);
 					_errHandler.sync(this);
 					_la = _input.LA(1);
 				}
-				setState(268);
-				match(T__22);
-				setState(269);
-				match(T__5);
-				setState(270);
-				commaExpr(0);
-				setState(271);
-				match(T__6);
 				setState(272);
+				match(T__23);
+				setState(273);
+				match(T__5);
+				setState(274);
+				commaExpr(0);
+				setState(275);
+				match(T__6);
+				setState(276);
 				stmt();
 				}
 				break;
@@ -2005,33 +2031,33 @@ public class KickCParser extends Parser {
 				_localctx = new StmtDoWhileContext(_localctx);
 				enterOuterAlt(_localctx, 6);
 				{
-				setState(277);
+				setState(281);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) {
+				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) {
 					{
 					{
-					setState(274);
+					setState(278);
 					directive();
 					}
 					}
-					setState(279);
+					setState(283);
 					_errHandler.sync(this);
 					_la = _input.LA(1);
 				}
-				setState(280);
-				match(T__23);
-				setState(281);
-				stmt();
-				setState(282);
-				match(T__22);
-				setState(283);
-				match(T__5);
 				setState(284);
-				commaExpr(0);
+				match(T__24);
 				setState(285);
-				match(T__6);
+				stmt();
 				setState(286);
+				match(T__23);
+				setState(287);
+				match(T__5);
+				setState(288);
+				commaExpr(0);
+				setState(289);
+				match(T__6);
+				setState(290);
 				match(T__1);
 				}
 				break;
@@ -2039,29 +2065,29 @@ public class KickCParser extends Parser {
 				_localctx = new StmtForContext(_localctx);
 				enterOuterAlt(_localctx, 7);
 				{
-				setState(291);
+				setState(295);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19))) != 0)) {
+				while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20))) != 0)) {
 					{
 					{
-					setState(288);
+					setState(292);
 					directive();
 					}
 					}
-					setState(293);
+					setState(297);
 					_errHandler.sync(this);
 					_la = _input.LA(1);
 				}
-				setState(294);
-				match(T__24);
-				setState(295);
-				match(T__5);
-				setState(296);
-				forLoop();
-				setState(297);
-				match(T__6);
 				setState(298);
+				match(T__25);
+				setState(299);
+				match(T__5);
+				setState(300);
+				forLoop();
+				setState(301);
+				match(T__6);
+				setState(302);
 				stmt();
 				}
 				break;
@@ -2069,19 +2095,19 @@ public class KickCParser extends Parser {
 				_localctx = new StmtReturnContext(_localctx);
 				enterOuterAlt(_localctx, 8);
 				{
-				setState(300);
-				match(T__25);
-				setState(302);
+				setState(304);
+				match(T__26);
+				setState(306);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) {
+				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) {
 					{
-					setState(301);
+					setState(305);
 					commaExpr(0);
 					}
 				}
 
-				setState(304);
+				setState(308);
 				match(T__1);
 				}
 				break;
@@ -2089,9 +2115,9 @@ public class KickCParser extends Parser {
 				_localctx = new StmtBreakContext(_localctx);
 				enterOuterAlt(_localctx, 9);
 				{
-				setState(305);
-				match(T__26);
-				setState(306);
+				setState(309);
+				match(T__27);
+				setState(310);
 				match(T__1);
 				}
 				break;
@@ -2099,9 +2125,9 @@ public class KickCParser extends Parser {
 				_localctx = new StmtContinueContext(_localctx);
 				enterOuterAlt(_localctx, 10);
 				{
-				setState(307);
-				match(T__27);
-				setState(308);
+				setState(311);
+				match(T__28);
+				setState(312);
 				match(T__1);
 				}
 				break;
@@ -2109,23 +2135,23 @@ public class KickCParser extends Parser {
 				_localctx = new StmtAsmContext(_localctx);
 				enterOuterAlt(_localctx, 11);
 				{
-				setState(309);
-				match(T__28);
-				setState(311);
+				setState(313);
+				match(T__29);
+				setState(315);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 				if (_la==T__5) {
 					{
-					setState(310);
+					setState(314);
 					asmDirectives();
 					}
 				}
 
-				setState(313);
+				setState(317);
 				match(T__7);
-				setState(314);
+				setState(318);
 				asmLines();
-				setState(315);
+				setState(319);
 				match(T__8);
 				}
 				break;
@@ -2133,7 +2159,7 @@ public class KickCParser extends Parser {
 				_localctx = new StmtDeclKasmContext(_localctx);
 				enterOuterAlt(_localctx, 12);
 				{
-				setState(317);
+				setState(321);
 				declKasm();
 				}
 				break;
@@ -2218,27 +2244,27 @@ public class KickCParser extends Parser {
 		enterRule(_localctx, 38, RULE_forLoop);
 		int _la;
 		try {
-			setState(336);
+			setState(340);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,27,_ctx) ) {
 			case 1:
 				_localctx = new ForClassicContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(320);
+				setState(324);
 				forClassicInit();
-				setState(321);
-				match(T__1);
-				setState(322);
-				commaExpr(0);
-				setState(323);
-				match(T__1);
 				setState(325);
+				match(T__1);
+				setState(326);
+				commaExpr(0);
+				setState(327);
+				match(T__1);
+				setState(329);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) {
+				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) {
 					{
-					setState(324);
+					setState(328);
 					commaExpr(0);
 					}
 				}
@@ -2249,27 +2275,27 @@ public class KickCParser extends Parser {
 				_localctx = new ForRangeContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(328);
+				setState(332);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,26,_ctx) ) {
 				case 1:
 					{
-					setState(327);
+					setState(331);
 					declTypes();
 					}
 					break;
 				}
-				setState(330);
+				setState(334);
 				match(NAME);
-				setState(331);
-				match(T__29);
-				setState(332);
+				setState(335);
+				match(T__30);
+				setState(336);
 				expr(0);
 				{
-				setState(333);
-				match(T__30);
+				setState(337);
+				match(T__31);
 				}
-				setState(334);
+				setState(338);
 				expr(0);
 				}
 				break;
@@ -2341,19 +2367,19 @@ public class KickCParser extends Parser {
 		enterRule(_localctx, 40, RULE_forClassicInit);
 		int _la;
 		try {
-			setState(342);
+			setState(346);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,29,_ctx) ) {
 			case 1:
 				_localctx = new ForClassicInitDeclContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(339);
+				setState(343);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME) {
+				if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME) {
 					{
-					setState(338);
+					setState(342);
 					declVariables();
 					}
 				}
@@ -2364,7 +2390,7 @@ public class KickCParser extends Parser {
 				_localctx = new ForClassicInitExprContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(341);
+				setState(345);
 				commaExpr(0);
 				}
 				break;
@@ -2615,7 +2641,7 @@ public class KickCParser extends Parser {
 			int _alt;
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(359);
+			setState(363);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,31,_ctx) ) {
 			case 1:
@@ -2624,11 +2650,11 @@ public class KickCParser extends Parser {
 				_ctx = _localctx;
 				_prevctx = _localctx;
 
-				setState(345);
+				setState(349);
 				match(T__5);
-				setState(346);
+				setState(350);
 				typeDecl(0);
-				setState(347);
+				setState(351);
 				match(T__6);
 				}
 				break;
@@ -2637,7 +2663,7 @@ public class KickCParser extends Parser {
 				_localctx = new TypeSimpleContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(349);
+				setState(353);
 				match(SIMPLETYPE);
 				}
 				break;
@@ -2646,9 +2672,9 @@ public class KickCParser extends Parser {
 				_localctx = new TypeSignedSimpleContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(350);
+				setState(354);
 				_la = _input.LA(1);
-				if ( !(_la==T__31 || _la==T__32) ) {
+				if ( !(_la==T__32 || _la==T__33) ) {
 				_errHandler.recoverInline(this);
 				}
 				else {
@@ -2656,12 +2682,12 @@ public class KickCParser extends Parser {
 					_errHandler.reportMatch(this);
 					consume();
 				}
-				setState(352);
+				setState(356);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,30,_ctx) ) {
 				case 1:
 					{
-					setState(351);
+					setState(355);
 					match(SIMPLETYPE);
 					}
 					break;
@@ -2673,7 +2699,7 @@ public class KickCParser extends Parser {
 				_localctx = new TypeStructDefContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(354);
+				setState(358);
 				structDef();
 				}
 				break;
@@ -2682,7 +2708,7 @@ public class KickCParser extends Parser {
 				_localctx = new TypeStructRefContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(355);
+				setState(359);
 				structRef();
 				}
 				break;
@@ -2691,7 +2717,7 @@ public class KickCParser extends Parser {
 				_localctx = new TypeEnumDefContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(356);
+				setState(360);
 				enumDef();
 				}
 				break;
@@ -2700,7 +2726,7 @@ public class KickCParser extends Parser {
 				_localctx = new TypeEnumRefContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(357);
+				setState(361);
 				enumRef();
 				}
 				break;
@@ -2709,13 +2735,13 @@ public class KickCParser extends Parser {
 				_localctx = new TypeNamedRefContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(358);
+				setState(362);
 				match(NAME);
 				}
 				break;
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(374);
+			setState(378);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,34,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -2723,57 +2749,57 @@ public class KickCParser extends Parser {
 					if ( _parseListeners!=null ) triggerExitRuleEvent();
 					_prevctx = _localctx;
 					{
-					setState(372);
+					setState(376);
 					_errHandler.sync(this);
 					switch ( getInterpreter().adaptivePredict(_input,33,_ctx) ) {
 					case 1:
 						{
 						_localctx = new TypePtrContext(new TypeDeclContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_typeDecl);
-						setState(361);
+						setState(365);
 						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
-						setState(362);
-						match(T__33);
+						setState(366);
+						match(T__34);
 						}
 						break;
 					case 2:
 						{
 						_localctx = new TypeArrayContext(new TypeDeclContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_typeDecl);
-						setState(363);
+						setState(367);
 						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
-						setState(364);
-						match(T__34);
-						setState(366);
+						setState(368);
+						match(T__35);
+						setState(370);
 						_errHandler.sync(this);
 						_la = _input.LA(1);
-						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) {
+						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) {
 							{
-							setState(365);
+							setState(369);
 							expr(0);
 							}
 						}
 
-						setState(368);
-						match(T__35);
+						setState(372);
+						match(T__36);
 						}
 						break;
 					case 3:
 						{
 						_localctx = new TypeProcedureContext(new TypeDeclContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_typeDecl);
-						setState(369);
+						setState(373);
 						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
-						setState(370);
+						setState(374);
 						match(T__5);
-						setState(371);
+						setState(375);
 						match(T__6);
 						}
 						break;
 					}
 					} 
 				}
-				setState(376);
+				setState(380);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,34,_ctx);
 			}
@@ -2817,9 +2843,9 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(377);
-			match(T__36);
-			setState(378);
+			setState(381);
+			match(T__37);
+			setState(382);
 			match(NAME);
 			}
 		}
@@ -2868,35 +2894,35 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(380);
-			match(T__36);
-			setState(382);
+			setState(384);
+			match(T__37);
+			setState(386);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			if (_la==NAME) {
 				{
-				setState(381);
+				setState(385);
 				match(NAME);
 				}
 			}
 
-			setState(384);
+			setState(388);
 			match(T__7);
-			setState(386); 
+			setState(390); 
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			do {
 				{
 				{
-				setState(385);
+				setState(389);
 				structMembers();
 				}
 				}
-				setState(388); 
+				setState(392); 
 				_errHandler.sync(this);
 				_la = _input.LA(1);
-			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__12) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__31) | (1L << T__32) | (1L << T__36) | (1L << T__37))) != 0) || _la==SIMPLETYPE || _la==NAME );
-			setState(390);
+			} while ( (((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__13) | (1L << T__14) | (1L << T__15) | (1L << T__16) | (1L << T__17) | (1L << T__18) | (1L << T__19) | (1L << T__20) | (1L << T__32) | (1L << T__33) | (1L << T__37) | (1L << T__38))) != 0) || _la==SIMPLETYPE || _la==NAME );
+			setState(394);
 			match(T__8);
 			}
 		}
@@ -2940,9 +2966,9 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(392);
+			setState(396);
 			declVariables();
-			setState(393);
+			setState(397);
 			match(T__1);
 			}
 		}
@@ -2984,9 +3010,9 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(395);
-			match(T__37);
-			setState(396);
+			setState(399);
+			match(T__38);
+			setState(400);
 			match(NAME);
 			}
 		}
@@ -3032,23 +3058,23 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(398);
-			match(T__37);
-			setState(400);
+			setState(402);
+			match(T__38);
+			setState(404);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			if (_la==NAME) {
 				{
-				setState(399);
+				setState(403);
 				match(NAME);
 				}
 			}
 
-			setState(402);
+			setState(406);
 			match(T__7);
-			setState(403);
+			setState(407);
 			enumMemberList(0);
-			setState(404);
+			setState(408);
 			match(T__8);
 			}
 		}
@@ -3105,11 +3131,11 @@ public class KickCParser extends Parser {
 			enterOuterAlt(_localctx, 1);
 			{
 			{
-			setState(407);
+			setState(411);
 			enumMember();
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(414);
+			setState(418);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,38,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -3120,16 +3146,16 @@ public class KickCParser extends Parser {
 					{
 					_localctx = new EnumMemberListContext(_parentctx, _parentState);
 					pushNewRecursionContext(_localctx, _startState, RULE_enumMemberList);
-					setState(409);
+					setState(413);
 					if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
-					setState(410);
+					setState(414);
 					match(T__3);
-					setState(411);
+					setState(415);
 					enumMember();
 					}
 					} 
 				}
-				setState(416);
+				setState(420);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,38,_ctx);
 			}
@@ -3176,16 +3202,16 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(417);
+			setState(421);
 			match(NAME);
-			setState(420);
+			setState(424);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,39,_ctx) ) {
 			case 1:
 				{
-				setState(418);
+				setState(422);
 				match(T__4);
-				setState(419);
+				setState(423);
 				expr(0);
 				}
 				break;
@@ -3276,11 +3302,11 @@ public class KickCParser extends Parser {
 			_ctx = _localctx;
 			_prevctx = _localctx;
 
-			setState(423);
+			setState(427);
 			expr(0);
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(430);
+			setState(434);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,40,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -3291,16 +3317,16 @@ public class KickCParser extends Parser {
 					{
 					_localctx = new CommaSimpleContext(new CommaExprContext(_parentctx, _parentState));
 					pushNewRecursionContext(_localctx, _startState, RULE_commaExpr);
-					setState(425);
+					setState(429);
 					if (!(precpred(_ctx, 1))) throw new FailedPredicateException(this, "precpred(_ctx, 1)");
-					setState(426);
+					setState(430);
 					match(T__3);
-					setState(427);
+					setState(431);
 					expr(0);
 					}
 					} 
 				}
-				setState(432);
+				setState(436);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,40,_ctx);
 			}
@@ -3788,7 +3814,7 @@ public class KickCParser extends Parser {
 			int _alt;
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(487);
+			setState(491);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,45,_ctx) ) {
 			case 1:
@@ -3797,11 +3823,11 @@ public class KickCParser extends Parser {
 				_ctx = _localctx;
 				_prevctx = _localctx;
 
-				setState(434);
+				setState(438);
 				match(T__5);
-				setState(435);
+				setState(439);
 				commaExpr(0);
-				setState(436);
+				setState(440);
 				match(T__6);
 				}
 				break;
@@ -3810,27 +3836,27 @@ public class KickCParser extends Parser {
 				_localctx = new ExprSizeOfContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(438);
-				match(T__40);
-				setState(439);
-				match(T__5);
 				setState(442);
+				match(T__41);
+				setState(443);
+				match(T__5);
+				setState(446);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,41,_ctx) ) {
 				case 1:
 					{
-					setState(440);
+					setState(444);
 					expr(0);
 					}
 					break;
 				case 2:
 					{
-					setState(441);
+					setState(445);
 					typeDecl(0);
 					}
 					break;
 				}
-				setState(444);
+				setState(448);
 				match(T__6);
 				}
 				break;
@@ -3839,27 +3865,27 @@ public class KickCParser extends Parser {
 				_localctx = new ExprTypeIdContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(446);
-				match(T__41);
-				setState(447);
-				match(T__5);
 				setState(450);
+				match(T__42);
+				setState(451);
+				match(T__5);
+				setState(454);
 				_errHandler.sync(this);
 				switch ( getInterpreter().adaptivePredict(_input,42,_ctx) ) {
 				case 1:
 					{
-					setState(448);
+					setState(452);
 					expr(0);
 					}
 					break;
 				case 2:
 					{
-					setState(449);
+					setState(453);
 					typeDecl(0);
 					}
 					break;
 				}
-				setState(452);
+				setState(456);
 				match(T__6);
 				}
 				break;
@@ -3868,13 +3894,13 @@ public class KickCParser extends Parser {
 				_localctx = new ExprCastContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(454);
+				setState(458);
 				match(T__5);
-				setState(455);
+				setState(459);
 				typeDecl(0);
-				setState(456);
+				setState(460);
 				match(T__6);
-				setState(457);
+				setState(461);
 				expr(24);
 				}
 				break;
@@ -3883,39 +3909,9 @@ public class KickCParser extends Parser {
 				_localctx = new ExprPreModContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(459);
-				_la = _input.LA(1);
-				if ( !(_la==T__42 || _la==T__43) ) {
-				_errHandler.recoverInline(this);
-				}
-				else {
-					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
-					_errHandler.reportMatch(this);
-					consume();
-				}
-				setState(460);
-				expr(23);
-				}
-				break;
-			case 6:
-				{
-				_localctx = new ExprPtrContext(_localctx);
-				_ctx = _localctx;
-				_prevctx = _localctx;
-				setState(461);
-				match(T__33);
-				setState(462);
-				expr(21);
-				}
-				break;
-			case 7:
-				{
-				_localctx = new ExprUnaryContext(_localctx);
-				_ctx = _localctx;
-				_prevctx = _localctx;
 				setState(463);
 				_la = _input.LA(1);
-				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48))) != 0)) ) {
+				if ( !(_la==T__43 || _la==T__44) ) {
 				_errHandler.recoverInline(this);
 				}
 				else {
@@ -3924,6 +3920,36 @@ public class KickCParser extends Parser {
 					consume();
 				}
 				setState(464);
+				expr(23);
+				}
+				break;
+			case 6:
+				{
+				_localctx = new ExprPtrContext(_localctx);
+				_ctx = _localctx;
+				_prevctx = _localctx;
+				setState(465);
+				match(T__34);
+				setState(466);
+				expr(21);
+				}
+				break;
+			case 7:
+				{
+				_localctx = new ExprUnaryContext(_localctx);
+				_ctx = _localctx;
+				_prevctx = _localctx;
+				setState(467);
+				_la = _input.LA(1);
+				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49))) != 0)) ) {
+				_errHandler.recoverInline(this);
+				}
+				else {
+					if ( _input.LA(1)==Token.EOF ) matchedEOF = true;
+					_errHandler.reportMatch(this);
+					consume();
+				}
+				setState(468);
 				expr(20);
 				}
 				break;
@@ -3932,9 +3958,9 @@ public class KickCParser extends Parser {
 				_localctx = new ExprUnaryContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(465);
+				setState(469);
 				_la = _input.LA(1);
-				if ( !(_la==T__53 || _la==T__54) ) {
+				if ( !(_la==T__54 || _la==T__55) ) {
 				_errHandler.recoverInline(this);
 				}
 				else {
@@ -3942,7 +3968,7 @@ public class KickCParser extends Parser {
 					_errHandler.reportMatch(this);
 					consume();
 				}
-				setState(466);
+				setState(470);
 				expr(16);
 				}
 				break;
@@ -3951,27 +3977,27 @@ public class KickCParser extends Parser {
 				_localctx = new InitListContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(467);
+				setState(471);
 				match(T__7);
-				setState(468);
+				setState(472);
 				expr(0);
-				setState(473);
+				setState(477);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 				while (_la==T__3) {
 					{
 					{
-					setState(469);
+					setState(473);
 					match(T__3);
-					setState(470);
+					setState(474);
 					expr(0);
 					}
 					}
-					setState(475);
+					setState(479);
 					_errHandler.sync(this);
 					_la = _input.LA(1);
 				}
-				setState(476);
+				setState(480);
 				match(T__8);
 				}
 				break;
@@ -3980,7 +4006,7 @@ public class KickCParser extends Parser {
 				_localctx = new ExprIdContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(478);
+				setState(482);
 				match(NAME);
 				}
 				break;
@@ -3989,7 +4015,7 @@ public class KickCParser extends Parser {
 				_localctx = new ExprNumberContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(479);
+				setState(483);
 				match(NUMBER);
 				}
 				break;
@@ -3998,7 +4024,7 @@ public class KickCParser extends Parser {
 				_localctx = new ExprStringContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(481); 
+				setState(485); 
 				_errHandler.sync(this);
 				_alt = 1;
 				do {
@@ -4006,7 +4032,7 @@ public class KickCParser extends Parser {
 					case 1:
 						{
 						{
-						setState(480);
+						setState(484);
 						match(STRING);
 						}
 						}
@@ -4014,7 +4040,7 @@ public class KickCParser extends Parser {
 					default:
 						throw new NoViableAltException(this);
 					}
-					setState(483); 
+					setState(487); 
 					_errHandler.sync(this);
 					_alt = getInterpreter().adaptivePredict(_input,44,_ctx);
 				} while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER );
@@ -4025,7 +4051,7 @@ public class KickCParser extends Parser {
 				_localctx = new ExprCharContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(485);
+				setState(489);
 				match(CHAR);
 				}
 				break;
@@ -4034,13 +4060,13 @@ public class KickCParser extends Parser {
 				_localctx = new ExprBoolContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(486);
+				setState(490);
 				match(BOOLEAN);
 				}
 				break;
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(549);
+			setState(553);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,48,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -4048,18 +4074,18 @@ public class KickCParser extends Parser {
 					if ( _parseListeners!=null ) triggerExitRuleEvent();
 					_prevctx = _localctx;
 					{
-					setState(547);
+					setState(551);
 					_errHandler.sync(this);
 					switch ( getInterpreter().adaptivePredict(_input,47,_ctx) ) {
 					case 1:
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(489);
+						setState(493);
 						if (!(precpred(_ctx, 19))) throw new FailedPredicateException(this, "precpred(_ctx, 19)");
-						setState(490);
+						setState(494);
 						_la = _input.LA(1);
-						if ( !(_la==T__49 || _la==T__50) ) {
+						if ( !(_la==T__50 || _la==T__51) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4067,7 +4093,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(491);
+						setState(495);
 						expr(20);
 						}
 						break;
@@ -4075,11 +4101,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(492);
+						setState(496);
 						if (!(precpred(_ctx, 18))) throw new FailedPredicateException(this, "precpred(_ctx, 18)");
-						setState(493);
+						setState(497);
 						_la = _input.LA(1);
-						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__33) | (1L << T__51) | (1L << T__52))) != 0)) ) {
+						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__34) | (1L << T__52) | (1L << T__53))) != 0)) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4087,7 +4113,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(494);
+						setState(498);
 						expr(19);
 						}
 						break;
@@ -4095,11 +4121,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(495);
+						setState(499);
 						if (!(precpred(_ctx, 17))) throw new FailedPredicateException(this, "precpred(_ctx, 17)");
-						setState(496);
+						setState(500);
 						_la = _input.LA(1);
-						if ( !(_la==T__44 || _la==T__45) ) {
+						if ( !(_la==T__45 || _la==T__46) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4107,7 +4133,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(497);
+						setState(501);
 						expr(18);
 						}
 						break;
@@ -4115,11 +4141,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(498);
+						setState(502);
 						if (!(precpred(_ctx, 15))) throw new FailedPredicateException(this, "precpred(_ctx, 15)");
-						setState(499);
+						setState(503);
 						_la = _input.LA(1);
-						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__53) | (1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58))) != 0)) ) {
+						if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__54) | (1L << T__55) | (1L << T__56) | (1L << T__57) | (1L << T__58) | (1L << T__59))) != 0)) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4127,7 +4153,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(500);
+						setState(504);
 						expr(16);
 						}
 						break;
@@ -4135,13 +4161,13 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(501);
+						setState(505);
 						if (!(precpred(_ctx, 14))) throw new FailedPredicateException(this, "precpred(_ctx, 14)");
 						{
-						setState(502);
-						match(T__47);
+						setState(506);
+						match(T__48);
 						}
-						setState(503);
+						setState(507);
 						expr(15);
 						}
 						break;
@@ -4149,13 +4175,13 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(504);
+						setState(508);
 						if (!(precpred(_ctx, 13))) throw new FailedPredicateException(this, "precpred(_ctx, 13)");
 						{
-						setState(505);
-						match(T__59);
+						setState(509);
+						match(T__60);
 						}
-						setState(506);
+						setState(510);
 						expr(14);
 						}
 						break;
@@ -4163,13 +4189,13 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(507);
+						setState(511);
 						if (!(precpred(_ctx, 12))) throw new FailedPredicateException(this, "precpred(_ctx, 12)");
 						{
-						setState(508);
-						match(T__60);
+						setState(512);
+						match(T__61);
 						}
-						setState(509);
+						setState(513);
 						expr(13);
 						}
 						break;
@@ -4177,13 +4203,13 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(510);
+						setState(514);
 						if (!(precpred(_ctx, 11))) throw new FailedPredicateException(this, "precpred(_ctx, 11)");
 						{
-						setState(511);
-						match(T__61);
+						setState(515);
+						match(T__62);
 						}
-						setState(512);
+						setState(516);
 						expr(12);
 						}
 						break;
@@ -4191,13 +4217,13 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprBinaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(513);
+						setState(517);
 						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
 						{
-						setState(514);
-						match(T__62);
+						setState(518);
+						match(T__63);
 						}
-						setState(515);
+						setState(519);
 						expr(11);
 						}
 						break;
@@ -4205,15 +4231,15 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprTernaryContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(516);
-						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
-						setState(517);
-						match(T__63);
-						setState(518);
-						expr(0);
-						setState(519);
-						match(T__29);
 						setState(520);
+						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
+						setState(521);
+						match(T__64);
+						setState(522);
+						expr(0);
+						setState(523);
+						match(T__30);
+						setState(524);
 						expr(10);
 						}
 						break;
@@ -4221,11 +4247,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprAssignmentContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(522);
+						setState(526);
 						if (!(precpred(_ctx, 8))) throw new FailedPredicateException(this, "precpred(_ctx, 8)");
-						setState(523);
+						setState(527);
 						match(T__4);
-						setState(524);
+						setState(528);
 						expr(8);
 						}
 						break;
@@ -4233,11 +4259,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprAssignmentCompoundContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(525);
+						setState(529);
 						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
-						setState(526);
+						setState(530);
 						_la = _input.LA(1);
-						if ( !(((((_la - 65)) & ~0x3f) == 0 && ((1L << (_la - 65)) & ((1L << (T__64 - 65)) | (1L << (T__65 - 65)) | (1L << (T__66 - 65)) | (1L << (T__67 - 65)) | (1L << (T__68 - 65)) | (1L << (T__69 - 65)) | (1L << (T__70 - 65)) | (1L << (T__71 - 65)) | (1L << (T__72 - 65)) | (1L << (T__73 - 65)))) != 0)) ) {
+						if ( !(((((_la - 66)) & ~0x3f) == 0 && ((1L << (_la - 66)) & ((1L << (T__65 - 66)) | (1L << (T__66 - 66)) | (1L << (T__67 - 66)) | (1L << (T__68 - 66)) | (1L << (T__69 - 66)) | (1L << (T__70 - 66)) | (1L << (T__71 - 66)) | (1L << (T__72 - 66)) | (1L << (T__73 - 66)) | (1L << (T__74 - 66)))) != 0)) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4245,7 +4271,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(527);
+						setState(531);
 						expr(7);
 						}
 						break;
@@ -4253,11 +4279,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprDotContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(528);
+						setState(532);
 						if (!(precpred(_ctx, 30))) throw new FailedPredicateException(this, "precpred(_ctx, 30)");
-						setState(529);
-						match(T__38);
-						setState(530);
+						setState(533);
+						match(T__39);
+						setState(534);
 						match(NAME);
 						}
 						break;
@@ -4265,11 +4291,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprArrowContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(531);
+						setState(535);
 						if (!(precpred(_ctx, 29))) throw new FailedPredicateException(this, "precpred(_ctx, 29)");
-						setState(532);
-						match(T__39);
-						setState(533);
+						setState(536);
+						match(T__40);
+						setState(537);
 						match(NAME);
 						}
 						break;
@@ -4277,21 +4303,21 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprCallContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(534);
+						setState(538);
 						if (!(precpred(_ctx, 28))) throw new FailedPredicateException(this, "precpred(_ctx, 28)");
-						setState(535);
+						setState(539);
 						match(T__5);
-						setState(537);
+						setState(541);
 						_errHandler.sync(this);
 						_la = _input.LA(1);
-						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__33) | (1L << T__40) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__53) | (1L << T__54))) != 0) || ((((_la - 85)) & ~0x3f) == 0 && ((1L << (_la - 85)) & ((1L << (STRING - 85)) | (1L << (CHAR - 85)) | (1L << (BOOLEAN - 85)) | (1L << (NUMBER - 85)) | (1L << (NAME - 85)))) != 0)) {
+						if ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__5) | (1L << T__7) | (1L << T__34) | (1L << T__41) | (1L << T__42) | (1L << T__43) | (1L << T__44) | (1L << T__45) | (1L << T__46) | (1L << T__47) | (1L << T__48) | (1L << T__49) | (1L << T__54) | (1L << T__55))) != 0) || ((((_la - 86)) & ~0x3f) == 0 && ((1L << (_la - 86)) & ((1L << (STRING - 86)) | (1L << (CHAR - 86)) | (1L << (BOOLEAN - 86)) | (1L << (NUMBER - 86)) | (1L << (NAME - 86)))) != 0)) {
 							{
-							setState(536);
+							setState(540);
 							parameterList();
 							}
 						}
 
-						setState(539);
+						setState(543);
 						match(T__6);
 						}
 						break;
@@ -4299,25 +4325,25 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new ExprArrayContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(540);
+						setState(544);
 						if (!(precpred(_ctx, 25))) throw new FailedPredicateException(this, "precpred(_ctx, 25)");
-						setState(541);
-						match(T__34);
-						setState(542);
-						commaExpr(0);
-						setState(543);
+						setState(545);
 						match(T__35);
+						setState(546);
+						commaExpr(0);
+						setState(547);
+						match(T__36);
 						}
 						break;
 					case 17:
 						{
 						_localctx = new ExprPostModContext(new ExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_expr);
-						setState(545);
+						setState(549);
 						if (!(precpred(_ctx, 22))) throw new FailedPredicateException(this, "precpred(_ctx, 22)");
-						setState(546);
+						setState(550);
 						_la = _input.LA(1);
-						if ( !(_la==T__42 || _la==T__43) ) {
+						if ( !(_la==T__43 || _la==T__44) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -4330,7 +4356,7 @@ public class KickCParser extends Parser {
 					}
 					} 
 				}
-				setState(551);
+				setState(555);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,48,_ctx);
 			}
@@ -4380,21 +4406,21 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(552);
+			setState(556);
 			expr(0);
-			setState(557);
+			setState(561);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			while (_la==T__3) {
 				{
 				{
-				setState(553);
+				setState(557);
 				match(T__3);
-				setState(554);
+				setState(558);
 				expr(0);
 				}
 				}
-				setState(559);
+				setState(563);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
@@ -4442,19 +4468,19 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(560);
-			match(T__74);
-			setState(562);
+			setState(564);
+			match(T__75);
+			setState(566);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			if (_la==T__5) {
 				{
-				setState(561);
+				setState(565);
 				asmDirectives();
 				}
 			}
 
-			setState(564);
+			setState(568);
 			match(KICKASM);
 			}
 		}
@@ -4502,27 +4528,27 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(566);
+			setState(570);
 			match(T__5);
-			setState(567);
+			setState(571);
 			asmDirective();
-			setState(572);
+			setState(576);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			while (_la==T__3) {
 				{
 				{
-				setState(568);
+				setState(572);
 				match(T__3);
-				setState(569);
+				setState(573);
 				asmDirective();
 				}
 				}
-				setState(574);
+				setState(578);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
-			setState(575);
+			setState(579);
 			match(T__6);
 			}
 		}
@@ -4661,56 +4687,56 @@ public class KickCParser extends Parser {
 		AsmDirectiveContext _localctx = new AsmDirectiveContext(_ctx, getState());
 		enterRule(_localctx, 68, RULE_asmDirective);
 		try {
-			setState(592);
+			setState(596);
 			_errHandler.sync(this);
 			switch (_input.LA(1)) {
-			case T__75:
+			case T__76:
 				_localctx = new AsmDirectiveResourceContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(577);
-				match(T__75);
-				setState(578);
-				match(STRING);
-				}
-				break;
-			case T__76:
-				_localctx = new AsmDirectiveUsesContext(_localctx);
-				enterOuterAlt(_localctx, 2);
-				{
-				setState(579);
-				match(T__76);
-				setState(580);
-				match(NAME);
-				}
-				break;
-			case T__77:
-				_localctx = new AsmDirectiveClobberContext(_localctx);
-				enterOuterAlt(_localctx, 3);
-				{
 				setState(581);
-				match(T__77);
+				match(T__76);
 				setState(582);
 				match(STRING);
 				}
 				break;
-			case T__78:
-				_localctx = new AsmDirectiveBytesContext(_localctx);
-				enterOuterAlt(_localctx, 4);
+			case T__77:
+				_localctx = new AsmDirectiveUsesContext(_localctx);
+				enterOuterAlt(_localctx, 2);
 				{
 				setState(583);
-				match(T__78);
+				match(T__77);
 				setState(584);
-				expr(0);
+				match(NAME);
+				}
+				break;
+			case T__78:
+				_localctx = new AsmDirectiveClobberContext(_localctx);
+				enterOuterAlt(_localctx, 3);
+				{
+				setState(585);
+				match(T__78);
+				setState(586);
+				match(STRING);
 				}
 				break;
 			case T__79:
+				_localctx = new AsmDirectiveBytesContext(_localctx);
+				enterOuterAlt(_localctx, 4);
+				{
+				setState(587);
+				match(T__79);
+				setState(588);
+				expr(0);
+				}
+				break;
+			case T__80:
 				_localctx = new AsmDirectiveCyclesContext(_localctx);
 				enterOuterAlt(_localctx, 5);
 				{
-				setState(585);
-				match(T__79);
-				setState(586);
+				setState(589);
+				match(T__80);
+				setState(590);
 				expr(0);
 				}
 				break;
@@ -4718,21 +4744,20 @@ public class KickCParser extends Parser {
 				_localctx = new AsmDirectiveAddressContext(_localctx);
 				enterOuterAlt(_localctx, 6);
 				{
-				setState(587);
+				setState(591);
 				match(T__10);
-				setState(590);
+				setState(594);
 				_errHandler.sync(this);
 				switch (_input.LA(1)) {
-				case T__16:
+				case T__17:
 					{
-					setState(588);
-					match(T__16);
+					setState(592);
+					match(T__17);
 					}
 					break;
 				case T__5:
 				case T__7:
-				case T__33:
-				case T__40:
+				case T__34:
 				case T__41:
 				case T__42:
 				case T__43:
@@ -4741,15 +4766,16 @@ public class KickCParser extends Parser {
 				case T__46:
 				case T__47:
 				case T__48:
-				case T__53:
+				case T__49:
 				case T__54:
+				case T__55:
 				case STRING:
 				case CHAR:
 				case BOOLEAN:
 				case NUMBER:
 				case NAME:
 					{
-					setState(589);
+					setState(593);
 					expr(0);
 					}
 					break;
@@ -4806,17 +4832,17 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(597);
+			setState(601);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
-			while (((((_la - 47)) & ~0x3f) == 0 && ((1L << (_la - 47)) & ((1L << (T__46 - 47)) | (1L << (T__80 - 47)) | (1L << (MNEMONIC - 47)) | (1L << (NAME - 47)))) != 0)) {
+			while (((((_la - 48)) & ~0x3f) == 0 && ((1L << (_la - 48)) & ((1L << (T__47 - 48)) | (1L << (T__81 - 48)) | (1L << (MNEMONIC - 48)) | (1L << (NAME - 48)))) != 0)) {
 				{
 				{
-				setState(594);
+				setState(598);
 				asmLine();
 				}
 				}
-				setState(599);
+				setState(603);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
@@ -4866,28 +4892,28 @@ public class KickCParser extends Parser {
 		AsmLineContext _localctx = new AsmLineContext(_ctx, getState());
 		enterRule(_localctx, 72, RULE_asmLine);
 		try {
-			setState(603);
+			setState(607);
 			_errHandler.sync(this);
 			switch (_input.LA(1)) {
-			case T__46:
+			case T__47:
 			case NAME:
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(600);
+				setState(604);
 				asmLabel();
 				}
 				break;
 			case MNEMONIC:
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(601);
+				setState(605);
 				asmInstruction();
 				}
 				break;
-			case T__80:
+			case T__81:
 				enterOuterAlt(_localctx, 3);
 				{
-				setState(602);
+				setState(606);
 				asmBytes();
 				}
 				break;
@@ -4957,37 +4983,37 @@ public class KickCParser extends Parser {
 		enterRule(_localctx, 74, RULE_asmLabel);
 		int _la;
 		try {
-			setState(612);
+			setState(616);
 			_errHandler.sync(this);
 			switch (_input.LA(1)) {
 			case NAME:
 				_localctx = new AsmLabelNameContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(605);
+				setState(609);
 				match(NAME);
-				setState(606);
-				match(T__29);
+				setState(610);
+				match(T__30);
 				}
 				break;
-			case T__46:
+			case T__47:
 				_localctx = new AsmLabelMultiContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(607);
-				match(T__46);
-				setState(609);
+				setState(611);
+				match(T__47);
+				setState(613);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 				if (_la==NAME) {
 					{
-					setState(608);
+					setState(612);
 					match(NAME);
 					}
 				}
 
-				setState(611);
-				match(T__29);
+				setState(615);
+				match(T__30);
 				}
 				break;
 			default:
@@ -5035,14 +5061,14 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(614);
+			setState(618);
 			match(MNEMONIC);
-			setState(616);
+			setState(620);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,58,_ctx) ) {
 			case 1:
 				{
-				setState(615);
+				setState(619);
 				asmParamMode();
 				}
 				break;
@@ -5093,23 +5119,23 @@ public class KickCParser extends Parser {
 		try {
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(618);
-			match(T__80);
-			setState(619);
+			setState(622);
+			match(T__81);
+			setState(623);
 			asmExpr(0);
-			setState(624);
+			setState(628);
 			_errHandler.sync(this);
 			_la = _input.LA(1);
 			while (_la==T__3) {
 				{
 				{
-				setState(620);
+				setState(624);
 				match(T__3);
-				setState(621);
+				setState(625);
 				asmExpr(0);
 				}
 				}
-				setState(626);
+				setState(630);
 				_errHandler.sync(this);
 				_la = _input.LA(1);
 			}
@@ -5259,14 +5285,14 @@ public class KickCParser extends Parser {
 		AsmParamModeContext _localctx = new AsmParamModeContext(_ctx, getState());
 		enterRule(_localctx, 80, RULE_asmParamMode);
 		try {
-			setState(650);
+			setState(654);
 			_errHandler.sync(this);
 			switch ( getInterpreter().adaptivePredict(_input,60,_ctx) ) {
 			case 1:
 				_localctx = new AsmModeAbsContext(_localctx);
 				enterOuterAlt(_localctx, 1);
 				{
-				setState(627);
+				setState(631);
 				asmExpr(0);
 				}
 				break;
@@ -5274,9 +5300,9 @@ public class KickCParser extends Parser {
 				_localctx = new AsmModeImmContext(_localctx);
 				enterOuterAlt(_localctx, 2);
 				{
-				setState(628);
+				setState(632);
 				match(T__9);
-				setState(629);
+				setState(633);
 				asmExpr(0);
 				}
 				break;
@@ -5284,11 +5310,11 @@ public class KickCParser extends Parser {
 				_localctx = new AsmModeAbsXYContext(_localctx);
 				enterOuterAlt(_localctx, 3);
 				{
-				setState(630);
+				setState(634);
 				asmExpr(0);
-				setState(631);
+				setState(635);
 				match(T__3);
-				setState(632);
+				setState(636);
 				match(NAME);
 				}
 				break;
@@ -5296,15 +5322,15 @@ public class KickCParser extends Parser {
 				_localctx = new AsmModeIndIdxXYContext(_localctx);
 				enterOuterAlt(_localctx, 4);
 				{
-				setState(634);
-				match(T__5);
-				setState(635);
-				asmExpr(0);
-				setState(636);
-				match(T__6);
-				setState(637);
-				match(T__3);
 				setState(638);
+				match(T__5);
+				setState(639);
+				asmExpr(0);
+				setState(640);
+				match(T__6);
+				setState(641);
+				match(T__3);
+				setState(642);
 				match(NAME);
 				}
 				break;
@@ -5312,15 +5338,15 @@ public class KickCParser extends Parser {
 				_localctx = new AsmModeIdxIndXYContext(_localctx);
 				enterOuterAlt(_localctx, 5);
 				{
-				setState(640);
-				match(T__5);
-				setState(641);
-				asmExpr(0);
-				setState(642);
-				match(T__3);
-				setState(643);
-				match(NAME);
 				setState(644);
+				match(T__5);
+				setState(645);
+				asmExpr(0);
+				setState(646);
+				match(T__3);
+				setState(647);
+				match(NAME);
+				setState(648);
 				match(T__6);
 				}
 				break;
@@ -5328,11 +5354,11 @@ public class KickCParser extends Parser {
 				_localctx = new AsmModeIndContext(_localctx);
 				enterOuterAlt(_localctx, 6);
 				{
-				setState(646);
+				setState(650);
 				match(T__5);
-				setState(647);
+				setState(651);
 				asmExpr(0);
-				setState(648);
+				setState(652);
 				match(T__6);
 				}
 				break;
@@ -5522,34 +5548,34 @@ public class KickCParser extends Parser {
 			int _alt;
 			enterOuterAlt(_localctx, 1);
 			{
-			setState(666);
+			setState(670);
 			_errHandler.sync(this);
 			switch (_input.LA(1)) {
-			case T__34:
+			case T__35:
 				{
 				_localctx = new AsmExprParContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
 
-				setState(653);
-				match(T__34);
-				setState(654);
-				asmExpr(0);
-				setState(655);
+				setState(657);
 				match(T__35);
+				setState(658);
+				asmExpr(0);
+				setState(659);
+				match(T__36);
 				}
 				break;
-			case T__44:
 			case T__45:
-			case T__53:
+			case T__46:
 			case T__54:
+			case T__55:
 				{
 				_localctx = new AsmExprUnaryContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(657);
+				setState(661);
 				_la = _input.LA(1);
-				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__44) | (1L << T__45) | (1L << T__53) | (1L << T__54))) != 0)) ) {
+				if ( !((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__45) | (1L << T__46) | (1L << T__54) | (1L << T__55))) != 0)) ) {
 				_errHandler.recoverInline(this);
 				}
 				else {
@@ -5557,7 +5583,7 @@ public class KickCParser extends Parser {
 					_errHandler.reportMatch(this);
 					consume();
 				}
-				setState(658);
+				setState(662);
 				asmExpr(8);
 				}
 				break;
@@ -5566,7 +5592,7 @@ public class KickCParser extends Parser {
 				_localctx = new AsmExprLabelContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(659);
+				setState(663);
 				match(NAME);
 				}
 				break;
@@ -5575,7 +5601,7 @@ public class KickCParser extends Parser {
 				_localctx = new AsmExprLabelRelContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(660);
+				setState(664);
 				match(ASMREL);
 				}
 				break;
@@ -5584,11 +5610,11 @@ public class KickCParser extends Parser {
 				_localctx = new AsmExprReplaceContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(661);
+				setState(665);
 				match(T__7);
-				setState(662);
+				setState(666);
 				match(NAME);
-				setState(663);
+				setState(667);
 				match(T__8);
 				}
 				break;
@@ -5597,7 +5623,7 @@ public class KickCParser extends Parser {
 				_localctx = new AsmExprIntContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(664);
+				setState(668);
 				match(NUMBER);
 				}
 				break;
@@ -5606,7 +5632,7 @@ public class KickCParser extends Parser {
 				_localctx = new AsmExprCharContext(_localctx);
 				_ctx = _localctx;
 				_prevctx = _localctx;
-				setState(665);
+				setState(669);
 				match(CHAR);
 				}
 				break;
@@ -5614,7 +5640,7 @@ public class KickCParser extends Parser {
 				throw new NoViableAltException(this);
 			}
 			_ctx.stop = _input.LT(-1);
-			setState(682);
+			setState(686);
 			_errHandler.sync(this);
 			_alt = getInterpreter().adaptivePredict(_input,63,_ctx);
 			while ( _alt!=2 && _alt!=org.antlr.v4.runtime.atn.ATN.INVALID_ALT_NUMBER ) {
@@ -5622,20 +5648,20 @@ public class KickCParser extends Parser {
 					if ( _parseListeners!=null ) triggerExitRuleEvent();
 					_prevctx = _localctx;
 					{
-					setState(680);
+					setState(684);
 					_errHandler.sync(this);
 					switch ( getInterpreter().adaptivePredict(_input,62,_ctx) ) {
 					case 1:
 						{
 						_localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_asmExpr);
-						setState(668);
+						setState(672);
 						if (!(precpred(_ctx, 10))) throw new FailedPredicateException(this, "precpred(_ctx, 10)");
 						{
-						setState(669);
-						match(T__38);
+						setState(673);
+						match(T__39);
 						}
-						setState(670);
+						setState(674);
 						asmExpr(11);
 						}
 						break;
@@ -5643,11 +5669,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_asmExpr);
-						setState(671);
+						setState(675);
 						if (!(precpred(_ctx, 9))) throw new FailedPredicateException(this, "precpred(_ctx, 9)");
-						setState(672);
+						setState(676);
 						_la = _input.LA(1);
-						if ( !(_la==T__49 || _la==T__50) ) {
+						if ( !(_la==T__50 || _la==T__51) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -5655,7 +5681,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(673);
+						setState(677);
 						asmExpr(10);
 						}
 						break;
@@ -5663,11 +5689,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_asmExpr);
-						setState(674);
+						setState(678);
 						if (!(precpred(_ctx, 7))) throw new FailedPredicateException(this, "precpred(_ctx, 7)");
-						setState(675);
+						setState(679);
 						_la = _input.LA(1);
-						if ( !(_la==T__33 || _la==T__51) ) {
+						if ( !(_la==T__34 || _la==T__52) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -5675,7 +5701,7 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(676);
+						setState(680);
 						asmExpr(8);
 						}
 						break;
@@ -5683,11 +5709,11 @@ public class KickCParser extends Parser {
 						{
 						_localctx = new AsmExprBinaryContext(new AsmExprContext(_parentctx, _parentState));
 						pushNewRecursionContext(_localctx, _startState, RULE_asmExpr);
-						setState(677);
+						setState(681);
 						if (!(precpred(_ctx, 6))) throw new FailedPredicateException(this, "precpred(_ctx, 6)");
-						setState(678);
+						setState(682);
 						_la = _input.LA(1);
-						if ( !(_la==T__44 || _la==T__45) ) {
+						if ( !(_la==T__45 || _la==T__46) ) {
 						_errHandler.recoverInline(this);
 						}
 						else {
@@ -5695,14 +5721,14 @@ public class KickCParser extends Parser {
 							_errHandler.reportMatch(this);
 							consume();
 						}
-						setState(679);
+						setState(683);
 						asmExpr(7);
 						}
 						break;
 					}
 					} 
 				}
-				setState(684);
+				setState(688);
 				_errHandler.sync(this);
 				_alt = getInterpreter().adaptivePredict(_input,63,_ctx);
 			}
@@ -5822,7 +5848,7 @@ public class KickCParser extends Parser {
 	}
 
 	public static final String _serializedATN =
-		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3g\u02b0\4\2\t\2\4"+
+		"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3h\u02b4\4\2\t\2\4"+
 		"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
 		"\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
 		"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
@@ -5830,262 +5856,263 @@ public class KickCParser extends Parser {
 		"\t!\4\"\t\"\4#\t#\4$\t$\4%\t%\4&\t&\4\'\t\'\4(\t(\4)\t)\4*\t*\4+\t+\3"+
 		"\2\3\2\3\2\3\2\3\3\3\3\3\3\3\4\7\4_\n\4\f\4\16\4b\13\4\3\5\3\5\3\5\3\6"+
 		"\6\6h\n\6\r\6\16\6i\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3\7\3"+
-		"\7\3\7\3\7\3\7\5\7|\n\7\3\b\3\b\3\b\3\t\7\t\u0082\n\t\f\t\16\t\u0085\13"+
-		"\t\3\t\3\t\7\t\u0089\n\t\f\t\16\t\u008c\13\t\3\n\3\n\3\n\3\13\3\13\3\13"+
-		"\3\13\3\13\3\13\7\13\u0097\n\13\f\13\16\13\u009a\13\13\3\f\3\f\3\f\5\f"+
-		"\u009f\n\f\3\f\3\f\3\f\5\f\u00a4\n\f\3\r\3\r\3\r\3\r\5\r\u00aa\n\r\3\r"+
-		"\3\r\3\r\5\r\u00af\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b6\n\16\f\16\16"+
-		"\16\u00b9\13\16\3\17\3\17\3\17\3\17\5\17\u00bf\n\17\3\20\3\20\3\20\3\20"+
-		"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5\20\u00cd\n\20\3\21\3\21\3\21"+
-		"\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\5\21"+
-		"\u00df\n\21\3\21\5\21\u00e2\n\21\3\22\3\22\3\22\3\22\3\22\7\22\u00e9\n"+
-		"\22\f\22\16\22\u00ec\13\22\3\22\3\22\3\23\6\23\u00f1\n\23\r\23\16\23\u00f2"+
-		"\3\24\3\24\3\24\3\24\3\24\5\24\u00fa\n\24\3\24\3\24\3\24\3\24\3\24\3\24"+
-		"\3\24\3\24\3\24\3\24\3\24\5\24\u0107\n\24\3\24\7\24\u010a\n\24\f\24\16"+
-		"\24\u010d\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0116\n\24\f\24"+
-		"\16\24\u0119\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0124"+
-		"\n\24\f\24\16\24\u0127\13\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5"+
-		"\24\u0131\n\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u013a\n\24\3\24"+
-		"\3\24\3\24\3\24\3\24\5\24\u0141\n\24\3\25\3\25\3\25\3\25\3\25\5\25\u0148"+
-		"\n\25\3\25\5\25\u014b\n\25\3\25\3\25\3\25\3\25\3\25\3\25\5\25\u0153\n"+
-		"\25\3\26\5\26\u0156\n\26\3\26\5\26\u0159\n\26\3\27\3\27\3\27\3\27\3\27"+
-		"\3\27\3\27\3\27\5\27\u0163\n\27\3\27\3\27\3\27\3\27\3\27\5\27\u016a\n"+
-		"\27\3\27\3\27\3\27\3\27\3\27\5\27\u0171\n\27\3\27\3\27\3\27\3\27\7\27"+
-		"\u0177\n\27\f\27\16\27\u017a\13\27\3\30\3\30\3\30\3\31\3\31\5\31\u0181"+
-		"\n\31\3\31\3\31\6\31\u0185\n\31\r\31\16\31\u0186\3\31\3\31\3\32\3\32\3"+
-		"\32\3\33\3\33\3\33\3\34\3\34\5\34\u0193\n\34\3\34\3\34\3\34\3\34\3\35"+
-		"\3\35\3\35\3\35\3\35\3\35\7\35\u019f\n\35\f\35\16\35\u01a2\13\35\3\36"+
-		"\3\36\3\36\5\36\u01a7\n\36\3\37\3\37\3\37\3\37\3\37\3\37\7\37\u01af\n"+
-		"\37\f\37\16\37\u01b2\13\37\3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u01bd\n \3 \3"+
-		" \3 \3 \3 \3 \5 \u01c5\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+
-		" \3 \3 \3 \3 \7 \u01da\n \f \16 \u01dd\13 \3 \3 \3 \3 \3 \6 \u01e4\n "+
-		"\r \16 \u01e5\3 \3 \5 \u01ea\n \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+
-		" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3"+
-		" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \5 \u021c\n \3 \3 \3 \3 \3 \3 \3"+
-		" \3 \7 \u0226\n \f \16 \u0229\13 \3!\3!\3!\7!\u022e\n!\f!\16!\u0231\13"+
-		"!\3\"\3\"\5\"\u0235\n\"\3\"\3\"\3#\3#\3#\3#\7#\u023d\n#\f#\16#\u0240\13"+
-		"#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\3$\5$\u0251\n$\5$\u0253\n"+
-		"$\3%\7%\u0256\n%\f%\16%\u0259\13%\3&\3&\3&\5&\u025e\n&\3\'\3\'\3\'\3\'"+
-		"\5\'\u0264\n\'\3\'\5\'\u0267\n\'\3(\3(\5(\u026b\n(\3)\3)\3)\3)\7)\u0271"+
-		"\n)\f)\16)\u0274\13)\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3"+
-		"*\3*\3*\3*\3*\3*\3*\5*\u028d\n*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3"+
-		"+\3+\5+\u029d\n+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\7+\u02ab\n+\f+\16"+
-		"+\u02ae\13+\3+\2\b\24,8<>T,\2\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \""+
-		"$&(*,.\60\62\64\668:<>@BDFHJLNPRT\2\r\3\2\"#\3\2-.\3\2/\63\3\289\3\2\64"+
-		"\65\4\2$$\66\67\3\2/\60\3\28=\3\2CL\4\2/\6089\4\2$$\66\66\2\u030e\2V\3"+
-		"\2\2\2\4Z\3\2\2\2\6`\3\2\2\2\bc\3\2\2\2\ng\3\2\2\2\f{\3\2\2\2\16}\3\2"+
-		"\2\2\20\u0083\3\2\2\2\22\u008d\3\2\2\2\24\u0090\3\2\2\2\26\u00a3\3\2\2"+
-		"\2\30\u00a5\3\2\2\2\32\u00b2\3\2\2\2\34\u00be\3\2\2\2\36\u00cc\3\2\2\2"+
-		" \u00e1\3\2\2\2\"\u00e3\3\2\2\2$\u00f0\3\2\2\2&\u0140\3\2\2\2(\u0152\3"+
-		"\2\2\2*\u0158\3\2\2\2,\u0169\3\2\2\2.\u017b\3\2\2\2\60\u017e\3\2\2\2\62"+
-		"\u018a\3\2\2\2\64\u018d\3\2\2\2\66\u0190\3\2\2\28\u0198\3\2\2\2:\u01a3"+
-		"\3\2\2\2<\u01a8\3\2\2\2>\u01e9\3\2\2\2@\u022a\3\2\2\2B\u0232\3\2\2\2D"+
-		"\u0238\3\2\2\2F\u0252\3\2\2\2H\u0257\3\2\2\2J\u025d\3\2\2\2L\u0266\3\2"+
-		"\2\2N\u0268\3\2\2\2P\u026c\3\2\2\2R\u028c\3\2\2\2T\u029c\3\2\2\2VW\5\6"+
-		"\4\2WX\5\n\6\2XY\7\2\2\3Y\3\3\2\2\2Z[\5H%\2[\\\7\2\2\3\\\5\3\2\2\2]_\5"+
-		"\b\5\2^]\3\2\2\2_b\3\2\2\2`^\3\2\2\2`a\3\2\2\2a\7\3\2\2\2b`\3\2\2\2cd"+
-		"\7\3\2\2de\7W\2\2e\t\3\2\2\2fh\5\f\7\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2i"+
-		"j\3\2\2\2j\13\3\2\2\2kl\5\22\n\2lm\7\4\2\2m|\3\2\2\2no\5\60\31\2op\7\4"+
-		"\2\2p|\3\2\2\2qr\5\66\34\2rs\7\4\2\2s|\3\2\2\2t|\5\30\r\2u|\5\30\r\2v"+
-		"|\5B\"\2w|\5\36\20\2xy\5\16\b\2yz\7\4\2\2z|\3\2\2\2{k\3\2\2\2{n\3\2\2"+
-		"\2{q\3\2\2\2{t\3\2\2\2{u\3\2\2\2{v\3\2\2\2{w\3\2\2\2{x\3\2\2\2|\r\3\2"+
-		"\2\2}~\7\5\2\2~\177\5\22\n\2\177\17\3\2\2\2\u0080\u0082\5 \21\2\u0081"+
-		"\u0080\3\2\2\2\u0082\u0085\3\2\2\2\u0083\u0081\3\2\2\2\u0083\u0084\3\2"+
-		"\2\2\u0084\u0086\3\2\2\2\u0085\u0083\3\2\2\2\u0086\u008a\5,\27\2\u0087"+
-		"\u0089\5 \21\2\u0088\u0087\3\2\2\2\u0089\u008c\3\2\2\2\u008a\u0088\3\2"+
-		"\2\2\u008a\u008b\3\2\2\2\u008b\21\3\2\2\2\u008c\u008a\3\2\2\2\u008d\u008e"+
-		"\5\20\t\2\u008e\u008f\5\24\13\2\u008f\23\3\2\2\2\u0090\u0091\b\13\1\2"+
-		"\u0091\u0092\5\26\f\2\u0092\u0098\3\2\2\2\u0093\u0094\f\3\2\2\u0094\u0095"+
-		"\7\6\2\2\u0095\u0097\5\26\f\2\u0096\u0093\3\2\2\2\u0097\u009a\3\2\2\2"+
-		"\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099\25\3\2\2\2\u009a\u0098"+
-		"\3\2\2\2\u009b\u009e\7c\2\2\u009c\u009d\7\7\2\2\u009d\u009f\5> \2\u009e"+
-		"\u009c\3\2\2\2\u009e\u009f\3\2\2\2\u009f\u00a4\3\2\2\2\u00a0\u00a1\7c"+
-		"\2\2\u00a1\u00a2\7\7\2\2\u00a2\u00a4\5B\"\2\u00a3\u009b\3\2\2\2\u00a3"+
-		"\u00a0\3\2\2\2\u00a4\27\3\2\2\2\u00a5\u00a6\5\20\t\2\u00a6\u00a7\7c\2"+
-		"\2\u00a7\u00a9\7\b\2\2\u00a8\u00aa\5\32\16\2\u00a9\u00a8\3\2\2\2\u00a9"+
-		"\u00aa\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ac\7\t\2\2\u00ac\u00ae\7\n"+
-		"\2\2\u00ad\u00af\5$\23\2\u00ae\u00ad\3\2\2\2\u00ae\u00af\3\2\2\2\u00af"+
-		"\u00b0\3\2\2\2\u00b0\u00b1\7\13\2\2\u00b1\31\3\2\2\2\u00b2\u00b7\5\34"+
-		"\17\2\u00b3\u00b4\7\6\2\2\u00b4\u00b6\5\34\17\2\u00b5\u00b3\3\2\2\2\u00b6"+
-		"\u00b9\3\2\2\2\u00b7\u00b5\3\2\2\2\u00b7\u00b8\3\2\2\2\u00b8\33\3\2\2"+
-		"\2\u00b9\u00b7\3\2\2\2\u00ba\u00bb\5\20\t\2\u00bb\u00bc\7c\2\2\u00bc\u00bf"+
-		"\3\2\2\2\u00bd\u00bf\7V\2\2\u00be\u00ba\3\2\2\2\u00be\u00bd\3\2\2\2\u00bf"+
-		"\35\3\2\2\2\u00c0\u00c1\7\f\2\2\u00c1\u00cd\5\"\22\2\u00c2\u00c3\7\f\2"+
-		"\2\u00c3\u00c4\7\r\2\2\u00c4\u00c5\7\b\2\2\u00c5\u00c6\7Z\2\2\u00c6\u00cd"+
-		"\7\t\2\2\u00c7\u00c8\7\f\2\2\u00c8\u00c9\7\16\2\2\u00c9\u00ca\7\b\2\2"+
-		"\u00ca\u00cb\7c\2\2\u00cb\u00cd\7\t\2\2\u00cc\u00c0\3\2\2\2\u00cc\u00c2"+
-		"\3\2\2\2\u00cc\u00c7\3\2\2\2\u00cd\37\3\2\2\2\u00ce\u00e2\7\17\2\2\u00cf"+
-		"\u00e2\7\20\2\2\u00d0\u00d1\7\21\2\2\u00d1\u00d2\7\b\2\2\u00d2\u00d3\7"+
-		"Z\2\2\u00d3\u00e2\7\t\2\2\u00d4\u00d5\7\22\2\2\u00d5\u00d6\7\b\2\2\u00d6"+
-		"\u00d7\7c\2\2\u00d7\u00e2\7\t\2\2\u00d8\u00e2\7\23\2\2\u00d9\u00e2\7\24"+
-		"\2\2\u00da\u00de\7\25\2\2\u00db\u00dc\7\b\2\2\u00dc\u00dd\7c\2\2\u00dd"+
-		"\u00df\7\t\2\2\u00de\u00db\3\2\2\2\u00de\u00df\3\2\2\2\u00df\u00e2\3\2"+
-		"\2\2\u00e0\u00e2\5\"\22\2\u00e1\u00ce\3\2\2\2\u00e1\u00cf\3\2\2\2\u00e1"+
-		"\u00d0\3\2\2\2\u00e1\u00d4\3\2\2\2\u00e1\u00d8\3\2\2\2\u00e1\u00d9\3\2"+
-		"\2\2\u00e1\u00da\3\2\2\2\u00e1\u00e0\3\2\2\2\u00e2!\3\2\2\2\u00e3\u00e4"+
-		"\7\26\2\2\u00e4\u00e5\7\b\2\2\u00e5\u00ea\7Z\2\2\u00e6\u00e7\7\6\2\2\u00e7"+
-		"\u00e9\7Z\2\2\u00e8\u00e6\3\2\2\2\u00e9\u00ec\3\2\2\2\u00ea\u00e8\3\2"+
-		"\2\2\u00ea\u00eb\3\2\2\2\u00eb\u00ed\3\2\2\2\u00ec\u00ea\3\2\2\2\u00ed"+
-		"\u00ee\7\t\2\2\u00ee#\3\2\2\2\u00ef\u00f1\5&\24\2\u00f0\u00ef\3\2\2\2"+
-		"\u00f1\u00f2\3\2\2\2\u00f2\u00f0\3\2\2\2\u00f2\u00f3\3\2\2\2\u00f3%\3"+
-		"\2\2\2\u00f4\u00f5\5\22\n\2\u00f5\u00f6\7\4\2\2\u00f6\u0141\3\2\2\2\u00f7"+
-		"\u00f9\7\n\2\2\u00f8\u00fa\5$\23\2\u00f9\u00f8\3\2\2\2\u00f9\u00fa\3\2"+
-		"\2\2\u00fa\u00fb\3\2\2\2\u00fb\u0141\7\13\2\2\u00fc\u00fd\5<\37\2\u00fd"+
-		"\u00fe\7\4\2\2\u00fe\u0141\3\2\2\2\u00ff\u0100\7\27\2\2\u0100\u0101\7"+
-		"\b\2\2\u0101\u0102\5<\37\2\u0102\u0103\7\t\2\2\u0103\u0106\5&\24\2\u0104"+
-		"\u0105\7\30\2\2\u0105\u0107\5&\24\2\u0106\u0104\3\2\2\2\u0106\u0107\3"+
-		"\2\2\2\u0107\u0141\3\2\2\2\u0108\u010a\5 \21\2\u0109\u0108\3\2\2\2\u010a"+
-		"\u010d\3\2\2\2\u010b\u0109\3\2\2\2\u010b\u010c\3\2\2\2\u010c\u010e\3\2"+
-		"\2\2\u010d\u010b\3\2\2\2\u010e\u010f\7\31\2\2\u010f\u0110\7\b\2\2\u0110"+
-		"\u0111\5<\37\2\u0111\u0112\7\t\2\2\u0112\u0113\5&\24\2\u0113\u0141\3\2"+
-		"\2\2\u0114\u0116\5 \21\2\u0115\u0114\3\2\2\2\u0116\u0119\3\2\2\2\u0117"+
-		"\u0115\3\2\2\2\u0117\u0118\3\2\2\2\u0118\u011a\3\2\2\2\u0119\u0117\3\2"+
-		"\2\2\u011a\u011b\7\32\2\2\u011b\u011c\5&\24\2\u011c\u011d\7\31\2\2\u011d"+
-		"\u011e\7\b\2\2\u011e\u011f\5<\37\2\u011f\u0120\7\t\2\2\u0120\u0121\7\4"+
-		"\2\2\u0121\u0141\3\2\2\2\u0122\u0124\5 \21\2\u0123\u0122\3\2\2\2\u0124"+
-		"\u0127\3\2\2\2\u0125\u0123\3\2\2\2\u0125\u0126\3\2\2\2\u0126\u0128\3\2"+
-		"\2\2\u0127\u0125\3\2\2\2\u0128\u0129\7\33\2\2\u0129\u012a\7\b\2\2\u012a"+
-		"\u012b\5(\25\2\u012b\u012c\7\t\2\2\u012c\u012d\5&\24\2\u012d\u0141\3\2"+
-		"\2\2\u012e\u0130\7\34\2\2\u012f\u0131\5<\37\2\u0130\u012f\3\2\2\2\u0130"+
-		"\u0131\3\2\2\2\u0131\u0132\3\2\2\2\u0132\u0141\7\4\2\2\u0133\u0134\7\35"+
-		"\2\2\u0134\u0141\7\4\2\2\u0135\u0136\7\36\2\2\u0136\u0141\7\4\2\2\u0137"+
-		"\u0139\7\37\2\2\u0138\u013a\5D#\2\u0139\u0138\3\2\2\2\u0139\u013a\3\2"+
-		"\2\2\u013a\u013b\3\2\2\2\u013b\u013c\7\n\2\2\u013c\u013d\5H%\2\u013d\u013e"+
-		"\7\13\2\2\u013e\u0141\3\2\2\2\u013f\u0141\5B\"\2\u0140\u00f4\3\2\2\2\u0140"+
-		"\u00f7\3\2\2\2\u0140\u00fc\3\2\2\2\u0140\u00ff\3\2\2\2\u0140\u010b\3\2"+
-		"\2\2\u0140\u0117\3\2\2\2\u0140\u0125\3\2\2\2\u0140\u012e\3\2\2\2\u0140"+
-		"\u0133\3\2\2\2\u0140\u0135\3\2\2\2\u0140\u0137\3\2\2\2\u0140\u013f\3\2"+
-		"\2\2\u0141\'\3\2\2\2\u0142\u0143\5*\26\2\u0143\u0144\7\4\2\2\u0144\u0145"+
-		"\5<\37\2\u0145\u0147\7\4\2\2\u0146\u0148\5<\37\2\u0147\u0146\3\2\2\2\u0147"+
-		"\u0148\3\2\2\2\u0148\u0153\3\2\2\2\u0149\u014b\5\20\t\2\u014a\u0149\3"+
-		"\2\2\2\u014a\u014b\3\2\2\2\u014b\u014c\3\2\2\2\u014c\u014d\7c\2\2\u014d"+
-		"\u014e\7 \2\2\u014e\u014f\5> \2\u014f\u0150\7!\2\2\u0150\u0151\5> \2\u0151"+
-		"\u0153\3\2\2\2\u0152\u0142\3\2\2\2\u0152\u014a\3\2\2\2\u0153)\3\2\2\2"+
-		"\u0154\u0156\5\22\n\2\u0155\u0154\3\2\2\2\u0155\u0156\3\2\2\2\u0156\u0159"+
-		"\3\2\2\2\u0157\u0159\5<\37\2\u0158\u0155\3\2\2\2\u0158\u0157\3\2\2\2\u0159"+
-		"+\3\2\2\2\u015a\u015b\b\27\1\2\u015b\u015c\7\b\2\2\u015c\u015d\5,\27\2"+
-		"\u015d\u015e\7\t\2\2\u015e\u016a\3\2\2\2\u015f\u016a\7V\2\2\u0160\u0162"+
-		"\t\2\2\2\u0161\u0163\7V\2\2\u0162\u0161\3\2\2\2\u0162\u0163\3\2\2\2\u0163"+
-		"\u016a\3\2\2\2\u0164\u016a\5\60\31\2\u0165\u016a\5.\30\2\u0166\u016a\5"+
-		"\66\34\2\u0167\u016a\5\64\33\2\u0168\u016a\7c\2\2\u0169\u015a\3\2\2\2"+
-		"\u0169\u015f\3\2\2\2\u0169\u0160\3\2\2\2\u0169\u0164\3\2\2\2\u0169\u0165"+
-		"\3\2\2\2\u0169\u0166\3\2\2\2\u0169\u0167\3\2\2\2\u0169\u0168\3\2\2\2\u016a"+
-		"\u0178\3\2\2\2\u016b\u016c\f\n\2\2\u016c\u0177\7$\2\2\u016d\u016e\f\t"+
-		"\2\2\u016e\u0170\7%\2\2\u016f\u0171\5> \2\u0170\u016f\3\2\2\2\u0170\u0171"+
-		"\3\2\2\2\u0171\u0172\3\2\2\2\u0172\u0177\7&\2\2\u0173\u0174\f\b\2\2\u0174"+
-		"\u0175\7\b\2\2\u0175\u0177\7\t\2\2\u0176\u016b\3\2\2\2\u0176\u016d\3\2"+
-		"\2\2\u0176\u0173\3\2\2\2\u0177\u017a\3\2\2\2\u0178\u0176\3\2\2\2\u0178"+
-		"\u0179\3\2\2\2\u0179-\3\2\2\2\u017a\u0178\3\2\2\2\u017b\u017c\7\'\2\2"+
-		"\u017c\u017d\7c\2\2\u017d/\3\2\2\2\u017e\u0180\7\'\2\2\u017f\u0181\7c"+
-		"\2\2\u0180\u017f\3\2\2\2\u0180\u0181\3\2\2\2\u0181\u0182\3\2\2\2\u0182"+
-		"\u0184\7\n\2\2\u0183\u0185\5\62\32\2\u0184\u0183\3\2\2\2\u0185\u0186\3"+
-		"\2\2\2\u0186\u0184\3\2\2\2\u0186\u0187\3\2\2\2\u0187\u0188\3\2\2\2\u0188"+
-		"\u0189\7\13\2\2\u0189\61\3\2\2\2\u018a\u018b\5\22\n\2\u018b\u018c\7\4"+
-		"\2\2\u018c\63\3\2\2\2\u018d\u018e\7(\2\2\u018e\u018f\7c\2\2\u018f\65\3"+
-		"\2\2\2\u0190\u0192\7(\2\2\u0191\u0193\7c\2\2\u0192\u0191\3\2\2\2\u0192"+
-		"\u0193\3\2\2\2\u0193\u0194\3\2\2\2\u0194\u0195\7\n\2\2\u0195\u0196\58"+
-		"\35\2\u0196\u0197\7\13\2\2\u0197\67\3\2\2\2\u0198\u0199\b\35\1\2\u0199"+
-		"\u019a\5:\36\2\u019a\u01a0\3\2\2\2\u019b\u019c\f\3\2\2\u019c\u019d\7\6"+
-		"\2\2\u019d\u019f\5:\36\2\u019e\u019b\3\2\2\2\u019f\u01a2\3\2\2\2\u01a0"+
-		"\u019e\3\2\2\2\u01a0\u01a1\3\2\2\2\u01a19\3\2\2\2\u01a2\u01a0\3\2\2\2"+
-		"\u01a3\u01a6\7c\2\2\u01a4\u01a5\7\7\2\2\u01a5\u01a7\5> \2\u01a6\u01a4"+
-		"\3\2\2\2\u01a6\u01a7\3\2\2\2\u01a7;\3\2\2\2\u01a8\u01a9\b\37\1\2\u01a9"+
-		"\u01aa\5> \2\u01aa\u01b0\3\2\2\2\u01ab\u01ac\f\3\2\2\u01ac\u01ad\7\6\2"+
-		"\2\u01ad\u01af\5> \2\u01ae\u01ab\3\2\2\2\u01af\u01b2\3\2\2\2\u01b0\u01ae"+
-		"\3\2\2\2\u01b0\u01b1\3\2\2\2\u01b1=\3\2\2\2\u01b2\u01b0\3\2\2\2\u01b3"+
-		"\u01b4\b \1\2\u01b4\u01b5\7\b\2\2\u01b5\u01b6\5<\37\2\u01b6\u01b7\7\t"+
-		"\2\2\u01b7\u01ea\3\2\2\2\u01b8\u01b9\7+\2\2\u01b9\u01bc\7\b\2\2\u01ba"+
-		"\u01bd\5> \2\u01bb\u01bd\5,\27\2\u01bc\u01ba\3\2\2\2\u01bc\u01bb\3\2\2"+
-		"\2\u01bd\u01be\3\2\2\2\u01be\u01bf\7\t\2\2\u01bf\u01ea\3\2\2\2\u01c0\u01c1"+
-		"\7,\2\2\u01c1\u01c4\7\b\2\2\u01c2\u01c5\5> \2\u01c3\u01c5\5,\27\2\u01c4"+
-		"\u01c2\3\2\2\2\u01c4\u01c3\3\2\2\2\u01c5\u01c6\3\2\2\2\u01c6\u01c7\7\t"+
-		"\2\2\u01c7\u01ea\3\2\2\2\u01c8\u01c9\7\b\2\2\u01c9\u01ca\5,\27\2\u01ca"+
-		"\u01cb\7\t\2\2\u01cb\u01cc\5> \32\u01cc\u01ea\3\2\2\2\u01cd\u01ce\t\3"+
-		"\2\2\u01ce\u01ea\5> \31\u01cf\u01d0\7$\2\2\u01d0\u01ea\5> \27\u01d1\u01d2"+
-		"\t\4\2\2\u01d2\u01ea\5> \26\u01d3\u01d4\t\5\2\2\u01d4\u01ea\5> \22\u01d5"+
-		"\u01d6\7\n\2\2\u01d6\u01db\5> \2\u01d7\u01d8\7\6\2\2\u01d8\u01da\5> \2"+
-		"\u01d9\u01d7\3\2\2\2\u01da\u01dd\3\2\2\2\u01db\u01d9\3\2\2\2\u01db\u01dc"+
-		"\3\2\2\2\u01dc\u01de\3\2\2\2\u01dd\u01db\3\2\2\2\u01de\u01df\7\13\2\2"+
-		"\u01df\u01ea\3\2\2\2\u01e0\u01ea\7c\2\2\u01e1\u01ea\7Z\2\2\u01e2\u01e4"+
-		"\7W\2\2\u01e3\u01e2\3\2\2\2\u01e4\u01e5\3\2\2\2\u01e5\u01e3\3\2\2\2\u01e5"+
-		"\u01e6\3\2\2\2\u01e6\u01ea\3\2\2\2\u01e7\u01ea\7X\2\2\u01e8\u01ea\7Y\2"+
-		"\2\u01e9\u01b3\3\2\2\2\u01e9\u01b8\3\2\2\2\u01e9\u01c0\3\2\2\2\u01e9\u01c8"+
-		"\3\2\2\2\u01e9\u01cd\3\2\2\2\u01e9\u01cf\3\2\2\2\u01e9\u01d1\3\2\2\2\u01e9"+
-		"\u01d3\3\2\2\2\u01e9\u01d5\3\2\2\2\u01e9\u01e0\3\2\2\2\u01e9\u01e1\3\2"+
-		"\2\2\u01e9\u01e3\3\2\2\2\u01e9\u01e7\3\2\2\2\u01e9\u01e8\3\2\2\2\u01ea"+
-		"\u0227\3\2\2\2\u01eb\u01ec\f\25\2\2\u01ec\u01ed\t\6\2\2\u01ed\u0226\5"+
-		"> \26\u01ee\u01ef\f\24\2\2\u01ef\u01f0\t\7\2\2\u01f0\u0226\5> \25\u01f1"+
-		"\u01f2\f\23\2\2\u01f2\u01f3\t\b\2\2\u01f3\u0226\5> \24\u01f4\u01f5\f\21"+
-		"\2\2\u01f5\u01f6\t\t\2\2\u01f6\u0226\5> \22\u01f7\u01f8\f\20\2\2\u01f8"+
-		"\u01f9\7\62\2\2\u01f9\u0226\5> \21\u01fa\u01fb\f\17\2\2\u01fb\u01fc\7"+
-		">\2\2\u01fc\u0226\5> \20\u01fd\u01fe\f\16\2\2\u01fe\u01ff\7?\2\2\u01ff"+
-		"\u0226\5> \17\u0200\u0201\f\r\2\2\u0201\u0202\7@\2\2\u0202\u0226\5> \16"+
-		"\u0203\u0204\f\f\2\2\u0204\u0205\7A\2\2\u0205\u0226\5> \r\u0206\u0207"+
-		"\f\13\2\2\u0207\u0208\7B\2\2\u0208\u0209\5> \2\u0209\u020a\7 \2\2\u020a"+
-		"\u020b\5> \f\u020b\u0226\3\2\2\2\u020c\u020d\f\n\2\2\u020d\u020e\7\7\2"+
-		"\2\u020e\u0226\5> \n\u020f\u0210\f\t\2\2\u0210\u0211\t\n\2\2\u0211\u0226"+
-		"\5> \t\u0212\u0213\f \2\2\u0213\u0214\7)\2\2\u0214\u0226\7c\2\2\u0215"+
-		"\u0216\f\37\2\2\u0216\u0217\7*\2\2\u0217\u0226\7c\2\2\u0218\u0219\f\36"+
-		"\2\2\u0219\u021b\7\b\2\2\u021a\u021c\5@!\2\u021b\u021a\3\2\2\2\u021b\u021c"+
-		"\3\2\2\2\u021c\u021d\3\2\2\2\u021d\u0226\7\t\2\2\u021e\u021f\f\33\2\2"+
-		"\u021f\u0220\7%\2\2\u0220\u0221\5<\37\2\u0221\u0222\7&\2\2\u0222\u0226"+
-		"\3\2\2\2\u0223\u0224\f\30\2\2\u0224\u0226\t\3\2\2\u0225\u01eb\3\2\2\2"+
-		"\u0225\u01ee\3\2\2\2\u0225\u01f1\3\2\2\2\u0225\u01f4\3\2\2\2\u0225\u01f7"+
-		"\3\2\2\2\u0225\u01fa\3\2\2\2\u0225\u01fd\3\2\2\2\u0225\u0200\3\2\2\2\u0225"+
-		"\u0203\3\2\2\2\u0225\u0206\3\2\2\2\u0225\u020c\3\2\2\2\u0225\u020f\3\2"+
-		"\2\2\u0225\u0212\3\2\2\2\u0225\u0215\3\2\2\2\u0225\u0218\3\2\2\2\u0225"+
-		"\u021e\3\2\2\2\u0225\u0223\3\2\2\2\u0226\u0229\3\2\2\2\u0227\u0225\3\2"+
-		"\2\2\u0227\u0228\3\2\2\2\u0228?\3\2\2\2\u0229\u0227\3\2\2\2\u022a\u022f"+
-		"\5> \2\u022b\u022c\7\6\2\2\u022c\u022e\5> \2\u022d\u022b\3\2\2\2\u022e"+
-		"\u0231\3\2\2\2\u022f\u022d\3\2\2\2\u022f\u0230\3\2\2\2\u0230A\3\2\2\2"+
-		"\u0231\u022f\3\2\2\2\u0232\u0234\7M\2\2\u0233\u0235\5D#\2\u0234\u0233"+
-		"\3\2\2\2\u0234\u0235\3\2\2\2\u0235\u0236\3\2\2\2\u0236\u0237\7U\2\2\u0237"+
-		"C\3\2\2\2\u0238\u0239\7\b\2\2\u0239\u023e\5F$\2\u023a\u023b\7\6\2\2\u023b"+
-		"\u023d\5F$\2\u023c\u023a\3\2\2\2\u023d\u0240\3\2\2\2\u023e\u023c\3\2\2"+
-		"\2\u023e\u023f\3\2\2\2\u023f\u0241\3\2\2\2\u0240\u023e\3\2\2\2\u0241\u0242"+
-		"\7\t\2\2\u0242E\3\2\2\2\u0243\u0244\7N\2\2\u0244\u0253\7W\2\2\u0245\u0246"+
-		"\7O\2\2\u0246\u0253\7c\2\2\u0247\u0248\7P\2\2\u0248\u0253\7W\2\2\u0249"+
-		"\u024a\7Q\2\2\u024a\u0253\5> \2\u024b\u024c\7R\2\2\u024c\u0253\5> \2\u024d"+
-		"\u0250\7\r\2\2\u024e\u0251\7\23\2\2\u024f\u0251\5> \2\u0250\u024e\3\2"+
-		"\2\2\u0250\u024f\3\2\2\2\u0251\u0253\3\2\2\2\u0252\u0243\3\2\2\2\u0252"+
-		"\u0245\3\2\2\2\u0252\u0247\3\2\2\2\u0252\u0249\3\2\2\2\u0252\u024b\3\2"+
-		"\2\2\u0252\u024d\3\2\2\2\u0253G\3\2\2\2\u0254\u0256\5J&\2\u0255\u0254"+
-		"\3\2\2\2\u0256\u0259\3\2\2\2\u0257\u0255\3\2\2\2\u0257\u0258\3\2\2\2\u0258"+
-		"I\3\2\2\2\u0259\u0257\3\2\2\2\u025a\u025e\5L\'\2\u025b\u025e\5N(\2\u025c"+
-		"\u025e\5P)\2\u025d\u025a\3\2\2\2\u025d\u025b\3\2\2\2\u025d\u025c\3\2\2"+
-		"\2\u025eK\3\2\2\2\u025f\u0260\7c\2\2\u0260\u0267\7 \2\2\u0261\u0263\7"+
-		"\61\2\2\u0262\u0264\7c\2\2\u0263\u0262\3\2\2\2\u0263\u0264\3\2\2\2\u0264"+
-		"\u0265\3\2\2\2\u0265\u0267\7 \2\2\u0266\u025f\3\2\2\2\u0266\u0261\3\2"+
-		"\2\2\u0267M\3\2\2\2\u0268\u026a\7T\2\2\u0269\u026b\5R*\2\u026a\u0269\3"+
-		"\2\2\2\u026a\u026b\3\2\2\2\u026bO\3\2\2\2\u026c\u026d\7S\2\2\u026d\u0272"+
-		"\5T+\2\u026e\u026f\7\6\2\2\u026f\u0271\5T+\2\u0270\u026e\3\2\2\2\u0271"+
-		"\u0274\3\2\2\2\u0272\u0270\3\2\2\2\u0272\u0273\3\2\2\2\u0273Q\3\2\2\2"+
-		"\u0274\u0272\3\2\2\2\u0275\u028d\5T+\2\u0276\u0277\7\f\2\2\u0277\u028d"+
-		"\5T+\2\u0278\u0279\5T+\2\u0279\u027a\7\6\2\2\u027a\u027b\7c\2\2\u027b"+
-		"\u028d\3\2\2\2\u027c\u027d\7\b\2\2\u027d\u027e\5T+\2\u027e\u027f\7\t\2"+
-		"\2\u027f\u0280\7\6\2\2\u0280\u0281\7c\2\2\u0281\u028d\3\2\2\2\u0282\u0283"+
-		"\7\b\2\2\u0283\u0284\5T+\2\u0284\u0285\7\6\2\2\u0285\u0286\7c\2\2\u0286"+
-		"\u0287\7\t\2\2\u0287\u028d\3\2\2\2\u0288\u0289\7\b\2\2\u0289\u028a\5T"+
-		"+\2\u028a\u028b\7\t\2\2\u028b\u028d\3\2\2\2\u028c\u0275\3\2\2\2\u028c"+
-		"\u0276\3\2\2\2\u028c\u0278\3\2\2\2\u028c\u027c\3\2\2\2\u028c\u0282\3\2"+
-		"\2\2\u028c\u0288\3\2\2\2\u028dS\3\2\2\2\u028e\u028f\b+\1\2\u028f\u0290"+
-		"\7%\2\2\u0290\u0291\5T+\2\u0291\u0292\7&\2\2\u0292\u029d\3\2\2\2\u0293"+
-		"\u0294\t\13\2\2\u0294\u029d\5T+\n\u0295\u029d\7c\2\2\u0296\u029d\7d\2"+
-		"\2\u0297\u0298\7\n\2\2\u0298\u0299\7c\2\2\u0299\u029d\7\13\2\2\u029a\u029d"+
-		"\7Z\2\2\u029b\u029d\7X\2\2\u029c\u028e\3\2\2\2\u029c\u0293\3\2\2\2\u029c"+
-		"\u0295\3\2\2\2\u029c\u0296\3\2\2\2\u029c\u0297\3\2\2\2\u029c\u029a\3\2"+
-		"\2\2\u029c\u029b\3\2\2\2\u029d\u02ac\3\2\2\2\u029e\u029f\f\f\2\2\u029f"+
-		"\u02a0\7)\2\2\u02a0\u02ab\5T+\r\u02a1\u02a2\f\13\2\2\u02a2\u02a3\t\6\2"+
-		"\2\u02a3\u02ab\5T+\f\u02a4\u02a5\f\t\2\2\u02a5\u02a6\t\f\2\2\u02a6\u02ab"+
-		"\5T+\n\u02a7\u02a8\f\b\2\2\u02a8\u02a9\t\b\2\2\u02a9\u02ab\5T+\t\u02aa"+
-		"\u029e\3\2\2\2\u02aa\u02a1\3\2\2\2\u02aa\u02a4\3\2\2\2\u02aa\u02a7\3\2"+
-		"\2\2\u02ab\u02ae\3\2\2\2\u02ac\u02aa\3\2\2\2\u02ac\u02ad\3\2\2\2\u02ad"+
-		"U\3\2\2\2\u02ae\u02ac\3\2\2\2B`i{\u0083\u008a\u0098\u009e\u00a3\u00a9"+
-		"\u00ae\u00b7\u00be\u00cc\u00de\u00e1\u00ea\u00f2\u00f9\u0106\u010b\u0117"+
-		"\u0125\u0130\u0139\u0140\u0147\u014a\u0152\u0155\u0158\u0162\u0169\u0170"+
-		"\u0176\u0178\u0180\u0186\u0192\u01a0\u01a6\u01b0\u01bc\u01c4\u01db\u01e5"+
-		"\u01e9\u021b\u0225\u0227\u022f\u0234\u023e\u0250\u0252\u0257\u025d\u0263"+
-		"\u0266\u026a\u0272\u028c\u029c\u02aa\u02ac";
+		"\7\3\7\3\7\5\7{\n\7\3\b\3\b\3\b\3\t\7\t\u0081\n\t\f\t\16\t\u0084\13\t"+
+		"\3\t\3\t\7\t\u0088\n\t\f\t\16\t\u008b\13\t\3\n\3\n\3\n\3\13\3\13\3\13"+
+		"\3\13\3\13\3\13\7\13\u0096\n\13\f\13\16\13\u0099\13\13\3\f\3\f\3\f\5\f"+
+		"\u009e\n\f\3\f\3\f\3\f\5\f\u00a3\n\f\3\r\3\r\3\r\3\r\5\r\u00a9\n\r\3\r"+
+		"\3\r\3\r\5\r\u00ae\n\r\3\r\3\r\3\16\3\16\3\16\7\16\u00b5\n\16\f\16\16"+
+		"\16\u00b8\13\16\3\17\3\17\3\17\3\17\5\17\u00be\n\17\3\20\3\20\3\20\3\20"+
+		"\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\3\20\5\20"+
+		"\u00d1\n\20\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21\3\21"+
+		"\3\21\3\21\3\21\3\21\5\21\u00e3\n\21\3\21\5\21\u00e6\n\21\3\22\3\22\3"+
+		"\22\3\22\3\22\7\22\u00ed\n\22\f\22\16\22\u00f0\13\22\3\22\3\22\3\23\6"+
+		"\23\u00f5\n\23\r\23\16\23\u00f6\3\24\3\24\3\24\3\24\3\24\5\24\u00fe\n"+
+		"\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u010b"+
+		"\n\24\3\24\7\24\u010e\n\24\f\24\16\24\u0111\13\24\3\24\3\24\3\24\3\24"+
+		"\3\24\3\24\3\24\7\24\u011a\n\24\f\24\16\24\u011d\13\24\3\24\3\24\3\24"+
+		"\3\24\3\24\3\24\3\24\3\24\3\24\7\24\u0128\n\24\f\24\16\24\u012b\13\24"+
+		"\3\24\3\24\3\24\3\24\3\24\3\24\3\24\3\24\5\24\u0135\n\24\3\24\3\24\3\24"+
+		"\3\24\3\24\3\24\3\24\5\24\u013e\n\24\3\24\3\24\3\24\3\24\3\24\5\24\u0145"+
+		"\n\24\3\25\3\25\3\25\3\25\3\25\5\25\u014c\n\25\3\25\5\25\u014f\n\25\3"+
+		"\25\3\25\3\25\3\25\3\25\3\25\5\25\u0157\n\25\3\26\5\26\u015a\n\26\3\26"+
+		"\5\26\u015d\n\26\3\27\3\27\3\27\3\27\3\27\3\27\3\27\3\27\5\27\u0167\n"+
+		"\27\3\27\3\27\3\27\3\27\3\27\5\27\u016e\n\27\3\27\3\27\3\27\3\27\3\27"+
+		"\5\27\u0175\n\27\3\27\3\27\3\27\3\27\7\27\u017b\n\27\f\27\16\27\u017e"+
+		"\13\27\3\30\3\30\3\30\3\31\3\31\5\31\u0185\n\31\3\31\3\31\6\31\u0189\n"+
+		"\31\r\31\16\31\u018a\3\31\3\31\3\32\3\32\3\32\3\33\3\33\3\33\3\34\3\34"+
+		"\5\34\u0197\n\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\3\35\3\35\7\35"+
+		"\u01a3\n\35\f\35\16\35\u01a6\13\35\3\36\3\36\3\36\5\36\u01ab\n\36\3\37"+
+		"\3\37\3\37\3\37\3\37\3\37\7\37\u01b3\n\37\f\37\16\37\u01b6\13\37\3 \3"+
+		" \3 \3 \3 \3 \3 \3 \3 \5 \u01c1\n \3 \3 \3 \3 \3 \3 \5 \u01c9\n \3 \3"+
+		" \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \7 \u01de\n \f \16"+
+		" \u01e1\13 \3 \3 \3 \3 \3 \6 \u01e8\n \r \16 \u01e9\3 \3 \5 \u01ee\n "+
+		"\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 "+
+		"\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 "+
+		"\3 \3 \5 \u0220\n \3 \3 \3 \3 \3 \3 \3 \3 \7 \u022a\n \f \16 \u022d\13"+
+		" \3!\3!\3!\7!\u0232\n!\f!\16!\u0235\13!\3\"\3\"\5\"\u0239\n\"\3\"\3\""+
+		"\3#\3#\3#\3#\7#\u0241\n#\f#\16#\u0244\13#\3#\3#\3$\3$\3$\3$\3$\3$\3$\3"+
+		"$\3$\3$\3$\3$\3$\5$\u0255\n$\5$\u0257\n$\3%\7%\u025a\n%\f%\16%\u025d\13"+
+		"%\3&\3&\3&\5&\u0262\n&\3\'\3\'\3\'\3\'\5\'\u0268\n\'\3\'\5\'\u026b\n\'"+
+		"\3(\3(\5(\u026f\n(\3)\3)\3)\3)\7)\u0275\n)\f)\16)\u0278\13)\3*\3*\3*\3"+
+		"*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\3*\5*\u0291\n"+
+		"*\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\3+\5+\u02a1\n+\3+\3+\3+\3+\3"+
+		"+\3+\3+\3+\3+\3+\3+\3+\7+\u02af\n+\f+\16+\u02b2\13+\3+\2\b\24,8<>T,\2"+
+		"\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\64\668:<>@BDFHJL"+
+		"NPRT\2\r\3\2#$\3\2./\3\2\60\64\3\29:\3\2\65\66\4\2%%\678\3\2\60\61\3\2"+
+		"9>\3\2DM\4\2\60\619:\4\2%%\67\67\2\u0312\2V\3\2\2\2\4Z\3\2\2\2\6`\3\2"+
+		"\2\2\bc\3\2\2\2\ng\3\2\2\2\fz\3\2\2\2\16|\3\2\2\2\20\u0082\3\2\2\2\22"+
+		"\u008c\3\2\2\2\24\u008f\3\2\2\2\26\u00a2\3\2\2\2\30\u00a4\3\2\2\2\32\u00b1"+
+		"\3\2\2\2\34\u00bd\3\2\2\2\36\u00d0\3\2\2\2 \u00e5\3\2\2\2\"\u00e7\3\2"+
+		"\2\2$\u00f4\3\2\2\2&\u0144\3\2\2\2(\u0156\3\2\2\2*\u015c\3\2\2\2,\u016d"+
+		"\3\2\2\2.\u017f\3\2\2\2\60\u0182\3\2\2\2\62\u018e\3\2\2\2\64\u0191\3\2"+
+		"\2\2\66\u0194\3\2\2\28\u019c\3\2\2\2:\u01a7\3\2\2\2<\u01ac\3\2\2\2>\u01ed"+
+		"\3\2\2\2@\u022e\3\2\2\2B\u0236\3\2\2\2D\u023c\3\2\2\2F\u0256\3\2\2\2H"+
+		"\u025b\3\2\2\2J\u0261\3\2\2\2L\u026a\3\2\2\2N\u026c\3\2\2\2P\u0270\3\2"+
+		"\2\2R\u0290\3\2\2\2T\u02a0\3\2\2\2VW\5\6\4\2WX\5\n\6\2XY\7\2\2\3Y\3\3"+
+		"\2\2\2Z[\5H%\2[\\\7\2\2\3\\\5\3\2\2\2]_\5\b\5\2^]\3\2\2\2_b\3\2\2\2`^"+
+		"\3\2\2\2`a\3\2\2\2a\7\3\2\2\2b`\3\2\2\2cd\7\3\2\2de\7X\2\2e\t\3\2\2\2"+
+		"fh\5\f\7\2gf\3\2\2\2hi\3\2\2\2ig\3\2\2\2ij\3\2\2\2j\13\3\2\2\2kl\5\22"+
+		"\n\2lm\7\4\2\2m{\3\2\2\2no\5\60\31\2op\7\4\2\2p{\3\2\2\2qr\5\66\34\2r"+
+		"s\7\4\2\2s{\3\2\2\2t{\5\30\r\2u{\5B\"\2v{\5\36\20\2wx\5\16\b\2xy\7\4\2"+
+		"\2y{\3\2\2\2zk\3\2\2\2zn\3\2\2\2zq\3\2\2\2zt\3\2\2\2zu\3\2\2\2zv\3\2\2"+
+		"\2zw\3\2\2\2{\r\3\2\2\2|}\7\5\2\2}~\5\22\n\2~\17\3\2\2\2\177\u0081\5 "+
+		"\21\2\u0080\177\3\2\2\2\u0081\u0084\3\2\2\2\u0082\u0080\3\2\2\2\u0082"+
+		"\u0083\3\2\2\2\u0083\u0085\3\2\2\2\u0084\u0082\3\2\2\2\u0085\u0089\5,"+
+		"\27\2\u0086\u0088\5 \21\2\u0087\u0086\3\2\2\2\u0088\u008b\3\2\2\2\u0089"+
+		"\u0087\3\2\2\2\u0089\u008a\3\2\2\2\u008a\21\3\2\2\2\u008b\u0089\3\2\2"+
+		"\2\u008c\u008d\5\20\t\2\u008d\u008e\5\24\13\2\u008e\23\3\2\2\2\u008f\u0090"+
+		"\b\13\1\2\u0090\u0091\5\26\f\2\u0091\u0097\3\2\2\2\u0092\u0093\f\3\2\2"+
+		"\u0093\u0094\7\6\2\2\u0094\u0096\5\26\f\2\u0095\u0092\3\2\2\2\u0096\u0099"+
+		"\3\2\2\2\u0097\u0095\3\2\2\2\u0097\u0098\3\2\2\2\u0098\25\3\2\2\2\u0099"+
+		"\u0097\3\2\2\2\u009a\u009d\7d\2\2\u009b\u009c\7\7\2\2\u009c\u009e\5> "+
+		"\2\u009d\u009b\3\2\2\2\u009d\u009e\3\2\2\2\u009e\u00a3\3\2\2\2\u009f\u00a0"+
+		"\7d\2\2\u00a0\u00a1\7\7\2\2\u00a1\u00a3\5B\"\2\u00a2\u009a\3\2\2\2\u00a2"+
+		"\u009f\3\2\2\2\u00a3\27\3\2\2\2\u00a4\u00a5\5\20\t\2\u00a5\u00a6\7d\2"+
+		"\2\u00a6\u00a8\7\b\2\2\u00a7\u00a9\5\32\16\2\u00a8\u00a7\3\2\2\2\u00a8"+
+		"\u00a9\3\2\2\2\u00a9\u00aa\3\2\2\2\u00aa\u00ab\7\t\2\2\u00ab\u00ad\7\n"+
+		"\2\2\u00ac\u00ae\5$\23\2\u00ad\u00ac\3\2\2\2\u00ad\u00ae\3\2\2\2\u00ae"+
+		"\u00af\3\2\2\2\u00af\u00b0\7\13\2\2\u00b0\31\3\2\2\2\u00b1\u00b6\5\34"+
+		"\17\2\u00b2\u00b3\7\6\2\2\u00b3\u00b5\5\34\17\2\u00b4\u00b2\3\2\2\2\u00b5"+
+		"\u00b8\3\2\2\2\u00b6\u00b4\3\2\2\2\u00b6\u00b7\3\2\2\2\u00b7\33\3\2\2"+
+		"\2\u00b8\u00b6\3\2\2\2\u00b9\u00ba\5\20\t\2\u00ba\u00bb\7d\2\2\u00bb\u00be"+
+		"\3\2\2\2\u00bc\u00be\7W\2\2\u00bd\u00b9\3\2\2\2\u00bd\u00bc\3\2\2\2\u00be"+
+		"\35\3\2\2\2\u00bf\u00c0\7\f\2\2\u00c0\u00d1\5\"\22\2\u00c1\u00c2\7\f\2"+
+		"\2\u00c2\u00c3\7\r\2\2\u00c3\u00c4\7\b\2\2\u00c4\u00c5\7[\2\2\u00c5\u00d1"+
+		"\7\t\2\2\u00c6\u00c7\7\f\2\2\u00c7\u00c8\7\16\2\2\u00c8\u00c9\7\b\2\2"+
+		"\u00c9\u00ca\7d\2\2\u00ca\u00d1\7\t\2\2\u00cb\u00cc\7\f\2\2\u00cc\u00cd"+
+		"\7\17\2\2\u00cd\u00ce\7\b\2\2\u00ce\u00cf\7d\2\2\u00cf\u00d1\7\t\2\2\u00d0"+
+		"\u00bf\3\2\2\2\u00d0\u00c1\3\2\2\2\u00d0\u00c6\3\2\2\2\u00d0\u00cb\3\2"+
+		"\2\2\u00d1\37\3\2\2\2\u00d2\u00e6\7\20\2\2\u00d3\u00e6\7\21\2\2\u00d4"+
+		"\u00d5\7\22\2\2\u00d5\u00d6\7\b\2\2\u00d6\u00d7\7[\2\2\u00d7\u00e6\7\t"+
+		"\2\2\u00d8\u00d9\7\23\2\2\u00d9\u00da\7\b\2\2\u00da\u00db\7d\2\2\u00db"+
+		"\u00e6\7\t\2\2\u00dc\u00e6\7\24\2\2\u00dd\u00e6\7\25\2\2\u00de\u00e2\7"+
+		"\26\2\2\u00df\u00e0\7\b\2\2\u00e0\u00e1\7d\2\2\u00e1\u00e3\7\t\2\2\u00e2"+
+		"\u00df\3\2\2\2\u00e2\u00e3\3\2\2\2\u00e3\u00e6\3\2\2\2\u00e4\u00e6\5\""+
+		"\22\2\u00e5\u00d2\3\2\2\2\u00e5\u00d3\3\2\2\2\u00e5\u00d4\3\2\2\2\u00e5"+
+		"\u00d8\3\2\2\2\u00e5\u00dc\3\2\2\2\u00e5\u00dd\3\2\2\2\u00e5\u00de\3\2"+
+		"\2\2\u00e5\u00e4\3\2\2\2\u00e6!\3\2\2\2\u00e7\u00e8\7\27\2\2\u00e8\u00e9"+
+		"\7\b\2\2\u00e9\u00ee\7[\2\2\u00ea\u00eb\7\6\2\2\u00eb\u00ed\7[\2\2\u00ec"+
+		"\u00ea\3\2\2\2\u00ed\u00f0\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ee\u00ef\3\2"+
+		"\2\2\u00ef\u00f1\3\2\2\2\u00f0\u00ee\3\2\2\2\u00f1\u00f2\7\t\2\2\u00f2"+
+		"#\3\2\2\2\u00f3\u00f5\5&\24\2\u00f4\u00f3\3\2\2\2\u00f5\u00f6\3\2\2\2"+
+		"\u00f6\u00f4\3\2\2\2\u00f6\u00f7\3\2\2\2\u00f7%\3\2\2\2\u00f8\u00f9\5"+
+		"\22\n\2\u00f9\u00fa\7\4\2\2\u00fa\u0145\3\2\2\2\u00fb\u00fd\7\n\2\2\u00fc"+
+		"\u00fe\5$\23\2\u00fd\u00fc\3\2\2\2\u00fd\u00fe\3\2\2\2\u00fe\u00ff\3\2"+
+		"\2\2\u00ff\u0145\7\13\2\2\u0100\u0101\5<\37\2\u0101\u0102\7\4\2\2\u0102"+
+		"\u0145\3\2\2\2\u0103\u0104\7\30\2\2\u0104\u0105\7\b\2\2\u0105\u0106\5"+
+		"<\37\2\u0106\u0107\7\t\2\2\u0107\u010a\5&\24\2\u0108\u0109\7\31\2\2\u0109"+
+		"\u010b\5&\24\2\u010a\u0108\3\2\2\2\u010a\u010b\3\2\2\2\u010b\u0145\3\2"+
+		"\2\2\u010c\u010e\5 \21\2\u010d\u010c\3\2\2\2\u010e\u0111\3\2\2\2\u010f"+
+		"\u010d\3\2\2\2\u010f\u0110\3\2\2\2\u0110\u0112\3\2\2\2\u0111\u010f\3\2"+
+		"\2\2\u0112\u0113\7\32\2\2\u0113\u0114\7\b\2\2\u0114\u0115\5<\37\2\u0115"+
+		"\u0116\7\t\2\2\u0116\u0117\5&\24\2\u0117\u0145\3\2\2\2\u0118\u011a\5 "+
+		"\21\2\u0119\u0118\3\2\2\2\u011a\u011d\3\2\2\2\u011b\u0119\3\2\2\2\u011b"+
+		"\u011c\3\2\2\2\u011c\u011e\3\2\2\2\u011d\u011b\3\2\2\2\u011e\u011f\7\33"+
+		"\2\2\u011f\u0120\5&\24\2\u0120\u0121\7\32\2\2\u0121\u0122\7\b\2\2\u0122"+
+		"\u0123\5<\37\2\u0123\u0124\7\t\2\2\u0124\u0125\7\4\2\2\u0125\u0145\3\2"+
+		"\2\2\u0126\u0128\5 \21\2\u0127\u0126\3\2\2\2\u0128\u012b\3\2\2\2\u0129"+
+		"\u0127\3\2\2\2\u0129\u012a\3\2\2\2\u012a\u012c\3\2\2\2\u012b\u0129\3\2"+
+		"\2\2\u012c\u012d\7\34\2\2\u012d\u012e\7\b\2\2\u012e\u012f\5(\25\2\u012f"+
+		"\u0130\7\t\2\2\u0130\u0131\5&\24\2\u0131\u0145\3\2\2\2\u0132\u0134\7\35"+
+		"\2\2\u0133\u0135\5<\37\2\u0134\u0133\3\2\2\2\u0134\u0135\3\2\2\2\u0135"+
+		"\u0136\3\2\2\2\u0136\u0145\7\4\2\2\u0137\u0138\7\36\2\2\u0138\u0145\7"+
+		"\4\2\2\u0139\u013a\7\37\2\2\u013a\u0145\7\4\2\2\u013b\u013d\7 \2\2\u013c"+
+		"\u013e\5D#\2\u013d\u013c\3\2\2\2\u013d\u013e\3\2\2\2\u013e\u013f\3\2\2"+
+		"\2\u013f\u0140\7\n\2\2\u0140\u0141\5H%\2\u0141\u0142\7\13\2\2\u0142\u0145"+
+		"\3\2\2\2\u0143\u0145\5B\"\2\u0144\u00f8\3\2\2\2\u0144\u00fb\3\2\2\2\u0144"+
+		"\u0100\3\2\2\2\u0144\u0103\3\2\2\2\u0144\u010f\3\2\2\2\u0144\u011b\3\2"+
+		"\2\2\u0144\u0129\3\2\2\2\u0144\u0132\3\2\2\2\u0144\u0137\3\2\2\2\u0144"+
+		"\u0139\3\2\2\2\u0144\u013b\3\2\2\2\u0144\u0143\3\2\2\2\u0145\'\3\2\2\2"+
+		"\u0146\u0147\5*\26\2\u0147\u0148\7\4\2\2\u0148\u0149\5<\37\2\u0149\u014b"+
+		"\7\4\2\2\u014a\u014c\5<\37\2\u014b\u014a\3\2\2\2\u014b\u014c\3\2\2\2\u014c"+
+		"\u0157\3\2\2\2\u014d\u014f\5\20\t\2\u014e\u014d\3\2\2\2\u014e\u014f\3"+
+		"\2\2\2\u014f\u0150\3\2\2\2\u0150\u0151\7d\2\2\u0151\u0152\7!\2\2\u0152"+
+		"\u0153\5> \2\u0153\u0154\7\"\2\2\u0154\u0155\5> \2\u0155\u0157\3\2\2\2"+
+		"\u0156\u0146\3\2\2\2\u0156\u014e\3\2\2\2\u0157)\3\2\2\2\u0158\u015a\5"+
+		"\22\n\2\u0159\u0158\3\2\2\2\u0159\u015a\3\2\2\2\u015a\u015d\3\2\2\2\u015b"+
+		"\u015d\5<\37\2\u015c\u0159\3\2\2\2\u015c\u015b\3\2\2\2\u015d+\3\2\2\2"+
+		"\u015e\u015f\b\27\1\2\u015f\u0160\7\b\2\2\u0160\u0161\5,\27\2\u0161\u0162"+
+		"\7\t\2\2\u0162\u016e\3\2\2\2\u0163\u016e\7W\2\2\u0164\u0166\t\2\2\2\u0165"+
+		"\u0167\7W\2\2\u0166\u0165\3\2\2\2\u0166\u0167\3\2\2\2\u0167\u016e\3\2"+
+		"\2\2\u0168\u016e\5\60\31\2\u0169\u016e\5.\30\2\u016a\u016e\5\66\34\2\u016b"+
+		"\u016e\5\64\33\2\u016c\u016e\7d\2\2\u016d\u015e\3\2\2\2\u016d\u0163\3"+
+		"\2\2\2\u016d\u0164\3\2\2\2\u016d\u0168\3\2\2\2\u016d\u0169\3\2\2\2\u016d"+
+		"\u016a\3\2\2\2\u016d\u016b\3\2\2\2\u016d\u016c\3\2\2\2\u016e\u017c\3\2"+
+		"\2\2\u016f\u0170\f\n\2\2\u0170\u017b\7%\2\2\u0171\u0172\f\t\2\2\u0172"+
+		"\u0174\7&\2\2\u0173\u0175\5> \2\u0174\u0173\3\2\2\2\u0174\u0175\3\2\2"+
+		"\2\u0175\u0176\3\2\2\2\u0176\u017b\7\'\2\2\u0177\u0178\f\b\2\2\u0178\u0179"+
+		"\7\b\2\2\u0179\u017b\7\t\2\2\u017a\u016f\3\2\2\2\u017a\u0171\3\2\2\2\u017a"+
+		"\u0177\3\2\2\2\u017b\u017e\3\2\2\2\u017c\u017a\3\2\2\2\u017c\u017d\3\2"+
+		"\2\2\u017d-\3\2\2\2\u017e\u017c\3\2\2\2\u017f\u0180\7(\2\2\u0180\u0181"+
+		"\7d\2\2\u0181/\3\2\2\2\u0182\u0184\7(\2\2\u0183\u0185\7d\2\2\u0184\u0183"+
+		"\3\2\2\2\u0184\u0185\3\2\2\2\u0185\u0186\3\2\2\2\u0186\u0188\7\n\2\2\u0187"+
+		"\u0189\5\62\32\2\u0188\u0187\3\2\2\2\u0189\u018a\3\2\2\2\u018a\u0188\3"+
+		"\2\2\2\u018a\u018b\3\2\2\2\u018b\u018c\3\2\2\2\u018c\u018d\7\13\2\2\u018d"+
+		"\61\3\2\2\2\u018e\u018f\5\22\n\2\u018f\u0190\7\4\2\2\u0190\63\3\2\2\2"+
+		"\u0191\u0192\7)\2\2\u0192\u0193\7d\2\2\u0193\65\3\2\2\2\u0194\u0196\7"+
+		")\2\2\u0195\u0197\7d\2\2\u0196\u0195\3\2\2\2\u0196\u0197\3\2\2\2\u0197"+
+		"\u0198\3\2\2\2\u0198\u0199\7\n\2\2\u0199\u019a\58\35\2\u019a\u019b\7\13"+
+		"\2\2\u019b\67\3\2\2\2\u019c\u019d\b\35\1\2\u019d\u019e\5:\36\2\u019e\u01a4"+
+		"\3\2\2\2\u019f\u01a0\f\3\2\2\u01a0\u01a1\7\6\2\2\u01a1\u01a3\5:\36\2\u01a2"+
+		"\u019f\3\2\2\2\u01a3\u01a6\3\2\2\2\u01a4\u01a2\3\2\2\2\u01a4\u01a5\3\2"+
+		"\2\2\u01a59\3\2\2\2\u01a6\u01a4\3\2\2\2\u01a7\u01aa\7d\2\2\u01a8\u01a9"+
+		"\7\7\2\2\u01a9\u01ab\5> \2\u01aa\u01a8\3\2\2\2\u01aa\u01ab\3\2\2\2\u01ab"+
+		";\3\2\2\2\u01ac\u01ad\b\37\1\2\u01ad\u01ae\5> \2\u01ae\u01b4\3\2\2\2\u01af"+
+		"\u01b0\f\3\2\2\u01b0\u01b1\7\6\2\2\u01b1\u01b3\5> \2\u01b2\u01af\3\2\2"+
+		"\2\u01b3\u01b6\3\2\2\2\u01b4\u01b2\3\2\2\2\u01b4\u01b5\3\2\2\2\u01b5="+
+		"\3\2\2\2\u01b6\u01b4\3\2\2\2\u01b7\u01b8\b \1\2\u01b8\u01b9\7\b\2\2\u01b9"+
+		"\u01ba\5<\37\2\u01ba\u01bb\7\t\2\2\u01bb\u01ee\3\2\2\2\u01bc\u01bd\7,"+
+		"\2\2\u01bd\u01c0\7\b\2\2\u01be\u01c1\5> \2\u01bf\u01c1\5,\27\2\u01c0\u01be"+
+		"\3\2\2\2\u01c0\u01bf\3\2\2\2\u01c1\u01c2\3\2\2\2\u01c2\u01c3\7\t\2\2\u01c3"+
+		"\u01ee\3\2\2\2\u01c4\u01c5\7-\2\2\u01c5\u01c8\7\b\2\2\u01c6\u01c9\5> "+
+		"\2\u01c7\u01c9\5,\27\2\u01c8\u01c6\3\2\2\2\u01c8\u01c7\3\2\2\2\u01c9\u01ca"+
+		"\3\2\2\2\u01ca\u01cb\7\t\2\2\u01cb\u01ee\3\2\2\2\u01cc\u01cd\7\b\2\2\u01cd"+
+		"\u01ce\5,\27\2\u01ce\u01cf\7\t\2\2\u01cf\u01d0\5> \32\u01d0\u01ee\3\2"+
+		"\2\2\u01d1\u01d2\t\3\2\2\u01d2\u01ee\5> \31\u01d3\u01d4\7%\2\2\u01d4\u01ee"+
+		"\5> \27\u01d5\u01d6\t\4\2\2\u01d6\u01ee\5> \26\u01d7\u01d8\t\5\2\2\u01d8"+
+		"\u01ee\5> \22\u01d9\u01da\7\n\2\2\u01da\u01df\5> \2\u01db\u01dc\7\6\2"+
+		"\2\u01dc\u01de\5> \2\u01dd\u01db\3\2\2\2\u01de\u01e1\3\2\2\2\u01df\u01dd"+
+		"\3\2\2\2\u01df\u01e0\3\2\2\2\u01e0\u01e2\3\2\2\2\u01e1\u01df\3\2\2\2\u01e2"+
+		"\u01e3\7\13\2\2\u01e3\u01ee\3\2\2\2\u01e4\u01ee\7d\2\2\u01e5\u01ee\7["+
+		"\2\2\u01e6\u01e8\7X\2\2\u01e7\u01e6\3\2\2\2\u01e8\u01e9\3\2\2\2\u01e9"+
+		"\u01e7\3\2\2\2\u01e9\u01ea\3\2\2\2\u01ea\u01ee\3\2\2\2\u01eb\u01ee\7Y"+
+		"\2\2\u01ec\u01ee\7Z\2\2\u01ed\u01b7\3\2\2\2\u01ed\u01bc\3\2\2\2\u01ed"+
+		"\u01c4\3\2\2\2\u01ed\u01cc\3\2\2\2\u01ed\u01d1\3\2\2\2\u01ed\u01d3\3\2"+
+		"\2\2\u01ed\u01d5\3\2\2\2\u01ed\u01d7\3\2\2\2\u01ed\u01d9\3\2\2\2\u01ed"+
+		"\u01e4\3\2\2\2\u01ed\u01e5\3\2\2\2\u01ed\u01e7\3\2\2\2\u01ed\u01eb\3\2"+
+		"\2\2\u01ed\u01ec\3\2\2\2\u01ee\u022b\3\2\2\2\u01ef\u01f0\f\25\2\2\u01f0"+
+		"\u01f1\t\6\2\2\u01f1\u022a\5> \26\u01f2\u01f3\f\24\2\2\u01f3\u01f4\t\7"+
+		"\2\2\u01f4\u022a\5> \25\u01f5\u01f6\f\23\2\2\u01f6\u01f7\t\b\2\2\u01f7"+
+		"\u022a\5> \24\u01f8\u01f9\f\21\2\2\u01f9\u01fa\t\t\2\2\u01fa\u022a\5>"+
+		" \22\u01fb\u01fc\f\20\2\2\u01fc\u01fd\7\63\2\2\u01fd\u022a\5> \21\u01fe"+
+		"\u01ff\f\17\2\2\u01ff\u0200\7?\2\2\u0200\u022a\5> \20\u0201\u0202\f\16"+
+		"\2\2\u0202\u0203\7@\2\2\u0203\u022a\5> \17\u0204\u0205\f\r\2\2\u0205\u0206"+
+		"\7A\2\2\u0206\u022a\5> \16\u0207\u0208\f\f\2\2\u0208\u0209\7B\2\2\u0209"+
+		"\u022a\5> \r\u020a\u020b\f\13\2\2\u020b\u020c\7C\2\2\u020c\u020d\5> \2"+
+		"\u020d\u020e\7!\2\2\u020e\u020f\5> \f\u020f\u022a\3\2\2\2\u0210\u0211"+
+		"\f\n\2\2\u0211\u0212\7\7\2\2\u0212\u022a\5> \n\u0213\u0214\f\t\2\2\u0214"+
+		"\u0215\t\n\2\2\u0215\u022a\5> \t\u0216\u0217\f \2\2\u0217\u0218\7*\2\2"+
+		"\u0218\u022a\7d\2\2\u0219\u021a\f\37\2\2\u021a\u021b\7+\2\2\u021b\u022a"+
+		"\7d\2\2\u021c\u021d\f\36\2\2\u021d\u021f\7\b\2\2\u021e\u0220\5@!\2\u021f"+
+		"\u021e\3\2\2\2\u021f\u0220\3\2\2\2\u0220\u0221\3\2\2\2\u0221\u022a\7\t"+
+		"\2\2\u0222\u0223\f\33\2\2\u0223\u0224\7&\2\2\u0224\u0225\5<\37\2\u0225"+
+		"\u0226\7\'\2\2\u0226\u022a\3\2\2\2\u0227\u0228\f\30\2\2\u0228\u022a\t"+
+		"\3\2\2\u0229\u01ef\3\2\2\2\u0229\u01f2\3\2\2\2\u0229\u01f5\3\2\2\2\u0229"+
+		"\u01f8\3\2\2\2\u0229\u01fb\3\2\2\2\u0229\u01fe\3\2\2\2\u0229\u0201\3\2"+
+		"\2\2\u0229\u0204\3\2\2\2\u0229\u0207\3\2\2\2\u0229\u020a\3\2\2\2\u0229"+
+		"\u0210\3\2\2\2\u0229\u0213\3\2\2\2\u0229\u0216\3\2\2\2\u0229\u0219\3\2"+
+		"\2\2\u0229\u021c\3\2\2\2\u0229\u0222\3\2\2\2\u0229\u0227\3\2\2\2\u022a"+
+		"\u022d\3\2\2\2\u022b\u0229\3\2\2\2\u022b\u022c\3\2\2\2\u022c?\3\2\2\2"+
+		"\u022d\u022b\3\2\2\2\u022e\u0233\5> \2\u022f\u0230\7\6\2\2\u0230\u0232"+
+		"\5> \2\u0231\u022f\3\2\2\2\u0232\u0235\3\2\2\2\u0233\u0231\3\2\2\2\u0233"+
+		"\u0234\3\2\2\2\u0234A\3\2\2\2\u0235\u0233\3\2\2\2\u0236\u0238\7N\2\2\u0237"+
+		"\u0239\5D#\2\u0238\u0237\3\2\2\2\u0238\u0239\3\2\2\2\u0239\u023a\3\2\2"+
+		"\2\u023a\u023b\7V\2\2\u023bC\3\2\2\2\u023c\u023d\7\b\2\2\u023d\u0242\5"+
+		"F$\2\u023e\u023f\7\6\2\2\u023f\u0241\5F$\2\u0240\u023e\3\2\2\2\u0241\u0244"+
+		"\3\2\2\2\u0242\u0240\3\2\2\2\u0242\u0243\3\2\2\2\u0243\u0245\3\2\2\2\u0244"+
+		"\u0242\3\2\2\2\u0245\u0246\7\t\2\2\u0246E\3\2\2\2\u0247\u0248\7O\2\2\u0248"+
+		"\u0257\7X\2\2\u0249\u024a\7P\2\2\u024a\u0257\7d\2\2\u024b\u024c\7Q\2\2"+
+		"\u024c\u0257\7X\2\2\u024d\u024e\7R\2\2\u024e\u0257\5> \2\u024f\u0250\7"+
+		"S\2\2\u0250\u0257\5> \2\u0251\u0254\7\r\2\2\u0252\u0255\7\24\2\2\u0253"+
+		"\u0255\5> \2\u0254\u0252\3\2\2\2\u0254\u0253\3\2\2\2\u0255\u0257\3\2\2"+
+		"\2\u0256\u0247\3\2\2\2\u0256\u0249\3\2\2\2\u0256\u024b\3\2\2\2\u0256\u024d"+
+		"\3\2\2\2\u0256\u024f\3\2\2\2\u0256\u0251\3\2\2\2\u0257G\3\2\2\2\u0258"+
+		"\u025a\5J&\2\u0259\u0258\3\2\2\2\u025a\u025d\3\2\2\2\u025b\u0259\3\2\2"+
+		"\2\u025b\u025c\3\2\2\2\u025cI\3\2\2\2\u025d\u025b\3\2\2\2\u025e\u0262"+
+		"\5L\'\2\u025f\u0262\5N(\2\u0260\u0262\5P)\2\u0261\u025e\3\2\2\2\u0261"+
+		"\u025f\3\2\2\2\u0261\u0260\3\2\2\2\u0262K\3\2\2\2\u0263\u0264\7d\2\2\u0264"+
+		"\u026b\7!\2\2\u0265\u0267\7\62\2\2\u0266\u0268\7d\2\2\u0267\u0266\3\2"+
+		"\2\2\u0267\u0268\3\2\2\2\u0268\u0269\3\2\2\2\u0269\u026b\7!\2\2\u026a"+
+		"\u0263\3\2\2\2\u026a\u0265\3\2\2\2\u026bM\3\2\2\2\u026c\u026e\7U\2\2\u026d"+
+		"\u026f\5R*\2\u026e\u026d\3\2\2\2\u026e\u026f\3\2\2\2\u026fO\3\2\2\2\u0270"+
+		"\u0271\7T\2\2\u0271\u0276\5T+\2\u0272\u0273\7\6\2\2\u0273\u0275\5T+\2"+
+		"\u0274\u0272\3\2\2\2\u0275\u0278\3\2\2\2\u0276\u0274\3\2\2\2\u0276\u0277"+
+		"\3\2\2\2\u0277Q\3\2\2\2\u0278\u0276\3\2\2\2\u0279\u0291\5T+\2\u027a\u027b"+
+		"\7\f\2\2\u027b\u0291\5T+\2\u027c\u027d\5T+\2\u027d\u027e\7\6\2\2\u027e"+
+		"\u027f\7d\2\2\u027f\u0291\3\2\2\2\u0280\u0281\7\b\2\2\u0281\u0282\5T+"+
+		"\2\u0282\u0283\7\t\2\2\u0283\u0284\7\6\2\2\u0284\u0285\7d\2\2\u0285\u0291"+
+		"\3\2\2\2\u0286\u0287\7\b\2\2\u0287\u0288\5T+\2\u0288\u0289\7\6\2\2\u0289"+
+		"\u028a\7d\2\2\u028a\u028b\7\t\2\2\u028b\u0291\3\2\2\2\u028c\u028d\7\b"+
+		"\2\2\u028d\u028e\5T+\2\u028e\u028f\7\t\2\2\u028f\u0291\3\2\2\2\u0290\u0279"+
+		"\3\2\2\2\u0290\u027a\3\2\2\2\u0290\u027c\3\2\2\2\u0290\u0280\3\2\2\2\u0290"+
+		"\u0286\3\2\2\2\u0290\u028c\3\2\2\2\u0291S\3\2\2\2\u0292\u0293\b+\1\2\u0293"+
+		"\u0294\7&\2\2\u0294\u0295\5T+\2\u0295\u0296\7\'\2\2\u0296\u02a1\3\2\2"+
+		"\2\u0297\u0298\t\13\2\2\u0298\u02a1\5T+\n\u0299\u02a1\7d\2\2\u029a\u02a1"+
+		"\7e\2\2\u029b\u029c\7\n\2\2\u029c\u029d\7d\2\2\u029d\u02a1\7\13\2\2\u029e"+
+		"\u02a1\7[\2\2\u029f\u02a1\7Y\2\2\u02a0\u0292\3\2\2\2\u02a0\u0297\3\2\2"+
+		"\2\u02a0\u0299\3\2\2\2\u02a0\u029a\3\2\2\2\u02a0\u029b\3\2\2\2\u02a0\u029e"+
+		"\3\2\2\2\u02a0\u029f\3\2\2\2\u02a1\u02b0\3\2\2\2\u02a2\u02a3\f\f\2\2\u02a3"+
+		"\u02a4\7*\2\2\u02a4\u02af\5T+\r\u02a5\u02a6\f\13\2\2\u02a6\u02a7\t\6\2"+
+		"\2\u02a7\u02af\5T+\f\u02a8\u02a9\f\t\2\2\u02a9\u02aa\t\f\2\2\u02aa\u02af"+
+		"\5T+\n\u02ab\u02ac\f\b\2\2\u02ac\u02ad\t\b\2\2\u02ad\u02af\5T+\t\u02ae"+
+		"\u02a2\3\2\2\2\u02ae\u02a5\3\2\2\2\u02ae\u02a8\3\2\2\2\u02ae\u02ab\3\2"+
+		"\2\2\u02af\u02b2\3\2\2\2\u02b0\u02ae\3\2\2\2\u02b0\u02b1\3\2\2\2\u02b1"+
+		"U\3\2\2\2\u02b2\u02b0\3\2\2\2B`iz\u0082\u0089\u0097\u009d\u00a2\u00a8"+
+		"\u00ad\u00b6\u00bd\u00d0\u00e2\u00e5\u00ee\u00f6\u00fd\u010a\u010f\u011b"+
+		"\u0129\u0134\u013d\u0144\u014b\u014e\u0156\u0159\u015c\u0166\u016d\u0174"+
+		"\u017a\u017c\u0184\u018a\u0196\u01a4\u01aa\u01b4\u01c0\u01c8\u01df\u01e9"+
+		"\u01ed\u021f\u0229\u022b\u0233\u0238\u0242\u0254\u0256\u025b\u0261\u0267"+
+		"\u026a\u026e\u0276\u0290\u02a0\u02ae\u02b0";
 	public static final ATN _ATN =
 		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
 	static {
diff --git a/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java b/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java
index fff9c94c6..d862426d1 100644
--- a/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java
+++ b/src/main/java/dk/camelot64/kickc/parser/KickCVisitor.java
@@ -1,4 +1,4 @@
-// Generated from C:/c64/kickc/src/main/java/dk/camelot64/kickc/parser\KickC.g4 by ANTLR 4.7
+// Generated from /Users/jespergravgaard/c64/kickc/src/main/java/dk/camelot64/kickc/parser/KickC.g4 by ANTLR 4.7
 package dk.camelot64.kickc.parser;
 import org.antlr.v4.runtime.tree.ParseTreeVisitor;
 
@@ -124,6 +124,13 @@ public interface KickCVisitor<T> extends ParseTreeVisitor<T> {
 	 * @return the visitor result
 	 */
 	T visitGlobalDirectivePc(KickCParser.GlobalDirectivePcContext ctx);
+	/**
+	 * Visit a parse tree produced by the {@code globalDirectivePlatform}
+	 * labeled alternative in {@link KickCParser#globalDirective}.
+	 * @param ctx the parse tree
+	 * @return the visitor result
+	 */
+	T visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx);
 	/**
 	 * Visit a parse tree produced by the {@code globalDirectiveEncoding}
 	 * labeled alternative in {@link KickCParser#globalDirective}.
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
index 29eff1373..9daf3a9ee 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java
@@ -133,6 +133,19 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor<Object> {
       Number programPc = NumberParser.parseLiteral(ctx.NUMBER().getText());
       if(programPc != null) {
          program.setProgramPc(programPc);
+      } else {
+         throw new CompileError("Cannot parse #pc directive",new StatementSource(ctx));
+      }
+      return null;
+   }
+
+   @Override
+   public Object visitGlobalDirectivePlatform(KickCParser.GlobalDirectivePlatformContext ctx) {
+      TargetPlatform platform = TargetPlatform.getTargetPlatform(ctx.NAME().getText());
+      if(platform != null) {
+         program.setTargetPlatform(platform);
+      } else {
+         throw new CompileError("Unknown target platform in #platform directive",new StatementSource(ctx));
       }
       return null;
    }
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java
index c4c6cf208..db45eb3f9 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass4CodeGeneration.java
@@ -77,12 +77,18 @@ public class Pass4CodeGeneration {
       if(program.getProgramPc() != null) {
          programPc = program.getProgramPc();
       } else {
-         programPc = 0x080d;
+         if(TargetPlatform.C64BASIC.equals(program.getTargetPlatform())) {
+            programPc = 0x080d;
+         } else {
+            programPc = 0x1000;
+         }
       }
 
-      asm.startSegment(currentScope, null, "Basic Upstart");
-      asm.addLine(new AsmSetPc("Basic", AsmFormat.getAsmNumber(0x0801)));
-      asm.addLine(new AsmBasicUpstart("bbegin"));
+      asm.startSegment(currentScope, null, "Upstart");
+      if(TargetPlatform.C64BASIC.equals(program.getTargetPlatform())) {
+         asm.addLine(new AsmSetPc("Basic", AsmFormat.getAsmNumber(0x0801)));
+         asm.addLine(new AsmBasicUpstart("bbegin"));
+      }
       asm.addLine(new AsmSetPc("Program", AsmFormat.getAsmNumber(programPc)));
 
       // Generate global ZP labels
diff --git a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
index 0cc48883a..ec85f4c8e 100644
--- a/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
+++ b/src/test/java/dk/camelot64/kickc/test/TestPrograms.java
@@ -35,6 +35,12 @@ public class TestPrograms {
    public TestPrograms() {
    }
 
+   @Test
+   public void testPlatformAsm6502() throws IOException, URISyntaxException {
+      compileAndCompare("platform-asm6502");
+   }
+
+
    @Test
    public void testEuclid2() throws IOException, URISyntaxException {
       compileAndCompare("euclid-3");
diff --git a/src/test/kc/euclid-3.kc b/src/test/kc/euclid-3.kc
index 2e697c271..b01ae3e31 100644
--- a/src/test/kc/euclid-3.kc
+++ b/src/test/kc/euclid-3.kc
@@ -1,5 +1,5 @@
 /*
- * Find least common denominator using subtraction-based Euclidian algorithm
+ * Find greatest common denominator using subtraction-based Euclidian algorithm
  * See https://en.wikipedia.org/wiki/Euclidean_algorithm
  * Based on facebook post from
  */
diff --git a/src/test/kc/platform-asm6502.kc b/src/test/kc/platform-asm6502.kc
new file mode 100644
index 000000000..d02d11ada
--- /dev/null
+++ b/src/test/kc/platform-asm6502.kc
@@ -0,0 +1,10 @@
+// Tests the target platform ASM6502
+
+#platform(asm6502)
+
+unsigned char[10] TABLE;
+
+void main() {
+    for(char i=0;i<10;i++)
+        TABLE[i] = i;
+}
\ No newline at end of file
diff --git a/src/test/ref/address-of-0.log b/src/test/ref/address-of-0.log
index d0749c391..ff73a2f0d 100644
--- a/src/test/ref/address-of-0.log
+++ b/src/test/ref/address-of-0.log
@@ -145,9 +145,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#0 main::b#1 ]
 Allocated zp ZP_BYTE:3 [ main::c#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test address-of - use the pointer to get the value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -223,7 +224,7 @@ Uplifting [main] best 368 combination zp ZP_BYTE:2 [ main::b#2 main::b#0 main::b
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test address-of - use the pointer to get the value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -327,7 +328,7 @@ Score: 296
 
   // File Comments
 // Test address-of - use the pointer to get the value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/address-of-1.log b/src/test/ref/address-of-1.log
index a665bf4af..5fb0757fa 100644
--- a/src/test/ref/address-of-1.log
+++ b/src/test/ref/address-of-1.log
@@ -261,9 +261,10 @@ Allocated zp ZP_BYTE:6 [ main::b2#0 ]
 Allocated zp ZP_BYTE:7 [ main::b3#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test address-of - pass the pointer as parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -414,7 +415,7 @@ Allocated (was zp ZP_BYTE:7) zp ZP_BYTE:6 [ main::b3#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test address-of - pass the pointer as parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -595,7 +596,7 @@ Score: 108
 
   // File Comments
 // Test address-of - pass the pointer as parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/address-of-2.log b/src/test/ref/address-of-2.log
index 569335bae..be2d5cb11 100644
--- a/src/test/ref/address-of-2.log
+++ b/src/test/ref/address-of-2.log
@@ -364,9 +364,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ val#0 val#1 val#2 val#12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test address-of by assigning the affected variable in multiple ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -521,7 +522,7 @@ Uplifting [] best 175 combination zp ZP_BYTE:2 [ val#0 val#1 val#2 val#12 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test address-of by assigning the affected variable in multiple ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -703,7 +704,7 @@ Score: 154
 
   // File Comments
 // Test address-of by assigning the affected variable in multiple ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/array-length-symbolic-min.log b/src/test/ref/array-length-symbolic-min.log
index 015193fea..c1b32a18f 100644
--- a/src/test/ref/array-length-symbolic-min.log
+++ b/src/test/ref/array-length-symbolic-min.log
@@ -143,9 +143,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::sub#2 main::sub#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -215,7 +216,7 @@ Uplifting [] best 263 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -317,7 +318,7 @@ Score: 161
 
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/array-length-symbolic.log b/src/test/ref/array-length-symbolic.log
index 39a37923f..0d0d89178 100644
--- a/src/test/ref/array-length-symbolic.log
+++ b/src/test/ref/array-length-symbolic.log
@@ -285,9 +285,10 @@ Allocated zp ZP_BYTE:6 [ main::$2 ]
 Allocated zp ZP_BYTE:7 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -420,7 +421,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::cur_item#4 main::cur_item#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -587,7 +588,7 @@ Score: 3416
 
   // File Comments
 // Illustrates symbolic array lengths
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/arrays-init-kasm-0.log b/src/test/ref/arrays-init-kasm-0.log
index d1cbea46b..26534385a 100644
--- a/src/test/ref/arrays-init-kasm-0.log
+++ b/src/test/ref/arrays-init-kasm-0.log
@@ -91,9 +91,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test initializing array using KickAssembler
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -143,7 +144,7 @@ Uplifting [] best 29 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test initializing array using KickAssembler
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -217,7 +218,7 @@ Score: 14
 
   // File Comments
 // Test initializing array using KickAssembler
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/arrays-init.log b/src/test/ref/arrays-init.log
index 2f0fff69f..497c83d71 100644
--- a/src/test/ref/arrays-init.log
+++ b/src/test/ref/arrays-init.log
@@ -138,8 +138,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ Uplifting [] best 51 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -285,7 +286,7 @@ FINAL ASSEMBLER
 Score: 32
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/assignment-chained.log b/src/test/ref/assignment-chained.log
index 720dd0188..9d599cc22 100644
--- a/src/test/ref/assignment-chained.log
+++ b/src/test/ref/assignment-chained.log
@@ -149,9 +149,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::a#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that chained assignments work as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -222,7 +223,7 @@ Uplifting [] best 59 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that chained assignments work as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -312,7 +313,7 @@ Score: 38
 
   // File Comments
 // Tests that chained assignments work as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/assignment-compound.log b/src/test/ref/assignment-compound.log
index 6f7edb037..2a5f56ccc 100644
--- a/src/test/ref/assignment-compound.log
+++ b/src/test/ref/assignment-compound.log
@@ -744,9 +744,10 @@ Allocated zp ZP_BYTE:2 [ test::a#11 ]
 Allocated zp ZP_BYTE:3 [ test::i#11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test compound assignment operators
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1010,7 +1011,7 @@ Uplifting [test] best 250 combination zp ZP_BYTE:2 [ test::a#11 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test compound assignment operators
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1342,7 +1343,7 @@ Score: 202
 
   // File Comments
 // Test compound assignment operators
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bgblack.log b/src/test/ref/bgblack.log
index 4cad9c327..fd685c7a9 100644
--- a/src/test/ref/bgblack.log
+++ b/src/test/ref/bgblack.log
@@ -89,8 +89,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -137,7 +138,7 @@ Uplifting [] best 27 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -207,7 +208,7 @@ FINAL ASSEMBLER
 Score: 12
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitmap-plot-0.log b/src/test/ref/bitmap-plot-0.log
index 639ec47c5..63fc32383 100644
--- a/src/test/ref/bitmap-plot-0.log
+++ b/src/test/ref/bitmap-plot-0.log
@@ -1802,10 +1802,11 @@ Allocated zp ZP_BYTE:35 [ bitmap_init::$5 ]
 Allocated zp ZP_BYTE:36 [ bitmap_init::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots simple plots
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2573,7 +2574,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots simple plots
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3448,7 +3449,7 @@ Score: 3147
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots simple plots
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitmap-plot-1.log b/src/test/ref/bitmap-plot-1.log
index 7cd046147..e96e8410b 100644
--- a/src/test/ref/bitmap-plot-1.log
+++ b/src/test/ref/bitmap-plot-1.log
@@ -4021,10 +4021,11 @@ Allocated zp ZP_BYTE:224 [ divr16u::$2 ]
 Allocated zp ZP_WORD:225 [ rem16u#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a fullscreen elipsis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6376,7 +6377,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a fullscreen elipsis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8645,7 +8646,7 @@ Score: 20251
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a fullscreen elipsis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitmap-plot-2.log b/src/test/ref/bitmap-plot-2.log
index f9af9f2b3..dd9ffded2 100644
--- a/src/test/ref/bitmap-plot-2.log
+++ b/src/test/ref/bitmap-plot-2.log
@@ -4257,10 +4257,11 @@ Allocated zp ZP_BYTE:223 [ divr16u::$2 ]
 Allocated zp ZP_WORD:224 [ rem16u#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a spiral
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6693,7 +6694,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a spiral
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -9054,7 +9055,7 @@ Score: 20436
   // File Comments
 // Tests the simple bitmap plotter - and counts plots per frame in an IRQ
 // Plots a spiral
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitmap-plot-3.log b/src/test/ref/bitmap-plot-3.log
index 0caf62fa5..ff466b2f2 100644
--- a/src/test/ref/bitmap-plot-3.log
+++ b/src/test/ref/bitmap-plot-3.log
@@ -2493,10 +2493,11 @@ Allocated zp ZP_BYTE:72 [ bitmap_init::$5 ]
 Allocated zp ZP_BYTE:73 [ bitmap_init::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the simple bitmap plotter
 // Plots a few lines using the bresenham line algorithm
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3717,7 +3718,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the simple bitmap plotter
 // Plots a few lines using the bresenham line algorithm
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4970,7 +4971,7 @@ Score: 27229
   // File Comments
 // Tests the simple bitmap plotter
 // Plots a few lines using the bresenham line algorithm
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitmap-plotter.log b/src/test/ref/bitmap-plotter.log
index 5768efd54..9aff62547 100644
--- a/src/test/ref/bitmap-plotter.log
+++ b/src/test/ref/bitmap-plotter.log
@@ -1020,8 +1020,9 @@ Allocated zp ZP_BYTE:32 [ init_plot_tables::$8 ]
 Allocated zp ZP_BYTE:33 [ init_plot_tables::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1559,7 +1560,7 @@ Allocated (was zp ZP_BYTE:30) zp ZP_BYTE:14 [ init_plot_tables::$10 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2149,7 +2150,7 @@ FINAL ASSEMBLER
 Score: 6171
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bitwise-not.log b/src/test/ref/bitwise-not.log
index 101797448..a231b2790 100644
--- a/src/test/ref/bitwise-not.log
+++ b/src/test/ref/bitwise-not.log
@@ -124,8 +124,9 @@ Allocated zp ZP_BYTE:2 [ main::c#2 main::c#1 ]
 Allocated zp ZP_BYTE:3 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -204,7 +205,7 @@ Uplifting [] best 289 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -304,7 +305,7 @@ FINAL ASSEMBLER
 Score: 187
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-const.log b/src/test/ref/bool-const.log
index 4f7658ef5..f5ab2a5dd 100644
--- a/src/test/ref/bool-const.log
+++ b/src/test/ref/bool-const.log
@@ -386,9 +386,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A Minimal test of boolean constants.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -508,7 +509,7 @@ Uplifting [] best 180 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A Minimal test of boolean constants.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -680,7 +681,7 @@ Score: 60
 
   // File Comments
 // A Minimal test of boolean constants.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-function.log b/src/test/ref/bool-function.log
index c870811a1..a1e23ca2f 100644
--- a/src/test/ref/bool-function.log
+++ b/src/test/ref/bool-function.log
@@ -275,9 +275,10 @@ Allocated zp ZP_BOOL:9 [ isSet::$1 ]
 Allocated zp ZP_BOOL:10 [ isSet::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a function taking boolean parameter and returning boolean result
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -447,7 +448,7 @@ Allocated (was zp ZP_BOOL:4) zp ZP_BOOL:2 [ isSet::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a function taking boolean parameter and returning boolean result
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -631,7 +632,7 @@ Score: 540
 
   // File Comments
 // Test a function taking boolean parameter and returning boolean result
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-ifs.log b/src/test/ref/bool-ifs.log
index 838aae630..71b94545a 100644
--- a/src/test/ref/bool-ifs.log
+++ b/src/test/ref/bool-ifs.log
@@ -657,9 +657,10 @@ Allocated zp ZP_BYTE:8 [ bool_or::$1 ]
 Allocated zp ZP_BYTE:9 [ bool_and::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1031,7 +1032,7 @@ Uplifting [] best 2488 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1474,7 +1475,7 @@ Score: 1684
 
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-nullpointer-exception.log b/src/test/ref/bool-nullpointer-exception.log
index 93bbef88d..972fec4b1 100644
--- a/src/test/ref/bool-nullpointer-exception.log
+++ b/src/test/ref/bool-nullpointer-exception.log
@@ -139,9 +139,10 @@ Complete equivalence classes
 Allocated zp ZP_BOOL:2 [ framedone#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Some bool code that causes a NullPointerException
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -203,7 +204,7 @@ Uplifting [main] best 892 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Some bool code that causes a NullPointerException
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -290,7 +291,7 @@ Score: 820
 
   // File Comments
 // Some bool code that causes a NullPointerException
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-pointer.log b/src/test/ref/bool-pointer.log
index b416e227c..4ccf72aa0 100644
--- a/src/test/ref/bool-pointer.log
+++ b/src/test/ref/bool-pointer.log
@@ -133,9 +133,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a pointer to a boolean
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -200,7 +201,7 @@ Uplifting [] best 56 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a pointer to a boolean
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -286,7 +287,7 @@ Score: 40
 
   // File Comments
 // Tests a pointer to a boolean
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bool-vars.log b/src/test/ref/bool-vars.log
index fd1769670..24085e8b2 100644
--- a/src/test/ref/bool-vars.log
+++ b/src/test/ref/bool-vars.log
@@ -710,9 +710,10 @@ Allocated zp ZP_BYTE:10 [ bool_or::$1 ]
 Allocated zp ZP_BYTE:11 [ bool_and::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1120,7 +1121,7 @@ Allocated (was zp ZP_BOOL:8) zp ZP_BOOL:3 [ bool_complex::o2#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1598,7 +1599,7 @@ Score: 2059
 
   // File Comments
 // A test of boolean conditions using && || and !
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bresenham.log b/src/test/ref/bresenham.log
index 7c4866c3e..b70947131 100644
--- a/src/test/ref/bresenham.log
+++ b/src/test/ref/bresenham.log
@@ -390,8 +390,9 @@ Allocated zp ZP_BYTE:5 [ main::e#3 main::e#5 main::e#1 main::e#2 ]
 Allocated zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -547,7 +548,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ main::y#2 main::y#4 main::y#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -744,7 +745,7 @@ FINAL ASSEMBLER
 Score: 926
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/bresenhamarr.log b/src/test/ref/bresenhamarr.log
index 6c054efca..c67406555 100644
--- a/src/test/ref/bresenhamarr.log
+++ b/src/test/ref/bresenhamarr.log
@@ -401,8 +401,9 @@ Allocated zp ZP_BYTE:6 [ main::y#2 main::y#4 main::y#1 ]
 Allocated zp ZP_WORD:7 [ main::$15 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -569,7 +570,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::$15 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -777,7 +778,7 @@ FINAL ASSEMBLER
 Score: 1111
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c-types.log b/src/test/ref/c-types.log
index 23f239c6a..29e816edb 100644
--- a/src/test/ref/c-types.log
+++ b/src/test/ref/c-types.log
@@ -2275,9 +2275,10 @@ Allocated zp ZP_BYTE:24 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:25 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the different standard C types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3341,7 +3342,7 @@ Allocated (was zp ZP_WORD:22) zp ZP_WORD:14 [ memset::dst#2 memset::dst#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the different standard C types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4685,7 +4686,7 @@ Score: 2166
 
   // File Comments
 // Tests the different standard C types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-8bppcharstretch.log b/src/test/ref/c64dtv-8bppcharstretch.log
index 88c01a1f6..d1b40154f 100644
--- a/src/test/ref/c64dtv-8bppcharstretch.log
+++ b/src/test/ref/c64dtv-8bppcharstretch.log
@@ -1603,9 +1603,10 @@ Allocated zp ZP_BYTE:25 [ gfx_init_screen0::$2 ]
 Allocated zp ZP_BYTE:26 [ gfx_init_screen0::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2388,7 +2389,7 @@ Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:13 [ gfx_init_screen0::$1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3269,7 +3270,7 @@ Score: 75375
 
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-8bppchunkystretch.log b/src/test/ref/c64dtv-8bppchunkystretch.log
index 05f771a40..09de71eb9 100644
--- a/src/test/ref/c64dtv-8bppchunkystretch.log
+++ b/src/test/ref/c64dtv-8bppchunkystretch.log
@@ -1134,9 +1134,10 @@ Allocated zp ZP_WORD:14 [ gfx_init_chunky::$8 ]
 Allocated zp ZP_BYTE:16 [ gfx_init_chunky::c#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1691,7 +1692,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:7 [ gfx_init_chunky::$8 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2328,7 +2329,7 @@ Score: 19882
 
   // File Comments
 // C64DTV 8bpp charmode stretcher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-blitter-box.log b/src/test/ref/c64dtv-blitter-box.log
index 07fbe0008..33eea80f2 100644
--- a/src/test/ref/c64dtv-blitter-box.log
+++ b/src/test/ref/c64dtv-blitter-box.log
@@ -641,9 +641,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::$13 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fill a box on the screen using the blitter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -904,7 +905,7 @@ Uplifting [] best 348 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fill a box on the screen using the blitter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1247,7 +1248,7 @@ Score: 291
 
   // File Comments
 // Fill a box on the screen using the blitter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-blittermin.log b/src/test/ref/c64dtv-blittermin.log
index f79ed40df..60d23f54e 100644
--- a/src/test/ref/c64dtv-blittermin.log
+++ b/src/test/ref/c64dtv-blittermin.log
@@ -683,8 +683,9 @@ Allocated zp ZP_BYTE:2 [ main::r#2 main::r#1 ]
 Allocated zp ZP_BYTE:3 [ main::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1006,7 +1007,7 @@ Uplifting [] best 2515 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1390,7 +1391,7 @@ FINAL ASSEMBLER
 Score: 1553
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-color.log b/src/test/ref/c64dtv-color.log
index f5950e86a..549d2922f 100644
--- a/src/test/ref/c64dtv-color.log
+++ b/src/test/ref/c64dtv-color.log
@@ -329,9 +329,10 @@ Allocated zp ZP_BYTE:2 [ main::r#2 main::r#1 ]
 Allocated zp ZP_BYTE:3 [ main::c#2 main::c#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test C64DTV v2 256-colors and the 16-color redefinable palette
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -490,7 +491,7 @@ Uplifting [] best 11689 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test C64DTV v2 256-colors and the 16-color redefinable palette
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -691,7 +692,7 @@ Score: 10174
 
   // File Comments
 // Test C64DTV v2 256-colors and the 16-color redefinable palette
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-gfxexplorer.log b/src/test/ref/c64dtv-gfxexplorer.log
index 8411b6223..43eba9985 100644
--- a/src/test/ref/c64dtv-gfxexplorer.log
+++ b/src/test/ref/c64dtv-gfxexplorer.log
@@ -15133,9 +15133,10 @@ Allocated zp ZP_BYTE:341 [ gfx_init_screen0::$2 ]
 Allocated zp ZP_BYTE:342 [ gfx_init_screen0::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Interactive Explorer for C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -22544,7 +22545,7 @@ Allocated (was zp ZP_BYTE:340) zp ZP_BYTE:139 [ gfx_init_screen0::$1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Interactive Explorer for C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -30424,7 +30425,7 @@ Score: 10127070
 
   // File Comments
 // Interactive Explorer for C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/c64dtv-gfxmodes.log b/src/test/ref/c64dtv-gfxmodes.log
index 7a8827f7b..75007d7bc 100644
--- a/src/test/ref/c64dtv-gfxmodes.log
+++ b/src/test/ref/c64dtv-gfxmodes.log
@@ -14063,9 +14063,10 @@ Allocated zp ZP_BYTE:293 [ mode_stdchar::$30 ]
 Allocated zp ZP_BYTE:294 [ print_str_lines::ch#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Exploring C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -20970,7 +20971,7 @@ Allocated (was zp ZP_BYTE:291) zp ZP_BYTE:128 [ mode_stdchar::$28 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Exploring C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -28102,7 +28103,7 @@ Score: 2305541
 
   // File Comments
 // Exploring C64DTV Screen Modes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/call-parameter-autocast.log b/src/test/ref/call-parameter-autocast.log
index 20208ae48..7b40ea2d5 100644
--- a/src/test/ref/call-parameter-autocast.log
+++ b/src/test/ref/call-parameter-autocast.log
@@ -260,9 +260,10 @@ Allocated zp ZP_WORD:3 [ print::w#3 ]
 Allocated zp ZP_BYTE:5 [ print::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test auto-casting of call-parameters
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -384,7 +385,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ print::w#3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test auto-casting of call-parameters
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -540,7 +541,7 @@ Score: 86
 
   // File Comments
 // Test auto-casting of call-parameters
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/callconstparam.log b/src/test/ref/callconstparam.log
index e8928f521..d271edce3 100644
--- a/src/test/ref/callconstparam.log
+++ b/src/test/ref/callconstparam.log
@@ -251,11 +251,12 @@ Allocated zp ZP_BYTE:3 [ line::x#2 line::x#0 line::x#1 ]
 Allocated zp ZP_WORD:4 [ screen#10 screen#14 screen#11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Multiple calls with different (constant?) parameters should yield different values at runtime
 // Currently the same constant parameter is passed on every call.
 // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -378,7 +379,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Multiple calls with different (constant?) parameters should yield different values at runtime
 // Currently the same constant parameter is passed on every call.
 // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -535,7 +536,7 @@ Score: 348
 // Multiple calls with different (constant?) parameters should yield different values at runtime
 // Currently the same constant parameter is passed on every call.
 // Reason: Multiple versioned parameter constants x0#0, x0#1 are only output as a single constant in the ASM .const x0 = 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cast-deref.log b/src/test/ref/cast-deref.log
index 3a7bcf0d5..e2e9406bd 100644
--- a/src/test/ref/cast-deref.log
+++ b/src/test/ref/cast-deref.log
@@ -136,9 +136,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Example of NOP-casting a dereferenced signed byte to a byte
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -210,7 +211,7 @@ Uplifting [] best 288 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Example of NOP-casting a dereferenced signed byte to a byte
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -310,7 +311,7 @@ Score: 186
 
   // File Comments
 // Example of NOP-casting a dereferenced signed byte to a byte
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cast-not-needed-2.log b/src/test/ref/cast-not-needed-2.log
index 735dbe44e..230d5c599 100644
--- a/src/test/ref/cast-not-needed-2.log
+++ b/src/test/ref/cast-not-needed-2.log
@@ -226,9 +226,10 @@ Allocated zp ZP_WORD:2 [ main::getScreen1_return#0 ]
 Allocated zp ZP_WORD:4 [ main::spritePtr1_return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -306,7 +307,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::getS
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -421,7 +422,7 @@ Score: 48
 
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cast-not-needed-3.log b/src/test/ref/cast-not-needed-3.log
index a6884f56f..57f33fbfd 100644
--- a/src/test/ref/cast-not-needed-3.log
+++ b/src/test/ref/cast-not-needed-3.log
@@ -231,9 +231,10 @@ Allocated zp ZP_WORD:4 [ main::spritePtr1_$0#0 ]
 Allocated zp ZP_BYTE:6 [ main::spritePtr1_return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -317,7 +318,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ main::getS
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -437,7 +438,7 @@ Score: 49
 
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cast-not-needed.log b/src/test/ref/cast-not-needed.log
index 11c163476..8a96dcd33 100644
--- a/src/test/ref/cast-not-needed.log
+++ b/src/test/ref/cast-not-needed.log
@@ -120,9 +120,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -170,7 +171,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -243,7 +244,7 @@ Score: 12
 
   // File Comments
 // Tests a cast that is not needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cast-precedence-problem.log b/src/test/ref/cast-precedence-problem.log
index bbb5f5dc2..04e771d61 100644
--- a/src/test/ref/cast-precedence-problem.log
+++ b/src/test/ref/cast-precedence-problem.log
@@ -233,9 +233,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -311,7 +312,7 @@ Uplifting [] best 61 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -424,7 +425,7 @@ Score: 46
 
   // File Comments
 // Tests that casting inside constants in the output handles precedence between cast and + correctly - should generate the following KA-expression ($ff & sumw>>1)+1
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/casting.log b/src/test/ref/casting.log
index d73fd7db1..b597f6e59 100644
--- a/src/test/ref/casting.log
+++ b/src/test/ref/casting.log
@@ -362,8 +362,9 @@ Allocated zp ZP_BYTE:5 [ main::sb#0 ]
 Allocated zp ZP_BYTE:6 [ w::b2#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -520,7 +521,7 @@ Uplifting [] best 816 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -716,7 +717,7 @@ FINAL ASSEMBLER
 Score: 648
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/chargen.log b/src/test/ref/chargen.log
index e10367c5e..a0fa54d73 100644
--- a/src/test/ref/chargen.log
+++ b/src/test/ref/chargen.log
@@ -381,8 +381,9 @@ Allocated zp ZP_BYTE:7 [ main::c#2 ]
 Allocated zp ZP_BYTE:8 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -567,7 +568,7 @@ Uplifting [main] best 7232 combination zp ZP_BYTE:2 [ main::y#2 main::y#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -799,7 +800,7 @@ FINAL ASSEMBLER
 Score: 5627
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/chessboard.log b/src/test/ref/chessboard.log
index 67a38e61f..cf4b70afa 100644
--- a/src/test/ref/chessboard.log
+++ b/src/test/ref/chessboard.log
@@ -284,9 +284,10 @@ Allocated zp ZP_BYTE:7 [ main::column#2 main::column#1 ]
 Allocated zp ZP_BYTE:8 [ main::color#3 main::color#5 main::color#2 main::color#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Draws a chess board in the upper left corner of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -445,7 +446,7 @@ Uplifting [main] best 4863 combination zp ZP_BYTE:6 [ main::row#4 main::row#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Draws a chess board in the upper left corner of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -634,7 +635,7 @@ Score: 3861
 
   // File Comments
 // Draws a chess board in the upper left corner of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cia-timer-cyclecount.log b/src/test/ref/cia-timer-cyclecount.log
index 5a69a931c..dd06faa72 100644
--- a/src/test/ref/cia-timer-cyclecount.log
+++ b/src/test/ref/cia-timer-cyclecount.log
@@ -716,9 +716,10 @@ Allocated zp ZP_BYTE:29 [ print_byte_at::$2 ]
 Allocated zp ZP_DWORD:30 [ clock::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Counting cycles using a CIA timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1144,7 +1145,7 @@ Allocated (was zp ZP_DWORD:12) zp ZP_DWORD:9 [ clock::return#2 main::$1 clock::r
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Counting cycles using a CIA timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1585,7 +1586,7 @@ Score: 869
 
   // File Comments
 // Counting cycles using a CIA timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cia-timer-simple.log b/src/test/ref/cia-timer-simple.log
index 28b958114..380fe67c0 100644
--- a/src/test/ref/cia-timer-simple.log
+++ b/src/test/ref/cia-timer-simple.log
@@ -684,9 +684,10 @@ Allocated zp ZP_BYTE:21 [ print_byte_at::$2 ]
 Allocated zp ZP_DWORD:22 [ clock::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Setup and run a simple CIA-timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1071,7 +1072,7 @@ Allocated (was zp ZP_DWORD:12) zp ZP_DWORD:9 [ clock::return#2 print_dword_at::d
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Setup and run a simple CIA-timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1479,7 +1480,7 @@ Score: 455
 
   // File Comments
 // Setup and run a simple CIA-timer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/clobber-a-problem.log b/src/test/ref/clobber-a-problem.log
index 02cc18590..1dc86f4e6 100644
--- a/src/test/ref/clobber-a-problem.log
+++ b/src/test/ref/clobber-a-problem.log
@@ -244,8 +244,9 @@ Allocated zp ZP_BYTE:3 [ irq_raster_next#0 irq_raster_next#1 ]
 Allocated zp ZP_BYTE:4 [ irq::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -377,7 +378,7 @@ Removing interrupt register storage ldy #00 in SEG30 [16] return  - exit interru
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -537,7 +538,7 @@ FINAL ASSEMBLER
 Score: 159
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/comma-decl-for.log b/src/test/ref/comma-decl-for.log
index 443359d46..4e8578b2b 100644
--- a/src/test/ref/comma-decl-for.log
+++ b/src/test/ref/comma-decl-for.log
@@ -133,9 +133,10 @@ Allocated zp ZP_BYTE:2 [ main::j#2 main::j#1 ]
 Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests comma-separated declarations inside for()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -211,7 +212,7 @@ Uplifting [] best 303 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests comma-separated declarations inside for()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -317,7 +318,7 @@ Score: 201
 
   // File Comments
 // Tests comma-separated declarations inside for()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comma-decl.log b/src/test/ref/comma-decl.log
index d65bad555..90fd818b4 100644
--- a/src/test/ref/comma-decl.log
+++ b/src/test/ref/comma-decl.log
@@ -131,9 +131,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests comma-separated declarations
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -190,7 +191,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests comma-separated declarations
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -272,7 +273,7 @@ Score: 24
 
   // File Comments
 // Tests comma-separated declarations
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comma-expr-1.log b/src/test/ref/comma-expr-1.log
index 885233aa1..ce2b6603c 100644
--- a/src/test/ref/comma-expr-1.log
+++ b/src/test/ref/comma-expr-1.log
@@ -106,9 +106,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple comma-expression (in parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -156,7 +157,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple comma-expression (in parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -229,7 +230,7 @@ Score: 12
 
   // File Comments
 // Tests simple comma-expression (in parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comma-expr-2.log b/src/test/ref/comma-expr-2.log
index 85f149eb7..1c43b1424 100644
--- a/src/test/ref/comma-expr-2.log
+++ b/src/test/ref/comma-expr-2.log
@@ -93,9 +93,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple comma-expressions (without parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -142,7 +143,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple comma-expressions (without parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -212,7 +213,7 @@ Score: 12
 
   // File Comments
 // Tests simple comma-expressions (without parenthesis)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comma-expr-for.log b/src/test/ref/comma-expr-for.log
index 32e583477..1f0fe9b98 100644
--- a/src/test/ref/comma-expr-for.log
+++ b/src/test/ref/comma-expr-for.log
@@ -137,9 +137,10 @@ Allocated zp ZP_BYTE:2 [ main::j#2 main::j#1 ]
 Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests comma-expressions in for()-statement
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -215,7 +216,7 @@ Uplifting [] best 303 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests comma-expressions in for()-statement
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -321,7 +322,7 @@ Score: 201
 
   // File Comments
 // Tests comma-expressions in for()-statement
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comparison-rewriting-pointer.log b/src/test/ref/comparison-rewriting-pointer.log
index 1c2be1b5f..e025e331a 100644
--- a/src/test/ref/comparison-rewriting-pointer.log
+++ b/src/test/ref/comparison-rewriting-pointer.log
@@ -185,9 +185,10 @@ Allocated zp ZP_WORD:2 [ main::sc#2 main::sc#1 ]
 Allocated zp ZP_WORD:4 [ main::cc#2 main::cc#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test rewriting of constant comparisons for pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -306,7 +307,7 @@ Uplifting [] best 1198 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test rewriting of constant comparisons for pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -466,7 +467,7 @@ Score: 1036
 
   // File Comments
 // Test rewriting of constant comparisons for pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/comparison-rewriting.log b/src/test/ref/comparison-rewriting.log
index 467bf0d10..6ae119034 100644
--- a/src/test/ref/comparison-rewriting.log
+++ b/src/test/ref/comparison-rewriting.log
@@ -485,9 +485,10 @@ Allocated zp ZP_BYTE:7 [ main::i1#10 main::i1#1 ]
 Allocated zp ZP_BYTE:8 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test rewriting of constant comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -732,7 +733,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::screen#4 main::screen#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test rewriting of constant comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1016,7 +1017,7 @@ Score: 1931
 
   // File Comments
 // Test rewriting of constant comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex-conditional-problem.log b/src/test/ref/complex-conditional-problem.log
index 25b8bd352..4cfbeaef8 100644
--- a/src/test/ref/complex-conditional-problem.log
+++ b/src/test/ref/complex-conditional-problem.log
@@ -180,9 +180,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::key#2 main::key#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test to provoke Exception when using complex || condition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -263,7 +264,7 @@ Uplifting [] best 382 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test to provoke Exception when using complex || condition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -382,7 +383,7 @@ Score: 220
 
   // File Comments
 // Test to provoke Exception when using complex || condition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex/clearscreen/clearscreen.log b/src/test/ref/complex/clearscreen/clearscreen.log
index 2acd89296..bf6acecbb 100644
--- a/src/test/ref/complex/clearscreen/clearscreen.log
+++ b/src/test/ref/complex/clearscreen/clearscreen.log
@@ -5182,9 +5182,10 @@ Allocated zp ZP_BYTE:184 [ processChars::$39 ]
 Allocated zp ZP_BYTE:185 [ processChars::$33 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Clears start screen throwing around the letters (by turning them into sprites)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8231,7 +8232,7 @@ Allocated (was zp ZP_BYTE:176) zp ZP_BYTE:79 [ processChars::ypos#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Clears start screen throwing around the letters (by turning them into sprites)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -11147,7 +11148,7 @@ Score: 1113582
 
   // File Comments
 // Clears start screen throwing around the letters (by turning them into sprites)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex/medusa/medusa.log b/src/test/ref/complex/medusa/medusa.log
index 7e1ba8de3..76dd0a2a6 100644
--- a/src/test/ref/complex/medusa/medusa.log
+++ b/src/test/ref/complex/medusa/medusa.log
@@ -384,10 +384,11 @@ Allocated zp ZP_WORD:8 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
 Allocated zp ZP_WORD:10 [ memcpy::src_end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Display  MEDUSA PETSCII by Buzz_clik
 // https://csdb.dk/release/?id=178673
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -566,7 +567,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Display  MEDUSA PETSCII by Buzz_clik
 // https://csdb.dk/release/?id=178673
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -792,7 +793,7 @@ Score: 797
   // File Comments
 // Display  MEDUSA PETSCII by Buzz_clik
 // https://csdb.dk/release/?id=178673
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex/splines/truetype-splines.log b/src/test/ref/complex/splines/truetype-splines.log
index a799cf636..96dd5a635 100644
--- a/src/test/ref/complex/splines/truetype-splines.log
+++ b/src/test/ref/complex/splines/truetype-splines.log
@@ -8002,9 +8002,10 @@ Allocated zp ZP_BYTE:310 [ mulf_init::$10 ]
 Allocated zp ZP_BYTE:311 [ mulf_init::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Show a few simple splines using the splines library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -12185,7 +12186,7 @@ Allocated (was zp ZP_BYTE:305) zp ZP_BYTE:93 [ bitmap_init::$7 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Show a few simple splines using the splines library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -15840,7 +15841,7 @@ Score: 678994
 
   // File Comments
 // Show a few simple splines using the splines library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex/tetris/test-sprites.log b/src/test/ref/complex/tetris/test-sprites.log
index 07c3a8eea..b92c93018 100644
--- a/src/test/ref/complex/tetris/test-sprites.log
+++ b/src/test/ref/complex/tetris/test-sprites.log
@@ -2136,8 +2136,9 @@ Allocated zp ZP_BYTE:25 [ sprites_irq::ptr#1 ]
 Allocated zp ZP_BYTE:26 [ sprites_irq::ptr#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3015,7 +3016,7 @@ Removing interrupt register storage ldy #00 in SEG166 [98] return  - exit interr
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4000,7 +4001,7 @@ FINAL ASSEMBLER
 Score: 11662
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/complex/tetris/tetris.log b/src/test/ref/complex/tetris/tetris.log
index 36bdc846b..fd8244bd2 100644
--- a/src/test/ref/complex/tetris/tetris.log
+++ b/src/test/ref/complex/tetris/tetris.log
@@ -13834,11 +13834,12 @@ Allocated zp ZP_BYTE:222 [ sprites_irq::ptr#1 ]
 Allocated zp ZP_BYTE:223 [ sprites_irq::ptr#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tetris Game for the Commodore 64
 // The tetris game tries to match NES tetris gameplay pretty closely
 // Source: https://meatfighter.com/nintendotetrisai/
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -18973,7 +18974,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Tetris Game for the Commodore 64
 // The tetris game tries to match NES tetris gameplay pretty closely
 // Source: https://meatfighter.com/nintendotetrisai/
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -24454,7 +24455,7 @@ Score: 3353852
 // Tetris Game for the Commodore 64
 // The tetris game tries to match NES tetris gameplay pretty closely
 // Source: https://meatfighter.com/nintendotetrisai/
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-integer-0.log b/src/test/ref/condition-integer-0.log
index 5eeb9194f..b6b498869 100644
--- a/src/test/ref/condition-integer-0.log
+++ b/src/test/ref/condition-integer-0.log
@@ -383,10 +383,11 @@ Allocated zp ZP_WORD:4 [ main::i1#2 main::i1#1 ]
 Allocated zp ZP_BYTE:6 [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '+ ++ ++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -579,7 +580,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '+ ++ ++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -817,7 +818,7 @@ Score: 862
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '+ ++ ++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-integer-1.log b/src/test/ref/condition-integer-1.log
index 4b595b204..fdd1f94dc 100644
--- a/src/test/ref/condition-integer-1.log
+++ b/src/test/ref/condition-integer-1.log
@@ -385,10 +385,11 @@ Allocated zp ZP_WORD:4 [ main::i1#2 main::i1#1 ]
 Allocated zp ZP_BYTE:6 [ main::idx#12 main::idx#17 main::idx#5 main::idx#6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '0 0 0' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -580,7 +581,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '0 0 0' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -818,7 +819,7 @@ Score: 862
   // File Comments
 // Tests using integer conditions in if()
 // This should produce '0 0 0' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-integer-2.log b/src/test/ref/condition-integer-2.log
index 9122ce630..adcdd7a69 100644
--- a/src/test/ref/condition-integer-2.log
+++ b/src/test/ref/condition-integer-2.log
@@ -309,10 +309,11 @@ Allocated zp ZP_BYTE:6 [ main::k#2 main::k#1 ]
 Allocated zp ZP_BYTE:7 [ idx#12 idx#4 idx#13 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests using integer conditions in while() / for() / do..while
 // This should produce 'ba ba ba' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -484,7 +485,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests using integer conditions in while() / for() / do..while
 // This should produce 'ba ba ba' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -689,7 +690,7 @@ Score: 599
   // File Comments
 // Tests using integer conditions in while() / for() / do..while
 // This should produce 'ba ba ba' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-integer-3.log b/src/test/ref/condition-integer-3.log
index 1a7bb00d5..f5423b27a 100644
--- a/src/test/ref/condition-integer-3.log
+++ b/src/test/ref/condition-integer-3.log
@@ -210,10 +210,11 @@ Allocated zp ZP_BYTE:3 [ main::idx#2 main::idx#1 ]
 Allocated zp ZP_BYTE:4 [ main::j#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests using integer conditions in ternary operator
 // This should produce '++0++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -315,7 +316,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests using integer conditions in ternary operator
 // This should produce '++0++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -452,7 +453,7 @@ Score: 296
   // File Comments
 // Tests using integer conditions in ternary operator
 // This should produce '++0++' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-integer-4.log b/src/test/ref/condition-integer-4.log
index a44725abd..26260de8d 100644
--- a/src/test/ref/condition-integer-4.log
+++ b/src/test/ref/condition-integer-4.log
@@ -411,10 +411,11 @@ Allocated zp ZP_BYTE:8 [ main::$11 ]
 Allocated zp ZP_BYTE:9 [ main::$12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests using integer conditions in && and || operator
 // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -629,7 +630,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests using integer conditions in && and || operator
 // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -863,7 +864,7 @@ Score: 1121
   // File Comments
 // Tests using integer conditions in && and || operator
 // This should produce '01010101', '00110011', '00010001', '01110111' at the top of the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/condition-type-mismatch.log b/src/test/ref/condition-type-mismatch.log
index cb79c9bee..9889c96f0 100644
--- a/src/test/ref/condition-type-mismatch.log
+++ b/src/test/ref/condition-type-mismatch.log
@@ -112,9 +112,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a condition type mismatch (not boolean)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -165,7 +166,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a condition type mismatch (not boolean)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Score: 12
 
   // File Comments
 // Tests a condition type mismatch (not boolean)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/consolidate-array-index-problem.log b/src/test/ref/consolidate-array-index-problem.log
index 6f96a0c7a..9c8683331 100644
--- a/src/test/ref/consolidate-array-index-problem.log
+++ b/src/test/ref/consolidate-array-index-problem.log
@@ -158,8 +158,9 @@ Allocated zp ZP_BYTE:2 [ main::x#2 main::x#1 ]
 Allocated zp ZP_BYTE:3 [ main::y#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -245,7 +246,7 @@ Uplifting [] best 393 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -357,7 +358,7 @@ FINAL ASSEMBLER
 Score: 291
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/consolidate-constant-problem.log b/src/test/ref/consolidate-constant-problem.log
index b55271fbe..679cbc230 100644
--- a/src/test/ref/consolidate-constant-problem.log
+++ b/src/test/ref/consolidate-constant-problem.log
@@ -226,8 +226,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -292,7 +293,7 @@ Uplifting [] best 78 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -388,7 +389,7 @@ FINAL ASSEMBLER
 Score: 24
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-condition.log b/src/test/ref/const-condition.log
index f27be950f..0aa68f00b 100644
--- a/src/test/ref/const-condition.log
+++ b/src/test/ref/const-condition.log
@@ -103,9 +103,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Ensure that if()'s with constant comparisons are identified and eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -156,7 +157,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Ensure that if()'s with constant comparisons are identified and eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -232,7 +233,7 @@ Score: 12
 
   // File Comments
 // Ensure that if()'s with constant comparisons are identified and eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-early-identification.log b/src/test/ref/const-early-identification.log
index 7f9a60b4b..b27260ca1 100644
--- a/src/test/ref/const-early-identification.log
+++ b/src/test/ref/const-early-identification.log
@@ -184,9 +184,10 @@ Allocated zp ZP_BYTE:2 [ A#0 ]
 Allocated zp ZP_BYTE:3 [ sub::D#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that constants are identified early
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -277,7 +278,7 @@ Uplifting [] best 77 combination zp ZP_BYTE:2 [ A#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that constants are identified early
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -389,7 +390,7 @@ Score: 71
 
   // File Comments
 // Tests that constants are identified early
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-identification.log b/src/test/ref/const-identification.log
index 4a1c520dc..725e61a64 100644
--- a/src/test/ref/const-identification.log
+++ b/src/test/ref/const-identification.log
@@ -336,8 +336,9 @@ Allocated zp ZP_BYTE:5 [ plot::idx#0 ]
 Allocated zp ZP_BYTE:6 [ plot::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -491,7 +492,7 @@ Uplifting [line] best 3018 combination reg byte y [ line::x#2 line::x#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -684,7 +685,7 @@ FINAL ASSEMBLER
 Score: 1713
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-if-problem.log b/src/test/ref/const-if-problem.log
index 211673895..c93bd8851 100644
--- a/src/test/ref/const-if-problem.log
+++ b/src/test/ref/const-if-problem.log
@@ -151,9 +151,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Constant if() contains call to (unused) function - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -204,7 +205,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Constant if() contains call to (unused) function - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -281,7 +282,7 @@ Score: 12
 
   // File Comments
 // Constant if() contains call to (unused) function - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-int-cast-problem.log b/src/test/ref/const-int-cast-problem.log
index 63ce50a70..1e45dfe3f 100644
--- a/src/test/ref/const-int-cast-problem.log
+++ b/src/test/ref/const-int-cast-problem.log
@@ -129,9 +129,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a problem with converting casted constant numbers to fixed type constant integers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -211,7 +212,7 @@ Uplifting [] best 343 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a problem with converting casted constant numbers to fixed type constant integers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -315,7 +316,7 @@ Score: 241
 
   // File Comments
 // Test a problem with converting casted constant numbers to fixed type constant integers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-mult-div.log b/src/test/ref/const-mult-div.log
index 70a193c64..b21765fb2 100644
--- a/src/test/ref/const-mult-div.log
+++ b/src/test/ref/const-mult-div.log
@@ -90,9 +90,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a constant with multiplication and division
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -139,7 +140,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a constant with multiplication and division
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -209,7 +210,7 @@ Score: 12
 
   // File Comments
 // Test a constant with multiplication and division
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-param.log b/src/test/ref/const-param.log
index c06dc9e15..5458e8441 100644
--- a/src/test/ref/const-param.log
+++ b/src/test/ref/const-param.log
@@ -258,9 +258,10 @@ Allocated zp ZP_BYTE:8 [ main::$2 ]
 Allocated zp ZP_BYTE:9 [ sum::return#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that the compiler optimizes when the same parameter value is passed into a function in all calls
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -396,7 +397,7 @@ Uplifting [sum] best 79 combination reg byte a [ sum::return#3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that the compiler optimizes when the same parameter value is passed into a function in all calls
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -552,7 +553,7 @@ Score: 52
 
   // File Comments
 // Test that the compiler optimizes when the same parameter value is passed into a function in all calls
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-pointer.log b/src/test/ref/const-pointer.log
index 7eb72bd57..544aa29ef 100644
--- a/src/test/ref/const-pointer.log
+++ b/src/test/ref/const-pointer.log
@@ -126,9 +126,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 //Test that constant pointers are detected correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -179,7 +180,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 //Test that constant pointers are detected correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -257,7 +258,7 @@ Score: 12
 
   // File Comments
 //Test that constant pointers are detected correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-signed-promotion.log b/src/test/ref/const-signed-promotion.log
index a8e70cfc0..c1ea2ab97 100644
--- a/src/test/ref/const-signed-promotion.log
+++ b/src/test/ref/const-signed-promotion.log
@@ -166,9 +166,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -260,7 +261,7 @@ Uplifting [] best 412 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -379,7 +380,7 @@ Score: 307
 
   // File Comments
 // Test fragment promotion of a constant (400) to signed word even if it also matches an unsigned word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/const-word-pointer.log b/src/test/ref/const-word-pointer.log
index 5ac39cf08..6c81b09be 100644
--- a/src/test/ref/const-word-pointer.log
+++ b/src/test/ref/const-word-pointer.log
@@ -157,10 +157,11 @@ Allocated zp ZP_BYTE:6 [ main::$3 ]
 Allocated zp ZP_BYTE:7 [ main::$4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a constant word pointers (pointing to a word placed on zeropage).
 // The result when running is "CML!" on the screen.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -251,7 +252,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a constant word pointers (pointing to a word placed on zeropage).
 // The result when running is "CML!" on the screen.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -357,7 +358,7 @@ Score: 60
   // File Comments
 // Test a constant word pointers (pointing to a word placed on zeropage).
 // The result when running is "CML!" on the screen.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/constabsmin.log b/src/test/ref/constabsmin.log
index 895b36833..859d35e5c 100644
--- a/src/test/ref/constabsmin.log
+++ b/src/test/ref/constabsmin.log
@@ -78,8 +78,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -124,7 +125,7 @@ Uplifting [] best 27 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -190,7 +191,7 @@ FINAL ASSEMBLER
 Score: 12
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/constant-string-concat-0.log b/src/test/ref/constant-string-concat-0.log
index 72dbe8029..cd9c31dcc 100644
--- a/src/test/ref/constant-string-concat-0.log
+++ b/src/test/ref/constant-string-concat-0.log
@@ -126,9 +126,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -203,7 +204,7 @@ Uplifting [] best 333 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -304,7 +305,7 @@ Score: 231
 
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/constant-string-concat.log b/src/test/ref/constant-string-concat.log
index 8734d989b..7737bd5f9 100644
--- a/src/test/ref/constant-string-concat.log
+++ b/src/test/ref/constant-string-concat.log
@@ -125,9 +125,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ Uplifting [] best 288 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -299,7 +300,7 @@ Score: 186
 
   // File Comments
 // Concatenates string constants in different ways
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/constantmin.log b/src/test/ref/constantmin.log
index 323131c18..0af9f60f0 100644
--- a/src/test/ref/constantmin.log
+++ b/src/test/ref/constantmin.log
@@ -188,8 +188,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -270,7 +271,7 @@ Uplifting [] best 275 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -379,7 +380,7 @@ FINAL ASSEMBLER
 Score: 173
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/constants.log b/src/test/ref/constants.log
index cdb47afe1..d0901a084 100644
--- a/src/test/ref/constants.log
+++ b/src/test/ref/constants.log
@@ -1604,8 +1604,9 @@ Allocated zp ZP_BYTE:15 [ assert_byte::c#3 ]
 Allocated zp ZP_WORD:16 [ memset::dst#2 memset::dst#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2266,7 +2267,7 @@ Allocated (was zp ZP_WORD:16) zp ZP_WORD:10 [ memset::dst#2 memset::dst#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3079,7 +3080,7 @@ FINAL ASSEMBLER
 Score: 1852
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cordic-atan2-16-ref.log b/src/test/ref/cordic-atan2-16-ref.log
index 35437e73b..35df30258 100644
--- a/src/test/ref/cordic-atan2-16-ref.log
+++ b/src/test/ref/cordic-atan2-16-ref.log
@@ -2425,10 +2425,11 @@ Allocated zp ZP_BYTE:67 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:68 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3573,7 +3574,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4826,7 +4827,7 @@ Score: 1044367
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cordic-atan2-16.log b/src/test/ref/cordic-atan2-16.log
index 7ae7ed32d..829eac88e 100644
--- a/src/test/ref/cordic-atan2-16.log
+++ b/src/test/ref/cordic-atan2-16.log
@@ -1844,10 +1844,11 @@ Allocated zp ZP_BYTE:49 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:50 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2713,7 +2714,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3669,7 +3670,7 @@ Score: 1038737
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cordic-atan2-clear.log b/src/test/ref/cordic-atan2-clear.log
index 0fe64b59e..d3273dd89 100644
--- a/src/test/ref/cordic-atan2-clear.log
+++ b/src/test/ref/cordic-atan2-clear.log
@@ -2056,10 +2056,11 @@ Allocated zp ZP_BYTE:60 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:61 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3096,7 +3097,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4208,7 +4209,7 @@ Score: 1056409
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/cordic-atan2.log b/src/test/ref/cordic-atan2.log
index 28b992c8c..29c917c33 100644
--- a/src/test/ref/cordic-atan2.log
+++ b/src/test/ref/cordic-atan2.log
@@ -1527,10 +1527,11 @@ Allocated zp ZP_BYTE:29 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:30 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2246,7 +2247,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3052,7 +3053,7 @@ Score: 232352
   // File Comments
 // Find atan2(x, y) using the CORDIC method
 // See http://bsvi.ru/uploads/CORDIC--_10EBA/cordic.pdf
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/deep-nesting.log b/src/test/ref/deep-nesting.log
index 82d37a43c..cd540de22 100644
--- a/src/test/ref/deep-nesting.log
+++ b/src/test/ref/deep-nesting.log
@@ -7179,9 +7179,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that the compiler handles deep nesting well -- mainly a performance issue.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8731,7 +8732,7 @@ Uplifting [] best 1557 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that the compiler handles deep nesting well -- mainly a performance issue.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -10905,7 +10906,7 @@ Score: 1212
 
   // File Comments
 // Test that the compiler handles deep nesting well -- mainly a performance issue.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/default-font.log b/src/test/ref/default-font.log
index 0e035b163..f7047412a 100644
--- a/src/test/ref/default-font.log
+++ b/src/test/ref/default-font.log
@@ -431,9 +431,10 @@ Allocated zp ZP_BYTE:6 [ main::y#2 main::y#1 ]
 Allocated zp ZP_WORD:7 [ memset::dst#2 memset::dst#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Show default font on screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -631,7 +632,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ memset::dst#2 memset::dst#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Show default font on screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -879,7 +880,7 @@ Score: 4693
 
   // File Comments
 // Show default font on screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/deref-to-derefidx-2.log b/src/test/ref/deref-to-derefidx-2.log
index 2a3458e9f..71b31d71c 100644
--- a/src/test/ref/deref-to-derefidx-2.log
+++ b/src/test/ref/deref-to-derefidx-2.log
@@ -232,9 +232,10 @@ Allocated zp ZP_BYTE:4 [ screen_idx#10 screen_idx#11 ]
 Allocated zp ZP_BYTE:5 [ print::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -346,7 +347,7 @@ Uplifting [] best 107 combination zp ZP_BYTE:4 [ screen_idx#10 screen_idx#11 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -489,7 +490,7 @@ Score: 86
 
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b - even when a noop-cast is needed
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/deref-to-derefidx.log b/src/test/ref/deref-to-derefidx.log
index dd4639d30..b2c9ed45f 100644
--- a/src/test/ref/deref-to-derefidx.log
+++ b/src/test/ref/deref-to-derefidx.log
@@ -214,9 +214,10 @@ Allocated zp ZP_WORD:2 [ print::m#2 ]
 Allocated zp ZP_BYTE:4 [ idx#10 idx#11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b]
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -315,7 +316,7 @@ Uplifting [main] best 81 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b]
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -447,7 +448,7 @@ Score: 60
 
   // File Comments
 // Tests optimizing derefs of *(ptr+b) to ptr[b]
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/derefidx-word-0.log b/src/test/ref/derefidx-word-0.log
index 9eefb3a1b..7860c2f0e 100644
--- a/src/test/ref/derefidx-word-0.log
+++ b/src/test/ref/derefidx-word-0.log
@@ -128,9 +128,10 @@ Allocated zp ZP_WORD:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_WORD:4 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that array-indexing by a word variable is turned into pointer addition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -225,7 +226,7 @@ Uplifting [] best 838 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that array-indexing by a word variable is turned into pointer addition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -353,7 +354,7 @@ Score: 716
 
   // File Comments
 // Tests that array-indexing by a word variable is turned into pointer addition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/derefidx-word-1.log b/src/test/ref/derefidx-word-1.log
index 8b342aea0..720f3f21c 100644
--- a/src/test/ref/derefidx-word-1.log
+++ b/src/test/ref/derefidx-word-1.log
@@ -82,9 +82,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that array-indexing by a constant word is turned into a constant pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -130,7 +131,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that array-indexing by a constant word is turned into a constant pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -197,7 +198,7 @@ Score: 12
 
   // File Comments
 // Tests that array-indexing by a constant word is turned into a constant pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/derefidx-word-2.log b/src/test/ref/derefidx-word-2.log
index 40f6a17c8..08d93d414 100644
--- a/src/test/ref/derefidx-word-2.log
+++ b/src/test/ref/derefidx-word-2.log
@@ -133,9 +133,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -206,7 +207,7 @@ Uplifting [] best 263 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -303,7 +304,7 @@ Score: 161
 
   // File Comments
 // Tests that array-indexing by a word variable that is a sum of a constant word and a byte is turned back into derefidx
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/divide-2s.log b/src/test/ref/divide-2s.log
index fd8183aae..d56cfb0da 100644
--- a/src/test/ref/divide-2s.log
+++ b/src/test/ref/divide-2s.log
@@ -248,9 +248,10 @@ Allocated zp ZP_BYTE:6 [ main::sb#0 ]
 Allocated zp ZP_BYTE:7 [ main::$12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Check that division by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -387,7 +388,7 @@ Uplifting [main] best 763 combination reg byte a [ main::$12 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Check that division by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -523,7 +524,7 @@ Score: 661
 
   // File Comments
 // Check that division by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/double-assignment.log b/src/test/ref/double-assignment.log
index c532b6951..3a4f5f962 100644
--- a/src/test/ref/double-assignment.log
+++ b/src/test/ref/double-assignment.log
@@ -111,9 +111,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that a double-assignment works.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -164,7 +165,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that a double-assignment works.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -240,7 +241,7 @@ Score: 16
 
   // File Comments
 // Test that a double-assignment works.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/double-import.log b/src/test/ref/double-import.log
index c7e52dd71..db79a225d 100644
--- a/src/test/ref/double-import.log
+++ b/src/test/ref/double-import.log
@@ -83,8 +83,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -130,7 +131,7 @@ Uplifting [] best 27 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ FINAL ASSEMBLER
 Score: 12
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/double-indexing-arrays.log b/src/test/ref/double-indexing-arrays.log
index cb0901b73..3608b3768 100644
--- a/src/test/ref/double-indexing-arrays.log
+++ b/src/test/ref/double-indexing-arrays.log
@@ -334,9 +334,10 @@ Complete equivalence classes
 [ main::x#2 main::x#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that constant offset indexing into arrays is handled correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -447,7 +448,7 @@ Uplifting [] best 1368 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that constant offset indexing into arrays is handled correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -588,7 +589,7 @@ Score: 1266
 
   // File Comments
 // Tests that constant offset indexing into arrays is handled correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/duplicate-loop-problem.log b/src/test/ref/duplicate-loop-problem.log
index 49210bb4b..a514a49d1 100644
--- a/src/test/ref/duplicate-loop-problem.log
+++ b/src/test/ref/duplicate-loop-problem.log
@@ -163,10 +163,11 @@ Allocated zp ZP_BYTE:2 [ key#1 ]
 Allocated zp ZP_BYTE:3 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Duplicate Loop Problem from Richard-William Loerakker
 // Resulted in infinite loop in loop depth analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -238,7 +239,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Duplicate Loop Problem from Richard-William Loerakker
 // Resulted in infinite loop in loop depth analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -340,7 +341,7 @@ Score: 1730
   // File Comments
 // Duplicate Loop Problem from Richard-William Loerakker
 // Resulted in infinite loop in loop depth analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/dword.log b/src/test/ref/dword.log
index 772055b56..87b852a67 100644
--- a/src/test/ref/dword.log
+++ b/src/test/ref/dword.log
@@ -155,8 +155,9 @@ Allocated zp ZP_DWORD:3 [ main::b#0 ]
 Allocated zp ZP_BYTE:7 [ main::c#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -251,7 +252,7 @@ Allocated (was zp ZP_DWORD:3) zp ZP_DWORD:2 [ main::b#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -372,7 +373,7 @@ FINAL ASSEMBLER
 Score: 471
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/emptyblock-error.log b/src/test/ref/emptyblock-error.log
index 2a7d8b40c..938b29c16 100644
--- a/src/test/ref/emptyblock-error.log
+++ b/src/test/ref/emptyblock-error.log
@@ -210,9 +210,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Error cleaning up unused blocks
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -300,7 +301,7 @@ Uplifting [] best 8929 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Error cleaning up unused blocks
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -425,7 +426,7 @@ Score: 8551
 
   // File Comments
 // Error cleaning up unused blocks
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-0.log b/src/test/ref/enum-0.log
index e6d95373b..57bd786f8 100644
--- a/src/test/ref/enum-0.log
+++ b/src/test/ref/enum-0.log
@@ -83,9 +83,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - two-value enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -134,7 +135,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - two-value enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -206,7 +207,7 @@ Score: 12
 
   // File Comments
 // Test of simple enum - two-value enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-1.log b/src/test/ref/enum-1.log
index 4472283df..09dcb1c50 100644
--- a/src/test/ref/enum-1.log
+++ b/src/test/ref/enum-1.log
@@ -84,9 +84,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - three-value enum with specified integer values and increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -135,7 +136,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - three-value enum with specified integer values and increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -208,7 +209,7 @@ Score: 12
 
   // File Comments
 // Test of simple enum - three-value enum with specified integer values and increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-2.log b/src/test/ref/enum-2.log
index 8819bb62a..9f2002770 100644
--- a/src/test/ref/enum-2.log
+++ b/src/test/ref/enum-2.log
@@ -84,9 +84,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - char values with increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -135,7 +136,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - char values with increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -208,7 +209,7 @@ Score: 12
 
   // File Comments
 // Test of simple enum - char values with increment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-3.log b/src/test/ref/enum-3.log
index cf0eeb61d..60df54664 100644
--- a/src/test/ref/enum-3.log
+++ b/src/test/ref/enum-3.log
@@ -86,9 +86,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - value with complex calculation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -137,7 +138,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - value with complex calculation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -210,7 +211,7 @@ Score: 12
 
   // File Comments
 // Test of simple enum - value with complex calculation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-4.log b/src/test/ref/enum-4.log
index 7d24a0bd9..ce65a4066 100644
--- a/src/test/ref/enum-4.log
+++ b/src/test/ref/enum-4.log
@@ -81,9 +81,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -130,7 +131,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -200,7 +201,7 @@ Score: 12
 
   // File Comments
 // Test of simple enum - inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-5.log b/src/test/ref/enum-5.log
index f35c22b55..dc1fe0ae6 100644
--- a/src/test/ref/enum-5.log
+++ b/src/test/ref/enum-5.log
@@ -121,9 +121,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - multiple inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -188,7 +189,7 @@ Uplifting [] best 48 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - multiple inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -281,7 +282,7 @@ Score: 30
 
   // File Comments
 // Test of simple enum - multiple inline enum definitions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-6.log b/src/test/ref/enum-6.log
index dc211b62c..86b5786e7 100644
--- a/src/test/ref/enum-6.log
+++ b/src/test/ref/enum-6.log
@@ -99,9 +99,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - anonymous enum definition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -153,7 +154,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - anonymous enum definition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -228,7 +229,7 @@ Score: 18
 
   // File Comments
 // Test of simple enum - anonymous enum definition
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-7.log b/src/test/ref/enum-7.log
index ff72a4a8d..bff05f52d 100644
--- a/src/test/ref/enum-7.log
+++ b/src/test/ref/enum-7.log
@@ -118,9 +118,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - struct with enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -176,7 +177,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - struct with enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -256,7 +257,7 @@ Score: 18
 
   // File Comments
 // Test of simple enum - struct with enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/enum-8.log b/src/test/ref/enum-8.log
index f5de2db2d..cd665094f 100644
--- a/src/test/ref/enum-8.log
+++ b/src/test/ref/enum-8.log
@@ -120,9 +120,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test of simple enum - struct with inline anonymous enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -178,7 +179,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test of simple enum - struct with inline anonymous enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -256,7 +257,7 @@ Score: 18
 
   // File Comments
 // Test of simple enum - struct with inline anonymous enum
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/euclid-3.log b/src/test/ref/euclid-3.log
index ff77e0788..512febf42 100644
--- a/src/test/ref/euclid-3.log
+++ b/src/test/ref/euclid-3.log
@@ -1227,13 +1227,14 @@ Allocated zp ZP_BYTE:15 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:16 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 /*
  * Find least common denominator using subtraction-based Euclidian algorithm
  * See https://en.wikipedia.org/wiki/Euclidean_algorithm
  * Based on facebook post from
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1785,7 +1786,7 @@ ASSEMBLER BEFORE OPTIMIZATION
  * See https://en.wikipedia.org/wiki/Euclidean_algorithm
  * Based on facebook post from
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2446,7 +2447,7 @@ Score: 1577
  * See https://en.wikipedia.org/wiki/Euclidean_algorithm
  * Based on facebook post from
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/euclid-problem-2.log b/src/test/ref/euclid-problem-2.log
index 32268805a..9a7a3d027 100644
--- a/src/test/ref/euclid-problem-2.log
+++ b/src/test/ref/euclid-problem-2.log
@@ -465,10 +465,11 @@ Allocated zp ZP_BYTE:10 [ euclid::return#3 ]
 Allocated zp ZP_BYTE:11 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -683,7 +684,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -925,7 +926,7 @@ Score: 472
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/euclid-problem.log b/src/test/ref/euclid-problem.log
index 3578b491c..e0dbc1627 100644
--- a/src/test/ref/euclid-problem.log
+++ b/src/test/ref/euclid-problem.log
@@ -192,10 +192,11 @@ Allocated zp ZP_BYTE:2 [ main::a#2 main::a#1 ]
 Allocated zp ZP_BYTE:3 [ main::b#2 main::b#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -301,7 +302,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -443,7 +444,7 @@ Score: 463
   // File Comments
 // Demonstrates a problem where wrong alive ranges result in clobbering an alive variable
 // The compiler does not realize that A is alive in the statement b=b-a - and thus can clobber it.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/3d/3d.log b/src/test/ref/examples/3d/3d.log
index ae6df0b7c..c8a33310f 100644
--- a/src/test/ref/examples/3d/3d.log
+++ b/src/test/ref/examples/3d/3d.log
@@ -4719,12 +4719,13 @@ Allocated zp ZP_WORD:97 [ debug_print_init::$62 ]
 Allocated zp ZP_WORD:99 [ debug_print_init::$65 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // 3D Rotation using a Rotation Matrix
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7359,7 +7360,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -10055,7 +10056,7 @@ Score: 66016
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/3d/perspective.log b/src/test/ref/examples/3d/perspective.log
index 498ebc075..18e08b32a 100644
--- a/src/test/ref/examples/3d/perspective.log
+++ b/src/test/ref/examples/3d/perspective.log
@@ -1698,12 +1698,13 @@ Allocated zp ZP_BYTE:22 [ mulf_init::$8 ]
 Allocated zp ZP_BYTE:23 [ mulf_init::$10 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // 3D Rotation using a Rotation Matrix
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2533,7 +2534,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3527,7 +3528,7 @@ Score: 3345
 // Based on: 
 // - C= Hacking Magazine Issue 8. http://www.ffd2.com/fridge/chacking/c=hacking8.txt
 // - Codebase64 Article http://codebase64.org/doku.php?id=base:3d_rotation  
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/bresenham/bitmap-bresenham.log b/src/test/ref/examples/bresenham/bitmap-bresenham.log
index d9b1190b1..735e9cb84 100644
--- a/src/test/ref/examples/bresenham/bitmap-bresenham.log
+++ b/src/test/ref/examples/bresenham/bitmap-bresenham.log
@@ -2739,8 +2739,9 @@ Allocated zp ZP_BYTE:66 [ bitmap_init::$8 ]
 Allocated zp ZP_BYTE:67 [ bitmap_init::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4163,7 +4164,7 @@ Allocated (was zp ZP_BYTE:64) zp ZP_BYTE:28 [ bitmap_init::$10 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5663,7 +5664,7 @@ FINAL ASSEMBLER
 Score: 221034
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/chargen/chargen-analysis.log b/src/test/ref/examples/chargen/chargen-analysis.log
index d46bb45bb..0c00d97c8 100644
--- a/src/test/ref/examples/chargen/chargen-analysis.log
+++ b/src/test/ref/examples/chargen/chargen-analysis.log
@@ -2546,9 +2546,10 @@ Allocated zp ZP_BYTE:60 [ keyboard_matrix_read::return#0 ]
 Allocated zp ZP_BYTE:61 [ keyboard_get_keycode::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Allows analysis of the CHARGEN ROM font
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3707,7 +3708,7 @@ Allocated (was zp ZP_WORD:28) zp ZP_WORD:18 [ print_str_at::at#5 print_str_at::a
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Allows analysis of the CHARGEN ROM font
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5105,7 +5106,7 @@ Score: 628893
 
   // File Comments
 // Allows analysis of the CHARGEN ROM font
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/fastmultiply/fastmultiply8.log b/src/test/ref/examples/fastmultiply/fastmultiply8.log
index 01ffb2ab2..0ab1a22d5 100644
--- a/src/test/ref/examples/fastmultiply/fastmultiply8.log
+++ b/src/test/ref/examples/fastmultiply/fastmultiply8.log
@@ -1279,6 +1279,7 @@ Allocated zp ZP_BYTE:31 [ print_byte_at::$2 ]
 Allocated zp ZP_BYTE:32 [ fmul8::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Seriously fast multiply 8-bit version (8bit*8bit=8bit)
 // Multiplies two signed 8-bit numbers and results in an 8-bit number
@@ -1287,7 +1288,7 @@ INITIAL ASM
 // See the following for information about the method
 // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication 
 // - http://codebase64.org/doku.php?id=magazines:chacking16
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2044,7 +2045,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // See the following for information about the method
 // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication 
 // - http://codebase64.org/doku.php?id=magazines:chacking16
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2848,7 +2849,7 @@ Score: 10016
 // See the following for information about the method
 // - http://codebase64.org/doku.php?id=base:seriously_fast_multiplication 
 // - http://codebase64.org/doku.php?id=magazines:chacking16
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/fire/fire.log b/src/test/ref/examples/fire/fire.log
index 34dcb9bfd..b54ae4985 100644
--- a/src/test/ref/examples/fire/fire.log
+++ b/src/test/ref/examples/fire/fire.log
@@ -1665,13 +1665,14 @@ Allocated zp ZP_WORD:42 [ makecharset::$15 ]
 Allocated zp ZP_WORD:44 [ makecharset::$18 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A KickC version of the fire routine from the CC65 samples
 // (w)2002 by groepaz/hitmen
 // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King .
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2567,7 +2568,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King .
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3541,7 +3542,7 @@ Score: 98915
 // Cleanup and porting to CC65 by Ullrich von Bassewitz and Greg King .
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/fire.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/helloworld/helloworld.log b/src/test/ref/examples/helloworld/helloworld.log
index 11a939604..0274eb904 100644
--- a/src/test/ref/examples/helloworld/helloworld.log
+++ b/src/test/ref/examples/helloworld/helloworld.log
@@ -368,8 +368,9 @@ Allocated zp ZP_WORD:4 [ print_str::str#2 print_str::str#0 ]
 Allocated zp ZP_WORD:6 [ print_char_cursor#10 print_char_cursor#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -533,7 +534,7 @@ Uplifting [main] best 1423 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -752,7 +753,7 @@ FINAL ASSEMBLER
 Score: 1235
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/irq/irq-hyperscreen.log b/src/test/ref/examples/irq/irq-hyperscreen.log
index d13c211b3..27e7e2180 100644
--- a/src/test/ref/examples/irq/irq-hyperscreen.log
+++ b/src/test/ref/examples/irq/irq-hyperscreen.log
@@ -294,9 +294,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A raster IRQ that opens the top/bottom border.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -475,7 +476,7 @@ Uplifting [] best 175 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A raster IRQ that opens the top/bottom border.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -686,7 +687,7 @@ Score: 154
 
   // File Comments
 // A raster IRQ that opens the top/bottom border.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/multiplexer/simple-multiplexer.log b/src/test/ref/examples/multiplexer/simple-multiplexer.log
index 111af78be..66bfb2dbc 100644
--- a/src/test/ref/examples/multiplexer/simple-multiplexer.log
+++ b/src/test/ref/examples/multiplexer/simple-multiplexer.log
@@ -2259,9 +2259,10 @@ Allocated zp ZP_BYTE:32 [ plexSort::s#2 ]
 Allocated zp ZP_BYTE:33 [ init::$8 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3096,7 +3097,7 @@ Allocated (was zp ZP_BYTE:31) zp ZP_BYTE:14 [ plexSort::nxt_y#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4033,7 +4034,7 @@ Score: 62204
 
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/music/music.log b/src/test/ref/examples/music/music.log
index 541573087..69f589256 100644
--- a/src/test/ref/examples/music/music.log
+++ b/src/test/ref/examples/music/music.log
@@ -138,9 +138,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A simple SID music player playing music in the main loop.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -217,7 +218,7 @@ Uplifting [] best 4227 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A simple SID music player playing music in the main loop.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -322,7 +323,7 @@ Score: 3882
 
   // File Comments
 // A simple SID music player playing music in the main loop.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/music/music_irq.log b/src/test/ref/examples/music/music_irq.log
index c4c771bcd..d53835b2c 100644
--- a/src/test/ref/examples/music/music_irq.log
+++ b/src/test/ref/examples/music/music_irq.log
@@ -209,9 +209,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A simple SID music player using RASTER IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -339,7 +340,7 @@ Uplifting [] best 2947 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A simple SID music player using RASTER IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -504,7 +505,7 @@ Score: 2899
 
   // File Comments
 // A simple SID music player using RASTER IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/plasma/plasma-unroll.log b/src/test/ref/examples/plasma/plasma-unroll.log
index 27ac9faf0..a8f72268b 100644
--- a/src/test/ref/examples/plasma/plasma-unroll.log
+++ b/src/test/ref/examples/plasma/plasma-unroll.log
@@ -3147,6 +3147,7 @@ Allocated zp ZP_BYTE:65 [ makecharset::$11 ]
 Allocated zp ZP_BYTE:66 [ sid_rnd::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A KickC version of the plasma routine from the CC65 samples
 // This version has an unrolled inner loop to reach 50+FPS
@@ -3155,7 +3156,7 @@ INITIAL ASM
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4442,7 +4443,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5737,7 +5738,7 @@ Score: 93726
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/plasma/plasma.log b/src/test/ref/examples/plasma/plasma.log
index 18b9efdfc..d2cf7743c 100644
--- a/src/test/ref/examples/plasma/plasma.log
+++ b/src/test/ref/examples/plasma/plasma.log
@@ -2449,13 +2449,14 @@ Allocated zp ZP_BYTE:41 [ makecharset::$11 ]
 Allocated zp ZP_BYTE:42 [ sid_rnd::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A KickC version of the plasma routine from the CC65 samples
 // (w)2001 by groepaz/hitmen
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3339,7 +3340,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4390,7 +4391,7 @@ Score: 90512
 // Cleanup and porting to CC65 by Ullrich von Bassewitz.
 // Ported to KickC by Jesper Gravgaard.
 // Original source https://github.com/cc65/cc65/blob/master/samples/plasma.c
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/rasterbars/raster-bars.log b/src/test/ref/examples/rasterbars/raster-bars.log
index c7ee73134..c84de2f44 100644
--- a/src/test/ref/examples/rasterbars/raster-bars.log
+++ b/src/test/ref/examples/rasterbars/raster-bars.log
@@ -273,8 +273,9 @@ Allocated zp ZP_BYTE:2 [ raster::col#2 raster::col#0 raster::col#1 ]
 Allocated zp ZP_BYTE:3 [ raster::i#2 raster::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -429,7 +430,7 @@ Uplifting [] best 9585 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -622,7 +623,7 @@ FINAL ASSEMBLER
 Score: 8340
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/rotate/rotate.log b/src/test/ref/examples/rotate/rotate.log
index d26d5fdc7..4d3b70949 100644
--- a/src/test/ref/examples/rotate/rotate.log
+++ b/src/test/ref/examples/rotate/rotate.log
@@ -2645,9 +2645,10 @@ Allocated zp ZP_BYTE:96 [ mulf_init::$10 ]
 Allocated zp ZP_BYTE:97 [ mulf_init::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // 2D rotattion of 8 sprites 
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4120,7 +4121,7 @@ Allocated (was zp ZP_DWORD:64) zp ZP_DWORD:34 [ clock::return#2 anim::$28 clock:
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // 2D rotattion of 8 sprites 
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5557,7 +5558,7 @@ Score: 30954
 
   // File Comments
 // 2D rotattion of 8 sprites 
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/scroll/scroll.log b/src/test/ref/examples/scroll/scroll.log
index 104f60dbc..934d5078b 100644
--- a/src/test/ref/examples/scroll/scroll.log
+++ b/src/test/ref/examples/scroll/scroll.log
@@ -503,8 +503,9 @@ Allocated zp ZP_WORD:5 [ main::nxt#4 main::nxt#9 main::nxt#10 main::nxt#1 ]
 Allocated zp ZP_WORD:7 [ fillscreen::cursor#2 fillscreen::cursor#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -747,7 +748,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:4 [ fillscreen::cursor#2 fillscreen::cur
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1061,7 +1062,7 @@ FINAL ASSEMBLER
 Score: 5932
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/scrollbig/scrollbig.log b/src/test/ref/examples/scrollbig/scrollbig.log
index 7b1b72f16..33c275050 100644
--- a/src/test/ref/examples/scrollbig/scrollbig.log
+++ b/src/test/ref/examples/scrollbig/scrollbig.log
@@ -1353,9 +1353,10 @@ Allocated zp ZP_BYTE:21 [ scroll_bit::bits#0 ]
 Allocated zp ZP_BYTE:22 [ scroll_bit::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // An 8x8 char letter scroller
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1898,7 +1899,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:9 [ fillscreen::cursor#2 fillscreen::cu
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // An 8x8 char letter scroller
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2518,7 +2519,7 @@ Score: 20556
 
   // File Comments
 // An 8x8 char letter scroller
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/scrolllogo/scrolllogo.log b/src/test/ref/examples/scrolllogo/scrolllogo.log
index 5f4fd3574..d30079671 100644
--- a/src/test/ref/examples/scrolllogo/scrolllogo.log
+++ b/src/test/ref/examples/scrolllogo/scrolllogo.log
@@ -4259,8 +4259,9 @@ Allocated zp ZP_WORD:177 [ rem16u#1 ]
 Allocated zp ZP_WORD:179 [ memset::end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6398,7 +6399,7 @@ Allocated (was zp ZP_WORD:179) zp ZP_WORD:62 [ memset::end#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8512,7 +8513,7 @@ FINAL ASSEMBLER
 Score: 46354
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/showlogo/showlogo.log b/src/test/ref/examples/showlogo/showlogo.log
index ce11737cf..b4a43a471 100644
--- a/src/test/ref/examples/showlogo/showlogo.log
+++ b/src/test/ref/examples/showlogo/showlogo.log
@@ -669,8 +669,9 @@ Allocated zp ZP_WORD:8 [ memset::dst#2 memset::dst#3 memset::dst#1 ]
 Allocated zp ZP_WORD:10 [ memset::end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -925,7 +926,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ memset::str#3 memset::dst#2 memset::
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1250,7 +1251,7 @@ FINAL ASSEMBLER
 Score: 5887
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/sinplotter/sine-plotter.log b/src/test/ref/examples/sinplotter/sine-plotter.log
index 9fe0896d9..ba68518cf 100644
--- a/src/test/ref/examples/sinplotter/sine-plotter.log
+++ b/src/test/ref/examples/sinplotter/sine-plotter.log
@@ -3950,9 +3950,10 @@ Allocated zp ZP_BYTE:191 [ bitmap_init::$5 ]
 Allocated zp ZP_BYTE:192 [ bitmap_init::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Generate a big sinus and plot it on a bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6099,7 +6100,7 @@ Allocated (was zp ZP_BYTE:189) zp ZP_BYTE:67 [ bitmap_init::$7 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Generate a big sinus and plot it on a bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8278,7 +8279,7 @@ Score: 24639
 
   // File Comments
 // Generate a big sinus and plot it on a bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/examples/sinsprites/sinus-sprites.log b/src/test/ref/examples/sinsprites/sinus-sprites.log
index 4efa48503..cd0813449 100644
--- a/src/test/ref/examples/sinsprites/sinus-sprites.log
+++ b/src/test/ref/examples/sinsprites/sinus-sprites.log
@@ -3552,8 +3552,9 @@ Allocated zp ZP_BYTE:70 [ gen_chargen_sprite::$6 ]
 Allocated zp ZP_BYTE:71 [ place_sprites::j2#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5409,7 +5410,7 @@ Allocated (was zp ZP_WORD:63) zp ZP_WORD:40 [ gen_chargen_sprite::$0 gen_chargen
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7450,7 +7451,7 @@ FINAL ASSEMBLER
 Score: 769618
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fastmultiply-127.log b/src/test/ref/fastmultiply-127.log
index 7f75fa984..527024a36 100644
--- a/src/test/ref/fastmultiply-127.log
+++ b/src/test/ref/fastmultiply-127.log
@@ -2789,13 +2789,14 @@ Allocated zp ZP_WORD:47 [ mulf8u127::return#0 ]
 Allocated zp ZP_WORD:49 [ print_mulf8u127::c#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // An implementation of seriously fast multiply for integer values in the interval [-1;1] with the best possible precision
 // NOTE: So far unsuccessful - since the handling of sign and values where a+b>sqrt2) makes the code slower than regular fast multiply
 // In this model 255 binary represents 1.0 - meaning that 255*255 = 255
 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16
 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4172,7 +4173,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // In this model 255 binary represents 1.0 - meaning that 255*255 = 255
 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16
 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5769,7 +5770,7 @@ Score: 2300
 // In this model 255 binary represents 1.0 - meaning that 255*255 = 255
 // Uses principles from C=Hacking #16 https://codebase64.org/doku.php?id=magazines:chacking16
 // Utilizes the fact that a*b = ((a+b)/2)^2 - ((a-b)/2)^2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fibmem.log b/src/test/ref/fibmem.log
index 2db64960b..3833ee8e0 100644
--- a/src/test/ref/fibmem.log
+++ b/src/test/ref/fibmem.log
@@ -162,8 +162,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -249,7 +250,7 @@ Uplifting [] best 365 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -353,7 +354,7 @@ FINAL ASSEMBLER
 Score: 263
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fill-square.log b/src/test/ref/fill-square.log
index ac069d604..82f1949de 100644
--- a/src/test/ref/fill-square.log
+++ b/src/test/ref/fill-square.log
@@ -224,9 +224,10 @@ Allocated zp ZP_WORD:12 [ main::line#0 ]
 Allocated zp ZP_BYTE:14 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fill a square on the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -396,7 +397,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ main::$6 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fill a square on the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -583,7 +584,7 @@ Score: 3381
 
   // File Comments
 // Fill a square on the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fillscreen.log b/src/test/ref/fillscreen.log
index d7099c6b2..31e060463 100644
--- a/src/test/ref/fillscreen.log
+++ b/src/test/ref/fillscreen.log
@@ -213,8 +213,9 @@ Allocated zp ZP_BYTE:3 [ main::c#0 ]
 Allocated zp ZP_BYTE:4 [ fillscreen::c#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -319,7 +320,7 @@ Uplifting [] best 412 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -453,7 +454,7 @@ FINAL ASSEMBLER
 Score: 307
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/flipper-rex2.log b/src/test/ref/flipper-rex2.log
index 1ed162c2e..03d1e3ef5 100644
--- a/src/test/ref/flipper-rex2.log
+++ b/src/test/ref/flipper-rex2.log
@@ -687,8 +687,9 @@ Allocated zp ZP_BYTE:12 [ flip::i#2 flip::i#1 ]
 Allocated zp ZP_BYTE:13 [ prepare::i#2 prepare::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1049,7 +1050,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:6 [ flip::c#2 flip::c#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1489,7 +1490,7 @@ FINAL ASSEMBLER
 Score: 82694
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/font-hex-show.log b/src/test/ref/font-hex-show.log
index f1693dea3..76a67a503 100644
--- a/src/test/ref/font-hex-show.log
+++ b/src/test/ref/font-hex-show.log
@@ -754,9 +754,10 @@ Allocated zp ZP_BYTE:15 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:16 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Shows a font where each char contains the number of the char (00-ff)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1069,7 +1070,7 @@ Allocated (was zp ZP_BYTE:13) zp ZP_BYTE:11 [ init_font_hex::$0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Shows a font where each char contains the number of the char (00-ff)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1441,7 +1442,7 @@ Score: 72379
 
   // File Comments
 // Shows a font where each char contains the number of the char (00-ff)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/for-empty-increment.log b/src/test/ref/for-empty-increment.log
index 45d358e41..f8a0e91d4 100644
--- a/src/test/ref/for-empty-increment.log
+++ b/src/test/ref/for-empty-increment.log
@@ -118,9 +118,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that for()-loops can have empty increments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -188,7 +189,7 @@ Uplifting [] best 263 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that for()-loops can have empty increments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -285,7 +286,7 @@ Score: 161
 
   // File Comments
 // Tests that for()-loops can have empty increments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/for-empty-init.log b/src/test/ref/for-empty-init.log
index e5f33a0d7..8b7109ce3 100644
--- a/src/test/ref/for-empty-init.log
+++ b/src/test/ref/for-empty-init.log
@@ -118,9 +118,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that for()-loops can have empty inits
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -188,7 +189,7 @@ Uplifting [] best 263 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that for()-loops can have empty inits
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -285,7 +286,7 @@ Score: 161
 
   // File Comments
 // Tests that for()-loops can have empty inits
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/for-two-vars.log b/src/test/ref/for-two-vars.log
index 701666483..2b291b52a 100644
--- a/src/test/ref/for-two-vars.log
+++ b/src/test/ref/for-two-vars.log
@@ -147,10 +147,11 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_WORD:3 [ main::sc#2 main::sc#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a for-loop with two iterating variables
 // Illustrates that for()-loops currently cannot contain two variable declarations.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -240,7 +241,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a for-loop with two iterating variables
 // Illustrates that for()-loops currently cannot contain two variable declarations.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -356,7 +357,7 @@ Score: 446
   // File Comments
 // Test a for-loop with two iterating variables
 // Illustrates that for()-loops currently cannot contain two variable declarations.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/forclassicmin.log b/src/test/ref/forclassicmin.log
index 45c5bd6a9..7d55eecd4 100644
--- a/src/test/ref/forclassicmin.log
+++ b/src/test/ref/forclassicmin.log
@@ -131,9 +131,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal classic for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -201,7 +202,7 @@ Uplifting [] best 263 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal classic for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -298,7 +299,7 @@ Score: 161
 
   // File Comments
 // Minimal classic for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/forincrementassign.log b/src/test/ref/forincrementassign.log
index ff4f2b3a5..e66fcaf79 100644
--- a/src/test/ref/forincrementassign.log
+++ b/src/test/ref/forincrementassign.log
@@ -128,10 +128,11 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {}
 // The following should give a program rendering a char on every second char of the first line - but results in a syntax error
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -203,7 +204,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {}
 // The following should give a program rendering a char on every second char of the first line - but results in a syntax error
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -302,7 +303,7 @@ Score: 181
   // File Comments
 // Classic for() does not allow assignment as increment, eg. for(byte i=0;i<40;i=i+2) {}
 // The following should give a program rendering a char on every second char of the first line - but results in a syntax error
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/forrangedwords.log b/src/test/ref/forrangedwords.log
index a70f16c77..048d19bd5 100644
--- a/src/test/ref/forrangedwords.log
+++ b/src/test/ref/forrangedwords.log
@@ -214,8 +214,9 @@ Allocated zp ZP_BYTE:8 [ main::$3 ]
 Allocated zp ZP_BYTE:9 [ main::$4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -351,7 +352,7 @@ Uplifting [] best 1158 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -518,7 +519,7 @@ FINAL ASSEMBLER
 Score: 976
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/forrangemin.log b/src/test/ref/forrangemin.log
index a1d1919dd..241404f54 100644
--- a/src/test/ref/forrangemin.log
+++ b/src/test/ref/forrangemin.log
@@ -181,9 +181,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::j#3 main::j#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal range based for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -276,7 +277,7 @@ Uplifting [] best 478 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal range based for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -405,7 +406,7 @@ Score: 316
 
   // File Comments
 // Minimal range based for() loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/forrangesymbolic.log b/src/test/ref/forrangesymbolic.log
index 2105cacad..a3640a4a3 100644
--- a/src/test/ref/forrangesymbolic.log
+++ b/src/test/ref/forrangesymbolic.log
@@ -134,10 +134,11 @@ Complete equivalence classes
 Allocated zp ZP_WORD:2 [ main::b#2 main::b#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Range-based for does not recognize symbolic constants.
 // The following should work but gives a not-constant exception
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -218,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Range-based for does not recognize symbolic constants.
 // The following should work but gives a not-constant exception
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -330,7 +331,7 @@ Score: 511
   // File Comments
 // Range-based for does not recognize symbolic constants.
 // The following should work but gives a not-constant exception
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fragment-synth.log b/src/test/ref/fragment-synth.log
index 683d12dd0..3343b0541 100644
--- a/src/test/ref/fragment-synth.log
+++ b/src/test/ref/fragment-synth.log
@@ -286,10 +286,11 @@ Allocated zp ZP_BYTE:7 [ main::a2#0 ]
 Allocated zp ZP_BYTE:8 [ fct::return#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a sub-optimal fragment synthesis
 // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y  cycles:11.5
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -416,7 +417,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a sub-optimal fragment synthesis
 // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y  cycles:11.5
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -571,7 +572,7 @@ Score: 77
   // File Comments
 // Tests a sub-optimal fragment synthesis
 // vbuaa=vbuxx_band_pbuz1_derefidx_vbuc1 < vbuaa=pbuz1_derefidx_vbuc1_band_vbuxx < vbuaa=pbuz1_derefidx_vbuaa_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuxx < vbuaa=pbuz1_derefidx_vbuyy_band_vbuaa < vbuaa=vbuaa_band_pbuz1_derefidx_vbuyy - clobber:A Y  cycles:11.5
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/fragment-variations.log b/src/test/ref/fragment-variations.log
index 43eb90cfa..d0b76c99b 100644
--- a/src/test/ref/fragment-variations.log
+++ b/src/test/ref/fragment-variations.log
@@ -256,10 +256,11 @@ Allocated zp ZP_DWORD:20 [ main::$1 ]
 Allocated zp ZP_DWORD:24 [ mul16u::return#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that ASM fragment variations works
 // ASM fragment variations "cast" constants to different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -450,7 +451,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that ASM fragment variations works
 // ASM fragment variations "cast" constants to different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -636,7 +637,7 @@ Score: 172
   // File Comments
 // Tests that ASM fragment variations works
 // ASM fragment variations "cast" constants to different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-2.log b/src/test/ref/function-pointer-noarg-2.log
index f15ba2411..6067ddb85 100644
--- a/src/test/ref/function-pointer-noarg-2.log
+++ b/src/test/ref/function-pointer-noarg-2.log
@@ -195,9 +195,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -278,7 +279,7 @@ Uplifting [] best 338 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -393,7 +394,7 @@ Score: 151
 
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-3.log b/src/test/ref/function-pointer-noarg-3.log
index d3471fdbd..afec00d25 100644
--- a/src/test/ref/function-pointer-noarg-3.log
+++ b/src/test/ref/function-pointer-noarg-3.log
@@ -259,9 +259,10 @@ Allocated zp ZP_WORD:3 [ main::f#3 ]
 Allocated zp ZP_BYTE:5 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -390,7 +391,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::f#3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -564,7 +565,7 @@ Score: 3225
 
   // File Comments
 // Tests creating and assigning pointers to non-args no-return functions - plus inline kickasm-based calling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-10.log b/src/test/ref/function-pointer-noarg-call-10.log
index 901b594b4..794a8936f 100644
--- a/src/test/ref/function-pointer-noarg-call-10.log
+++ b/src/test/ref/function-pointer-noarg-call-10.log
@@ -379,9 +379,10 @@ Allocated zp ZP_BYTE:7 [ print::i#2 print::i#1 ]
 Allocated zp ZP_BYTE:8 [ idx#11 idx#16 idx#12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into different function pointers which call a common sub-method
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -596,7 +597,7 @@ Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:7 [ idx#11 idx#16 idx#12 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into different function pointers which call a common sub-method
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -855,7 +856,7 @@ Score: 676
 
   // File Comments
 // Tests calling into different function pointers which call a common sub-method
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-2.log b/src/test/ref/function-pointer-noarg-call-2.log
index 0ef5410ad..c1341638f 100644
--- a/src/test/ref/function-pointer-noarg-call-2.log
+++ b/src/test/ref/function-pointer-noarg-call-2.log
@@ -247,9 +247,10 @@ Allocated zp ZP_WORD:3 [ main::f#3 ]
 Allocated zp ZP_BYTE:5 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -379,7 +380,7 @@ Uplifting [main] best 727 combination zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -546,7 +547,7 @@ Score: 589
 
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-3.log b/src/test/ref/function-pointer-noarg-call-3.log
index 47f206fcf..d4d235ccc 100644
--- a/src/test/ref/function-pointer-noarg-call-3.log
+++ b/src/test/ref/function-pointer-noarg-call-3.log
@@ -288,9 +288,10 @@ Allocated zp ZP_WORD:8 [ main::$1 ]
 Allocated zp ZP_BYTE:10 [ getfn::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -457,7 +458,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ getfn::ret
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -651,7 +652,7 @@ Score: 392
 
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-4.log b/src/test/ref/function-pointer-noarg-call-4.log
index 70511a114..6575033f9 100644
--- a/src/test/ref/function-pointer-noarg-call-4.log
+++ b/src/test/ref/function-pointer-noarg-call-4.log
@@ -210,9 +210,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -303,7 +304,7 @@ Uplifting [] best 289 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -434,7 +435,7 @@ Score: 154
 
   // File Comments
 // Tests creating, assigning returning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-5.log b/src/test/ref/function-pointer-noarg-call-5.log
index 2b384f471..10ce8ec2b 100644
--- a/src/test/ref/function-pointer-noarg-call-5.log
+++ b/src/test/ref/function-pointer-noarg-call-5.log
@@ -218,9 +218,10 @@ Allocated zp ZP_BYTE:4 [ main::$2 ]
 Allocated zp ZP_WORD:5 [ main::f#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into arrays of pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -341,7 +342,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::f#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into arrays of pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -487,7 +488,7 @@ Score: 504
 
   // File Comments
 // Tests calling into arrays of pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-6.log b/src/test/ref/function-pointer-noarg-call-6.log
index 85d7ed9d9..d41e40217 100644
--- a/src/test/ref/function-pointer-noarg-call-6.log
+++ b/src/test/ref/function-pointer-noarg-call-6.log
@@ -184,9 +184,10 @@ Allocated zp ZP_WORD:2 [ main::cols#2 main::cols#1 ]
 Allocated zp ZP_WORD:4 [ fn1::screen#2 fn1::screen#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -321,7 +322,7 @@ Uplifting [] best 7565 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -501,7 +502,7 @@ Score: 6343
 
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-7.log b/src/test/ref/function-pointer-noarg-call-7.log
index 10ca1a31b..888154767 100644
--- a/src/test/ref/function-pointer-noarg-call-7.log
+++ b/src/test/ref/function-pointer-noarg-call-7.log
@@ -278,9 +278,10 @@ Allocated zp ZP_BYTE:3 [ hello::i#2 hello::i#1 ]
 Allocated zp ZP_BYTE:4 [ idx#0 idx#3 idx#7 idx#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -425,7 +426,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:3 [ idx#0 idx#3 idx#7 idx#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -607,7 +608,7 @@ Score: 3326
 
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-8.log b/src/test/ref/function-pointer-noarg-call-8.log
index 4bce1199e..8edae657a 100644
--- a/src/test/ref/function-pointer-noarg-call-8.log
+++ b/src/test/ref/function-pointer-noarg-call-8.log
@@ -341,9 +341,10 @@ Allocated zp ZP_WORD:4 [ msg#0 msg#1 msg#10 ]
 Allocated zp ZP_BYTE:6 [ idx#0 idx#3 idx#7 idx#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -518,7 +519,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ idx#0 idx#3 idx#7 idx#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -735,7 +736,7 @@ Score: 3558
 
   // File Comments
 // Tests calling into a function pointer with local variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call-9.log b/src/test/ref/function-pointer-noarg-call-9.log
index ba967b53f..d749c8774 100644
--- a/src/test/ref/function-pointer-noarg-call-9.log
+++ b/src/test/ref/function-pointer-noarg-call-9.log
@@ -145,9 +145,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ idx#0 idx#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests calling into a function pointer which modifies global volatile
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -225,7 +226,7 @@ Uplifting [] best 72 combination zp ZP_BYTE:2 [ idx#0 idx#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests calling into a function pointer which modifies global volatile
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -324,7 +325,7 @@ Score: 66
 
   // File Comments
 // Tests calling into a function pointer which modifies global volatile
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg-call.log b/src/test/ref/function-pointer-noarg-call.log
index 7177d858a..0b9420627 100644
--- a/src/test/ref/function-pointer-noarg-call.log
+++ b/src/test/ref/function-pointer-noarg-call.log
@@ -109,9 +109,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -169,7 +170,7 @@ Uplifting [] best 42 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -253,7 +254,7 @@ Score: 24
 
   // File Comments
 // Tests creating, assigning and calling pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-noarg.log b/src/test/ref/function-pointer-noarg.log
index 4da109896..6f6a631b4 100644
--- a/src/test/ref/function-pointer-noarg.log
+++ b/src/test/ref/function-pointer-noarg.log
@@ -223,9 +223,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -309,7 +310,7 @@ Uplifting [] best 75 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -420,7 +421,7 @@ Score: 54
 
   // File Comments
 // Tests creating pointers to non-args no-return functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/function-pointer-return.log b/src/test/ref/function-pointer-return.log
index a7a4e8c18..62e871c69 100644
--- a/src/test/ref/function-pointer-return.log
+++ b/src/test/ref/function-pointer-return.log
@@ -289,9 +289,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ]
 Allocated zp ZP_BYTE:6 [ main::$4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating and assigning pointers to non-args return with function value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -423,7 +424,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::f#3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating and assigning pointers to non-args return with function value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -595,7 +596,7 @@ Score: 479
 
   // File Comments
 // Tests creating and assigning pointers to non-args return with function value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/gfxbank.log b/src/test/ref/gfxbank.log
index 5622f86f0..b9252ca2f 100644
--- a/src/test/ref/gfxbank.log
+++ b/src/test/ref/gfxbank.log
@@ -211,9 +211,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test minimization of constants
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -280,7 +281,7 @@ Uplifting [] best 96 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test minimization of constants
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -390,7 +391,7 @@ Score: 18
 
   // File Comments
 // Test minimization of constants
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/global-pc.log b/src/test/ref/global-pc.log
index 50950576c..70eb2304c 100644
--- a/src/test/ref/global-pc.log
+++ b/src/test/ref/global-pc.log
@@ -107,9 +107,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::col#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test setting the program PC through a #pc directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $1000 "Program"
@@ -161,7 +162,7 @@ Uplifting [] best 127 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test setting the program PC through a #pc directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $1000 "Program"
@@ -235,7 +236,7 @@ Score: 112
 
   // File Comments
 // Test setting the program PC through a #pc directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $1000 "Program"
diff --git a/src/test/ref/halfscii.log b/src/test/ref/halfscii.log
index 8a3c996b7..c29f5f231 100644
--- a/src/test/ref/halfscii.log
+++ b/src/test/ref/halfscii.log
@@ -870,8 +870,9 @@ Allocated zp ZP_BYTE:36 [ main::bits#3 ]
 Allocated zp ZP_BYTE:37 [ main::bits_gen#7 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1409,7 +1410,7 @@ Allocated (was zp ZP_BYTE:33) zp ZP_BYTE:11 [ main::$30 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1881,7 +1882,7 @@ FINAL ASSEMBLER
 Score: 3108
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/helloworld0.log b/src/test/ref/helloworld0.log
index 51523ba48..621ae4d68 100644
--- a/src/test/ref/helloworld0.log
+++ b/src/test/ref/helloworld0.log
@@ -125,9 +125,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests minimal hello world
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ Uplifting [] best 288 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests minimal hello world
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -299,7 +300,7 @@ Score: 186
 
   // File Comments
 // Tests minimal hello world
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/helloworld2-inline.log b/src/test/ref/helloworld2-inline.log
index ebe02a2bf..03f3cdd24 100644
--- a/src/test/ref/helloworld2-inline.log
+++ b/src/test/ref/helloworld2-inline.log
@@ -299,8 +299,9 @@ Allocated zp ZP_BYTE:4 [ main::print22_i#2 main::print22_i#1 ]
 Allocated zp ZP_BYTE:5 [ main::print22_j#2 main::print22_j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -441,7 +442,7 @@ Uplifting [] best 744 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -617,7 +618,7 @@ FINAL ASSEMBLER
 Score: 576
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/helloworld2.log b/src/test/ref/helloworld2.log
index 5e16e84f3..050a09008 100644
--- a/src/test/ref/helloworld2.log
+++ b/src/test/ref/helloworld2.log
@@ -236,8 +236,9 @@ Allocated zp ZP_BYTE:4 [ print2::i#2 print2::i#1 ]
 Allocated zp ZP_BYTE:5 [ print2::j#2 print2::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -360,7 +361,7 @@ Uplifting [] best 447 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -517,7 +518,7 @@ FINAL ASSEMBLER
 Score: 339
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/hex2dec-ptrptr.log b/src/test/ref/hex2dec-ptrptr.log
index d46df439b..ddb8675e1 100644
--- a/src/test/ref/hex2dec-ptrptr.log
+++ b/src/test/ref/hex2dec-ptrptr.log
@@ -769,9 +769,10 @@ Allocated zp ZP_BYTE:16 [ utoa16w::$8 ]
 Allocated zp ZP_BYTE:17 [ utoa16w::$12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Testing binary to hex conversion using pointer to pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1177,7 +1178,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ cls::sc#2 cls::sc#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Testing binary to hex conversion using pointer to pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1628,7 +1629,7 @@ Score: 741
 
   // File Comments
 // Testing binary to hex conversion using pointer to pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/hex2dec.log b/src/test/ref/hex2dec.log
index 62400253f..0fe7c4f15 100644
--- a/src/test/ref/hex2dec.log
+++ b/src/test/ref/hex2dec.log
@@ -1435,9 +1435,10 @@ Allocated zp ZP_BYTE:36 [ utoa16w::$8 ]
 Allocated zp ZP_BYTE:37 [ utoa16w::$12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Testing hex to decimal conversion
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2201,7 +2202,7 @@ Allocated (was zp ZP_BYTE:21) zp ZP_BYTE:15 [ main::time_start#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Testing hex to decimal conversion
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2994,7 +2995,7 @@ Score: 22008
 
   // File Comments
 // Testing hex to decimal conversion
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ifmin.log b/src/test/ref/ifmin.log
index 4cebfc483..7de50676d 100644
--- a/src/test/ref/ifmin.log
+++ b/src/test/ref/ifmin.log
@@ -149,9 +149,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal if() test
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -228,7 +229,7 @@ Uplifting [] best 338 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal if() test
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -338,7 +339,7 @@ Score: 176
 
   // File Comments
 // Minimal if() test
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/immzero.log b/src/test/ref/immzero.log
index c3a8a6751..12c011131 100644
--- a/src/test/ref/immzero.log
+++ b/src/test/ref/immzero.log
@@ -136,9 +136,10 @@ Allocated zp ZP_WORD:2 [ main::w#2 main::w#1 ]
 Allocated zp ZP_BYTE:4 [ main::j#2 main::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that immediate zero values are reused - even when assigning to words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -220,7 +221,7 @@ Uplifting [] best 468 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that immediate zero values are reused - even when assigning to words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -333,7 +334,7 @@ Score: 346
 
   // File Comments
 // Tests that immediate zero values are reused - even when assigning to words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/importing.log b/src/test/ref/importing.log
index 9043f583e..bbeafc9e8 100644
--- a/src/test/ref/importing.log
+++ b/src/test/ref/importing.log
@@ -97,8 +97,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -149,7 +150,7 @@ Uplifting [] best 33 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -224,7 +225,7 @@ FINAL ASSEMBLER
 Score: 18
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/incd020.log b/src/test/ref/incd020.log
index 4123a30ed..6f4860428 100644
--- a/src/test/ref/incd020.log
+++ b/src/test/ref/incd020.log
@@ -86,10 +86,11 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020.
 // Currently it does not but instead leads to just reading the value a few times.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -137,7 +138,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020.
 // Currently it does not but instead leads to just reading the value a few times.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -207,7 +208,7 @@ Score: 150
   // File Comments
 // Incrementing / decrementing pointer content should result in code modifying the memory location - eg. inc $d020.
 // Currently it does not but instead leads to just reading the value a few times.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/incrementinarray.log b/src/test/ref/incrementinarray.log
index 7f27373e8..47096b0a0 100644
--- a/src/test/ref/incrementinarray.log
+++ b/src/test/ref/incrementinarray.log
@@ -685,8 +685,9 @@ Allocated zp ZP_WORD:7 [ print_char_cursor#12 print_char_cursor#25 print_char_cu
 Allocated zp ZP_WORD:9 [ memset::dst#2 memset::dst#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -970,7 +971,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:8 [ memset::dst#2 memset::dst#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1327,7 +1328,7 @@ FINAL ASSEMBLER
 Score: 11134
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/infloop-error.log b/src/test/ref/infloop-error.log
index 9fc3ce66e..29056fcc1 100644
--- a/src/test/ref/infloop-error.log
+++ b/src/test/ref/infloop-error.log
@@ -278,9 +278,10 @@ Allocated zp ZP_BYTE:3 [ main::min#2 main::min#3 main::min#9 ]
 Allocated zp ZP_BYTE:4 [ main::max#2 main::max#3 main::max#9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -393,7 +394,7 @@ Uplifting [] best 652 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -552,7 +553,7 @@ Score: 460
 
   // File Comments
 // Results in infinite compile loop as the compiler keeps trying to remove the same (empty) alias
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/init-volatiles.log b/src/test/ref/init-volatiles.log
index e1fe2f19b..36e09f0f8 100644
--- a/src/test/ref/init-volatiles.log
+++ b/src/test/ref/init-volatiles.log
@@ -140,9 +140,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ x#5 x#0 x#1 x#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -214,7 +215,7 @@ Uplifting [] best 216 combination zp ZP_BYTE:2 [ x#5 x#0 x#1 x#2 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -312,7 +313,7 @@ Score: 153
 
   // File Comments
 // Illustrates a problem where volatiles with initializers are initialized outside the main()-routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-clobber-none.log b/src/test/ref/inline-asm-clobber-none.log
index aa8a9b57d..be8ce7da5 100644
--- a/src/test/ref/inline-asm-clobber-none.log
+++ b/src/test/ref/inline-asm-clobber-none.log
@@ -211,9 +211,10 @@ Allocated zp ZP_BYTE:3 [ main::j#4 main::j#1 ]
 Allocated zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -334,7 +335,7 @@ Uplifting [] best 54463 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -502,7 +503,7 @@ Score: 44461
 
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-clobber.log b/src/test/ref/inline-asm-clobber.log
index 71af24da9..c5c856c7d 100644
--- a/src/test/ref/inline-asm-clobber.log
+++ b/src/test/ref/inline-asm-clobber.log
@@ -262,9 +262,10 @@ Allocated zp ZP_BYTE:4 [ main::k#4 main::k#1 ]
 Allocated zp ZP_BYTE:5 [ main::l#2 main::l#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that inline ASM clobbering is taken into account when assigning registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -418,7 +419,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:2 [ main::l#2 main::l#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that inline ASM clobbering is taken into account when assigning registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -616,7 +617,7 @@ Score: 4676
 
   // File Comments
 // Tests that inline ASM clobbering is taken into account when assigning registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-jsr-clobber.log b/src/test/ref/inline-asm-jsr-clobber.log
index b1d22f84a..aaea20bde 100644
--- a/src/test/ref/inline-asm-jsr-clobber.log
+++ b/src/test/ref/inline-asm-jsr-clobber.log
@@ -109,9 +109,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -185,7 +186,7 @@ Uplifting [main] best 343 combination zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -281,7 +282,7 @@ Score: 241
 
   // File Comments
 // Tests that inline ASM JSR clobbers all registers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-label.log b/src/test/ref/inline-asm-label.log
index 3d8c0c7ea..813eae4ce 100644
--- a/src/test/ref/inline-asm-label.log
+++ b/src/test/ref/inline-asm-label.log
@@ -80,9 +80,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates how inline assembler use internal labels and external references
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -134,7 +135,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates how inline assembler use internal labels and external references
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -209,7 +210,7 @@ Score: 24
 
   // File Comments
 // Illustrates how inline assembler use internal labels and external references
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-optimized.log b/src/test/ref/inline-asm-optimized.log
index 3ab76a872..49c015244 100644
--- a/src/test/ref/inline-asm-optimized.log
+++ b/src/test/ref/inline-asm-optimized.log
@@ -93,9 +93,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that inline assembler is optimized
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -155,7 +156,7 @@ Uplifting [] best 51 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that inline assembler is optimized
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -238,7 +239,7 @@ Score: 28
 
   // File Comments
 // Tests that inline assembler is optimized
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-ref-scoped.log b/src/test/ref/inline-asm-ref-scoped.log
index 8f5483752..deb18b9fb 100644
--- a/src/test/ref/inline-asm-ref-scoped.log
+++ b/src/test/ref/inline-asm-ref-scoped.log
@@ -87,9 +87,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that references to labels in other scopes is possible from inline ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -151,7 +152,7 @@ Uplifting [] best 48 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that references to labels in other scopes is possible from inline ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -233,7 +234,7 @@ Score: 30
 
   // File Comments
 // Tests that references to labels in other scopes is possible from inline ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-refout-const.log b/src/test/ref/inline-asm-refout-const.log
index a0a91590f..bac320d8f 100644
--- a/src/test/ref/inline-asm-refout-const.log
+++ b/src/test/ref/inline-asm-refout-const.log
@@ -80,9 +80,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -134,7 +135,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -209,7 +210,7 @@ Score: 24
 
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program without the data being optimized away as unused
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm-refout.log b/src/test/ref/inline-asm-refout.log
index 04eb70704..f33c078cc 100644
--- a/src/test/ref/inline-asm-refout.log
+++ b/src/test/ref/inline-asm-refout.log
@@ -100,9 +100,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -158,7 +159,7 @@ Uplifting [] best 47 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -236,7 +237,7 @@ Score: 32
 
   // File Comments
 // Illustrates how inline assembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-asm.log b/src/test/ref/inline-asm.log
index 80bd1adaf..5238ed429 100644
--- a/src/test/ref/inline-asm.log
+++ b/src/test/ref/inline-asm.log
@@ -62,8 +62,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -114,7 +115,7 @@ Uplifting [] best 49 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -184,7 +185,7 @@ FINAL ASSEMBLER
 Score: 34
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-assignment.log b/src/test/ref/inline-assignment.log
index 624d88dc6..36df5d026 100644
--- a/src/test/ref/inline-assignment.log
+++ b/src/test/ref/inline-assignment.log
@@ -142,8 +142,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::a#1 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -215,7 +216,7 @@ Uplifting [] best 333 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -315,7 +316,7 @@ FINAL ASSEMBLER
 Score: 231
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-function-if.log b/src/test/ref/inline-function-if.log
index 263c740f8..5276d4e1b 100644
--- a/src/test/ref/inline-function-if.log
+++ b/src/test/ref/inline-function-if.log
@@ -268,9 +268,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inlining a slightly complex print function (containing an if)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -341,7 +342,7 @@ Uplifting [] best 99 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inlining a slightly complex print function (containing an if)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -460,7 +461,7 @@ Score: 18
 
   // File Comments
 // Test inlining a slightly complex print function (containing an if)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-function-level2.log b/src/test/ref/inline-function-level2.log
index 88f4598eb..1be2c2af4 100644
--- a/src/test/ref/inline-function-level2.log
+++ b/src/test/ref/inline-function-level2.log
@@ -613,9 +613,10 @@ Allocated zp ZP_BYTE:14 [ main::plot1_xpos#0 ]
 Allocated zp ZP_BYTE:15 [ main::plot2_xpos#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Inline functions in two levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -870,7 +871,7 @@ Allocated (was zp ZP_WORD:11) zp ZP_WORD:10 [ cur_line#10 cur_line#11 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Inline functions in two levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1199,7 +1200,7 @@ Score: 2036
 
   // File Comments
 // Inline functions in two levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-function-min.log b/src/test/ref/inline-function-min.log
index 1e5c264e7..5994f8e3a 100644
--- a/src/test/ref/inline-function-min.log
+++ b/src/test/ref/inline-function-min.log
@@ -290,9 +290,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test minimal inline function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -381,7 +382,7 @@ Uplifting [] best 138 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test minimal inline function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -532,7 +533,7 @@ Score: 24
 
   // File Comments
 // Test minimal inline function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-function-print.log b/src/test/ref/inline-function-print.log
index 2cb0676a5..953544d1a 100644
--- a/src/test/ref/inline-function-print.log
+++ b/src/test/ref/inline-function-print.log
@@ -297,9 +297,10 @@ Allocated zp ZP_BYTE:4 [ main::print2_i#2 main::print2_i#1 ]
 Allocated zp ZP_BYTE:5 [ main::print2_j#2 main::print2_j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // TEst inlining a slightly complex print function (containing a loop)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -441,7 +442,7 @@ Uplifting [] best 744 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // TEst inlining a slightly complex print function (containing a loop)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -618,7 +619,7 @@ Score: 576
 
   // File Comments
 // TEst inlining a slightly complex print function (containing a loop)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-function.log b/src/test/ref/inline-function.log
index 06ceec868..135316fe2 100644
--- a/src/test/ref/inline-function.log
+++ b/src/test/ref/inline-function.log
@@ -419,10 +419,11 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inline function
 // Splits screen so upper half is lower case and lower half lower case
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -518,7 +519,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inline function
 // Splits screen so upper half is lower case and lower half lower case
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -675,7 +676,7 @@ Score: 1972
   // File Comments
 // Test inline function
 // Splits screen so upper half is lower case and lower half lower case
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-kasm-clobber.log b/src/test/ref/inline-kasm-clobber.log
index 945eed313..a70049037 100644
--- a/src/test/ref/inline-kasm-clobber.log
+++ b/src/test/ref/inline-kasm-clobber.log
@@ -226,9 +226,10 @@ Allocated zp ZP_BYTE:3 [ main::l#4 main::l#1 ]
 Allocated zp ZP_BYTE:4 [ main::m#2 main::m#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that inline kickasm supports the clobbering directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -361,7 +362,7 @@ Uplifting [main] best 276433 combination zp ZP_BYTE:2 [ main::k#6 main::k#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that inline kickasm supports the clobbering directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -532,7 +533,7 @@ Score: 266411
 
   // File Comments
 // Tests that inline kickasm supports the clobbering directive
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-kasm-data.log b/src/test/ref/inline-kasm-data.log
index 9ced188ba..9006e935e 100644
--- a/src/test/ref/inline-kasm-data.log
+++ b/src/test/ref/inline-kasm-data.log
@@ -183,9 +183,10 @@ Allocated zp ZP_WORD:5 [ main::cols#2 main::cols#1 ]
 Allocated zp ZP_BYTE:7 [ main::sin#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Example of inline kickasm data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -311,7 +312,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::cols#2 main::cols#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Example of inline kickasm data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -458,7 +459,7 @@ Score: 3406
 
   // File Comments
 // Example of inline kickasm data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-kasm-loop.log b/src/test/ref/inline-kasm-loop.log
index 8a64d4f70..4ceffd8e1 100644
--- a/src/test/ref/inline-kasm-loop.log
+++ b/src/test/ref/inline-kasm-loop.log
@@ -99,9 +99,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Example of inline kickasm in a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -153,7 +154,7 @@ Uplifting [] best 283 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Example of inline kickasm in a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -226,7 +227,7 @@ Score: 268
 
   // File Comments
 // Example of inline kickasm in a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-kasm-refout.log b/src/test/ref/inline-kasm-refout.log
index 5417790e6..bb795b16b 100644
--- a/src/test/ref/inline-kasm-refout.log
+++ b/src/test/ref/inline-kasm-refout.log
@@ -94,9 +94,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates how inline kickassembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -148,7 +149,7 @@ Uplifting [] best 277 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates how inline kickassembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -224,7 +225,7 @@ Score: 262
 
   // File Comments
 // Illustrates how inline kickassembler can reference data from the outside program
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-kasm-resource.log b/src/test/ref/inline-kasm-resource.log
index 31917fd27..d57da2fcf 100644
--- a/src/test/ref/inline-kasm-resource.log
+++ b/src/test/ref/inline-kasm-resource.log
@@ -165,9 +165,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Example of inline kickasm resource data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -236,7 +237,7 @@ Uplifting [] best 2605 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Example of inline kickasm resource data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -333,7 +334,7 @@ Score: 2588
 
   // File Comments
 // Example of inline kickasm resource data
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-pointer-0.log b/src/test/ref/inline-pointer-0.log
index af842d94e..f1aca32ca 100644
--- a/src/test/ref/inline-pointer-0.log
+++ b/src/test/ref/inline-pointer-0.log
@@ -100,9 +100,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -148,7 +149,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -215,7 +216,7 @@ Score: 12
 
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-pointer-1.log b/src/test/ref/inline-pointer-1.log
index 425d7c244..f39c063b2 100644
--- a/src/test/ref/inline-pointer-1.log
+++ b/src/test/ref/inline-pointer-1.log
@@ -181,9 +181,10 @@ Allocated zp ZP_BYTE:3 [ puta::pl#2 ]
 Allocated zp ZP_WORD:4 [ puta::screen#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -279,7 +280,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ puta::screen#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -400,7 +401,7 @@ Score: 48
 
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-pointer-2.log b/src/test/ref/inline-pointer-2.log
index af8a4bbdd..2a37830fe 100644
--- a/src/test/ref/inline-pointer-2.log
+++ b/src/test/ref/inline-pointer-2.log
@@ -119,9 +119,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -167,7 +168,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -234,7 +235,7 @@ Score: 12
 
   // File Comments
 // Tests creating a literal pointer from two bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-string-2.log b/src/test/ref/inline-string-2.log
index f6e5543da..f65a752fd 100644
--- a/src/test/ref/inline-string-2.log
+++ b/src/test/ref/inline-string-2.log
@@ -346,9 +346,10 @@ Allocated zp ZP_WORD:5 [ print_msg::msg#3 ]
 Allocated zp ZP_WORD:7 [ print::msg#2 print::msg#0 print::msg#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Inline Strings in assignments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -521,7 +522,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ print_msg::msg#3 print::msg#2 print:
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Inline Strings in assignments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -741,7 +742,7 @@ Score: 612
 
   // File Comments
 // Inline Strings in assignments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-string-3.log b/src/test/ref/inline-string-3.log
index 18eb42855..54899268b 100644
--- a/src/test/ref/inline-string-3.log
+++ b/src/test/ref/inline-string-3.log
@@ -147,11 +147,12 @@ Complete equivalence classes
 Allocated zp ZP_WORD:2 [ main::ptr#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test assigning address of inline string to pointer
 // The result should be an labelled .text in the ASM
 // Erroneously tries to inline the string completely leading to a CompileError
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -218,7 +219,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Test assigning address of inline string to pointer
 // The result should be an labelled .text in the ASM
 // Erroneously tries to inline the string completely leading to a CompileError
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -309,7 +310,7 @@ Score: 43
 // Test assigning address of inline string to pointer
 // The result should be an labelled .text in the ASM
 // Erroneously tries to inline the string completely leading to a CompileError
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-string.log b/src/test/ref/inline-string.log
index 779343aa1..2abb7f177 100644
--- a/src/test/ref/inline-string.log
+++ b/src/test/ref/inline-string.log
@@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ]
 Allocated zp ZP_WORD:4 [ print::msg#4 print::msg#6 print::msg#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -398,7 +399,7 @@ Uplifting [main] best 706 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -589,7 +590,7 @@ Score: 605
 
   // File Comments
 // Inline Strings in method calls are automatically converted to local constant variables byte[] st = "..."; - generating an ASM .text).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-word-0.log b/src/test/ref/inline-word-0.log
index 76ae6d70e..9190fb900 100644
--- a/src/test/ref/inline-word-0.log
+++ b/src/test/ref/inline-word-0.log
@@ -119,9 +119,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -170,7 +171,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Score: 18
 
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-word-1.log b/src/test/ref/inline-word-1.log
index 24f92f963..1d78a2f9f 100644
--- a/src/test/ref/inline-word-1.log
+++ b/src/test/ref/inline-word-1.log
@@ -119,9 +119,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -170,7 +171,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Score: 18
 
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-word-2.log b/src/test/ref/inline-word-2.log
index a73606977..91a9e092d 100644
--- a/src/test/ref/inline-word-2.log
+++ b/src/test/ref/inline-word-2.log
@@ -119,9 +119,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -170,7 +171,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Score: 18
 
   // File Comments
 // Tests minimal inline word
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inline-word.log b/src/test/ref/inline-word.log
index 7ae2f6f8b..76eec335a 100644
--- a/src/test/ref/inline-word.log
+++ b/src/test/ref/inline-word.log
@@ -235,8 +235,9 @@ Allocated zp ZP_BYTE:3 [ main::l#2 main::l#1 ]
 Allocated zp ZP_WORD:4 [ main::w#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -347,7 +348,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ main::w#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -493,7 +494,7 @@ FINAL ASSEMBLER
 Score: 3381
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inlinearrayproblem.log b/src/test/ref/inlinearrayproblem.log
index 7a9c04c85..cba45dfd5 100644
--- a/src/test/ref/inlinearrayproblem.log
+++ b/src/test/ref/inlinearrayproblem.log
@@ -147,10 +147,11 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters.
 // The following places the text at the start of the main-function - and JSR's straight into the text - not the code.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -231,7 +232,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters.
 // The following places the text at the start of the main-function - and JSR's straight into the text - not the code.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -341,7 +342,7 @@ Score: 281
   // File Comments
 // Arrays / strings allocated inline destroy functions (because they are allocated where the call enters.
 // The following places the text at the start of the main-function - and JSR's straight into the text - not the code.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inmem-const-array.log b/src/test/ref/inmem-const-array.log
index ba85b9ad2..ff2080b59 100644
--- a/src/test/ref/inmem-const-array.log
+++ b/src/test/ref/inmem-const-array.log
@@ -241,8 +241,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::j#3 main::j#4 main::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -354,7 +355,7 @@ Uplifting [] best 553 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -507,7 +508,7 @@ FINAL ASSEMBLER
 Score: 361
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inmemarray.log b/src/test/ref/inmemarray.log
index ff737029c..0695aee56 100644
--- a/src/test/ref/inmemarray.log
+++ b/src/test/ref/inmemarray.log
@@ -210,8 +210,9 @@ Allocated zp ZP_BYTE:2 [ main::j#3 main::j#4 main::j#1 ]
 Allocated zp ZP_BYTE:3 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -313,7 +314,7 @@ Uplifting [] best 483 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -451,7 +452,7 @@ FINAL ASSEMBLER
 Score: 291
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inmemstring.log b/src/test/ref/inmemstring.log
index afedb59e1..113063a5c 100644
--- a/src/test/ref/inmemstring.log
+++ b/src/test/ref/inmemstring.log
@@ -203,8 +203,9 @@ Allocated zp ZP_BYTE:2 [ main::i#3 main::i#4 main::i#1 ]
 Allocated zp ZP_WORD:3 [ main::cursor#2 main::cursor#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -319,7 +320,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::cursor#2 main::cursor#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -472,7 +473,7 @@ FINAL ASSEMBLER
 Score: 636
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/inner-increment-problem.log b/src/test/ref/inner-increment-problem.log
index 1f0489d3c..1b518de59 100644
--- a/src/test/ref/inner-increment-problem.log
+++ b/src/test/ref/inner-increment-problem.log
@@ -152,9 +152,10 @@ Allocated zp ZP_WORD:4 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:6 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Inner increment is not being done properly (screen++)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -254,7 +255,7 @@ Uplifting [] best 988 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Inner increment is not being done properly (screen++)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -390,7 +391,7 @@ Score: 866
 
   // File Comments
 // Inner increment is not being done properly (screen++)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/int-conversion.log b/src/test/ref/int-conversion.log
index b15ed0772..0450ccdc8 100644
--- a/src/test/ref/int-conversion.log
+++ b/src/test/ref/int-conversion.log
@@ -1635,9 +1635,10 @@ Allocated zp ZP_BYTE:5 [ assertType::t2#42 ]
 Allocated zp ZP_BYTE:6 [ idx#105 idx#108 idx#26 idx#40 idx#47 idx#19 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2492,7 +2493,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assertType::t2#42 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3601,7 +3602,7 @@ Score: 1129
 
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/int-literals.log b/src/test/ref/int-literals.log
index fe9bd87e2..028b9bbf1 100644
--- a/src/test/ref/int-literals.log
+++ b/src/test/ref/int-literals.log
@@ -759,9 +759,10 @@ Allocated zp ZP_BYTE:5 [ assertType::t2#15 ]
 Allocated zp ZP_BYTE:6 [ idx#41 idx#20 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1166,7 +1167,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ assertType::t2#15 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1689,7 +1690,7 @@ Score: 754
 
   // File Comments
 // Tests different integer literal types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/interrupt-volatile-reuse-problem1.log b/src/test/ref/interrupt-volatile-reuse-problem1.log
index 554015fbd..bb4f0ac81 100644
--- a/src/test/ref/interrupt-volatile-reuse-problem1.log
+++ b/src/test/ref/interrupt-volatile-reuse-problem1.log
@@ -172,9 +172,10 @@ Allocated zp ZP_BYTE:2 [ col1#0 col1#1 ]
 Allocated zp ZP_BYTE:3 [ col2#0 col2#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -262,7 +263,7 @@ Uplifting [] best 73 combination zp ZP_BYTE:3 [ col2#0 col2#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -370,7 +371,7 @@ Score: 67
 
   // File Comments
 // Illustrates problem where volatiles reuse the same ZP addresses for multiple overlapping volatiles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/interrupt-volatile-reuse-problem2.log b/src/test/ref/interrupt-volatile-reuse-problem2.log
index f593715bf..795a3fd51 100644
--- a/src/test/ref/interrupt-volatile-reuse-problem2.log
+++ b/src/test/ref/interrupt-volatile-reuse-problem2.log
@@ -328,9 +328,10 @@ Allocated zp ZP_BYTE:5 [ col1#0 col1#1 ]
 Allocated zp ZP_BYTE:6 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates problem where volatiles reuse ZP addresses of other variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -507,7 +508,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:3 [ col1#0 col1#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates problem where volatiles reuse ZP addresses of other variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -722,7 +723,7 @@ Score: 223704
 
   // File Comments
 // Illustrates problem where volatiles reuse ZP addresses of other variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-hardware-clobber-jsr.log b/src/test/ref/irq-hardware-clobber-jsr.log
index f462e212f..888bc71ae 100644
--- a/src/test/ref/irq-hardware-clobber-jsr.log
+++ b/src/test/ref/irq-hardware-clobber-jsr.log
@@ -292,9 +292,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -457,7 +458,7 @@ Removing interrupt register storage ldy #00 in SEG25 [16] return  - exit interru
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -651,7 +652,7 @@ Score: 224
 
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-hardware-clobber.log b/src/test/ref/irq-hardware-clobber.log
index 0b2608949..47a7d55b2 100644
--- a/src/test/ref/irq-hardware-clobber.log
+++ b/src/test/ref/irq-hardware-clobber.log
@@ -262,9 +262,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -409,7 +410,7 @@ Removing interrupt register storage ldy #00 in SEG27 [17] return  - exit interru
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -583,7 +584,7 @@ Score: 212
 
   // File Comments
 // A minimal working raster hardware IRQ with clobber-based register savings
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-hardware.log b/src/test/ref/irq-hardware.log
index 1f7b89fd6..c0e28e364 100644
--- a/src/test/ref/irq-hardware.log
+++ b/src/test/ref/irq-hardware.log
@@ -262,9 +262,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -402,7 +403,7 @@ Uplifting [] best 314 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -582,7 +583,7 @@ Score: 296
 
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-idx-problem.log b/src/test/ref/irq-idx-problem.log
index e7a29583b..33aeadd44 100644
--- a/src/test/ref/irq-idx-problem.log
+++ b/src/test/ref/irq-idx-problem.log
@@ -463,9 +463,10 @@ Allocated zp ZP_BYTE:3 [ table_driven_irq::idx#0 ]
 Allocated zp ZP_BYTE:4 [ table_driven_irq::val#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test interrupt routine using a variable between calls (irq_idx)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -677,7 +678,7 @@ Uplifting [] best 762 combination zp ZP_BYTE:2 [ irq_idx#3 irq_idx#4 irq_idx#0 i
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test interrupt routine using a variable between calls (irq_idx)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -939,7 +940,7 @@ Score: 604
 
   // File Comments
 // Test interrupt routine using a variable between calls (irq_idx)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-kernel-minimal.log b/src/test/ref/irq-kernel-minimal.log
index ab823f535..0e9db3c38 100644
--- a/src/test/ref/irq-kernel-minimal.log
+++ b/src/test/ref/irq-kernel-minimal.log
@@ -135,9 +135,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -215,7 +216,7 @@ Uplifting [] best 55 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -320,7 +321,7 @@ Score: 37
 
   // File Comments
 // A minimal working IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-kernel.log b/src/test/ref/irq-kernel.log
index 9eebbf347..3a3947ff6 100644
--- a/src/test/ref/irq-kernel.log
+++ b/src/test/ref/irq-kernel.log
@@ -200,9 +200,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -310,7 +311,7 @@ Uplifting [] best 89 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -454,7 +455,7 @@ Score: 71
 
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-local-var-overlap-problem.log b/src/test/ref/irq-local-var-overlap-problem.log
index d0722eeca..28d33a6e1 100644
--- a/src/test/ref/irq-local-var-overlap-problem.log
+++ b/src/test/ref/irq-local-var-overlap-problem.log
@@ -898,9 +898,10 @@ Allocated zp ZP_BYTE:20 [ sub_irq::$0 ]
 Allocated zp ZP_BYTE:21 [ sub_irq::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1430,7 +1431,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:9 [ sub_irq::i#6 sub_irq::i#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2071,7 +2072,7 @@ Score: 314173644
 
   // File Comments
 // Illustrates a problem where local variables inside an IRQ are assigned the same zeropage as a variable outside the IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-raster.log b/src/test/ref/irq-raster.log
index 88f1a9324..986baa319 100644
--- a/src/test/ref/irq-raster.log
+++ b/src/test/ref/irq-raster.log
@@ -200,9 +200,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -310,7 +311,7 @@ Uplifting [] best 89 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -454,7 +455,7 @@ Score: 71
 
   // File Comments
 // A minimal working raster IRQ
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/irq-volatile-bool-problem.log b/src/test/ref/irq-volatile-bool-problem.log
index bbd509a4e..707c56293 100644
--- a/src/test/ref/irq-volatile-bool-problem.log
+++ b/src/test/ref/irq-volatile-bool-problem.log
@@ -315,10 +315,11 @@ Complete equivalence classes
 Allocated zp ZP_BOOL:2 [ framedone#10 framedone#1 framedone#11 framedone#0 framedone#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly
 // because it is assigned to the A register
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -466,7 +467,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly
 // because it is assigned to the A register
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -667,7 +668,7 @@ Score: 1025
   // File Comments
 // Illustrates a problem where a volatile bool modified at the end of an IRQ is not stored properly
 // because it is assigned to the A register
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/iterarray.log b/src/test/ref/iterarray.log
index a734ac6d4..c5f323760 100644
--- a/src/test/ref/iterarray.log
+++ b/src/test/ref/iterarray.log
@@ -150,8 +150,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -224,7 +225,7 @@ Uplifting [] best 303 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -325,7 +326,7 @@ FINAL ASSEMBLER
 Score: 201
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/keyboard-glitch.log b/src/test/ref/keyboard-glitch.log
index 2915b68b8..e47dd327d 100644
--- a/src/test/ref/keyboard-glitch.log
+++ b/src/test/ref/keyboard-glitch.log
@@ -701,6 +701,7 @@ Allocated zp ZP_BYTE:16 [ keyboard_key_pressed::return#10 ]
 Allocated zp ZP_BYTE:17 [ pressed::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Exploring keyboard glitch that finds "C" press when pressing space
 // The glitch is caused by the "normal" C64 interrupt occuring just as the keyboard is read.
@@ -709,7 +710,7 @@ INITIAL ASM
 // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again.
 // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border)
 // but never when they are disabled (red border)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1060,7 +1061,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again.
 // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border)
 // but never when they are disabled (red border)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1465,7 +1466,7 @@ Score: 3151
 // Press "C" to enter pressed state (increaded bgcol) - and "SPACE" to leave presssed state again.
 // Holding SPACE will sometimes trigger the pressed state when normal interrupts are enabled (green border)
 // but never when they are disabled (red border)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/line-anim.log b/src/test/ref/line-anim.log
index c3338283c..1bbb7dcd5 100644
--- a/src/test/ref/line-anim.log
+++ b/src/test/ref/line-anim.log
@@ -2780,9 +2780,10 @@ Allocated zp ZP_BYTE:92 [ bitmap_init::$5 ]
 Allocated zp ZP_BYTE:93 [ bitmap_init::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Animated lines drawn on a single color bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4148,7 +4149,7 @@ Allocated (was zp ZP_BYTE:90) zp ZP_BYTE:35 [ bitmap_init::$7 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Animated lines drawn on a single color bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5611,7 +5612,7 @@ Score: 21969
 
   // File Comments
 // Animated lines drawn on a single color bitmap
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/linegen.log b/src/test/ref/linegen.log
index 9c72e5b1f..fc0a67680 100644
--- a/src/test/ref/linegen.log
+++ b/src/test/ref/linegen.log
@@ -2352,10 +2352,11 @@ Allocated zp ZP_BYTE:58 [ divr16u::$2 ]
 Allocated zp ZP_WORD:59 [ rem16u#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Linear table generator
 // Work in progress towards a sinus generator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3535,7 +3536,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Linear table generator
 // Work in progress towards a sinus generator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4918,7 +4919,7 @@ Score: 13523
   // File Comments
 // Linear table generator
 // Work in progress towards a sinus generator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/literal-char-minus-number.log b/src/test/ref/literal-char-minus-number.log
index b179a55ff..ac8d4f0ee 100644
--- a/src/test/ref/literal-char-minus-number.log
+++ b/src/test/ref/literal-char-minus-number.log
@@ -80,9 +80,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests subtracting a number from a literal char
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -128,7 +129,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests subtracting a number from a literal char
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -195,7 +196,7 @@ Score: 12
 
   // File Comments
 // Tests subtracting a number from a literal char
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/literal-strings.log b/src/test/ref/literal-strings.log
index e6a7b6a2a..c61837376 100644
--- a/src/test/ref/literal-strings.log
+++ b/src/test/ref/literal-strings.log
@@ -145,9 +145,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests literal strings with and without zero-termination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -226,7 +227,7 @@ Uplifting [] best 383 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests literal strings with and without zero-termination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -332,7 +333,7 @@ Score: 281
 
   // File Comments
 // Tests literal strings with and without zero-termination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/literals.log b/src/test/ref/literals.log
index 3c97af899..69c551595 100644
--- a/src/test/ref/literals.log
+++ b/src/test/ref/literals.log
@@ -187,8 +187,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -276,7 +277,7 @@ Uplifting [] best 395 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -390,7 +391,7 @@ FINAL ASSEMBLER
 Score: 293
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/liverange-call-problem.log b/src/test/ref/liverange-call-problem.log
index 5fb603033..09f18b1c7 100644
--- a/src/test/ref/liverange-call-problem.log
+++ b/src/test/ref/liverange-call-problem.log
@@ -300,10 +300,11 @@ Allocated zp ZP_WORD:2 [ w2#10 w2#11 ]
 Allocated zp ZP_WORD:4 [ w1#11 w1#12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars.
 // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -441,7 +442,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars.
 // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -633,7 +634,7 @@ Score: 110
   // File Comments
 // Live ranges were not functioning properly, when multiple method calls were chained - each modifying different vars.
 // w1 and w2 ended up having the same zero-page register as their live range was not propagated properly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/liverange-problem-0.log b/src/test/ref/liverange-problem-0.log
index 15732c128..fd9420d1f 100644
--- a/src/test/ref/liverange-problem-0.log
+++ b/src/test/ref/liverange-problem-0.log
@@ -227,12 +227,13 @@ Allocated zp ZP_WORD:10 [ SCREEN_2#0 ]
 Allocated zp ZP_WORD:12 [ malloc::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Error where the compiler is reusing the same ZP for two byte* variables.
 // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4
 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges
 // CallPath code must be rewritten to use @begin as the outermost call instead of main()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -372,7 +373,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4
 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges
 // CallPath code must be rewritten to use @begin as the outermost call instead of main()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -531,7 +532,7 @@ Score: 98
 // SCREEN_1 and SCREEN_2 are both allocated to ZP: 4
 // Problem is that outside main() scope statements have zero call-paths and then isStatementAllocationOverlapping() never checks liveranges
 // CallPath code must be rewritten to use @begin as the outermost call instead of main()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/liverange.log b/src/test/ref/liverange.log
index 366b01195..44e7f7da5 100644
--- a/src/test/ref/liverange.log
+++ b/src/test/ref/liverange.log
@@ -272,8 +272,9 @@ Allocated zp ZP_BYTE:8 [ main::a#2 ]
 Allocated zp ZP_BYTE:9 [ inci::return#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -404,7 +405,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:2 [ main::a#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -551,7 +552,7 @@ FINAL ASSEMBLER
 Score: 58
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/local-string.log b/src/test/ref/local-string.log
index b74e3750d..9dbd50c3e 100644
--- a/src/test/ref/local-string.log
+++ b/src/test/ref/local-string.log
@@ -133,9 +133,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -212,7 +213,7 @@ Uplifting [] best 333 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -313,7 +314,7 @@ Score: 261
 
   // File Comments
 // Local constant strings are placed at the start of the method. This means the generated ASM jumps / calls straignt into the constant string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/localscope-loops.log b/src/test/ref/localscope-loops.log
index 292e2fedf..9d2af6834 100644
--- a/src/test/ref/localscope-loops.log
+++ b/src/test/ref/localscope-loops.log
@@ -174,9 +174,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::i1#2 main::i1#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates introducing local scopes inside loops etc
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -274,7 +275,7 @@ Uplifting [] best 478 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates introducing local scopes inside loops etc
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -400,7 +401,7 @@ Score: 316
 
   // File Comments
 // Illustrates introducing local scopes inside loops etc
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/localscope-simple.log b/src/test/ref/localscope-simple.log
index 53cc9216c..41caefcb8 100644
--- a/src/test/ref/localscope-simple.log
+++ b/src/test/ref/localscope-simple.log
@@ -96,9 +96,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests anonymous scopes inside functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -150,7 +151,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests anonymous scopes inside functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -226,7 +227,7 @@ Score: 18
 
   // File Comments
 // Tests anonymous scopes inside functions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/longbranch-interrupt-problem.log b/src/test/ref/longbranch-interrupt-problem.log
index 7568921fc..604de08e6 100644
--- a/src/test/ref/longbranch-interrupt-problem.log
+++ b/src/test/ref/longbranch-interrupt-problem.log
@@ -240,9 +240,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ col#10 col#12 col#0 col#1 col#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that long branch fixing works with interrupt exits (to $ea81)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -350,7 +351,7 @@ Uplifting [] best 1521 combination zp ZP_BYTE:2 [ col#10 col#12 col#0 col#1 col#
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that long branch fixing works with interrupt exits (to $ea81)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -498,7 +499,7 @@ Score: 888
 
   // File Comments
 // Tests that long branch fixing works with interrupt exits (to $ea81)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/longjump.log b/src/test/ref/longjump.log
index ed1c6194c..2f013d9d3 100644
--- a/src/test/ref/longjump.log
+++ b/src/test/ref/longjump.log
@@ -120,9 +120,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal example program generating a long jump
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -447,7 +448,7 @@ Uplifting [] best 5383 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal example program generating a long jump
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -802,7 +803,7 @@ Score: 5311
 
   // File Comments
 // Minimal example program generating a long jump
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/longjump2.log b/src/test/ref/longjump2.log
index 3a5309f13..233bac30f 100644
--- a/src/test/ref/longjump2.log
+++ b/src/test/ref/longjump2.log
@@ -222,9 +222,10 @@ Allocated zp ZP_BYTE:2 [ long2::i#2 long2::i#1 ]
 Allocated zp ZP_BYTE:3 [ long1::i#2 long1::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal example program generating two long jumps
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -864,7 +865,7 @@ Uplifting [] best 10778 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal example program generating two long jumps
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1552,7 +1553,7 @@ Score: 10640
 
   // File Comments
 // Minimal example program generating two long jumps
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-break-continue.log b/src/test/ref/loop-break-continue.log
index 4541c1770..374707d22 100644
--- a/src/test/ref/loop-break-continue.log
+++ b/src/test/ref/loop-break-continue.log
@@ -203,10 +203,11 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_WORD:3 [ main::screen#2 main::screen#5 main::screen#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates both break & continue statements in a loop
 // Prints a message ending at '@' skipping all spaces
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -320,7 +321,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates both break & continue statements in a loop
 // Prints a message ending at '@' skipping all spaces
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -461,7 +462,7 @@ Score: 651
   // File Comments
 // Illustrates both break & continue statements in a loop
 // Prints a message ending at '@' skipping all spaces
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-break-nested.log b/src/test/ref/loop-break-nested.log
index a0d38683d..84b2dd979 100644
--- a/src/test/ref/loop-break-nested.log
+++ b/src/test/ref/loop-break-nested.log
@@ -211,9 +211,10 @@ Allocated zp ZP_WORD:2 [ main::line#2 main::line#1 ]
 Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -340,7 +341,7 @@ Uplifting [] best 4528 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -494,7 +495,7 @@ Score: 3256
 
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-break.log b/src/test/ref/loop-break.log
index 6691d1594..ae85de097 100644
--- a/src/test/ref/loop-break.log
+++ b/src/test/ref/loop-break.log
@@ -136,9 +136,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -219,7 +220,7 @@ Uplifting [] best 383 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -325,7 +326,7 @@ Score: 251
 
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-continue.log b/src/test/ref/loop-continue.log
index 0d82efecf..db54f86ea 100644
--- a/src/test/ref/loop-continue.log
+++ b/src/test/ref/loop-continue.log
@@ -144,9 +144,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -227,7 +228,7 @@ Uplifting [] best 413 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -338,7 +339,7 @@ Score: 251
 
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-problem.log b/src/test/ref/loop-problem.log
index 3662b1d3c..4865a8c6a 100644
--- a/src/test/ref/loop-problem.log
+++ b/src/test/ref/loop-problem.log
@@ -181,9 +181,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ b::i#2 b::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A simple loop results in NullPointerException during loop analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -287,7 +288,7 @@ Uplifting [] best 328 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A simple loop results in NullPointerException during loop analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -431,7 +432,7 @@ Score: 187
 
   // File Comments
 // A simple loop results in NullPointerException during loop analysis
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-problem2.log b/src/test/ref/loop-problem2.log
index 7a944da33..8f25ca3f6 100644
--- a/src/test/ref/loop-problem2.log
+++ b/src/test/ref/loop-problem2.log
@@ -242,8 +242,9 @@ Allocated zp ZP_WORD:2 [ print_cls::sc#2 print_cls::sc#1 ]
 Allocated zp ZP_BYTE:4 [ mode_ctrl::before#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -376,7 +377,7 @@ Uplifting [] best 932 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -553,7 +554,7 @@ FINAL ASSEMBLER
 Score: 764
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop-while-continue.log b/src/test/ref/loop-while-continue.log
index b26da7884..33d615618 100644
--- a/src/test/ref/loop-while-continue.log
+++ b/src/test/ref/loop-while-continue.log
@@ -150,9 +150,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -234,7 +235,7 @@ Uplifting [] best 3068 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -347,7 +348,7 @@ Score: 1856
 
   // File Comments
 // Tests break statement in a simple loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loop100.log b/src/test/ref/loop100.log
index 7afe55a6f..6b52b4135 100644
--- a/src/test/ref/loop100.log
+++ b/src/test/ref/loop100.log
@@ -109,8 +109,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -172,7 +173,7 @@ Uplifting [] best 193 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -262,7 +263,7 @@ FINAL ASSEMBLER
 Score: 91
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loopmin.log b/src/test/ref/loopmin.log
index cbeedffd2..0309bfad2 100644
--- a/src/test/ref/loopmin.log
+++ b/src/test/ref/loopmin.log
@@ -185,8 +185,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::s#2 main::s#4 main::s#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -275,7 +276,7 @@ Uplifting [] best 398 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -398,7 +399,7 @@ FINAL ASSEMBLER
 Score: 236
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loopnest.log b/src/test/ref/loopnest.log
index e7fa56b99..fcf01dcdc 100644
--- a/src/test/ref/loopnest.log
+++ b/src/test/ref/loopnest.log
@@ -189,8 +189,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ nest::j#2 nest::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -291,7 +292,7 @@ Uplifting [] best 2358 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -435,7 +436,7 @@ FINAL ASSEMBLER
 Score: 1353
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loopnest2.log b/src/test/ref/loopnest2.log
index 7808d3f21..9a64b48b8 100644
--- a/src/test/ref/loopnest2.log
+++ b/src/test/ref/loopnest2.log
@@ -409,8 +409,9 @@ Allocated zp ZP_BYTE:6 [ nest2::i#4 nest2::i#1 ]
 Allocated zp ZP_BYTE:7 [ nest2::j#2 nest2::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -619,7 +620,7 @@ Uplifting [main] best 23472243 combination zp ZP_BYTE:2 [ main::i#5 main::i#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -915,7 +916,7 @@ FINAL ASSEMBLER
 Score: 13472235
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loopnest3.log b/src/test/ref/loopnest3.log
index f9612be55..612d9ba2b 100644
--- a/src/test/ref/loopnest3.log
+++ b/src/test/ref/loopnest3.log
@@ -239,8 +239,9 @@ Allocated zp ZP_BYTE:4 [ b::i#0 ]
 Allocated zp ZP_BYTE:5 [ c::i#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -368,7 +369,7 @@ Uplifting [] best 2556 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -537,7 +538,7 @@ FINAL ASSEMBLER
 Score: 1521
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/loopsplit.log b/src/test/ref/loopsplit.log
index 527686ebe..b045154f7 100644
--- a/src/test/ref/loopsplit.log
+++ b/src/test/ref/loopsplit.log
@@ -204,8 +204,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::s#3 main::s#1 main::s#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -296,7 +297,7 @@ Uplifting [] best 365 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -429,7 +430,7 @@ FINAL ASSEMBLER
 Score: 260
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/malloc-0.log b/src/test/ref/malloc-0.log
index 352680979..0ce147c5b 100644
--- a/src/test/ref/malloc-0.log
+++ b/src/test/ref/malloc-0.log
@@ -275,9 +275,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Experiments with malloc() - a byte array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -373,7 +374,7 @@ Uplifting [] best 308 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Experiments with malloc() - a byte array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -513,7 +514,7 @@ Score: 185
 
   // File Comments
 // Experiments with malloc() - a byte array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/malloc-1.log b/src/test/ref/malloc-1.log
index e8fc5f9bc..4f23ac632 100644
--- a/src/test/ref/malloc-1.log
+++ b/src/test/ref/malloc-1.log
@@ -294,9 +294,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_WORD:3 [ main::w#2 main::w#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Experiments with malloc() - a word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -419,7 +420,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::w#2 main::w#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Experiments with malloc() - a word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -584,7 +585,7 @@ Score: 590
 
   // File Comments
 // Experiments with malloc() - a word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/mem-alignment.log b/src/test/ref/mem-alignment.log
index 8fba07d5f..6dd0bb3c8 100644
--- a/src/test/ref/mem-alignment.log
+++ b/src/test/ref/mem-alignment.log
@@ -192,9 +192,10 @@ Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
 Allocated zp ZP_BYTE:4 [ main::i1#2 main::i1#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that memory alignment of arrays work
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -302,7 +303,7 @@ Uplifting [] best 543 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that memory alignment of arrays work
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -442,7 +443,7 @@ Score: 381
 
   // File Comments
 // Test that memory alignment of arrays work
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/memcpy-0.log b/src/test/ref/memcpy-0.log
index 6babf6e4e..194d5dc41 100644
--- a/src/test/ref/memcpy-0.log
+++ b/src/test/ref/memcpy-0.log
@@ -522,9 +522,10 @@ Allocated zp ZP_WORD:10 [ memcpy::dst#2 memcpy::dst#4 memcpy::dst#1 ]
 Allocated zp ZP_WORD:12 [ memcpy::src_end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test memcpy - copy charset and screen using memcpy() from stdlib string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -732,7 +733,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:6 [ memcpy::nu
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test memcpy - copy charset and screen using memcpy() from stdlib string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1010,7 +1011,7 @@ Score: 711
 
   // File Comments
 // Test memcpy - copy charset and screen using memcpy() from stdlib string
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/memory-heap.log b/src/test/ref/memory-heap.log
index cdf970202..ef6be4e0c 100644
--- a/src/test/ref/memory-heap.log
+++ b/src/test/ref/memory-heap.log
@@ -434,9 +434,10 @@ Allocated zp ZP_BYTE:9 [ main::$4 ]
 Allocated zp ZP_WORD:10 [ malloc::mem#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Experiments with malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -643,7 +644,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::buf2#0 malloc::mem#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Experiments with malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -895,7 +896,7 @@ Score: 419
 
   // File Comments
 // Experiments with malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/min-fmul-16.log b/src/test/ref/min-fmul-16.log
index 7f9672a30..0a487dc89 100644
--- a/src/test/ref/min-fmul-16.log
+++ b/src/test/ref/min-fmul-16.log
@@ -1354,8 +1354,9 @@ Allocated zp ZP_BYTE:41 [ mulf_init::$10 ]
 Allocated zp ZP_BYTE:42 [ mulf_init::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2103,7 +2104,7 @@ Allocated (was zp ZP_DWORD:22) zp ZP_DWORD:18 [ mulf16u::return#0 main::r#0 mulf
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2917,7 +2918,7 @@ FINAL ASSEMBLER
 Score: 4311
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/mixed-array-0.log b/src/test/ref/mixed-array-0.log
index 9c2d7d007..9be4c46c8 100644
--- a/src/test/ref/mixed-array-0.log
+++ b/src/test/ref/mixed-array-0.log
@@ -116,9 +116,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -173,7 +174,7 @@ Uplifting [] best 45 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -249,7 +250,7 @@ Score: 30
 
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/mixed-array-1.log b/src/test/ref/mixed-array-1.log
index 43bccdb2e..d8d22ae75 100644
--- a/src/test/ref/mixed-array-1.log
+++ b/src/test/ref/mixed-array-1.log
@@ -117,9 +117,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -174,7 +175,7 @@ Uplifting [] best 45 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -250,7 +251,7 @@ Score: 30
 
   // File Comments
 // Test an array with mixed byte/number types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/modglobal.log b/src/test/ref/modglobal.log
index 1b89d8698..b41b5d2fe 100644
--- a/src/test/ref/modglobal.log
+++ b/src/test/ref/modglobal.log
@@ -358,8 +358,9 @@ Allocated zp ZP_BYTE:9 [ cnt#12 ]
 Allocated zp ZP_BYTE:10 [ inccnt::return#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -499,7 +500,7 @@ Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:2 [ cnt#12 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -663,7 +664,7 @@ FINAL ASSEMBLER
 Score: 64
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/modglobalmin.log b/src/test/ref/modglobalmin.log
index fb779350e..f75841ff8 100644
--- a/src/test/ref/modglobalmin.log
+++ b/src/test/ref/modglobalmin.log
@@ -193,8 +193,9 @@ Allocated zp ZP_BYTE:3 [ cnt#11 ]
 Allocated zp ZP_BYTE:4 [ cnt#13 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -289,7 +290,7 @@ Uplifting [inccnt] best 64 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -410,7 +411,7 @@ FINAL ASSEMBLER
 Score: 40
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/mul8u-min.log b/src/test/ref/mul8u-min.log
index a53d991e5..aef319d97 100644
--- a/src/test/ref/mul8u-min.log
+++ b/src/test/ref/mul8u-min.log
@@ -462,9 +462,10 @@ Allocated zp ZP_BYTE:15 [ main::$3 ]
 Allocated zp ZP_BYTE:16 [ mul8u::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal test of mul8u
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -706,7 +707,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ mul8u::mb#2 mul8u::mb#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal test of mul8u
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -991,7 +992,7 @@ Score: 70373
 
   // File Comments
 // Minimal test of mul8u
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log
index 3e8a602dd..5c81d96b8 100644
--- a/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log
+++ b/src/test/ref/multiplexer-irq/simple-multiplexer-irq.log
@@ -2400,9 +2400,10 @@ Allocated zp ZP_BYTE:32 [ plexShowSprite::$9 ]
 Allocated zp ZP_BYTE:33 [ plexShowSprite::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3451,7 +3452,7 @@ Allocated (was zp ZP_BYTE:24) zp ZP_BYTE:14 [ plexShowSprite::plex_sprite_idx2#0
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4536,7 +4537,7 @@ Score: 46296
 
   // File Comments
 // A simple usage of the flexible sprite multiplexer routine
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/multiply-2s.log b/src/test/ref/multiply-2s.log
index e33754cf3..2d4a819c9 100644
--- a/src/test/ref/multiply-2s.log
+++ b/src/test/ref/multiply-2s.log
@@ -248,9 +248,10 @@ Allocated zp ZP_BYTE:6 [ main::sb#0 ]
 Allocated zp ZP_BYTE:7 [ main::$12 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Check that multiplication by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -386,7 +387,7 @@ Uplifting [main] best 743 combination reg byte a [ main::$12 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Check that multiplication by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -521,7 +522,7 @@ Score: 641
 
   // File Comments
 // Check that multiplication by factors of 2 is converted to shifts
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/multiply-ns.log b/src/test/ref/multiply-ns.log
index 1b524677a..e9fa14493 100644
--- a/src/test/ref/multiply-ns.log
+++ b/src/test/ref/multiply-ns.log
@@ -542,9 +542,10 @@ Allocated zp ZP_BYTE:31 [ main::$67 ]
 Allocated zp ZP_BYTE:32 [ main::$29 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Check that multiplication by constants is converted to shift/add
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -999,7 +1000,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:3 [ main::$33 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Check that multiplication by constants is converted to shift/add
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1296,7 +1297,7 @@ Score: 2631
 
   // File Comments
 // Check that multiplication by constants is converted to shift/add
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/nes-array.log b/src/test/ref/nes-array.log
index 4c2ce8aee..a8ebbd608 100644
--- a/src/test/ref/nes-array.log
+++ b/src/test/ref/nes-array.log
@@ -286,10 +286,11 @@ Allocated zp ZP_BYTE:17 [ foo::$1 ]
 Allocated zp ZP_WORD:18 [ foo::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test a bit of array code from the NES forum
 // https://forums.nesdev.com/viewtopic.php?f=2&t=18735
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -468,7 +469,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test a bit of array code from the NES forum
 // https://forums.nesdev.com/viewtopic.php?f=2&t=18735
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -653,7 +654,7 @@ Score: 141
   // File Comments
 // Test a bit of array code from the NES forum
 // https://forums.nesdev.com/viewtopic.php?f=2&t=18735
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/no-recursion-heavy.log b/src/test/ref/no-recursion-heavy.log
index 5d36b48a0..68ac65619 100644
--- a/src/test/ref/no-recursion-heavy.log
+++ b/src/test/ref/no-recursion-heavy.log
@@ -2825,8 +2825,9 @@ Allocated zp ZP_BYTE:7 [ bd#116 bd#154 bd#114 bd#153 bd#113 bd#152 bd#112 bd#151
 Allocated zp ZP_BYTE:8 [ bd#117 bd#235 bd#236 bd#237 bd#238 bd#239 bd#240 bd#241 bd#242 bd#243 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3893,7 +3894,7 @@ Allocated (was zp ZP_BYTE:6) zp ZP_BYTE:5 [ bc#113 bc#172 bc#173 bc#174 bc#175 b
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5414,7 +5415,7 @@ FINAL ASSEMBLER
 Score: 913
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/noop-cast-elimination.log b/src/test/ref/noop-cast-elimination.log
index 016279c30..838218442 100644
--- a/src/test/ref/noop-cast-elimination.log
+++ b/src/test/ref/noop-cast-elimination.log
@@ -160,9 +160,10 @@ Allocated zp ZP_WORD:3 [ main::sw#2 main::sw#1 ]
 Allocated zp ZP_BYTE:5 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test elimination of noop-casts (signed byte to byte)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -269,7 +270,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::sw#2 main::sw#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test elimination of noop-casts (signed byte to byte)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -400,7 +401,7 @@ Score: 756
 
   // File Comments
 // Test elimination of noop-casts (signed byte to byte)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/norom-charset.log b/src/test/ref/norom-charset.log
index 179a3dd1a..55d9bef59 100644
--- a/src/test/ref/norom-charset.log
+++ b/src/test/ref/norom-charset.log
@@ -557,9 +557,10 @@ Allocated zp ZP_BYTE:13 [ gen_char3::$0 ]
 Allocated zp ZP_BYTE:14 [ gen_char3::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Generate a charset based on a 5x3 pattern stored in 2 bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -809,7 +810,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ main::char
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Generate a charset based on a 5x3 pattern stored in 2 bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1111,7 +1112,7 @@ Score: 45544
 
   // File Comments
 // Generate a charset based on a 5x3 pattern stored in 2 bytes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/number-conversion.log b/src/test/ref/number-conversion.log
index d0decb415..d924c51b5 100644
--- a/src/test/ref/number-conversion.log
+++ b/src/test/ref/number-conversion.log
@@ -1392,10 +1392,11 @@ Allocated zp ZP_BYTE:3 [ assertType::t2#35 ]
 Allocated zp ZP_BYTE:4 [ idx#79 idx#40 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests conversion of numbers to correct int types
 // See https://gitlab.com/camelot/kickc/issues/181
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2068,7 +2069,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests conversion of numbers to correct int types
 // See https://gitlab.com/camelot/kickc/issues/181
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2942,7 +2943,7 @@ Score: 506
   // File Comments
 // Tests conversion of numbers to correct int types
 // See https://gitlab.com/camelot/kickc/issues/181
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/number-inference-sum.log b/src/test/ref/number-inference-sum.log
index 3070f858a..ec8afe272 100644
--- a/src/test/ref/number-inference-sum.log
+++ b/src/test/ref/number-inference-sum.log
@@ -175,10 +175,11 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inference of number types using a long sum
 // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -239,7 +240,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inference of number types using a long sum
 // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -333,7 +334,7 @@ Score: 24
   // File Comments
 // Test inference of number types using a long sum
 // Currently fails - because the compiler does not handle byte+byte correctly (not truncating the result to 8 bits)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/number-type.log b/src/test/ref/number-type.log
index bf3ba2db7..fa1a5f5d8 100644
--- a/src/test/ref/number-type.log
+++ b/src/test/ref/number-type.log
@@ -528,9 +528,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the number type used for constant expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -706,7 +707,7 @@ Uplifting [] best 204 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the number type used for constant expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -892,7 +893,7 @@ Score: 180
 
   // File Comments
 // Tests the number type used for constant expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/operator-lohi-problem-1.log b/src/test/ref/operator-lohi-problem-1.log
index 0b77e9db5..afaa280ba 100644
--- a/src/test/ref/operator-lohi-problem-1.log
+++ b/src/test/ref/operator-lohi-problem-1.log
@@ -148,13 +148,14 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates problem with constant evaluation of lo/hi-operator
 // $20000 /$400 results in a byte value - confusing the lo/hi-evaluation
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -209,7 +210,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -286,7 +287,7 @@ Score: 18
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/operator-lohi-problem.log b/src/test/ref/operator-lohi-problem.log
index 123f8062c..44be38012 100644
--- a/src/test/ref/operator-lohi-problem.log
+++ b/src/test/ref/operator-lohi-problem.log
@@ -173,13 +173,14 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates problem with constant evaluation of lo/hi-operator
 // $20000 /$400 results in a byte value - confusing the lo/hi-evaluation
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -243,7 +244,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -332,7 +333,7 @@ Score: 28
 // which currently relies on getting the type from the literal value.
 // A fix could be adding support for "declared" types for constant literal values
 // - enabling the lo/hi to know that their operand is a word (from the cast).
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/overlap-allocation-2.log b/src/test/ref/overlap-allocation-2.log
index 742247414..b2267ba5b 100644
--- a/src/test/ref/overlap-allocation-2.log
+++ b/src/test/ref/overlap-allocation-2.log
@@ -279,9 +279,10 @@ Allocated zp ZP_BYTE:4 [ line::l#2 line::l#0 line::l#1 ]
 Allocated zp ZP_BYTE:5 [ plot::x#2 plot::x#0 plot::x#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -447,7 +448,7 @@ Uplifting [main] best 480 combination reg byte y [ main::j#2 main::j#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -658,7 +659,7 @@ Score: 303
 
   // File Comments
 // Two levels of functions to test that register allocation handles live ranges and call-ranges optimally to allocate the fewest possible ZP-variables
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/overlap-allocation.log b/src/test/ref/overlap-allocation.log
index a234a0548..a327b2dc3 100644
--- a/src/test/ref/overlap-allocation.log
+++ b/src/test/ref/overlap-allocation.log
@@ -276,10 +276,11 @@ Allocated zp ZP_BYTE:4 [ main::k#2 main::k#1 ]
 Allocated zp ZP_BYTE:5 [ plot::x#3 plot::x#0 plot::x#1 plot::x#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient.
 // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -439,7 +440,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient.
 // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -647,7 +648,7 @@ Score: 292
   // File Comments
 // Allocates ZP to j/k-variables even though all of i, j, k could be allocates to x and be more efficient.
 // Reason: Pass4RegisterUpliftCombinations.isAllocationOverlapping() believes i/j/k variables overlaps insode plot()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/plasma-center.log b/src/test/ref/plasma-center.log
index 767ceea56..ec9089767 100644
--- a/src/test/ref/plasma-center.log
+++ b/src/test/ref/plasma-center.log
@@ -5176,9 +5176,10 @@ Allocated zp ZP_BYTE:155 [ init_squares::$4 ]
 Allocated zp ZP_WORD:156 [ malloc::mem#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Plasma based on the distance/angle to the screen center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7679,7 +7680,7 @@ Allocated (was zp ZP_WORD:147) zp ZP_WORD:77 [ bsearch16u::result#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Plasma based on the distance/angle to the screen center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -10189,7 +10190,7 @@ Score: 1206219
 
   // File Comments
 // Plasma based on the distance/angle to the screen center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/platform-asm6502.asm b/src/test/ref/platform-asm6502.asm
new file mode 100644
index 000000000..cb6a84b34
--- /dev/null
+++ b/src/test/ref/platform-asm6502.asm
@@ -0,0 +1,13 @@
+// Tests the target platform ASM6502
+.pc = $1000 "Program"
+main: {
+    ldx #0
+  b1:
+    txa
+    sta TABLE,x
+    inx
+    cpx #$a
+    bcc b1
+    rts
+}
+  TABLE: .fill $a, 0
diff --git a/src/test/ref/platform-asm6502.cfg b/src/test/ref/platform-asm6502.cfg
new file mode 100644
index 000000000..3abd8f115
--- /dev/null
+++ b/src/test/ref/platform-asm6502.cfg
@@ -0,0 +1,21 @@
+@begin: scope:[]  from
+  [0] phi()
+  to:@1
+@1: scope:[]  from @begin
+  [1] phi()
+  [2] call main 
+  to:@end
+@end: scope:[]  from @1
+  [3] phi()
+main: scope:[main]  from @1
+  [4] phi()
+  to:main::@1
+main::@1: scope:[main]  from main main::@1
+  [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 )
+  [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2
+  [7] (byte) main::i#1 ← ++ (byte) main::i#2
+  [8] if((byte) main::i#1<(byte) $a) goto main::@1
+  to:main::@return
+main::@return: scope:[main]  from main::@1
+  [9] return 
+  to:@return
diff --git a/src/test/ref/platform-asm6502.log b/src/test/ref/platform-asm6502.log
new file mode 100644
index 000000000..bff8e0ef4
--- /dev/null
+++ b/src/test/ref/platform-asm6502.log
@@ -0,0 +1,319 @@
+Culled Empty Block (label) main::@2
+
+CONTROL FLOW GRAPH SSA
+@begin: scope:[]  from
+  (byte[$a]) TABLE#0 ← { fill( $a, 0) }
+  to:@1
+main: scope:[main]  from @1
+  (byte) main::i#0 ← (number) 0
+  to:main::@1
+main::@1: scope:[main]  from main main::@1
+  (byte) main::i#2 ← phi( main/(byte) main::i#0 main::@1/(byte) main::i#1 )
+  *((byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2
+  (byte) main::i#1 ← ++ (byte) main::i#2
+  (bool~) main::$0 ← (byte) main::i#1 < (number) $a
+  if((bool~) main::$0) goto main::@1
+  to:main::@return
+main::@return: scope:[main]  from main::@1
+  return 
+  to:@return
+@1: scope:[]  from @begin
+  call main 
+  to:@2
+@2: scope:[]  from @1
+  to:@end
+@end: scope:[]  from @2
+
+SYMBOL TABLE SSA
+(label) @1
+(label) @2
+(label) @begin
+(label) @end
+(byte[$a]) TABLE
+(byte[$a]) TABLE#0
+(void()) main()
+(bool~) main::$0
+(label) main::@1
+(label) main::@return
+(byte) main::i
+(byte) main::i#0
+(byte) main::i#1
+(byte) main::i#2
+
+Adding number conversion cast (unumber) 0 in (byte) main::i#0 ← (number) 0
+Adding number conversion cast (unumber) $a in (bool~) main::$0 ← (byte) main::i#1 < (number) $a
+Successful SSA optimization PassNAddNumberTypeConversions
+Inlining cast (byte) main::i#0 ← (unumber)(number) 0
+Successful SSA optimization Pass2InlineCast
+Simplifying constant integer cast 0
+Simplifying constant integer cast $a
+Successful SSA optimization PassNCastSimplification
+Finalized unsigned number type (byte) 0
+Finalized unsigned number type (byte) $a
+Successful SSA optimization PassNFinalizeNumberTypeConversions
+Simple Condition (bool~) main::$0 [6] if((byte) main::i#1<(byte) $a) goto main::@1
+Successful SSA optimization Pass2ConditionalJumpSimplification
+Constant right-side identified [0] (byte[$a]) TABLE#0 ← { fill( $a, 0) }
+Successful SSA optimization Pass2ConstantRValueConsolidation
+Constant (const byte[$a]) TABLE#0 = { fill( $a, 0) }
+Constant (const byte) main::i#0 = 0
+Successful SSA optimization Pass2ConstantIdentification
+Inlining constant with var siblings (const byte) main::i#0
+Constant inlined main::i#0 = (byte) 0
+Successful SSA optimization Pass2ConstantInlining
+Added new block during phi lifting main::@3(between main::@1 and main::@1)
+Adding NOP phi() at start of @begin
+Adding NOP phi() at start of @1
+Adding NOP phi() at start of @2
+Adding NOP phi() at start of @end
+Adding NOP phi() at start of main
+CALL GRAPH
+Calls in [] to main:2 
+
+Created 1 initial phi equivalence classes
+Coalesced [11] main::i#3 ← main::i#1
+Coalesced down to 1 phi equivalence classes
+Culled Empty Block (label) @2
+Culled Empty Block (label) main::@3
+Adding NOP phi() at start of @begin
+Adding NOP phi() at start of @1
+Adding NOP phi() at start of @end
+Adding NOP phi() at start of main
+
+FINAL CONTROL FLOW GRAPH
+@begin: scope:[]  from
+  [0] phi()
+  to:@1
+@1: scope:[]  from @begin
+  [1] phi()
+  [2] call main 
+  to:@end
+@end: scope:[]  from @1
+  [3] phi()
+main: scope:[main]  from @1
+  [4] phi()
+  to:main::@1
+main::@1: scope:[main]  from main main::@1
+  [5] (byte) main::i#2 ← phi( main/(byte) 0 main::@1/(byte) main::i#1 )
+  [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2
+  [7] (byte) main::i#1 ← ++ (byte) main::i#2
+  [8] if((byte) main::i#1<(byte) $a) goto main::@1
+  to:main::@return
+main::@return: scope:[main]  from main::@1
+  [9] return 
+  to:@return
+
+
+VARIABLE REGISTER WEIGHTS
+(byte[$a]) TABLE
+(void()) main()
+(byte) main::i
+(byte) main::i#1 16.5
+(byte) main::i#2 22.0
+
+Initial phi equivalence classes
+[ main::i#2 main::i#1 ]
+Complete equivalence classes
+[ main::i#2 main::i#1 ]
+Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
+
+INITIAL ASM
+Target platform is asm6502
+  // File Comments
+// Tests the target platform ASM6502
+  // Upstart
+.pc = $1000 "Program"
+  // Global Constants & labels
+  // @begin
+bbegin:
+  // [1] phi from @begin to @1 [phi:@begin->@1]
+b1_from_bbegin:
+  jmp b1
+  // @1
+b1:
+  // [2] call main 
+  // [4] phi from @1 to main [phi:@1->main]
+main_from_b1:
+  jsr main
+  // [3] phi from @1 to @end [phi:@1->@end]
+bend_from_b1:
+  jmp bend
+  // @end
+bend:
+  // main
+main: {
+    .label i = 2
+    // [5] phi from main to main::@1 [phi:main->main::@1]
+  b1_from_main:
+    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuz1=vbuc1 
+    lda #0
+    sta i
+    jmp b1
+    // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
+  b1_from_b1:
+    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy 
+    jmp b1
+    // main::@1
+  b1:
+    // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuz1=vbuz1 
+    ldy i
+    tya
+    sta TABLE,y
+    // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuz1=_inc_vbuz1 
+    inc i
+    // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuz1_lt_vbuc1_then_la1 
+    lda i
+    cmp #$a
+    bcc b1_from_b1
+    jmp breturn
+    // main::@return
+  breturn:
+    // [9] return 
+    rts
+}
+  // File Data
+  TABLE: .fill $a, 0
+
+REGISTER UPLIFT POTENTIAL REGISTERS
+Potential registers zp ZP_BYTE:2 [ main::i#2 main::i#1 ] : zp ZP_BYTE:2 , reg byte a , reg byte x , reg byte y , 
+
+REGISTER UPLIFT SCOPES
+Uplift Scope [main] 38.5: zp ZP_BYTE:2 [ main::i#2 main::i#1 ] 
+Uplift Scope [] 
+
+Uplifting [main] best 263 combination reg byte x [ main::i#2 main::i#1 ] 
+Uplifting [] best 263 combination 
+
+ASSEMBLER BEFORE OPTIMIZATION
+  // File Comments
+// Tests the target platform ASM6502
+  // Upstart
+.pc = $1000 "Program"
+  // Global Constants & labels
+  // @begin
+bbegin:
+  // [1] phi from @begin to @1 [phi:@begin->@1]
+b1_from_bbegin:
+  jmp b1
+  // @1
+b1:
+  // [2] call main 
+  // [4] phi from @1 to main [phi:@1->main]
+main_from_b1:
+  jsr main
+  // [3] phi from @1 to @end [phi:@1->@end]
+bend_from_b1:
+  jmp bend
+  // @end
+bend:
+  // main
+main: {
+    // [5] phi from main to main::@1 [phi:main->main::@1]
+  b1_from_main:
+    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 
+    ldx #0
+    jmp b1
+    // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
+  b1_from_b1:
+    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy 
+    jmp b1
+    // main::@1
+  b1:
+    // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuxx=vbuxx 
+    txa
+    sta TABLE,x
+    // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx 
+    inx
+    // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 
+    cpx #$a
+    bcc b1_from_b1
+    jmp breturn
+    // main::@return
+  breturn:
+    // [9] return 
+    rts
+}
+  // File Data
+  TABLE: .fill $a, 0
+
+ASSEMBLER OPTIMIZATIONS
+Removing instruction jmp b1
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Succesful ASM optimization Pass5NextJumpElimination
+Replacing label b1_from_b1 with b1
+Removing instruction b1_from_bbegin:
+Removing instruction b1:
+Removing instruction main_from_b1:
+Removing instruction bend_from_b1:
+Removing instruction b1_from_b1:
+Succesful ASM optimization Pass5RedundantLabelElimination
+Removing instruction bbegin:
+Removing instruction bend:
+Removing instruction b1_from_main:
+Removing instruction breturn:
+Succesful ASM optimization Pass5UnusedLabelElimination
+Removing instruction jsr main
+Succesful ASM optimization Pass5SkipBegin
+Removing instruction jmp b1
+Succesful ASM optimization Pass5NextJumpElimination
+
+FINAL SYMBOL TABLE
+(label) @1
+(label) @begin
+(label) @end
+(byte[$a]) TABLE
+(const byte[$a]) TABLE#0 TABLE = { fill( $a, 0) }
+(void()) main()
+(label) main::@1
+(label) main::@return
+(byte) main::i
+(byte) main::i#1 reg byte x 16.5
+(byte) main::i#2 reg byte x 22.0
+
+reg byte x [ main::i#2 main::i#1 ]
+
+
+FINAL ASSEMBLER
+Score: 161
+
+  // File Comments
+// Tests the target platform ASM6502
+  // Upstart
+.pc = $1000 "Program"
+  // Global Constants & labels
+  // @begin
+  // [1] phi from @begin to @1 [phi:@begin->@1]
+  // @1
+  // [2] call main 
+  // [4] phi from @1 to main [phi:@1->main]
+  // [3] phi from @1 to @end [phi:@1->@end]
+  // @end
+  // main
+main: {
+    // [5] phi from main to main::@1 [phi:main->main::@1]
+    // [5] phi (byte) main::i#2 = (byte) 0 [phi:main->main::@1#0] -- vbuxx=vbuc1 
+    ldx #0
+    // [5] phi from main::@1 to main::@1 [phi:main::@1->main::@1]
+    // [5] phi (byte) main::i#2 = (byte) main::i#1 [phi:main::@1->main::@1#0] -- register_copy 
+    // main::@1
+  b1:
+    // TABLE[i] = i
+    // [6] *((const byte[$a]) TABLE#0 + (byte) main::i#2) ← (byte) main::i#2 -- pbuc1_derefidx_vbuxx=vbuxx 
+    txa
+    sta TABLE,x
+    // for(char i=0;i<10;i++)
+    // [7] (byte) main::i#1 ← ++ (byte) main::i#2 -- vbuxx=_inc_vbuxx 
+    inx
+    // [8] if((byte) main::i#1<(byte) $a) goto main::@1 -- vbuxx_lt_vbuc1_then_la1 
+    cpx #$a
+    bcc b1
+    // main::@return
+    // }
+    // [9] return 
+    rts
+}
+  // File Data
+  TABLE: .fill $a, 0
+
diff --git a/src/test/ref/platform-asm6502.sym b/src/test/ref/platform-asm6502.sym
new file mode 100644
index 000000000..fb780ce61
--- /dev/null
+++ b/src/test/ref/platform-asm6502.sym
@@ -0,0 +1,13 @@
+(label) @1
+(label) @begin
+(label) @end
+(byte[$a]) TABLE
+(const byte[$a]) TABLE#0 TABLE = { fill( $a, 0) }
+(void()) main()
+(label) main::@1
+(label) main::@return
+(byte) main::i
+(byte) main::i#1 reg byte x 16.5
+(byte) main::i#2 reg byte x 22.0
+
+reg byte x [ main::i#2 main::i#1 ]
diff --git a/src/test/ref/plus-0.log b/src/test/ref/plus-0.log
index 66a9c529d..6ba28f210 100644
--- a/src/test/ref/plus-0.log
+++ b/src/test/ref/plus-0.log
@@ -345,9 +345,10 @@ Allocated zp ZP_WORD:6 [ fill::$5 ]
 Allocated zp ZP_WORD:8 [ fill::$7 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests elimination of plus 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -511,7 +512,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ fill::$7 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests elimination of plus 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -712,7 +713,7 @@ Score: 733
 
   // File Comments
 // Tests elimination of plus 0
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-cast-2.log b/src/test/ref/pointer-cast-2.log
index 46f5ca5ff..ee992f132 100644
--- a/src/test/ref/pointer-cast-2.log
+++ b/src/test/ref/pointer-cast-2.log
@@ -160,9 +160,10 @@ Allocated zp ZP_BYTE:2 [ main::ub#0 ]
 Allocated zp ZP_BYTE:3 [ main::sb#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -239,7 +240,7 @@ Uplifting [main] best 57 combination zp ZP_BYTE:3 [ main::sb#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -338,7 +339,7 @@ Score: 42
 
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-cast-3.log b/src/test/ref/pointer-cast-3.log
index aa6e69e10..ff75af669 100644
--- a/src/test/ref/pointer-cast-3.log
+++ b/src/test/ref/pointer-cast-3.log
@@ -83,9 +83,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -132,7 +133,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -202,7 +203,7 @@ Score: 12
 
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-cast-4.log b/src/test/ref/pointer-cast-4.log
index a9d3b7aba..6f3282aba 100644
--- a/src/test/ref/pointer-cast-4.log
+++ b/src/test/ref/pointer-cast-4.log
@@ -152,9 +152,10 @@ Allocated zp ZP_WORD:3 [ main::$1 ]
 Allocated zp ZP_BYTE:5 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests casting pointer types to other pointer types does not produce any ASM code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -246,7 +247,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::$1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests casting pointer types to other pointer types does not produce any ASM code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -362,7 +363,7 @@ Score: 411
 
   // File Comments
 // Tests casting pointer types to other pointer types does not produce any ASM code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-cast.log b/src/test/ref/pointer-cast.log
index 71ecbd472..ba0421ccd 100644
--- a/src/test/ref/pointer-cast.log
+++ b/src/test/ref/pointer-cast.log
@@ -435,9 +435,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -568,7 +569,7 @@ Uplifting [] best 165 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -721,7 +722,7 @@ Score: 150
 
   // File Comments
 // Tests casting pointer types to other pointer types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-plus-0.log b/src/test/ref/pointer-plus-0.log
index 47825c75e..62f9229f1 100644
--- a/src/test/ref/pointer-plus-0.log
+++ b/src/test/ref/pointer-plus-0.log
@@ -229,9 +229,10 @@ Allocated zp ZP_WORD:8 [ first::return#1 ]
 Allocated zp ZP_WORD:10 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests pointer plus 0 elimination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -359,7 +360,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:2 [ first::ret
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests pointer plus 0 elimination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -499,7 +500,7 @@ Score: 66
 
   // File Comments
 // Tests pointer plus 0 elimination
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-pointer-1.log b/src/test/ref/pointer-pointer-1.log
index cd41548a1..8b89ebd1b 100644
--- a/src/test/ref/pointer-pointer-1.log
+++ b/src/test/ref/pointer-pointer-1.log
@@ -109,9 +109,10 @@ Allocated zp ZP_BYTE:2 [ main::b#0 ]
 Allocated zp ZP_WORD:3 [ main::pb#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a simple pointer to a pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -175,7 +176,7 @@ Uplifting [main] best 47 combination zp ZP_BYTE:2 [ main::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a simple pointer to a pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -262,7 +263,7 @@ Score: 32
 
   // File Comments
 // Tests a simple pointer to a pointer
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-pointer-2.log b/src/test/ref/pointer-pointer-2.log
index 88a6ff799..b410dfd9c 100644
--- a/src/test/ref/pointer-pointer-2.log
+++ b/src/test/ref/pointer-pointer-2.log
@@ -377,9 +377,10 @@ Allocated zp ZP_BYTE:7 [ main::i#5 main::i#1 ]
 Allocated zp ZP_BYTE:8 [ nexttext::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -559,7 +560,7 @@ Uplifting [] best 6616 combination zp ZP_BYTE:4 [ textid#11 textid#13 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -786,7 +787,7 @@ Score: 5709
 
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-pointer-3.log b/src/test/ref/pointer-pointer-3.log
index 71896354f..c794ffd8c 100644
--- a/src/test/ref/pointer-pointer-3.log
+++ b/src/test/ref/pointer-pointer-3.log
@@ -197,9 +197,10 @@ Allocated zp ZP_WORD:2 [ setscreen::val#2 ]
 Allocated zp ZP_WORD:4 [ screen#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -305,7 +306,7 @@ Uplifting [main] best 112 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -444,7 +445,7 @@ Score: 100
 
   // File Comments
 // Tests pointer to pointer in a more complex setup
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-void-0.log b/src/test/ref/pointer-void-0.log
index 684ae2d3e..ad66af7f4 100644
--- a/src/test/ref/pointer-void-0.log
+++ b/src/test/ref/pointer-void-0.log
@@ -116,9 +116,10 @@ Complete equivalence classes
 Allocated zp ZP_WORD:2 [ main::w#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test simple void pointer (conversion without casting)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -175,7 +176,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test simple void pointer (conversion without casting)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -260,7 +261,7 @@ Score: 24
 
   // File Comments
 // Test simple void pointer (conversion without casting)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-void-1.log b/src/test/ref/pointer-void-1.log
index 974ba6c8a..640727d3e 100644
--- a/src/test/ref/pointer-void-1.log
+++ b/src/test/ref/pointer-void-1.log
@@ -301,9 +301,10 @@ Allocated zp ZP_WORD:9 [ main::w#0 ]
 Allocated zp ZP_BYTE:11 [ main::b#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -450,7 +451,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ main::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -631,7 +632,7 @@ Score: 111
 
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-void-2.log b/src/test/ref/pointer-void-2.log
index bb5172af5..fbab2654b 100644
--- a/src/test/ref/pointer-void-2.log
+++ b/src/test/ref/pointer-void-2.log
@@ -282,9 +282,10 @@ Allocated zp ZP_WORD:9 [ main::w#0 ]
 Allocated zp ZP_BYTE:11 [ main::b#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -428,7 +429,7 @@ Allocated (was zp ZP_BYTE:11) zp ZP_BYTE:10 [ main::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -600,7 +601,7 @@ Score: 111
 
   // File Comments
 // Test simple void pointer - void pointer function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/pointer-void-3.log b/src/test/ref/pointer-void-3.log
index 4f223f30a..9dab49046 100644
--- a/src/test/ref/pointer-void-3.log
+++ b/src/test/ref/pointer-void-3.log
@@ -250,9 +250,10 @@ Allocated zp ZP_WORD:10 [ main::buf2#0 ]
 Allocated zp ZP_WORD:12 [ malloc::return#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test void pointer - issues when assigning returns from malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -397,7 +398,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:6 [ malloc::return#1 main::buf2#0 malloc
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test void pointer - issues when assigning returns from malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -562,7 +563,7 @@ Score: 106
 
   // File Comments
 // Test void pointer - issues when assigning returns from malloc()
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/print-problem.log b/src/test/ref/print-problem.log
index 1ee35f0c5..5c71e70f9 100644
--- a/src/test/ref/print-problem.log
+++ b/src/test/ref/print-problem.log
@@ -254,8 +254,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ line#12 line#13 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -351,7 +352,7 @@ Uplifting [ln] best 71 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -484,7 +485,7 @@ FINAL ASSEMBLER
 Score: 44
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/printmsg.log b/src/test/ref/printmsg.log
index d492f53d5..493785849 100644
--- a/src/test/ref/printmsg.log
+++ b/src/test/ref/printmsg.log
@@ -488,8 +488,9 @@ Allocated zp ZP_WORD:4 [ print_str::str#4 print_str::str#6 print_str::str#0 ]
 Allocated zp ZP_WORD:6 [ print_char_cursor#13 print_char_cursor#29 print_char_cursor#31 print_char_cursor#32 print_char_cursor#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -710,7 +711,7 @@ Uplifting [main] best 1203 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1011,7 +1012,7 @@ FINAL ASSEMBLER
 Score: 1033
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/problem-negative-word-const.log b/src/test/ref/problem-negative-word-const.log
index e868d81be..a25cd586d 100644
--- a/src/test/ref/problem-negative-word-const.log
+++ b/src/test/ref/problem-negative-word-const.log
@@ -205,9 +205,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ]
 Allocated zp ZP_BYTE:6 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Problem with assigning negative word constant (vwuz1=vbuc1)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -325,7 +326,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::w#2 main::w#3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Problem with assigning negative word constant (vwuz1=vbuc1)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -469,7 +470,7 @@ Score: 626
 
   // File Comments
 // Problem with assigning negative word constant (vwuz1=vbuc1)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log b/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log
index c8b5b127f..a32df8114 100644
--- a/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log
+++ b/src/test/ref/problem-pointer-inside-struct-sizeof-rewriting.log
@@ -217,9 +217,10 @@ Allocated zp ZP_WORD:4 [ main::digit_value#0 ]
 Allocated zp ZP_BYTE:6 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -340,7 +341,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:3 [ main::digit_value#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -494,7 +495,7 @@ Score: 4731
 
   // File Comments
 // Illustrates a problem with pointer sizeof()-rewriting for pointers inside structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptr-complex.log b/src/test/ref/ptr-complex.log
index f0ad3c41d..9aea5f16b 100644
--- a/src/test/ref/ptr-complex.log
+++ b/src/test/ref/ptr-complex.log
@@ -277,9 +277,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test some complex pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -405,7 +406,7 @@ Uplifting [] best 595 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test some complex pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -564,7 +565,7 @@ Score: 400
 
   // File Comments
 // Test some complex pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptrptr-optimize-0.log b/src/test/ref/ptrptr-optimize-0.log
index 48b045577..4faaddc1e 100644
--- a/src/test/ref/ptrptr-optimize-0.log
+++ b/src/test/ref/ptrptr-optimize-0.log
@@ -91,9 +91,10 @@ Complete equivalence classes
 Allocated zp ZP_WORD:2 [ main::screen#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -158,7 +159,7 @@ Uplifting [] best 65 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -244,7 +245,7 @@ Score: 50
 
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptrptr-optimize-1.log b/src/test/ref/ptrptr-optimize-1.log
index 7f92886c3..ab0363fb1 100644
--- a/src/test/ref/ptrptr-optimize-1.log
+++ b/src/test/ref/ptrptr-optimize-1.log
@@ -161,9 +161,10 @@ Allocated zp ZP_BYTE:2 [ sub::ch#2 ]
 Allocated zp ZP_WORD:3 [ main::screen#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -256,7 +257,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::screen#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -377,7 +378,7 @@ Score: 60
 
   // File Comments
 // Tests optimization of constant pointers to pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptrptr-optimize-2.log b/src/test/ref/ptrptr-optimize-2.log
index e11e9f06c..629b3248e 100644
--- a/src/test/ref/ptrptr-optimize-2.log
+++ b/src/test/ref/ptrptr-optimize-2.log
@@ -161,10 +161,11 @@ Allocated zp ZP_BYTE:2 [ sub::ch#2 ]
 Allocated zp ZP_WORD:3 [ main::screen#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests (non-)optimization of constant pointers to pointers
 // The two examples of &screen is not detected as identical leading to ASM that could be optimized more
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -257,7 +258,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests (non-)optimization of constant pointers to pointers
 // The two examples of &screen is not detected as identical leading to ASM that could be optimized more
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -376,7 +377,7 @@ Score: 60
   // File Comments
 // Tests (non-)optimization of constant pointers to pointers
 // The two examples of &screen is not detected as identical leading to ASM that could be optimized more
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptrtest.log b/src/test/ref/ptrtest.log
index 03f6ac7d1..78d829e6c 100644
--- a/src/test/ref/ptrtest.log
+++ b/src/test/ref/ptrtest.log
@@ -541,9 +541,10 @@ Allocated zp ZP_BYTE:10 [ rvalue::b#3 rvalue::b#1 rvalue::b#2 ]
 Allocated zp ZP_BYTE:11 [ lvalue::i#2 lvalue::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -842,7 +843,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ rvaluevar::screen#2 rvaluevar::scree
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1208,7 +1209,7 @@ Score: 1318
 
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ptrtestmin.log b/src/test/ref/ptrtestmin.log
index 249dbf649..32c3074f0 100644
--- a/src/test/ref/ptrtestmin.log
+++ b/src/test/ref/ptrtestmin.log
@@ -164,9 +164,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::b#2 main::b#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -249,7 +250,7 @@ Uplifting [] best 265 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -361,7 +362,7 @@ Score: 190
 
   // File Comments
 // Test all types of pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/reserve-zp-global.log b/src/test/ref/reserve-zp-global.log
index 9efe69426..8f53597e1 100644
--- a/src/test/ref/reserve-zp-global.log
+++ b/src/test/ref/reserve-zp-global.log
@@ -188,9 +188,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ]
 Allocated zp ZP_BYTE:9 [ sub1::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates global directive reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -297,7 +298,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:4 [ main::i#2 main::i#0 main::i
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates global directive reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -428,7 +429,7 @@ Score: 314
 
   // File Comments
 // Demonstrates global directive reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/reserve-zp-procedure-1.log b/src/test/ref/reserve-zp-procedure-1.log
index cabcce7f0..ae7bf6318 100644
--- a/src/test/ref/reserve-zp-procedure-1.log
+++ b/src/test/ref/reserve-zp-procedure-1.log
@@ -188,9 +188,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ]
 Allocated zp ZP_BYTE:9 [ sub1::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -297,7 +298,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -428,7 +429,7 @@ Score: 314
 
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/reserve-zp-procedure-2.log b/src/test/ref/reserve-zp-procedure-2.log
index dc3f77822..43c780d06 100644
--- a/src/test/ref/reserve-zp-procedure-2.log
+++ b/src/test/ref/reserve-zp-procedure-2.log
@@ -280,9 +280,10 @@ Allocated zp ZP_BYTE:16 [ sub2::return#1 ]
 Allocated zp ZP_BYTE:17 [ sub1::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -449,7 +450,7 @@ Uplifting [main] best 640 combination zp ZP_BYTE:8 [ main::i#2 main::i#0 main::i
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -627,7 +628,7 @@ Score: 502
 
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/reserve-zp-procedure-3.log b/src/test/ref/reserve-zp-procedure-3.log
index 1ee0a9196..361aec422 100644
--- a/src/test/ref/reserve-zp-procedure-3.log
+++ b/src/test/ref/reserve-zp-procedure-3.log
@@ -189,9 +189,10 @@ Allocated zp ZP_BYTE:8 [ main::$0 ]
 Allocated zp ZP_BYTE:9 [ sub1::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -298,7 +299,7 @@ Uplifting [main] best 419 combination zp ZP_BYTE:5 [ main::i#2 main::i#0 main::i
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -429,7 +430,7 @@ Score: 314
 
   // File Comments
 // Demonstrates a procedure reserving addresses on zeropage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/robozzle64-label-problem.log b/src/test/ref/robozzle64-label-problem.log
index cd2a0f27b..c702edce3 100644
--- a/src/test/ref/robozzle64-label-problem.log
+++ b/src/test/ref/robozzle64-label-problem.log
@@ -446,8 +446,9 @@ Allocated zp ZP_WORD:16 [ main::z2#0 ]
 Allocated zp ZP_BYTE:18 [ mul8u::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -704,7 +705,7 @@ Allocated (was zp ZP_WORD:8) zp ZP_WORD:7 [ mul8u::mb#2 mul8u::mb#0 mul8u::mb#1
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -992,7 +993,7 @@ FINAL ASSEMBLER
 Score: 6994
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/roll-sprite-msb.log b/src/test/ref/roll-sprite-msb.log
index 3023fe234..afd34c58c 100644
--- a/src/test/ref/roll-sprite-msb.log
+++ b/src/test/ref/roll-sprite-msb.log
@@ -332,9 +332,10 @@ Allocated zp ZP_BYTE:11 [ position_sprite::$5 ]
 Allocated zp ZP_BYTE:12 [ position_sprite::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests rolling sprite MSB by variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -551,7 +552,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ position_sprite::spriteno#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests rolling sprite MSB by variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -773,7 +774,7 @@ Score: 555
 
   // File Comments
 // Tests rolling sprite MSB by variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/roll-variable.log b/src/test/ref/roll-variable.log
index a54314f02..d1c3bd376 100644
--- a/src/test/ref/roll-variable.log
+++ b/src/test/ref/roll-variable.log
@@ -132,9 +132,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ]
 Allocated zp ZP_BYTE:3 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Rolling constants by a variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -220,7 +221,7 @@ Uplifting [main] best 523 combination zp ZP_BYTE:2 [ main::b#2 main::b#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Rolling constants by a variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -332,7 +333,7 @@ Score: 421
 
   // File Comments
 // Rolling constants by a variable amount
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/runtime-unused-procedure.log b/src/test/ref/runtime-unused-procedure.log
index 06c604c99..44714335f 100644
--- a/src/test/ref/runtime-unused-procedure.log
+++ b/src/test/ref/runtime-unused-procedure.log
@@ -155,9 +155,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that a procedure that is never called, but requires static analysis is correctly eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -203,7 +204,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that a procedure that is never called, but requires static analysis is correctly eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -271,7 +272,7 @@ Score: 12
 
   // File Comments
 // Tests that a procedure that is never called, but requires static analysis is correctly eliminated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sandbox-ternary-error.log b/src/test/ref/sandbox-ternary-error.log
index 73c557fcf..cb1aa0817 100644
--- a/src/test/ref/sandbox-ternary-error.log
+++ b/src/test/ref/sandbox-ternary-error.log
@@ -221,9 +221,10 @@ Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ]
 Allocated zp ZP_BYTE:3 [ main::$7 main::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Demonstrates error with nested ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -335,7 +336,7 @@ Uplifting [] best 563 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Demonstrates error with nested ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -490,7 +491,7 @@ Score: 341
 
   // File Comments
 // Demonstrates error with nested ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sandbox.log b/src/test/ref/sandbox.log
index 5f16b3635..804bf5bc7 100644
--- a/src/test/ref/sandbox.log
+++ b/src/test/ref/sandbox.log
@@ -4222,8 +4222,9 @@ Allocated zp ZP_BYTE:113 [ divr16u::$1 ]
 Allocated zp ZP_BYTE:114 [ divr16u::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6185,7 +6186,7 @@ Allocated (was zp ZP_WORD:99) zp ZP_WORD:37 [ div10::$3 div10::val#2 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8185,7 +8186,7 @@ FINAL ASSEMBLER
 Score: 354730
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/scan-desire-problem.log b/src/test/ref/scan-desire-problem.log
index 3cf8ce098..0f0c5b2cc 100644
--- a/src/test/ref/scan-desire-problem.log
+++ b/src/test/ref/scan-desire-problem.log
@@ -1350,9 +1350,10 @@ Allocated zp ZP_BYTE:46 [ mul8u::$1 ]
 Allocated zp ZP_WORD:47 [ memset::end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2051,7 +2052,7 @@ Allocated (was zp ZP_WORD:47) zp ZP_WORD:27 [ memset::end#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2818,7 +2819,7 @@ Score: 75438
 
   // File Comments
 // Illustrates a problem with a missing fragment - pbuc1_derefidx_vwuz1=vbuz2
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/screen-center-angle.log b/src/test/ref/screen-center-angle.log
index 3d074e9a4..8c79a94f3 100644
--- a/src/test/ref/screen-center-angle.log
+++ b/src/test/ref/screen-center-angle.log
@@ -2715,10 +2715,11 @@ Allocated zp ZP_BYTE:90 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:91 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Calculate the angle to the center of the screen - and show it using font-hex
 // 4.65 million cycles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4113,7 +4114,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Calculate the angle to the center of the screen - and show it using font-hex
 // 4.65 million cycles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5578,7 +5579,7 @@ Score: 1044667
   // File Comments
 // Calculate the angle to the center of the screen - and show it using font-hex
 // 4.65 million cycles
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/screen-center-distance.log b/src/test/ref/screen-center-distance.log
index dd7f8547e..ca15cd93d 100644
--- a/src/test/ref/screen-center-distance.log
+++ b/src/test/ref/screen-center-distance.log
@@ -3201,9 +3201,10 @@ Allocated zp ZP_BYTE:104 [ init_font_hex::$2 ]
 Allocated zp ZP_BYTE:105 [ init_font_hex::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Calculate the distance to the center of the screen - and show it using font-hex
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4713,7 +4714,7 @@ Allocated (was zp ZP_BYTE:102) zp ZP_BYTE:45 [ init_font_hex::$0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Calculate the distance to the center of the screen - and show it using font-hex
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6227,7 +6228,7 @@ Score: 203337
 
   // File Comments
 // Calculate the distance to the center of the screen - and show it using font-hex
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/screen-show-spiral-buckets.log b/src/test/ref/screen-show-spiral-buckets.log
index a92aae5fa..0c80c5b3e 100644
--- a/src/test/ref/screen-show-spiral-buckets.log
+++ b/src/test/ref/screen-show-spiral-buckets.log
@@ -4430,10 +4430,11 @@ Allocated zp ZP_BYTE:172 [ init_squares::$3 ]
 Allocated zp ZP_BYTE:173 [ init_squares::$4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
 // Utilizes a bucket sort for identifying the minimum angle/distance
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7002,7 +7003,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
 // Utilizes a bucket sort for identifying the minimum angle/distance
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -9484,7 +9485,7 @@ Score: 1116084
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
 // Utilizes a bucket sort for identifying the minimum angle/distance
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/screen-show-spiral.log b/src/test/ref/screen-show-spiral.log
index 500ae7032..5bd32e5e9 100644
--- a/src/test/ref/screen-show-spiral.log
+++ b/src/test/ref/screen-show-spiral.log
@@ -3481,9 +3481,10 @@ Allocated zp ZP_BYTE:125 [ init_squares::$4 ]
 Allocated zp ZP_WORD:126 [ malloc::mem#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5421,7 +5422,7 @@ Allocated (was zp ZP_WORD:117) zp ZP_WORD:63 [ bsearch16u::result#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7304,7 +7305,7 @@ Score: 1112146
 
   // File Comments
 // Fill screen using a spiral based on distance-to-center / angle-to-center
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/scroll-clobber.log b/src/test/ref/scroll-clobber.log
index 1a631c1aa..fbe03d0a5 100644
--- a/src/test/ref/scroll-clobber.log
+++ b/src/test/ref/scroll-clobber.log
@@ -197,8 +197,9 @@ Allocated zp ZP_BYTE:3 [ main::c#2 main::c#0 main::c#1 ]
 Allocated zp ZP_WORD:4 [ main::nxt#4 main::nxt#3 main::nxt#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -307,7 +308,7 @@ Allocated (was zp ZP_WORD:4) zp ZP_WORD:2 [ main::nxt#4 main::nxt#3 main::nxt#1
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -452,7 +453,7 @@ FINAL ASSEMBLER
 Score: 645
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/scrollbig-clobber.log b/src/test/ref/scrollbig-clobber.log
index 5230eac09..b282d3801 100644
--- a/src/test/ref/scrollbig-clobber.log
+++ b/src/test/ref/scrollbig-clobber.log
@@ -283,9 +283,10 @@ Allocated zp ZP_BYTE:6 [ next_char::return#0 ]
 Allocated zp ZP_BYTE:7 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Clobber problem in next_char return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -431,7 +432,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ nxt#10 nxt#13 nxt#11 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Clobber problem in next_char return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -618,7 +619,7 @@ Score: 366
 
   // File Comments
 // Clobber problem in next_char return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/semi-struct-1.log b/src/test/ref/semi-struct-1.log
index 0e2ed1e9e..ac9f2084a 100644
--- a/src/test/ref/semi-struct-1.log
+++ b/src/test/ref/semi-struct-1.log
@@ -1547,6 +1547,7 @@ Allocated zp ZP_WORD:21 [ init_points::getPoint1_return#0 ]
 Allocated zp ZP_BYTE:23 [ init_points::pos#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Implementing a semi-struct without the struct keyword by using pointer math and inline functions
 //
@@ -1555,7 +1556,7 @@ INITIAL ASM
 //    byte ypos; // The y-position
 // };
 // Point[NUM_POINTS] points;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2133,7 +2134,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 //    byte ypos; // The y-position
 // };
 // Point[NUM_POINTS] points;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2854,7 +2855,7 @@ Score: 12233
 //    byte ypos; // The y-position
 // };
 // Point[NUM_POINTS] points;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/semi-struct-2.log b/src/test/ref/semi-struct-2.log
index 5463b823d..a1407d80e 100644
--- a/src/test/ref/semi-struct-2.log
+++ b/src/test/ref/semi-struct-2.log
@@ -5245,6 +5245,7 @@ Allocated zp ZP_BYTE:65 [ initEntry::$25 ]
 Allocated zp ZP_BYTE:66 [ mul8u::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Implementing a semi-struct without the struct keyword by using pointer math and inline functions
 //
@@ -5265,7 +5266,7 @@ INITIAL ASM
 //    };
 //    typedef struct fileentry ENTRY;
 //    ENTRY files[MAX_FILES];
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7406,7 +7407,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 //    };
 //    typedef struct fileentry ENTRY;
 //    ENTRY files[MAX_FILES];
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -10034,7 +10035,7 @@ Score: 4078
 //    };
 //    typedef struct fileentry ENTRY;
 //    ENTRY files[MAX_FILES];
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sequence-locality-0.log b/src/test/ref/sequence-locality-0.log
index 780ddbc82..eedd03f78 100644
--- a/src/test/ref/sequence-locality-0.log
+++ b/src/test/ref/sequence-locality-0.log
@@ -211,9 +211,10 @@ Allocated zp ZP_BYTE:3 [ main::idx#3 main::idx#6 main::idx#1 main::idx#2 ]
 Allocated zp ZP_BYTE:4 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -318,7 +319,7 @@ Uplifting [] best 568 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -461,7 +462,7 @@ Score: 406
 
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sequence-locality-1.log b/src/test/ref/sequence-locality-1.log
index b4cfa90dc..2039b4c40 100644
--- a/src/test/ref/sequence-locality-1.log
+++ b/src/test/ref/sequence-locality-1.log
@@ -209,9 +209,10 @@ Allocated zp ZP_BYTE:3 [ main::idx#2 main::idx#1 ]
 Allocated zp ZP_BYTE:4 [ main::j#2 main::j#4 main::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -317,7 +318,7 @@ Uplifting [] best 478 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -457,7 +458,7 @@ Score: 316
 
   // File Comments
 // Tests statement sequence locality of if(cond) { stmt1; } else { stmt2; }
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sieve.log b/src/test/ref/sieve.log
index 5c730fba0..111c1a67c 100644
--- a/src/test/ref/sieve.log
+++ b/src/test/ref/sieve.log
@@ -4192,8 +4192,9 @@ Allocated zp ZP_DWORD:134 [ clock::return#0 ]
 Allocated zp ZP_WORD:138 [ memset::end#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6113,7 +6114,7 @@ Allocated (was zp ZP_WORD:120) zp ZP_WORD:52 [ div32u16u::quotient_hi#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8136,7 +8137,7 @@ FINAL ASSEMBLER
 Score: 82987
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/signed-bytes.log b/src/test/ref/signed-bytes.log
index 389125cce..1253a6e36 100644
--- a/src/test/ref/signed-bytes.log
+++ b/src/test/ref/signed-bytes.log
@@ -160,8 +160,9 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::j#2 main::j#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -248,7 +249,7 @@ Uplifting [] best 388 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -358,7 +359,7 @@ FINAL ASSEMBLER
 Score: 316
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/signed-indexed-subtract.log b/src/test/ref/signed-indexed-subtract.log
index 798ee4bae..296535441 100644
--- a/src/test/ref/signed-indexed-subtract.log
+++ b/src/test/ref/signed-indexed-subtract.log
@@ -1185,9 +1185,10 @@ Allocated zp ZP_BYTE:20 [ print_byte::$2 ]
 Allocated zp ZP_BYTE:21 [ sub::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that signed indexed subtract works as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1726,7 +1727,7 @@ Allocated (was zp ZP_WORD:12) zp ZP_WORD:9 [ memset::dst#2 memset::dst#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that signed indexed subtract works as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2359,7 +2360,7 @@ Score: 5284
 
   // File Comments
 // Tests that signed indexed subtract works as intended
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/signed-word-minus-byte-2.log b/src/test/ref/signed-word-minus-byte-2.log
index 3b7c1d5f5..923350786 100644
--- a/src/test/ref/signed-word-minus-byte-2.log
+++ b/src/test/ref/signed-word-minus-byte-2.log
@@ -165,9 +165,10 @@ Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:5 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -266,7 +267,7 @@ Uplifting [] best 693 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -390,7 +391,7 @@ Score: 591
 
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/signed-words.log b/src/test/ref/signed-words.log
index f23de12dc..ae21138de 100644
--- a/src/test/ref/signed-words.log
+++ b/src/test/ref/signed-words.log
@@ -961,8 +961,9 @@ Allocated zp ZP_BYTE:24 [ anim::$10 ]
 Allocated zp ZP_BYTE:25 [ anim::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1421,7 +1422,7 @@ Allocated (was zp ZP_WORD:19) zp ZP_WORD:16 [ anim::$7 anim::sprite_y#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1947,7 +1948,7 @@ FINAL ASSEMBLER
 Score: 6343
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/simple-loop.log b/src/test/ref/simple-loop.log
index 23eab33cc..321d1d708 100644
--- a/src/test/ref/simple-loop.log
+++ b/src/test/ref/simple-loop.log
@@ -133,8 +133,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -212,7 +213,7 @@ Uplifting [] best 343 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -312,7 +313,7 @@ FINAL ASSEMBLER
 Score: 241
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinus-basic.log b/src/test/ref/sinus-basic.log
index 7d6d44965..7c55535ae 100644
--- a/src/test/ref/sinus-basic.log
+++ b/src/test/ref/sinus-basic.log
@@ -1214,8 +1214,9 @@ Allocated zp ZP_BYTE:25 [ prepareMEM::$0 ]
 Allocated zp ZP_BYTE:26 [ prepareMEM::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1914,7 +1915,7 @@ Allocated (was zp ZP_WORD:17) zp ZP_WORD:9 [ getFAC::return#2 print_word::w#0 ge
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2717,7 +2718,7 @@ FINAL ASSEMBLER
 Score: 4965
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinusgen16.log b/src/test/ref/sinusgen16.log
index e5cba3be7..952368682 100644
--- a/src/test/ref/sinusgen16.log
+++ b/src/test/ref/sinusgen16.log
@@ -2744,9 +2744,10 @@ Allocated zp ZP_BYTE:131 [ divr16u::$2 ]
 Allocated zp ZP_WORD:132 [ rem16u#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4342,7 +4343,7 @@ Allocated (was zp ZP_WORD:120) zp ZP_WORD:55 [ div32u16u::quotient_hi#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5962,7 +5963,7 @@ Score: 22680
 
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinusgen16b.log b/src/test/ref/sinusgen16b.log
index d3392d209..c244ae3ae 100644
--- a/src/test/ref/sinusgen16b.log
+++ b/src/test/ref/sinusgen16b.log
@@ -3614,9 +3614,10 @@ Allocated zp ZP_WORD:186 [ sin16s::x5_128#0 ]
 Allocated zp ZP_WORD:188 [ sin16s::usinx#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5842,7 +5843,7 @@ Allocated (was zp ZP_WORD:162) zp ZP_WORD:70 [ sin16s::x1#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8016,7 +8017,7 @@ Score: 24955
 
   // File Comments
 // Generates a 16-bit signed sinus
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinusgen8.log b/src/test/ref/sinusgen8.log
index f9e59d8e5..586fd5032 100644
--- a/src/test/ref/sinusgen8.log
+++ b/src/test/ref/sinusgen8.log
@@ -2717,8 +2717,9 @@ Allocated zp ZP_BYTE:75 [ divr16u::$1 ]
 Allocated zp ZP_BYTE:76 [ divr16u::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4014,7 +4015,7 @@ Allocated (was zp ZP_BYTE:57) zp ZP_BYTE:31 [ sin8s::usinx#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5439,7 +5440,7 @@ FINAL ASSEMBLER
 Score: 15808
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinusgen8b.log b/src/test/ref/sinusgen8b.log
index 27d593b94..5ca019da5 100644
--- a/src/test/ref/sinusgen8b.log
+++ b/src/test/ref/sinusgen8b.log
@@ -3882,8 +3882,9 @@ Allocated zp ZP_WORD:188 [ divr16u::return#2 ]
 Allocated zp ZP_WORD:190 [ div16u::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6196,7 +6197,7 @@ Allocated (was zp ZP_BYTE:174) zp ZP_BYTE:75 [ sin8s::usinx#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8499,7 +8500,7 @@ FINAL ASSEMBLER
 Score: 31886
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sinusgenscale8.log b/src/test/ref/sinusgenscale8.log
index 4c36e010e..a4ba734de 100644
--- a/src/test/ref/sinusgenscale8.log
+++ b/src/test/ref/sinusgenscale8.log
@@ -3766,8 +3766,9 @@ Allocated zp ZP_BYTE:90 [ divr16u::$1 ]
 Allocated zp ZP_BYTE:91 [ divr16u::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5544,7 +5545,7 @@ Allocated (was zp ZP_BYTE:73) zp ZP_BYTE:36 [ sin8s::usinx#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7560,7 +7561,7 @@ FINAL ASSEMBLER
 Score: 19684
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sizeof-arrays.log b/src/test/ref/sizeof-arrays.log
index c94f2a8e0..555d64dd2 100644
--- a/src/test/ref/sizeof-arrays.log
+++ b/src/test/ref/sizeof-arrays.log
@@ -353,9 +353,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the sizeof() operator on arrays
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -424,7 +425,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the sizeof() operator on arrays
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -520,7 +521,7 @@ Score: 42
 
   // File Comments
 // Tests the sizeof() operator on arrays
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sizeof-expr.log b/src/test/ref/sizeof-expr.log
index c4a7ef4fc..8f0c102e8 100644
--- a/src/test/ref/sizeof-expr.log
+++ b/src/test/ref/sizeof-expr.log
@@ -318,9 +318,10 @@ Allocated zp ZP_BYTE:2 [ main::b#0 ]
 Allocated zp ZP_WORD:3 [ main::w#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the sizeof() operator on values/expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -415,7 +416,7 @@ Uplifting [main] best 84 combination zp ZP_BYTE:2 [ main::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the sizeof() operator on values/expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -535,7 +536,7 @@ Score: 59
 
   // File Comments
 // Tests the sizeof() operator on values/expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sizeof-struct.log b/src/test/ref/sizeof-struct.log
index 2393bd4c1..dbdae7ad3 100644
--- a/src/test/ref/sizeof-struct.log
+++ b/src/test/ref/sizeof-struct.log
@@ -350,9 +350,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the sizeof() operator on structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -436,7 +437,7 @@ Uplifting [] best 69 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the sizeof() operator on structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -543,7 +544,7 @@ Score: 54
 
   // File Comments
 // Tests the sizeof() operator on structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/sizeof-types.log b/src/test/ref/sizeof-types.log
index 99d5fb6ee..5e8eda89e 100644
--- a/src/test/ref/sizeof-types.log
+++ b/src/test/ref/sizeof-types.log
@@ -402,9 +402,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the sizeof() operator on types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -538,7 +539,7 @@ Uplifting [] best 147 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the sizeof() operator on types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -687,7 +688,7 @@ Score: 124
 
   // File Comments
 // Tests the sizeof() operator on types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/statement-sequence-1.log b/src/test/ref/statement-sequence-1.log
index 21ffddf23..3c4a3ce3d 100644
--- a/src/test/ref/statement-sequence-1.log
+++ b/src/test/ref/statement-sequence-1.log
@@ -218,9 +218,10 @@ Allocated zp ZP_BYTE:3 [ main::c#2 main::c#0 main::c#1 ]
 Allocated zp ZP_BYTE:4 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests statement sequence  generation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -323,7 +324,7 @@ Uplifting [] best 563 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests statement sequence  generation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -465,7 +466,7 @@ Score: 371
 
   // File Comments
 // Tests statement sequence  generation
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/string-const-consolidation-noroot.log b/src/test/ref/string-const-consolidation-noroot.log
index 149184ac1..80f405932 100644
--- a/src/test/ref/string-const-consolidation-noroot.log
+++ b/src/test/ref/string-const-consolidation-noroot.log
@@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ]
 Allocated zp ZP_WORD:4 [ print::string#4 print::string#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -388,7 +389,7 @@ Uplifting [main] best 776 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -565,7 +566,7 @@ Score: 675
 
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/string-const-consolidation.log b/src/test/ref/string-const-consolidation.log
index f7cf4b8e5..6025d9de0 100644
--- a/src/test/ref/string-const-consolidation.log
+++ b/src/test/ref/string-const-consolidation.log
@@ -258,9 +258,10 @@ Allocated zp ZP_WORD:2 [ screen#18 screen#12 screen#5 ]
 Allocated zp ZP_WORD:4 [ print::string#4 print::string#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -388,7 +389,7 @@ Uplifting [main] best 776 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -565,7 +566,7 @@ Score: 675
 
   // File Comments
 // Tests that identical strings are consolidated
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/string-encoding-literals.log b/src/test/ref/string-encoding-literals.log
index 3d5b543f8..8fe769a38 100644
--- a/src/test/ref/string-encoding-literals.log
+++ b/src/test/ref/string-encoding-literals.log
@@ -227,9 +227,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -349,7 +350,7 @@ Uplifting [] best 858 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -491,7 +492,7 @@ Score: 756
 
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/string-encoding-pragma.log b/src/test/ref/string-encoding-pragma.log
index 5367fda2a..a478100d2 100644
--- a/src/test/ref/string-encoding-pragma.log
+++ b/src/test/ref/string-encoding-pragma.log
@@ -212,9 +212,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -327,7 +328,7 @@ Uplifting [] best 763 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -463,7 +464,7 @@ Score: 661
 
   // File Comments
 // Test string encoding via literals
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/strip.log b/src/test/ref/strip.log
index 7e6cc12e1..f2bdf5fc9 100644
--- a/src/test/ref/strip.log
+++ b/src/test/ref/strip.log
@@ -408,9 +408,10 @@ Allocated zp ZP_WORD:9 [ strip::dest#2 strip::dest#0 strip::dest#4 strip::dest#1
 Allocated zp ZP_WORD:11 [ strip::p#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests of strip() function from https://news.ycombinator.com/item?id=12080871
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -662,7 +663,7 @@ Allocated (was zp ZP_WORD:11) zp ZP_WORD:10 [ strip::p#2 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests of strip() function from https://news.ycombinator.com/item?id=12080871
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -979,7 +980,7 @@ Score: 1423
 
   // File Comments
 // Tests of strip() function from https://news.ycombinator.com/item?id=12080871
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-0.log b/src/test/ref/struct-0.log
index 6b8c72a17..e885d8017 100644
--- a/src/test/ref/struct-0.log
+++ b/src/test/ref/struct-0.log
@@ -156,9 +156,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - declaration, instantiation and usage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -212,7 +213,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - declaration, instantiation and usage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -290,7 +291,7 @@ Score: 18
 
   // File Comments
 // Minimal struct - declaration, instantiation and usage
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-1.log b/src/test/ref/struct-1.log
index b90b5a11e..fc20ee7f4 100644
--- a/src/test/ref/struct-1.log
+++ b/src/test/ref/struct-1.log
@@ -207,9 +207,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - two instances being used.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -263,7 +264,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - two instances being used.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -343,7 +344,7 @@ Score: 18
 
   // File Comments
 // Minimal struct - two instances being used.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-2.log b/src/test/ref/struct-2.log
index 0fd5448f6..8614bc0d5 100644
--- a/src/test/ref/struct-2.log
+++ b/src/test/ref/struct-2.log
@@ -228,9 +228,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - two instances being copied (using assignment)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -293,7 +294,7 @@ Uplifting [] best 45 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - two instances being copied (using assignment)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -381,7 +382,7 @@ Score: 30
 
   // File Comments
 // Minimal struct - two instances being copied (using assignment)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-3.log b/src/test/ref/struct-3.log
index 7fcb79f39..5e110393a 100644
--- a/src/test/ref/struct-3.log
+++ b/src/test/ref/struct-3.log
@@ -280,9 +280,10 @@ Allocated zp ZP_BYTE:3 [ idx#11 idx#12 ]
 Allocated zp ZP_BYTE:4 [ idx#4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - passing struct value parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -389,7 +390,7 @@ Uplifting [main] best 67 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - passing struct value parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -521,7 +522,7 @@ Score: 46
 
   // File Comments
 // Minimal struct - passing struct value parameter
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-4.log b/src/test/ref/struct-4.log
index a99c30bdb..dda74864c 100644
--- a/src/test/ref/struct-4.log
+++ b/src/test/ref/struct-4.log
@@ -139,9 +139,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - initializing using a value list
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -196,7 +197,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - initializing using a value list
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -278,7 +279,7 @@ Score: 18
 
   // File Comments
 // Minimal struct - initializing using a value list
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-5.log b/src/test/ref/struct-5.log
index e0d17cff5..837a269fb 100644
--- a/src/test/ref/struct-5.log
+++ b/src/test/ref/struct-5.log
@@ -243,9 +243,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - struct return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -318,7 +319,7 @@ Uplifting [] best 78 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - struct return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -428,7 +429,7 @@ Score: 30
 
   // File Comments
 // Minimal struct - struct return value
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-6.log b/src/test/ref/struct-6.log
index 49fabc311..3f7e01ab0 100644
--- a/src/test/ref/struct-6.log
+++ b/src/test/ref/struct-6.log
@@ -161,9 +161,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -224,7 +225,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -312,7 +313,7 @@ Score: 24
 
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-7.log b/src/test/ref/struct-7.log
index e8dc0ce1c..beb9ff6f4 100644
--- a/src/test/ref/struct-7.log
+++ b/src/test/ref/struct-7.log
@@ -223,9 +223,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - nesting structs 3 levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -303,7 +304,7 @@ Uplifting [] best 57 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - nesting structs 3 levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -409,7 +410,7 @@ Score: 42
 
   // File Comments
 // Minimal struct - nesting structs 3 levels
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-8.log b/src/test/ref/struct-8.log
index a0c03927a..aed11b2c3 100644
--- a/src/test/ref/struct-8.log
+++ b/src/test/ref/struct-8.log
@@ -173,9 +173,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - nested struct where a sub-struct is assigned out
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -236,7 +237,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - nested struct where a sub-struct is assigned out
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -326,7 +327,7 @@ Score: 24
 
   // File Comments
 // Minimal struct - nested struct where a sub-struct is assigned out
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-9.log b/src/test/ref/struct-9.log
index d983cc8a2..442405eca 100644
--- a/src/test/ref/struct-9.log
+++ b/src/test/ref/struct-9.log
@@ -177,9 +177,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -240,7 +241,7 @@ Uplifting [] best 39 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -328,7 +329,7 @@ Score: 24
 
   // File Comments
 // Minimal struct - nesting structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-0.log b/src/test/ref/struct-ptr-0.log
index 3c9e5b0cf..c16ef9660 100644
--- a/src/test/ref/struct-ptr-0.log
+++ b/src/test/ref/struct-ptr-0.log
@@ -268,9 +268,10 @@ Allocated zp ZP_BYTE:5 [ main::$0 ]
 Allocated zp ZP_BYTE:6 [ main::$7 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - array of struct
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -412,7 +413,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:2 [ main::$5 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - array of struct
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -573,7 +574,7 @@ Score: 746
 
   // File Comments
 // Minimal struct - array of struct
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-1.log b/src/test/ref/struct-ptr-1.log
index 8c4e404f6..6d6d2e318 100644
--- a/src/test/ref/struct-ptr-1.log
+++ b/src/test/ref/struct-ptr-1.log
@@ -321,9 +321,10 @@ Allocated zp ZP_BYTE:5 [ main::$8 ]
 Allocated zp ZP_BYTE:6 [ main::$17 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - array of struct - near pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -468,7 +469,7 @@ Uplifting [main] best 828 combination reg byte y [ main::$6 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - array of struct - near pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -629,7 +630,7 @@ Score: 666
 
   // File Comments
 // Minimal struct - array of struct - near pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-10.log b/src/test/ref/struct-ptr-10.log
index 81c799011..186c19f2f 100644
--- a/src/test/ref/struct-ptr-10.log
+++ b/src/test/ref/struct-ptr-10.log
@@ -298,9 +298,10 @@ Allocated zp ZP_WORD:19 [ main::$15 ]
 Allocated zp ZP_WORD:21 [ main::$16 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  array with 256+ structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -545,7 +546,7 @@ Allocated (was zp ZP_WORD:19) zp ZP_WORD:16 [ main::$15 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  array with 256+ structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -811,7 +812,7 @@ Score: 2566
 
   // File Comments
 // Minimal struct -  array with 256+ structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-11.log b/src/test/ref/struct-ptr-11.log
index 759fc3fdd..2b4a64304 100644
--- a/src/test/ref/struct-ptr-11.log
+++ b/src/test/ref/struct-ptr-11.log
@@ -306,9 +306,10 @@ Allocated zp ZP_BYTE:7 [ main::$19 ]
 Allocated zp ZP_BYTE:8 [ main::$7 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  array of 3-byte structs (required *3)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -490,7 +491,7 @@ Allocated (was zp ZP_BYTE:4) zp ZP_BYTE:2 [ main::$2 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  array of 3-byte structs (required *3)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -671,7 +672,7 @@ Score: 1071
 
   // File Comments
 // Minimal struct -  array of 3-byte structs (required *3)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-12-ref.log b/src/test/ref/struct-ptr-12-ref.log
index 76690485e..a30f096a7 100644
--- a/src/test/ref/struct-ptr-12-ref.log
+++ b/src/test/ref/struct-ptr-12-ref.log
@@ -144,9 +144,10 @@ Allocated zp ZP_BYTE:4 [ main::$1 ]
 Allocated zp ZP_BYTE:5 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Reference file for Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -213,7 +214,7 @@ Uplifting [] best 47 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Reference file for Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -301,7 +302,7 @@ Score: 32
 
   // File Comments
 // Reference file for Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-12.log b/src/test/ref/struct-ptr-12.log
index b89f6ab68..9369293f2 100644
--- a/src/test/ref/struct-ptr-12.log
+++ b/src/test/ref/struct-ptr-12.log
@@ -160,9 +160,10 @@ Allocated zp ZP_BYTE:2 [ main::p_x#0 ]
 Allocated zp ZP_BYTE:3 [ main::p_y#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -232,7 +233,7 @@ Uplifting [main] best 47 combination zp ZP_BYTE:3 [ main::p_y#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -324,7 +325,7 @@ Score: 32
 
   // File Comments
 // Minimal struct -  using address-of
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-13.log b/src/test/ref/struct-ptr-13.log
index 863eeb864..7825653bf 100644
--- a/src/test/ref/struct-ptr-13.log
+++ b/src/test/ref/struct-ptr-13.log
@@ -159,9 +159,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - modifying pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -227,7 +228,7 @@ Uplifting [] best 61 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - modifying pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -314,7 +315,7 @@ Score: 46
 
   // File Comments
 // Minimal struct - modifying pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-14.log b/src/test/ref/struct-ptr-14.log
index 6e6b7da4a..76810aae1 100644
--- a/src/test/ref/struct-ptr-14.log
+++ b/src/test/ref/struct-ptr-14.log
@@ -224,9 +224,10 @@ Allocated zp ZP_BYTE:2 [ main::p_x#0 ]
 Allocated zp ZP_BYTE:3 [ main::p_y#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  using address-of and passing it to a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -319,7 +320,7 @@ Uplifting [main] best 77 combination zp ZP_BYTE:3 [ main::p_y#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  using address-of and passing it to a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -438,7 +439,7 @@ Score: 56
 
   // File Comments
 // Minimal struct -  using address-of and passing it to a function
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-15.log b/src/test/ref/struct-ptr-15.log
index 6d4801924..c28323a1b 100644
--- a/src/test/ref/struct-ptr-15.log
+++ b/src/test/ref/struct-ptr-15.log
@@ -428,9 +428,10 @@ Allocated zp ZP_BYTE:9 [ main::y#0 ]
 Allocated zp ZP_BYTE:10 [ main::idx#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  using pointers to nested structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -620,7 +621,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::$14 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  using pointers to nested structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -811,7 +812,7 @@ Score: 1082
 
   // File Comments
 // Minimal struct -  using pointers to nested structs
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-2.log b/src/test/ref/struct-ptr-2.log
index c978817e4..b34f6d4cf 100644
--- a/src/test/ref/struct-ptr-2.log
+++ b/src/test/ref/struct-ptr-2.log
@@ -313,9 +313,10 @@ Allocated zp ZP_BYTE:8 [ main::$15 ]
 Allocated zp ZP_WORD:9 [ main::point_i1#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - array of struct - far pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -490,7 +491,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:4 [ main::point_i1#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - array of struct - far pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -676,7 +677,7 @@ Score: 1046
 
   // File Comments
 // Minimal struct - array of struct - far pointer math indexing
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-3.log b/src/test/ref/struct-ptr-3.log
index d2f3c9bd2..e2916dc09 100644
--- a/src/test/ref/struct-ptr-3.log
+++ b/src/test/ref/struct-ptr-3.log
@@ -178,9 +178,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - accessing pointer to struct in memory
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Uplifting [] best 53 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - accessing pointer to struct in memory
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -325,7 +326,7 @@ Score: 38
 
   // File Comments
 // Minimal struct - accessing pointer to struct in memory
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-4.log b/src/test/ref/struct-ptr-4.log
index 1f2a9a0d8..80499ae33 100644
--- a/src/test/ref/struct-ptr-4.log
+++ b/src/test/ref/struct-ptr-4.log
@@ -300,9 +300,10 @@ Allocated zp ZP_BYTE:10 [ main::idx#1 ]
 Allocated zp ZP_BYTE:11 [ main::idx#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - accessing pointer to struct  in memory in a loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -507,7 +508,7 @@ Allocated (was zp ZP_BYTE:8) zp ZP_BYTE:6 [ main::i1#2 main::i1#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - accessing pointer to struct  in memory in a loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -720,7 +721,7 @@ Score: 1456
 
   // File Comments
 // Minimal struct - accessing pointer to struct  in memory in a loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-5.log b/src/test/ref/struct-ptr-5.log
index cceb51942..3fc965c9c 100644
--- a/src/test/ref/struct-ptr-5.log
+++ b/src/test/ref/struct-ptr-5.log
@@ -362,9 +362,10 @@ Allocated zp ZP_BYTE:9 [ main::$4 ]
 Allocated zp ZP_BYTE:10 [ main::idx#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - simple linked list implemented using pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -575,7 +576,7 @@ Uplifting [main] best 1277 combination reg byte x [ main::idx#2 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - simple linked list implemented using pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -771,7 +772,7 @@ Score: 1203
 
   // File Comments
 // Minimal struct - simple linked list implemented using pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-6.log b/src/test/ref/struct-ptr-6.log
index ed6013dde..163480d9e 100644
--- a/src/test/ref/struct-ptr-6.log
+++ b/src/test/ref/struct-ptr-6.log
@@ -178,9 +178,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - accessing pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -242,7 +243,7 @@ Uplifting [] best 53 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - accessing pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -325,7 +326,7 @@ Score: 38
 
   // File Comments
 // Minimal struct - accessing pointer to struct in memory using arrow operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-7.log b/src/test/ref/struct-ptr-7.log
index ba11603c3..4ee452325 100644
--- a/src/test/ref/struct-ptr-7.log
+++ b/src/test/ref/struct-ptr-7.log
@@ -299,9 +299,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct - direct (constant) array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -380,7 +381,7 @@ Uplifting [] best 77 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct - direct (constant) array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -477,7 +478,7 @@ Score: 62
 
   // File Comments
 // Minimal struct - direct (constant) array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-8.log b/src/test/ref/struct-ptr-8.log
index ec5843714..5adca8d9b 100644
--- a/src/test/ref/struct-ptr-8.log
+++ b/src/test/ref/struct-ptr-8.log
@@ -311,9 +311,10 @@ Allocated zp ZP_BYTE:9 [ main::idx#1 ]
 Allocated zp ZP_BYTE:10 [ main::idx#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  variable array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -508,7 +509,7 @@ Uplifting [main] best 1238 combination reg byte y [ main::$7 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  variable array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -696,7 +697,7 @@ Score: 1076
 
   // File Comments
 // Minimal struct -  variable array access
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/struct-ptr-9.log b/src/test/ref/struct-ptr-9.log
index 601f090fb..138492fe7 100644
--- a/src/test/ref/struct-ptr-9.log
+++ b/src/test/ref/struct-ptr-9.log
@@ -253,9 +253,10 @@ Allocated zp ZP_BYTE:4 [ main::$2 ]
 Allocated zp ZP_BYTE:5 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Minimal struct -  array access with struct value copying (and initializing)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -387,7 +388,7 @@ Uplifting [] best 788 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Minimal struct -  array access with struct value copying (and initializing)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -538,7 +539,7 @@ Score: 626
 
   // File Comments
 // Minimal struct -  array access with struct value copying (and initializing)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/subexpr-optimize-0.log b/src/test/ref/subexpr-optimize-0.log
index b00834f2c..c9bf3873a 100644
--- a/src/test/ref/subexpr-optimize-0.log
+++ b/src/test/ref/subexpr-optimize-0.log
@@ -167,10 +167,11 @@ Allocated zp ZP_BYTE:5 [ main::$1 ]
 Allocated zp ZP_WORD:6 [ main::screen#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of identical sub-expressions
 // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -294,7 +295,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of identical sub-expressions
 // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -425,7 +426,7 @@ Score: 701
   // File Comments
 // Tests optimization of identical sub-expressions
 // The two examples of i*2 is detected as identical leading to optimized ASM where *2 is only calculated once
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/subexpr-optimize-1.log b/src/test/ref/subexpr-optimize-1.log
index d6bf5c558..113bcdc4a 100644
--- a/src/test/ref/subexpr-optimize-1.log
+++ b/src/test/ref/subexpr-optimize-1.log
@@ -211,9 +211,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // A sub-expression that should not be optimized (+1 to a pointer)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -302,7 +303,7 @@ Uplifting [] best 573 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // A sub-expression that should not be optimized (+1 to a pointer)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -408,7 +409,7 @@ Score: 471
 
   // File Comments
 // A sub-expression that should not be optimized (+1 to a pointer)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/subexpr-optimize-2.log b/src/test/ref/subexpr-optimize-2.log
index f3ca9ca33..efd8cd20e 100644
--- a/src/test/ref/subexpr-optimize-2.log
+++ b/src/test/ref/subexpr-optimize-2.log
@@ -193,9 +193,10 @@ Allocated zp ZP_BYTE:9 [ main::$2 ]
 Allocated zp ZP_BYTE:10 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -335,7 +336,7 @@ Coalescing zero page register with common assignment [ zp ZP_WORD:3 [ main::scre
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -477,7 +478,7 @@ Score: 871
 
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/subexpr-optimize-3.log b/src/test/ref/subexpr-optimize-3.log
index 2e13a7c34..af0043d19 100644
--- a/src/test/ref/subexpr-optimize-3.log
+++ b/src/test/ref/subexpr-optimize-3.log
@@ -209,9 +209,10 @@ Allocated zp ZP_BYTE:10 [ main::$4 ]
 Allocated zp ZP_BYTE:11 [ main::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -367,7 +368,7 @@ Allocated (was zp ZP_BYTE:5) zp ZP_BYTE:4 [ main::$3 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -515,7 +516,7 @@ Score: 891
 
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/subexpr-optimize-4.log b/src/test/ref/subexpr-optimize-4.log
index 0d607e2b4..0e357217b 100644
--- a/src/test/ref/subexpr-optimize-4.log
+++ b/src/test/ref/subexpr-optimize-4.log
@@ -336,9 +336,10 @@ Allocated zp ZP_WORD:8 [ main::screen#1 ]
 Allocated zp ZP_BYTE:10 [ main::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -534,7 +535,7 @@ Allocated (was zp ZP_WORD:3) zp ZP_WORD:2 [ main::screen#3 main::screen#2 main::
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -737,7 +738,7 @@ Score: 1071
 
   // File Comments
 // Tests optimization of identical sub-expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/summin.log b/src/test/ref/summin.log
index 8fe17d087..e666a4856 100644
--- a/src/test/ref/summin.log
+++ b/src/test/ref/summin.log
@@ -297,8 +297,9 @@ Allocated zp ZP_BYTE:11 [ main::s4#0 ]
 Allocated zp ZP_BYTE:12 [ sum::return#3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -472,7 +473,7 @@ Allocated (was zp ZP_BYTE:9) zp ZP_BYTE:3 [ main::s3#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -649,7 +650,7 @@ FINAL ASSEMBLER
 Score: 74
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ternary-1.log b/src/test/ref/ternary-1.log
index e40a8eed4..f9e3a9eb3 100644
--- a/src/test/ref/ternary-1.log
+++ b/src/test/ref/ternary-1.log
@@ -173,9 +173,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -268,7 +269,7 @@ Uplifting [] best 418 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -394,7 +395,7 @@ Score: 256
 
   // File Comments
 // Tests the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ternary-2.log b/src/test/ref/ternary-2.log
index e9cd14395..9e755a036 100644
--- a/src/test/ref/ternary-2.log
+++ b/src/test/ref/ternary-2.log
@@ -156,9 +156,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -216,7 +217,7 @@ Uplifting [] best 66 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -301,7 +302,7 @@ Score: 18
 
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ternary-3.log b/src/test/ref/ternary-3.log
index d8d7cda4c..90673c5e4 100644
--- a/src/test/ref/ternary-3.log
+++ b/src/test/ref/ternary-3.log
@@ -383,9 +383,10 @@ Allocated zp ZP_BYTE:12 [ m2::return#1 ]
 Allocated zp ZP_BOOL:13 [ cond::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -587,7 +588,7 @@ Uplifting [] best 695 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -823,7 +824,7 @@ Score: 434
 
   // File Comments
 // Tests the ternary operator - when the condition is constant
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/ternary-inference.log b/src/test/ref/ternary-inference.log
index 6f0c1d7cc..1853aeaac 100644
--- a/src/test/ref/ternary-inference.log
+++ b/src/test/ref/ternary-inference.log
@@ -194,9 +194,10 @@ Allocated zp ZP_BYTE:3 [ main::$3 ]
 Allocated zp ZP_BYTE:4 [ main::$4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Type inference into the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -299,7 +300,7 @@ Uplifting [] best 498 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Type inference into the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -431,7 +432,7 @@ Score: 336
 
   // File Comments
 // Type inference into the ternary operator
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comments-block.log b/src/test/ref/test-comments-block.log
index 004ae39bd..e759a65e2 100644
--- a/src/test/ref/test-comments-block.log
+++ b/src/test/ref/test-comments-block.log
@@ -240,11 +240,12 @@ Allocated zp ZP_BYTE:6 [ main::$0 ]
 Allocated zp ZP_BYTE:7 [ sum::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 /* Tests that block comments are compiled correctly
  * Has a bunch of comments that will be moved into the generated ASM
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -372,7 +373,7 @@ ASSEMBLER BEFORE OPTIMIZATION
 /* Tests that block comments are compiled correctly
  * Has a bunch of comments that will be moved into the generated ASM
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -532,7 +533,7 @@ Score: 271
 /* Tests that block comments are compiled correctly
  * Has a bunch of comments that will be moved into the generated ASM
  */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comments-loop.log b/src/test/ref/test-comments-loop.log
index 5c89bc4ac..02ab7d967 100644
--- a/src/test/ref/test-comments-loop.log
+++ b/src/test/ref/test-comments-loop.log
@@ -117,8 +117,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::b#2 main::b#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -189,7 +190,7 @@ Uplifting [] best 263 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -286,7 +287,7 @@ FINAL ASSEMBLER
 Score: 161
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comments-single.log b/src/test/ref/test-comments-single.log
index c4791de99..1f35e370e 100644
--- a/src/test/ref/test-comments-single.log
+++ b/src/test/ref/test-comments-single.log
@@ -240,10 +240,11 @@ Allocated zp ZP_BYTE:6 [ main::$0 ]
 Allocated zp ZP_BYTE:7 [ sum::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that single-line comments are compiled correctly
 // Has a bunch of comments that will be moved into the generated ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -369,7 +370,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that single-line comments are compiled correctly
 // Has a bunch of comments that will be moved into the generated ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -527,7 +528,7 @@ Score: 271
   // File Comments
 // Tests that single-line comments are compiled correctly
 // Has a bunch of comments that will be moved into the generated ASM
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comments-usage.log b/src/test/ref/test-comments-usage.log
index da05a567e..0f80ec024 100644
--- a/src/test/ref/test-comments-usage.log
+++ b/src/test/ref/test-comments-usage.log
@@ -72,9 +72,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that single-line comments are only included once in the output
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -121,7 +122,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that single-line comments are only included once in the output
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -189,7 +190,7 @@ Score: 12
 
   // File Comments
 // Tests that single-line comments are only included once in the output
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comparisons-sword.log b/src/test/ref/test-comparisons-sword.log
index 6e582d474..4362e6d37 100644
--- a/src/test/ref/test-comparisons-sword.log
+++ b/src/test/ref/test-comparisons-sword.log
@@ -2368,9 +2368,10 @@ Allocated zp ZP_BYTE:34 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:35 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test signed word comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3450,7 +3451,7 @@ Allocated (was zp ZP_WORD:25) zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test signed word comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4756,7 +4757,7 @@ Score: 966668
 
   // File Comments
 // Test signed word comparisons
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comparisons-word.log b/src/test/ref/test-comparisons-word.log
index 8eb9797b0..459f16d17 100644
--- a/src/test/ref/test-comparisons-word.log
+++ b/src/test/ref/test-comparisons-word.log
@@ -2058,8 +2058,9 @@ Allocated zp ZP_BYTE:32 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:33 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3017,7 +3018,7 @@ Allocated (was zp ZP_WORD:25) zp ZP_WORD:19 [ main::w2#0 compare::w2#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4167,7 +4168,7 @@ FINAL ASSEMBLER
 Score: 966589
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-comparisons.log b/src/test/ref/test-comparisons.log
index c287891ef..7a88b2228 100644
--- a/src/test/ref/test-comparisons.log
+++ b/src/test/ref/test-comparisons.log
@@ -3383,8 +3383,9 @@ Allocated zp ZP_BYTE:40 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:41 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -5085,7 +5086,7 @@ Allocated (was zp ZP_BYTE:39) zp ZP_BYTE:14 [ main::b#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -6932,7 +6933,7 @@ FINAL ASSEMBLER
 Score: 15733
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-division.log b/src/test/ref/test-division.log
index 70fa68261..8a1e39242 100644
--- a/src/test/ref/test-division.log
+++ b/src/test/ref/test-division.log
@@ -5058,9 +5058,10 @@ Allocated zp ZP_BYTE:122 [ div8u::return#3 ]
 Allocated zp ZP_BYTE:123 [ test_8u::res#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test the binary division library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -7448,7 +7449,7 @@ Allocated (was zp ZP_BYTE:123) zp ZP_BYTE:34 [ test_8u::res#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test the binary division library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -9943,7 +9944,7 @@ Score: 33179
 
   // File Comments
 // Test the binary division library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-interrupt-notype.log b/src/test/ref/test-interrupt-notype.log
index 0a3a3ec25..367093b3e 100644
--- a/src/test/ref/test-interrupt-notype.log
+++ b/src/test/ref/test-interrupt-notype.log
@@ -132,8 +132,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ Uplifting [] best 133 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -290,7 +291,7 @@ FINAL ASSEMBLER
 Score: 115
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-interrupt-volatile-write.log b/src/test/ref/test-interrupt-volatile-write.log
index ea56a62fd..139a896cc 100644
--- a/src/test/ref/test-interrupt-volatile-write.log
+++ b/src/test/ref/test-interrupt-volatile-write.log
@@ -252,10 +252,11 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ col#14 col#0 col#1 col#12 col#3 col#4 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that volatile variables can be both read & written inside & outside interrupts
 // Currently fails because the modification is optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -373,7 +374,7 @@ ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that volatile variables can be both read & written inside & outside interrupts
 // Currently fails because the modification is optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -533,7 +534,7 @@ Score: 895
   // File Comments
 // Tests that volatile variables can be both read & written inside & outside interrupts
 // Currently fails because the modification is optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-interrupt-volatile.log b/src/test/ref/test-interrupt-volatile.log
index c7136b18a..b4b8e63a7 100644
--- a/src/test/ref/test-interrupt-volatile.log
+++ b/src/test/ref/test-interrupt-volatile.log
@@ -168,8 +168,9 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ col#2 col#0 col#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -251,7 +252,7 @@ Uplifting [] best 186 combination zp ZP_BYTE:2 [ col#2 col#0 col#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -359,7 +360,7 @@ FINAL ASSEMBLER
 Score: 123
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-interrupt.log b/src/test/ref/test-interrupt.log
index 0a3a3ec25..367093b3e 100644
--- a/src/test/ref/test-interrupt.log
+++ b/src/test/ref/test-interrupt.log
@@ -132,8 +132,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -199,7 +200,7 @@ Uplifting [] best 133 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -290,7 +291,7 @@ FINAL ASSEMBLER
 Score: 115
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-kasm-pc.log b/src/test/ref/test-kasm-pc.log
index 5c6a0cc66..701bf3900 100644
--- a/src/test/ref/test-kasm-pc.log
+++ b/src/test/ref/test-kasm-pc.log
@@ -131,9 +131,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inline KickAssembler code with PC location specification
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -201,7 +202,7 @@ Uplifting [] best 2814 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inline KickAssembler code with PC location specification
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -295,7 +296,7 @@ Score: 2715
 
   // File Comments
 // Test inline KickAssembler code with PC location specification
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-kasm.log b/src/test/ref/test-kasm.log
index 61366495c..c276eb8d8 100644
--- a/src/test/ref/test-kasm.log
+++ b/src/test/ref/test-kasm.log
@@ -85,9 +85,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inline KickAssembler code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -133,7 +134,7 @@ Uplifting [] best 2915 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inline KickAssembler code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -198,7 +199,7 @@ Score: 2846
 
   // File Comments
 // Test inline KickAssembler code
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-keyboard-space.log b/src/test/ref/test-keyboard-space.log
index af6b54cc6..991b042a4 100644
--- a/src/test/ref/test-keyboard-space.log
+++ b/src/test/ref/test-keyboard-space.log
@@ -457,9 +457,10 @@ Allocated zp ZP_BYTE:6 [ keyboard_key_pressed::return#0 ]
 Allocated zp ZP_BYTE:7 [ keyboard_matrix_read::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test keyboard input - test the space bar
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -649,7 +650,7 @@ Uplifting [] best 1258 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test keyboard input - test the space bar
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -892,7 +893,7 @@ Score: 1141
 
   // File Comments
 // Test keyboard input - test the space bar
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-keyboard.log b/src/test/ref/test-keyboard.log
index 6daabf69e..0f34246be 100644
--- a/src/test/ref/test-keyboard.log
+++ b/src/test/ref/test-keyboard.log
@@ -1452,9 +1452,10 @@ Allocated zp ZP_BYTE:27 [ keyboard_matrix_read::return#0 ]
 Allocated zp ZP_BYTE:28 [ keyboard_get_keycode::return#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2022,7 +2023,7 @@ Allocated (was zp ZP_BYTE:22) zp ZP_BYTE:8 [ keyboard_key_pressed::colidx#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2760,7 +2761,7 @@ Score: 56821
 
   // File Comments
 // Test keyboard input - in the keyboard matrix and mapping screen codes to key codes
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-lohiconst.log b/src/test/ref/test-lohiconst.log
index cfa9a5716..ca355a7b8 100644
--- a/src/test/ref/test-lohiconst.log
+++ b/src/test/ref/test-lohiconst.log
@@ -153,9 +153,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // PI in u[4.28] format
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -214,7 +215,7 @@ Uplifting [] best 45 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // PI in u[4.28] format
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -293,7 +294,7 @@ Score: 30
 
   // File Comments
 // PI in u[4.28] format
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-lowhigh.log b/src/test/ref/test-lowhigh.log
index 33c1249bd..ea3f25ceb 100644
--- a/src/test/ref/test-lowhigh.log
+++ b/src/test/ref/test-lowhigh.log
@@ -1317,8 +1317,9 @@ Allocated zp ZP_BYTE:44 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:45 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2013,7 +2014,7 @@ Allocated (was zp ZP_WORD:42) zp ZP_WORD:28 [ main::$27 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2801,7 +2802,7 @@ FINAL ASSEMBLER
 Score: 7444
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-multiply-16bit.log b/src/test/ref/test-multiply-16bit.log
index 7708083ae..d2fe78358 100644
--- a/src/test/ref/test-multiply-16bit.log
+++ b/src/test/ref/test-multiply-16bit.log
@@ -5163,9 +5163,10 @@ Allocated zp ZP_BYTE:228 [ mulf_init::$10 ]
 Allocated zp ZP_BYTE:229 [ mulf_init::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8229,7 +8230,7 @@ Allocated (was zp ZP_WORD:174) zp ZP_WORD:64 [ mul16s::$13 mul16s::$17 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -11357,7 +11358,7 @@ Score: 440270
 
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-multiply-8bit.log b/src/test/ref/test-multiply-8bit.log
index fae9f4792..9662b60fb 100644
--- a/src/test/ref/test-multiply-8bit.log
+++ b/src/test/ref/test-multiply-8bit.log
@@ -5341,9 +5341,10 @@ Allocated zp ZP_BYTE:134 [ mulf_init::$10 ]
 Allocated zp ZP_BYTE:135 [ mulf_init::$11 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -8145,7 +8146,7 @@ Allocated (was zp ZP_BYTE:94) zp ZP_BYTE:36 [ mulf8s_prepared::b#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -11235,7 +11236,7 @@ Score: 229409
 
   // File Comments
 // Test the fast multiplication library
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-scroll-up.log b/src/test/ref/test-scroll-up.log
index ae6891da6..9a58e0ef4 100644
--- a/src/test/ref/test-scroll-up.log
+++ b/src/test/ref/test-scroll-up.log
@@ -575,9 +575,10 @@ Allocated zp ZP_WORD:24 [ scrollup1::$5 ]
 Allocated zp ZP_WORD:26 [ scrollup1::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests different ways of scrolling up the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -998,7 +999,7 @@ Allocated (was zp ZP_WORD:22) zp ZP_WORD:19 [ scrollup1::$2 scrollup1::$5 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests different ways of scrolling up the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1490,7 +1491,7 @@ Score: 22547
 
   // File Comments
 // Tests different ways of scrolling up the screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-signed-word-minus-byte.log b/src/test/ref/test-signed-word-minus-byte.log
index bd1760292..d7a7586ba 100644
--- a/src/test/ref/test-signed-word-minus-byte.log
+++ b/src/test/ref/test-signed-word-minus-byte.log
@@ -1064,9 +1064,10 @@ Allocated zp ZP_BYTE:19 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:20 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1556,7 +1557,7 @@ Allocated (was zp ZP_WORD:15) zp ZP_WORD:13 [ main::w2#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2135,7 +2136,7 @@ Score: 5528
 
   // File Comments
 // Tests subtracting bytes from signed words
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/test-word-size-arrays.log b/src/test/ref/test-word-size-arrays.log
index 6e337e3a6..f5d444494 100644
--- a/src/test/ref/test-word-size-arrays.log
+++ b/src/test/ref/test-word-size-arrays.log
@@ -279,8 +279,9 @@ Allocated zp ZP_WORD:14 [ main::$5 ]
 Allocated zp ZP_WORD:16 [ main::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -499,7 +500,7 @@ Allocated (was zp ZP_WORD:14) zp ZP_WORD:8 [ main::$5 main::$9 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -743,7 +744,7 @@ FINAL ASSEMBLER
 Score: 10381
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/tetris-npe.log b/src/test/ref/tetris-npe.log
index 7800f2ea7..f2493e372 100644
--- a/src/test/ref/tetris-npe.log
+++ b/src/test/ref/tetris-npe.log
@@ -251,9 +251,10 @@ Allocated zp ZP_BYTE:2 [ counter#3 counter#1 ]
 Allocated zp ZP_BYTE:3 [ ypos#2 ypos#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // NullPointerException using current_movedown_rate in the main loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -349,7 +350,7 @@ Uplifting [main] best 14052 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // NullPointerException using current_movedown_rate in the main loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -483,7 +484,7 @@ Score: 10110
 
   // File Comments
 // NullPointerException using current_movedown_rate in the main loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/textbox.log b/src/test/ref/textbox.log
index 522d1847c..9219fd60e 100644
--- a/src/test/ref/textbox.log
+++ b/src/test/ref/textbox.log
@@ -1904,9 +1904,10 @@ Allocated zp ZP_WORD:89 [ draw_window::$24 ]
 Allocated zp ZP_WORD:91 [ draw_window::$35 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 /* Textbox routine with word wrap for KickC by Scan/Desire */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3233,7 +3234,7 @@ Allocated (was zp ZP_WORD:89) zp ZP_WORD:36 [ draw_window::$24 draw_window::$35
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 /* Textbox routine with word wrap for KickC by Scan/Desire */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -4424,7 +4425,7 @@ Score: 149329
 
   // File Comments
 /* Textbox routine with word wrap for KickC by Scan/Desire */
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/tod018-problem.log b/src/test/ref/tod018-problem.log
index 02be9500d..5de92cd8c 100644
--- a/src/test/ref/tod018-problem.log
+++ b/src/test/ref/tod018-problem.log
@@ -116,9 +116,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a problem with tod018 not calculating types correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -166,7 +167,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a problem with tod018 not calculating types correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -239,7 +240,7 @@ Score: 12
 
   // File Comments
 // Tests a problem with tod018 not calculating types correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/travis1.log b/src/test/ref/travis1.log
index 641144282..4a4eec416 100644
--- a/src/test/ref/travis1.log
+++ b/src/test/ref/travis1.log
@@ -775,9 +775,10 @@ Allocated zp ZP_BOOL:13 [ main::$0 ]
 Allocated zp ZP_BOOL:14 [ game_ready::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1108,7 +1109,7 @@ Allocated (was zp ZP_WORD:9) zp ZP_WORD:7 [ print_char_cursor#17 print_char_curs
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1509,7 +1510,7 @@ Score: 9940
 
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/true-inline-words.log b/src/test/ref/true-inline-words.log
index 4cf21c759..2acc01378 100644
--- a/src/test/ref/true-inline-words.log
+++ b/src/test/ref/true-inline-words.log
@@ -226,8 +226,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -301,7 +302,7 @@ Uplifting [] best 55 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -411,7 +412,7 @@ FINAL ASSEMBLER
 Score: 40
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/type-inference.log b/src/test/ref/type-inference.log
index c8645de8e..47e8c18a5 100644
--- a/src/test/ref/type-inference.log
+++ b/src/test/ref/type-inference.log
@@ -144,9 +144,10 @@ Allocated zp ZP_BYTE:3 [ main::$0 ]
 Allocated zp ZP_BYTE:4 [ main::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test inference of integer types in expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -237,7 +238,7 @@ Uplifting [main] best 473 combination zp ZP_BYTE:2 [ main::b#2 main::b#1 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test inference of integer types in expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -348,7 +349,7 @@ Score: 371
 
   // File Comments
 // Test inference of integer types in expressions
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/type-mix.log b/src/test/ref/type-mix.log
index 7cac24e75..5810dedc0 100644
--- a/src/test/ref/type-mix.log
+++ b/src/test/ref/type-mix.log
@@ -159,9 +159,10 @@ Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:5 [ main::$1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests that mixing types can synthesize a fragment correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -255,7 +256,7 @@ Uplifting [] best 553 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests that mixing types can synthesize a fragment correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -377,7 +378,7 @@ Score: 431
 
   // File Comments
 // Tests that mixing types can synthesize a fragment correctly
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/type-signed.log b/src/test/ref/type-signed.log
index 1cc710aba..4038df9c7 100644
--- a/src/test/ref/type-signed.log
+++ b/src/test/ref/type-signed.log
@@ -840,9 +840,10 @@ Allocated zp ZP_BYTE:17 [ print_byte::$0 ]
 Allocated zp ZP_BYTE:18 [ print_byte::$2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests the special "signed" / "unsigned" without a simple type name
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1264,7 +1265,7 @@ Allocated (was zp ZP_WORD:13) zp ZP_WORD:11 [ print_char_cursor#33 print_char_cu
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests the special "signed" / "unsigned" without a simple type name
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1755,7 +1756,7 @@ Score: 5183
 
   // File Comments
 // Tests the special "signed" / "unsigned" without a simple type name
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typedef-0.log b/src/test/ref/typedef-0.log
index c46cb171f..bbdd91afe 100644
--- a/src/test/ref/typedef-0.log
+++ b/src/test/ref/typedef-0.log
@@ -79,8 +79,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -126,7 +127,7 @@ Uplifting [] best 27 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -195,7 +196,7 @@ FINAL ASSEMBLER
 Score: 12
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typedef-1.log b/src/test/ref/typedef-1.log
index 7a23e2389..051a8a89a 100644
--- a/src/test/ref/typedef-1.log
+++ b/src/test/ref/typedef-1.log
@@ -129,8 +129,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -184,7 +185,7 @@ Uplifting [] best 33 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -263,7 +264,7 @@ FINAL ASSEMBLER
 Score: 18
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typeid-plus-byte-problem.log b/src/test/ref/typeid-plus-byte-problem.log
index a619a37cf..88bf80a11 100644
--- a/src/test/ref/typeid-plus-byte-problem.log
+++ b/src/test/ref/typeid-plus-byte-problem.log
@@ -107,9 +107,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that byte+byte creates a byte - even when there is a value overflow
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -157,7 +158,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that byte+byte creates a byte - even when there is a value overflow
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -230,7 +231,7 @@ Score: 12
 
   // File Comments
 // Test that byte+byte creates a byte - even when there is a value overflow
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typeid-plus-bytes.log b/src/test/ref/typeid-plus-bytes.log
index 873c54d30..1adea5081 100644
--- a/src/test/ref/typeid-plus-bytes.log
+++ b/src/test/ref/typeid-plus-bytes.log
@@ -1158,9 +1158,10 @@ Allocated zp ZP_BYTE:14 [ testUnsignedVals::$5 ]
 Allocated zp ZP_BYTE:15 [ testUnsignedVals::$6 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1546,7 +1547,7 @@ Uplifting [testSignedVals] best 418 combination zp ZP_BYTE:5 [ testSignedVals::s
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1935,7 +1936,7 @@ Score: 350
 
   // File Comments
 // Test that plus creates the expected type for all legal combinations of bytes (signed/unsigned - constant/variable)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typeid-simple.log b/src/test/ref/typeid-simple.log
index 5d58bbd3a..e1f45803c 100644
--- a/src/test/ref/typeid-simple.log
+++ b/src/test/ref/typeid-simple.log
@@ -454,9 +454,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test typeid() of the different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -636,7 +637,7 @@ Uplifting [] best 195 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test typeid() of the different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -830,7 +831,7 @@ Score: 176
 
   // File Comments
 // Test typeid() of the different types
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/typeinference-problem.log b/src/test/ref/typeinference-problem.log
index 3b4f643a7..3e2986fbf 100644
--- a/src/test/ref/typeinference-problem.log
+++ b/src/test/ref/typeinference-problem.log
@@ -135,9 +135,10 @@ Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 Allocated zp ZP_BYTE:3 [ main::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // java.lang.NullPointerException during Pass2TypeInference.java
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -218,7 +219,7 @@ Uplifting [] best 343 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // java.lang.NullPointerException during Pass2TypeInference.java
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -323,7 +324,7 @@ Score: 241
 
   // File Comments
 // java.lang.NullPointerException during Pass2TypeInference.java
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/uninitialized.log b/src/test/ref/uninitialized.log
index 2699a1c95..a0c47fd6b 100644
--- a/src/test/ref/uninitialized.log
+++ b/src/test/ref/uninitialized.log
@@ -164,9 +164,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests uninitialized values of variables.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -229,7 +230,7 @@ Uplifting [] best 51 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests uninitialized values of variables.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -317,7 +318,7 @@ Score: 30
 
   // File Comments
 // Tests uninitialized values of variables.
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unroll-loop-modifyvar.log b/src/test/ref/unroll-loop-modifyvar.log
index 551c8f2d6..a51912a24 100644
--- a/src/test/ref/unroll-loop-modifyvar.log
+++ b/src/test/ref/unroll-loop-modifyvar.log
@@ -398,9 +398,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // An unrolled loop modifying a var used later
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -528,7 +529,7 @@ Uplifting [] best 156 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // An unrolled loop modifying a var used later
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -704,7 +705,7 @@ Score: 78
 
   // File Comments
 // An unrolled loop modifying a var used later
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unroll-screenfill-for-double.log b/src/test/ref/unroll-screenfill-for-double.log
index 791e1aa1e..de8d07ac0 100644
--- a/src/test/ref/unroll-screenfill-for-double.log
+++ b/src/test/ref/unroll-screenfill-for-double.log
@@ -1331,9 +1331,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fills the screen using two unrolled ranged for()-loops
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2224,7 +2225,7 @@ Uplifting [] best 1137 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fills the screen using two unrolled ranged for()-loops
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -3493,7 +3494,7 @@ Score: 512
 
   // File Comments
 // Fills the screen using two unrolled ranged for()-loops
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unroll-screenfill-for.log b/src/test/ref/unroll-screenfill-for.log
index 43eedd8a6..944e47e16 100644
--- a/src/test/ref/unroll-screenfill-for.log
+++ b/src/test/ref/unroll-screenfill-for.log
@@ -848,9 +848,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::x#4 main::x#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fills the screen using an unrolled inner ranged for()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1092,7 +1093,7 @@ Uplifting [] best 2723 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fills the screen using an unrolled inner ranged for()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1419,7 +1420,7 @@ Score: 1841
 
   // File Comments
 // Fills the screen using an unrolled inner ranged for()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unroll-screenfill-while.log b/src/test/ref/unroll-screenfill-while.log
index 69fa706e2..c08e01d4b 100644
--- a/src/test/ref/unroll-screenfill-while.log
+++ b/src/test/ref/unroll-screenfill-while.log
@@ -883,9 +883,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::x#5 main::x#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Fills the screen using an unrolled inner while()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1127,7 +1128,7 @@ Uplifting [] best 2723 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Fills the screen using an unrolled inner while()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1454,7 +1455,7 @@ Score: 1841
 
   // File Comments
 // Fills the screen using an unrolled inner while()-loop
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unused-irq.log b/src/test/ref/unused-irq.log
index b98a28d71..8a2cdf9a9 100644
--- a/src/test/ref/unused-irq.log
+++ b/src/test/ref/unused-irq.log
@@ -129,9 +129,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Unused interrupts pointing to each other but never used from main loop - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -214,7 +215,7 @@ Uplifting [] best 63 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Unused interrupts pointing to each other but never used from main loop - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -322,7 +323,7 @@ Score: 42
 
   // File Comments
 // Unused interrupts pointing to each other but never used from main loop - should be optimized away
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unused-method.log b/src/test/ref/unused-method.log
index af81f99fd..f91a174be 100644
--- a/src/test/ref/unused-method.log
+++ b/src/test/ref/unused-method.log
@@ -86,8 +86,9 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -132,7 +133,7 @@ Uplifting [] best 27 combination
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -198,7 +199,7 @@ FINAL ASSEMBLER
 Score: 12
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unused-vars.log b/src/test/ref/unused-vars.log
index c78f1b977..e8e0199dc 100644
--- a/src/test/ref/unused-vars.log
+++ b/src/test/ref/unused-vars.log
@@ -254,9 +254,10 @@ Complete equivalence classes
 Allocated zp ZP_BYTE:2 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // used vars
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -350,7 +351,7 @@ Uplifting [] best 375 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // used vars
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -476,7 +477,7 @@ Score: 243
 
   // File Comments
 // used vars
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/unusedblockproblem.log b/src/test/ref/unusedblockproblem.log
index 24ca3c304..b7af51665 100644
--- a/src/test/ref/unusedblockproblem.log
+++ b/src/test/ref/unusedblockproblem.log
@@ -123,9 +123,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -170,7 +171,7 @@ Uplifting [] best 132 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -238,7 +239,7 @@ Score: 90
 
   // File Comments
 // Problem with eliminating unused blocks/vars after the infinite loop (symbol line#2 not removed from symbol table)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/useglobal.log b/src/test/ref/useglobal.log
index d657a0b32..a9785418c 100644
--- a/src/test/ref/useglobal.log
+++ b/src/test/ref/useglobal.log
@@ -79,9 +79,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests procedures using global variables (should not fail)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -127,7 +128,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests procedures using global variables (should not fail)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -194,7 +195,7 @@ Score: 12
 
   // File Comments
 // Tests procedures using global variables (should not fail)
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/useuninitialized.log b/src/test/ref/useuninitialized.log
index 0da65bdf1..7f6c456d0 100644
--- a/src/test/ref/useuninitialized.log
+++ b/src/test/ref/useuninitialized.log
@@ -154,9 +154,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Use an uninitialized variable - should use the default value (0)!
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -208,7 +209,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Use an uninitialized variable - should use the default value (0)!
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -284,7 +285,7 @@ Score: 18
 
   // File Comments
 // Use an uninitialized variable - should use the default value (0)!
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/var-forward-problem.log b/src/test/ref/var-forward-problem.log
index a6e20ddec..f5303cd43 100644
--- a/src/test/ref/var-forward-problem.log
+++ b/src/test/ref/var-forward-problem.log
@@ -79,9 +79,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -128,7 +129,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -198,7 +199,7 @@ Score: 12
 
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/var-forward-problem2.log b/src/test/ref/var-forward-problem2.log
index 3db04896f..1259e5ccb 100644
--- a/src/test/ref/var-forward-problem2.log
+++ b/src/test/ref/var-forward-problem2.log
@@ -114,9 +114,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -163,7 +164,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -233,7 +234,7 @@ Score: 12
 
   // File Comments
 // Illustrates the problem with variable forward references not working
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/var-init-problem.log b/src/test/ref/var-init-problem.log
index 6d5dedcae..cb9691ef5 100644
--- a/src/test/ref/var-init-problem.log
+++ b/src/test/ref/var-init-problem.log
@@ -93,9 +93,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Variables without initialization causes problems when compiling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -141,7 +142,7 @@ Uplifting [] best 27 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Variables without initialization causes problems when compiling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -208,7 +209,7 @@ Score: 12
 
   // File Comments
 // Variables without initialization causes problems when compiling
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/var-register.log b/src/test/ref/var-register.log
index e8b64c9a1..d78d9639d 100644
--- a/src/test/ref/var-register.log
+++ b/src/test/ref/var-register.log
@@ -284,8 +284,9 @@ Allocated zp ZP_BYTE:3 [ main::a#2 main::a#1 ]
 Allocated zp ZP_BYTE:4 [ print::val#0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -431,7 +432,7 @@ Allocated (was zp ZP_BYTE:3) zp ZP_BYTE:2 [ main::a#2 main::a#1 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -629,7 +630,7 @@ FINAL ASSEMBLER
 Score: 31452
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/voronoi.log b/src/test/ref/voronoi.log
index 3843aff97..40520d4da 100644
--- a/src/test/ref/voronoi.log
+++ b/src/test/ref/voronoi.log
@@ -1310,9 +1310,10 @@ Allocated zp ZP_BYTE:26 [ findcol::$8 ]
 Allocated zp ZP_BYTE:27 [ findcol::$10 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // The screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -1944,7 +1945,7 @@ Allocated (was zp ZP_BYTE:25) zp ZP_BYTE:10 [ findcol::yp#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // The screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -2637,7 +2638,7 @@ Score: 1504591
 
   // File Comments
 // The screen
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/wfragment1.log b/src/test/ref/wfragment1.log
index 5a62f9646..f33c6d672 100644
--- a/src/test/ref/wfragment1.log
+++ b/src/test/ref/wfragment1.log
@@ -258,9 +258,10 @@ Allocated zp ZP_BYTE:3 [ move_enemy::obj_slot#0 ]
 Allocated zp ZP_BYTE:4 [ move_enemy::$0 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -366,7 +367,7 @@ Uplifting [] best 319 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -505,7 +506,7 @@ Score: 184
 
   // File Comments
 // Adding a missing word-fragment for Travis Fisher
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-array-0.log b/src/test/ref/word-array-0.log
index ad3035fe2..208fccb3f 100644
--- a/src/test/ref/word-array-0.log
+++ b/src/test/ref/word-array-0.log
@@ -178,9 +178,10 @@ Allocated zp ZP_BYTE:8 [ main::$2 ]
 Allocated zp ZP_BYTE:9 [ main::$3 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -278,7 +279,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ main::w2#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -389,7 +390,7 @@ Score: 62
 
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-array-1.log b/src/test/ref/word-array-1.log
index 517e9775e..5aba8ac8c 100644
--- a/src/test/ref/word-array-1.log
+++ b/src/test/ref/word-array-1.log
@@ -207,9 +207,10 @@ Allocated zp ZP_BYTE:9 [ main::$1 ]
 Allocated zp ZP_BYTE:10 [ main::idx#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -350,7 +351,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -503,7 +504,7 @@ Score: 641
 
   // File Comments
 // Tests a simple word array
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-array-2.log b/src/test/ref/word-array-2.log
index 91f737aa8..5c2e7c1b3 100644
--- a/src/test/ref/word-array-2.log
+++ b/src/test/ref/word-array-2.log
@@ -224,9 +224,10 @@ Allocated zp ZP_WORD:11 [ main::$6 ]
 Allocated zp ZP_WORD:13 [ main::$9 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests a word-array with 128+ elements
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -381,7 +382,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:4 [ main::$2 main::$3 main::$4 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests a word-array with 128+ elements
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -546,7 +547,7 @@ Score: 1092
 
   // File Comments
 // Tests a word-array with 128+ elements
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-compound.log b/src/test/ref/word-pointer-compound.log
index ced193f7a..40370c223 100644
--- a/src/test/ref/word-pointer-compound.log
+++ b/src/test/ref/word-pointer-compound.log
@@ -306,9 +306,10 @@ Allocated zp ZP_BYTE:8 [ main::$4 ]
 Allocated zp ZP_BYTE:9 [ main::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Test word pointer compound assignment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -454,7 +455,7 @@ Uplifting [main] best 554 combination reg byte a [ main::$5 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Test word pointer compound assignment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -609,7 +610,7 @@ Score: 449
 
   // File Comments
 // Test word pointer compound assignment
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-iteration-0.log b/src/test/ref/word-pointer-iteration-0.log
index 7564430b6..ef1ed7b7c 100644
--- a/src/test/ref/word-pointer-iteration-0.log
+++ b/src/test/ref/word-pointer-iteration-0.log
@@ -191,9 +191,10 @@ Allocated zp ZP_BYTE:6 [ main::$4 ]
 Allocated zp ZP_BYTE:7 [ main::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -289,7 +290,7 @@ Uplifting [main] best 69 combination reg byte a [ main::$5 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -392,7 +393,7 @@ Score: 54
 
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-iteration.log b/src/test/ref/word-pointer-iteration.log
index 8f4621303..f08e372be 100644
--- a/src/test/ref/word-pointer-iteration.log
+++ b/src/test/ref/word-pointer-iteration.log
@@ -214,9 +214,10 @@ Allocated zp ZP_BYTE:10 [ main::$1 ]
 Allocated zp ZP_BYTE:11 [ main::idx#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -368,7 +369,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:5 [ main::w#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -537,7 +538,7 @@ Score: 946
 
   // File Comments
 // Tests simple word pointer iteration
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-math-0.log b/src/test/ref/word-pointer-math-0.log
index 191b7a17d..9cdf7d4e3 100644
--- a/src/test/ref/word-pointer-math-0.log
+++ b/src/test/ref/word-pointer-math-0.log
@@ -189,9 +189,10 @@ Allocated zp ZP_BYTE:8 [ main::$4 ]
 Allocated zp ZP_BYTE:9 [ main::$5 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -289,7 +290,7 @@ Allocated (was zp ZP_WORD:6) zp ZP_WORD:4 [ main::w2#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -400,7 +401,7 @@ Score: 62
 
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-math-1.log b/src/test/ref/word-pointer-math-1.log
index 581a48fbd..f4c70c269 100644
--- a/src/test/ref/word-pointer-math-1.log
+++ b/src/test/ref/word-pointer-math-1.log
@@ -110,9 +110,10 @@ Initial phi equivalence classes
 Complete equivalence classes
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests word pointer math - subtracting two word pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -164,7 +165,7 @@ Uplifting [] best 33 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests word pointer math - subtracting two word pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -244,7 +245,7 @@ Score: 18
 
   // File Comments
 // Tests word pointer math - subtracting two word pointers
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/word-pointer-math.log b/src/test/ref/word-pointer-math.log
index b96a31f5a..6b18c38d7 100644
--- a/src/test/ref/word-pointer-math.log
+++ b/src/test/ref/word-pointer-math.log
@@ -213,9 +213,10 @@ Allocated zp ZP_BYTE:9 [ main::$2 ]
 Allocated zp ZP_BYTE:10 [ main::idx#2 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -356,7 +357,7 @@ Allocated (was zp ZP_WORD:5) zp ZP_WORD:3 [ main::w#0 ]
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -508,7 +509,7 @@ Score: 671
 
   // File Comments
 // Tests simple word pointer math
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/wordexpr.log b/src/test/ref/wordexpr.log
index 06ffc2b79..1f9554032 100644
--- a/src/test/ref/wordexpr.log
+++ b/src/test/ref/wordexpr.log
@@ -140,9 +140,10 @@ Allocated zp ZP_WORD:2 [ main::b#2 main::b#1 ]
 Allocated zp ZP_BYTE:4 [ main::i#2 main::i#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
 // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -224,7 +225,7 @@ Uplifting [] best 473 combination
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
 // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -337,7 +338,7 @@ Score: 351
 
   // File Comments
 // Expressions based on bytes but resulting in words are as words - eg. b = b + 40*8;
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/zpparammin.log b/src/test/ref/zpparammin.log
index 63a30fe2d..5f3e4682f 100644
--- a/src/test/ref/zpparammin.log
+++ b/src/test/ref/zpparammin.log
@@ -370,8 +370,9 @@ Allocated zp ZP_BYTE:15 [ sum::$0 ]
 Allocated zp ZP_BYTE:16 [ sum::return#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -582,7 +583,7 @@ Uplifting [sum] best 1013 combination reg byte a [ sum::$0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -808,7 +809,7 @@ FINAL ASSEMBLER
 Score: 805
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"
diff --git a/src/test/ref/zpptr.log b/src/test/ref/zpptr.log
index ea689ada0..02ba37d57 100644
--- a/src/test/ref/zpptr.log
+++ b/src/test/ref/zpptr.log
@@ -255,8 +255,9 @@ Allocated zp ZP_WORD:7 [ main::w#0 ]
 Allocated zp ZP_WORD:9 [ main::zpptr2#1 ]
 
 INITIAL ASM
+Target platform is c64basic
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -417,7 +418,7 @@ Allocated (was zp ZP_WORD:7) zp ZP_WORD:6 [ main::w#0 ]
 
 ASSEMBLER BEFORE OPTIMIZATION
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(bbegin)
 .pc = $80d "Program"
@@ -616,7 +617,7 @@ FINAL ASSEMBLER
 Score: 68411
 
   // File Comments
-  // Basic Upstart
+  // Upstart
 .pc = $801 "Basic"
 :BasicUpstart(main)
 .pc = $80d "Program"