From 15a9415d632ee7fb1dd710ce4137f34b13a2ec6d Mon Sep 17 00:00:00 2001
From: Jesper Gravgaard <jg@ramboll.com>
Date: Sat, 12 Aug 2017 18:30:21 +0200
Subject: [PATCH] Improved ASM readability

---
 src/main/java/dk/camelot64/kickc/TODO.txt     |    4 +-
 .../dk/camelot64/kickc/asm/AsmFragment.java   |    4 +-
 .../dk/camelot64/kickc/asm/AsmProcBegin.java  |   48 +
 .../dk/camelot64/kickc/asm/AsmProcEnd.java    |   41 +
 .../dk/camelot64/kickc/asm/AsmProgram.java    |   43 +-
 .../asm/AsmProgramStaticRegisterValues.java   |    4 +
 .../dk/camelot64/kickc/asm/AsmSegment.java    |   20 +-
 .../camelot64/kickc/icl/ControlFlowBlock.java |   46 +-
 .../dk/camelot64/kickc/icl/SymbolRef.java     |   11 +-
 .../passes/Pass1EliminateEmptyBlocks.java     |    2 +-
 .../passes/Pass1GenerateControlFlowGraph.java |    6 +-
 .../kickc/passes/Pass2AssertBlocks.java       |    2 +-
 .../kickc/passes/Pass2AssertSymbols.java      |    2 +-
 .../kickc/passes/Pass3CodeGeneration.java     |   15 +-
 .../dk/camelot64/kickc/test/ref/bresenham.asm |   24 +-
 .../dk/camelot64/kickc/test/ref/bresenham.cfg |   16 +-
 .../dk/camelot64/kickc/test/ref/bresenham.log |  506 +-
 .../dk/camelot64/kickc/test/ref/bresenham.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/fibmem.asm    |   41 +-
 .../dk/camelot64/kickc/test/ref/fibmem.cfg    |   10 +-
 .../dk/camelot64/kickc/test/ref/fibmem.log    |  538 +--
 .../dk/camelot64/kickc/test/ref/fibmem.sym    |    4 +-
 .../camelot64/kickc/test/ref/flipper-rex2.asm |  236 +-
 .../camelot64/kickc/test/ref/flipper-rex2.cfg |   16 +-
 .../camelot64/kickc/test/ref/flipper-rex2.log | 2898 ++++++------
 .../camelot64/kickc/test/ref/flipper-rex2.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/loopmin.asm   |   24 +-
 .../dk/camelot64/kickc/test/ref/loopmin.cfg   |   12 +-
 .../dk/camelot64/kickc/test/ref/loopmin.log   |  290 +-
 .../dk/camelot64/kickc/test/ref/loopmin.sym   |    4 +-
 .../dk/camelot64/kickc/test/ref/loopnest.asm  |   52 +-
 .../dk/camelot64/kickc/test/ref/loopnest.cfg  |   12 +-
 .../dk/camelot64/kickc/test/ref/loopnest.log  |  668 +--
 .../dk/camelot64/kickc/test/ref/loopnest.sym  |    4 +-
 .../dk/camelot64/kickc/test/ref/loopnest2.asm |  133 +-
 .../dk/camelot64/kickc/test/ref/loopnest2.cfg |   14 +-
 .../dk/camelot64/kickc/test/ref/loopnest2.log | 1426 +++---
 .../dk/camelot64/kickc/test/ref/loopnest2.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/loopsplit.asm |   41 +-
 .../dk/camelot64/kickc/test/ref/loopsplit.cfg |   10 +-
 .../dk/camelot64/kickc/test/ref/loopsplit.log |  353 +-
 .../dk/camelot64/kickc/test/ref/loopsplit.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/minus.asm     |   12 +-
 .../dk/camelot64/kickc/test/ref/minus.cfg     |   10 +-
 .../dk/camelot64/kickc/test/ref/minus.log     |  250 +-
 .../dk/camelot64/kickc/test/ref/minus.sym     |    4 +-
 .../dk/camelot64/kickc/test/ref/modglobal.asm |   46 +-
 .../dk/camelot64/kickc/test/ref/modglobal.cfg |   12 +-
 .../dk/camelot64/kickc/test/ref/modglobal.log |  564 +--
 .../dk/camelot64/kickc/test/ref/modglobal.sym |    4 +-
 .../camelot64/kickc/test/ref/modglobalmin.asm |   42 +-
 .../camelot64/kickc/test/ref/modglobalmin.cfg |   12 +-
 .../camelot64/kickc/test/ref/modglobalmin.log |  492 +-
 .../camelot64/kickc/test/ref/modglobalmin.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/ptrtest.asm   |  145 +-
 .../dk/camelot64/kickc/test/ref/ptrtest.cfg   |   18 +-
 .../dk/camelot64/kickc/test/ref/ptrtest.log   | 1083 ++---
 .../dk/camelot64/kickc/test/ref/ptrtest.sym   |    4 +-
 .../camelot64/kickc/test/ref/ptrtestmin.asm   |   27 +-
 .../camelot64/kickc/test/ref/ptrtestmin.cfg   |   10 +-
 .../camelot64/kickc/test/ref/ptrtestmin.log   |  311 +-
 .../camelot64/kickc/test/ref/ptrtestmin.sym   |    4 +-
 .../dk/camelot64/kickc/test/ref/summin.asm    |   29 +-
 .../dk/camelot64/kickc/test/ref/summin.cfg    |   16 +-
 .../dk/camelot64/kickc/test/ref/summin.log    |  317 +-
 .../dk/camelot64/kickc/test/ref/summin.sym    |    4 +-
 .../dk/camelot64/kickc/test/ref/useglobal.asm |   15 +-
 .../dk/camelot64/kickc/test/ref/useglobal.cfg |   10 +-
 .../dk/camelot64/kickc/test/ref/useglobal.log |  223 +-
 .../dk/camelot64/kickc/test/ref/useglobal.sym |    4 +-
 .../dk/camelot64/kickc/test/ref/voronoi.asm   |  506 +-
 .../dk/camelot64/kickc/test/ref/voronoi.cfg   |   20 +-
 .../dk/camelot64/kickc/test/ref/voronoi.log   | 4194 +++++++++--------
 .../dk/camelot64/kickc/test/ref/voronoi.sym   |    4 +-
 74 files changed, 8154 insertions(+), 7838 deletions(-)
 create mode 100644 src/main/java/dk/camelot64/kickc/asm/AsmProcBegin.java
 create mode 100644 src/main/java/dk/camelot64/kickc/asm/AsmProcEnd.java

diff --git a/src/main/java/dk/camelot64/kickc/TODO.txt b/src/main/java/dk/camelot64/kickc/TODO.txt
index 04ddf4e4a..d223358d6 100644
--- a/src/main/java/dk/camelot64/kickc/TODO.txt
+++ b/src/main/java/dk/camelot64/kickc/TODO.txt
@@ -23,7 +23,9 @@ Features
 + Add ++/-- incrementing/decrementing operators.
 
 Assembler Improvements
-- Make generated ASM human readable. Use hex-numbers, add labels for constants and zp-variables.
+- Make generated ASM human readable.
+  + Use hex-numbers
+  - add labels for constants and zp-variables.
 - Eliminate unnecessary labels in ASM
 - Eliminate CPX from DEX, CPX #0, BNE la1
 - Eliminate LDA from DEC $2, LDA $2, BNE la1
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java b/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java
index ecf7e4710..bdb59841f 100644
--- a/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmFragment.java
@@ -137,7 +137,7 @@ public class AsmFragment {
       ControlFlowBlock destinationBlock = graph.getBlock(destination);
       String destinationLabel;
       if (destinationBlock.hasPhiBlock()) {
-         destinationLabel = (destinationBlock.getLabel().getLocalName() + "_from_" + block.getLabel().getLocalName()).replace('@', 'B').replace(':', '_');
+         destinationLabel = (destinationBlock.getLabel().getLocalName() + "_from_" + block.getLabel().getLocalName()).replace('@', 'b').replace(':', '_');
       } else {
          destinationLabel = destination.getLocalName();
       }
@@ -332,7 +332,7 @@ public class AsmFragment {
             bound = String.format("$%x", boundInt.getNumber());
          }
       } else if (boundValue instanceof Label) {
-         bound = ((Label) boundValue).getFullName().replace('@', 'B').replace(':', '_');
+         bound = ((Label) boundValue).getLocalName().replace('@', 'b').replace(':', '_');
       } else {
          throw new RuntimeException("Bound Value Type not implemented " + boundValue);
       }
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmProcBegin.java b/src/main/java/dk/camelot64/kickc/asm/AsmProcBegin.java
new file mode 100644
index 000000000..6d41bc4c5
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmProcBegin.java
@@ -0,0 +1,48 @@
+package dk.camelot64.kickc.asm;
+
+/** A procedure - representing a label and a scope beginning*/
+public class AsmProcBegin implements AsmLine {
+
+   private String label;
+
+   private int index;
+
+   public AsmProcBegin(String label) {
+      this.label = label;
+   }
+
+   public String getLabel() {
+      return label;
+   }
+
+   @Override
+   public int getLineBytes() {
+      return 0;
+   }
+
+   @Override
+   public double getLineCycles() {
+      return 0;
+   }
+
+   @Override
+   public String getAsm() {
+      return label+":"+" {";
+   }
+
+   @Override
+   public int getIndex() {
+      return index;
+   }
+
+   @Override
+   public void setIndex(int index) {
+      this.index = index;
+   }
+
+   @Override
+   public String toString() {
+      return getAsm();
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmProcEnd.java b/src/main/java/dk/camelot64/kickc/asm/AsmProcEnd.java
new file mode 100644
index 000000000..396ef98eb
--- /dev/null
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmProcEnd.java
@@ -0,0 +1,41 @@
+package dk.camelot64.kickc.asm;
+
+/** The end of a procedure (scope)  */
+public class AsmProcEnd implements AsmLine {
+
+   private int index;
+
+   public AsmProcEnd() {
+   }
+
+   @Override
+   public int getLineBytes() {
+      return 0;
+   }
+
+   @Override
+   public double getLineCycles() {
+      return 0;
+   }
+
+   @Override
+   public String getAsm() {
+      return "}";
+   }
+
+   @Override
+   public int getIndex() {
+      return index;
+   }
+
+   @Override
+   public void setIndex(int index) {
+      this.index = index;
+   }
+
+   @Override
+   public String toString() {
+      return getAsm();
+   }
+
+}
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmProgram.java b/src/main/java/dk/camelot64/kickc/asm/AsmProgram.java
index b8b1866c9..1224cb248 100644
--- a/src/main/java/dk/camelot64/kickc/asm/AsmProgram.java
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmProgram.java
@@ -59,6 +59,14 @@ public class AsmProgram {
       addLine(new AsmLabel(label));
    }
 
+   public void addProcBegin(String label) {
+      addLine(new AsmProcBegin(label));
+   }
+
+   public void addProcEnd() {
+      addLine(new AsmProcEnd());
+   }
+
    public void addInstruction(String mnemonic, AsmAddressingMode addressingMode, String parameter) {
       AsmInstructionType instructionType = AsmInstructionSet.getInstructionType(mnemonic, addressingMode, parameter);
       addLine(new AsmInstruction(instructionType, parameter));
@@ -108,13 +116,45 @@ public class AsmProgram {
    }
 
    public String toString(boolean comments) {
+      return toString(new AsmPrintState(comments));
+   }
+
+   public String toString(AsmPrintState printState) {
       StringBuilder out = new StringBuilder();
       for (AsmSegment segment : segments) {
-         out.append(segment.toString(comments));
+         out.append(segment.toString(printState));
       }
       return out.toString();
    }
 
+   static class AsmPrintState {
+      boolean comments;
+      String indent;
+
+      public AsmPrintState(boolean comments) {
+         this.comments = comments;
+         this.indent = "";
+      }
+
+      public boolean isComments() {
+         return comments;
+      }
+
+      public void incIndent() {
+         this.indent = this.indent + "  ";
+      }
+
+      public void decIndent() {
+         this.indent = this.indent.substring(0, this.indent.length()-2);
+      }
+
+      public String getIndent() {
+         return indent;
+      }
+
+   }
+
+
    @Override
    public String toString() {
       return toString(true);
@@ -135,4 +175,5 @@ public class AsmProgram {
       }
       return statementSegments;
    }
+
 }
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmProgramStaticRegisterValues.java b/src/main/java/dk/camelot64/kickc/asm/AsmProgramStaticRegisterValues.java
index a530886b6..ac9ce1027 100644
--- a/src/main/java/dk/camelot64/kickc/asm/AsmProgramStaticRegisterValues.java
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmProgramStaticRegisterValues.java
@@ -38,6 +38,10 @@ public class AsmProgramStaticRegisterValues {
    private AsmRegisterValues updateStaticRegisterValues(AsmRegisterValues current, AsmLine line) {
       if (line instanceof AsmLabel) {
          current = new AsmRegisterValues();
+      } else if (line instanceof AsmProcBegin) {
+         current = new AsmRegisterValues();
+      } else if (line instanceof AsmProcEnd) {
+         current = new AsmRegisterValues();
       } else if (line instanceof AsmInstruction) {
          AsmInstruction instruction = (AsmInstruction) line;
          values.put(instruction, current);
diff --git a/src/main/java/dk/camelot64/kickc/asm/AsmSegment.java b/src/main/java/dk/camelot64/kickc/asm/AsmSegment.java
index 64d139995..d7de8e98b 100644
--- a/src/main/java/dk/camelot64/kickc/asm/AsmSegment.java
+++ b/src/main/java/dk/camelot64/kickc/asm/AsmSegment.java
@@ -115,10 +115,10 @@ public class AsmSegment {
       return clobber;
    }
 
-   public String toString(boolean comments) {
+   public String toString(AsmProgram.AsmPrintState printState) {
       StringBuffer out = new StringBuffer();
-      if (comments) {
-         out.append("//SEG").append(getIndex());
+      if (printState.isComments()) {
+         out.append(printState.getIndent()).append("//SEG").append(getIndex());
          if (source != null) {
             out.append(" ").append(source);
          }
@@ -129,22 +129,30 @@ public class AsmSegment {
          out.append("\n");
       }
       for (AsmLine line : lines) {
-         if (line instanceof AsmComment && !comments) {
+         if (line instanceof AsmComment && !printState.isComments()) {
             if (!((AsmComment) line).getComment().contains("Fragment")) {
                continue;
             }
          }
-         if (line instanceof AsmComment || line instanceof AsmInstruction) {
+         if(line instanceof AsmProcEnd) {
+            printState.decIndent();
+         }
+         out.append(printState.getIndent());
+         if (line instanceof AsmComment || line instanceof AsmInstruction ) {
             out.append("  ");
          }
          out.append(line.getAsm() + "\n");
+         if(line instanceof AsmProcBegin) {
+            printState.incIndent();
+         }
+
       }
       return out.toString();
    }
 
    @Override
    public String toString() {
-      return toString(true);
+      return toString(new AsmProgram.AsmPrintState(true));
    }
 
 }
diff --git a/src/main/java/dk/camelot64/kickc/icl/ControlFlowBlock.java b/src/main/java/dk/camelot64/kickc/icl/ControlFlowBlock.java
index 5b7683bd7..2cffdc2c5 100644
--- a/src/main/java/dk/camelot64/kickc/icl/ControlFlowBlock.java
+++ b/src/main/java/dk/camelot64/kickc/icl/ControlFlowBlock.java
@@ -53,7 +53,7 @@ public class ControlFlowBlock {
    }
 
    public void addStatementBeforeLast(Statement statement) {
-      this.statements.add(statements.size()-1, statement);
+      this.statements.add(statements.size() - 1, statement);
    }
 
    public void setDefaultSuccessor(LabelRef defaultSuccessor) {
@@ -84,14 +84,34 @@ public class ControlFlowBlock {
       return statements;
    }
 
+
+   /**
+    * Is the block the entry of a procedure, ie. the first block of the code of the procedure.
+    * @return true if this is the entry of a procedure
+    */
+   public boolean isProcedureEntry(Program program) {
+      Symbol symbol = program.getScope().getSymbol(getLabel());
+      return (symbol instanceof Procedure);
+   }
+
+   /**
+    *  Is the block the exit of a procedure, ie. the last block of code of the the procedure
+    * @param program
+    * @return true if this is the exit of a procedure
+    */
+   public boolean isProcedureExit(Program program) {
+      return getLabel().isProcExit();
+   }
+
+
    public String toString(Program program) {
       ControlFlowGraph graph = program.getGraph();
       StringBuffer out = new StringBuffer();
-      out.append(label.getFullName() + ":" );
+      out.append(label.getFullName() + ":");
       out.append(" from");
-      if(graph!=null) {
+      if (graph != null) {
          List<ControlFlowBlock> predecessors = graph.getPredecessors(this);
-         if(predecessors.size()>0) {
+         if (predecessors.size() > 0) {
             for (ControlFlowBlock predecessor : predecessors) {
                out.append(" " + predecessor.getLabel().getFullName());
             }
@@ -101,9 +121,9 @@ public class ControlFlowBlock {
       }
       out.append("\n");
       for (Statement statement : statements) {
-         out.append("  "+statement.toString(program)+"\n");
+         out.append("  " + statement.toString(program) + "\n");
       }
-      if(defaultSuccessor!=null) {
+      if (defaultSuccessor != null) {
          out.append("  to:");
          out.append(defaultSuccessor.getFullName());
          out.append("\n");
@@ -144,10 +164,10 @@ public class ControlFlowBlock {
    @JsonIgnore
    public StatementPhiBlock getPhiBlock() {
       StatementPhiBlock phiBlock = null;
-      if(statements.size()>0 && statements.get(0) instanceof StatementPhiBlock) {
+      if (statements.size() > 0 && statements.get(0) instanceof StatementPhiBlock) {
          phiBlock = (StatementPhiBlock) statements.get(0);
       }
-      if(phiBlock==null) {
+      if (phiBlock == null) {
          phiBlock = new StatementPhiBlock();
          statements.add(0, phiBlock);
       }
@@ -155,8 +175,8 @@ public class ControlFlowBlock {
    }
 
    public boolean hasPhiBlock() {
-      if(statements.size()>0) {
-         if(statements.get(0) instanceof StatementPhiBlock) {
+      if (statements.size() > 0) {
+         if (statements.get(0) instanceof StatementPhiBlock) {
             return true;
          }
       }
@@ -171,13 +191,13 @@ public class ControlFlowBlock {
    @JsonIgnore
    public Collection<LabelRef> getSuccessors() {
       List<LabelRef> successors = new ArrayList<>();
-      if(defaultSuccessor!=null) {
+      if (defaultSuccessor != null) {
          successors.add(defaultSuccessor);
       }
-      if(conditionalSuccessor!=null) {
+      if (conditionalSuccessor != null) {
          successors.add(conditionalSuccessor);
       }
-      if(callSuccessor!=null) {
+      if (callSuccessor != null) {
          successors.add(callSuccessor);
       }
       return successors;
diff --git a/src/main/java/dk/camelot64/kickc/icl/SymbolRef.java b/src/main/java/dk/camelot64/kickc/icl/SymbolRef.java
index ecbda7d99..4c782a05c 100644
--- a/src/main/java/dk/camelot64/kickc/icl/SymbolRef.java
+++ b/src/main/java/dk/camelot64/kickc/icl/SymbolRef.java
@@ -1,6 +1,7 @@
 package dk.camelot64.kickc.icl;
 
 import com.fasterxml.jackson.annotation.JsonIgnore;
+import dk.camelot64.kickc.passes.Pass1GenerateControlFlowGraph;
 
 /** A reference to a symbol (variable, procedure or label) */
 public class SymbolRef implements Value {
@@ -65,10 +66,17 @@ public class SymbolRef implements Value {
 
    @JsonIgnore
    public boolean isIntermediate() {
-      if(fullName.contains("@BEGIN") || fullName.contains("@END") ) return false;
+      if(
+            fullName.contains(Pass1GenerateControlFlowGraph.BEGIN_BLOCK_NAME) ||
+                  fullName.contains(Pass1GenerateControlFlowGraph.END_BLOCK_NAME) ) return false;
       return fullName.contains("$") || fullName.contains("@");
    }
 
+   @JsonIgnore
+   public boolean isProcExit() {
+      return fullName.endsWith("@return");
+   }
+
    @JsonIgnore
    public String getLocalName() {
       int lastScopeIdx = fullName.lastIndexOf("::");
@@ -102,4 +110,5 @@ public class SymbolRef implements Value {
       }
 
    }
+
 }
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1EliminateEmptyBlocks.java b/src/main/java/dk/camelot64/kickc/passes/Pass1EliminateEmptyBlocks.java
index e4642372c..2fd7bd311 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1EliminateEmptyBlocks.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1EliminateEmptyBlocks.java
@@ -24,7 +24,7 @@ public class Pass1EliminateEmptyBlocks {
       Collection<ControlFlowBlock> blocks = graph.getAllBlocks();
       List<LabelRef> removeList = new ArrayList<>();
       for (ControlFlowBlock block : blocks) {
-         if(block.getLabel().getFullName().equals("@END")) {
+         if(block.getLabel().getFullName().equals(Pass1GenerateControlFlowGraph.END_BLOCK_NAME)) {
             continue;
          }
          if (block.getStatements().isEmpty()) {
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateControlFlowGraph.java b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateControlFlowGraph.java
index 57042ee76..515b17e70 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateControlFlowGraph.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass1GenerateControlFlowGraph.java
@@ -9,8 +9,8 @@ import java.util.Stack;
 /** Pass that generates a control flow graph for the program */
 public class Pass1GenerateControlFlowGraph {
 
-   public static final String BEGIN_BLOCK_NAME = "@BEGIN";
-   public static final String END_BLOCK_NAME = "@END";
+   public static final String BEGIN_BLOCK_NAME = "@begin";
+   public static final String END_BLOCK_NAME = "@end";
    private Scope scope;
    private Map<LabelRef, ControlFlowBlock> blocks;
    private ControlFlowBlock firstBlock;
@@ -66,7 +66,7 @@ public class Pass1GenerateControlFlowGraph {
             blockStack.push(procBlock);
          }  else if(statement instanceof StatementProcedureEnd) {
             // Procedure strategy implemented is currently variable-based transfer of parameters/return values
-            currentBlock.setDefaultSuccessor(new Label("@RETURN", scope, false).getRef());
+            currentBlock.setDefaultSuccessor(new Label("@return", scope, false).getRef());
             ControlFlowBlock nextBlock = getOrCreateBlock(scope.addLabelIntermediate().getRef());
             blockStack.pop();
             ControlFlowBlock prevBlock = blockStack.pop();
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertBlocks.java b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertBlocks.java
index 3fe22a329..a2700fab7 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertBlocks.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertBlocks.java
@@ -45,7 +45,7 @@ public class Pass2AssertBlocks extends Pass2SsaAssertion {
          if (blockLabel == null) {
             return;
          }
-         if (blockLabel.getFullName().equals("@RETURN")) {
+         if (blockLabel.getFullName().equals("@return")) {
             return;
          }
          seenBlocks.add(blockLabel);
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertSymbols.java b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertSymbols.java
index fcbb9c964..26adecd6b 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass2AssertSymbols.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass2AssertSymbols.java
@@ -18,7 +18,7 @@ public class Pass2AssertSymbols extends Pass2SsaAssertion {
       HashSet<Symbol> codeSymbols = symbolFinder.getSymbols();
       // Check that all symbols found in the code is also oin the symbol tabel
       for (Symbol codeSymbol : codeSymbols) {
-         if(codeSymbol.getFullName().equals("@RETURN")) continue;
+         if(codeSymbol.getFullName().equals("@return")) continue;
          Symbol tableSymbol = getSymbols().getSymbol(codeSymbol.getFullName());
          if(tableSymbol==null) {
             throw new AssertionFailed("Compile process error. Symbol found in code, but not in symbol table. "+codeSymbol.getFullName());
diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass3CodeGeneration.java b/src/main/java/dk/camelot64/kickc/passes/Pass3CodeGeneration.java
index 0fe6c9fd3..87316b15f 100644
--- a/src/main/java/dk/camelot64/kickc/passes/Pass3CodeGeneration.java
+++ b/src/main/java/dk/camelot64/kickc/passes/Pass3CodeGeneration.java
@@ -32,7 +32,11 @@ public class Pass3CodeGeneration {
          genBlockEntryPoints(asm, block);
          // Generate label
          asm.startSegment(null, block.getLabel().getFullName());
-         asm.addLabel(block.getLabel().getFullName().replace('@', 'B').replace(':', '_'));
+         if(block.isProcedureEntry(program)) {
+            asm.addProcBegin(block.getLabel().getFullName().replace('@', 'b').replace(':', '_'));
+         }else {
+            asm.addLabel(block.getLabel().getLocalName().replace('@', 'b').replace(':', '_'));
+         }
          // Generate statements
          genStatements(asm, block);
          // Generate exit
@@ -41,7 +45,10 @@ public class Pass3CodeGeneration {
             if (defaultSuccessor.hasPhiBlock()) {
                genBlockPhiTransition(asm, block, defaultSuccessor);
             }
-            asm.addInstruction("JMP", AsmAddressingMode.ABS, defaultSuccessor.getLabel().getFullName().replace('@', 'B').replace(':', '_'));
+            asm.addInstruction("JMP", AsmAddressingMode.ABS, defaultSuccessor.getLabel().getLocalName().replace('@', 'b').replace(':', '_'));
+         }
+         if(block.isProcedureExit(program)) {
+            asm.addProcEnd();
          }
       }
       program.setAsm(asm);
@@ -168,7 +175,7 @@ public class Pass3CodeGeneration {
          for (ControlFlowBlock predecessor : predecessors) {
             if (block.getLabel().equals(predecessor.getConditionalSuccessor())) {
                genBlockPhiTransition(asm, predecessor, block);
-               asm.addInstruction("JMP", AsmAddressingMode.ABS, block.getLabel().getFullName().replace('@', 'B').replace(':', '_'));
+               asm.addInstruction("JMP", AsmAddressingMode.ABS, block.getLabel().getLocalName().replace('@', 'b').replace(':', '_'));
             }
          }
       }
@@ -177,7 +184,7 @@ public class Pass3CodeGeneration {
    private void genBlockPhiTransition(AsmProgram asm, ControlFlowBlock fromBlock, ControlFlowBlock toBlock) {
       Statement toFirstStatement = toBlock.getStatements().get(0);
       asm.startSegment(toFirstStatement.getIndex(), "["+toFirstStatement.getIndex()+"]"+" phi from " + fromBlock.getLabel().getFullName()+" to "+toBlock.getLabel().getFullName());
-      asm.addLabel((toBlock.getLabel().getFullName() + "_from_" + fromBlock.getLabel().getLocalName()).replace('@', 'B').replace(':', '_'));
+      asm.addLabel((toBlock.getLabel().getLocalName() + "_from_" + fromBlock.getLabel().getLocalName()).replace('@', 'b').replace(':', '_'));
       if (toBlock.hasPhiBlock()) {
          StatementPhiBlock phiBlock = toBlock.getPhiBlock();
          List<StatementPhiBlock.PhiVariable> phiVariables = new ArrayList<>(phiBlock.getPhiVariables());
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.asm b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.asm
index 4a6596701..cab6ec4ab 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.asm
@@ -1,5 +1,5 @@
-BBEGIN:
-B1_from_BBEGIN:
+bbegin:
+b1_from_bbegin:
   lda #$0
   sta $5
   ldx #$c
@@ -9,8 +9,8 @@ B1_from_BBEGIN:
   sta $2
   lda #>$400
   sta $2+$1
-B1_from_B3:
-B1:
+b1_from_b3:
+b1:
   ldy #$0
   lda #$51
   sta ($2),y
@@ -24,14 +24,14 @@ B1:
   adc #$18
   tax
   cpx #$27
-  bcs B2
-B3_from_B1:
-B3:
+  bcs b2
+b3_from_b1:
+b3:
   lda $4
   cmp #$28
-  bcc B1_from_B3
-BEND:
-B2:
+  bcc b1_from_b3
+bend:
+b2:
   inc $5
   lda $2
   clc
@@ -44,5 +44,5 @@ B2:
   sec
   sbc #$27
   tax
-B3_from_B2:
-  jmp B3
+b3_from_b2:
+  jmp b3
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.cfg b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.cfg
index 248f2b457..361b6bda4 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.cfg
@@ -1,10 +1,10 @@
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  [0] (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
+@1: from @3 @begin
+  [0] (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
   [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ]
   [2] (byte) x#1 ← (byte) x#2 + (byte) 1 [ x#1 cursor#3 e#3 y#2 ]
   [3] (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1 [ x#1 e#3 cursor#1 y#2 ]
@@ -16,8 +16,8 @@
   [6] (byte) e#5 ← phi( @1/(byte) e#1 @2/(byte) e#2 ) [ cursor#5 x#1 e#5 y#4 ]
   [6] (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 ) [ cursor#5 x#1 e#5 y#4 ]
   [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @2: from @1
   [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ]
   [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ]
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log
index 97db86192..08f20a858 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.log
@@ -97,7 +97,7 @@ SYMBOLS
 (byte) yd
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) STAR ← (byte) 81
   (byte[1000]) SCREEN ← (word) 1024
   (byte) x0 ← (byte) 0
@@ -117,7 +117,7 @@ INITIAL CONTROL FLOW GRAPH
   (byte*~) $5 ← (byte*~) $4 + (byte) x
   (byte*) cursor ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   *((byte*) cursor) ← (byte) STAR
   (byte~) $6 ← (byte) x + (byte) 1
   (byte) x ← (byte~) $6
@@ -146,14 +146,14 @@ INITIAL CONTROL FLOW GRAPH
 @5: from
   to:@2
 @6: from @3
-  to:@END
-@END: from @6
+  to:@end
+@end: from @6
 
 Removing empty block @4
 Removing empty block @5
 Removing empty block @6
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) STAR ← (byte) 81
   (byte[1000]) SCREEN ← (word) 1024
   (byte) x0 ← (byte) 0
@@ -173,7 +173,7 @@ CONTROL FLOW GRAPH
   (byte*~) $5 ← (byte*~) $4 + (byte) x
   (byte*) cursor ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   *((byte*) cursor) ← (byte) STAR
   (byte~) $6 ← (byte) x + (byte) 1
   (byte) x ← (byte~) $6
@@ -196,13 +196,13 @@ CONTROL FLOW GRAPH
   (byte~) $13 ← (byte) x1 + (byte) 1
   (boolean~) $14 ← (byte) x < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte) STAR ← (byte) 81
   (byte[1000]) SCREEN ← (word) 1024
   (byte) x0 ← (byte) 0
@@ -222,7 +222,7 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte*~) $5 ← (byte*~) $4 + (byte) x
   (byte*) cursor ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   *((byte*) cursor) ← (byte) STAR
   (byte~) $6 ← (byte) x + (byte) 1
   (byte) x ← (byte~) $6
@@ -245,14 +245,14 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte~) $13 ← (byte) x1 + (byte) 1
   (boolean~) $14 ← (byte) x < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte) STAR#0 ← (byte) 81
   (byte[1000]) SCREEN#0 ← (word) 1024
   (byte) x0#0 ← (byte) 0
@@ -272,15 +272,15 @@ CONTROL FLOW GRAPH SSA
   (byte*~) $5 ← (byte*~) $4 + (byte) x#0
   (byte*) cursor#0 ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @3/(byte) x1#1 @BEGIN/(byte) x1#0 )
-  (byte) y#3 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @3/(byte) xd#3 @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @3/(byte) yd#2 @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#3 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @BEGIN/(byte) STAR#0 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @3/(byte) x1#1 @begin/(byte) x1#0 )
+  (byte) y#3 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @3/(byte) xd#3 @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @3/(byte) yd#2 @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#3 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @begin/(byte) STAR#0 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte~) $6 ← (byte) x#2 + (byte) 1
   (byte) x#1 ← (byte~) $6
@@ -319,11 +319,11 @@ CONTROL FLOW GRAPH SSA
   (byte~) $13 ← (byte) x1#1 + (byte) 1
   (boolean~) $14 ← (byte) x#3 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte) STAR#0 ← (byte) 81
   (byte[1000]) SCREEN#0 ← (word) 1024
   (byte) x0#0 ← (byte) 0
@@ -343,15 +343,15 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte*~) $5 ← (byte*~) $4 + (byte) x#0
   (byte*) cursor#0 ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @3/(byte) x1#1 @BEGIN/(byte) x1#0 )
-  (byte) y#3 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @3/(byte) xd#3 @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @3/(byte) yd#2 @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#3 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @BEGIN/(byte) STAR#0 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @3/(byte) x1#1 @begin/(byte) x1#0 )
+  (byte) y#3 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @3/(byte) xd#3 @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @3/(byte) yd#2 @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#3 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @begin/(byte) STAR#0 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte~) $6 ← (byte) x#2 + (byte) 1
   (byte) x#1 ← (byte~) $6
@@ -390,8 +390,8 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte~) $13 ← (byte) x1#1 + (byte) 1
   (boolean~) $14 ← (byte) x#3 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Constant (byte) STAR#0 (byte) 81
 Constant (byte[1000]) SCREEN#0 (word) 1024
@@ -401,7 +401,7 @@ Constant (byte) x1#0 (byte) 39
 Constant (byte) y1#0 (byte) 24
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte~) $0 ← (byte) 39 - (byte) 0
   (byte) xd#0 ← (byte~) $0
   (byte~) $1 ← (byte) 24 - (byte) 0
@@ -415,15 +415,15 @@ CONTROL FLOW GRAPH
   (byte*~) $5 ← (byte*~) $4 + (byte) x#0
   (byte*) cursor#0 ← (byte*~) $5
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @3/(byte) x1#1 @BEGIN/(byte) 39 )
-  (byte) y#3 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @3/(byte) xd#3 @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @3/(byte) yd#2 @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#3 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @BEGIN/(byte) 81 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @3/(byte) x1#1 @begin/(byte) 39 )
+  (byte) y#3 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @3/(byte) xd#3 @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @3/(byte) yd#2 @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#3 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @begin/(byte) 81 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte~) $6 ← (byte) x#2 + (byte) 1
   (byte) x#1 ← (byte~) $6
@@ -462,8 +462,8 @@ CONTROL FLOW GRAPH
   (byte~) $13 ← (byte) x1#1 + (byte) 1
   (boolean~) $14 ← (byte) x#3 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Multiple usages for variable. Not optimizing sub-constant (byte) x1#1
 Alias (byte) xd#0 = (byte~) $0 
@@ -483,7 +483,7 @@ Alias (byte*) cursor#2 = (byte*~) $11
 Alias (byte) e#2 = (byte~) $12 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) xd#0 ← (byte) 39 - (byte) 0
   (byte) yd#0 ← (byte) 24 - (byte) 0
   (byte) x#0 ← (byte) 0
@@ -493,15 +493,15 @@ CONTROL FLOW GRAPH
   (byte*~) $4 ← (word) 1024 + (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (byte) x#0
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @3/(byte) x1#1 @BEGIN/(byte) 39 )
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @3/(byte) xd#3 @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @3/(byte) yd#2 @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#3 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @BEGIN/(byte) 81 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @3/(byte) x1#1 @begin/(byte) 39 )
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @3/(byte) xd#3 @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @3/(byte) yd#2 @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#3 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @3/(byte) STAR#2 @begin/(byte) 81 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -526,8 +526,8 @@ CONTROL FLOW GRAPH
   (byte~) $13 ← (byte) x1#1 + (byte) 1
   (boolean~) $14 ← (byte) x#3 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Redundant Phi (byte) x1#1 (byte) x1#2
 Redundant Phi (byte) x#3 (byte) x#1
@@ -536,7 +536,7 @@ Redundant Phi (byte) yd#2 (byte) yd#1
 Redundant Phi (byte) xd#3 (byte) xd#1
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) xd#0 ← (byte) 39 - (byte) 0
   (byte) yd#0 ← (byte) 24 - (byte) 0
   (byte) x#0 ← (byte) 0
@@ -546,15 +546,15 @@ CONTROL FLOW GRAPH
   (byte*~) $4 ← (word) 1024 + (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (byte) x#0
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @3/(byte) x1#2 @BEGIN/(byte) 39 )
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @3/(byte) xd#1 @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @3/(byte) yd#1 @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @3/(byte) STAR#1 @BEGIN/(byte) 81 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @3/(byte) x1#2 @begin/(byte) 39 )
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @3/(byte) xd#1 @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @3/(byte) yd#1 @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @3/(byte) STAR#1 @begin/(byte) 81 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -574,8 +574,8 @@ CONTROL FLOW GRAPH
   (byte~) $13 ← (byte) x1#2 + (byte) 1
   (boolean~) $14 ← (byte) x#1 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Self Phi Eliminated (byte) STAR#1
 Self Phi Eliminated (byte) yd#1
@@ -583,7 +583,7 @@ Self Phi Eliminated (byte) xd#1
 Self Phi Eliminated (byte) x1#2
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) xd#0 ← (byte) 39 - (byte) 0
   (byte) yd#0 ← (byte) 24 - (byte) 0
   (byte) x#0 ← (byte) 0
@@ -593,15 +593,15 @@ CONTROL FLOW GRAPH
   (byte*~) $4 ← (word) 1024 + (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (byte) x#0
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @BEGIN/(byte) 39 )
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @BEGIN/(byte) 81 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @begin/(byte) 39 )
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @begin/(byte) 81 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -621,14 +621,14 @@ CONTROL FLOW GRAPH
   (byte~) $13 ← (byte) x1#2 + (byte) 1
   (boolean~) $14 ← (byte) x#1 < (byte~) $13
   if((boolean~) $14) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Simple Condition (boolean~) $9 if((byte) xd#1<(byte) e#1) goto @2
 Simple Condition (boolean~) $14 if((byte) x#1<(byte~) $13) goto @1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) xd#0 ← (byte) 39 - (byte) 0
   (byte) yd#0 ← (byte) 24 - (byte) 0
   (byte) x#0 ← (byte) 0
@@ -638,15 +638,15 @@ CONTROL FLOW GRAPH
   (byte*~) $4 ← (word) 1024 + (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (byte) x#0
   to:@1
-@1: from @3 @BEGIN
-  (byte) x1#2 ← phi( @BEGIN/(byte) 39 )
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) y#0 )
-  (byte) xd#1 ← phi( @BEGIN/(byte) xd#0 )
-  (byte) yd#1 ← phi( @BEGIN/(byte) yd#0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) x#0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
-  (byte) STAR#1 ← phi( @BEGIN/(byte) 81 )
+@1: from @3 @begin
+  (byte) x1#2 ← phi( @begin/(byte) 39 )
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) y#0 )
+  (byte) xd#1 ← phi( @begin/(byte) xd#0 )
+  (byte) yd#1 ← phi( @begin/(byte) yd#0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) x#0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
+  (byte) STAR#1 ← phi( @begin/(byte) 81 )
   *((byte*) cursor#3) ← (byte) STAR#1
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -664,8 +664,8 @@ CONTROL FLOW GRAPH
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   (byte~) $13 ← (byte) x1#2 + (byte) 1
   if((byte) x#1<(byte~) $13) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Constant (byte) xd#0 (byte) 39
 Constant (byte) yd#0 (byte) 24
@@ -675,19 +675,19 @@ Constant (byte) STAR#1 (byte) 81
 Constant (byte) x1#2 (byte) 39
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) e#0 ← (byte) 24 / (byte) 2
   (byte~) $3 ← (byte) 0 * (byte) 40
   (byte*~) $4 ← (word) 1024 + (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (byte) 0
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) xd#1 ← phi( @BEGIN/(byte) 39 )
-  (byte) yd#1 ← phi( @BEGIN/(byte) 24 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) xd#1 ← phi( @begin/(byte) 39 )
+  (byte) yd#1 ← phi( @begin/(byte) 24 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -705,27 +705,27 @@ CONTROL FLOW GRAPH
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   (byte~) $13 ← (byte) 39 + (byte) 1
   if((byte) x#1<(byte~) $13) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Consolidated constant in assignment cursor#0
 Multiple usages for variable. Not optimizing sub-constant (byte) y#2
 Multiple usages for variable. Not optimizing sub-constant (byte*) cursor#1
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) e#0 ← (byte) 24 / (byte) 2
   (byte~) $3 ← (byte) 0 * (byte) 40
   (byte*~) $4 ← (byte~) $3
   (byte*) cursor#0 ← (byte*~) $4 + (word) 1024
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) xd#1 ← phi( @BEGIN/(byte) 39 )
-  (byte) yd#1 ← phi( @BEGIN/(byte) 24 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) xd#1 ← phi( @begin/(byte) 39 )
+  (byte) yd#1 ← phi( @begin/(byte) 24 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -743,24 +743,24 @@ CONTROL FLOW GRAPH
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   (byte~) $13 ← (byte) 39 + (byte) 1
   if((byte) x#1<(byte~) $13) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Alias (byte~) $3 = (byte*~) $4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) e#0 ← (byte) 24 / (byte) 2
   (byte~) $3 ← (byte) 0 * (byte) 40
   (byte*) cursor#0 ← (byte~) $3 + (word) 1024
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) xd#1 ← phi( @BEGIN/(byte) 39 )
-  (byte) yd#1 ← phi( @BEGIN/(byte) 24 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) xd#1 ← phi( @begin/(byte) 39 )
+  (byte) yd#1 ← phi( @begin/(byte) 24 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -778,23 +778,23 @@ CONTROL FLOW GRAPH
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   (byte~) $13 ← (byte) 39 + (byte) 1
   if((byte) x#1<(byte~) $13) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Redundant Phi (byte) yd#1 (byte) 24
 Redundant Phi (byte) xd#1 (byte) 39
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) e#0 ← (byte) 24 / (byte) 2
   (byte~) $3 ← (byte) 0 * (byte) 40
   (byte*) cursor#0 ← (byte~) $3 + (word) 1024
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) e#0 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) e#0 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -812,22 +812,22 @@ CONTROL FLOW GRAPH
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   (byte~) $13 ← (byte) 39 + (byte) 1
   if((byte) x#1<(byte~) $13) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Constant (byte) e#0 (byte) 12
 Constant (byte~) $3 (byte) 0
 Constant (byte~) $13 (byte) 40
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) cursor#0 ← (byte) 0 + (word) 1024
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) 12 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(byte*) cursor#0 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) 12 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(byte*) cursor#0 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -844,21 +844,21 @@ CONTROL FLOW GRAPH
   (byte) e#5 ← phi( @1/(byte) e#1 @2/(byte) e#2 )
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   if((byte) x#1<(byte) 40) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Multiple usages for variable. Not optimizing sub-constant (byte) y#2
 Multiple usages for variable. Not optimizing sub-constant (byte*) cursor#1
 Constant (byte*) cursor#0 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 )
-  (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) 12 )
-  (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(word) 1024 )
+@1: from @3 @begin
+  (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 )
+  (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) 12 )
+  (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(word) 1024 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -875,25 +875,25 @@ CONTROL FLOW GRAPH
   (byte) e#5 ← phi( @1/(byte) e#1 @2/(byte) e#2 )
   (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 )
   if((byte) x#1<(byte) 40) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Multiple usages for variable. Not optimizing sub-constant (byte) y#2
 Multiple usages for variable. Not optimizing sub-constant (byte*) cursor#1
 Multiple usages for variable. Not optimizing sub-constant (byte) y#2
 Multiple usages for variable. Not optimizing sub-constant (byte*) cursor#1
-Block Sequence Planned @BEGIN @1 @3 @END @2 
+Block Sequence Planned @begin @1 @3 @end @2 
 Added new block during phi lifting @7(between @3 and @1)
 Added new block during phi lifting @8(between @1 and @3)
-Block Sequence Planned @BEGIN @1 @8 @3 @END @7 @2 
+Block Sequence Planned @begin @1 @8 @3 @end @7 @2 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @7 @BEGIN
-  (byte) y#2 ← phi( @7/(byte~) y#5 @BEGIN/(byte) 0 )
-  (byte) e#3 ← phi( @7/(byte~) e#6 @BEGIN/(byte) 12 )
-  (byte) x#2 ← phi( @7/(byte~) x#5 @BEGIN/(byte) 0 )
-  (byte*) cursor#3 ← phi( @7/(byte*~) cursor#6 @BEGIN/(word) 1024 )
+@1: from @7 @begin
+  (byte) y#2 ← phi( @7/(byte~) y#5 @begin/(byte) 0 )
+  (byte) e#3 ← phi( @7/(byte~) e#6 @begin/(byte) 12 )
+  (byte) x#2 ← phi( @7/(byte~) x#5 @begin/(byte) 0 )
+  (byte*) cursor#3 ← phi( @7/(byte*~) cursor#6 @begin/(word) 1024 )
   *((byte*) cursor#3) ← (byte) 81
   (byte) x#1 ← (byte) x#2 + (byte) 1
   (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1
@@ -910,8 +910,8 @@ CONTROL FLOW GRAPH - PHI LIFTED
   (byte) e#5 ← phi( @8/(byte~) e#7 @2/(byte~) e#8 )
   (byte*) cursor#5 ← phi( @8/(byte*~) cursor#7 @2/(byte*~) cursor#8 )
   if((byte) x#1<(byte) 40) goto @7
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @7: from @3
   (byte*~) cursor#6 ← (byte*) cursor#5
   (byte~) x#5 ← (byte) x#1
@@ -936,13 +936,13 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @7 @BEGIN
-  [0] (byte) y#2 ← phi( @7/(byte~) y#5 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) e#3 ← phi( @7/(byte~) e#6 @BEGIN/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) x#2 ← phi( @7/(byte~) x#5 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte*) cursor#3 ← phi( @7/(byte*~) cursor#6 @BEGIN/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
+@1: from @7 @begin
+  [0] (byte) y#2 ← phi( @7/(byte~) y#5 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) e#3 ← phi( @7/(byte~) e#6 @begin/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) x#2 ← phi( @7/(byte~) x#5 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte*) cursor#3 ← phi( @7/(byte*~) cursor#6 @begin/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
   [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ]
   [2] (byte) x#1 ← (byte) x#2 + (byte) 1 [ cursor#3 e#3 y#2 x#1 ]
   [3] (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1 [ e#3 cursor#1 y#2 x#1 ]
@@ -959,8 +959,8 @@ CONTROL FLOW GRAPH - LIVE RANGES
   [9] (byte) e#5 ← phi( @8/(byte~) e#7 @2/(byte~) e#8 ) [ x#1 cursor#5 e#5 y#4 ]
   [9] (byte*) cursor#5 ← phi( @8/(byte*~) cursor#7 @2/(byte*~) cursor#8 ) [ x#1 cursor#5 e#5 y#4 ]
   [10] if((byte) x#1<(byte) 40) goto @7 [ x#1 cursor#5 e#5 y#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @7: from @3
   [11] (byte*~) cursor#6 ← (byte*) cursor#5 [ cursor#6 x#1 e#5 y#4 ]
   [12] (byte~) x#5 ← (byte) x#1 [ cursor#6 x#5 e#5 y#4 ]
@@ -990,7 +990,7 @@ Coalesced [20] y#7 ← y#1
 Coalesced down to 4 phi equivalence classes
 Culled Empty Block (label) @8
 Culled Empty Block (label) @7
-Block Sequence Planned @BEGIN @1 @3 @END @2 
+Block Sequence Planned @begin @1 @3 @end @2 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -998,13 +998,13 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  [0] (byte) y#2 ← phi( @3/(byte) y#4 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) e#3 ← phi( @3/(byte) e#5 @BEGIN/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte) x#2 ← phi( @3/(byte) x#1 @BEGIN/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
-  [0] (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @BEGIN/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
+@1: from @3 @begin
+  [0] (byte) y#2 ← phi( @3/(byte) y#4 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) e#3 ← phi( @3/(byte) e#5 @begin/(byte) 12 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte) x#2 ← phi( @3/(byte) x#1 @begin/(byte) 0 ) [ cursor#3 x#2 e#3 y#2 ]
+  [0] (byte*) cursor#3 ← phi( @3/(byte*) cursor#5 @begin/(word) 1024 ) [ cursor#3 x#2 e#3 y#2 ]
   [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ]
   [2] (byte) x#1 ← (byte) x#2 + (byte) 1 [ x#1 cursor#3 e#3 y#2 ]
   [3] (byte*) cursor#1 ← (byte*) cursor#3 + (byte) 1 [ x#1 e#3 cursor#1 y#2 ]
@@ -1016,8 +1016,8 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
   [6] (byte) e#5 ← phi( @1/(byte) e#1 @2/(byte) e#2 ) [ cursor#5 x#1 e#5 y#4 ]
   [6] (byte*) cursor#5 ← phi( @1/(byte*) cursor#1 @2/(byte*) cursor#2 ) [ cursor#5 x#1 e#5 y#4 ]
   [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @2: from @1
   [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ]
   [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ]
@@ -1027,11 +1027,11 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
 CALL GRAPH
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@1 dominated by  @1 @BEGIN 
-@3 dominated by  @1 @BEGIN @3 
-@END dominated by  @1 @BEGIN @3 @END 
-@2 dominated by  @1 @BEGIN @2 
+@begin dominated by  @begin 
+@1 dominated by  @1 @begin 
+@3 dominated by  @1 @3 @begin 
+@end dominated by  @1 @3 @end @begin 
+@2 dominated by  @1 @2 @begin 
 
 Found back edge: Loop head: @1 tails: @3 blocks: null
 Populated: Loop head: @1 tails: @3 blocks: @3 @1 @2 
@@ -1086,10 +1086,10 @@ Allocated zp byte:4 to zp byte:4 [ x#2 x#1 ]
 Allocated zp byte:5 to zp byte:5 [ e#3 e#5 e#1 e#2 ]
 Allocated zp byte:6 to zp byte:6 [ y#2 y#4 y#1 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) y#2 = (byte) 0 -- zpby1=coby1 
   lda #$0
   sta $6
@@ -1104,16 +1104,16 @@ B1_from_BBEGIN:
   sta $2
   lda #>$400
   sta $2+$1
-  jmp B1
+  jmp b1
 //SEG6 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG7 [0] phi (byte) y#2 = (byte) y#4 -- register_copy 
 //SEG8 [0] phi (byte) e#3 = (byte) e#5 -- register_copy 
 //SEG9 [0] phi (byte) x#2 = (byte) x#1 -- register_copy 
 //SEG10 [0] phi (byte*) cursor#3 = (byte*) cursor#5 -- register_copy 
-  jmp B1
+  jmp b1
 //SEG11 @1
-B1:
+b1:
 //SEG12 [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$51
@@ -1133,24 +1133,24 @@ B1:
 //SEG16 [5] if((byte) 39<(byte) e#1) goto @2 [ x#1 e#1 cursor#1 y#2 ] -- coby1_lt_zpby1_then_la1 
   lda #$27
   cmp $5
-  bcc B2
+  bcc b2
 //SEG17 [6] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG18 [6] phi (byte) y#4 = (byte) y#2 -- register_copy 
 //SEG19 [6] phi (byte) e#5 = (byte) e#1 -- register_copy 
 //SEG20 [6] phi (byte*) cursor#5 = (byte*) cursor#1 -- register_copy 
-  jmp B3
+  jmp b3
 //SEG21 @3
-B3:
+b3:
 //SEG22 [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ] -- zpby1_lt_coby1_then_la1 
   lda $4
   cmp #$28
-  bcc B1_from_B3
-  jmp BEND
-//SEG23 @END
-BEND:
+  bcc b1_from_b3
+  jmp bend
+//SEG23 @end
+bend:
 //SEG24 @2
-B2:
+b2:
 //SEG25 [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ] -- zpby1=zpby1_plus_1 
   inc $6
 //SEG26 [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ] -- zpptrby1=zpptrby1_plus_coby1 
@@ -1167,11 +1167,11 @@ B2:
   sbc #$27
   sta $5
 //SEG28 [6] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG29 [6] phi (byte) y#4 = (byte) y#1 -- register_copy 
 //SEG30 [6] phi (byte) e#5 = (byte) e#2 -- register_copy 
 //SEG31 [6] phi (byte*) cursor#5 = (byte*) cursor#2 -- register_copy 
-  jmp B3
+  jmp b3
 
 Statement [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] always clobbers reg byte a reg byte y 
 Removing always clobbered register reg byte a as potential for zp byte:4 [ x#2 x#1 ]
@@ -1198,15 +1198,15 @@ Uplift Scope [] 55: zp byte:5 [ e#3 e#5 e#1 e#2 ] 46.75: zp ptr byte:2 [ cursor#
 
 Uplifting [] best 1180 combination reg byte x [ e#3 e#5 e#1 e#2 ] zp ptr byte:2 [ cursor#3 cursor#5 cursor#1 cursor#2 ] zp byte:6 [ y#2 y#4 y#1 ] zp byte:4 [ x#2 x#1 ] 
 Re-allocated ZP register from zp byte:6 to zp byte:5
-Removing instruction jmp B1
-Removing instruction jmp B3
-Removing instruction jmp BEND
+Removing instruction jmp b1
+Removing instruction jmp b3
+Removing instruction jmp bend
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) y#2 = (byte) 0 -- zpby1=coby1 
   lda #$0
   sta $5
@@ -1220,15 +1220,15 @@ B1_from_BBEGIN:
   sta $2
   lda #>$400
   sta $2+$1
-  jmp B1
+  jmp b1
 //SEG6 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG7 [0] phi (byte) y#2 = (byte) y#4 -- register_copy 
 //SEG8 [0] phi (byte) e#3 = (byte) e#5 -- register_copy 
 //SEG9 [0] phi (byte) x#2 = (byte) x#1 -- register_copy 
 //SEG10 [0] phi (byte*) cursor#3 = (byte*) cursor#5 -- register_copy 
 //SEG11 @1
-B1:
+b1:
 //SEG12 [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$51
@@ -1247,22 +1247,22 @@ B1:
   tax
 //SEG16 [5] if((byte) 39<(byte) e#1) goto @2 [ x#1 e#1 cursor#1 y#2 ] -- coby1_lt_xby_then_la1 
   cpx #$27
-  bcs B2
+  bcs b2
 //SEG17 [6] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG18 [6] phi (byte) y#4 = (byte) y#2 -- register_copy 
 //SEG19 [6] phi (byte) e#5 = (byte) e#1 -- register_copy 
 //SEG20 [6] phi (byte*) cursor#5 = (byte*) cursor#1 -- register_copy 
 //SEG21 @3
-B3:
+b3:
 //SEG22 [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ] -- zpby1_lt_coby1_then_la1 
   lda $4
   cmp #$28
-  bcc B1_from_B3
-//SEG23 @END
-BEND:
+  bcc b1_from_b3
+//SEG23 @end
+bend:
 //SEG24 @2
-B2:
+b2:
 //SEG25 [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ] -- zpby1=zpby1_plus_1 
   inc $5
 //SEG26 [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ] -- zpptrby1=zpptrby1_plus_coby1 
@@ -1279,19 +1279,19 @@ B2:
   sbc #$27
   tax
 //SEG28 [6] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG29 [6] phi (byte) y#4 = (byte) y#1 -- register_copy 
 //SEG30 [6] phi (byte) e#5 = (byte) e#2 -- register_copy 
 //SEG31 [6] phi (byte*) cursor#5 = (byte*) cursor#2 -- register_copy 
-  jmp B3
+  jmp b3
 
-Removing instruction jmp B1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) y#2 = (byte) 0 -- zpby1=coby1 
   lda #$0
   sta $5
@@ -1306,13 +1306,13 @@ B1_from_BBEGIN:
   lda #>$400
   sta $2+$1
 //SEG6 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG7 [0] phi (byte) y#2 = (byte) y#4 -- register_copy 
 //SEG8 [0] phi (byte) e#3 = (byte) e#5 -- register_copy 
 //SEG9 [0] phi (byte) x#2 = (byte) x#1 -- register_copy 
 //SEG10 [0] phi (byte*) cursor#3 = (byte*) cursor#5 -- register_copy 
 //SEG11 @1
-B1:
+b1:
 //SEG12 [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$51
@@ -1331,22 +1331,22 @@ B1:
   tax
 //SEG16 [5] if((byte) 39<(byte) e#1) goto @2 [ x#1 e#1 cursor#1 y#2 ] -- coby1_lt_xby_then_la1 
   cpx #$27
-  bcs B2
+  bcs b2
 //SEG17 [6] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG18 [6] phi (byte) y#4 = (byte) y#2 -- register_copy 
 //SEG19 [6] phi (byte) e#5 = (byte) e#1 -- register_copy 
 //SEG20 [6] phi (byte*) cursor#5 = (byte*) cursor#1 -- register_copy 
 //SEG21 @3
-B3:
+b3:
 //SEG22 [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ] -- zpby1_lt_coby1_then_la1 
   lda $4
   cmp #$28
-  bcc B1_from_B3
-//SEG23 @END
-BEND:
+  bcc b1_from_b3
+//SEG23 @end
+bend:
 //SEG24 @2
-B2:
+b2:
 //SEG25 [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ] -- zpby1=zpby1_plus_1 
   inc $5
 //SEG26 [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ] -- zpptrby1=zpptrby1_plus_coby1 
@@ -1363,18 +1363,18 @@ B2:
   sbc #$27
   tax
 //SEG28 [6] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG29 [6] phi (byte) y#4 = (byte) y#1 -- register_copy 
 //SEG30 [6] phi (byte) e#5 = (byte) e#2 -- register_copy 
 //SEG31 [6] phi (byte*) cursor#5 = (byte*) cursor#2 -- register_copy 
-  jmp B3
+  jmp b3
 
 FINAL SYMBOL TABLE
 (label) @1
 (label) @2
 (label) @3
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[1000]) SCREEN
 (byte) STAR
 (byte*) cursor
@@ -1407,10 +1407,10 @@ reg byte x [ e#3 e#5 e#1 e#2 ]
 zp byte:5 [ y#2 y#4 y#1 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) y#2 = (byte) 0 -- zpby1=coby1 
   lda #$0
   sta $5
@@ -1425,13 +1425,13 @@ B1_from_BBEGIN:
   lda #>$400
   sta $2+$1
 //SEG6 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG7 [0] phi (byte) y#2 = (byte) y#4 -- register_copy 
 //SEG8 [0] phi (byte) e#3 = (byte) e#5 -- register_copy 
 //SEG9 [0] phi (byte) x#2 = (byte) x#1 -- register_copy 
 //SEG10 [0] phi (byte*) cursor#3 = (byte*) cursor#5 -- register_copy 
 //SEG11 @1
-B1:
+b1:
 //SEG12 [1] *((byte*) cursor#3) ← (byte) 81 [ cursor#3 x#2 e#3 y#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$51
@@ -1450,22 +1450,22 @@ B1:
   tax
 //SEG16 [5] if((byte) 39<(byte) e#1) goto @2 [ x#1 e#1 cursor#1 y#2 ] -- coby1_lt_xby_then_la1 
   cpx #$27
-  bcs B2
+  bcs b2
 //SEG17 [6] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG18 [6] phi (byte) y#4 = (byte) y#2 -- register_copy 
 //SEG19 [6] phi (byte) e#5 = (byte) e#1 -- register_copy 
 //SEG20 [6] phi (byte*) cursor#5 = (byte*) cursor#1 -- register_copy 
 //SEG21 @3
-B3:
+b3:
 //SEG22 [7] if((byte) x#1<(byte) 40) goto @1 [ cursor#5 x#1 e#5 y#4 ] -- zpby1_lt_coby1_then_la1 
   lda $4
   cmp #$28
-  bcc B1_from_B3
-//SEG23 @END
-BEND:
+  bcc b1_from_b3
+//SEG23 @end
+bend:
 //SEG24 @2
-B2:
+b2:
 //SEG25 [8] (byte) y#1 ← (byte) y#2 + (byte) 1 [ x#1 e#1 cursor#1 y#1 ] -- zpby1=zpby1_plus_1 
   inc $5
 //SEG26 [9] (byte*) cursor#2 ← (byte*) cursor#1 + (byte) 40 [ x#1 e#1 cursor#2 y#1 ] -- zpptrby1=zpptrby1_plus_coby1 
@@ -1482,9 +1482,9 @@ B2:
   sbc #$27
   tax
 //SEG28 [6] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG29 [6] phi (byte) y#4 = (byte) y#1 -- register_copy 
 //SEG30 [6] phi (byte) e#5 = (byte) e#2 -- register_copy 
 //SEG31 [6] phi (byte*) cursor#5 = (byte*) cursor#2 -- register_copy 
-  jmp B3
+  jmp b3
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.sym b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.sym
index b5f5b07ad..d64ba7378 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/bresenham.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/bresenham.sym
@@ -1,8 +1,8 @@
 (label) @1
 (label) @2
 (label) @3
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[1000]) SCREEN
 (byte) STAR
 (byte*) cursor
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.asm b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.asm
index f16dc0a71..26a3bb87d 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.asm
@@ -1,21 +1,22 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-  lda #$0
-  sta $1100
-  lda #$1
-  sta $1101
-main__B1_from_main:
-  ldx #$0
-main__B1_from_B1:
-main__B1:
-  lda $1100,x
-  clc
-  adc $1101,x
-  sta $1102,x
-  inx
-  cpx #$f
-  bcc main__B1_from_B1
-main__Breturn:
-  rts
+bend:
+main: {
+    lda #$0
+    sta $1100
+    lda #$1
+    sta $1101
+  b1_from_main:
+    ldx #$0
+  b1_from_b1:
+  b1:
+    lda $1100,x
+    clc
+    adc $1101,x
+    sta $1102,x
+    inx
+    cpx #$f
+    bcc b1_from_b1
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.cfg b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.cfg
index f6dd4edec..8d6a68e2a 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 4352) ← (byte) 0 [ ]
   [2] *((word) 4353) ← (byte) 1 [ ]
   to:main::@1
@@ -17,4 +17,4 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   [10] return  [ ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log
index 9c61d9a53..7671a36af 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.log
@@ -47,7 +47,7 @@ SYMBOLS
 (byte) main::i
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[15]) fibs ← (word) 4352
   (void~) $0 ← call main 
   to:@1
@@ -71,18 +71,18 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
-@1: from @BEGIN
-  to:@END
-@END: from @1
+  to:@return
+@1: from @begin
+  to:@end
+@end: from @1
 
 Removing empty block main::@2
 Removing empty block @1
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[15]) fibs ← (word) 4352
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   *((byte[15]) fibs + (byte) 0) ← (byte) 0
   *((byte[15]) fibs + (byte) 1) ← (byte) 1
@@ -101,19 +101,19 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte[15]) fibs ← (word) 4352
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   *((byte[15]) fibs + (byte) 0) ← (byte) 0
   *((byte[15]) fibs + (byte) 1) ← (byte) 1
   (byte) main::i ← (byte) 0
@@ -131,19 +131,19 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte[15]) fibs#0 ← (word) 4352
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[15]) fibs#1 ← phi( @BEGIN/(byte[15]) fibs#0 )
+@2: from @begin
+  to:@end
+main: from @begin
+  (byte[15]) fibs#1 ← phi( @begin/(byte[15]) fibs#0 )
   *((byte[15]) fibs#1 + (byte) 0) ← (byte) 0
   *((byte[15]) fibs#1 + (byte) 1) ← (byte) 1
   (byte) main::i#0 ← (byte) 0
@@ -163,18 +163,18 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte[15]) fibs#0 ← (word) 4352
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[15]) fibs#1 ← phi( @BEGIN/(byte[15]) fibs#0 )
+@2: from @begin
+  to:@end
+main: from @begin
+  (byte[15]) fibs#1 ← phi( @begin/(byte[15]) fibs#0 )
   *((byte[15]) fibs#1 + (byte) 0) ← (byte) 0
   *((byte[15]) fibs#1 + (byte) 1) ← (byte) 1
   (byte) main::i#0 ← (byte) 0
@@ -194,18 +194,18 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Culled Empty Block (label) @2
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[15]) fibs#0 ← (word) 4352
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[15]) fibs#1 ← phi( @BEGIN/(byte[15]) fibs#0 )
+  to:@end
+main: from @begin
+  (byte[15]) fibs#1 ← phi( @begin/(byte[15]) fibs#0 )
   *((byte[15]) fibs#1 + (byte) 0) ← (byte) 0
   *((byte[15]) fibs#1 + (byte) 1) ← (byte) 1
   (byte) main::i#0 ← (byte) 0
@@ -225,18 +225,18 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[15]) fibs#0 (word) 4352
 Constant (byte) main::i#0 (byte) 0
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[15]) fibs#1 ← phi( @BEGIN/(word) 4352 )
+  to:@end
+main: from @begin
+  (byte[15]) fibs#1 ← phi( @begin/(word) 4352 )
   *((byte[15]) fibs#1 + (byte) 0) ← (byte) 0
   *((byte[15]) fibs#1 + (byte) 1) ← (byte) 1
   to:main::@1
@@ -255,18 +255,18 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
 Redundant Phi (byte[15]) fibs#1 (word) 4352
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352 + (byte) 0) ← (byte) 0
   *((word) 4352 + (byte) 1) ← (byte) 1
   to:main::@1
@@ -285,16 +285,16 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte[15]) fibs#2
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352 + (byte) 0) ← (byte) 0
   *((word) 4352 + (byte) 1) ← (byte) 1
   to:main::@1
@@ -313,16 +313,16 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$5 if((byte) main::i#1<(byte) 15) goto main::@1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352 + (byte) 0) ← (byte) 0
   *((word) 4352 + (byte) 1) ← (byte) 1
   to:main::@1
@@ -340,16 +340,16 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[15]) fibs#2 (word) 4352
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352 + (byte) 0) ← (byte) 0
   *((word) 4352 + (byte) 1) ← (byte) 1
   to:main::@1
@@ -366,8 +366,8 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Consolidated assigned array index constant in assignment *(4352)
 Consolidated assigned array index constant in assignment *(4353)
@@ -378,10 +378,10 @@ Consolidated referenced array index constant in assignment main::$3
 Consolidated assigned array index constant in assignment *(4354 + main::$0)
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352) ← (byte) 0
   *((word) 4353) ← (byte) 1
   to:main::@1
@@ -398,16 +398,16 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte) main::i#2 = (byte~) main::$0 (byte~) main::$2 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 4352) ← (byte) 0
   *((word) 4353) ← (byte) 1
   to:main::@1
@@ -422,21 +422,21 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
-Block Sequence Planned @BEGIN @END main main::@1 main::@return 
+Block Sequence Planned @begin @end main main::@1 main::@return 
 Added new block during phi lifting main::@3(between main::@1 and main::@1)
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@3 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@3 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   *((word) 4352) ← (byte) 0
   *((word) 4353) ← (byte) 1
   to:main::@1
@@ -451,7 +451,7 @@ main::@1: from main main::@3
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
+  to:@return
 main::@3: from main::@1
   (byte~) main::i#3 ← (byte) main::i#1
   to:main::@1
@@ -459,11 +459,11 @@ main::@3: from main::@1
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 4352) ← (byte) 0 [ ]
   [2] *((word) 4353) ← (byte) 1 [ ]
   to:main::@1
@@ -478,7 +478,7 @@ main::@1: from main main::@3
   to:main::@return
 main::@return: from main::@1
   [10] return  [ ]
-  to:@RETURN
+  to:@return
 main::@3: from main::@1
   [11] (byte~) main::i#3 ← (byte) main::i#1 [ main::i#3 ]
   to:main::@1
@@ -487,15 +487,15 @@ 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) main::@3
-Block Sequence Planned @BEGIN @END main main::@1 main::@return 
+Block Sequence Planned @begin @end main main::@1 main::@return 
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 4352) ← (byte) 0 [ ]
   [2] *((word) 4353) ← (byte) 1 [ ]
   to:main::@1
@@ -510,17 +510,17 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   [10] return  [ ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@return dominated by  @BEGIN main::@return main::@1 main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@return dominated by  main::@return @begin main::@1 main 
 
 Found back edge: Loop head: main::@1 tails: main::@1 blocks: null
 Populated: Loop head: main::@1 tails: main::@1 blocks: main::@1 
@@ -559,61 +559,62 @@ Allocated zp byte:3 to zp byte:3 [ main::$1 ]
 Allocated zp byte:4 to zp byte:4 [ main::$3 ]
 Allocated zp byte:5 to zp byte:5 [ main::$4 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
-  lda #$0
-  sta $1100
-//SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $1101
-//SEG6 [3] phi from main to main::@1
-main__B1_from_main:
-//SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-  jmp main__B1
-//SEG8 [3] phi from main::@1 to main::@1
-main__B1_from_B1:
-//SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
-//SEG10 main::@1
-main__B1:
-//SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $2
-  lda $1100,x
-  sta $3
-//SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $2
-  lda $1101,x
-  sta $4
-//SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- zpby1=zpby2_plus_zpby3 
-  lda $3
-  clc
-  adc $4
-  sta $5
-//SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $5
-  ldx $2
-  sta $1102,x
-//SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- zpby1=_inc_zpby1 
-  inc $2
-//SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$f
-  bcc main__B1_from_B1
-  jmp main__Breturn
-//SEG17 main::@return
-main__Breturn:
-//SEG18 [10] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
+    lda #$0
+    sta $1100
+  //SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $1101
+  //SEG6 [3] phi from main to main::@1
+  b1_from_main:
+  //SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+    jmp b1
+  //SEG8 [3] phi from main::@1 to main::@1
+  b1_from_b1:
+  //SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+    jmp b1
+  //SEG10 main::@1
+  b1:
+  //SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $2
+    lda $1100,x
+    sta $3
+  //SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $2
+    lda $1101,x
+    sta $4
+  //SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- zpby1=zpby2_plus_zpby3 
+    lda $3
+    clc
+    adc $4
+    sta $5
+  //SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $5
+    ldx $2
+    sta $1102,x
+  //SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- zpby1=_inc_zpby1 
+    inc $2
+  //SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$f
+    bcc b1_from_b1
+    jmp breturn
+  //SEG17 main::@return
+  breturn:
+  //SEG18 [10] return  [ ]
+    rts
+}
 
 Statement [1] *((word) 4352) ← (byte) 0 [ ] always clobbers reg byte a 
 Statement [2] *((word) 4353) ← (byte) 1 [ ] always clobbers reg byte a 
@@ -689,102 +690,104 @@ MISSING FRAGMENTS
   yby=yby_plus_cowo1_staridx_aby
   yby=yby_plus_cowo1_staridx_xby
   yby=yby_plus_cowo1_staridx_yby
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
-  lda #$0
-  sta $1100
-//SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $1101
-//SEG6 [3] phi from main to main::@1
-main__B1_from_main:
-//SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp main__B1
-//SEG8 [3] phi from main::@1 to main::@1
-main__B1_from_B1:
-//SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG10 main::@1
-main__B1:
-//SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
-  // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
-//SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
-  clc
-  adc $1101,x
-//SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1102,x
-//SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
-  cpx #$f
-  bcc main__B1_from_B1
-//SEG17 main::@return
-main__Breturn:
-//SEG18 [10] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
+    lda #$0
+    sta $1100
+  //SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $1101
+  //SEG6 [3] phi from main to main::@1
+  b1_from_main:
+  //SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b1
+  //SEG8 [3] phi from main::@1 to main::@1
+  b1_from_b1:
+  //SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG10 main::@1
+  b1:
+  //SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
+    // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
+  //SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
+    clc
+    adc $1101,x
+  //SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1102,x
+  //SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
+    cpx #$f
+    bcc b1_from_b1
+  //SEG17 main::@return
+  breturn:
+  //SEG18 [10] return  [ ]
+    rts
+}
 
-Removing instruction jmp main__B1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
-  lda #$0
-  sta $1100
-//SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $1101
-//SEG6 [3] phi from main to main::@1
-main__B1_from_main:
-//SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG8 [3] phi from main::@1 to main::@1
-main__B1_from_B1:
-//SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG10 main::@1
-main__B1:
-//SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
-  // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
-//SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
-  clc
-  adc $1101,x
-//SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1102,x
-//SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
-  cpx #$f
-  bcc main__B1_from_B1
-//SEG17 main::@return
-main__Breturn:
-//SEG18 [10] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
+    lda #$0
+    sta $1100
+  //SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $1101
+  //SEG6 [3] phi from main to main::@1
+  b1_from_main:
+  //SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG8 [3] phi from main::@1 to main::@1
+  b1_from_b1:
+  //SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG10 main::@1
+  b1:
+  //SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
+    // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
+  //SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
+    clc
+    adc $1101,x
+  //SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1102,x
+  //SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
+    cpx #$f
+    bcc b1_from_b1
+  //SEG17 main::@return
+  breturn:
+  //SEG18 [10] return  [ ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[15]) fibs
 (void()) main()
 (byte~) main::$1 reg byte a 11.0
@@ -802,45 +805,46 @@ reg byte alu [ main::$3 ]
 reg byte a [ main::$4 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
-  lda #$0
-  sta $1100
-//SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $1101
-//SEG6 [3] phi from main to main::@1
-main__B1_from_main:
-//SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG8 [3] phi from main::@1 to main::@1
-main__B1_from_B1:
-//SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG10 main::@1
-main__B1:
-//SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
-  // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
-//SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
-  clc
-  adc $1101,x
-//SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1102,x
-//SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
-  cpx #$f
-  bcc main__B1_from_B1
-//SEG17 main::@return
-main__Breturn:
-//SEG18 [10] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
+    lda #$0
+    sta $1100
+  //SEG5 [2] *((word) 4353) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $1101
+  //SEG6 [3] phi from main to main::@1
+  b1_from_main:
+  //SEG7 [3] phi (byte) main::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG8 [3] phi from main::@1 to main::@1
+  b1_from_b1:
+  //SEG9 [3] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG10 main::@1
+  b1:
+  //SEG11 [4] (byte~) main::$1 ← (word) 4352 *idx (byte) main::i#2 [ main::i#2 main::$1 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG12 [5] (byte~) main::$3 ← (word) 4353 *idx (byte) main::i#2 [ main::i#2 main::$1 main::$3 ]
+    // [5] main::$3 ← 4353 *idx main::i#2  //  ALU
+  //SEG13 [6] (byte~) main::$4 ← (byte~) main::$1 + (byte~) main::$3 [ main::i#2 main::$4 ] -- aby=aby_plus_cowo1_staridx_xby 
+    clc
+    adc $1101,x
+  //SEG14 [7] *((word) 4354 + (byte) main::i#2) ← (byte~) main::$4 [ main::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1102,x
+  //SEG15 [8] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG16 [9] if((byte) main::i#1<(byte) 15) goto main::@1 [ main::i#1 ] -- xby_lt_coby1_then_la1 
+    cpx #$f
+    bcc b1_from_b1
+  //SEG17 main::@return
+  breturn:
+  //SEG18 [10] return  [ ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.sym b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.sym
index 84f982d7d..b88180fce 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/fibmem.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/fibmem.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[15]) fibs
 (void()) main()
 (byte~) main::$1 reg byte a 11.0
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.asm b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.asm
index 5c26379a2..adf0f6156 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.asm
@@ -1,117 +1,121 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-  jsr prepare
-main__B3_from_main:
-  ldx #$19
-  jmp main__B3
-main__B3_from_B11:
-  ldx #$19
-main__B3_from_B3:
-main__B3_from_B6:
-main__B3:
-  lda $d012
-  cmp #$fe
-  bne main__B3_from_B3
-main__B4:
-  lda $d012
-  cmp #$ff
-  bne main__B4
-main__B6:
-  dex
-  cpx #$0
-  bne main__B3_from_B6
-main__B7:
-  jsr flip
-main__B10:
-  jsr plot
-main__B11:
-  jmp main__B3_from_B11
-main__Breturn:
-  rts
-plot:
-plot__B1_from_plot:
-  lda #$10
-  sta $4
-  lda #<$4d4
-  sta $2
-  lda #>$4d4
-  sta $2+$1
-  ldx #$0
-plot__B1_from_B3:
-plot__B1:
-plot__B2_from_B1:
-  ldy #$0
-plot__B2_from_B2:
-plot__B2:
-  lda $1000,x
-  sta ($2),y
-  inx
-  iny
-  cpy #$10
-  bcc plot__B2_from_B2
-plot__B3:
-  lda $2
-  clc
-  adc #$28
-  sta $2
-  bcc !+
-  inc $2+$1
-!:
-  dec $4
-  lda $4
-  bne plot__B1_from_B3
-plot__Breturn:
-  rts
-flip:
-flip__B1_from_flip:
-  lda #$10
-  sta $4
-  ldy #$f
-  ldx #$0
-flip__B1_from_B4:
-flip__B1:
-flip__B2_from_B1:
-  lda #$10
-  sta $5
-flip__B2_from_B2:
-flip__B2:
-  lda $1000,x
-  sta $1100,y
-  inx
-  tya
-  clc
-  adc #$10
-  tay
-  dec $5
-  lda $5
-  bne flip__B2_from_B2
-flip__B4:
-  dey
-  dec $4
-  lda $4
-  bne flip__B1_from_B4
-flip__B3_from_B4:
-  ldx #$0
-flip__B3_from_B3:
-flip__B3:
-  lda $1100,x
-  sta $1000,x
-  inx
-  cpx #$0
-  bne flip__B3_from_B3
-flip__Breturn:
-  rts
-prepare:
-prepare__B1_from_prepare:
-  ldx #$0
-prepare__B1_from_B1:
-prepare__B1:
-  txa
-  sta $1000,x
-  inx
-  cpx #$0
-  bne prepare__B1_from_B1
-prepare__Breturn:
-  rts
+bend:
+main: {
+    jsr prepare
+  b3_from_main:
+    ldx #$19
+    jmp b3
+  b3_from_b11:
+    ldx #$19
+  b3_from_b3:
+  b3_from_b6:
+  b3:
+    lda $d012
+    cmp #$fe
+    bne b3_from_b3
+  b4:
+    lda $d012
+    cmp #$ff
+    bne b4
+  b6:
+    dex
+    cpx #$0
+    bne b3_from_b6
+  b7:
+    jsr flip
+  b10:
+    jsr plot
+  b11:
+    jmp b3_from_b11
+  breturn:
+    rts
+}
+plot: {
+  b1_from_plot:
+    lda #$10
+    sta $4
+    lda #<$4d4
+    sta $2
+    lda #>$4d4
+    sta $2+$1
+    ldx #$0
+  b1_from_b3:
+  b1:
+  b2_from_b1:
+    ldy #$0
+  b2_from_b2:
+  b2:
+    lda $1000,x
+    sta ($2),y
+    inx
+    iny
+    cpy #$10
+    bcc b2_from_b2
+  b3:
+    lda $2
+    clc
+    adc #$28
+    sta $2
+    bcc !+
+    inc $2+$1
+  !:
+    dec $4
+    lda $4
+    bne b1_from_b3
+  breturn:
+    rts
+}
+flip: {
+  b1_from_flip:
+    lda #$10
+    sta $4
+    ldy #$f
+    ldx #$0
+  b1_from_b4:
+  b1:
+  b2_from_b1:
+    lda #$10
+    sta $5
+  b2_from_b2:
+  b2:
+    lda $1000,x
+    sta $1100,y
+    inx
+    tya
+    clc
+    adc #$10
+    tay
+    dec $5
+    lda $5
+    bne b2_from_b2
+  b4:
+    dey
+    dec $4
+    lda $4
+    bne b1_from_b4
+  b3_from_b4:
+    ldx #$0
+  b3_from_b3:
+  b3:
+    lda $1100,x
+    sta $1000,x
+    inx
+    cpx #$0
+    bne b3_from_b3
+  breturn:
+    rts
+}
+prepare: {
+  b1_from_prepare:
+    ldx #$0
+  b1_from_b1:
+  b1:
+    txa
+    sta $1000,x
+    inx
+    cpx #$0
+    bne b1_from_b1
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.cfg b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.cfg
index 0c747e813..121685115 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call prepare param-assignment [ ]
   to:main::@3
 main::@3: from main main::@11 main::@3 main::@6
@@ -29,7 +29,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [12] return  [ ]
-  to:@RETURN
+  to:@return
 plot: from main::@10
   to:plot::@1
 plot::@1: from plot plot::@3
@@ -53,7 +53,7 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   [23] return  [ ]
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -86,7 +86,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   [40] return  [ ]
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -97,4 +97,4 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   [45] return  [ ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log
index 7976729e7..6d21d0d2d 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.log
@@ -220,7 +220,7 @@ SYMBOLS
 (byte) prepare::i
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN ← (word) 1024
   (byte[256]) buffer1 ← (word) 4096
   (byte[256]) buffer2 ← (word) 4352
@@ -261,8 +261,8 @@ main::@8: from main::@7
   to:main::@return
 main::@return: from main::@8
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 prepare: from
   (byte) prepare::i ← (byte) 0
@@ -277,7 +277,7 @@ prepare::@2: from prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@2
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
   to:@3
 flip: from
@@ -318,7 +318,7 @@ flip::@6: from flip::@3
   to:flip::@return
 flip::@return: from flip::@6
   return 
-  to:@RETURN
+  to:@return
 @3: from @2
   to:@4
 plot: from
@@ -351,10 +351,10 @@ plot::@4: from plot::@3
   to:plot::@return
 plot::@return: from plot::@4
   return 
-  to:@RETURN
+  to:@return
 @4: from @3
-  to:@END
-@END: from @4
+  to:@end
+@end: from @4
 
 Removing empty block main::@5
 Removing empty block main::@8
@@ -366,13 +366,13 @@ Removing empty block @3
 Removing empty block plot::@4
 Removing empty block @4
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN ← (word) 1024
   (byte[256]) buffer1 ← (word) 4096
   (byte[256]) buffer2 ← (word) 4352
   (byte*) RASTER ← (word) 53266
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (void~) main::$0 ← call prepare 
   to:main::@1
@@ -403,7 +403,7 @@ main::@7: from main::@6
   to:main::@return
 main::@return: from main::@7
   return 
-  to:@RETURN
+  to:@return
 prepare: from
   (byte) prepare::i ← (byte) 0
   to:prepare::@1
@@ -415,7 +415,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from
   (byte) flip::srcIdx ← (byte) 0
   (byte) flip::dstIdx ← (byte) 15
@@ -452,7 +452,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from
   (byte~) plot::$0 ← (byte) 5 * (byte) 40
   (byte*~) plot::$1 ← (byte[1000]) SCREEN + (byte~) plot::$0
@@ -481,22 +481,22 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN ← (word) 1024
   (byte[256]) buffer1 ← (word) 4096
   (byte[256]) buffer2 ← (word) 4352
   (byte*) RASTER ← (word) 53266
   call main param-assignment
   to:@5
-@5: from @BEGIN
-  to:@END
-main: from @BEGIN
+@5: from @begin
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -532,7 +532,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte) prepare::i ← (byte) 0
   to:prepare::@1
@@ -544,7 +544,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte) flip::srcIdx ← (byte) 0
   (byte) flip::dstIdx ← (byte) 15
@@ -581,7 +581,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte~) plot::$0 ← (byte) 5 * (byte) 40
   (byte*~) plot::$1 ← (byte[1000]) SCREEN + (byte~) plot::$0
@@ -610,8 +610,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @5
+  to:@return
+@end: from @5
 
 Completing Phi functions...
 Completing Phi functions...
@@ -624,20 +624,20 @@ Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN#0 ← (word) 1024
   (byte[256]) buffer1#0 ← (word) 4096
   (byte[256]) buffer2#0 ← (word) 4352
   (byte*) RASTER#0 ← (word) 53266
   call main param-assignment
   to:@5
-@5: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#15 ← phi( @BEGIN/(byte[256]) buffer2#0 )
-  (byte[1000]) SCREEN#11 ← phi( @BEGIN/(byte[1000]) SCREEN#0 )
-  (byte*) RASTER#8 ← phi( @BEGIN/(byte*) RASTER#0 )
-  (byte[256]) buffer1#9 ← phi( @BEGIN/(byte[256]) buffer1#0 )
+@5: from @begin
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#15 ← phi( @begin/(byte[256]) buffer2#0 )
+  (byte[1000]) SCREEN#11 ← phi( @begin/(byte[1000]) SCREEN#0 )
+  (byte*) RASTER#8 ← phi( @begin/(byte*) RASTER#0 )
+  (byte[256]) buffer1#9 ← phi( @begin/(byte[256]) buffer1#0 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -713,7 +713,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte[256]) buffer1#5 ← phi( main/(byte[256]) buffer1#9 )
   (byte) prepare::i#0 ← (byte) 0
@@ -728,7 +728,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte[256]) buffer2#5 ← phi( main::@7/(byte[256]) buffer2#7 )
   (byte[256]) buffer1#10 ← phi( main::@7/(byte[256]) buffer1#14 )
@@ -788,7 +788,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte[256]) buffer1#12 ← phi( main::@10/(byte[256]) buffer1#15 )
   (byte[1000]) SCREEN#1 ← phi( main::@10/(byte[1000]) SCREEN#2 )
@@ -832,24 +832,24 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @5
+  to:@return
+@end: from @5
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN#0 ← (word) 1024
   (byte[256]) buffer1#0 ← (word) 4096
   (byte[256]) buffer2#0 ← (word) 4352
   (byte*) RASTER#0 ← (word) 53266
   call main param-assignment
   to:@5
-@5: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#15 ← phi( @BEGIN/(byte[256]) buffer2#0 )
-  (byte[1000]) SCREEN#11 ← phi( @BEGIN/(byte[1000]) SCREEN#0 )
-  (byte*) RASTER#8 ← phi( @BEGIN/(byte*) RASTER#0 )
-  (byte[256]) buffer1#9 ← phi( @BEGIN/(byte[256]) buffer1#0 )
+@5: from @begin
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#15 ← phi( @begin/(byte[256]) buffer2#0 )
+  (byte[1000]) SCREEN#11 ← phi( @begin/(byte[1000]) SCREEN#0 )
+  (byte*) RASTER#8 ← phi( @begin/(byte*) RASTER#0 )
+  (byte[256]) buffer1#9 ← phi( @begin/(byte[256]) buffer1#0 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -925,7 +925,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte[256]) buffer1#5 ← phi( main/(byte[256]) buffer1#9 )
   (byte) prepare::i#0 ← (byte) 0
@@ -940,7 +940,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte[256]) buffer2#5 ← phi( main::@7/(byte[256]) buffer2#7 )
   (byte[256]) buffer1#10 ← phi( main::@7/(byte[256]) buffer1#14 )
@@ -1000,7 +1000,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte[256]) buffer1#12 ← phi( main::@10/(byte[256]) buffer1#15 )
   (byte[1000]) SCREEN#1 ← phi( main::@10/(byte[1000]) SCREEN#2 )
@@ -1044,24 +1044,24 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @5
+  to:@return
+@end: from @5
 
 Culled Empty Block (label) @5
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[1000]) SCREEN#0 ← (word) 1024
   (byte[256]) buffer1#0 ← (word) 4096
   (byte[256]) buffer2#0 ← (word) 4352
   (byte*) RASTER#0 ← (word) 53266
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#15 ← phi( @BEGIN/(byte[256]) buffer2#0 )
-  (byte[1000]) SCREEN#11 ← phi( @BEGIN/(byte[1000]) SCREEN#0 )
-  (byte*) RASTER#8 ← phi( @BEGIN/(byte*) RASTER#0 )
-  (byte[256]) buffer1#9 ← phi( @BEGIN/(byte[256]) buffer1#0 )
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#15 ← phi( @begin/(byte[256]) buffer2#0 )
+  (byte[1000]) SCREEN#11 ← phi( @begin/(byte[1000]) SCREEN#0 )
+  (byte*) RASTER#8 ← phi( @begin/(byte*) RASTER#0 )
+  (byte[256]) buffer1#9 ← phi( @begin/(byte[256]) buffer1#0 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -1137,7 +1137,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte[256]) buffer1#5 ← phi( main/(byte[256]) buffer1#9 )
   (byte) prepare::i#0 ← (byte) 0
@@ -1152,7 +1152,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte[256]) buffer2#5 ← phi( main::@7/(byte[256]) buffer2#7 )
   (byte[256]) buffer1#10 ← phi( main::@7/(byte[256]) buffer1#14 )
@@ -1212,7 +1212,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte[256]) buffer1#12 ← phi( main::@10/(byte[256]) buffer1#15 )
   (byte[1000]) SCREEN#1 ← phi( main::@10/(byte[1000]) SCREEN#2 )
@@ -1256,8 +1256,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[1000]) SCREEN#0 (word) 1024
 Constant (byte[256]) buffer1#0 (word) 4096
@@ -1276,14 +1276,14 @@ Constant (byte) plot::i#0 (byte) 0
 Constant (byte) plot::x#0 (byte) 0
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#15 ← phi( @BEGIN/(word) 4352 )
-  (byte[1000]) SCREEN#11 ← phi( @BEGIN/(word) 1024 )
-  (byte*) RASTER#8 ← phi( @BEGIN/(word) 53266 )
-  (byte[256]) buffer1#9 ← phi( @BEGIN/(word) 4096 )
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#15 ← phi( @begin/(word) 4352 )
+  (byte[1000]) SCREEN#11 ← phi( @begin/(word) 1024 )
+  (byte*) RASTER#8 ← phi( @begin/(word) 53266 )
+  (byte[256]) buffer1#9 ← phi( @begin/(word) 4096 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -1358,7 +1358,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte[256]) buffer1#5 ← phi( main/(byte[256]) buffer1#9 )
   to:prepare::@1
@@ -1372,7 +1372,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte[256]) buffer2#5 ← phi( main::@7/(byte[256]) buffer2#7 )
   (byte[256]) buffer1#10 ← phi( main::@7/(byte[256]) buffer1#14 )
@@ -1427,7 +1427,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte[256]) buffer1#12 ← phi( main::@10/(byte[256]) buffer1#15 )
   (byte[1000]) SCREEN#1 ← phi( main::@10/(byte[1000]) SCREEN#2 )
@@ -1467,20 +1467,20 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Consolidated constant in assignment plot::$2
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#15 ← phi( @BEGIN/(word) 4352 )
-  (byte[1000]) SCREEN#11 ← phi( @BEGIN/(word) 1024 )
-  (byte*) RASTER#8 ← phi( @BEGIN/(word) 53266 )
-  (byte[256]) buffer1#9 ← phi( @BEGIN/(word) 4096 )
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#15 ← phi( @begin/(word) 4352 )
+  (byte[1000]) SCREEN#11 ← phi( @begin/(word) 1024 )
+  (byte*) RASTER#8 ← phi( @begin/(word) 53266 )
+  (byte[256]) buffer1#9 ← phi( @begin/(word) 4096 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -1555,7 +1555,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   (byte[256]) buffer1#5 ← phi( main/(byte[256]) buffer1#9 )
   to:prepare::@1
@@ -1569,7 +1569,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   (byte[256]) buffer2#5 ← phi( main::@7/(byte[256]) buffer2#7 )
   (byte[256]) buffer1#10 ← phi( main::@7/(byte[256]) buffer1#14 )
@@ -1624,7 +1624,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte[256]) buffer1#12 ← phi( main::@10/(byte[256]) buffer1#15 )
   (byte[1000]) SCREEN#1 ← phi( main::@10/(byte[1000]) SCREEN#2 )
@@ -1664,8 +1664,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Not aliassing across scopes: plot::$1 SCREEN#1
 Alias (byte*) RASTER#6 = (byte*) RASTER#8 
@@ -1691,14 +1691,14 @@ Alias (byte) plot::i#1 = (byte) plot::i#4
 Alias (byte*) plot::line#1 = (byte*~) plot::$5 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte[256]) buffer2#14 ← phi( @BEGIN/(word) 4352 )
-  (byte[1000]) SCREEN#10 ← phi( @BEGIN/(word) 1024 )
-  (byte*) RASTER#6 ← phi( @BEGIN/(word) 53266 )
-  (byte[256]) buffer1#22 ← phi( @BEGIN/(word) 4096 )
+  to:@end
+main: from @begin
+  (byte[256]) buffer2#14 ← phi( @begin/(word) 4352 )
+  (byte[1000]) SCREEN#10 ← phi( @begin/(word) 1024 )
+  (byte*) RASTER#6 ← phi( @begin/(word) 53266 )
+  (byte[256]) buffer1#22 ← phi( @begin/(word) 4096 )
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -1747,7 +1747,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -1760,7 +1760,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -1805,7 +1805,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -1837,8 +1837,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte[256]) buffer1#22 (word) 4096
 Redundant Phi (byte*) RASTER#6 (word) 53266
@@ -1846,10 +1846,10 @@ Redundant Phi (byte[1000]) SCREEN#10 (word) 1024
 Redundant Phi (byte[256]) buffer2#14 (word) 4352
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -1898,7 +1898,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -1911,7 +1911,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -1956,7 +1956,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -1988,8 +1988,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte*) RASTER#1
 Self Phi Eliminated (byte) main::c#4
@@ -2012,10 +2012,10 @@ Self Phi Eliminated (byte*) plot::line#2
 Self Phi Eliminated (byte) plot::y#2
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -2064,7 +2064,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2077,7 +2077,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2122,7 +2122,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2154,8 +2154,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$2 if((byte~) main::$1!=(byte) 254) goto main::@3
 Simple Condition (boolean~) main::$4 if((byte~) main::$3!=(byte) 255) goto main::@4
@@ -2168,10 +2168,10 @@ Simple Condition (boolean~) plot::$4 if((byte) plot::x#1<(byte) 16) goto plot::@
 Simple Condition (boolean~) plot::$6 if((byte) plot::y#1!=(byte) 0) goto plot::@1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@9
 main::@9: from main
@@ -2217,7 +2217,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2229,7 +2229,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2271,7 +2271,7 @@ flip::@3: from flip::@3 flip::@5
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2301,18 +2301,18 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Culled Empty Block (label) main::@9
 Culled Empty Block (label) main::@2
 Culled Empty Block (label) flip::@5
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2354,7 +2354,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2366,7 +2366,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2406,7 +2406,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2436,16 +2436,16 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[256]) buffer1#1 (word) 4096
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2487,7 +2487,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2498,7 +2498,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2538,7 +2538,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2568,8 +2568,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) prepare::i#2
 Not aliassing across scopes: plot::$1 SCREEN#1
@@ -2586,10 +2586,10 @@ Alias (byte*) plot::line#2 = (byte*) plot::line#4
 Alias (byte) plot::y#2 = (byte) plot::y#4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2626,7 +2626,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2637,7 +2637,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2672,7 +2672,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2699,8 +2699,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte*) RASTER#1
 Self Phi Eliminated (byte[1000]) SCREEN#1
@@ -2711,10 +2711,10 @@ Self Phi Eliminated (byte[256]) buffer2#1
 Self Phi Eliminated (byte[256]) buffer1#13
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2751,7 +2751,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2762,7 +2762,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2797,7 +2797,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2824,8 +2824,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) prepare::i#2
 Not aliassing across scopes: plot::$1 SCREEN#1
@@ -2835,10 +2835,10 @@ Alias (byte[256]) buffer1#10 = (byte[256]) buffer1#19 (byte[256]) buffer1#11 (by
 Alias (byte[256]) buffer2#1 = (byte[256]) buffer2#10 (byte[256]) buffer2#11 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2871,7 +2871,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2882,7 +2882,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -2915,7 +2915,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -2941,8 +2941,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte*) RASTER#1
 Self Phi Eliminated (byte[1000]) SCREEN#1
@@ -2950,10 +2950,10 @@ Self Phi Eliminated (byte[256]) buffer1#10
 Self Phi Eliminated (byte[256]) buffer2#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -2986,7 +2986,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -2997,7 +2997,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3030,7 +3030,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (byte[1000]) SCREEN#1
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -3056,8 +3056,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) RASTER#1 (word) 53266
 Constant (byte[1000]) SCREEN#1 (word) 1024
@@ -3065,10 +3065,10 @@ Constant (byte[256]) buffer1#10 (word) 4096
 Constant (byte[256]) buffer2#1 (word) 4352
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@1
 main::@1: from main main::@11
@@ -3097,7 +3097,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -3108,7 +3108,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3141,7 +3141,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (word) 1024
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -3167,8 +3167,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) prepare::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) flip::srcIdx#2
@@ -3178,10 +3178,10 @@ Multiple usages for variable. Not optimizing sub-constant (byte) plot::i#2
 Culled Empty Block (label) main::@1
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@3
 main::@3: from main main::@11 main::@3 main::@6
@@ -3208,7 +3208,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -3219,7 +3219,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3252,7 +3252,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*~) plot::$1 ← (word) 1024
   (byte*) plot::line#0 ← (byte*~) plot::$1 + (byte) 212
@@ -3278,16 +3278,16 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*~) plot::$1 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@3
 main::@3: from main main::@11 main::@3 main::@6
@@ -3314,7 +3314,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -3325,7 +3325,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3358,7 +3358,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   (byte*) plot::line#0 ← (word) 1024 + (byte) 212
   to:plot::@1
@@ -3383,8 +3383,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) prepare::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) flip::srcIdx#2
@@ -3394,10 +3394,10 @@ Multiple usages for variable. Not optimizing sub-constant (byte) plot::i#2
 Constant (byte*) plot::line#0 (word) 1236
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call prepare param-assignment
   to:main::@3
 main::@3: from main main::@11 main::@3 main::@6
@@ -3424,7 +3424,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -3435,7 +3435,7 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3468,7 +3468,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 plot: from main::@10
   to:plot::@1
 plot::@1: from plot plot::@3
@@ -3492,8 +3492,8 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) prepare::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) flip::srcIdx#2
@@ -3505,7 +3505,7 @@ Multiple usages for variable. Not optimizing sub-constant (byte) flip::srcIdx#2
 Multiple usages for variable. Not optimizing sub-constant (byte) flip::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) flip::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) plot::i#2
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return plot plot::@1 plot::@2 plot::@3 plot::@return flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return prepare prepare::@1 prepare::@return 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return plot plot::@1 plot::@2 plot::@3 plot::@return flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return prepare prepare::@1 prepare::@return 
 Added new block during phi lifting main::@12(between main::@6 and main::@3)
 Added new block during phi lifting plot::@5(between plot::@3 and plot::@1)
 Added new block during phi lifting plot::@6(between plot::@2 and plot::@2)
@@ -3513,13 +3513,13 @@ Added new block during phi lifting flip::@7(between flip::@4 and flip::@1)
 Added new block during phi lifting flip::@8(between flip::@2 and flip::@2)
 Added new block during phi lifting flip::@9(between flip::@3 and flip::@3)
 Added new block during phi lifting prepare::@3(between prepare::@1 and prepare::@1)
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return main::@12 plot plot::@1 plot::@2 plot::@3 plot::@return plot::@5 plot::@6 flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return flip::@9 flip::@7 flip::@8 prepare prepare::@1 prepare::@return prepare::@3 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return main::@12 plot plot::@1 plot::@2 plot::@3 plot::@return plot::@5 plot::@6 flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return flip::@9 flip::@7 flip::@8 prepare prepare::@1 prepare::@return prepare::@3 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   call prepare param-assignment
   to:main::@3
 main::@3: from main main::@11 main::@12 main::@3
@@ -3546,7 +3546,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 main::@12: from main::@6
   (byte~) main::c#6 ← (byte) main::c#1
   to:main::@3
@@ -3574,7 +3574,7 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   return 
-  to:@RETURN
+  to:@return
 plot::@5: from plot::@3
   (byte~) plot::i#5 ← (byte) plot::i#1
   (byte*~) plot::line#5 ← (byte*) plot::line#1
@@ -3618,7 +3618,7 @@ flip::@3: from flip::@4 flip::@9
   to:flip::@return
 flip::@return: from flip::@3
   return 
-  to:@RETURN
+  to:@return
 flip::@9: from flip::@3
   (byte~) flip::i#3 ← (byte) flip::i#1
   to:flip::@3
@@ -3642,7 +3642,7 @@ prepare::@1: from prepare prepare::@3
   to:prepare::@return
 prepare::@return: from prepare::@1
   return 
-  to:@RETURN
+  to:@return
 prepare::@3: from prepare::@1
   (byte~) prepare::i#3 ← (byte) prepare::i#1
   to:prepare::@1
@@ -3659,11 +3659,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call prepare param-assignment [ ]
   to:main::@3
 main::@3: from main main::@11 main::@12 main::@3
@@ -3690,7 +3690,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [12] return  [ ]
-  to:@RETURN
+  to:@return
 main::@12: from main::@6
   [13] (byte~) main::c#6 ← (byte) main::c#1 [ main::c#6 ]
   to:main::@3
@@ -3718,7 +3718,7 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   [25] return  [ ]
-  to:@RETURN
+  to:@return
 plot::@5: from plot::@3
   [26] (byte~) plot::i#5 ← (byte) plot::i#1 [ plot::i#5 plot::y#1 plot::line#1 ]
   [27] (byte*~) plot::line#5 ← (byte*) plot::line#1 [ plot::i#5 plot::line#5 plot::y#1 ]
@@ -3762,7 +3762,7 @@ flip::@3: from flip::@4 flip::@9
   to:flip::@return
 flip::@return: from flip::@3
   [49] return  [ ]
-  to:@RETURN
+  to:@return
 flip::@9: from flip::@3
   [50] (byte~) flip::i#3 ← (byte) flip::i#1 [ flip::i#3 ]
   to:flip::@3
@@ -3786,7 +3786,7 @@ prepare::@1: from prepare prepare::@3
   to:prepare::@return
 prepare::@return: from prepare::@1
   [61] return  [ ]
-  to:@RETURN
+  to:@return
 prepare::@3: from prepare::@1
   [62] (byte~) prepare::i#3 ← (byte) prepare::i#1 [ prepare::i#3 ]
   to:prepare::@1
@@ -3817,7 +3817,7 @@ Culled Empty Block (label) flip::@9
 Culled Empty Block (label) flip::@7
 Culled Empty Block (label) flip::@8
 Culled Empty Block (label) prepare::@3
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return plot plot::@1 plot::@2 plot::@3 plot::@return flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return prepare prepare::@1 prepare::@return 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@6 main::@7 main::@10 main::@11 main::@return plot plot::@1 plot::@2 plot::@3 plot::@return flip flip::@1 flip::@2 flip::@4 flip::@3 flip::@return prepare prepare::@1 prepare::@return 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -3828,11 +3828,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call prepare param-assignment [ ]
   to:main::@3
 main::@3: from main main::@11 main::@3 main::@6
@@ -3859,7 +3859,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [12] return  [ ]
-  to:@RETURN
+  to:@return
 plot: from main::@10
   to:plot::@1
 plot::@1: from plot plot::@3
@@ -3883,7 +3883,7 @@ plot::@3: from plot::@2
   to:plot::@return
 plot::@return: from plot::@3
   [23] return  [ ]
-  to:@RETURN
+  to:@return
 flip: from main::@7
   to:flip::@1
 flip::@1: from flip flip::@4
@@ -3916,7 +3916,7 @@ flip::@3: from flip::@3 flip::@4
   to:flip::@return
 flip::@return: from flip::@3
   [40] return  [ ]
-  to:@RETURN
+  to:@return
 prepare: from main
   to:prepare::@1
 prepare::@1: from prepare prepare::@1
@@ -3927,37 +3927,37 @@ prepare::@1: from prepare prepare::@1
   to:prepare::@return
 prepare::@return: from prepare::@1
   [45] return  [ ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 Calls in [main] to 1:prepare 9:flip 10:plot 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@3 dominated by  @BEGIN main::@3 main 
-main::@4 dominated by  @BEGIN main::@4 main::@3 main 
-main::@6 dominated by  @BEGIN main::@4 main::@3 main::@6 main 
-main::@7 dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 
-main::@10 dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 main::@10 
-main::@11 dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 main::@10 main::@11 
-main::@return dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 main::@return main::@10 main::@11 
-plot dominated by  @BEGIN main::@4 main::@3 main::@6 plot main main::@7 main::@10 
-plot::@1 dominated by  @BEGIN main::@4 main::@3 main::@6 main plot main::@7 plot::@1 main::@10 
-plot::@2 dominated by  @BEGIN main::@4 main::@3 main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 
-plot::@3 dominated by  @BEGIN main::@4 main::@3 main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 plot::@3 
-plot::@return dominated by  @BEGIN main::@4 main::@3 plot::@return main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 plot::@3 
-flip dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 flip 
-flip::@1 dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 flip::@1 flip 
-flip::@2 dominated by  @BEGIN main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
-flip::@4 dominated by  flip::@4 @BEGIN main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
-flip::@3 dominated by  flip::@4 flip::@3 @BEGIN main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
-flip::@return dominated by  flip::@4 flip::@3 @BEGIN main::@4 main::@3 main::@6 main main::@7 flip::@return flip::@1 flip::@2 flip 
-prepare dominated by  @BEGIN prepare main 
-prepare::@1 dominated by  @BEGIN prepare main prepare::@1 
-prepare::@return dominated by  @BEGIN prepare::@return prepare main prepare::@1 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@3 dominated by  @begin main::@3 main 
+main::@4 dominated by  @begin main::@4 main::@3 main 
+main::@6 dominated by  @begin main::@4 main::@3 main::@6 main 
+main::@7 dominated by  @begin main::@4 main::@3 main::@6 main main::@7 
+main::@10 dominated by  @begin main::@4 main::@3 main::@6 main main::@7 main::@10 
+main::@11 dominated by  @begin main::@4 main::@3 main::@6 main main::@7 main::@10 main::@11 
+main::@return dominated by  @begin main::@4 main::@3 main::@6 main main::@7 main::@return main::@10 main::@11 
+plot dominated by  @begin main::@4 main::@3 main::@6 plot main main::@7 main::@10 
+plot::@1 dominated by  @begin main::@4 main::@3 main::@6 main plot main::@7 plot::@1 main::@10 
+plot::@2 dominated by  @begin main::@4 main::@3 main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 
+plot::@3 dominated by  @begin main::@4 main::@3 main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 plot::@3 
+plot::@return dominated by  @begin main::@4 main::@3 plot::@return main::@6 main plot main::@7 plot::@2 plot::@1 main::@10 plot::@3 
+flip dominated by  @begin main::@4 main::@3 main::@6 main main::@7 flip 
+flip::@1 dominated by  @begin main::@4 main::@3 main::@6 main main::@7 flip::@1 flip 
+flip::@2 dominated by  @begin main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
+flip::@4 dominated by  flip::@4 @begin main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
+flip::@3 dominated by  flip::@4 flip::@3 @begin main::@4 main::@3 main::@6 main main::@7 flip::@1 flip::@2 flip 
+flip::@return dominated by  flip::@4 flip::@3 @begin main::@4 main::@3 main::@6 main main::@7 flip::@return flip::@1 flip::@2 flip 
+prepare dominated by  @begin prepare main 
+prepare::@1 dominated by  @begin prepare main prepare::@1 
+prepare::@return dominated by  @begin prepare::@return prepare main prepare::@1 
 
 Found back edge: Loop head: main::@3 tails: main::@3 blocks: null
 Found back edge: Loop head: main::@4 tails: main::@4 blocks: null
@@ -4122,284 +4122,288 @@ Allocated zp byte:16 to zp byte:16 [ plot::$3 ]
 Allocated zp byte:17 to zp byte:17 [ flip::$0 ]
 Allocated zp byte:18 to zp byte:18 [ flip::$4 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call prepare param-assignment [ ]
-  jsr prepare
-//SEG5 [2] phi from main to main::@3
-main__B3_from_main:
-//SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- zpby1=coby1 
-  lda #$19
-  sta $2
-  jmp main__B3
-//SEG7 [2] phi from main::@11 to main::@3
-main__B3_from_B11:
-//SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- zpby1=coby1 
-  lda #$19
-  sta $2
-  jmp main__B3
-//SEG9 [2] phi from main::@3 to main::@3
-main__B3_from_B3:
-  jmp main__B3
-//SEG10 [2] phi from main::@6 to main::@3
-main__B3_from_B6:
-//SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
-  jmp main__B3
-//SEG12 main::@3
-main__B3:
-//SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- zpby1=_star_cowo1 
-  lda $d012
-  sta $e
-//SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- zpby1_neq_coby1_then_la1 
-  lda $e
-  cmp #$fe
-  bne main__B3_from_B3
-  jmp main__B4
-//SEG15 main::@4
-main__B4:
-//SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- zpby1=_star_cowo1 
-  lda $d012
-  sta $f
-//SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- zpby1_neq_coby1_then_la1 
-  lda $f
-  cmp #$ff
-  bne main__B4
-  jmp main__B6
-//SEG18 main::@6
-main__B6:
-//SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- zpby1_neq_0_then_la1 
-  lda $2
-  bne main__B3_from_B6
-  jmp main__B7
-//SEG21 main::@7
-main__B7:
-//SEG22 [9] call flip param-assignment [ ]
-  jsr flip
-  jmp main__B10
-//SEG23 main::@10
-main__B10:
-//SEG24 [10] call plot param-assignment [ ]
-  jsr plot
-  jmp main__B11
-//SEG25 main::@11
-main__B11:
-//SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
-  jmp main__B3_from_B11
-  jmp main__Breturn
-//SEG27 main::@return
-main__Breturn:
-//SEG28 [12] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call prepare param-assignment [ ]
+    jsr prepare
+  //SEG5 [2] phi from main to main::@3
+  b3_from_main:
+  //SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- zpby1=coby1 
+    lda #$19
+    sta $2
+    jmp b3
+  //SEG7 [2] phi from main::@11 to main::@3
+  b3_from_b11:
+  //SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- zpby1=coby1 
+    lda #$19
+    sta $2
+    jmp b3
+  //SEG9 [2] phi from main::@3 to main::@3
+  b3_from_b3:
+    jmp b3
+  //SEG10 [2] phi from main::@6 to main::@3
+  b3_from_b6:
+  //SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
+    jmp b3
+  //SEG12 main::@3
+  b3:
+  //SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- zpby1=_star_cowo1 
+    lda $d012
+    sta $e
+  //SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- zpby1_neq_coby1_then_la1 
+    lda $e
+    cmp #$fe
+    bne b3_from_b3
+    jmp b4
+  //SEG15 main::@4
+  b4:
+  //SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- zpby1=_star_cowo1 
+    lda $d012
+    sta $f
+  //SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- zpby1_neq_coby1_then_la1 
+    lda $f
+    cmp #$ff
+    bne b4
+    jmp b6
+  //SEG18 main::@6
+  b6:
+  //SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- zpby1_neq_0_then_la1 
+    lda $2
+    bne b3_from_b6
+    jmp b7
+  //SEG21 main::@7
+  b7:
+  //SEG22 [9] call flip param-assignment [ ]
+    jsr flip
+    jmp b10
+  //SEG23 main::@10
+  b10:
+  //SEG24 [10] call plot param-assignment [ ]
+    jsr plot
+    jmp b11
+  //SEG25 main::@11
+  b11:
+  //SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
+    jmp b3_from_b11
+    jmp breturn
+  //SEG27 main::@return
+  breturn:
+  //SEG28 [12] return  [ ]
+    rts
+}
 //SEG29 plot
-plot:
-//SEG30 [13] phi from plot to plot::@1
-plot__B1_from_plot:
-//SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $5
-//SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
-  lda #<$4d4
-  sta $3
-  lda #>$4d4
-  sta $3+$1
-//SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $6
-  jmp plot__B1
-//SEG34 [13] phi from plot::@3 to plot::@1
-plot__B1_from_B3:
-//SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
-//SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
-//SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
-  jmp plot__B1
-//SEG38 plot::@1
-plot__B1:
-//SEG39 [14] phi from plot::@1 to plot::@2
-plot__B2_from_B1:
-//SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $7
-//SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
-  jmp plot__B2
-//SEG42 [14] phi from plot::@2 to plot::@2
-plot__B2_from_B2:
-//SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
-//SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
-  jmp plot__B2
-//SEG45 plot::@2
-plot__B2:
-//SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $6
-  lda $1000,x
-  sta $10
-//SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_zpby1=zpby2 
-  lda $10
-  ldy $7
-  sta ($3),y
-//SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- zpby1=_inc_zpby1 
-  inc $6
-//SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- zpby1=_inc_zpby1 
-  inc $7
-//SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $7
-  cmp #$10
-  bcc plot__B2_from_B2
-  jmp plot__B3
-//SEG51 plot::@3
-plot__B3:
-//SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-//SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
-  lda $5
-  bne plot__B1_from_B3
-  jmp plot__Breturn
-//SEG55 plot::@return
-plot__Breturn:
-//SEG56 [23] return  [ ]
-  rts
+plot: {
+  //SEG30 [13] phi from plot to plot::@1
+  b1_from_plot:
+  //SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $5
+  //SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
+    lda #<$4d4
+    sta $3
+    lda #>$4d4
+    sta $3+$1
+  //SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $6
+    jmp b1
+  //SEG34 [13] phi from plot::@3 to plot::@1
+  b1_from_b3:
+  //SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
+  //SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
+  //SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
+    jmp b1
+  //SEG38 plot::@1
+  b1:
+  //SEG39 [14] phi from plot::@1 to plot::@2
+  b2_from_b1:
+  //SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $7
+  //SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
+    jmp b2
+  //SEG42 [14] phi from plot::@2 to plot::@2
+  b2_from_b2:
+  //SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
+  //SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
+    jmp b2
+  //SEG45 plot::@2
+  b2:
+  //SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $6
+    lda $1000,x
+    sta $10
+  //SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_zpby1=zpby2 
+    lda $10
+    ldy $7
+    sta ($3),y
+  //SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- zpby1=_inc_zpby1 
+    inc $6
+  //SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- zpby1=_inc_zpby1 
+    inc $7
+  //SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $7
+    cmp #$10
+    bcc b2_from_b2
+    jmp b3
+  //SEG51 plot::@3
+  b3:
+  //SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+  //SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
+    lda $5
+    bne b1_from_b3
+    jmp breturn
+  //SEG55 plot::@return
+  breturn:
+  //SEG56 [23] return  [ ]
+    rts
+}
 //SEG57 flip
-flip:
-//SEG58 [24] phi from flip to flip::@1
-flip__B1_from_flip:
-//SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $8
-//SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- zpby1=coby1 
-  lda #$f
-  sta $a
-//SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $9
-  jmp flip__B1
-//SEG62 [24] phi from flip::@4 to flip::@1
-flip__B1_from_B4:
-//SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
-//SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
-//SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
-  jmp flip__B1
-//SEG66 flip::@1
-flip__B1:
-//SEG67 [25] phi from flip::@1 to flip::@2
-flip__B2_from_B1:
-//SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $b
-//SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
-//SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
-  jmp flip__B2
-//SEG71 [25] phi from flip::@2 to flip::@2
-flip__B2_from_B2:
-//SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
-//SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
-//SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
-  jmp flip__B2
-//SEG75 flip::@2
-flip__B2:
-//SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $9
-  lda $1000,x
-  sta $11
-//SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $11
-  ldx $a
-  sta $1100,x
-//SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- zpby1=_inc_zpby1 
-  inc $9
-//SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- zpby1=zpby1_plus_coby1 
-  lda $a
-  clc
-  adc #$10
-  sta $a
-//SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $b
-//SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
-  lda $b
-  bne flip__B2_from_B2
-  jmp flip__B4
-//SEG82 flip::@4
-flip__B4:
-//SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $a
-//SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
-  dec $8
-//SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
-  lda $8
-  bne flip__B1_from_B4
-//SEG86 [35] phi from flip::@4 to flip::@3
-flip__B3_from_B4:
-//SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $c
-  jmp flip__B3
-//SEG88 [35] phi from flip::@3 to flip::@3
-flip__B3_from_B3:
-//SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
-  jmp flip__B3
-//SEG90 flip::@3
-flip__B3:
-//SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $c
-  lda $1100,x
-  sta $12
-//SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $12
-  ldx $c
-  sta $1000,x
-//SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- zpby1=_inc_zpby1 
-  inc $c
-//SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- zpby1_neq_0_then_la1 
-  lda $c
-  bne flip__B3_from_B3
-  jmp flip__Breturn
-//SEG95 flip::@return
-flip__Breturn:
-//SEG96 [40] return  [ ]
-  rts
+flip: {
+  //SEG58 [24] phi from flip to flip::@1
+  b1_from_flip:
+  //SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $8
+  //SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- zpby1=coby1 
+    lda #$f
+    sta $a
+  //SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $9
+    jmp b1
+  //SEG62 [24] phi from flip::@4 to flip::@1
+  b1_from_b4:
+  //SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
+  //SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
+  //SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
+    jmp b1
+  //SEG66 flip::@1
+  b1:
+  //SEG67 [25] phi from flip::@1 to flip::@2
+  b2_from_b1:
+  //SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $b
+  //SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
+  //SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
+    jmp b2
+  //SEG71 [25] phi from flip::@2 to flip::@2
+  b2_from_b2:
+  //SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
+  //SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
+  //SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
+    jmp b2
+  //SEG75 flip::@2
+  b2:
+  //SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $9
+    lda $1000,x
+    sta $11
+  //SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $11
+    ldx $a
+    sta $1100,x
+  //SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- zpby1=_inc_zpby1 
+    inc $9
+  //SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- zpby1=zpby1_plus_coby1 
+    lda $a
+    clc
+    adc #$10
+    sta $a
+  //SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $b
+  //SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
+    lda $b
+    bne b2_from_b2
+    jmp b4
+  //SEG82 flip::@4
+  b4:
+  //SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $a
+  //SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
+    dec $8
+  //SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
+    lda $8
+    bne b1_from_b4
+  //SEG86 [35] phi from flip::@4 to flip::@3
+  b3_from_b4:
+  //SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $c
+    jmp b3
+  //SEG88 [35] phi from flip::@3 to flip::@3
+  b3_from_b3:
+  //SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
+    jmp b3
+  //SEG90 flip::@3
+  b3:
+  //SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $c
+    lda $1100,x
+    sta $12
+  //SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $12
+    ldx $c
+    sta $1000,x
+  //SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- zpby1=_inc_zpby1 
+    inc $c
+  //SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- zpby1_neq_0_then_la1 
+    lda $c
+    bne b3_from_b3
+    jmp breturn
+  //SEG95 flip::@return
+  breturn:
+  //SEG96 [40] return  [ ]
+    rts
+}
 //SEG97 prepare
-prepare:
-//SEG98 [41] phi from prepare to prepare::@1
-prepare__B1_from_prepare:
-//SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $d
-  jmp prepare__B1
-//SEG100 [41] phi from prepare::@1 to prepare::@1
-prepare__B1_from_B1:
-//SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
-  jmp prepare__B1
-//SEG102 prepare::@1
-prepare__B1:
-//SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_zpby1=zpby1 
-  ldx $d
-  txa
-  sta $1000,x
-//SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- zpby1=_inc_zpby1 
-  inc $d
-//SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- zpby1_neq_0_then_la1 
-  lda $d
-  bne prepare__B1_from_B1
-  jmp prepare__Breturn
-//SEG106 prepare::@return
-prepare__Breturn:
-//SEG107 [45] return  [ ]
-  rts
+prepare: {
+  //SEG98 [41] phi from prepare to prepare::@1
+  b1_from_prepare:
+  //SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $d
+    jmp b1
+  //SEG100 [41] phi from prepare::@1 to prepare::@1
+  b1_from_b1:
+  //SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
+    jmp b1
+  //SEG102 prepare::@1
+  b1:
+  //SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_zpby1=zpby1 
+    ldx $d
+    txa
+    sta $1000,x
+  //SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- zpby1=_inc_zpby1 
+    inc $d
+  //SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- zpby1_neq_0_then_la1 
+    lda $d
+    bne b1_from_b1
+    jmp breturn
+  //SEG106 prepare::@return
+  breturn:
+  //SEG107 [45] return  [ ]
+    rts
+}
 
 Statement [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp byte:6 [ plot::i#2 plot::i#3 plot::i#1 ]
@@ -4444,729 +4448,741 @@ Coalescing zero page register [ zp byte:5 [ plot::y#2 plot::y#1 ] ] with [ zp by
 Re-allocated ZP register from zp ptr byte:3 to zp ptr byte:2
 Re-allocated ZP register from zp byte:5 to zp byte:4
 Re-allocated ZP register from zp byte:11 to zp byte:5
-Removing instruction jmp BEND
-Removing instruction jmp main__B3
-Removing instruction jmp main__B4
-Removing instruction jmp main__B6
-Removing instruction jmp main__B7
-Removing instruction jmp main__B10
-Removing instruction jmp main__B11
-Removing instruction jmp main__Breturn
-Removing instruction jmp plot__B1
-Removing instruction jmp plot__B2
-Removing instruction jmp plot__B3
-Removing instruction jmp plot__Breturn
-Removing instruction jmp flip__B1
-Removing instruction jmp flip__B2
-Removing instruction jmp flip__B4
-Removing instruction jmp flip__B3
-Removing instruction jmp flip__Breturn
-Removing instruction jmp prepare__B1
-Removing instruction jmp prepare__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b3
+Removing instruction jmp b4
+Removing instruction jmp b6
+Removing instruction jmp b7
+Removing instruction jmp b10
+Removing instruction jmp b11
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b4
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call prepare param-assignment [ ]
-  jsr prepare
-//SEG5 [2] phi from main to main::@3
-main__B3_from_main:
-//SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG7 [2] phi from main::@11 to main::@3
-main__B3_from_B11:
-//SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG9 [2] phi from main::@3 to main::@3
-main__B3_from_B3:
-  jmp main__B3
-//SEG10 [2] phi from main::@6 to main::@3
-main__B3_from_B6:
-//SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
-//SEG12 main::@3
-main__B3:
-//SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$fe
-  bne main__B3_from_B3
-//SEG15 main::@4
-main__B4:
-//SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$ff
-  bne main__B4
-//SEG18 main::@6
-main__B6:
-//SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
-  dex
-//SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne main__B3_from_B6
-//SEG21 main::@7
-main__B7:
-//SEG22 [9] call flip param-assignment [ ]
-  jsr flip
-//SEG23 main::@10
-main__B10:
-//SEG24 [10] call plot param-assignment [ ]
-  jsr plot
-//SEG25 main::@11
-main__B11:
-//SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
-  jmp main__B3_from_B11
-//SEG27 main::@return
-main__Breturn:
-//SEG28 [12] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call prepare param-assignment [ ]
+    jsr prepare
+  //SEG5 [2] phi from main to main::@3
+  b3_from_main:
+  //SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG7 [2] phi from main::@11 to main::@3
+  b3_from_b11:
+  //SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG9 [2] phi from main::@3 to main::@3
+  b3_from_b3:
+    jmp b3
+  //SEG10 [2] phi from main::@6 to main::@3
+  b3_from_b6:
+  //SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
+  //SEG12 main::@3
+  b3:
+  //SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$fe
+    bne b3_from_b3
+  //SEG15 main::@4
+  b4:
+  //SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$ff
+    bne b4
+  //SEG18 main::@6
+  b6:
+  //SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
+    dex
+  //SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b6
+  //SEG21 main::@7
+  b7:
+  //SEG22 [9] call flip param-assignment [ ]
+    jsr flip
+  //SEG23 main::@10
+  b10:
+  //SEG24 [10] call plot param-assignment [ ]
+    jsr plot
+  //SEG25 main::@11
+  b11:
+  //SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
+    jmp b3_from_b11
+  //SEG27 main::@return
+  breturn:
+  //SEG28 [12] return  [ ]
+    rts
+}
 //SEG29 plot
-plot:
-//SEG30 [13] phi from plot to plot::@1
-plot__B1_from_plot:
-//SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
-  lda #<$4d4
-  sta $2
-  lda #>$4d4
-  sta $2+$1
-//SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp plot__B1
-//SEG34 [13] phi from plot::@3 to plot::@1
-plot__B1_from_B3:
-//SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
-//SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
-//SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
-//SEG38 plot::@1
-plot__B1:
-//SEG39 [14] phi from plot::@1 to plot::@2
-plot__B2_from_B1:
-//SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
-  jmp plot__B2
-//SEG42 [14] phi from plot::@2 to plot::@2
-plot__B2_from_B2:
-//SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
-//SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
-//SEG45 plot::@2
-plot__B2:
-//SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
-  sta ($2),y
-//SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
-  inx
-//SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
-  iny
-//SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
-  cpy #$10
-  bcc plot__B2_from_B2
-//SEG51 plot::@3
-plot__B3:
-//SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $2
-  clc
-  adc #$28
-  sta $2
-  bcc !+
-  inc $2+$1
-!:
-//SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne plot__B1_from_B3
-//SEG55 plot::@return
-plot__Breturn:
-//SEG56 [23] return  [ ]
-  rts
+plot: {
+  //SEG30 [13] phi from plot to plot::@1
+  b1_from_plot:
+  //SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
+    lda #<$4d4
+    sta $2
+    lda #>$4d4
+    sta $2+$1
+  //SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b1
+  //SEG34 [13] phi from plot::@3 to plot::@1
+  b1_from_b3:
+  //SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
+  //SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
+  //SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
+  //SEG38 plot::@1
+  b1:
+  //SEG39 [14] phi from plot::@1 to plot::@2
+  b2_from_b1:
+  //SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
+    jmp b2
+  //SEG42 [14] phi from plot::@2 to plot::@2
+  b2_from_b2:
+  //SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
+  //SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
+  //SEG45 plot::@2
+  b2:
+  //SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
+    sta ($2),y
+  //SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
+    inx
+  //SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
+    iny
+  //SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
+    cpy #$10
+    bcc b2_from_b2
+  //SEG51 plot::@3
+  b3:
+  //SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $2
+    clc
+    adc #$28
+    sta $2
+    bcc !+
+    inc $2+$1
+  !:
+  //SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG55 plot::@return
+  breturn:
+  //SEG56 [23] return  [ ]
+    rts
+}
 //SEG57 flip
-flip:
-//SEG58 [24] phi from flip to flip::@1
-flip__B1_from_flip:
-//SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
-  ldy #$f
-//SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp flip__B1
-//SEG62 [24] phi from flip::@4 to flip::@1
-flip__B1_from_B4:
-//SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
-//SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
-//SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG66 flip::@1
-flip__B1:
-//SEG67 [25] phi from flip::@1 to flip::@2
-flip__B2_from_B1:
-//SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $5
-//SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
-//SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
-  jmp flip__B2
-//SEG71 [25] phi from flip::@2 to flip::@2
-flip__B2_from_B2:
-//SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
-//SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
-//SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG75 flip::@2
-flip__B2:
-//SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
-  sta $1100,y
-//SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
-  inx
-//SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
-  tya
-  clc
-  adc #$10
-  tay
-//SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
-  lda $5
-  bne flip__B2_from_B2
-//SEG82 flip::@4
-flip__B4:
-//SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
-  dey
-//SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne flip__B1_from_B4
-//SEG86 [35] phi from flip::@4 to flip::@3
-flip__B3_from_B4:
-//SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp flip__B3
-//SEG88 [35] phi from flip::@3 to flip::@3
-flip__B3_from_B3:
-//SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
-//SEG90 flip::@3
-flip__B3:
-//SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1000,x
-//SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne flip__B3_from_B3
-//SEG95 flip::@return
-flip__Breturn:
-//SEG96 [40] return  [ ]
-  rts
+flip: {
+  //SEG58 [24] phi from flip to flip::@1
+  b1_from_flip:
+  //SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
+    ldy #$f
+  //SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b1
+  //SEG62 [24] phi from flip::@4 to flip::@1
+  b1_from_b4:
+  //SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
+  //SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
+  //SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG66 flip::@1
+  b1:
+  //SEG67 [25] phi from flip::@1 to flip::@2
+  b2_from_b1:
+  //SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $5
+  //SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
+  //SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
+    jmp b2
+  //SEG71 [25] phi from flip::@2 to flip::@2
+  b2_from_b2:
+  //SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
+  //SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
+  //SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG75 flip::@2
+  b2:
+  //SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
+    sta $1100,y
+  //SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
+    inx
+  //SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
+    tya
+    clc
+    adc #$10
+    tay
+  //SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
+    lda $5
+    bne b2_from_b2
+  //SEG82 flip::@4
+  b4:
+  //SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
+    dey
+  //SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b4
+  //SEG86 [35] phi from flip::@4 to flip::@3
+  b3_from_b4:
+  //SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b3
+  //SEG88 [35] phi from flip::@3 to flip::@3
+  b3_from_b3:
+  //SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
+  //SEG90 flip::@3
+  b3:
+  //SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1000,x
+  //SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b3
+  //SEG95 flip::@return
+  breturn:
+  //SEG96 [40] return  [ ]
+    rts
+}
 //SEG97 prepare
-prepare:
-//SEG98 [41] phi from prepare to prepare::@1
-prepare__B1_from_prepare:
-//SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp prepare__B1
-//SEG100 [41] phi from prepare::@1 to prepare::@1
-prepare__B1_from_B1:
-//SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
-//SEG102 prepare::@1
-prepare__B1:
-//SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
-  txa
-  sta $1000,x
-//SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne prepare__B1_from_B1
-//SEG106 prepare::@return
-prepare__Breturn:
-//SEG107 [45] return  [ ]
-  rts
+prepare: {
+  //SEG98 [41] phi from prepare to prepare::@1
+  b1_from_prepare:
+  //SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b1
+  //SEG100 [41] phi from prepare::@1 to prepare::@1
+  b1_from_b1:
+  //SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
+  //SEG102 prepare::@1
+  b1:
+  //SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
+    txa
+    sta $1000,x
+  //SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG106 prepare::@return
+  breturn:
+  //SEG107 [45] return  [ ]
+    rts
+}
 
-Removing instruction jmp main__B3
-Removing instruction jmp plot__B1
-Removing instruction jmp plot__B2
-Removing instruction jmp flip__B1
-Removing instruction jmp flip__B2
-Removing instruction jmp flip__B3
-Removing instruction jmp prepare__B1
+Removing instruction jmp b3
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b3
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call prepare param-assignment [ ]
-  jsr prepare
-//SEG5 [2] phi from main to main::@3
-main__B3_from_main:
-//SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG7 [2] phi from main::@11 to main::@3
-main__B3_from_B11:
-//SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG9 [2] phi from main::@3 to main::@3
-main__B3_from_B3:
-//SEG10 [2] phi from main::@6 to main::@3
-main__B3_from_B6:
-//SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
-//SEG12 main::@3
-main__B3:
-//SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$fe
-  bne main__B3_from_B3
-//SEG15 main::@4
-main__B4:
-//SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$ff
-  bne main__B4
-//SEG18 main::@6
-main__B6:
-//SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
-  dex
-//SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne main__B3_from_B6
-//SEG21 main::@7
-main__B7:
-//SEG22 [9] call flip param-assignment [ ]
-  jsr flip
-//SEG23 main::@10
-main__B10:
-//SEG24 [10] call plot param-assignment [ ]
-  jsr plot
-//SEG25 main::@11
-main__B11:
-//SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
-  jmp main__B3_from_B11
-//SEG27 main::@return
-main__Breturn:
-//SEG28 [12] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call prepare param-assignment [ ]
+    jsr prepare
+  //SEG5 [2] phi from main to main::@3
+  b3_from_main:
+  //SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG7 [2] phi from main::@11 to main::@3
+  b3_from_b11:
+  //SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG9 [2] phi from main::@3 to main::@3
+  b3_from_b3:
+  //SEG10 [2] phi from main::@6 to main::@3
+  b3_from_b6:
+  //SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
+  //SEG12 main::@3
+  b3:
+  //SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$fe
+    bne b3_from_b3
+  //SEG15 main::@4
+  b4:
+  //SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$ff
+    bne b4
+  //SEG18 main::@6
+  b6:
+  //SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
+    dex
+  //SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b6
+  //SEG21 main::@7
+  b7:
+  //SEG22 [9] call flip param-assignment [ ]
+    jsr flip
+  //SEG23 main::@10
+  b10:
+  //SEG24 [10] call plot param-assignment [ ]
+    jsr plot
+  //SEG25 main::@11
+  b11:
+  //SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
+    jmp b3_from_b11
+  //SEG27 main::@return
+  breturn:
+  //SEG28 [12] return  [ ]
+    rts
+}
 //SEG29 plot
-plot:
-//SEG30 [13] phi from plot to plot::@1
-plot__B1_from_plot:
-//SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
-  lda #<$4d4
-  sta $2
-  lda #>$4d4
-  sta $2+$1
-//SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG34 [13] phi from plot::@3 to plot::@1
-plot__B1_from_B3:
-//SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
-//SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
-//SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
-//SEG38 plot::@1
-plot__B1:
-//SEG39 [14] phi from plot::@1 to plot::@2
-plot__B2_from_B1:
-//SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
-//SEG42 [14] phi from plot::@2 to plot::@2
-plot__B2_from_B2:
-//SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
-//SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
-//SEG45 plot::@2
-plot__B2:
-//SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
-  sta ($2),y
-//SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
-  inx
-//SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
-  iny
-//SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
-  cpy #$10
-  bcc plot__B2_from_B2
-//SEG51 plot::@3
-plot__B3:
-//SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $2
-  clc
-  adc #$28
-  sta $2
-  bcc !+
-  inc $2+$1
-!:
-//SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne plot__B1_from_B3
-//SEG55 plot::@return
-plot__Breturn:
-//SEG56 [23] return  [ ]
-  rts
+plot: {
+  //SEG30 [13] phi from plot to plot::@1
+  b1_from_plot:
+  //SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
+    lda #<$4d4
+    sta $2
+    lda #>$4d4
+    sta $2+$1
+  //SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG34 [13] phi from plot::@3 to plot::@1
+  b1_from_b3:
+  //SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
+  //SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
+  //SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
+  //SEG38 plot::@1
+  b1:
+  //SEG39 [14] phi from plot::@1 to plot::@2
+  b2_from_b1:
+  //SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
+  //SEG42 [14] phi from plot::@2 to plot::@2
+  b2_from_b2:
+  //SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
+  //SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
+  //SEG45 plot::@2
+  b2:
+  //SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
+    sta ($2),y
+  //SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
+    inx
+  //SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
+    iny
+  //SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
+    cpy #$10
+    bcc b2_from_b2
+  //SEG51 plot::@3
+  b3:
+  //SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $2
+    clc
+    adc #$28
+    sta $2
+    bcc !+
+    inc $2+$1
+  !:
+  //SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG55 plot::@return
+  breturn:
+  //SEG56 [23] return  [ ]
+    rts
+}
 //SEG57 flip
-flip:
-//SEG58 [24] phi from flip to flip::@1
-flip__B1_from_flip:
-//SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
-  ldy #$f
-//SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG62 [24] phi from flip::@4 to flip::@1
-flip__B1_from_B4:
-//SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
-//SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
-//SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG66 flip::@1
-flip__B1:
-//SEG67 [25] phi from flip::@1 to flip::@2
-flip__B2_from_B1:
-//SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $5
-//SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
-//SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
-//SEG71 [25] phi from flip::@2 to flip::@2
-flip__B2_from_B2:
-//SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
-//SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
-//SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG75 flip::@2
-flip__B2:
-//SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
-  sta $1100,y
-//SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
-  inx
-//SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
-  tya
-  clc
-  adc #$10
-  tay
-//SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
-  lda $5
-  bne flip__B2_from_B2
-//SEG82 flip::@4
-flip__B4:
-//SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
-  dey
-//SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne flip__B1_from_B4
-//SEG86 [35] phi from flip::@4 to flip::@3
-flip__B3_from_B4:
-//SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG88 [35] phi from flip::@3 to flip::@3
-flip__B3_from_B3:
-//SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
-//SEG90 flip::@3
-flip__B3:
-//SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1000,x
-//SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne flip__B3_from_B3
-//SEG95 flip::@return
-flip__Breturn:
-//SEG96 [40] return  [ ]
-  rts
+flip: {
+  //SEG58 [24] phi from flip to flip::@1
+  b1_from_flip:
+  //SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
+    ldy #$f
+  //SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG62 [24] phi from flip::@4 to flip::@1
+  b1_from_b4:
+  //SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
+  //SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
+  //SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG66 flip::@1
+  b1:
+  //SEG67 [25] phi from flip::@1 to flip::@2
+  b2_from_b1:
+  //SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $5
+  //SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
+  //SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
+  //SEG71 [25] phi from flip::@2 to flip::@2
+  b2_from_b2:
+  //SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
+  //SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
+  //SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG75 flip::@2
+  b2:
+  //SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
+    sta $1100,y
+  //SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
+    inx
+  //SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
+    tya
+    clc
+    adc #$10
+    tay
+  //SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
+    lda $5
+    bne b2_from_b2
+  //SEG82 flip::@4
+  b4:
+  //SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
+    dey
+  //SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b4
+  //SEG86 [35] phi from flip::@4 to flip::@3
+  b3_from_b4:
+  //SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG88 [35] phi from flip::@3 to flip::@3
+  b3_from_b3:
+  //SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
+  //SEG90 flip::@3
+  b3:
+  //SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1000,x
+  //SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b3
+  //SEG95 flip::@return
+  breturn:
+  //SEG96 [40] return  [ ]
+    rts
+}
 //SEG97 prepare
-prepare:
-//SEG98 [41] phi from prepare to prepare::@1
-prepare__B1_from_prepare:
-//SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG100 [41] phi from prepare::@1 to prepare::@1
-prepare__B1_from_B1:
-//SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
-//SEG102 prepare::@1
-prepare__B1:
-//SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
-  txa
-  sta $1000,x
-//SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne prepare__B1_from_B1
-//SEG106 prepare::@return
-prepare__Breturn:
-//SEG107 [45] return  [ ]
-  rts
+prepare: {
+  //SEG98 [41] phi from prepare to prepare::@1
+  b1_from_prepare:
+  //SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG100 [41] phi from prepare::@1 to prepare::@1
+  b1_from_b1:
+  //SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
+  //SEG102 prepare::@1
+  b1:
+  //SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
+    txa
+    sta $1000,x
+  //SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG106 prepare::@return
+  breturn:
+  //SEG107 [45] return  [ ]
+    rts
+}
 
-Removing instruction jmp main__B3
+Removing instruction jmp b3
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call prepare param-assignment [ ]
-  jsr prepare
-//SEG5 [2] phi from main to main::@3
-main__B3_from_main:
-//SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG7 [2] phi from main::@11 to main::@3
-main__B3_from_B11:
-//SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-//SEG9 [2] phi from main::@3 to main::@3
-main__B3_from_B3:
-//SEG10 [2] phi from main::@6 to main::@3
-main__B3_from_B6:
-//SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
-//SEG12 main::@3
-main__B3:
-//SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$fe
-  bne main__B3_from_B3
-//SEG15 main::@4
-main__B4:
-//SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$ff
-  bne main__B4
-//SEG18 main::@6
-main__B6:
-//SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
-  dex
-//SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne main__B3_from_B6
-//SEG21 main::@7
-main__B7:
-//SEG22 [9] call flip param-assignment [ ]
-  jsr flip
-//SEG23 main::@10
-main__B10:
-//SEG24 [10] call plot param-assignment [ ]
-  jsr plot
-//SEG25 main::@11
-main__B11:
-//SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
-  jmp main__B3_from_B11
-//SEG27 main::@return
-main__Breturn:
-//SEG28 [12] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call prepare param-assignment [ ]
+    jsr prepare
+  //SEG5 [2] phi from main to main::@3
+  b3_from_main:
+  //SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG7 [2] phi from main::@11 to main::@3
+  b3_from_b11:
+  //SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+  //SEG9 [2] phi from main::@3 to main::@3
+  b3_from_b3:
+  //SEG10 [2] phi from main::@6 to main::@3
+  b3_from_b6:
+  //SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
+  //SEG12 main::@3
+  b3:
+  //SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$fe
+    bne b3_from_b3
+  //SEG15 main::@4
+  b4:
+  //SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$ff
+    bne b4
+  //SEG18 main::@6
+  b6:
+  //SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
+    dex
+  //SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b6
+  //SEG21 main::@7
+  b7:
+  //SEG22 [9] call flip param-assignment [ ]
+    jsr flip
+  //SEG23 main::@10
+  b10:
+  //SEG24 [10] call plot param-assignment [ ]
+    jsr plot
+  //SEG25 main::@11
+  b11:
+  //SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
+    jmp b3_from_b11
+  //SEG27 main::@return
+  breturn:
+  //SEG28 [12] return  [ ]
+    rts
+}
 //SEG29 plot
-plot:
-//SEG30 [13] phi from plot to plot::@1
-plot__B1_from_plot:
-//SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
-  lda #<$4d4
-  sta $2
-  lda #>$4d4
-  sta $2+$1
-//SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG34 [13] phi from plot::@3 to plot::@1
-plot__B1_from_B3:
-//SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
-//SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
-//SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
-//SEG38 plot::@1
-plot__B1:
-//SEG39 [14] phi from plot::@1 to plot::@2
-plot__B2_from_B1:
-//SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
-//SEG42 [14] phi from plot::@2 to plot::@2
-plot__B2_from_B2:
-//SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
-//SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
-//SEG45 plot::@2
-plot__B2:
-//SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
-  sta ($2),y
-//SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
-  inx
-//SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
-  iny
-//SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
-  cpy #$10
-  bcc plot__B2_from_B2
-//SEG51 plot::@3
-plot__B3:
-//SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $2
-  clc
-  adc #$28
-  sta $2
-  bcc !+
-  inc $2+$1
-!:
-//SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne plot__B1_from_B3
-//SEG55 plot::@return
-plot__Breturn:
-//SEG56 [23] return  [ ]
-  rts
+plot: {
+  //SEG30 [13] phi from plot to plot::@1
+  b1_from_plot:
+  //SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
+    lda #<$4d4
+    sta $2
+    lda #>$4d4
+    sta $2+$1
+  //SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG34 [13] phi from plot::@3 to plot::@1
+  b1_from_b3:
+  //SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
+  //SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
+  //SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
+  //SEG38 plot::@1
+  b1:
+  //SEG39 [14] phi from plot::@1 to plot::@2
+  b2_from_b1:
+  //SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
+  //SEG42 [14] phi from plot::@2 to plot::@2
+  b2_from_b2:
+  //SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
+  //SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
+  //SEG45 plot::@2
+  b2:
+  //SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
+    sta ($2),y
+  //SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
+    inx
+  //SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
+    iny
+  //SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
+    cpy #$10
+    bcc b2_from_b2
+  //SEG51 plot::@3
+  b3:
+  //SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $2
+    clc
+    adc #$28
+    sta $2
+    bcc !+
+    inc $2+$1
+  !:
+  //SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG55 plot::@return
+  breturn:
+  //SEG56 [23] return  [ ]
+    rts
+}
 //SEG57 flip
-flip:
-//SEG58 [24] phi from flip to flip::@1
-flip__B1_from_flip:
-//SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
-  ldy #$f
-//SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG62 [24] phi from flip::@4 to flip::@1
-flip__B1_from_B4:
-//SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
-//SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
-//SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG66 flip::@1
-flip__B1:
-//SEG67 [25] phi from flip::@1 to flip::@2
-flip__B2_from_B1:
-//SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $5
-//SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
-//SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
-//SEG71 [25] phi from flip::@2 to flip::@2
-flip__B2_from_B2:
-//SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
-//SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
-//SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG75 flip::@2
-flip__B2:
-//SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
-  sta $1100,y
-//SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
-  inx
-//SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
-  tya
-  clc
-  adc #$10
-  tay
-//SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
-  lda $5
-  bne flip__B2_from_B2
-//SEG82 flip::@4
-flip__B4:
-//SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
-  dey
-//SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne flip__B1_from_B4
-//SEG86 [35] phi from flip::@4 to flip::@3
-flip__B3_from_B4:
-//SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG88 [35] phi from flip::@3 to flip::@3
-flip__B3_from_B3:
-//SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
-//SEG90 flip::@3
-flip__B3:
-//SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1000,x
-//SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne flip__B3_from_B3
-//SEG95 flip::@return
-flip__Breturn:
-//SEG96 [40] return  [ ]
-  rts
+flip: {
+  //SEG58 [24] phi from flip to flip::@1
+  b1_from_flip:
+  //SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
+    ldy #$f
+  //SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG62 [24] phi from flip::@4 to flip::@1
+  b1_from_b4:
+  //SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
+  //SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
+  //SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG66 flip::@1
+  b1:
+  //SEG67 [25] phi from flip::@1 to flip::@2
+  b2_from_b1:
+  //SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $5
+  //SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
+  //SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
+  //SEG71 [25] phi from flip::@2 to flip::@2
+  b2_from_b2:
+  //SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
+  //SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
+  //SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG75 flip::@2
+  b2:
+  //SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
+    sta $1100,y
+  //SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
+    inx
+  //SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
+    tya
+    clc
+    adc #$10
+    tay
+  //SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
+    lda $5
+    bne b2_from_b2
+  //SEG82 flip::@4
+  b4:
+  //SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
+    dey
+  //SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b4
+  //SEG86 [35] phi from flip::@4 to flip::@3
+  b3_from_b4:
+  //SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG88 [35] phi from flip::@3 to flip::@3
+  b3_from_b3:
+  //SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
+  //SEG90 flip::@3
+  b3:
+  //SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1000,x
+  //SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b3
+  //SEG95 flip::@return
+  breturn:
+  //SEG96 [40] return  [ ]
+    rts
+}
 //SEG97 prepare
-prepare:
-//SEG98 [41] phi from prepare to prepare::@1
-prepare__B1_from_prepare:
-//SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG100 [41] phi from prepare::@1 to prepare::@1
-prepare__B1_from_B1:
-//SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
-//SEG102 prepare::@1
-prepare__B1:
-//SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
-  txa
-  sta $1000,x
-//SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne prepare__B1_from_B1
-//SEG106 prepare::@return
-prepare__Breturn:
-//SEG107 [45] return  [ ]
-  rts
+prepare: {
+  //SEG98 [41] phi from prepare to prepare::@1
+  b1_from_prepare:
+  //SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG100 [41] phi from prepare::@1 to prepare::@1
+  b1_from_b1:
+  //SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
+  //SEG102 prepare::@1
+  b1:
+  //SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
+    txa
+    sta $1000,x
+  //SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG106 prepare::@return
+  breturn:
+  //SEG107 [45] return  [ ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) RASTER
 (byte[1000]) SCREEN
 (byte[256]) buffer1
@@ -5253,229 +5269,233 @@ reg byte a [ flip::$0 ]
 reg byte a [ flip::$4 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call prepare param-assignment [ ]
-  jsr prepare
-//SEG5 [2] phi from main to main::@3
-main__B3_from_main:
-//SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-  jmp main__B3
-//SEG7 [2] phi from main::@11 to main::@3
-main__B3_from_B11:
-//SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
-  ldx #$19
-//SEG9 [2] phi from main::@3 to main::@3
-main__B3_from_B3:
-//SEG10 [2] phi from main::@6 to main::@3
-main__B3_from_B6:
-//SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
-//SEG12 main::@3
-main__B3:
-//SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$fe
-  bne main__B3_from_B3
-//SEG15 main::@4
-main__B4:
-//SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
-  lda $d012
-//SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
-  cmp #$ff
-  bne main__B4
-//SEG18 main::@6
-main__B6:
-//SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
-  dex
-//SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne main__B3_from_B6
-//SEG21 main::@7
-main__B7:
-//SEG22 [9] call flip param-assignment [ ]
-  jsr flip
-//SEG23 main::@10
-main__B10:
-//SEG24 [10] call plot param-assignment [ ]
-  jsr plot
-//SEG25 main::@11
-main__B11:
-//SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
-  jmp main__B3_from_B11
-//SEG27 main::@return
-main__Breturn:
-//SEG28 [12] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call prepare param-assignment [ ]
+    jsr prepare
+  //SEG5 [2] phi from main to main::@3
+  b3_from_main:
+  //SEG6 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+    jmp b3
+  //SEG7 [2] phi from main::@11 to main::@3
+  b3_from_b11:
+  //SEG8 [2] phi (byte) main::c#2 = (byte) 25 -- xby=coby1 
+    ldx #$19
+  //SEG9 [2] phi from main::@3 to main::@3
+  b3_from_b3:
+  //SEG10 [2] phi from main::@6 to main::@3
+  b3_from_b6:
+  //SEG11 [2] phi (byte) main::c#2 = (byte) main::c#1 -- register_copy 
+  //SEG12 main::@3
+  b3:
+  //SEG13 [3] (byte~) main::$1 ← * (word) 53266 [ main::$1 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG14 [4] if((byte~) main::$1!=(byte) 254) goto main::@3 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$fe
+    bne b3_from_b3
+  //SEG15 main::@4
+  b4:
+  //SEG16 [5] (byte~) main::$3 ← * (word) 53266 [ main::$3 main::c#2 ] -- aby=_star_cowo1 
+    lda $d012
+  //SEG17 [6] if((byte~) main::$3!=(byte) 255) goto main::@4 [ main::c#2 ] -- aby_neq_coby1_then_la1 
+    cmp #$ff
+    bne b4
+  //SEG18 main::@6
+  b6:
+  //SEG19 [7] (byte) main::c#1 ← -- (byte) main::c#2 [ main::c#1 ] -- xby=_dec_xby 
+    dex
+  //SEG20 [8] if((byte) main::c#1!=(byte) 0) goto main::@3 [ main::c#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b6
+  //SEG21 main::@7
+  b7:
+  //SEG22 [9] call flip param-assignment [ ]
+    jsr flip
+  //SEG23 main::@10
+  b10:
+  //SEG24 [10] call plot param-assignment [ ]
+    jsr plot
+  //SEG25 main::@11
+  b11:
+  //SEG26 [11] if(true) goto main::@3 [ ] -- true_then_la1 
+    jmp b3_from_b11
+  //SEG27 main::@return
+  breturn:
+  //SEG28 [12] return  [ ]
+    rts
+}
 //SEG29 plot
-plot:
-//SEG30 [13] phi from plot to plot::@1
-plot__B1_from_plot:
-//SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
-  lda #<$4d4
-  sta $2
-  lda #>$4d4
-  sta $2+$1
-//SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG34 [13] phi from plot::@3 to plot::@1
-plot__B1_from_B3:
-//SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
-//SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
-//SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
-//SEG38 plot::@1
-plot__B1:
-//SEG39 [14] phi from plot::@1 to plot::@2
-plot__B2_from_B1:
-//SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
-//SEG42 [14] phi from plot::@2 to plot::@2
-plot__B2_from_B2:
-//SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
-//SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
-//SEG45 plot::@2
-plot__B2:
-//SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
-  sta ($2),y
-//SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
-  inx
-//SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
-  iny
-//SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
-  cpy #$10
-  bcc plot__B2_from_B2
-//SEG51 plot::@3
-plot__B3:
-//SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $2
-  clc
-  adc #$28
-  sta $2
-  bcc !+
-  inc $2+$1
-!:
-//SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne plot__B1_from_B3
-//SEG55 plot::@return
-plot__Breturn:
-//SEG56 [23] return  [ ]
-  rts
+plot: {
+  //SEG30 [13] phi from plot to plot::@1
+  b1_from_plot:
+  //SEG31 [13] phi (byte) plot::y#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG32 [13] phi (byte*) plot::line#2 = (word) 1236 -- zpptrby1=cowo1 
+    lda #<$4d4
+    sta $2
+    lda #>$4d4
+    sta $2+$1
+  //SEG33 [13] phi (byte) plot::i#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG34 [13] phi from plot::@3 to plot::@1
+  b1_from_b3:
+  //SEG35 [13] phi (byte) plot::y#2 = (byte) plot::y#1 -- register_copy 
+  //SEG36 [13] phi (byte*) plot::line#2 = (byte*) plot::line#1 -- register_copy 
+  //SEG37 [13] phi (byte) plot::i#3 = (byte) plot::i#1 -- register_copy 
+  //SEG38 plot::@1
+  b1:
+  //SEG39 [14] phi from plot::@1 to plot::@2
+  b2_from_b1:
+  //SEG40 [14] phi (byte) plot::x#2 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG41 [14] phi (byte) plot::i#2 = (byte) plot::i#3 -- register_copy 
+  //SEG42 [14] phi from plot::@2 to plot::@2
+  b2_from_b2:
+  //SEG43 [14] phi (byte) plot::x#2 = (byte) plot::x#1 -- register_copy 
+  //SEG44 [14] phi (byte) plot::i#2 = (byte) plot::i#1 -- register_copy 
+  //SEG45 plot::@2
+  b2:
+  //SEG46 [15] (byte~) plot::$3 ← (word) 4096 *idx (byte) plot::i#2 [ plot::i#2 plot::line#2 plot::x#2 plot::$3 plot::y#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG47 [16] *((byte*) plot::line#2 + (byte) plot::x#2) ← (byte~) plot::$3 [ plot::i#2 plot::line#2 plot::x#2 plot::y#2 ] -- zpptrby1_staridx_yby=aby 
+    sta ($2),y
+  //SEG48 [17] (byte) plot::i#1 ← ++ (byte) plot::i#2 [ plot::i#1 plot::line#2 plot::x#2 plot::y#2 ] -- xby=_inc_xby 
+    inx
+  //SEG49 [18] (byte) plot::x#1 ← ++ (byte) plot::x#2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby=_inc_yby 
+    iny
+  //SEG50 [19] if((byte) plot::x#1<(byte) 16) goto plot::@2 [ plot::i#1 plot::x#1 plot::line#2 plot::y#2 ] -- yby_lt_coby1_then_la1 
+    cpy #$10
+    bcc b2_from_b2
+  //SEG51 plot::@3
+  b3:
+  //SEG52 [20] (byte*) plot::line#1 ← (byte*) plot::line#2 + (byte) 40 [ plot::i#1 plot::line#1 plot::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $2
+    clc
+    adc #$28
+    sta $2
+    bcc !+
+    inc $2+$1
+  !:
+  //SEG53 [21] (byte) plot::y#1 ← -- (byte) plot::y#2 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG54 [22] if((byte) plot::y#1!=(byte) 0) goto plot::@1 [ plot::i#1 plot::line#1 plot::y#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG55 plot::@return
+  breturn:
+  //SEG56 [23] return  [ ]
+    rts
+}
 //SEG57 flip
-flip:
-//SEG58 [24] phi from flip to flip::@1
-flip__B1_from_flip:
-//SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $4
-//SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
-  ldy #$f
-//SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG62 [24] phi from flip::@4 to flip::@1
-flip__B1_from_B4:
-//SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
-//SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
-//SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG66 flip::@1
-flip__B1:
-//SEG67 [25] phi from flip::@1 to flip::@2
-flip__B2_from_B1:
-//SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
-  lda #$10
-  sta $5
-//SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
-//SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
-//SEG71 [25] phi from flip::@2 to flip::@2
-flip__B2_from_B2:
-//SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
-//SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
-//SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
-//SEG75 flip::@2
-flip__B2:
-//SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
-  lda $1000,x
-//SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
-  sta $1100,y
-//SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
-  inx
-//SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
-  tya
-  clc
-  adc #$10
-  tay
-//SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
-  lda $5
-  bne flip__B2_from_B2
-//SEG82 flip::@4
-flip__B4:
-//SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
-  dey
-//SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
-  lda $4
-  bne flip__B1_from_B4
-//SEG86 [35] phi from flip::@4 to flip::@3
-flip__B3_from_B4:
-//SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG88 [35] phi from flip::@3 to flip::@3
-flip__B3_from_B3:
-//SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
-//SEG90 flip::@3
-flip__B3:
-//SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
-  lda $1100,x
-//SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
-  sta $1000,x
-//SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne flip__B3_from_B3
-//SEG95 flip::@return
-flip__Breturn:
-//SEG96 [40] return  [ ]
-  rts
+flip: {
+  //SEG58 [24] phi from flip to flip::@1
+  b1_from_flip:
+  //SEG59 [24] phi (byte) flip::r#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $4
+  //SEG60 [24] phi (byte) flip::dstIdx#5 = (byte) 15 -- yby=coby1 
+    ldy #$f
+  //SEG61 [24] phi (byte) flip::srcIdx#3 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG62 [24] phi from flip::@4 to flip::@1
+  b1_from_b4:
+  //SEG63 [24] phi (byte) flip::r#2 = (byte) flip::r#1 -- register_copy 
+  //SEG64 [24] phi (byte) flip::dstIdx#5 = (byte) flip::dstIdx#2 -- register_copy 
+  //SEG65 [24] phi (byte) flip::srcIdx#3 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG66 flip::@1
+  b1:
+  //SEG67 [25] phi from flip::@1 to flip::@2
+  b2_from_b1:
+  //SEG68 [25] phi (byte) flip::c#2 = (byte) 16 -- zpby1=coby1 
+    lda #$10
+    sta $5
+  //SEG69 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#5 -- register_copy 
+  //SEG70 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#3 -- register_copy 
+  //SEG71 [25] phi from flip::@2 to flip::@2
+  b2_from_b2:
+  //SEG72 [25] phi (byte) flip::c#2 = (byte) flip::c#1 -- register_copy 
+  //SEG73 [25] phi (byte) flip::dstIdx#3 = (byte) flip::dstIdx#1 -- register_copy 
+  //SEG74 [25] phi (byte) flip::srcIdx#2 = (byte) flip::srcIdx#1 -- register_copy 
+  //SEG75 flip::@2
+  b2:
+  //SEG76 [26] (byte~) flip::$0 ← (word) 4096 *idx (byte) flip::srcIdx#2 [ flip::srcIdx#2 flip::dstIdx#3 flip::$0 flip::c#2 flip::r#2 ] -- aby=cowo1_staridx_xby 
+    lda $1000,x
+  //SEG77 [27] *((word) 4352 + (byte) flip::dstIdx#3) ← (byte~) flip::$0 [ flip::srcIdx#2 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- cowo1_staridx_yby=aby 
+    sta $1100,y
+  //SEG78 [28] (byte) flip::srcIdx#1 ← ++ (byte) flip::srcIdx#2 [ flip::srcIdx#1 flip::dstIdx#3 flip::c#2 flip::r#2 ] -- xby=_inc_xby 
+    inx
+  //SEG79 [29] (byte) flip::dstIdx#1 ← (byte) flip::dstIdx#3 + (byte) 16 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#2 flip::r#2 ] -- yby=yby_plus_coby1 
+    tya
+    clc
+    adc #$10
+    tay
+  //SEG80 [30] (byte) flip::c#1 ← -- (byte) flip::c#2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG81 [31] if((byte) flip::c#1!=(byte) 0) goto flip::@2 [ flip::srcIdx#1 flip::dstIdx#1 flip::c#1 flip::r#2 ] -- zpby1_neq_0_then_la1 
+    lda $5
+    bne b2_from_b2
+  //SEG82 flip::@4
+  b4:
+  //SEG83 [32] (byte) flip::dstIdx#2 ← -- (byte) flip::dstIdx#1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#2 ] -- yby=_dec_yby 
+    dey
+  //SEG84 [33] (byte) flip::r#1 ← -- (byte) flip::r#2 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG85 [34] if((byte) flip::r#1!=(byte) 0) goto flip::@1 [ flip::srcIdx#1 flip::dstIdx#2 flip::r#1 ] -- zpby1_neq_0_then_la1 
+    lda $4
+    bne b1_from_b4
+  //SEG86 [35] phi from flip::@4 to flip::@3
+  b3_from_b4:
+  //SEG87 [35] phi (byte) flip::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG88 [35] phi from flip::@3 to flip::@3
+  b3_from_b3:
+  //SEG89 [35] phi (byte) flip::i#2 = (byte) flip::i#1 -- register_copy 
+  //SEG90 flip::@3
+  b3:
+  //SEG91 [36] (byte~) flip::$4 ← (word) 4352 *idx (byte) flip::i#2 [ flip::i#2 flip::$4 ] -- aby=cowo1_staridx_xby 
+    lda $1100,x
+  //SEG92 [37] *((word) 4096 + (byte) flip::i#2) ← (byte~) flip::$4 [ flip::i#2 ] -- cowo1_staridx_xby=aby 
+    sta $1000,x
+  //SEG93 [38] (byte) flip::i#1 ← ++ (byte) flip::i#2 [ flip::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG94 [39] if((byte) flip::i#1!=(byte) 0) goto flip::@3 [ flip::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b3_from_b3
+  //SEG95 flip::@return
+  breturn:
+  //SEG96 [40] return  [ ]
+    rts
+}
 //SEG97 prepare
-prepare:
-//SEG98 [41] phi from prepare to prepare::@1
-prepare__B1_from_prepare:
-//SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG100 [41] phi from prepare::@1 to prepare::@1
-prepare__B1_from_B1:
-//SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
-//SEG102 prepare::@1
-prepare__B1:
-//SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
-  txa
-  sta $1000,x
-//SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
-  inx
-//SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
-  cpx #$0
-  bne prepare__B1_from_B1
-//SEG106 prepare::@return
-prepare__Breturn:
-//SEG107 [45] return  [ ]
-  rts
+prepare: {
+  //SEG98 [41] phi from prepare to prepare::@1
+  b1_from_prepare:
+  //SEG99 [41] phi (byte) prepare::i#2 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG100 [41] phi from prepare::@1 to prepare::@1
+  b1_from_b1:
+  //SEG101 [41] phi (byte) prepare::i#2 = (byte) prepare::i#1 -- register_copy 
+  //SEG102 prepare::@1
+  b1:
+  //SEG103 [42] *((word) 4096 + (byte) prepare::i#2) ← (byte) prepare::i#2 [ prepare::i#2 ] -- cowo1_staridx_xby=xby 
+    txa
+    sta $1000,x
+  //SEG104 [43] (byte) prepare::i#1 ← ++ (byte) prepare::i#2 [ prepare::i#1 ] -- xby=_inc_xby 
+    inx
+  //SEG105 [44] if((byte) prepare::i#1!=(byte) 0) goto prepare::@1 [ prepare::i#1 ] -- xby_neq_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG106 prepare::@return
+  breturn:
+  //SEG107 [45] return  [ ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.sym b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.sym
index 1bc0c9859..48c368387 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/flipper-rex2.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) RASTER
 (byte[1000]) SCREEN
 (byte[256]) buffer1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.asm b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.asm
index 945fea1de..8f0d5455c 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.asm
@@ -1,22 +1,22 @@
-BBEGIN:
-B1_from_BBEGIN:
+bbegin:
+b1_from_bbegin:
   lda #$0
   ldx #$a
-B1_from_B3:
-B1:
+b1_from_b3:
+b1:
   cpx #$5
   beq !+
-  bcs B2
+  bcs b2
 !:
-B3_from_B1:
-B3:
+b3_from_b1:
+b3:
   dex
   cpx #$0
-  bne B1_from_B3
-BEND:
-B2:
+  bne b1_from_b3
+bend:
+b2:
   stx $ff
   clc
   adc $ff
-B3_from_B2:
-  jmp B3
+b3_from_b2:
+  jmp b3
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.cfg b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.cfg
index b779acca0..b078ca5e4 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.cfg
@@ -1,16 +1,16 @@
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  [0] (byte) s#2 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 ) [ i#2 s#2 ]
-  [0] (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 ) [ i#2 s#2 ]
+@1: from @3 @begin
+  [0] (byte) s#2 ← phi( @3/(byte) s#4 @begin/(byte) 0 ) [ i#2 s#2 ]
+  [0] (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 ) [ i#2 s#2 ]
   [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ]
   to:@3
 @3: from @1 @2
   [2] (byte) s#4 ← phi( @1/(byte) s#2 @2/(byte) s#1 ) [ s#4 i#2 ]
   [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ]
   [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @2: from @1
   [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ]
   to:@3
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.log b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.log
index 78106e2ff..ff1e22fbb 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.log
@@ -33,11 +33,11 @@ SYMBOLS
 (byte) s
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) i ← (byte) 10
   (byte) s ← (byte) 0
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   (boolean~) $0 ← (byte) i > (byte) 5
   if((boolean~) $0) goto @2
   to:@4
@@ -55,18 +55,18 @@ INITIAL CONTROL FLOW GRAPH
 @5: from
   to:@2
 @6: from @3
-  to:@END
-@END: from @6
+  to:@end
+@end: from @6
 
 Removing empty block @4
 Removing empty block @5
 Removing empty block @6
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) i ← (byte) 10
   (byte) s ← (byte) 0
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   (boolean~) $0 ← (byte) i > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -78,17 +78,17 @@ CONTROL FLOW GRAPH
   (byte) i ← -- (byte) i
   (boolean~) $2 ← (byte) i > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte) i ← (byte) 10
   (byte) s ← (byte) 0
   to:@1
-@1: from @3 @BEGIN
+@1: from @3 @begin
   (boolean~) $0 ← (byte) i > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -100,20 +100,20 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte) i ← -- (byte) i
   (boolean~) $2 ← (byte) i > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte) i#0 ← (byte) 10
   (byte) s#0 ← (byte) 0
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#3 ← phi( @3/(byte) s#4 @BEGIN/(byte) s#0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) i#0 )
+@1: from @3 @begin
+  (byte) s#3 ← phi( @3/(byte) s#4 @begin/(byte) s#0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) i#0 )
   (boolean~) $0 ← (byte) i#2 > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -129,17 +129,17 @@ CONTROL FLOW GRAPH SSA
   (byte) i#1 ← -- (byte) i#4
   (boolean~) $2 ← (byte) i#1 > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte) i#0 ← (byte) 10
   (byte) s#0 ← (byte) 0
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#3 ← phi( @3/(byte) s#4 @BEGIN/(byte) s#0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) i#0 )
+@1: from @3 @begin
+  (byte) s#3 ← phi( @3/(byte) s#4 @begin/(byte) s#0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) i#0 )
   (boolean~) $0 ← (byte) i#2 > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -155,18 +155,18 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte) i#1 ← -- (byte) i#4
   (boolean~) $2 ← (byte) i#1 > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Constant (byte) i#0 (byte) 10
 Constant (byte) s#0 (byte) 0
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#3 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 )
+@1: from @3 @begin
+  (byte) s#3 ← phi( @3/(byte) s#4 @begin/(byte) 0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 )
   (boolean~) $0 ← (byte) i#2 > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -182,19 +182,19 @@ CONTROL FLOW GRAPH
   (byte) i#1 ← -- (byte) i#4
   (boolean~) $2 ← (byte) i#1 > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Alias (byte) s#2 = (byte) s#3 
 Alias (byte) i#2 = (byte) i#3 
 Alias (byte) s#1 = (byte~) $1 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#2 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 )
+@1: from @3 @begin
+  (byte) s#2 ← phi( @3/(byte) s#4 @begin/(byte) 0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 )
   (boolean~) $0 ← (byte) i#2 > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -207,17 +207,17 @@ CONTROL FLOW GRAPH
   (byte) i#1 ← -- (byte) i#4
   (boolean~) $2 ← (byte) i#1 > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Redundant Phi (byte) i#4 (byte) i#2
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#2 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 )
+@1: from @3 @begin
+  (byte) s#2 ← phi( @3/(byte) s#4 @begin/(byte) 0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 )
   (boolean~) $0 ← (byte) i#2 > (byte) 5
   if((boolean~) $0) goto @2
   to:@3
@@ -229,18 +229,18 @@ CONTROL FLOW GRAPH
   (byte) i#1 ← -- (byte) i#2
   (boolean~) $2 ← (byte) i#1 > (byte) 0
   if((boolean~) $2) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Simple Condition (boolean~) $0 if((byte) i#2>(byte) 5) goto @2
 Simple Condition (boolean~) $2 if((byte) i#1>(byte) 0) goto @1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) s#2 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 )
-  (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 )
+@1: from @3 @begin
+  (byte) s#2 ← phi( @3/(byte) s#4 @begin/(byte) 0 )
+  (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 )
   if((byte) i#2>(byte) 5) goto @2
   to:@3
 @2: from @1
@@ -250,19 +250,19 @@ CONTROL FLOW GRAPH
   (byte) s#4 ← phi( @1/(byte) s#2 @2/(byte) s#1 )
   (byte) i#1 ← -- (byte) i#2
   if((byte) i#1>(byte) 0) goto @1
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
-Block Sequence Planned @BEGIN @1 @3 @END @2 
+Block Sequence Planned @begin @1 @3 @end @2 
 Added new block during phi lifting @7(between @3 and @1)
 Added new block during phi lifting @8(between @1 and @3)
-Block Sequence Planned @BEGIN @1 @8 @3 @END @7 @2 
+Block Sequence Planned @begin @1 @8 @3 @end @7 @2 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @7 @BEGIN
-  (byte) s#2 ← phi( @7/(byte~) s#5 @BEGIN/(byte) 0 )
-  (byte) i#2 ← phi( @7/(byte~) i#5 @BEGIN/(byte) 10 )
+@1: from @7 @begin
+  (byte) s#2 ← phi( @7/(byte~) s#5 @begin/(byte) 0 )
+  (byte) i#2 ← phi( @7/(byte~) i#5 @begin/(byte) 10 )
   if((byte) i#2>(byte) 5) goto @2
   to:@8
 @8: from @1
@@ -272,8 +272,8 @@ CONTROL FLOW GRAPH - PHI LIFTED
   (byte) s#4 ← phi( @8/(byte~) s#6 @2/(byte~) s#7 )
   (byte) i#1 ← -- (byte) i#2
   if((byte) i#1>(byte) 0) goto @7
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @7: from @3
   (byte~) i#5 ← (byte) i#1
   (byte~) s#5 ← (byte) s#4
@@ -288,11 +288,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @7 @BEGIN
-  [0] (byte) s#2 ← phi( @7/(byte~) s#5 @BEGIN/(byte) 0 ) [ i#2 s#2 ]
-  [0] (byte) i#2 ← phi( @7/(byte~) i#5 @BEGIN/(byte) 10 ) [ i#2 s#2 ]
+@1: from @7 @begin
+  [0] (byte) s#2 ← phi( @7/(byte~) s#5 @begin/(byte) 0 ) [ i#2 s#2 ]
+  [0] (byte) i#2 ← phi( @7/(byte~) i#5 @begin/(byte) 10 ) [ i#2 s#2 ]
   [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ]
   to:@8
 @8: from @1
@@ -302,8 +302,8 @@ CONTROL FLOW GRAPH - LIVE RANGES
   [3] (byte) s#4 ← phi( @8/(byte~) s#6 @2/(byte~) s#7 ) [ i#2 s#4 ]
   [4] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ]
   [5] if((byte) i#1>(byte) 0) goto @7 [ i#1 s#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @7: from @3
   [6] (byte~) i#5 ← (byte) i#1 [ i#5 s#4 ]
   [7] (byte~) s#5 ← (byte) s#4 [ i#5 s#5 ]
@@ -321,24 +321,24 @@ Coalesced [9] s#7 ← s#1
 Coalesced down to 2 phi equivalence classes
 Culled Empty Block (label) @8
 Culled Empty Block (label) @7
-Block Sequence Planned @BEGIN @1 @3 @END @2 
+Block Sequence Planned @begin @1 @3 @end @2 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  [0] (byte) s#2 ← phi( @3/(byte) s#4 @BEGIN/(byte) 0 ) [ i#2 s#2 ]
-  [0] (byte) i#2 ← phi( @3/(byte) i#1 @BEGIN/(byte) 10 ) [ i#2 s#2 ]
+@1: from @3 @begin
+  [0] (byte) s#2 ← phi( @3/(byte) s#4 @begin/(byte) 0 ) [ i#2 s#2 ]
+  [0] (byte) i#2 ← phi( @3/(byte) i#1 @begin/(byte) 10 ) [ i#2 s#2 ]
   [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ]
   to:@3
 @3: from @1 @2
   [2] (byte) s#4 ← phi( @1/(byte) s#2 @2/(byte) s#1 ) [ s#4 i#2 ]
   [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ]
   [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ]
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 @2: from @1
   [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ]
   to:@3
@@ -346,11 +346,11 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
 CALL GRAPH
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@1 dominated by  @1 @BEGIN 
-@3 dominated by  @1 @BEGIN @3 
-@END dominated by  @1 @BEGIN @3 @END 
-@2 dominated by  @1 @BEGIN @2 
+@begin dominated by  @begin 
+@1 dominated by  @1 @begin 
+@3 dominated by  @1 @3 @begin 
+@end dominated by  @1 @3 @end @begin 
+@2 dominated by  @1 @2 @begin 
 
 Found back edge: Loop head: @1 tails: @3 blocks: null
 Populated: Loop head: @1 tails: @3 blocks: @3 @1 @2 
@@ -381,55 +381,55 @@ Complete equivalence classes
 Allocated zp byte:2 to zp byte:2 [ i#2 i#1 ]
 Allocated zp byte:3 to zp byte:3 [ s#2 s#4 s#1 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) s#2 = (byte) 0 -- zpby1=coby1 
   lda #$0
   sta $3
 //SEG3 [0] phi (byte) i#2 = (byte) 10 -- zpby1=coby1 
   lda #$a
   sta $2
-  jmp B1
+  jmp b1
 //SEG4 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG5 [0] phi (byte) s#2 = (byte) s#4 -- register_copy 
 //SEG6 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
-  jmp B1
+  jmp b1
 //SEG7 @1
-B1:
+b1:
 //SEG8 [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ] -- zpby1_gt_coby1_then_la1 
   lda $2
   cmp #$5
   beq !+
-  bcs B2
+  bcs b2
 !:
 //SEG9 [2] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG10 [2] phi (byte) s#4 = (byte) s#2 -- register_copy 
-  jmp B3
+  jmp b3
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ] -- zpby1=_dec_zpby1 
   dec $2
 //SEG13 [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ] -- zpby1_gt_0_then_la1 
   lda $2
-  bne B1_from_B3
-  jmp BEND
-//SEG14 @END
-BEND:
+  bne b1_from_b3
+  jmp bend
+//SEG14 @end
+bend:
 //SEG15 @2
-B2:
+b2:
 //SEG16 [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ] -- zpby1=zpby1_plus_zpby2 
   lda $3
   clc
   adc $2
   sta $3
 //SEG17 [2] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG18 [2] phi (byte) s#4 = (byte) s#1 -- register_copy 
-  jmp B3
+  jmp b3
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ i#2 i#1 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -439,105 +439,105 @@ REGISTER UPLIFT SCOPES
 Uplift Scope [] 49.5: zp byte:3 [ s#2 s#4 s#1 ] 27.5: zp byte:2 [ i#2 i#1 ] 
 
 Uplifting [] best 405 combination reg byte a [ s#2 s#4 s#1 ] reg byte x [ i#2 i#1 ] 
-Removing instruction jmp B1
-Removing instruction jmp B3
-Removing instruction jmp BEND
+Removing instruction jmp b1
+Removing instruction jmp b3
+Removing instruction jmp bend
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) s#2 = (byte) 0 -- aby=coby1 
   lda #$0
 //SEG3 [0] phi (byte) i#2 = (byte) 10 -- xby=coby1 
   ldx #$a
-  jmp B1
+  jmp b1
 //SEG4 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG5 [0] phi (byte) s#2 = (byte) s#4 -- register_copy 
 //SEG6 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG7 @1
-B1:
+b1:
 //SEG8 [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ] -- xby_gt_coby1_then_la1 
   cpx #$5
   beq !+
-  bcs B2
+  bcs b2
 !:
 //SEG9 [2] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG10 [2] phi (byte) s#4 = (byte) s#2 -- register_copy 
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ] -- xby=_dec_xby 
   dex
 //SEG13 [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ] -- xby_gt_0_then_la1 
   cpx #$0
-  bne B1_from_B3
-//SEG14 @END
-BEND:
+  bne b1_from_b3
+//SEG14 @end
+bend:
 //SEG15 @2
-B2:
+b2:
 //SEG16 [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ] -- aby=aby_plus_xby 
   stx $ff
   clc
   adc $ff
 //SEG17 [2] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG18 [2] phi (byte) s#4 = (byte) s#1 -- register_copy 
-  jmp B3
+  jmp b3
 
-Removing instruction jmp B1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) s#2 = (byte) 0 -- aby=coby1 
   lda #$0
 //SEG3 [0] phi (byte) i#2 = (byte) 10 -- xby=coby1 
   ldx #$a
 //SEG4 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG5 [0] phi (byte) s#2 = (byte) s#4 -- register_copy 
 //SEG6 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG7 @1
-B1:
+b1:
 //SEG8 [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ] -- xby_gt_coby1_then_la1 
   cpx #$5
   beq !+
-  bcs B2
+  bcs b2
 !:
 //SEG9 [2] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG10 [2] phi (byte) s#4 = (byte) s#2 -- register_copy 
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ] -- xby=_dec_xby 
   dex
 //SEG13 [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ] -- xby_gt_0_then_la1 
   cpx #$0
-  bne B1_from_B3
-//SEG14 @END
-BEND:
+  bne b1_from_b3
+//SEG14 @end
+bend:
 //SEG15 @2
-B2:
+b2:
 //SEG16 [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ] -- aby=aby_plus_xby 
   stx $ff
   clc
   adc $ff
 //SEG17 [2] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG18 [2] phi (byte) s#4 = (byte) s#1 -- register_copy 
-  jmp B3
+  jmp b3
 
 FINAL SYMBOL TABLE
 (label) @1
 (label) @2
 (label) @3
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) i
 (byte) i#1 reg byte x 16.5
 (byte) i#2 reg byte x 11.0
@@ -550,45 +550,45 @@ reg byte x [ i#2 i#1 ]
 reg byte a [ s#2 s#4 s#1 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) s#2 = (byte) 0 -- aby=coby1 
   lda #$0
 //SEG3 [0] phi (byte) i#2 = (byte) 10 -- xby=coby1 
   ldx #$a
 //SEG4 [0] phi from @3 to @1
-B1_from_B3:
+b1_from_b3:
 //SEG5 [0] phi (byte) s#2 = (byte) s#4 -- register_copy 
 //SEG6 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG7 @1
-B1:
+b1:
 //SEG8 [1] if((byte) i#2>(byte) 5) goto @2 [ i#2 s#2 ] -- xby_gt_coby1_then_la1 
   cpx #$5
   beq !+
-  bcs B2
+  bcs b2
 !:
 //SEG9 [2] phi from @1 to @3
-B3_from_B1:
+b3_from_b1:
 //SEG10 [2] phi (byte) s#4 = (byte) s#2 -- register_copy 
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) i#1 ← -- (byte) i#2 [ i#1 s#4 ] -- xby=_dec_xby 
   dex
 //SEG13 [4] if((byte) i#1>(byte) 0) goto @1 [ i#1 s#4 ] -- xby_gt_0_then_la1 
   cpx #$0
-  bne B1_from_B3
-//SEG14 @END
-BEND:
+  bne b1_from_b3
+//SEG14 @end
+bend:
 //SEG15 @2
-B2:
+b2:
 //SEG16 [5] (byte) s#1 ← (byte) s#2 + (byte) i#2 [ i#2 s#1 ] -- aby=aby_plus_xby 
   stx $ff
   clc
   adc $ff
 //SEG17 [2] phi from @2 to @3
-B3_from_B2:
+b3_from_b2:
 //SEG18 [2] phi (byte) s#4 = (byte) s#1 -- register_copy 
-  jmp B3
+  jmp b3
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.sym b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.sym
index df7eb690f..049b5041c 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopmin.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopmin.sym
@@ -1,8 +1,8 @@
 (label) @1
 (label) @2
 (label) @3
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) i
 (byte) i#1 reg byte x 16.5
 (byte) i#2 reg byte x 11.0
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.asm b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.asm
index 0ebc60fa9..2511a4484 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.asm
@@ -1,26 +1,28 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-main__B1_from_main:
-  ldy #$64
-main__B1_from_B3:
-main__B1:
-  jsr nest
-main__B3:
-  dey
-  cpy #$0
-  bne main__B1_from_B3
-main__Breturn:
-  rts
-nest:
-nest__B1_from_nest:
-  ldx #$64
-nest__B1_from_B1:
-nest__B1:
-  stx $400
-  dex
-  cpx #$0
-  bne nest__B1_from_B1
-nest__Breturn:
-  rts
+bend:
+main: {
+  b1_from_main:
+    ldy #$64
+  b1_from_b3:
+  b1:
+    jsr nest
+  b3:
+    dey
+    cpy #$0
+    bne b1_from_b3
+  breturn:
+    rts
+}
+nest: {
+  b1_from_nest:
+    ldx #$64
+  b1_from_b1:
+  b1:
+    stx $400
+    dex
+    cpx #$0
+    bne b1_from_b1
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.cfg b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.cfg
index 71c51cb40..880c2c746 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 ) [ main::i#2 ]
@@ -14,7 +14,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -25,4 +25,4 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   [10] return  [ main::i#2 ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log
index 10cd894fb..40b0e3905 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.log
@@ -58,7 +58,7 @@ SYMBOLS
 (byte) nest::j
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
   to:@1
@@ -75,8 +75,8 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 nest: from
   (byte) nest::j ← (byte) 100
@@ -91,20 +91,20 @@ nest::@2: from nest::@1
   to:nest::@return
 nest::@return: from nest::@2
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
-  to:@END
-@END: from @2
+  to:@end
+@end: from @2
 
 Removing empty block main::@2
 Removing empty block @1
 Removing empty block nest::@2
 Removing empty block @2
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (byte) main::i ← (byte) 100
   to:main::@1
@@ -116,7 +116,7 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
+  to:@return
 nest: from
   (byte) nest::j ← (byte) 100
   to:nest::@1
@@ -128,19 +128,19 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
+@3: from @begin
+  to:@end
+main: from @begin
   (byte) main::i ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -153,7 +153,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   (byte) nest::j ← (byte) 100
   to:nest::@1
@@ -165,22 +165,22 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#4 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@3: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -197,7 +197,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#3 )
   (byte) nest::j#0 ← (byte) 100
@@ -212,18 +212,18 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#4 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@3: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -240,7 +240,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#3 )
   (byte) nest::j#0 ← (byte) 100
@@ -255,18 +255,18 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Culled Empty Block (label) @3
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#4 ← phi( @BEGIN/(byte*) SCREEN#0 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#4 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -283,7 +283,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#3 )
   (byte) nest::j#0 ← (byte) 100
@@ -298,19 +298,19 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) SCREEN#0 (word) 1024
 Constant (byte) main::i#0 (byte) 100
 Constant (byte) nest::j#0 (byte) 100
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#4 ← phi( @BEGIN/(word) 1024 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#4 ← phi( @begin/(word) 1024 )
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#3 ← phi( main/(byte*) SCREEN#4 main::@3/(byte*) SCREEN#5 )
@@ -326,7 +326,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   (byte*) SCREEN#2 ← phi( main::@1/(byte*) SCREEN#3 )
   to:nest::@1
@@ -340,18 +340,18 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte) main::i#2 = (byte) main::i#3 
 Alias (byte*) SCREEN#2 = (byte*) SCREEN#5 (byte*) SCREEN#3 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#4 ← phi( @BEGIN/(word) 1024 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#4 ← phi( @begin/(word) 1024 )
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#2 ← phi( main/(byte*) SCREEN#4 main::@3/(byte*) SCREEN#2 )
@@ -365,7 +365,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -378,16 +378,16 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte*) SCREEN#4 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#2 ← phi( main/(word) 1024 main::@3/(byte*) SCREEN#2 )
@@ -401,7 +401,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -414,17 +414,17 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte*) SCREEN#2
 Self Phi Eliminated (byte*) SCREEN#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#2 ← phi( main/(word) 1024 )
@@ -438,7 +438,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -451,17 +451,17 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$1 if((byte) main::i#1>(byte) 0) goto main::@1
 Simple Condition (boolean~) nest::$0 if((byte) nest::j#1>(byte) 0) goto nest::@1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#2 ← phi( main/(word) 1024 )
@@ -474,7 +474,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -486,16 +486,16 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) SCREEN#2 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 )
@@ -507,7 +507,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -519,16 +519,16 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte*) SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 )
@@ -540,7 +540,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -551,19 +551,19 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
-Block Sequence Planned @BEGIN @END main main::@1 main::@3 main::@return nest nest::@1 nest::@return 
+Block Sequence Planned @begin @end main main::@1 main::@3 main::@return nest nest::@1 nest::@return 
 Added new block during phi lifting main::@4(between main::@3 and main::@1)
 Added new block during phi lifting nest::@3(between nest::@1 and nest::@1)
-Block Sequence Planned @BEGIN @END main main::@1 main::@3 main::@return main::@4 nest nest::@1 nest::@return nest::@3 
+Block Sequence Planned @begin @end main main::@1 main::@3 main::@return main::@4 nest nest::@1 nest::@return nest::@3 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4
   (byte) main::i#2 ← phi( main/(byte) 100 main::@4/(byte~) main::i#4 )
@@ -575,7 +575,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 main::@4: from main::@3
   (byte~) main::i#4 ← (byte) main::i#1
   to:main::@1
@@ -589,7 +589,7 @@ nest::@1: from nest nest::@3
   to:nest::@return
 nest::@return: from nest::@1
   return 
-  to:@RETURN
+  to:@return
 nest::@3: from nest::@1
   (byte~) nest::j#3 ← (byte) nest::j#1
   to:nest::@1
@@ -603,11 +603,11 @@ Propagating live ranges...
 Propagated main::i#2 through call [2] call nest param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@4/(byte~) main::i#4 ) [ main::i#2 ]
@@ -619,7 +619,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 main::@4: from main::@3
   [6] (byte~) main::i#4 ← (byte) main::i#1 [ main::i#4 ]
   to:main::@1
@@ -633,7 +633,7 @@ nest::@1: from nest nest::@3
   to:nest::@return
 nest::@return: from nest::@1
   [11] return  [ main::i#2 ]
-  to:@RETURN
+  to:@return
 nest::@3: from nest::@1
   [12] (byte~) nest::j#3 ← (byte) nest::j#1 [ main::i#2 nest::j#3 ]
   to:nest::@1
@@ -644,7 +644,7 @@ Coalesced [12] nest::j#3 ← nest::j#1
 Coalesced down to 2 phi equivalence classes
 Culled Empty Block (label) main::@4
 Culled Empty Block (label) nest::@3
-Block Sequence Planned @BEGIN @END main main::@1 main::@3 main::@return nest nest::@1 nest::@return 
+Block Sequence Planned @begin @end main main::@1 main::@3 main::@return nest nest::@1 nest::@return 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -654,11 +654,11 @@ Propagating live ranges...
 Propagated main::i#2 through call [2] call nest param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 ) [ main::i#2 ]
@@ -670,7 +670,7 @@ main::@3: from main::@1
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 nest: from main::@1
   to:nest::@1
 nest::@1: from nest nest::@1
@@ -681,22 +681,22 @@ nest::@1: from nest nest::@1
   to:nest::@return
 nest::@return: from nest::@1
   [10] return  [ main::i#2 ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 Calls in [main] to 2:nest 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@3 dominated by  @BEGIN main::@1 main::@3 main 
-main::@return dominated by  @BEGIN main::@return main::@1 main::@3 main 
-nest dominated by  @BEGIN nest main::@1 main 
-nest::@1 dominated by  @BEGIN nest main::@1 nest::@1 main 
-nest::@return dominated by  @BEGIN nest::@return nest main::@1 nest::@1 main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@3 dominated by  @begin main::@1 main::@3 main 
+main::@return dominated by  main::@return @begin main::@1 main::@3 main 
+nest dominated by  @begin nest main::@1 main 
+nest::@1 dominated by  @begin nest main::@1 nest::@1 main 
+nest::@return dominated by  nest::@return @begin nest main::@1 nest::@1 main 
 
 Found back edge: Loop head: main::@1 tails: main::@3 blocks: null
 Found back edge: Loop head: nest::@1 tails: nest::@1 blocks: null
@@ -736,69 +736,71 @@ Complete equivalence classes
 Allocated zp byte:2 to zp byte:2 [ main::i#2 main::i#1 ]
 Allocated zp byte:3 to zp byte:3 [ nest::j#2 nest::j#1 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-  jmp main__B1
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] call nest param-assignment [ main::i#2 ]
-  jsr nest
-  jmp main__B3
-//SEG10 main::@3
-main__B3:
-//SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B1_from_B3
-  jmp main__Breturn
-//SEG13 main::@return
-main__Breturn:
-//SEG14 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+    jmp b1
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+    jmp b1
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] call nest param-assignment [ main::i#2 ]
+    jsr nest
+    jmp b3
+  //SEG10 main::@3
+  b3:
+  //SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b1_from_b3
+    jmp breturn
+  //SEG13 main::@return
+  breturn:
+  //SEG14 [5] return  [ ]
+    rts
+}
 //SEG15 nest
-nest:
-//SEG16 [6] phi from nest to nest::@1
-nest__B1_from_nest:
-//SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $3
-  jmp nest__B1
-//SEG18 [6] phi from nest::@1 to nest::@1
-nest__B1_from_B1:
-//SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
-  jmp nest__B1
-//SEG20 nest::@1
-nest__B1:
-//SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=zpby1 
-  lda $3
-  sta $400
-//SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- zpby1=_dec_zpby1 
-  dec $3
-//SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- zpby1_gt_0_then_la1 
-  lda $3
-  bne nest__B1_from_B1
-  jmp nest__Breturn
-//SEG24 nest::@return
-nest__Breturn:
-//SEG25 [10] return  [ main::i#2 ]
-  rts
+nest: {
+  //SEG16 [6] phi from nest to nest::@1
+  b1_from_nest:
+  //SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $3
+    jmp b1
+  //SEG18 [6] phi from nest::@1 to nest::@1
+  b1_from_b1:
+  //SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
+    jmp b1
+  //SEG20 nest::@1
+  b1:
+  //SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=zpby1 
+    lda $3
+    sta $400
+  //SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- zpby1=_dec_zpby1 
+    dec $3
+  //SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- zpby1_gt_0_then_la1 
+    lda $3
+    bne b1_from_b1
+    jmp breturn
+  //SEG24 nest::@return
+  breturn:
+  //SEG25 [10] return  [ main::i#2 ]
+    rts
+}
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ main::i#2 main::i#1 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -812,129 +814,133 @@ Uplift Scope []
 Uplifting [nest] best 2506 combination reg byte x [ nest::j#2 nest::j#1 ] 
 Uplifting [main] best 2436 combination reg byte y [ main::i#2 main::i#1 ] 
 Uplifting [] best 2436 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__B3
-Removing instruction jmp main__Breturn
-Removing instruction jmp nest__B1
-Removing instruction jmp nest__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-  jmp main__B1
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] call nest param-assignment [ main::i#2 ]
-  jsr nest
-//SEG10 main::@3
-main__B3:
-//SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
-  dey
-//SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne main__B1_from_B3
-//SEG13 main::@return
-main__Breturn:
-//SEG14 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+    jmp b1
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] call nest param-assignment [ main::i#2 ]
+    jsr nest
+  //SEG10 main::@3
+  b3:
+  //SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
+    dey
+  //SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b1_from_b3
+  //SEG13 main::@return
+  breturn:
+  //SEG14 [5] return  [ ]
+    rts
+}
 //SEG15 nest
-nest:
-//SEG16 [6] phi from nest to nest::@1
-nest__B1_from_nest:
-//SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-  jmp nest__B1
-//SEG18 [6] phi from nest::@1 to nest::@1
-nest__B1_from_B1:
-//SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
-//SEG20 nest::@1
-nest__B1:
-//SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
-  stx $400
-//SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
-  dex
-//SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest__B1_from_B1
-//SEG24 nest::@return
-nest__Breturn:
-//SEG25 [10] return  [ main::i#2 ]
-  rts
+nest: {
+  //SEG16 [6] phi from nest to nest::@1
+  b1_from_nest:
+  //SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+    jmp b1
+  //SEG18 [6] phi from nest::@1 to nest::@1
+  b1_from_b1:
+  //SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
+  //SEG20 nest::@1
+  b1:
+  //SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
+    stx $400
+  //SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
+    dex
+  //SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG24 nest::@return
+  breturn:
+  //SEG25 [10] return  [ main::i#2 ]
+    rts
+}
 
-Removing instruction jmp main__B1
-Removing instruction jmp nest__B1
+Removing instruction jmp b1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] call nest param-assignment [ main::i#2 ]
-  jsr nest
-//SEG10 main::@3
-main__B3:
-//SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
-  dey
-//SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne main__B1_from_B3
-//SEG13 main::@return
-main__Breturn:
-//SEG14 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] call nest param-assignment [ main::i#2 ]
+    jsr nest
+  //SEG10 main::@3
+  b3:
+  //SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
+    dey
+  //SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b1_from_b3
+  //SEG13 main::@return
+  breturn:
+  //SEG14 [5] return  [ ]
+    rts
+}
 //SEG15 nest
-nest:
-//SEG16 [6] phi from nest to nest::@1
-nest__B1_from_nest:
-//SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG18 [6] phi from nest::@1 to nest::@1
-nest__B1_from_B1:
-//SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
-//SEG20 nest::@1
-nest__B1:
-//SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
-  stx $400
-//SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
-  dex
-//SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest__B1_from_B1
-//SEG24 nest::@return
-nest__Breturn:
-//SEG25 [10] return  [ main::i#2 ]
-  rts
+nest: {
+  //SEG16 [6] phi from nest to nest::@1
+  b1_from_nest:
+  //SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG18 [6] phi from nest::@1 to nest::@1
+  b1_from_b1:
+  //SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
+  //SEG20 nest::@1
+  b1:
+  //SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
+    stx $400
+  //SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
+    dex
+  //SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG24 nest::@return
+  breturn:
+  //SEG25 [10] return  [ main::i#2 ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@1
@@ -954,56 +960,58 @@ reg byte y [ main::i#2 main::i#1 ]
 reg byte x [ nest::j#2 nest::j#1 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] call nest param-assignment [ main::i#2 ]
-  jsr nest
-//SEG10 main::@3
-main__B3:
-//SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
-  dey
-//SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne main__B1_from_B3
-//SEG13 main::@return
-main__Breturn:
-//SEG14 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] call nest param-assignment [ main::i#2 ]
+    jsr nest
+  //SEG10 main::@3
+  b3:
+  //SEG11 [3] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- yby=_dec_yby 
+    dey
+  //SEG12 [4] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b1_from_b3
+  //SEG13 main::@return
+  breturn:
+  //SEG14 [5] return  [ ]
+    rts
+}
 //SEG15 nest
-nest:
-//SEG16 [6] phi from nest to nest::@1
-nest__B1_from_nest:
-//SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG18 [6] phi from nest::@1 to nest::@1
-nest__B1_from_B1:
-//SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
-//SEG20 nest::@1
-nest__B1:
-//SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
-  stx $400
-//SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
-  dex
-//SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest__B1_from_B1
-//SEG24 nest::@return
-nest__Breturn:
-//SEG25 [10] return  [ main::i#2 ]
-  rts
+nest: {
+  //SEG16 [6] phi from nest to nest::@1
+  b1_from_nest:
+  //SEG17 [6] phi (byte) nest::j#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG18 [6] phi from nest::@1 to nest::@1
+  b1_from_b1:
+  //SEG19 [6] phi (byte) nest::j#2 = (byte) nest::j#1 -- register_copy 
+  //SEG20 nest::@1
+  b1:
+  //SEG21 [7] *((word) 1024) ← (byte) nest::j#2 [ main::i#2 nest::j#2 ] -- _star_cowo1=xby 
+    stx $400
+  //SEG22 [8] (byte) nest::j#1 ← -- (byte) nest::j#2 [ main::i#2 nest::j#1 ] -- xby=_dec_xby 
+    dex
+  //SEG23 [9] if((byte) nest::j#1>(byte) 0) goto nest::@1 [ main::i#2 nest::j#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b1
+  //SEG24 nest::@return
+  breturn:
+  //SEG25 [10] return  [ main::i#2 ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.sym b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.sym
index 7a7d9e76f..15982bd6e 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.asm b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.asm
index 0b8f7d9e7..fd19bef35 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.asm
@@ -1,66 +1,69 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-main__B1_from_main:
-  lda #$64
-  sta $2
-main__B1_from_B3:
-main__B1:
-main__B2_from_B1:
-  lda #$64
-  sta $3
-main__B2_from_B5:
-main__B2:
-  jsr nest1
-main__B5:
-  dec $3
-  lda $3
-  bne main__B2_from_B5
-main__B3:
-  dec $2
-  lda $2
-  bne main__B1_from_B3
-main__Breturn:
-  rts
-nest1:
-nest1__B1_from_nest1:
-  lda #$64
-  sta $4
-nest1__B1_from_B3:
-nest1__B1:
-nest1__B2_from_B1:
-  lda #$64
-nest1__B2_from_B5:
-nest1__B2:
-  jsr nest2
-nest1__B5:
-  sec
-  sbc #$1
-  cmp #$0
-  bne nest1__B2_from_B5
-nest1__B3:
-  dec $4
-  lda $4
-  bne nest1__B1_from_B3
-nest1__Breturn:
-  rts
-nest2:
-nest2__B1_from_nest2:
-  ldx #$64
-nest2__B1_from_B3:
-nest2__B1:
-nest2__B2_from_B1:
-  ldy #$64
-nest2__B2_from_B2:
-nest2__B2:
-  sty $400
-  dey
-  cpy #$0
-  bne nest2__B2_from_B2
-nest2__B3:
-  dex
-  cpx #$0
-  bne nest2__B1_from_B3
-nest2__Breturn:
-  rts
+bend:
+main: {
+  b1_from_main:
+    lda #$64
+    sta $2
+  b1_from_b3:
+  b1:
+  b2_from_b1:
+    lda #$64
+    sta $3
+  b2_from_b5:
+  b2:
+    jsr nest1
+  b5:
+    dec $3
+    lda $3
+    bne b2_from_b5
+  b3:
+    dec $2
+    lda $2
+    bne b1_from_b3
+  breturn:
+    rts
+}
+nest1: {
+  b1_from_nest1:
+    lda #$64
+    sta $4
+  b1_from_b3:
+  b1:
+  b2_from_b1:
+    lda #$64
+  b2_from_b5:
+  b2:
+    jsr nest2
+  b5:
+    sec
+    sbc #$1
+    cmp #$0
+    bne b2_from_b5
+  b3:
+    dec $4
+    lda $4
+    bne b1_from_b3
+  breturn:
+    rts
+}
+nest2: {
+  b1_from_nest2:
+    ldx #$64
+  b1_from_b3:
+  b1:
+  b2_from_b1:
+    ldy #$64
+  b2_from_b2:
+  b2:
+    sty $400
+    dey
+    cpy #$0
+    bne b2_from_b2
+  b3:
+    dex
+    cpx #$0
+    bne b1_from_b3
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.cfg b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.cfg
index adae3215e..d88eaf218 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 ) [ main::i#2 ]
@@ -21,7 +21,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -41,7 +41,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   [16] return  [ main::j#2 main::i#2 ]
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -59,4 +59,4 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log
index 82b3d1875..82cccff31 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.log
@@ -118,7 +118,7 @@ SYMBOLS
 (byte) nest2::j
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
   to:@1
@@ -143,8 +143,8 @@ main::@4: from main::@3
   to:main::@return
 main::@return: from main::@4
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 nest1: from
   (byte) nest1::i ← (byte) 100
@@ -167,7 +167,7 @@ nest1::@4: from nest1::@3
   to:nest1::@return
 nest1::@return: from nest1::@4
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
   to:@3
 nest2: from
@@ -191,10 +191,10 @@ nest2::@4: from nest2::@3
   to:nest2::@return
 nest2::@return: from nest2::@4
   return 
-  to:@RETURN
+  to:@return
 @3: from @2
-  to:@END
-@END: from @3
+  to:@end
+@end: from @3
 
 Removing empty block main::@4
 Removing empty block @1
@@ -203,10 +203,10 @@ Removing empty block @2
 Removing empty block nest2::@4
 Removing empty block @3
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (byte) main::i ← (byte) 100
   to:main::@1
@@ -226,7 +226,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from
   (byte) nest1::i ← (byte) 100
   to:nest1::@1
@@ -246,7 +246,7 @@ nest1::@3: from nest1::@2
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from
   (byte) nest2::i ← (byte) 100
   to:nest2::@1
@@ -266,19 +266,19 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   call main param-assignment
   to:@4
-@4: from @BEGIN
-  to:@END
-main: from @BEGIN
+@4: from @begin
+  to:@end
+main: from @begin
   (byte) main::i ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -299,7 +299,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   (byte) nest1::i ← (byte) 100
   to:nest1::@1
@@ -321,7 +321,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   (byte) nest2::i ← (byte) 100
   to:nest2::@1
@@ -341,8 +341,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Completing Phi functions...
 Completing Phi functions...
@@ -354,14 +354,14 @@ Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@4
-@4: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#13 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@4: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#13 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -392,7 +392,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#10 )
   (byte) nest1::i#0 ← (byte) 100
@@ -425,7 +425,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   (byte*) SCREEN#3 ← phi( nest1::@2/(byte*) SCREEN#5 )
   (byte) nest2::i#0 ← (byte) 100
@@ -453,18 +453,18 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@4
-@4: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#13 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@4: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#13 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -495,7 +495,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#10 )
   (byte) nest1::i#0 ← (byte) 100
@@ -528,7 +528,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   (byte*) SCREEN#3 ← phi( nest1::@2/(byte*) SCREEN#5 )
   (byte) nest2::i#0 ← (byte) 100
@@ -556,18 +556,18 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Culled Empty Block (label) @4
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#13 ← phi( @BEGIN/(byte*) SCREEN#0 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#13 ← phi( @begin/(byte*) SCREEN#0 )
   (byte) main::i#0 ← (byte) 100
   to:main::@1
 main::@1: from main main::@3
@@ -598,7 +598,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#10 )
   (byte) nest1::i#0 ← (byte) 100
@@ -631,7 +631,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   (byte*) SCREEN#3 ← phi( nest1::@2/(byte*) SCREEN#5 )
   (byte) nest2::i#0 ← (byte) 100
@@ -659,8 +659,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) SCREEN#0 (word) 1024
 Constant (byte) main::i#0 (byte) 100
@@ -671,11 +671,11 @@ Constant (byte) nest2::i#0 (byte) 100
 Constant (byte) nest2::j#0 (byte) 100
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#13 ← phi( @BEGIN/(word) 1024 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#13 ← phi( @begin/(word) 1024 )
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#11 ← phi( main/(byte*) SCREEN#13 main::@3/(byte*) SCREEN#14 )
@@ -704,7 +704,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   (byte*) SCREEN#8 ← phi( main::@2/(byte*) SCREEN#10 )
   to:nest1::@1
@@ -735,7 +735,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   (byte*) SCREEN#3 ← phi( nest1::@2/(byte*) SCREEN#5 )
   to:nest2::@1
@@ -761,8 +761,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte) main::j#2 = (byte) main::j#3 
 Alias (byte) main::i#2 = (byte) main::i#3 (byte) main::i#4 
@@ -774,11 +774,11 @@ Alias (byte) nest2::i#2 = (byte) nest2::i#3
 Alias (byte*) SCREEN#1 = (byte*) SCREEN#4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#13 ← phi( @BEGIN/(word) 1024 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#13 ← phi( @begin/(word) 1024 )
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#11 ← phi( main/(byte*) SCREEN#13 main::@3/(byte*) SCREEN#10 )
@@ -802,7 +802,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -827,7 +827,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -850,16 +850,16 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte*) SCREEN#13 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#11 ← phi( main/(word) 1024 main::@3/(byte*) SCREEN#10 )
@@ -883,7 +883,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -908,7 +908,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -931,8 +931,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte) main::i#2
 Self Phi Eliminated (byte*) SCREEN#10
@@ -942,10 +942,10 @@ Self Phi Eliminated (byte*) SCREEN#1
 Self Phi Eliminated (byte) nest2::i#2
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#11 ← phi( main/(word) 1024 main::@3/(byte*) SCREEN#10 )
@@ -969,7 +969,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -994,7 +994,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1017,8 +1017,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$1 if((byte) main::j#1>(byte) 0) goto main::@2
 Simple Condition (boolean~) main::$2 if((byte) main::i#1>(byte) 0) goto main::@1
@@ -1028,10 +1028,10 @@ Simple Condition (boolean~) nest2::$0 if((byte) nest2::j#1>(byte) 0) goto nest2:
 Simple Condition (boolean~) nest2::$1 if((byte) nest2::i#1>(byte) 0) goto nest2::@1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#11 ← phi( main/(word) 1024 main::@3/(byte*) SCREEN#10 )
@@ -1053,7 +1053,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1076,7 +1076,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1097,8 +1097,8 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte) main::i#2 = (byte) main::i#5 
 Alias (byte*) SCREEN#10 = (byte*) SCREEN#11 
@@ -1108,10 +1108,10 @@ Alias (byte*) SCREEN#1 = (byte*) SCREEN#2
 Alias (byte) nest2::i#2 = (byte) nest2::i#4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#10 ← phi( main/(word) 1024 main::@3/(byte*) SCREEN#10 )
@@ -1131,7 +1131,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1152,7 +1152,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1171,18 +1171,18 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte*) SCREEN#10
 Self Phi Eliminated (byte*) SCREEN#3
 Self Phi Eliminated (byte*) SCREEN#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte*) SCREEN#10 ← phi( main/(word) 1024 )
@@ -1202,7 +1202,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1223,7 +1223,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1242,16 +1242,16 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) SCREEN#10 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 )
@@ -1270,7 +1270,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1291,7 +1291,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1310,16 +1310,16 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte*) SCREEN#1 = (byte*) SCREEN#3 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 )
@@ -1338,7 +1338,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1359,7 +1359,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1377,16 +1377,16 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte*) SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 )
@@ -1405,7 +1405,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1425,7 +1425,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1443,23 +1443,23 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@5 main::@3 main::@return nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@5 main::@3 main::@return nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return 
 Added new block during phi lifting main::@6(between main::@3 and main::@1)
 Added new block during phi lifting main::@7(between main::@5 and main::@2)
 Added new block during phi lifting nest1::@6(between nest1::@3 and nest1::@1)
 Added new block during phi lifting nest1::@7(between nest1::@5 and nest1::@2)
 Added new block during phi lifting nest2::@5(between nest2::@3 and nest2::@1)
 Added new block during phi lifting nest2::@6(between nest2::@2 and nest2::@2)
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@5 main::@3 main::@return main::@6 main::@7 nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest1::@6 nest1::@7 nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return nest2::@5 nest2::@6 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@5 main::@3 main::@return main::@6 main::@7 nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest1::@6 nest1::@7 nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return nest2::@5 nest2::@6 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@6
   (byte) main::i#2 ← phi( main/(byte) 100 main::@6/(byte~) main::i#6 )
@@ -1478,7 +1478,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 main::@6: from main::@3
   (byte~) main::i#6 ← (byte) main::i#1
   to:main::@1
@@ -1504,7 +1504,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   return 
-  to:@RETURN
+  to:@return
 nest1::@6: from nest1::@3
   (byte~) nest1::i#6 ← (byte) nest1::i#1
   to:nest1::@1
@@ -1528,7 +1528,7 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   return 
-  to:@RETURN
+  to:@return
 nest2::@5: from nest2::@3
   (byte~) nest2::i#5 ← (byte) nest2::i#1
   to:nest2::@1
@@ -1598,11 +1598,11 @@ Propagated nest1::j#2 through call [13] call nest2 param-assignment
 Propagated nest1::i#2 through call [13] call nest2 param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@6
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@6/(byte~) main::i#6 ) [ main::i#2 ]
@@ -1621,7 +1621,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 main::@6: from main::@3
   [9] (byte~) main::i#6 ← (byte) main::i#1 [ main::i#6 ]
   to:main::@1
@@ -1647,7 +1647,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   [18] return  [ main::j#2 main::i#2 ]
-  to:@RETURN
+  to:@return
 nest1::@6: from nest1::@3
   [19] (byte~) nest1::i#6 ← (byte) nest1::i#1 [ main::j#2 main::i#2 nest1::i#6 ]
   to:nest1::@1
@@ -1671,7 +1671,7 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   [28] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  to:@RETURN
+  to:@return
 nest2::@5: from nest2::@3
   [29] (byte~) nest2::i#5 ← (byte) nest2::i#1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#5 ]
   to:nest2::@1
@@ -1693,7 +1693,7 @@ Culled Empty Block (label) nest1::@6
 Culled Empty Block (label) nest1::@7
 Culled Empty Block (label) nest2::@5
 Culled Empty Block (label) nest2::@6
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@5 main::@3 main::@return nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@5 main::@3 main::@return nest1 nest1::@1 nest1::@2 nest1::@5 nest1::@3 nest1::@return nest2 nest2::@1 nest2::@2 nest2::@3 nest2::@return 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -1756,11 +1756,11 @@ Propagated nest1::j#2 through call [11] call nest2 param-assignment
 Propagated nest1::i#2 through call [11] call nest2 param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@3
   [1] (byte) main::i#2 ← phi( main/(byte) 100 main::@3/(byte) main::i#1 ) [ main::i#2 ]
@@ -1779,7 +1779,7 @@ main::@3: from main::@5
   to:main::@return
 main::@return: from main::@3
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 nest1: from main::@2
   to:nest1::@1
 nest1::@1: from nest1 nest1::@3
@@ -1799,7 +1799,7 @@ nest1::@3: from nest1::@5
   to:nest1::@return
 nest1::@return: from nest1::@3
   [16] return  [ main::j#2 main::i#2 ]
-  to:@RETURN
+  to:@return
 nest2: from nest1::@2
   to:nest2::@1
 nest2::@1: from nest2 nest2::@3
@@ -1817,7 +1817,7 @@ nest2::@3: from nest2::@2
   to:nest2::@return
 nest2::@return: from nest2::@3
   [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
@@ -1825,25 +1825,25 @@ Calls in [main] to 3:nest1
 Calls in [nest1] to 11:nest2 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
-main::@5 dominated by  @BEGIN main::@2 main::@1 main::@5 main 
-main::@3 dominated by  @BEGIN main::@2 main::@1 main::@3 main main::@5 
-main::@return dominated by  @BEGIN main::@2 main::@1 main::@3 main main::@5 main::@return 
-nest1 dominated by  @BEGIN main::@2 main::@1 main nest1 
-nest1::@1 dominated by  nest1::@1 @BEGIN main::@2 main::@1 main nest1 
-nest1::@2 dominated by  nest1::@1 nest1::@2 @BEGIN main::@2 main::@1 main nest1 
-nest1::@5 dominated by  nest1::@1 @BEGIN nest1::@2 nest1::@5 main::@2 main::@1 main nest1 
-nest1::@3 dominated by  nest1::@1 @BEGIN nest1::@2 nest1::@5 nest1::@3 main::@2 main::@1 main nest1 
-nest1::@return dominated by  nest1::@1 @BEGIN nest1::@2 nest1::@5 nest1::@3 nest1::@return main::@2 main::@1 main nest1 
-nest2 dominated by  nest1::@1 @BEGIN nest1::@2 main::@2 main::@1 main nest2 nest1 
-nest2::@1 dominated by  nest1::@1 @BEGIN nest1::@2 main::@2 main::@1 main nest2 nest2::@1 nest1 
-nest2::@2 dominated by  nest1::@1 @BEGIN nest1::@2 main::@2 main::@1 main nest2::@2 nest2 nest2::@1 nest1 
-nest2::@3 dominated by  nest1::@1 @BEGIN nest1::@2 main::@2 main::@1 main nest2::@3 nest2::@2 nest2 nest2::@1 nest1 
-nest2::@return dominated by  nest1::@1 @BEGIN nest1::@2 nest2::@return main::@2 main::@1 main nest2::@3 nest2::@2 nest2 nest2::@1 nest1 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
+main::@5 dominated by  @begin main::@2 main::@1 main::@5 main 
+main::@3 dominated by  @begin main::@2 main::@1 main::@3 main main::@5 
+main::@return dominated by  @begin main::@2 main::@1 main::@3 main main::@5 main::@return 
+nest1 dominated by  @begin main::@2 main::@1 main nest1 
+nest1::@1 dominated by  nest1::@1 @begin main::@2 main::@1 main nest1 
+nest1::@2 dominated by  nest1::@1 nest1::@2 @begin main::@2 main::@1 main nest1 
+nest1::@5 dominated by  nest1::@1 nest1::@2 nest1::@5 @begin main::@2 main::@1 main nest1 
+nest1::@3 dominated by  nest1::@1 nest1::@2 nest1::@5 nest1::@3 @begin main::@2 main::@1 main nest1 
+nest1::@return dominated by  nest1::@1 nest1::@2 nest1::@5 nest1::@3 @begin nest1::@return main::@2 main::@1 main nest1 
+nest2 dominated by  nest1::@1 nest1::@2 @begin main::@2 main::@1 main nest2 nest1 
+nest2::@1 dominated by  nest1::@1 nest1::@2 @begin main::@2 main::@1 main nest2 nest2::@1 nest1 
+nest2::@2 dominated by  nest1::@1 nest1::@2 @begin main::@2 main::@1 main nest2::@2 nest2 nest2::@1 nest1 
+nest2::@3 dominated by  nest1::@1 nest1::@2 @begin main::@2 main::@1 main nest2::@3 nest2::@2 nest2 nest2::@1 nest1 
+nest2::@return dominated by  nest1::@1 nest1::@2 nest2::@return @begin main::@2 main::@1 main nest2::@3 nest2::@2 nest2 nest2::@1 nest1 
 
 Found back edge: Loop head: main::@2 tails: main::@5 blocks: null
 Found back edge: Loop head: main::@1 tails: main::@3 blocks: null
@@ -1929,158 +1929,161 @@ Allocated zp byte:5 to zp byte:5 [ nest1::j#2 nest1::j#1 ]
 Allocated zp byte:6 to zp byte:6 [ nest2::i#2 nest2::i#1 ]
 Allocated zp byte:7 to zp byte:7 [ nest2::j#2 nest2::j#1 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-  jmp main__B1
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] phi from main::@1 to main::@2
-main__B2_from_B1:
-//SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $3
-  jmp main__B2
-//SEG11 [2] phi from main::@5 to main::@2
-main__B2_from_B5:
-//SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
-  jmp main__B2
-//SEG13 main::@2
-main__B2:
-//SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
-  jsr nest1
-  jmp main__B5
-//SEG15 main::@5
-main__B5:
-//SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
-  dec $3
-//SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $3
-  bne main__B2_from_B5
-  jmp main__B3
-//SEG18 main::@3
-main__B3:
-//SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B1_from_B3
-  jmp main__Breturn
-//SEG21 main::@return
-main__Breturn:
-//SEG22 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+    jmp b1
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+    jmp b1
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] phi from main::@1 to main::@2
+  b2_from_b1:
+  //SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $3
+    jmp b2
+  //SEG11 [2] phi from main::@5 to main::@2
+  b2_from_b5:
+  //SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
+    jmp b2
+  //SEG13 main::@2
+  b2:
+  //SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
+    jsr nest1
+    jmp b5
+  //SEG15 main::@5
+  b5:
+  //SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
+    dec $3
+  //SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $3
+    bne b2_from_b5
+    jmp b3
+  //SEG18 main::@3
+  b3:
+  //SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b1_from_b3
+    jmp breturn
+  //SEG21 main::@return
+  breturn:
+  //SEG22 [8] return  [ ]
+    rts
+}
 //SEG23 nest1
-nest1:
-//SEG24 [9] phi from nest1 to nest1::@1
-nest1__B1_from_nest1:
-//SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $4
-  jmp nest1__B1
-//SEG26 [9] phi from nest1::@3 to nest1::@1
-nest1__B1_from_B3:
-//SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
-  jmp nest1__B1
-//SEG28 nest1::@1
-nest1__B1:
-//SEG29 [10] phi from nest1::@1 to nest1::@2
-nest1__B2_from_B1:
-//SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $5
-  jmp nest1__B2
-//SEG31 [10] phi from nest1::@5 to nest1::@2
-nest1__B2_from_B5:
-//SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
-  jmp nest1__B2
-//SEG33 nest1::@2
-nest1__B2:
-//SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  jsr nest2
-  jmp nest1__B5
-//SEG35 nest1::@5
-nest1__B5:
-//SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- zpby1=_dec_zpby1 
-  dec $5
-//SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $5
-  bne nest1__B2_from_B5
-  jmp nest1__B3
-//SEG38 nest1::@3
-nest1__B3:
-//SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $4
-  bne nest1__B1_from_B3
-  jmp nest1__Breturn
-//SEG41 nest1::@return
-nest1__Breturn:
-//SEG42 [16] return  [ main::j#2 main::i#2 ]
-  rts
+nest1: {
+  //SEG24 [9] phi from nest1 to nest1::@1
+  b1_from_nest1:
+  //SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $4
+    jmp b1
+  //SEG26 [9] phi from nest1::@3 to nest1::@1
+  b1_from_b3:
+  //SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
+    jmp b1
+  //SEG28 nest1::@1
+  b1:
+  //SEG29 [10] phi from nest1::@1 to nest1::@2
+  b2_from_b1:
+  //SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $5
+    jmp b2
+  //SEG31 [10] phi from nest1::@5 to nest1::@2
+  b2_from_b5:
+  //SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
+    jmp b2
+  //SEG33 nest1::@2
+  b2:
+  //SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    jsr nest2
+    jmp b5
+  //SEG35 nest1::@5
+  b5:
+  //SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- zpby1=_dec_zpby1 
+    dec $5
+  //SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $5
+    bne b2_from_b5
+    jmp b3
+  //SEG38 nest1::@3
+  b3:
+  //SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $4
+    bne b1_from_b3
+    jmp breturn
+  //SEG41 nest1::@return
+  breturn:
+  //SEG42 [16] return  [ main::j#2 main::i#2 ]
+    rts
+}
 //SEG43 nest2
-nest2:
-//SEG44 [17] phi from nest2 to nest2::@1
-nest2__B1_from_nest2:
-//SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $6
-  jmp nest2__B1
-//SEG46 [17] phi from nest2::@3 to nest2::@1
-nest2__B1_from_B3:
-//SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
-  jmp nest2__B1
-//SEG48 nest2::@1
-nest2__B1:
-//SEG49 [18] phi from nest2::@1 to nest2::@2
-nest2__B2_from_B1:
-//SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $7
-  jmp nest2__B2
-//SEG51 [18] phi from nest2::@2 to nest2::@2
-nest2__B2_from_B2:
-//SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
-  jmp nest2__B2
-//SEG53 nest2::@2
-nest2__B2:
-//SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=zpby1 
-  lda $7
-  sta $400
-//SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- zpby1=_dec_zpby1 
-  dec $7
-//SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $7
-  bne nest2__B2_from_B2
-  jmp nest2__B3
-//SEG57 nest2::@3
-nest2__B3:
-//SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- zpby1=_dec_zpby1 
-  dec $6
-//SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $6
-  bne nest2__B1_from_B3
-  jmp nest2__Breturn
-//SEG60 nest2::@return
-nest2__Breturn:
-//SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  rts
+nest2: {
+  //SEG44 [17] phi from nest2 to nest2::@1
+  b1_from_nest2:
+  //SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $6
+    jmp b1
+  //SEG46 [17] phi from nest2::@3 to nest2::@1
+  b1_from_b3:
+  //SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
+    jmp b1
+  //SEG48 nest2::@1
+  b1:
+  //SEG49 [18] phi from nest2::@1 to nest2::@2
+  b2_from_b1:
+  //SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $7
+    jmp b2
+  //SEG51 [18] phi from nest2::@2 to nest2::@2
+  b2_from_b2:
+  //SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
+    jmp b2
+  //SEG53 nest2::@2
+  b2:
+  //SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=zpby1 
+    lda $7
+    sta $400
+  //SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- zpby1=_dec_zpby1 
+    dec $7
+  //SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $7
+    bne b2_from_b2
+    jmp b3
+  //SEG57 nest2::@3
+  b3:
+  //SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- zpby1=_dec_zpby1 
+    dec $6
+  //SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $6
+    bne b1_from_b3
+    jmp breturn
+  //SEG60 nest2::@return
+  breturn:
+  //SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    rts
+}
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ main::i#2 main::i#1 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -2100,298 +2103,304 @@ Uplifting [nest2] best 23613122 combination reg byte y [ nest2::j#2 nest2::j#1 ]
 Uplifting [nest1] best 23563122 combination reg byte a [ nest1::j#2 nest1::j#1 ] zp byte:4 [ nest1::i#2 nest1::i#1 ] 
 Uplifting [main] best 23563122 combination zp byte:3 [ main::j#2 main::j#1 ] zp byte:2 [ main::i#2 main::i#1 ] 
 Uplifting [] best 23563122 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__B2
-Removing instruction jmp main__B5
-Removing instruction jmp main__B3
-Removing instruction jmp main__Breturn
-Removing instruction jmp nest1__B1
-Removing instruction jmp nest1__B2
-Removing instruction jmp nest1__B5
-Removing instruction jmp nest1__B3
-Removing instruction jmp nest1__Breturn
-Removing instruction jmp nest2__B1
-Removing instruction jmp nest2__B2
-Removing instruction jmp nest2__B3
-Removing instruction jmp nest2__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b5
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b5
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b3
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-  jmp main__B1
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] phi from main::@1 to main::@2
-main__B2_from_B1:
-//SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $3
-  jmp main__B2
-//SEG11 [2] phi from main::@5 to main::@2
-main__B2_from_B5:
-//SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
-//SEG13 main::@2
-main__B2:
-//SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
-  jsr nest1
-//SEG15 main::@5
-main__B5:
-//SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
-  dec $3
-//SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $3
-  bne main__B2_from_B5
-//SEG18 main::@3
-main__B3:
-//SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B1_from_B3
-//SEG21 main::@return
-main__Breturn:
-//SEG22 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+    jmp b1
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] phi from main::@1 to main::@2
+  b2_from_b1:
+  //SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $3
+    jmp b2
+  //SEG11 [2] phi from main::@5 to main::@2
+  b2_from_b5:
+  //SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
+  //SEG13 main::@2
+  b2:
+  //SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
+    jsr nest1
+  //SEG15 main::@5
+  b5:
+  //SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
+    dec $3
+  //SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $3
+    bne b2_from_b5
+  //SEG18 main::@3
+  b3:
+  //SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b1_from_b3
+  //SEG21 main::@return
+  breturn:
+  //SEG22 [8] return  [ ]
+    rts
+}
 //SEG23 nest1
-nest1:
-//SEG24 [9] phi from nest1 to nest1::@1
-nest1__B1_from_nest1:
-//SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $4
-  jmp nest1__B1
-//SEG26 [9] phi from nest1::@3 to nest1::@1
-nest1__B1_from_B3:
-//SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
-//SEG28 nest1::@1
-nest1__B1:
-//SEG29 [10] phi from nest1::@1 to nest1::@2
-nest1__B2_from_B1:
-//SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
-  lda #$64
-  jmp nest1__B2
-//SEG31 [10] phi from nest1::@5 to nest1::@2
-nest1__B2_from_B5:
-//SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
-//SEG33 nest1::@2
-nest1__B2:
-//SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  jsr nest2
-//SEG35 nest1::@5
-nest1__B5:
-//SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
-  sec
-  sbc #$1
-//SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
-  cmp #$0
-  bne nest1__B2_from_B5
-//SEG38 nest1::@3
-nest1__B3:
-//SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $4
-  bne nest1__B1_from_B3
-//SEG41 nest1::@return
-nest1__Breturn:
-//SEG42 [16] return  [ main::j#2 main::i#2 ]
-  rts
+nest1: {
+  //SEG24 [9] phi from nest1 to nest1::@1
+  b1_from_nest1:
+  //SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $4
+    jmp b1
+  //SEG26 [9] phi from nest1::@3 to nest1::@1
+  b1_from_b3:
+  //SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
+  //SEG28 nest1::@1
+  b1:
+  //SEG29 [10] phi from nest1::@1 to nest1::@2
+  b2_from_b1:
+  //SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
+    lda #$64
+    jmp b2
+  //SEG31 [10] phi from nest1::@5 to nest1::@2
+  b2_from_b5:
+  //SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
+  //SEG33 nest1::@2
+  b2:
+  //SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    jsr nest2
+  //SEG35 nest1::@5
+  b5:
+  //SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
+    sec
+    sbc #$1
+  //SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
+    cmp #$0
+    bne b2_from_b5
+  //SEG38 nest1::@3
+  b3:
+  //SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG41 nest1::@return
+  breturn:
+  //SEG42 [16] return  [ main::j#2 main::i#2 ]
+    rts
+}
 //SEG43 nest2
-nest2:
-//SEG44 [17] phi from nest2 to nest2::@1
-nest2__B1_from_nest2:
-//SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-  jmp nest2__B1
-//SEG46 [17] phi from nest2::@3 to nest2::@1
-nest2__B1_from_B3:
-//SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
-//SEG48 nest2::@1
-nest2__B1:
-//SEG49 [18] phi from nest2::@1 to nest2::@2
-nest2__B2_from_B1:
-//SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-  jmp nest2__B2
-//SEG51 [18] phi from nest2::@2 to nest2::@2
-nest2__B2_from_B2:
-//SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
-//SEG53 nest2::@2
-nest2__B2:
-//SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
-  sty $400
-//SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
-  dey
-//SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne nest2__B2_from_B2
-//SEG57 nest2::@3
-nest2__B3:
-//SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
-  dex
-//SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest2__B1_from_B3
-//SEG60 nest2::@return
-nest2__Breturn:
-//SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  rts
+nest2: {
+  //SEG44 [17] phi from nest2 to nest2::@1
+  b1_from_nest2:
+  //SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+    jmp b1
+  //SEG46 [17] phi from nest2::@3 to nest2::@1
+  b1_from_b3:
+  //SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
+  //SEG48 nest2::@1
+  b1:
+  //SEG49 [18] phi from nest2::@1 to nest2::@2
+  b2_from_b1:
+  //SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+    jmp b2
+  //SEG51 [18] phi from nest2::@2 to nest2::@2
+  b2_from_b2:
+  //SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
+  //SEG53 nest2::@2
+  b2:
+  //SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
+    sty $400
+  //SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
+    dey
+  //SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b2_from_b2
+  //SEG57 nest2::@3
+  b3:
+  //SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
+    dex
+  //SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b3
+  //SEG60 nest2::@return
+  breturn:
+  //SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    rts
+}
 
-Removing instruction jmp main__B1
-Removing instruction jmp main__B2
-Removing instruction jmp nest1__B1
-Removing instruction jmp nest1__B2
-Removing instruction jmp nest2__B1
-Removing instruction jmp nest2__B2
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b1
+Removing instruction jmp b2
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] phi from main::@1 to main::@2
-main__B2_from_B1:
-//SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $3
-//SEG11 [2] phi from main::@5 to main::@2
-main__B2_from_B5:
-//SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
-//SEG13 main::@2
-main__B2:
-//SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
-  jsr nest1
-//SEG15 main::@5
-main__B5:
-//SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
-  dec $3
-//SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $3
-  bne main__B2_from_B5
-//SEG18 main::@3
-main__B3:
-//SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B1_from_B3
-//SEG21 main::@return
-main__Breturn:
-//SEG22 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] phi from main::@1 to main::@2
+  b2_from_b1:
+  //SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $3
+  //SEG11 [2] phi from main::@5 to main::@2
+  b2_from_b5:
+  //SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
+  //SEG13 main::@2
+  b2:
+  //SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
+    jsr nest1
+  //SEG15 main::@5
+  b5:
+  //SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
+    dec $3
+  //SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $3
+    bne b2_from_b5
+  //SEG18 main::@3
+  b3:
+  //SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b1_from_b3
+  //SEG21 main::@return
+  breturn:
+  //SEG22 [8] return  [ ]
+    rts
+}
 //SEG23 nest1
-nest1:
-//SEG24 [9] phi from nest1 to nest1::@1
-nest1__B1_from_nest1:
-//SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $4
-//SEG26 [9] phi from nest1::@3 to nest1::@1
-nest1__B1_from_B3:
-//SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
-//SEG28 nest1::@1
-nest1__B1:
-//SEG29 [10] phi from nest1::@1 to nest1::@2
-nest1__B2_from_B1:
-//SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
-  lda #$64
-//SEG31 [10] phi from nest1::@5 to nest1::@2
-nest1__B2_from_B5:
-//SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
-//SEG33 nest1::@2
-nest1__B2:
-//SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  jsr nest2
-//SEG35 nest1::@5
-nest1__B5:
-//SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
-  sec
-  sbc #$1
-//SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
-  cmp #$0
-  bne nest1__B2_from_B5
-//SEG38 nest1::@3
-nest1__B3:
-//SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $4
-  bne nest1__B1_from_B3
-//SEG41 nest1::@return
-nest1__Breturn:
-//SEG42 [16] return  [ main::j#2 main::i#2 ]
-  rts
+nest1: {
+  //SEG24 [9] phi from nest1 to nest1::@1
+  b1_from_nest1:
+  //SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $4
+  //SEG26 [9] phi from nest1::@3 to nest1::@1
+  b1_from_b3:
+  //SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
+  //SEG28 nest1::@1
+  b1:
+  //SEG29 [10] phi from nest1::@1 to nest1::@2
+  b2_from_b1:
+  //SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
+    lda #$64
+  //SEG31 [10] phi from nest1::@5 to nest1::@2
+  b2_from_b5:
+  //SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
+  //SEG33 nest1::@2
+  b2:
+  //SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    jsr nest2
+  //SEG35 nest1::@5
+  b5:
+  //SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
+    sec
+    sbc #$1
+  //SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
+    cmp #$0
+    bne b2_from_b5
+  //SEG38 nest1::@3
+  b3:
+  //SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG41 nest1::@return
+  breturn:
+  //SEG42 [16] return  [ main::j#2 main::i#2 ]
+    rts
+}
 //SEG43 nest2
-nest2:
-//SEG44 [17] phi from nest2 to nest2::@1
-nest2__B1_from_nest2:
-//SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG46 [17] phi from nest2::@3 to nest2::@1
-nest2__B1_from_B3:
-//SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
-//SEG48 nest2::@1
-nest2__B1:
-//SEG49 [18] phi from nest2::@1 to nest2::@2
-nest2__B2_from_B1:
-//SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-//SEG51 [18] phi from nest2::@2 to nest2::@2
-nest2__B2_from_B2:
-//SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
-//SEG53 nest2::@2
-nest2__B2:
-//SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
-  sty $400
-//SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
-  dey
-//SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne nest2__B2_from_B2
-//SEG57 nest2::@3
-nest2__B3:
-//SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
-  dex
-//SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest2__B1_from_B3
-//SEG60 nest2::@return
-nest2__Breturn:
-//SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  rts
+nest2: {
+  //SEG44 [17] phi from nest2 to nest2::@1
+  b1_from_nest2:
+  //SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG46 [17] phi from nest2::@3 to nest2::@1
+  b1_from_b3:
+  //SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
+  //SEG48 nest2::@1
+  b1:
+  //SEG49 [18] phi from nest2::@1 to nest2::@2
+  b2_from_b1:
+  //SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+  //SEG51 [18] phi from nest2::@2 to nest2::@2
+  b2_from_b2:
+  //SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
+  //SEG53 nest2::@2
+  b2:
+  //SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
+    sty $400
+  //SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
+    dey
+  //SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b2_from_b2
+  //SEG57 nest2::@3
+  b3:
+  //SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
+    dex
+  //SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b3
+  //SEG60 nest2::@return
+  breturn:
+  //SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@1
@@ -2437,132 +2446,135 @@ reg byte x [ nest2::i#2 nest2::i#1 ]
 reg byte y [ nest2::j#2 nest2::j#1 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-//SEG6 [1] phi from main::@3 to main::@1
-main__B1_from_B3:
-//SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] phi from main::@1 to main::@2
-main__B2_from_B1:
-//SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $3
-//SEG11 [2] phi from main::@5 to main::@2
-main__B2_from_B5:
-//SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
-//SEG13 main::@2
-main__B2:
-//SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
-  jsr nest1
-//SEG15 main::@5
-main__B5:
-//SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
-  dec $3
-//SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
-  lda $3
-  bne main__B2_from_B5
-//SEG18 main::@3
-main__B3:
-//SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B1_from_B3
-//SEG21 main::@return
-main__Breturn:
-//SEG22 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+  //SEG6 [1] phi from main::@3 to main::@1
+  b1_from_b3:
+  //SEG7 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] phi from main::@1 to main::@2
+  b2_from_b1:
+  //SEG10 [2] phi (byte) main::j#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $3
+  //SEG11 [2] phi from main::@5 to main::@2
+  b2_from_b5:
+  //SEG12 [2] phi (byte) main::j#2 = (byte) main::j#1 -- register_copy 
+  //SEG13 main::@2
+  b2:
+  //SEG14 [3] call nest1 param-assignment [ main::j#2 main::i#2 ]
+    jsr nest1
+  //SEG15 main::@5
+  b5:
+  //SEG16 [4] (byte) main::j#1 ← -- (byte) main::j#2 [ main::j#1 main::i#2 ] -- zpby1=_dec_zpby1 
+    dec $3
+  //SEG17 [5] if((byte) main::j#1>(byte) 0) goto main::@2 [ main::j#1 main::i#2 ] -- zpby1_gt_0_then_la1 
+    lda $3
+    bne b2_from_b5
+  //SEG18 main::@3
+  b3:
+  //SEG19 [6] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG20 [7] if((byte) main::i#1>(byte) 0) goto main::@1 [ main::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b1_from_b3
+  //SEG21 main::@return
+  breturn:
+  //SEG22 [8] return  [ ]
+    rts
+}
 //SEG23 nest1
-nest1:
-//SEG24 [9] phi from nest1 to nest1::@1
-nest1__B1_from_nest1:
-//SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $4
-//SEG26 [9] phi from nest1::@3 to nest1::@1
-nest1__B1_from_B3:
-//SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
-//SEG28 nest1::@1
-nest1__B1:
-//SEG29 [10] phi from nest1::@1 to nest1::@2
-nest1__B2_from_B1:
-//SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
-  lda #$64
-//SEG31 [10] phi from nest1::@5 to nest1::@2
-nest1__B2_from_B5:
-//SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
-//SEG33 nest1::@2
-nest1__B2:
-//SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  jsr nest2
-//SEG35 nest1::@5
-nest1__B5:
-//SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
-  sec
-  sbc #$1
-//SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
-  cmp #$0
-  bne nest1__B2_from_B5
-//SEG38 nest1::@3
-nest1__B3:
-//SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
-  dec $4
-//SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
-  lda $4
-  bne nest1__B1_from_B3
-//SEG41 nest1::@return
-nest1__Breturn:
-//SEG42 [16] return  [ main::j#2 main::i#2 ]
-  rts
+nest1: {
+  //SEG24 [9] phi from nest1 to nest1::@1
+  b1_from_nest1:
+  //SEG25 [9] phi (byte) nest1::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $4
+  //SEG26 [9] phi from nest1::@3 to nest1::@1
+  b1_from_b3:
+  //SEG27 [9] phi (byte) nest1::i#2 = (byte) nest1::i#1 -- register_copy 
+  //SEG28 nest1::@1
+  b1:
+  //SEG29 [10] phi from nest1::@1 to nest1::@2
+  b2_from_b1:
+  //SEG30 [10] phi (byte) nest1::j#2 = (byte) 100 -- aby=coby1 
+    lda #$64
+  //SEG31 [10] phi from nest1::@5 to nest1::@2
+  b2_from_b5:
+  //SEG32 [10] phi (byte) nest1::j#2 = (byte) nest1::j#1 -- register_copy 
+  //SEG33 nest1::@2
+  b2:
+  //SEG34 [11] call nest2 param-assignment [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    jsr nest2
+  //SEG35 nest1::@5
+  b5:
+  //SEG36 [12] (byte) nest1::j#1 ← -- (byte) nest1::j#2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby=_dec_aby 
+    sec
+    sbc #$1
+  //SEG37 [13] if((byte) nest1::j#1>(byte) 0) goto nest1::@2 [ main::j#2 main::i#2 nest1::j#1 nest1::i#2 ] -- aby_gt_0_then_la1 
+    cmp #$0
+    bne b2_from_b5
+  //SEG38 nest1::@3
+  b3:
+  //SEG39 [14] (byte) nest1::i#1 ← -- (byte) nest1::i#2 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1=_dec_zpby1 
+    dec $4
+  //SEG40 [15] if((byte) nest1::i#1>(byte) 0) goto nest1::@1 [ main::j#2 main::i#2 nest1::i#1 ] -- zpby1_gt_0_then_la1 
+    lda $4
+    bne b1_from_b3
+  //SEG41 nest1::@return
+  breturn:
+  //SEG42 [16] return  [ main::j#2 main::i#2 ]
+    rts
+}
 //SEG43 nest2
-nest2:
-//SEG44 [17] phi from nest2 to nest2::@1
-nest2__B1_from_nest2:
-//SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG46 [17] phi from nest2::@3 to nest2::@1
-nest2__B1_from_B3:
-//SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
-//SEG48 nest2::@1
-nest2__B1:
-//SEG49 [18] phi from nest2::@1 to nest2::@2
-nest2__B2_from_B1:
-//SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
-  ldy #$64
-//SEG51 [18] phi from nest2::@2 to nest2::@2
-nest2__B2_from_B2:
-//SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
-//SEG53 nest2::@2
-nest2__B2:
-//SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
-  sty $400
-//SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
-  dey
-//SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
-  cpy #$0
-  bne nest2__B2_from_B2
-//SEG57 nest2::@3
-nest2__B3:
-//SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
-  dex
-//SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne nest2__B1_from_B3
-//SEG60 nest2::@return
-nest2__Breturn:
-//SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
-  rts
+nest2: {
+  //SEG44 [17] phi from nest2 to nest2::@1
+  b1_from_nest2:
+  //SEG45 [17] phi (byte) nest2::i#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG46 [17] phi from nest2::@3 to nest2::@1
+  b1_from_b3:
+  //SEG47 [17] phi (byte) nest2::i#2 = (byte) nest2::i#1 -- register_copy 
+  //SEG48 nest2::@1
+  b1:
+  //SEG49 [18] phi from nest2::@1 to nest2::@2
+  b2_from_b1:
+  //SEG50 [18] phi (byte) nest2::j#2 = (byte) 100 -- yby=coby1 
+    ldy #$64
+  //SEG51 [18] phi from nest2::@2 to nest2::@2
+  b2_from_b2:
+  //SEG52 [18] phi (byte) nest2::j#2 = (byte) nest2::j#1 -- register_copy 
+  //SEG53 nest2::@2
+  b2:
+  //SEG54 [19] *((word) 1024) ← (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#2 nest2::i#2 ] -- _star_cowo1=yby 
+    sty $400
+  //SEG55 [20] (byte) nest2::j#1 ← -- (byte) nest2::j#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby=_dec_yby 
+    dey
+  //SEG56 [21] if((byte) nest2::j#1>(byte) 0) goto nest2::@2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::j#1 nest2::i#2 ] -- yby_gt_0_then_la1 
+    cpy #$0
+    bne b2_from_b2
+  //SEG57 nest2::@3
+  b3:
+  //SEG58 [22] (byte) nest2::i#1 ← -- (byte) nest2::i#2 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby=_dec_xby 
+    dex
+  //SEG59 [23] if((byte) nest2::i#1>(byte) 0) goto nest2::@1 [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 nest2::i#1 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b1_from_b3
+  //SEG60 nest2::@return
+  breturn:
+  //SEG61 [24] return  [ main::j#2 main::i#2 nest1::j#2 nest1::i#2 ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.sym b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.sym
index 1d7d046f7..c4777bca4 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopnest2.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.asm b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.asm
index 2e86f9e12..87dc109c0 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.asm
@@ -1,26 +1,27 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-main__B1_from_main:
-  ldy #$0
-  ldx #$64
-main__B1:
-  dex
-  cpx #$0
-  bne main__B2
-main__Breturn:
-  rts
-main__B2:
+bend:
+main: {
+  b1_from_main:
+    ldy #$0
+    ldx #$64
+  b1:
+    dex
+    cpx #$0
+    bne b2
+  breturn:
+    rts
+}
+b2:
   cpx #$32
   beq !+
-  bcs main__B4
+  bcs b4
 !:
-main__B5:
+b5:
   dey
-main__B1_from_B5:
-  jmp main__B1
-main__B4:
+b1_from_b5:
+  jmp b1
+b4:
   iny
-main__B1_from_B4:
-  jmp main__B1
+b1_from_b4:
+  jmp b1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.cfg b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.cfg
index a7ebfe712..3e02d067c 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   [1] (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte) main::s#1 main::@5/(byte) main::s#2 ) [ main::i#2 main::s#3 ]
@@ -12,7 +12,7 @@ main::@1: from main main::@4 main::@5
   to:main::@return
 main::@return: from main::@1
   [4] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ]
   to:main::@5
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.log b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.log
index 7c2c35a48..90f375922 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.log
@@ -57,7 +57,7 @@ SYMBOLS
 (byte) main::s
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
   to:@1
 main: from
@@ -97,10 +97,10 @@ main::@12: from
   to:main::@3
 main::@return: from main::@3
   return 
-  to:@RETURN
-@1: from @BEGIN
-  to:@END
-@END: from @1
+  to:@return
+@1: from @begin
+  to:@end
+@end: from @1
 
 Removing empty block main::@7
 Removing empty block main::@3
@@ -112,9 +112,9 @@ Removing empty block main::@11
 Removing empty block main::@12
 Removing empty block @1
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (byte) main::i ← (byte) 100
   (byte) main::s ← (byte) 0
@@ -136,18 +136,18 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte) main::i ← (byte) 100
   (byte) main::s ← (byte) 0
   to:main::@1
@@ -168,19 +168,19 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte) main::i#0 ← (byte) 100
   (byte) main::s#0 ← (byte) 0
   to:main::@1
@@ -209,16 +209,16 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte) main::i#0 ← (byte) 100
   (byte) main::s#0 ← (byte) 0
   to:main::@1
@@ -247,16 +247,16 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Culled Empty Block (label) @2
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   (byte) main::i#0 ← (byte) 100
   (byte) main::s#0 ← (byte) 0
   to:main::@1
@@ -285,17 +285,17 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte) main::i#0 (byte) 100
 Constant (byte) main::s#0 (byte) 0
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   (byte) main::s#6 ← phi( main/(byte) 0 main::@4/(byte) main::s#1 main::@5/(byte) main::s#2 )
@@ -322,17 +322,17 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte) main::i#1 = (byte) main::i#3 (byte) main::i#4 (byte) main::i#5 
 Alias (byte) main::s#3 = (byte) main::s#5 (byte) main::s#6 (byte) main::s#4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte) main::s#1 main::@5/(byte) main::s#2 )
@@ -353,17 +353,17 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$0 if((byte) main::i#1>(byte) 0) goto main::@2
 Simple Condition (boolean~) main::$1 if((byte) main::i#1>(byte) 50) goto main::@4
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte) main::s#1 main::@5/(byte) main::s#2 )
@@ -382,17 +382,17 @@ main::@5: from main::@2
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 main::@5 main::@4 
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 main::@5 main::@4 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 main::@5 main::@4 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 main::@5 main::@4 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte~) main::s#7 main::@5/(byte~) main::s#8 )
@@ -402,7 +402,7 @@ main::@1: from main main::@4 main::@5
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   if((byte) main::i#1>(byte) 50) goto main::@4
   to:main::@5
@@ -422,11 +422,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   [1] (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte~) main::s#7 main::@5/(byte~) main::s#8 ) [ main::i#2 main::s#3 ]
@@ -436,7 +436,7 @@ main::@1: from main main::@4 main::@5
   to:main::@return
 main::@return: from main::@1
   [4] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ]
   to:main::@5
@@ -457,17 +457,17 @@ Coalesced [8] main::s#8 ← main::s#2
 Coalesced (already) [10] main::i#6 ← main::i#1
 Coalesced [11] main::s#7 ← main::s#1
 Coalesced down to 2 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 main::@5 main::@4 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 main::@5 main::@4 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@4 main::@5
   [1] (byte) main::s#3 ← phi( main/(byte) 0 main::@4/(byte) main::s#1 main::@5/(byte) main::s#2 ) [ main::i#2 main::s#3 ]
@@ -477,7 +477,7 @@ main::@1: from main main::@4 main::@5
   to:main::@return
 main::@return: from main::@1
   [4] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ]
   to:main::@5
@@ -492,14 +492,14 @@ CALL GRAPH
 Calls in [] to 0:main 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@return dominated by  @BEGIN main::@return main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
-main::@5 dominated by  @BEGIN main::@2 main::@1 main::@5 main 
-main::@4 dominated by  @BEGIN main::@2 main::@1 main::@4 main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@return dominated by  main::@return @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
+main::@5 dominated by  @begin main::@2 main::@1 main::@5 main 
+main::@4 dominated by  @begin main::@2 main::@1 main::@4 main 
 
 Found back edge: Loop head: main::@1 tails: main::@5 blocks: null
 Found back edge: Loop head: main::@1 tails: main::@4 blocks: null
@@ -535,63 +535,64 @@ Complete equivalence classes
 Allocated zp byte:2 to zp byte:2 [ main::i#2 main::i#1 ]
 Allocated zp byte:3 to zp byte:3 [ main::s#3 main::s#1 main::s#2 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $3
-//SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
-  lda #$64
-  sta $2
-  jmp main__B1
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- zpby1=_dec_zpby1 
-  dec $2
-//SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- zpby1_gt_0_then_la1 
-  lda $2
-  bne main__B2
-  jmp main__Breturn
-//SEG10 main::@return
-main__Breturn:
-//SEG11 [4] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $3
+  //SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- zpby1=coby1 
+    lda #$64
+    sta $2
+    jmp b1
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- zpby1=_dec_zpby1 
+    dec $2
+  //SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- zpby1_gt_0_then_la1 
+    lda $2
+    bne b2
+    jmp breturn
+  //SEG10 main::@return
+  breturn:
+  //SEG11 [4] return  [ ]
+    rts
+}
 //SEG12 main::@2
-main__B2:
+b2:
 //SEG13 [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ] -- zpby1_gt_coby1_then_la1 
   lda $2
   cmp #$32
   beq !+
-  bcs main__B4
+  bcs b4
 !:
-  jmp main__B5
+  jmp b5
 //SEG14 main::@5
-main__B5:
+b5:
 //SEG15 [6] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] -- zpby1=_dec_zpby1 
   dec $3
 //SEG16 [1] phi from main::@5 to main::@1
-main__B1_from_B5:
+b1_from_b5:
 //SEG17 [1] phi (byte) main::s#3 = (byte) main::s#2 -- register_copy 
 //SEG18 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 //SEG19 main::@4
-main__B4:
+b4:
 //SEG20 [7] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] -- zpby1=_inc_zpby1 
   inc $3
 //SEG21 [1] phi from main::@4 to main::@1
-main__B1_from_B4:
+b1_from_b4:
 //SEG22 [1] phi (byte) main::s#3 = (byte) main::s#1 -- register_copy 
 //SEG23 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ main::i#2 main::i#1 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -603,66 +604,67 @@ Uplift Scope []
 
 Uplifting [main] best 380 combination reg byte y [ main::s#3 main::s#1 main::s#2 ] reg byte x [ main::i#2 main::i#1 ] 
 Uplifting [] best 380 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__Breturn
-Removing instruction jmp main__B5
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Removing instruction jmp b5
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- xby=_dec_xby 
-  dex
-//SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne main__B2
-//SEG10 main::@return
-main__Breturn:
-//SEG11 [4] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- xby=_dec_xby 
+    dex
+  //SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b2
+  //SEG10 main::@return
+  breturn:
+  //SEG11 [4] return  [ ]
+    rts
+}
 //SEG12 main::@2
-main__B2:
+b2:
 //SEG13 [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ] -- xby_gt_coby1_then_la1 
   cpx #$32
   beq !+
-  bcs main__B4
+  bcs b4
 !:
 //SEG14 main::@5
-main__B5:
+b5:
 //SEG15 [6] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] -- yby=_dec_yby 
   dey
 //SEG16 [1] phi from main::@5 to main::@1
-main__B1_from_B5:
+b1_from_b5:
 //SEG17 [1] phi (byte) main::s#3 = (byte) main::s#2 -- register_copy 
 //SEG18 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 //SEG19 main::@4
-main__B4:
+b4:
 //SEG20 [7] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] -- yby=_inc_yby 
   iny
 //SEG21 [1] phi from main::@4 to main::@1
-main__B1_from_B4:
+b1_from_b4:
 //SEG22 [1] phi (byte) main::s#3 = (byte) main::s#1 -- register_copy 
 //SEG23 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) main()
 (label) main::@1
 (label) main::@2
@@ -681,54 +683,55 @@ reg byte x [ main::i#2 main::i#1 ]
 reg byte y [ main::s#3 main::s#1 main::s#2 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- xby=coby1 
-  ldx #$64
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- xby=_dec_xby 
-  dex
-//SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- xby_gt_0_then_la1 
-  cpx #$0
-  bne main__B2
-//SEG10 main::@return
-main__Breturn:
-//SEG11 [4] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::s#3 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG6 [1] phi (byte) main::i#2 = (byte) 100 -- xby=coby1 
+    ldx #$64
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] (byte) main::i#1 ← -- (byte) main::i#2 [ main::i#1 main::s#3 ] -- xby=_dec_xby 
+    dex
+  //SEG9 [3] if((byte) main::i#1>(byte) 0) goto main::@2 [ main::i#1 main::s#3 ] -- xby_gt_0_then_la1 
+    cpx #$0
+    bne b2
+  //SEG10 main::@return
+  breturn:
+  //SEG11 [4] return  [ ]
+    rts
+}
 //SEG12 main::@2
-main__B2:
+b2:
 //SEG13 [5] if((byte) main::i#1>(byte) 50) goto main::@4 [ main::i#1 main::s#3 ] -- xby_gt_coby1_then_la1 
   cpx #$32
   beq !+
-  bcs main__B4
+  bcs b4
 !:
 //SEG14 main::@5
-main__B5:
+b5:
 //SEG15 [6] (byte) main::s#2 ← -- (byte) main::s#3 [ main::i#1 main::s#2 ] -- yby=_dec_yby 
   dey
 //SEG16 [1] phi from main::@5 to main::@1
-main__B1_from_B5:
+b1_from_b5:
 //SEG17 [1] phi (byte) main::s#3 = (byte) main::s#2 -- register_copy 
 //SEG18 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 //SEG19 main::@4
-main__B4:
+b4:
 //SEG20 [7] (byte) main::s#1 ← ++ (byte) main::s#3 [ main::i#1 main::s#1 ] -- yby=_inc_yby 
   iny
 //SEG21 [1] phi from main::@4 to main::@1
-main__B1_from_B4:
+b1_from_b4:
 //SEG22 [1] phi (byte) main::s#3 = (byte) main::s#1 -- register_copy 
 //SEG23 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.sym b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.sym
index d9b051c67..d15fa31c0 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/loopsplit.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) main()
 (label) main::@1
 (label) main::@2
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/minus.asm b/src/main/java/dk/camelot64/kickc/test/ref/minus.asm
index 8fd308dd6..c028e66ef 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/minus.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/minus.asm
@@ -1,13 +1,13 @@
-BBEGIN:
-B1_from_BBEGIN:
+bbegin:
+b1_from_bbegin:
   ldx #$5
-B1_from_B1:
-B1:
+b1_from_b1:
+b1:
   txa
   clc
   adc #$4
   sta $1100,x
   inx
   cpx #$a
-  bcc B1_from_B1
-BEND:
+  bcc b1_from_b1
+bend:
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/minus.cfg b/src/main/java/dk/camelot64/kickc/test/ref/minus.cfg
index 77aeb7f43..215bb8704 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/minus.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/minus.cfg
@@ -1,10 +1,10 @@
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  [0] (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 ) [ i#2 ]
+@1: from @1 @begin
+  [0] (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 ) [ i#2 ]
   [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ]
   [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ]
   [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ]
   [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ]
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/minus.log b/src/main/java/dk/camelot64/kickc/test/ref/minus.log
index b8537abaa..73e95a642 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/minus.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/minus.log
@@ -27,11 +27,11 @@ SYMBOLS
 (byte[16]) p
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[16]) p ← (word) 4352
   (byte) i ← (byte) 5
   to:@1
-@1: from @1 @BEGIN
+@1: from @1 @begin
   (byte~) $0 ← (byte) 2 + (byte) i
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p + (byte) i) ← (byte~) $1
@@ -41,16 +41,16 @@ INITIAL CONTROL FLOW GRAPH
   if((boolean~) $3) goto @1
   to:@2
 @2: from @1
-  to:@END
-@END: from @2
+  to:@end
+@end: from @2
 
 Removing empty block @2
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte[16]) p ← (word) 4352
   (byte) i ← (byte) 5
   to:@1
-@1: from @1 @BEGIN
+@1: from @1 @begin
   (byte~) $0 ← (byte) 2 + (byte) i
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p + (byte) i) ← (byte~) $1
@@ -58,17 +58,17 @@ CONTROL FLOW GRAPH
   (byte) i ← (byte~) $2
   (boolean~) $3 ← (byte) i < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte[16]) p ← (word) 4352
   (byte) i ← (byte) 5
   to:@1
-@1: from @1 @BEGIN
+@1: from @1 @begin
   (byte~) $0 ← (byte) 2 + (byte) i
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p + (byte) i) ← (byte~) $1
@@ -76,18 +76,18 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte) i ← (byte~) $2
   (boolean~) $3 ← (byte) i < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte[16]) p#0 ← (word) 4352
   (byte) i#0 ← (byte) 5
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @BEGIN/(byte[16]) p#0 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) i#0 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @begin/(byte[16]) p#0 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) i#0 )
   (byte~) $0 ← (byte) 2 + (byte) i#2
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
@@ -95,17 +95,17 @@ CONTROL FLOW GRAPH SSA
   (byte) i#1 ← (byte~) $2
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte[16]) p#0 ← (word) 4352
   (byte) i#0 ← (byte) 5
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @BEGIN/(byte[16]) p#0 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) i#0 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @begin/(byte[16]) p#0 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) i#0 )
   (byte~) $0 ← (byte) 2 + (byte) i#2
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
@@ -113,18 +113,18 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte) i#1 ← (byte~) $2
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Constant (byte[16]) p#0 (word) 4352
 Constant (byte) i#0 (byte) 5
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @BEGIN/(word) 4352 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @begin/(word) 4352 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $0 ← (byte) 2 + (byte) i#2
   (byte~) $1 ← (byte~) $0 + (byte) 2
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
@@ -132,19 +132,19 @@ CONTROL FLOW GRAPH
   (byte) i#1 ← (byte~) $2
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Consolidated constant in assignment $1
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @BEGIN/(word) 4352 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @begin/(word) 4352 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $0 ← (byte) i#2
   (byte~) $1 ← (byte~) $0 + (byte) 4
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
@@ -152,70 +152,70 @@ CONTROL FLOW GRAPH
   (byte) i#1 ← (byte~) $2
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Alias (byte) i#2 = (byte~) $0 
 Alias (byte) i#1 = (byte~) $2 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @BEGIN/(word) 4352 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @1/(byte[16]) p#1 @begin/(word) 4352 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $1 ← (byte) i#2 + (byte) 4
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
   (byte) i#1 ← (byte) i#2 + (byte) 1
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Self Phi Eliminated (byte[16]) p#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @BEGIN/(word) 4352 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @begin/(word) 4352 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $1 ← (byte) i#2 + (byte) 4
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
   (byte) i#1 ← (byte) i#2 + (byte) 1
   (boolean~) $3 ← (byte) i#1 < (byte) 10
   if((boolean~) $3) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Simple Condition (boolean~) $3 if((byte) i#1<(byte) 10) goto @1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte[16]) p#1 ← phi( @BEGIN/(word) 4352 )
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte[16]) p#1 ← phi( @begin/(word) 4352 )
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $1 ← (byte) i#2 + (byte) 4
   *((byte[16]) p#1 + (byte) i#2) ← (byte~) $1
   (byte) i#1 ← (byte) i#2 + (byte) 1
   if((byte) i#1<(byte) 10) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Constant (byte[16]) p#1 (word) 4352
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 )
+@1: from @1 @begin
+  (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 )
   (byte~) $1 ← (byte) i#2 + (byte) 4
   *((word) 4352 + (byte) i#2) ← (byte~) $1
   (byte) i#1 ← (byte) i#2 + (byte) 1
   if((byte) i#1<(byte) 10) goto @1
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
@@ -223,36 +223,36 @@ Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) i#2
-Block Sequence Planned @BEGIN @1 @END 
+Block Sequence Planned @begin @1 @end 
 Added new block during phi lifting @3(between @1 and @1)
-Block Sequence Planned @BEGIN @1 @END @3 
+Block Sequence Planned @begin @1 @end @3 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  (byte) i#2 ← phi( @3/(byte~) i#3 @BEGIN/(byte) 5 )
+@1: from @3 @begin
+  (byte) i#2 ← phi( @3/(byte~) i#3 @begin/(byte) 5 )
   (byte~) $1 ← (byte) i#2 + (byte) 4
   *((word) 4352 + (byte) i#2) ← (byte~) $1
   (byte) i#1 ← (byte) i#2 + (byte) 1
   if((byte) i#1<(byte) 10) goto @3
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 @3: from @1
   (byte~) i#3 ← (byte) i#1
   to:@1
 
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @3 @BEGIN
-  [0] (byte) i#2 ← phi( @3/(byte~) i#3 @BEGIN/(byte) 5 ) [ i#2 ]
+@1: from @3 @begin
+  [0] (byte) i#2 ← phi( @3/(byte~) i#3 @begin/(byte) 5 ) [ i#2 ]
   [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ]
   [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ]
   [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ]
   [4] if((byte) i#1<(byte) 10) goto @3 [ i#1 ]
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 @3: from @1
   [5] (byte~) i#3 ← (byte) i#1 [ i#3 ]
   to:@1
@@ -261,26 +261,26 @@ Created 1 initial phi equivalence classes
 Coalesced [5] i#3 ← i#1
 Coalesced down to 1 phi equivalence classes
 Culled Empty Block (label) @3
-Block Sequence Planned @BEGIN @1 @END 
+Block Sequence Planned @begin @1 @end 
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   to:@1
-@1: from @1 @BEGIN
-  [0] (byte) i#2 ← phi( @1/(byte) i#1 @BEGIN/(byte) 5 ) [ i#2 ]
+@1: from @1 @begin
+  [0] (byte) i#2 ← phi( @1/(byte) i#1 @begin/(byte) 5 ) [ i#2 ]
   [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ]
   [2] *((word) 4352 + (byte) i#2) ← (byte~) $1 [ i#2 ]
   [3] (byte) i#1 ← (byte) i#2 + (byte) 1 [ i#1 ]
   [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ]
-  to:@END
-@END: from @1
+  to:@end
+@end: from @1
 
 CALL GRAPH
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@1 dominated by  @1 @BEGIN 
-@END dominated by  @1 @BEGIN @END 
+@begin dominated by  @begin 
+@1 dominated by  @1 @begin 
+@end dominated by  @1 @end @begin 
 
 Found back edge: Loop head: @1 tails: @1 blocks: null
 Populated: Loop head: @1 tails: @1 blocks: @1 
@@ -309,20 +309,20 @@ Complete equivalence classes
 Allocated zp byte:2 to zp byte:2 [ i#2 i#1 ]
 Allocated zp byte:3 to zp byte:3 [ $1 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) i#2 = (byte) 5 -- zpby1=coby1 
   lda #$5
   sta $2
-  jmp B1
+  jmp b1
 //SEG3 [0] phi from @1 to @1
-B1_from_B1:
+b1_from_b1:
 //SEG4 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
-  jmp B1
+  jmp b1
 //SEG5 @1
-B1:
+b1:
 //SEG6 [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ] -- zpby1=zpby2_plus_coby1 
   lda $2
   clc
@@ -337,10 +337,10 @@ B1:
 //SEG9 [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ] -- zpby1_lt_coby1_then_la1 
   lda $2
   cmp #$a
-  bcc B1_from_B1
-  jmp BEND
-//SEG10 @END
-BEND:
+  bcc b1_from_b1
+  jmp bend
+//SEG10 @end
+bend:
 
 Statement [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ] always clobbers reg byte a 
 Removing always clobbered register reg byte a as potential for zp byte:2 [ i#2 i#1 ]
@@ -353,22 +353,22 @@ REGISTER UPLIFT SCOPES
 Uplift Scope [] 31.17: zp byte:2 [ i#2 i#1 ] 22: zp byte:3 [ $1 ] 
 
 Uplifting [] best 285 combination reg byte x [ i#2 i#1 ] reg byte a [ $1 ] 
-Removing instruction jmp B1
-Removing instruction jmp BEND
+Removing instruction jmp b1
+Removing instruction jmp bend
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) i#2 = (byte) 5 -- xby=coby1 
   ldx #$5
-  jmp B1
+  jmp b1
 //SEG3 [0] phi from @1 to @1
-B1_from_B1:
+b1_from_b1:
 //SEG4 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG5 @1
-B1:
+b1:
 //SEG6 [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ] -- aby=xby_plus_coby1 
   txa
   clc
@@ -379,24 +379,24 @@ B1:
   inx
 //SEG9 [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ] -- xby_lt_coby1_then_la1 
   cpx #$a
-  bcc B1_from_B1
-//SEG10 @END
-BEND:
+  bcc b1_from_b1
+//SEG10 @end
+bend:
 
-Removing instruction jmp B1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) i#2 = (byte) 5 -- xby=coby1 
   ldx #$5
 //SEG3 [0] phi from @1 to @1
-B1_from_B1:
+b1_from_b1:
 //SEG4 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG5 @1
-B1:
+b1:
 //SEG6 [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ] -- aby=xby_plus_coby1 
   txa
   clc
@@ -407,15 +407,15 @@ B1:
   inx
 //SEG9 [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ] -- xby_lt_coby1_then_la1 
   cpx #$a
-  bcc B1_from_B1
-//SEG10 @END
-BEND:
+  bcc b1_from_b1
+//SEG10 @end
+bend:
 
 FINAL SYMBOL TABLE
 (byte~) $1 reg byte a 22.0
 (label) @1
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) i
 (byte) i#1 reg byte x 16.5
 (byte) i#2 reg byte x 14.666666666666666
@@ -425,17 +425,17 @@ reg byte x [ i#2 i#1 ]
 reg byte a [ $1 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
-//SEG1 [0] phi from @BEGIN to @1
-B1_from_BBEGIN:
+//SEG0 @begin
+bbegin:
+//SEG1 [0] phi from @begin to @1
+b1_from_bbegin:
 //SEG2 [0] phi (byte) i#2 = (byte) 5 -- xby=coby1 
   ldx #$5
 //SEG3 [0] phi from @1 to @1
-B1_from_B1:
+b1_from_b1:
 //SEG4 [0] phi (byte) i#2 = (byte) i#1 -- register_copy 
 //SEG5 @1
-B1:
+b1:
 //SEG6 [1] (byte~) $1 ← (byte) i#2 + (byte) 4 [ i#2 $1 ] -- aby=xby_plus_coby1 
   txa
   clc
@@ -446,7 +446,7 @@ B1:
   inx
 //SEG9 [4] if((byte) i#1<(byte) 10) goto @1 [ i#1 ] -- xby_lt_coby1_then_la1 
   cpx #$a
-  bcc B1_from_B1
-//SEG10 @END
-BEND:
+  bcc b1_from_b1
+//SEG10 @end
+bend:
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/minus.sym b/src/main/java/dk/camelot64/kickc/test/ref/minus.sym
index 8d18321a5..e14a26bf2 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/minus.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/minus.sym
@@ -1,7 +1,7 @@
 (byte~) $1 reg byte a 22.0
 (label) @1
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) i
 (byte) i#1 reg byte x 16.5
 (byte) i#2 reg byte x 14.666666666666666
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.asm b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.asm
index ccfd5bf10..d12901d94 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.asm
@@ -1,23 +1,25 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-inccnt_from_main:
-  ldy #$0
-  ldx #$0
-  jsr inccnt
-main__B1:
-  sta $400
-  inx
-inccnt_from_B1:
-  jsr inccnt
-main__B2:
-  sta $401
-main__Breturn:
-  rts
-inccnt:
-  inx
-  iny
-  txa
-inccnt__Breturn:
-  rts
+bend:
+main: {
+  inccnt_from_main:
+    ldy #$0
+    ldx #$0
+    jsr inccnt
+  b1:
+    sta $400
+    inx
+  inccnt_from_b1:
+    jsr inccnt
+  b2:
+    sta $401
+  breturn:
+    rts
+}
+inccnt: {
+    inx
+    iny
+    txa
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.cfg b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.cfg
index 284ed57c4..59544de49 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
   to:main::@1
 main::@1: from main
@@ -17,7 +17,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [9] (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte) cnt2#1 ) [ cnt#12 cnt2#11 ]
   [9] (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 ) [ cnt#12 cnt2#11 ]
@@ -27,4 +27,4 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.log b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.log
index dfc760924..91c579cc3 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.log
@@ -60,7 +60,7 @@ SYMBOLS
 (label) main::@return
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte) cnt2 ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
@@ -75,8 +75,8 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 inccnt: from
   (byte) cnt ← ++ (byte) cnt
@@ -86,23 +86,23 @@ inccnt: from
 inccnt::@return: from inccnt inccnt::@1
   (byte) inccnt::return ← (byte) inccnt::return
   return (byte) inccnt::return
-  to:@RETURN
+  to:@return
 inccnt::@1: from
   to:inccnt::@return
 @2: from @1
-  to:@END
-@END: from @2
+  to:@end
+@end: from @2
 
 Removing empty block @1
 Removing empty block inccnt::@1
 Removing empty block @2
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte) cnt2 ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (byte~) main::$0 ← call inccnt 
   *((byte[256]) SCREEN + (byte) 0) ← (byte~) main::$0
@@ -112,7 +112,7 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
+  to:@return
 inccnt: from
   (byte) cnt ← ++ (byte) cnt
   (byte) cnt2 ← ++ (byte) cnt2
@@ -121,8 +121,8 @@ inccnt: from
 inccnt::@return: from inccnt
   (byte) inccnt::return ← (byte) inccnt::return
   return (byte) inccnt::return
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 main modifies cnt
@@ -131,17 +131,17 @@ inccnt modifies cnt
 inccnt modifies cnt2
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte) cnt2 ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
+@3: from @begin
   (byte) cnt ← (byte) cnt
   (byte) cnt2 ← (byte) cnt2
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   (byte) inccnt::return ← call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -162,7 +162,7 @@ main::@return: from main::@2
   (byte) cnt ← (byte) cnt
   (byte) cnt2 ← (byte) cnt2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt ← ++ (byte) cnt
   (byte) cnt2 ← ++ (byte) cnt2
@@ -173,28 +173,28 @@ inccnt::@return: from inccnt
   (byte) cnt ← (byte) cnt
   (byte) cnt2 ← (byte) cnt2
   return (byte) inccnt::return
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte) cnt#0 ← (byte) 0
   (byte) cnt2#0 ← (byte) 0
   (byte[256]) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt2#7 ← phi( @BEGIN/(byte) cnt2#0 )
-  (byte) cnt#8 ← phi( @BEGIN/(byte) cnt#0 )
+@3: from @begin
+  (byte) cnt2#7 ← phi( @begin/(byte) cnt2#0 )
+  (byte) cnt#8 ← phi( @begin/(byte) cnt#0 )
   (byte) cnt#1 ← (byte) cnt#8
   (byte) cnt2#1 ← (byte) cnt2#7
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(byte[256]) SCREEN#0 )
-  (byte) cnt2#13 ← phi( @BEGIN/(byte) cnt2#0 )
-  (byte) cnt#14 ← phi( @BEGIN/(byte) cnt#0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(byte[256]) SCREEN#0 )
+  (byte) cnt2#13 ← phi( @begin/(byte) cnt2#0 )
+  (byte) cnt#14 ← phi( @begin/(byte) cnt#0 )
   (byte) inccnt::return#0 ← call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -225,7 +225,7 @@ main::@return: from main::@2
   (byte) cnt#5 ← (byte) cnt#11
   (byte) cnt2#4 ← (byte) cnt2#10
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) cnt2#13 main::@1/(byte) cnt2#2 )
   (byte) cnt#12 ← phi( main/(byte) cnt#14 main::@1/(byte) cnt#3 )
@@ -241,26 +241,26 @@ inccnt::@return: from inccnt
   (byte) cnt#7 ← (byte) cnt#13
   (byte) cnt2#6 ← (byte) cnt2#12
   return (byte) inccnt::return#3
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte) cnt#0 ← (byte) 0
   (byte) cnt2#0 ← (byte) 0
   (byte[256]) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt2#7 ← phi( @BEGIN/(byte) cnt2#4 )
-  (byte) cnt#8 ← phi( @BEGIN/(byte) cnt#5 )
+@3: from @begin
+  (byte) cnt2#7 ← phi( @begin/(byte) cnt2#4 )
+  (byte) cnt#8 ← phi( @begin/(byte) cnt#5 )
   (byte) cnt#1 ← (byte) cnt#8
   (byte) cnt2#1 ← (byte) cnt2#7
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(byte[256]) SCREEN#0 )
-  (byte) cnt2#13 ← phi( @BEGIN/(byte) cnt2#0 )
-  (byte) cnt#14 ← phi( @BEGIN/(byte) cnt#0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(byte[256]) SCREEN#0 )
+  (byte) cnt2#13 ← phi( @begin/(byte) cnt2#0 )
+  (byte) cnt#14 ← phi( @begin/(byte) cnt#0 )
   call inccnt param-assignment
   (byte) inccnt::return#0 ← (byte) inccnt::return#3
   to:main::@1
@@ -293,7 +293,7 @@ main::@return: from main::@2
   (byte) cnt#5 ← (byte) cnt#11
   (byte) cnt2#4 ← (byte) cnt2#10
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) cnt2#13 main::@1/(byte) cnt2#2 )
   (byte) cnt#12 ← phi( main/(byte) cnt#14 main::@1/(byte) cnt#3 )
@@ -309,27 +309,27 @@ inccnt::@return: from inccnt
   (byte) cnt#7 ← (byte) cnt#13
   (byte) cnt2#6 ← (byte) cnt2#12
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Constant (byte) cnt#0 (byte) 0
 Constant (byte) cnt2#0 (byte) 0
 Constant (byte[256]) SCREEN#0 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt2#7 ← phi( @BEGIN/(byte) cnt2#4 )
-  (byte) cnt#8 ← phi( @BEGIN/(byte) cnt#5 )
+@3: from @begin
+  (byte) cnt2#7 ← phi( @begin/(byte) cnt2#4 )
+  (byte) cnt#8 ← phi( @begin/(byte) cnt#5 )
   (byte) cnt#1 ← (byte) cnt#8
   (byte) cnt2#1 ← (byte) cnt2#7
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(word) 1024 )
-  (byte) cnt2#13 ← phi( @BEGIN/(byte) 0 )
-  (byte) cnt#14 ← phi( @BEGIN/(byte) 0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(word) 1024 )
+  (byte) cnt2#13 ← phi( @begin/(byte) 0 )
+  (byte) cnt#14 ← phi( @begin/(byte) 0 )
   call inccnt param-assignment
   (byte) inccnt::return#0 ← (byte) inccnt::return#3
   to:main::@1
@@ -362,7 +362,7 @@ main::@return: from main::@2
   (byte) cnt#5 ← (byte) cnt#11
   (byte) cnt2#4 ← (byte) cnt2#10
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) cnt2#13 main::@1/(byte) cnt2#2 )
   (byte) cnt#12 ← phi( main/(byte) cnt#14 main::@1/(byte) cnt#3 )
@@ -378,8 +378,8 @@ inccnt::@return: from inccnt
   (byte) cnt#7 ← (byte) cnt#13
   (byte) cnt2#6 ← (byte) cnt2#12
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Not aliassing across scopes: main::$0 inccnt::return#4
 Not aliassing across scopes: main::$1 inccnt::return#5
@@ -390,15 +390,15 @@ Alias (byte) inccnt::return#0 = (byte) inccnt::return#3 (byte) inccnt::return#4
 Alias (byte[256]) SCREEN#1 = (byte[256]) SCREEN#3 (byte[256]) SCREEN#2 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#1 ← phi( @BEGIN/(word) 1024 )
-  (byte) cnt2#13 ← phi( @BEGIN/(byte) 0 )
-  (byte) cnt#14 ← phi( @BEGIN/(byte) 0 )
+@3: from @begin
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#1 ← phi( @begin/(word) 1024 )
+  (byte) cnt2#13 ← phi( @begin/(byte) 0 )
+  (byte) cnt#14 ← phi( @begin/(byte) 0 )
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -413,7 +413,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) cnt2#13 main::@1/(byte) cnt2#1 )
   (byte) cnt#12 ← phi( main/(byte) cnt#14 main::@1/(byte) cnt#3 )
@@ -423,20 +423,20 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Redundant Phi (byte) cnt#14 (byte) 0
 Redundant Phi (byte) cnt2#13 (byte) 0
 Redundant Phi (byte[256]) SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
+@3: from @begin
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -451,7 +451,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte) cnt2#1 )
   (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
@@ -461,16 +461,16 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Culled Empty Block (label) @3
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -485,7 +485,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte) cnt2#1 )
   (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
@@ -495,17 +495,17 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Consolidated assigned array index constant in assignment *(1024)
 Consolidated assigned array index constant in assignment *(1025)
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -520,7 +520,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte) cnt2#1 )
   (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
@@ -530,8 +530,8 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Not aliassing across scopes: main::$0 inccnt::return#0
 Not aliassing across scopes: main::$1 inccnt::return#0
@@ -539,14 +539,14 @@ Not aliassing across scopes: inccnt::return#0 cnt#1
 Not aliassing across scopes: main::$0 inccnt::return#0
 Not aliassing across scopes: main::$1 inccnt::return#0
 Not aliassing across scopes: inccnt::return#0 cnt#1
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -563,7 +563,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte~) cnt2#14 )
   (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte~) cnt#15 )
@@ -573,7 +573,7 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
+  to:@return
 
 Propagating live ranges...
 Propagating live ranges...
@@ -583,11 +583,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
   to:main::@1
 main::@1: from main
@@ -604,7 +604,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [10] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [11] (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte~) cnt2#14 ) [ cnt#12 cnt2#11 ]
   [11] (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte~) cnt#15 ) [ cnt#12 cnt2#11 ]
@@ -614,13 +614,13 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   [15] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  to:@RETURN
+  to:@return
 
 Created 2 initial phi equivalence classes
 Coalesced [5] cnt#15 ← cnt#3
 Coalesced [6] cnt2#14 ← cnt2#1
 Coalesced down to 2 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -628,11 +628,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
   to:main::@1
 main::@1: from main
@@ -647,7 +647,7 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [9] (byte) cnt2#11 ← phi( main/(byte) 0 main::@1/(byte) cnt2#1 ) [ cnt#12 cnt2#11 ]
   [9] (byte) cnt#12 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 ) [ cnt#12 cnt2#11 ]
@@ -657,21 +657,21 @@ inccnt: from main main::@1
   to:inccnt::@return
 inccnt::@return: from inccnt
   [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 Calls in [main] to 1:inccnt 5:inccnt 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
-main::@return dominated by  @BEGIN main::@return main::@2 main::@1 main 
-inccnt dominated by  @BEGIN inccnt main 
-inccnt::@return dominated by  inccnt::@return @BEGIN inccnt main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
+main::@return dominated by  main::@return @begin main::@2 main::@1 main 
+inccnt dominated by  inccnt @begin main 
+inccnt::@return dominated by  inccnt::@return inccnt @begin main 
 
 NATURAL LOOPS
 
@@ -718,74 +718,76 @@ Allocated zp byte:5 to zp byte:5 [ main::$1 ]
 Allocated zp byte:6 to zp byte:6 [ cnt#1 ]
 Allocated zp byte:7 to zp byte:7 [ inccnt::return#0 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
-//SEG5 [9] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $3
-//SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-  jsr inccnt
-  jmp main__B1
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ] -- zpby1=zpby2 
-  lda $7
-  sta $4
-//SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=zpby1 
-  lda $4
-  sta $400
-//SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- zpby1=_inc_zpby2 
-  lda $6
-  sta $2
-  inc $2
-//SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
-//SEG13 [9] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
-//SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-  jmp main__B2
-//SEG16 main::@2
-main__B2:
-//SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ] -- zpby1=zpby2 
-  lda $7
-  sta $5
-//SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=zpby1 
-  lda $5
-  sta $401
-  jmp main__Breturn
-//SEG19 main::@return
-main__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
+  //SEG5 [9] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $3
+  //SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+    jsr inccnt
+    jmp b1
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ] -- zpby1=zpby2 
+    lda $7
+    sta $4
+  //SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=zpby1 
+    lda $4
+    sta $400
+  //SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- zpby1=_inc_zpby2 
+    lda $6
+    sta $2
+    inc $2
+  //SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
+  //SEG13 [9] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
+  //SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+    jmp b2
+  //SEG16 main::@2
+  b2:
+  //SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ] -- zpby1=zpby2 
+    lda $7
+    sta $5
+  //SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=zpby1 
+    lda $5
+    sta $401
+    jmp breturn
+  //SEG19 main::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 inccnt
-inccnt:
-//SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- zpby1=_inc_zpby2 
-  lda $2
-  sta $6
-  inc $6
-//SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- zpby1=_inc_zpby1 
-  inc $3
-//SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- zpby1=zpby2 
-  lda $6
-  sta $7
-  jmp inccnt__Breturn
-//SEG25 inccnt::@return
-inccnt__Breturn:
-//SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  rts
+inccnt: {
+  //SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- zpby1=_inc_zpby2 
+    lda $2
+    sta $6
+    inc $6
+  //SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- zpby1=_inc_zpby1 
+    inc $3
+  //SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- zpby1=zpby2 
+    lda $6
+    sta $7
+    jmp breturn
+  //SEG25 inccnt::@return
+  breturn:
+  //SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
+    rts
+}
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ cnt#12 cnt#3 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -803,69 +805,71 @@ Uplift Scope [inccnt] 1.5: zp byte:7 [ inccnt::return#0 ]
 Uplifting [] best 84 combination reg byte x [ cnt#12 cnt#3 ] reg byte y [ cnt2#11 cnt2#1 ] reg byte x [ cnt#1 ] 
 Uplifting [main] best 72 combination reg byte a [ main::$0 ] reg byte a [ main::$1 ] 
 Uplifting [inccnt] best 65 combination reg byte a [ inccnt::return#0 ] 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__B2
-Removing instruction jmp main__Breturn
-Removing instruction jmp inccnt__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp breturn
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
-//SEG5 [9] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jsr inccnt
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ]
-  // (byte~) main::$0 = (byte) inccnt::return#0  // register copy reg byte a
-//SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=aby 
-  sta $400
-//SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- xby=_inc_xby 
-  inx
-//SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
-//SEG13 [9] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
-//SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-//SEG16 main::@2
-main__B2:
-//SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ]
-  // (byte~) main::$1 = (byte) inccnt::return#0  // register copy reg byte a
-//SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=aby 
-  sta $401
-//SEG19 main::@return
-main__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
+  //SEG5 [9] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jsr inccnt
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ]
+    // (byte~) main::$0 = (byte) inccnt::return#0  // register copy reg byte a
+  //SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=aby 
+    sta $400
+  //SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- xby=_inc_xby 
+    inx
+  //SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
+  //SEG13 [9] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
+  //SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+  //SEG16 main::@2
+  b2:
+  //SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ]
+    // (byte~) main::$1 = (byte) inccnt::return#0  // register copy reg byte a
+  //SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=aby 
+    sta $401
+  //SEG19 main::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 inccnt
-inccnt:
-//SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- xby=_inc_xby 
-  inx
-//SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- yby=_inc_yby 
-  iny
-//SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- aby=xby 
-  txa
-//SEG25 inccnt::@return
-inccnt__Breturn:
-//SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  rts
+inccnt: {
+  //SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- xby=_inc_xby 
+    inx
+  //SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- yby=_inc_yby 
+    iny
+  //SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- aby=xby 
+    txa
+  //SEG25 inccnt::@return
+  breturn:
+  //SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[256]) SCREEN
 (byte) cnt
 (byte) cnt#1 reg byte x 0.8571428571428571
@@ -893,56 +897,58 @@ reg byte x [ cnt#1 ]
 reg byte a [ inccnt::return#0 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
-//SEG5 [9] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jsr inccnt
-//SEG8 main::@1
-main__B1:
-//SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ]
-  // (byte~) main::$0 = (byte) inccnt::return#0  // register copy reg byte a
-//SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=aby 
-  sta $400
-//SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- xby=_inc_xby 
-  inx
-//SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
-//SEG13 [9] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
-//SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-//SEG16 main::@2
-main__B2:
-//SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ]
-  // (byte~) main::$1 = (byte) inccnt::return#0  // register copy reg byte a
-//SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=aby 
-  sta $401
-//SEG19 main::@return
-main__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ inccnt::return#0 cnt#1 cnt2#1 ]
+  //SEG5 [9] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [9] phi (byte) cnt2#11 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG7 [9] phi (byte) cnt#12 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jsr inccnt
+  //SEG8 main::@1
+  b1:
+  //SEG9 [2] (byte~) main::$0 ← (byte) inccnt::return#0 [ main::$0 cnt#1 cnt2#1 ]
+    // (byte~) main::$0 = (byte) inccnt::return#0  // register copy reg byte a
+  //SEG10 [3] *((word) 1024) ← (byte~) main::$0 [ cnt#1 cnt2#1 ] -- _star_cowo1=aby 
+    sta $400
+  //SEG11 [4] (byte) cnt#3 ← ++ (byte) cnt#1 [ cnt#3 cnt2#1 ] -- xby=_inc_xby 
+    inx
+  //SEG12 [5] call inccnt param-assignment [ inccnt::return#0 ]
+  //SEG13 [9] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG14 [9] phi (byte) cnt2#11 = (byte) cnt2#1 -- register_copy 
+  //SEG15 [9] phi (byte) cnt#12 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+  //SEG16 main::@2
+  b2:
+  //SEG17 [6] (byte~) main::$1 ← (byte) inccnt::return#0 [ main::$1 ]
+    // (byte~) main::$1 = (byte) inccnt::return#0  // register copy reg byte a
+  //SEG18 [7] *((word) 1025) ← (byte~) main::$1 [ ] -- _star_cowo1=aby 
+    sta $401
+  //SEG19 main::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 inccnt
-inccnt:
-//SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- xby=_inc_xby 
-  inx
-//SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- yby=_inc_yby 
-  iny
-//SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- aby=xby 
-  txa
-//SEG25 inccnt::@return
-inccnt__Breturn:
-//SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
-  rts
+inccnt: {
+  //SEG22 [10] (byte) cnt#1 ← ++ (byte) cnt#12 [ cnt#1 cnt2#11 ] -- xby=_inc_xby 
+    inx
+  //SEG23 [11] (byte) cnt2#1 ← ++ (byte) cnt2#11 [ cnt#1 cnt2#1 ] -- yby=_inc_yby 
+    iny
+  //SEG24 [12] (byte) inccnt::return#0 ← (byte) cnt#1 [ inccnt::return#0 cnt#1 cnt2#1 ] -- aby=xby 
+    txa
+  //SEG25 inccnt::@return
+  breturn:
+  //SEG26 [13] return  [ inccnt::return#0 cnt#1 cnt2#1 ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.sym b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.sym
index 05188cb40..e3eaf08cc 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobal.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobal.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[256]) SCREEN
 (byte) cnt
 (byte) cnt#1 reg byte x 0.8571428571428571
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.asm b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.asm
index cf4500246..91311dae2 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.asm
@@ -1,21 +1,23 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-inccnt_from_main:
-  ldx #$0
-  jsr inccnt
-main__B1:
-  stx $400
-  inx
-inccnt_from_B1:
-  jsr inccnt
-main__B2:
-  inx
-  stx $401
-main__Breturn:
-  rts
-inccnt:
-  inx
-inccnt__Breturn:
-  rts
+bend:
+main: {
+  inccnt_from_main:
+    ldx #$0
+    jsr inccnt
+  b1:
+    stx $400
+    inx
+  inccnt_from_b1:
+    jsr inccnt
+  b2:
+    inx
+    stx $401
+  breturn:
+    rts
+}
+inccnt: {
+    inx
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.cfg b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.cfg
index 3d2e13159..2b64a99f3 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ cnt#10 ]
   to:main::@1
 main::@1: from main
@@ -16,11 +16,11 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [7] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [8] (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 ) [ cnt#13 ]
   [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ]
   to:inccnt::@return
 inccnt::@return: from inccnt
   [10] return  [ cnt#10 ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.log b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.log
index b2f52b0fd..943b5e418 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.log
@@ -52,7 +52,7 @@ SYMBOLS
 (label) main::@return
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
   (void~) $0 ← call main 
@@ -67,27 +67,27 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 inccnt: from
   (byte) cnt ← ++ (byte) cnt
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
-  to:@END
-@END: from @2
+  to:@end
+@end: from @2
 
 Removing empty block @1
 Removing empty block @2
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (void~) main::$0 ← call inccnt 
   *((byte[256]) SCREEN + (byte) 0) ← (byte) cnt
@@ -98,29 +98,29 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
+  to:@return
 inccnt: from
   (byte) cnt ← ++ (byte) cnt
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 main modifies cnt
 inccnt modifies cnt
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte) cnt ← (byte) 0
   (byte[256]) SCREEN ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
+@3: from @begin
   (byte) cnt ← (byte) cnt
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -137,31 +137,31 @@ main::@2: from main::@1
 main::@return: from main::@2
   (byte) cnt ← (byte) cnt
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt ← ++ (byte) cnt
   to:inccnt::@return
 inccnt::@return: from inccnt
   (byte) cnt ← (byte) cnt
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte) cnt#0 ← (byte) 0
   (byte[256]) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt#9 ← phi( @BEGIN/(byte) cnt#0 )
+@3: from @begin
+  (byte) cnt#9 ← phi( @begin/(byte) cnt#0 )
   (byte) cnt#1 ← (byte) cnt#9
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(byte[256]) SCREEN#0 )
-  (byte) cnt#15 ← phi( @BEGIN/(byte) cnt#0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(byte[256]) SCREEN#0 )
+  (byte) cnt#15 ← phi( @begin/(byte) cnt#0 )
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -183,7 +183,7 @@ main::@return: from main::@2
   (byte) cnt#12 ← phi( main::@2/(byte) cnt#5 )
   (byte) cnt#6 ← (byte) cnt#12
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) cnt#15 main::@1/(byte) cnt#3 )
   (byte) cnt#7 ← ++ (byte) cnt#13
@@ -192,22 +192,22 @@ inccnt::@return: from inccnt
   (byte) cnt#14 ← phi( inccnt/(byte) cnt#7 )
   (byte) cnt#8 ← (byte) cnt#14
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte) cnt#0 ← (byte) 0
   (byte[256]) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt#9 ← phi( @BEGIN/(byte) cnt#6 )
+@3: from @begin
+  (byte) cnt#9 ← phi( @begin/(byte) cnt#6 )
   (byte) cnt#1 ← (byte) cnt#9
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(byte[256]) SCREEN#0 )
-  (byte) cnt#15 ← phi( @BEGIN/(byte) cnt#0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(byte[256]) SCREEN#0 )
+  (byte) cnt#15 ← phi( @begin/(byte) cnt#0 )
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -229,7 +229,7 @@ main::@return: from main::@2
   (byte) cnt#12 ← phi( main::@2/(byte) cnt#5 )
   (byte) cnt#6 ← (byte) cnt#12
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) cnt#15 main::@1/(byte) cnt#3 )
   (byte) cnt#7 ← ++ (byte) cnt#13
@@ -238,23 +238,23 @@ inccnt::@return: from inccnt
   (byte) cnt#14 ← phi( inccnt/(byte) cnt#7 )
   (byte) cnt#8 ← (byte) cnt#14
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Constant (byte) cnt#0 (byte) 0
 Constant (byte[256]) SCREEN#0 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  (byte) cnt#9 ← phi( @BEGIN/(byte) cnt#6 )
+@3: from @begin
+  (byte) cnt#9 ← phi( @begin/(byte) cnt#6 )
   (byte) cnt#1 ← (byte) cnt#9
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#3 ← phi( @BEGIN/(word) 1024 )
-  (byte) cnt#15 ← phi( @BEGIN/(byte) 0 )
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#3 ← phi( @begin/(word) 1024 )
+  (byte) cnt#15 ← phi( @begin/(byte) 0 )
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -276,7 +276,7 @@ main::@return: from main::@2
   (byte) cnt#12 ← phi( main::@2/(byte) cnt#5 )
   (byte) cnt#6 ← (byte) cnt#12
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) cnt#15 main::@1/(byte) cnt#3 )
   (byte) cnt#7 ← ++ (byte) cnt#13
@@ -285,22 +285,22 @@ inccnt::@return: from inccnt
   (byte) cnt#14 ← phi( inccnt/(byte) cnt#7 )
   (byte) cnt#8 ← (byte) cnt#14
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Alias (byte) cnt#1 = (byte) cnt#9 (byte) cnt#6 (byte) cnt#12 (byte) cnt#5 
 Alias (byte) cnt#10 = (byte) cnt#8 (byte) cnt#2 (byte) cnt#11 (byte) cnt#4 (byte) cnt#14 (byte) cnt#7 
 Alias (byte[256]) SCREEN#1 = (byte[256]) SCREEN#3 (byte[256]) SCREEN#2 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte[256]) SCREEN#1 ← phi( @BEGIN/(word) 1024 )
-  (byte) cnt#15 ← phi( @BEGIN/(byte) 0 )
+@3: from @begin
+  to:@end
+main: from @begin
+  (byte[256]) SCREEN#1 ← phi( @begin/(word) 1024 )
+  (byte) cnt#15 ← phi( @begin/(byte) 0 )
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -314,26 +314,26 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) cnt#15 main::@1/(byte) cnt#3 )
   (byte) cnt#10 ← ++ (byte) cnt#13
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Redundant Phi (byte) cnt#15 (byte) 0
 Redundant Phi (byte[256]) SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@3
-@3: from @BEGIN
-  to:@END
-main: from @BEGIN
+@3: from @begin
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -347,23 +347,23 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
   (byte) cnt#10 ← ++ (byte) cnt#13
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @3
+  to:@return
+@end: from @3
 
 Culled Empty Block (label) @3
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -377,24 +377,24 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
   (byte) cnt#10 ← ++ (byte) cnt#13
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Consolidated assigned array index constant in assignment *(1024)
 Consolidated assigned array index constant in assignment *(1025)
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -408,24 +408,24 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 )
   (byte) cnt#10 ← ++ (byte) cnt#13
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   call inccnt param-assignment
   to:main::@1
 main::@1: from main
@@ -440,23 +440,23 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte~) cnt#16 )
   (byte) cnt#10 ← ++ (byte) cnt#13
   to:inccnt::@return
 inccnt::@return: from inccnt
   return 
-  to:@RETURN
+  to:@return
 
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ cnt#10 ]
   to:main::@1
 main::@1: from main
@@ -471,27 +471,27 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [9] (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte~) cnt#16 ) [ cnt#13 ]
   [10] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ]
   to:inccnt::@return
 inccnt::@return: from inccnt
   [11] return  [ cnt#10 ]
-  to:@RETURN
+  to:@return
 
 Created 1 initial phi equivalence classes
 Coalesced [4] cnt#16 ← cnt#3
 Coalesced down to 1 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@return inccnt inccnt::@return 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@return inccnt inccnt::@return 
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call inccnt param-assignment [ cnt#10 ]
   to:main::@1
 main::@1: from main
@@ -505,28 +505,28 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   [7] return  [ ]
-  to:@RETURN
+  to:@return
 inccnt: from main main::@1
   [8] (byte) cnt#13 ← phi( main/(byte) 0 main::@1/(byte) cnt#3 ) [ cnt#13 ]
   [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ]
   to:inccnt::@return
 inccnt::@return: from inccnt
   [10] return  [ cnt#10 ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 Calls in [main] to 1:inccnt 4:inccnt 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
-main::@return dominated by  @BEGIN main::@return main::@2 main::@1 main 
-inccnt dominated by  @BEGIN inccnt main 
-inccnt::@return dominated by  inccnt::@return @BEGIN inccnt main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
+main::@return dominated by  main::@return @begin main::@2 main::@1 main 
+inccnt dominated by  inccnt @begin main 
+inccnt::@return dominated by  inccnt::@return inccnt @begin main 
 
 NATURAL LOOPS
 
@@ -558,63 +558,65 @@ Allocated zp byte:2 to zp byte:2 [ cnt#13 cnt#3 ]
 Allocated zp byte:3 to zp byte:3 [ cnt#1 ]
 Allocated zp byte:4 to zp byte:4 [ cnt#10 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ cnt#10 ]
-//SEG5 [8] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-  jsr inccnt
-  jmp main__B1
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=zpby1 
-  lda $4
-  sta $400
-//SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- zpby1=_inc_zpby2 
-  lda $4
-  sta $2
-  inc $2
-//SEG10 [4] call inccnt param-assignment [ cnt#10 ]
-//SEG11 [8] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-  jmp main__B2
-//SEG13 main::@2
-main__B2:
-//SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- zpby1=_inc_zpby2 
-  lda $4
-  sta $3
-  inc $3
-//SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=zpby1 
-  lda $3
-  sta $401
-  jmp main__Breturn
-//SEG16 main::@return
-main__Breturn:
-//SEG17 [7] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ cnt#10 ]
+  //SEG5 [8] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+    jsr inccnt
+    jmp b1
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=zpby1 
+    lda $4
+    sta $400
+  //SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- zpby1=_inc_zpby2 
+    lda $4
+    sta $2
+    inc $2
+  //SEG10 [4] call inccnt param-assignment [ cnt#10 ]
+  //SEG11 [8] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+    jmp b2
+  //SEG13 main::@2
+  b2:
+  //SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- zpby1=_inc_zpby2 
+    lda $4
+    sta $3
+    inc $3
+  //SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=zpby1 
+    lda $3
+    sta $401
+    jmp breturn
+  //SEG16 main::@return
+  breturn:
+  //SEG17 [7] return  [ ]
+    rts
+}
 //SEG18 inccnt
-inccnt:
-//SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- zpby1=_inc_zpby2 
-  lda $2
-  sta $4
-  inc $4
-  jmp inccnt__Breturn
-//SEG20 inccnt::@return
-inccnt__Breturn:
-//SEG21 [10] return  [ cnt#10 ]
-  rts
+inccnt: {
+  //SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- zpby1=_inc_zpby2 
+    lda $2
+    sta $4
+    inc $4
+    jmp breturn
+  //SEG20 inccnt::@return
+  breturn:
+  //SEG21 [10] return  [ cnt#10 ]
+    rts
+}
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ cnt#13 cnt#3 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -629,60 +631,62 @@ Uplift Scope [inccnt]
 Uplifting [] best 61 combination reg byte x [ cnt#13 cnt#3 ] reg byte x [ cnt#1 ] reg byte x [ cnt#10 ] 
 Uplifting [main] best 61 combination 
 Uplifting [inccnt] best 61 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__B2
-Removing instruction jmp main__Breturn
-Removing instruction jmp inccnt__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp breturn
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ cnt#10 ]
-//SEG5 [8] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jsr inccnt
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=xby 
-  stx $400
-//SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- xby=_inc_xby 
-  inx
-//SEG10 [4] call inccnt param-assignment [ cnt#10 ]
-//SEG11 [8] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-//SEG13 main::@2
-main__B2:
-//SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- xby=_inc_xby 
-  inx
-//SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=xby 
-  stx $401
-//SEG16 main::@return
-main__Breturn:
-//SEG17 [7] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ cnt#10 ]
+  //SEG5 [8] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jsr inccnt
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=xby 
+    stx $400
+  //SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- xby=_inc_xby 
+    inx
+  //SEG10 [4] call inccnt param-assignment [ cnt#10 ]
+  //SEG11 [8] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+  //SEG13 main::@2
+  b2:
+  //SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- xby=_inc_xby 
+    inx
+  //SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=xby 
+    stx $401
+  //SEG16 main::@return
+  breturn:
+  //SEG17 [7] return  [ ]
+    rts
+}
 //SEG18 inccnt
-inccnt:
-//SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- xby=_inc_xby 
-  inx
-//SEG20 inccnt::@return
-inccnt__Breturn:
-//SEG21 [10] return  [ cnt#10 ]
-  rts
+inccnt: {
+  //SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- xby=_inc_xby 
+    inx
+  //SEG20 inccnt::@return
+  breturn:
+  //SEG21 [10] return  [ cnt#10 ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[256]) SCREEN
 (byte) cnt
 (byte) cnt#1 reg byte x 4.0
@@ -701,47 +705,49 @@ reg byte x [ cnt#1 ]
 reg byte x [ cnt#10 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call inccnt param-assignment [ cnt#10 ]
-//SEG5 [8] phi from main to inccnt
-inccnt_from_main:
-//SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jsr inccnt
-//SEG7 main::@1
-main__B1:
-//SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=xby 
-  stx $400
-//SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- xby=_inc_xby 
-  inx
-//SEG10 [4] call inccnt param-assignment [ cnt#10 ]
-//SEG11 [8] phi from main::@1 to inccnt
-inccnt_from_B1:
-//SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
-  jsr inccnt
-//SEG13 main::@2
-main__B2:
-//SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- xby=_inc_xby 
-  inx
-//SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=xby 
-  stx $401
-//SEG16 main::@return
-main__Breturn:
-//SEG17 [7] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call inccnt param-assignment [ cnt#10 ]
+  //SEG5 [8] phi from main to inccnt
+  inccnt_from_main:
+  //SEG6 [8] phi (byte) cnt#13 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jsr inccnt
+  //SEG7 main::@1
+  b1:
+  //SEG8 [2] *((word) 1024) ← (byte) cnt#10 [ cnt#10 ] -- _star_cowo1=xby 
+    stx $400
+  //SEG9 [3] (byte) cnt#3 ← ++ (byte) cnt#10 [ cnt#3 ] -- xby=_inc_xby 
+    inx
+  //SEG10 [4] call inccnt param-assignment [ cnt#10 ]
+  //SEG11 [8] phi from main::@1 to inccnt
+  inccnt_from_b1:
+  //SEG12 [8] phi (byte) cnt#13 = (byte) cnt#3 -- register_copy 
+    jsr inccnt
+  //SEG13 main::@2
+  b2:
+  //SEG14 [5] (byte) cnt#1 ← ++ (byte) cnt#10 [ cnt#1 ] -- xby=_inc_xby 
+    inx
+  //SEG15 [6] *((word) 1025) ← (byte) cnt#1 [ ] -- _star_cowo1=xby 
+    stx $401
+  //SEG16 main::@return
+  breturn:
+  //SEG17 [7] return  [ ]
+    rts
+}
 //SEG18 inccnt
-inccnt:
-//SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- xby=_inc_xby 
-  inx
-//SEG20 inccnt::@return
-inccnt__Breturn:
-//SEG21 [10] return  [ cnt#10 ]
-  rts
+inccnt: {
+  //SEG19 [9] (byte) cnt#10 ← ++ (byte) cnt#13 [ cnt#10 ] -- xby=_inc_xby 
+    inx
+  //SEG20 inccnt::@return
+  breturn:
+  //SEG21 [10] return  [ cnt#10 ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.sym b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.sym
index 0ccd4a4be..3d65693a5 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/modglobalmin.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte[256]) SCREEN
 (byte) cnt
 (byte) cnt#1 reg byte x 4.0
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.asm b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.asm
index 63f257e42..51ff4abbd 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.asm
@@ -1,29 +1,31 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-  jsr lvalue
-main__B1:
-  jsr rvalue
-main__B2:
-  jsr rvaluevar
-main__B3:
-  jsr lvaluevar
-main__Breturn:
-  rts
-lvaluevar:
-lvaluevar__B1_from_lvaluevar:
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-  ldx #$2
-lvaluevar__B1:
-  cpx #$a
-  bcc lvaluevar__B2
-lvaluevar__Breturn:
-  rts
-lvaluevar__B2:
+bend:
+main: {
+    jsr lvalue
+  b1:
+    jsr rvalue
+  b2:
+    jsr rvaluevar
+  b3:
+    jsr lvaluevar
+  breturn:
+    rts
+}
+lvaluevar: {
+  b1_from_lvaluevar:
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+    ldx #$2
+  b1:
+    cpx #$a
+    bcc b2
+  breturn:
+    rts
+}
+b2:
   ldy #$0
   lda #$4
   sta ($2),y
@@ -32,21 +34,22 @@ lvaluevar__B2:
   inc $2+$1
 !:
   inx
-lvaluevar__B1_from_B2:
-  jmp lvaluevar__B1
-rvaluevar:
-rvaluevar__B1_from_rvaluevar:
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-  ldx #$2
-rvaluevar__B1:
-  cpx #$a
-  bcc rvaluevar__B2
-rvaluevar__Breturn:
-  rts
-rvaluevar__B2:
+b1_from_b2:
+  jmp b1
+rvaluevar: {
+  b1_from_rvaluevar:
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+    ldx #$2
+  b1:
+    cpx #$a
+    bcc b2
+  breturn:
+    rts
+}
+b2:
   ldy #$0
   lda ($2),y
   inc $2
@@ -54,38 +57,40 @@ rvaluevar__B2:
   inc $2+$1
 !:
   inx
-rvaluevar__B1_from_B2:
-  jmp rvaluevar__B1
-rvalue:
-  lda $400
-  lda $401
-rvalue__B1_from_rvalue:
-  ldx #$2
-rvalue__B1:
-  cpx #$a
-  bcc rvalue__B2
-rvalue__Breturn:
-  rts
-rvalue__B2:
+b1_from_b2:
+  jmp b1
+rvalue: {
+    lda $400
+    lda $401
+  b1_from_rvalue:
+    ldx #$2
+  b1:
+    cpx #$a
+    bcc b2
+  breturn:
+    rts
+}
+b2:
   lda $400,x
   inx
-rvalue__B1_from_B2:
-  jmp rvalue__B1
-lvalue:
-  lda #$1
-  sta $400
-  lda #$2
-  sta $401
-lvalue__B1_from_lvalue:
-  ldx #$2
-lvalue__B1:
-  cpx #$a
-  bcc lvalue__B2
-lvalue__Breturn:
-  rts
-lvalue__B2:
+b1_from_b2:
+  jmp b1
+lvalue: {
+    lda #$1
+    sta $400
+    lda #$2
+    sta $401
+  b1_from_lvalue:
+    ldx #$2
+  b1:
+    cpx #$a
+    bcc b2
+  breturn:
+    rts
+}
+b2:
   lda #$3
   sta $400,x
   inx
-lvalue__B1_from_B2:
-  jmp lvalue__B1
+b1_from_b2:
+  jmp b1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.cfg b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.cfg
index 28477bf97..cc7152aea 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call lvalue param-assignment [ ]
   to:main::@1
 main::@1: from main
@@ -16,7 +16,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -26,7 +26,7 @@ lvaluevar::@1: from lvaluevar lvaluevar::@2
   to:lvaluevar::@return
 lvaluevar::@return: from lvaluevar::@1
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar::@2: from lvaluevar::@1
   [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ]
   [10] (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2 [ lvaluevar::screen#1 lvaluevar::i#2 ]
@@ -41,7 +41,7 @@ rvaluevar::@1: from rvaluevar rvaluevar::@2
   to:rvaluevar::@return
 rvaluevar::@return: from rvaluevar::@1
   [14] return  [ ]
-  to:@RETURN
+  to:@return
 rvaluevar::@2: from rvaluevar::@1
   [15] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ]
   [16] (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2 [ rvaluevar::screen#1 rvaluevar::i#2 ]
@@ -57,7 +57,7 @@ rvalue::@1: from rvalue rvalue::@2
   to:rvalue::@return
 rvalue::@return: from rvalue::@1
   [22] return  [ ]
-  to:@RETURN
+  to:@return
 rvalue::@2: from rvalue::@1
   [23] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ]
   [24] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ]
@@ -72,7 +72,7 @@ lvalue::@1: from lvalue lvalue::@2
   to:lvalue::@return
 lvalue::@return: from lvalue::@1
   [29] return  [ ]
-  to:@RETURN
+  to:@return
 lvalue::@2: from lvalue::@1
   [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ]
   [31] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ]
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log
index c5ff7a945..624eb91b9 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.log
@@ -211,7 +211,7 @@ SYMBOLS
 (byte*) rvaluevar::screen
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
   to:@1
 main: from
@@ -222,8 +222,8 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 lvalue: from
   (byte[1024]) lvalue::SCREEN ← (word) 1024
@@ -249,7 +249,7 @@ lvalue::@6: from
   to:lvalue::@3
 lvalue::@return: from lvalue::@3
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
   to:@3
 rvalue: from
@@ -279,7 +279,7 @@ rvalue::@6: from
   to:rvalue::@3
 rvalue::@return: from rvalue::@3
   return 
-  to:@RETURN
+  to:@return
 @3: from @2
   to:@4
 lvaluevar: from
@@ -306,7 +306,7 @@ lvaluevar::@6: from
   to:lvaluevar::@3
 lvaluevar::@return: from lvaluevar::@3
   return 
-  to:@RETURN
+  to:@return
 @4: from @3
   to:@5
 rvaluevar: from
@@ -333,10 +333,10 @@ rvaluevar::@6: from
   to:rvaluevar::@3
 rvaluevar::@return: from rvaluevar::@3
   return 
-  to:@RETURN
+  to:@return
 @5: from @4
-  to:@END
-@END: from @5
+  to:@end
+@end: from @5
 
 Removing empty block @1
 Removing empty block lvalue::@4
@@ -360,9 +360,9 @@ Removing empty block rvaluevar::@5
 Removing empty block rvaluevar::@6
 Removing empty block @5
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (void~) main::$0 ← call lvalue 
   (void~) main::$1 ← call rvalue 
@@ -371,7 +371,7 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
+  to:@return
 lvalue: from
   (byte[1024]) lvalue::SCREEN ← (word) 1024
   *((byte[1024]) lvalue::SCREEN) ← (byte) 1
@@ -388,7 +388,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from
   (byte[1024]) rvalue::SCREEN ← (word) 1024
   (byte~) rvalue::$0 ← * (byte[1024]) rvalue::SCREEN
@@ -408,7 +408,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from
   (byte*) lvaluevar::screen ← (word) 1024
   (byte) lvaluevar::b ← (byte) 4
@@ -425,7 +425,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from
   (byte*) rvaluevar::screen ← (word) 1024
   (byte) rvaluevar::i ← (byte) 2
@@ -442,18 +442,18 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@6
-@6: from @BEGIN
-  to:@END
-main: from @BEGIN
+@6: from @begin
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -469,7 +469,7 @@ main::@4: from main::@3
   to:main::@return
 main::@return: from main::@4
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   (byte[1024]) lvalue::SCREEN ← (word) 1024
   *((byte[1024]) lvalue::SCREEN) ← (byte) 1
@@ -486,7 +486,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte[1024]) rvalue::SCREEN ← (word) 1024
   (byte~) rvalue::$0 ← * (byte[1024]) rvalue::SCREEN
@@ -506,7 +506,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   (byte*) lvaluevar::screen ← (word) 1024
   (byte) lvaluevar::b ← (byte) 4
@@ -523,7 +523,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   (byte*) rvaluevar::screen ← (word) 1024
   (byte) rvaluevar::i ← (byte) 2
@@ -540,18 +540,18 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @6
+  to:@return
+@end: from @6
 
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@6
-@6: from @BEGIN
-  to:@END
-main: from @BEGIN
+@6: from @begin
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -567,7 +567,7 @@ main::@4: from main::@3
   to:main::@return
 main::@return: from main::@4
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   (byte[1024]) lvalue::SCREEN#0 ← (word) 1024
   *((byte[1024]) lvalue::SCREEN#0) ← (byte) 1
@@ -588,7 +588,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte[1024]) rvalue::SCREEN#0 ← (word) 1024
   (byte~) rvalue::$0 ← * (byte[1024]) rvalue::SCREEN#0
@@ -612,7 +612,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   (byte*) lvaluevar::screen#0 ← (word) 1024
   (byte) lvaluevar::b#0 ← (byte) 4
@@ -635,7 +635,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   (byte*) rvaluevar::screen#0 ← (word) 1024
   (byte) rvaluevar::i#0 ← (byte) 2
@@ -656,16 +656,16 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @6
+  to:@return
+@end: from @6
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@6
-@6: from @BEGIN
-  to:@END
-main: from @BEGIN
+@6: from @begin
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -681,7 +681,7 @@ main::@4: from main::@3
   to:main::@return
 main::@return: from main::@4
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   (byte[1024]) lvalue::SCREEN#0 ← (word) 1024
   *((byte[1024]) lvalue::SCREEN#0) ← (byte) 1
@@ -702,7 +702,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte[1024]) rvalue::SCREEN#0 ← (word) 1024
   (byte~) rvalue::$0 ← * (byte[1024]) rvalue::SCREEN#0
@@ -726,7 +726,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   (byte*) lvaluevar::screen#0 ← (word) 1024
   (byte) lvaluevar::b#0 ← (byte) 4
@@ -749,7 +749,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   (byte*) rvaluevar::screen#0 ← (word) 1024
   (byte) rvaluevar::i#0 ← (byte) 2
@@ -770,17 +770,17 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @6
+  to:@return
+@end: from @6
 
 Culled Empty Block (label) @6
 Culled Empty Block (label) main::@4
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -794,7 +794,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   (byte[1024]) lvalue::SCREEN#0 ← (word) 1024
   *((byte[1024]) lvalue::SCREEN#0) ← (byte) 1
@@ -815,7 +815,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte[1024]) rvalue::SCREEN#0 ← (word) 1024
   (byte~) rvalue::$0 ← * (byte[1024]) rvalue::SCREEN#0
@@ -839,7 +839,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   (byte*) lvaluevar::screen#0 ← (word) 1024
   (byte) lvaluevar::b#0 ← (byte) 4
@@ -862,7 +862,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   (byte*) rvaluevar::screen#0 ← (word) 1024
   (byte) rvaluevar::i#0 ← (byte) 2
@@ -883,8 +883,8 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[1024]) lvalue::SCREEN#0 (word) 1024
 Constant (byte) lvalue::i#0 (byte) 2
@@ -897,10 +897,10 @@ Constant (byte*) rvaluevar::screen#0 (word) 1024
 Constant (byte) rvaluevar::i#0 (byte) 2
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -914,7 +914,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1024 + (byte) 1) ← (byte) 2
@@ -933,7 +933,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte~) rvalue::$0 ← * (word) 1024
   (byte) rvalue::b#0 ← (byte~) rvalue::$0
@@ -955,7 +955,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -975,7 +975,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -994,17 +994,17 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Consolidated assigned array index constant in assignment *(1025)
 Consolidated referenced array index constant in assignment rvalue::$1
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1018,7 +1018,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1025) ← (byte) 2
@@ -1037,7 +1037,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte~) rvalue::$0 ← * (word) 1024
   (byte) rvalue::b#0 ← (byte~) rvalue::$0
@@ -1059,7 +1059,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1079,7 +1079,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -1098,8 +1098,8 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte[1024]) lvalue::SCREEN#1 = (byte[1024]) lvalue::SCREEN#2 
 Alias (byte) lvalue::i#2 = (byte) lvalue::i#3 
@@ -1116,10 +1116,10 @@ Alias (byte) rvaluevar::i#2 = (byte) rvaluevar::i#3
 Alias (byte) rvaluevar::b#0 = (byte~) rvaluevar::$1 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1133,7 +1133,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1025) ← (byte) 2
@@ -1150,7 +1150,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte) rvalue::b#0 ← * (word) 1024
   (byte) rvalue::b#1 ← * (word) 1025
@@ -1167,7 +1167,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1184,7 +1184,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -1200,18 +1200,18 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte[1024]) lvalue::SCREEN#1
 Self Phi Eliminated (byte[1024]) rvalue::SCREEN#1
 Self Phi Eliminated (byte) lvaluevar::b#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1225,7 +1225,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1025) ← (byte) 2
@@ -1242,7 +1242,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte) rvalue::b#0 ← * (word) 1024
   (byte) rvalue::b#1 ← * (word) 1025
@@ -1259,7 +1259,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1276,7 +1276,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -1292,8 +1292,8 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) lvalue::$0 if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2
 Simple Condition (boolean~) rvalue::$2 if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2
@@ -1301,10 +1301,10 @@ Simple Condition (boolean~) lvaluevar::$0 if((byte) lvaluevar::i#2<(byte) 10) go
 Simple Condition (boolean~) rvaluevar::$0 if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1318,7 +1318,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1025) ← (byte) 2
@@ -1334,7 +1334,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte) rvalue::b#0 ← * (word) 1024
   (byte) rvalue::b#1 ← * (word) 1025
@@ -1350,7 +1350,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1366,7 +1366,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -1381,18 +1381,18 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[1024]) lvalue::SCREEN#1 (word) 1024
 Constant (byte[1024]) rvalue::SCREEN#1 (word) 1024
 Constant (byte) lvaluevar::b#1 (byte) 4
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1406,7 +1406,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvalue: from main
   *((word) 1024) ← (byte) 1
   *((word) 1025) ← (byte) 2
@@ -1421,7 +1421,7 @@ lvalue::@2: from lvalue::@1
   to:lvalue::@1
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue: from main::@1
   (byte) rvalue::b#0 ← * (word) 1024
   (byte) rvalue::b#1 ← * (word) 1025
@@ -1436,7 +1436,7 @@ rvalue::@2: from rvalue::@1
   to:rvalue::@1
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1451,7 +1451,7 @@ lvaluevar::@2: from lvaluevar::@1
   to:lvaluevar::@1
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar: from main::@2
   to:rvaluevar::@1
 rvaluevar::@1: from rvaluevar rvaluevar::@2
@@ -1466,19 +1466,19 @@ rvaluevar::@2: from rvaluevar::@1
   to:rvaluevar::@1
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) rvalue::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) rvalue::i#2
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   call lvalue param-assignment
   to:main::@1
 main::@1: from main
@@ -1492,7 +1492,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   return 
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1502,7 +1502,7 @@ lvaluevar::@1: from lvaluevar lvaluevar::@2
   to:lvaluevar::@return
 lvaluevar::@return: from lvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 lvaluevar::@2: from lvaluevar::@1
   *((byte*) lvaluevar::screen#2) ← (byte) 4
   (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2
@@ -1519,7 +1519,7 @@ rvaluevar::@1: from rvaluevar rvaluevar::@2
   to:rvaluevar::@return
 rvaluevar::@return: from rvaluevar::@1
   return 
-  to:@RETURN
+  to:@return
 rvaluevar::@2: from rvaluevar::@1
   (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2
   (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2
@@ -1537,7 +1537,7 @@ rvalue::@1: from rvalue rvalue::@2
   to:rvalue::@return
 rvalue::@return: from rvalue::@1
   return 
-  to:@RETURN
+  to:@return
 rvalue::@2: from rvalue::@1
   (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2
   (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2
@@ -1553,7 +1553,7 @@ lvalue::@1: from lvalue lvalue::@2
   to:lvalue::@return
 lvalue::@return: from lvalue::@1
   return 
-  to:@RETURN
+  to:@return
 lvalue::@2: from lvalue::@1
   *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3
   (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2
@@ -1568,11 +1568,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call lvalue param-assignment [ ]
   to:main::@1
 main::@1: from main
@@ -1586,7 +1586,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1596,7 +1596,7 @@ lvaluevar::@1: from lvaluevar lvaluevar::@2
   to:lvaluevar::@return
 lvaluevar::@return: from lvaluevar::@1
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar::@2: from lvaluevar::@1
   [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ]
   [10] (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2 [ lvaluevar::i#2 lvaluevar::screen#1 ]
@@ -1613,7 +1613,7 @@ rvaluevar::@1: from rvaluevar rvaluevar::@2
   to:rvaluevar::@return
 rvaluevar::@return: from rvaluevar::@1
   [16] return  [ ]
-  to:@RETURN
+  to:@return
 rvaluevar::@2: from rvaluevar::@1
   [17] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ]
   [18] (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#1 ]
@@ -1631,7 +1631,7 @@ rvalue::@1: from rvalue rvalue::@2
   to:rvalue::@return
 rvalue::@return: from rvalue::@1
   [26] return  [ ]
-  to:@RETURN
+  to:@return
 rvalue::@2: from rvalue::@1
   [27] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ]
   [28] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ]
@@ -1647,7 +1647,7 @@ lvalue::@1: from lvalue lvalue::@2
   to:lvalue::@return
 lvalue::@return: from lvalue::@1
   [34] return  [ ]
-  to:@RETURN
+  to:@return
 lvalue::@2: from lvalue::@1
   [35] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ]
   [36] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ]
@@ -1662,7 +1662,7 @@ Coalesced [21] rvaluevar::screen#4 ← rvaluevar::screen#1
 Coalesced [29] rvalue::i#4 ← rvalue::i#1
 Coalesced [37] lvalue::i#4 ← lvalue::i#1
 Coalesced down to 6 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
+Block Sequence Planned @begin @end main main::@1 main::@2 main::@3 main::@return lvaluevar lvaluevar::@1 lvaluevar::@return lvaluevar::@2 rvaluevar rvaluevar::@1 rvaluevar::@return rvaluevar::@2 rvalue rvalue::@1 rvalue::@return rvalue::@2 lvalue lvalue::@1 lvalue::@return lvalue::@2 
 Adding empty live range for unused variable rvaluevar::b#0
 Adding empty live range for unused variable rvalue::b#0
 Adding empty live range for unused variable rvalue::b#1
@@ -1671,11 +1671,11 @@ Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call lvalue param-assignment [ ]
   to:main::@1
 main::@1: from main
@@ -1689,7 +1689,7 @@ main::@3: from main::@2
   to:main::@return
 main::@return: from main::@3
   [5] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar: from main::@3
   to:lvaluevar::@1
 lvaluevar::@1: from lvaluevar lvaluevar::@2
@@ -1699,7 +1699,7 @@ lvaluevar::@1: from lvaluevar lvaluevar::@2
   to:lvaluevar::@return
 lvaluevar::@return: from lvaluevar::@1
   [8] return  [ ]
-  to:@RETURN
+  to:@return
 lvaluevar::@2: from lvaluevar::@1
   [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ]
   [10] (byte*) lvaluevar::screen#1 ← ++ (byte*) lvaluevar::screen#2 [ lvaluevar::screen#1 lvaluevar::i#2 ]
@@ -1714,7 +1714,7 @@ rvaluevar::@1: from rvaluevar rvaluevar::@2
   to:rvaluevar::@return
 rvaluevar::@return: from rvaluevar::@1
   [14] return  [ ]
-  to:@RETURN
+  to:@return
 rvaluevar::@2: from rvaluevar::@1
   [15] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ]
   [16] (byte*) rvaluevar::screen#1 ← ++ (byte*) rvaluevar::screen#2 [ rvaluevar::screen#1 rvaluevar::i#2 ]
@@ -1730,7 +1730,7 @@ rvalue::@1: from rvalue rvalue::@2
   to:rvalue::@return
 rvalue::@return: from rvalue::@1
   [22] return  [ ]
-  to:@RETURN
+  to:@return
 rvalue::@2: from rvalue::@1
   [23] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ]
   [24] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ]
@@ -1745,7 +1745,7 @@ lvalue::@1: from lvalue lvalue::@2
   to:lvalue::@return
 lvalue::@return: from lvalue::@1
   [29] return  [ ]
-  to:@RETURN
+  to:@return
 lvalue::@2: from lvalue::@1
   [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ]
   [31] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ]
@@ -1756,29 +1756,29 @@ Calls in [] to 0:main
 Calls in [main] to 1:lvalue 2:rvalue 3:rvaluevar 4:lvaluevar 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
-main::@3 dominated by  @BEGIN main::@2 main::@1 main::@3 main 
-main::@return dominated by  @BEGIN main::@2 main::@1 main::@3 main main::@return 
-lvaluevar dominated by  @BEGIN main::@2 main::@1 main::@3 main lvaluevar 
-lvaluevar::@1 dominated by  @BEGIN main::@2 main::@1 main::@3 main lvaluevar::@1 lvaluevar 
-lvaluevar::@return dominated by  @BEGIN main::@2 main::@1 main::@3 main lvaluevar::@1 lvaluevar::@return lvaluevar 
-lvaluevar::@2 dominated by  @BEGIN main::@2 main::@1 main::@3 main lvaluevar::@2 lvaluevar::@1 lvaluevar 
-rvaluevar dominated by  rvaluevar @BEGIN main::@2 main::@1 main 
-rvaluevar::@1 dominated by  rvaluevar @BEGIN main::@2 main::@1 main rvaluevar::@1 
-rvaluevar::@return dominated by  rvaluevar @BEGIN rvaluevar::@return main::@2 main::@1 main rvaluevar::@1 
-rvaluevar::@2 dominated by  rvaluevar @BEGIN main::@2 main::@1 main rvaluevar::@2 rvaluevar::@1 
-rvalue dominated by  @BEGIN main::@1 rvalue main 
-rvalue::@1 dominated by  @BEGIN main::@1 rvalue::@1 rvalue main 
-rvalue::@return dominated by  @BEGIN main::@1 rvalue::@1 rvalue main rvalue::@return 
-rvalue::@2 dominated by  @BEGIN main::@1 rvalue::@1 rvalue rvalue::@2 main 
-lvalue dominated by  @BEGIN main lvalue 
-lvalue::@1 dominated by  @BEGIN lvalue::@1 main lvalue 
-lvalue::@return dominated by  @BEGIN lvalue::@return lvalue::@1 main lvalue 
-lvalue::@2 dominated by  @BEGIN lvalue::@1 lvalue::@2 main lvalue 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
+main::@3 dominated by  @begin main::@2 main::@1 main::@3 main 
+main::@return dominated by  @begin main::@2 main::@1 main::@3 main main::@return 
+lvaluevar dominated by  @begin main::@2 main::@1 main::@3 main lvaluevar 
+lvaluevar::@1 dominated by  @begin main::@2 main::@1 main::@3 main lvaluevar::@1 lvaluevar 
+lvaluevar::@return dominated by  @begin main::@2 main::@1 main::@3 main lvaluevar::@1 lvaluevar::@return lvaluevar 
+lvaluevar::@2 dominated by  @begin main::@2 main::@1 main::@3 main lvaluevar::@2 lvaluevar::@1 lvaluevar 
+rvaluevar dominated by  rvaluevar @begin main::@2 main::@1 main 
+rvaluevar::@1 dominated by  rvaluevar @begin main::@2 main::@1 main rvaluevar::@1 
+rvaluevar::@return dominated by  rvaluevar @begin rvaluevar::@return main::@2 main::@1 main rvaluevar::@1 
+rvaluevar::@2 dominated by  rvaluevar @begin main::@2 main::@1 main rvaluevar::@2 rvaluevar::@1 
+rvalue dominated by  @begin main::@1 rvalue main 
+rvalue::@1 dominated by  @begin main::@1 rvalue::@1 rvalue main 
+rvalue::@return dominated by  @begin main::@1 rvalue::@1 rvalue main rvalue::@return 
+rvalue::@2 dominated by  @begin main::@1 rvalue::@1 rvalue rvalue::@2 main 
+lvalue dominated by  @begin main lvalue 
+lvalue::@1 dominated by  @begin lvalue::@1 main lvalue 
+lvalue::@return dominated by  lvalue::@return @begin lvalue::@1 main lvalue 
+lvalue::@2 dominated by  @begin lvalue::@1 lvalue::@2 main lvalue 
 
 Found back edge: Loop head: lvaluevar::@1 tails: lvaluevar::@2 blocks: null
 Found back edge: Loop head: rvaluevar::@1 tails: rvaluevar::@2 blocks: null
@@ -1878,63 +1878,65 @@ Allocated zp byte:11 to zp byte:11 [ rvalue::b#0 ]
 Allocated zp byte:12 to zp byte:12 [ rvalue::b#1 ]
 Allocated zp byte:13 to zp byte:13 [ rvalue::b#2 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call lvalue param-assignment [ ]
-  jsr lvalue
-  jmp main__B1
-//SEG5 main::@1
-main__B1:
-//SEG6 [2] call rvalue param-assignment [ ]
-  jsr rvalue
-  jmp main__B2
-//SEG7 main::@2
-main__B2:
-//SEG8 [3] call rvaluevar param-assignment [ ]
-  jsr rvaluevar
-  jmp main__B3
-//SEG9 main::@3
-main__B3:
-//SEG10 [4] call lvaluevar param-assignment [ ]
-  jsr lvaluevar
-  jmp main__Breturn
-//SEG11 main::@return
-main__Breturn:
-//SEG12 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call lvalue param-assignment [ ]
+    jsr lvalue
+    jmp b1
+  //SEG5 main::@1
+  b1:
+  //SEG6 [2] call rvalue param-assignment [ ]
+    jsr rvalue
+    jmp b2
+  //SEG7 main::@2
+  b2:
+  //SEG8 [3] call rvaluevar param-assignment [ ]
+    jsr rvaluevar
+    jmp b3
+  //SEG9 main::@3
+  b3:
+  //SEG10 [4] call lvaluevar param-assignment [ ]
+    jsr lvaluevar
+    jmp breturn
+  //SEG11 main::@return
+  breturn:
+  //SEG12 [5] return  [ ]
+    rts
+}
 //SEG13 lvaluevar
-lvaluevar:
-//SEG14 [6] phi from lvaluevar to lvaluevar::@1
-lvaluevar__B1_from_lvaluevar:
-//SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $3
-  lda #>$400
-  sta $3+$1
-//SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $2
-  jmp lvaluevar__B1
-//SEG17 lvaluevar::@1
-lvaluevar__B1:
-//SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$a
-  bcc lvaluevar__B2
-  jmp lvaluevar__Breturn
-//SEG19 lvaluevar::@return
-lvaluevar__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+lvaluevar: {
+  //SEG14 [6] phi from lvaluevar to lvaluevar::@1
+  b1_from_lvaluevar:
+  //SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $3
+    lda #>$400
+    sta $3+$1
+  //SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $2
+    jmp b1
+  //SEG17 lvaluevar::@1
+  b1:
+  //SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$a
+    bcc b2
+    jmp breturn
+  //SEG19 lvaluevar::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 lvaluevar::@2
-lvaluevar__B2:
+b2:
 //SEG22 [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$4
@@ -1947,36 +1949,37 @@ lvaluevar__B2:
 //SEG24 [11] (byte) lvaluevar::i#1 ← ++ (byte) lvaluevar::i#2 [ lvaluevar::i#1 lvaluevar::screen#1 ] -- zpby1=_inc_zpby1 
   inc $2
 //SEG25 [6] phi from lvaluevar::@2 to lvaluevar::@1
-lvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG26 [6] phi (byte*) lvaluevar::screen#2 = (byte*) lvaluevar::screen#1 -- register_copy 
 //SEG27 [6] phi (byte) lvaluevar::i#2 = (byte) lvaluevar::i#1 -- register_copy 
-  jmp lvaluevar__B1
+  jmp b1
 //SEG28 rvaluevar
-rvaluevar:
-//SEG29 [12] phi from rvaluevar to rvaluevar::@1
-rvaluevar__B1_from_rvaluevar:
-//SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $6
-  lda #>$400
-  sta $6+$1
-//SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $5
-  jmp rvaluevar__B1
-//SEG32 rvaluevar::@1
-rvaluevar__B1:
-//SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $5
-  cmp #$a
-  bcc rvaluevar__B2
-  jmp rvaluevar__Breturn
-//SEG34 rvaluevar::@return
-rvaluevar__Breturn:
-//SEG35 [14] return  [ ]
-  rts
+rvaluevar: {
+  //SEG29 [12] phi from rvaluevar to rvaluevar::@1
+  b1_from_rvaluevar:
+  //SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $6
+    lda #>$400
+    sta $6+$1
+  //SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $5
+    jmp b1
+  //SEG32 rvaluevar::@1
+  b1:
+  //SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $5
+    cmp #$a
+    bcc b2
+    jmp breturn
+  //SEG34 rvaluevar::@return
+  breturn:
+  //SEG35 [14] return  [ ]
+    rts
+}
 //SEG36 rvaluevar::@2
-rvaluevar__B2:
+b2:
 //SEG37 [15] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- zpby1=_star_zpptrby1 
   ldy #$0
   lda ($6),y
@@ -1989,37 +1992,38 @@ rvaluevar__B2:
 //SEG39 [17] (byte) rvaluevar::i#1 ← ++ (byte) rvaluevar::i#2 [ rvaluevar::i#1 rvaluevar::screen#1 ] -- zpby1=_inc_zpby1 
   inc $5
 //SEG40 [12] phi from rvaluevar::@2 to rvaluevar::@1
-rvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG41 [12] phi (byte*) rvaluevar::screen#2 = (byte*) rvaluevar::screen#1 -- register_copy 
 //SEG42 [12] phi (byte) rvaluevar::i#2 = (byte) rvaluevar::i#1 -- register_copy 
-  jmp rvaluevar__B1
+  jmp b1
 //SEG43 rvalue
-rvalue:
-//SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- zpby1=_star_cowo1 
-  lda $400
-  sta $b
-//SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- zpby1=_star_cowo1 
-  lda $401
-  sta $c
-//SEG46 [20] phi from rvalue to rvalue::@1
-rvalue__B1_from_rvalue:
-//SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $8
-  jmp rvalue__B1
-//SEG48 rvalue::@1
-rvalue__B1:
-//SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $8
-  cmp #$a
-  bcc rvalue__B2
-  jmp rvalue__Breturn
-//SEG50 rvalue::@return
-rvalue__Breturn:
-//SEG51 [22] return  [ ]
-  rts
+rvalue: {
+  //SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- zpby1=_star_cowo1 
+    lda $400
+    sta $b
+  //SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- zpby1=_star_cowo1 
+    lda $401
+    sta $c
+  //SEG46 [20] phi from rvalue to rvalue::@1
+  b1_from_rvalue:
+  //SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $8
+    jmp b1
+  //SEG48 rvalue::@1
+  b1:
+  //SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $8
+    cmp #$a
+    bcc b2
+    jmp breturn
+  //SEG50 rvalue::@return
+  breturn:
+  //SEG51 [22] return  [ ]
+    rts
+}
 //SEG52 rvalue::@2
-rvalue__B2:
+b2:
 //SEG53 [23] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ] -- zpby1=cowo1_staridx_zpby2 
   ldx $8
   lda $400,x
@@ -2027,36 +2031,37 @@ rvalue__B2:
 //SEG54 [24] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ] -- zpby1=_inc_zpby1 
   inc $8
 //SEG55 [20] phi from rvalue::@2 to rvalue::@1
-rvalue__B1_from_B2:
+b1_from_b2:
 //SEG56 [20] phi (byte) rvalue::i#2 = (byte) rvalue::i#1 -- register_copy 
-  jmp rvalue__B1
+  jmp b1
 //SEG57 lvalue
-lvalue:
-//SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-//SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
-  lda #$2
-  sta $401
-//SEG60 [27] phi from lvalue to lvalue::@1
-lvalue__B1_from_lvalue:
-//SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $9
-  jmp lvalue__B1
-//SEG62 lvalue::@1
-lvalue__B1:
-//SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $9
-  cmp #$a
-  bcc lvalue__B2
-  jmp lvalue__Breturn
-//SEG64 lvalue::@return
-lvalue__Breturn:
-//SEG65 [29] return  [ ]
-  rts
+lvalue: {
+  //SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+  //SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
+    lda #$2
+    sta $401
+  //SEG60 [27] phi from lvalue to lvalue::@1
+  b1_from_lvalue:
+  //SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $9
+    jmp b1
+  //SEG62 lvalue::@1
+  b1:
+  //SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $9
+    cmp #$a
+    bcc b2
+    jmp breturn
+  //SEG64 lvalue::@return
+  breturn:
+  //SEG65 [29] return  [ ]
+    rts
+}
 //SEG66 lvalue::@2
-lvalue__B2:
+b2:
 //SEG67 [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] -- cowo1_staridx_zpby1=coby2 
   lda #$3
   ldx $9
@@ -2064,9 +2069,9 @@ lvalue__B2:
 //SEG68 [31] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ] -- zpby1=_inc_zpby1 
   inc $9
 //SEG69 [27] phi from lvalue::@2 to lvalue::@1
-lvalue__B1_from_B2:
+b1_from_b2:
 //SEG70 [27] phi (byte) lvalue::i#2 = (byte) lvalue::i#1 -- register_copy 
-  jmp lvalue__B1
+  jmp b1
 
 Statement [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] always clobbers reg byte a reg byte y 
 Removing always clobbered register reg byte a as potential for zp byte:2 [ lvaluevar::i#2 lvaluevar::i#1 ]
@@ -2111,69 +2116,71 @@ Uplifting [main] best 1575 combination
 Uplifting [] best 1575 combination 
 Coalescing zero page register [ zp ptr byte:3 [ lvaluevar::screen#2 lvaluevar::screen#1 ] ] with [ zp ptr byte:6 [ rvaluevar::screen#2 rvaluevar::screen#1 ] ]
 Re-allocated ZP register from zp ptr byte:3 to zp ptr byte:2
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__B2
-Removing instruction jmp main__B3
-Removing instruction jmp main__Breturn
-Removing instruction jmp lvaluevar__B1
-Removing instruction jmp lvaluevar__Breturn
-Removing instruction jmp rvaluevar__B1
-Removing instruction jmp rvaluevar__Breturn
-Removing instruction jmp rvalue__B1
-Removing instruction jmp rvalue__Breturn
-Removing instruction jmp lvalue__B1
-Removing instruction jmp lvalue__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call lvalue param-assignment [ ]
-  jsr lvalue
-//SEG5 main::@1
-main__B1:
-//SEG6 [2] call rvalue param-assignment [ ]
-  jsr rvalue
-//SEG7 main::@2
-main__B2:
-//SEG8 [3] call rvaluevar param-assignment [ ]
-  jsr rvaluevar
-//SEG9 main::@3
-main__B3:
-//SEG10 [4] call lvaluevar param-assignment [ ]
-  jsr lvaluevar
-//SEG11 main::@return
-main__Breturn:
-//SEG12 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call lvalue param-assignment [ ]
+    jsr lvalue
+  //SEG5 main::@1
+  b1:
+  //SEG6 [2] call rvalue param-assignment [ ]
+    jsr rvalue
+  //SEG7 main::@2
+  b2:
+  //SEG8 [3] call rvaluevar param-assignment [ ]
+    jsr rvaluevar
+  //SEG9 main::@3
+  b3:
+  //SEG10 [4] call lvaluevar param-assignment [ ]
+    jsr lvaluevar
+  //SEG11 main::@return
+  breturn:
+  //SEG12 [5] return  [ ]
+    rts
+}
 //SEG13 lvaluevar
-lvaluevar:
-//SEG14 [6] phi from lvaluevar to lvaluevar::@1
-lvaluevar__B1_from_lvaluevar:
-//SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-//SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG17 lvaluevar::@1
-lvaluevar__B1:
-//SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc lvaluevar__B2
-//SEG19 lvaluevar::@return
-lvaluevar__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+lvaluevar: {
+  //SEG14 [6] phi from lvaluevar to lvaluevar::@1
+  b1_from_lvaluevar:
+  //SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+  //SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG17 lvaluevar::@1
+  b1:
+  //SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG19 lvaluevar::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 lvaluevar::@2
-lvaluevar__B2:
+b2:
 //SEG22 [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$4
@@ -2186,32 +2193,33 @@ lvaluevar__B2:
 //SEG24 [11] (byte) lvaluevar::i#1 ← ++ (byte) lvaluevar::i#2 [ lvaluevar::i#1 lvaluevar::screen#1 ] -- xby=_inc_xby 
   inx
 //SEG25 [6] phi from lvaluevar::@2 to lvaluevar::@1
-lvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG26 [6] phi (byte*) lvaluevar::screen#2 = (byte*) lvaluevar::screen#1 -- register_copy 
 //SEG27 [6] phi (byte) lvaluevar::i#2 = (byte) lvaluevar::i#1 -- register_copy 
-  jmp lvaluevar__B1
+  jmp b1
 //SEG28 rvaluevar
-rvaluevar:
-//SEG29 [12] phi from rvaluevar to rvaluevar::@1
-rvaluevar__B1_from_rvaluevar:
-//SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-//SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG32 rvaluevar::@1
-rvaluevar__B1:
-//SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc rvaluevar__B2
-//SEG34 rvaluevar::@return
-rvaluevar__Breturn:
-//SEG35 [14] return  [ ]
-  rts
+rvaluevar: {
+  //SEG29 [12] phi from rvaluevar to rvaluevar::@1
+  b1_from_rvaluevar:
+  //SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+  //SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG32 rvaluevar::@1
+  b1:
+  //SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG34 rvaluevar::@return
+  breturn:
+  //SEG35 [14] return  [ ]
+    rts
+}
 //SEG36 rvaluevar::@2
-rvaluevar__B2:
+b2:
 //SEG37 [15] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- aby=_star_zpptrby1 
   ldy #$0
   lda ($2),y
@@ -2223,75 +2231,77 @@ rvaluevar__B2:
 //SEG39 [17] (byte) rvaluevar::i#1 ← ++ (byte) rvaluevar::i#2 [ rvaluevar::i#1 rvaluevar::screen#1 ] -- xby=_inc_xby 
   inx
 //SEG40 [12] phi from rvaluevar::@2 to rvaluevar::@1
-rvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG41 [12] phi (byte*) rvaluevar::screen#2 = (byte*) rvaluevar::screen#1 -- register_copy 
 //SEG42 [12] phi (byte) rvaluevar::i#2 = (byte) rvaluevar::i#1 -- register_copy 
-  jmp rvaluevar__B1
+  jmp b1
 //SEG43 rvalue
-rvalue:
-//SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- aby=_star_cowo1 
-  lda $400
-//SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- aby=_star_cowo1 
-  lda $401
-//SEG46 [20] phi from rvalue to rvalue::@1
-rvalue__B1_from_rvalue:
-//SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG48 rvalue::@1
-rvalue__B1:
-//SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc rvalue__B2
-//SEG50 rvalue::@return
-rvalue__Breturn:
-//SEG51 [22] return  [ ]
-  rts
+rvalue: {
+  //SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- aby=_star_cowo1 
+    lda $400
+  //SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- aby=_star_cowo1 
+    lda $401
+  //SEG46 [20] phi from rvalue to rvalue::@1
+  b1_from_rvalue:
+  //SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG48 rvalue::@1
+  b1:
+  //SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG50 rvalue::@return
+  breturn:
+  //SEG51 [22] return  [ ]
+    rts
+}
 //SEG52 rvalue::@2
-rvalue__B2:
+b2:
 //SEG53 [23] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ] -- aby=cowo1_staridx_xby 
   lda $400,x
 //SEG54 [24] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ] -- xby=_inc_xby 
   inx
 //SEG55 [20] phi from rvalue::@2 to rvalue::@1
-rvalue__B1_from_B2:
+b1_from_b2:
 //SEG56 [20] phi (byte) rvalue::i#2 = (byte) rvalue::i#1 -- register_copy 
-  jmp rvalue__B1
+  jmp b1
 //SEG57 lvalue
-lvalue:
-//SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-//SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
-  lda #$2
-  sta $401
-//SEG60 [27] phi from lvalue to lvalue::@1
-lvalue__B1_from_lvalue:
-//SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG62 lvalue::@1
-lvalue__B1:
-//SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc lvalue__B2
-//SEG64 lvalue::@return
-lvalue__Breturn:
-//SEG65 [29] return  [ ]
-  rts
+lvalue: {
+  //SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+  //SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
+    lda #$2
+    sta $401
+  //SEG60 [27] phi from lvalue to lvalue::@1
+  b1_from_lvalue:
+  //SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG62 lvalue::@1
+  b1:
+  //SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG64 lvalue::@return
+  breturn:
+  //SEG65 [29] return  [ ]
+    rts
+}
 //SEG66 lvalue::@2
-lvalue__B2:
+b2:
 //SEG67 [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] -- cowo1_staridx_xby=coby2 
   lda #$3
   sta $400,x
 //SEG68 [31] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ] -- xby=_inc_xby 
   inx
 //SEG69 [27] phi from lvalue::@2 to lvalue::@1
-lvalue__B1_from_B2:
+b1_from_b2:
 //SEG70 [27] phi (byte) lvalue::i#2 = (byte) lvalue::i#1 -- register_copy 
-  jmp lvalue__B1
+  jmp b1
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) lvalue()
 (label) lvalue::@1
 (label) lvalue::@2
@@ -2352,54 +2362,56 @@ reg byte a [ rvalue::b#1 ]
 reg byte a [ rvalue::b#2 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call lvalue param-assignment [ ]
-  jsr lvalue
-//SEG5 main::@1
-main__B1:
-//SEG6 [2] call rvalue param-assignment [ ]
-  jsr rvalue
-//SEG7 main::@2
-main__B2:
-//SEG8 [3] call rvaluevar param-assignment [ ]
-  jsr rvaluevar
-//SEG9 main::@3
-main__B3:
-//SEG10 [4] call lvaluevar param-assignment [ ]
-  jsr lvaluevar
-//SEG11 main::@return
-main__Breturn:
-//SEG12 [5] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call lvalue param-assignment [ ]
+    jsr lvalue
+  //SEG5 main::@1
+  b1:
+  //SEG6 [2] call rvalue param-assignment [ ]
+    jsr rvalue
+  //SEG7 main::@2
+  b2:
+  //SEG8 [3] call rvaluevar param-assignment [ ]
+    jsr rvaluevar
+  //SEG9 main::@3
+  b3:
+  //SEG10 [4] call lvaluevar param-assignment [ ]
+    jsr lvaluevar
+  //SEG11 main::@return
+  breturn:
+  //SEG12 [5] return  [ ]
+    rts
+}
 //SEG13 lvaluevar
-lvaluevar:
-//SEG14 [6] phi from lvaluevar to lvaluevar::@1
-lvaluevar__B1_from_lvaluevar:
-//SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-//SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG17 lvaluevar::@1
-lvaluevar__B1:
-//SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc lvaluevar__B2
-//SEG19 lvaluevar::@return
-lvaluevar__Breturn:
-//SEG20 [8] return  [ ]
-  rts
+lvaluevar: {
+  //SEG14 [6] phi from lvaluevar to lvaluevar::@1
+  b1_from_lvaluevar:
+  //SEG15 [6] phi (byte*) lvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+  //SEG16 [6] phi (byte) lvaluevar::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG17 lvaluevar::@1
+  b1:
+  //SEG18 [7] if((byte) lvaluevar::i#2<(byte) 10) goto lvaluevar::@2 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG19 lvaluevar::@return
+  breturn:
+  //SEG20 [8] return  [ ]
+    rts
+}
 //SEG21 lvaluevar::@2
-lvaluevar__B2:
+b2:
 //SEG22 [9] *((byte*) lvaluevar::screen#2) ← (byte) 4 [ lvaluevar::i#2 lvaluevar::screen#2 ] -- _star_zpptrby1=coby1 
   ldy #$0
   lda #$4
@@ -2412,32 +2424,33 @@ lvaluevar__B2:
 //SEG24 [11] (byte) lvaluevar::i#1 ← ++ (byte) lvaluevar::i#2 [ lvaluevar::i#1 lvaluevar::screen#1 ] -- xby=_inc_xby 
   inx
 //SEG25 [6] phi from lvaluevar::@2 to lvaluevar::@1
-lvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG26 [6] phi (byte*) lvaluevar::screen#2 = (byte*) lvaluevar::screen#1 -- register_copy 
 //SEG27 [6] phi (byte) lvaluevar::i#2 = (byte) lvaluevar::i#1 -- register_copy 
-  jmp lvaluevar__B1
+  jmp b1
 //SEG28 rvaluevar
-rvaluevar:
-//SEG29 [12] phi from rvaluevar to rvaluevar::@1
-rvaluevar__B1_from_rvaluevar:
-//SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $2
-  lda #>$400
-  sta $2+$1
-//SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG32 rvaluevar::@1
-rvaluevar__B1:
-//SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc rvaluevar__B2
-//SEG34 rvaluevar::@return
-rvaluevar__Breturn:
-//SEG35 [14] return  [ ]
-  rts
+rvaluevar: {
+  //SEG29 [12] phi from rvaluevar to rvaluevar::@1
+  b1_from_rvaluevar:
+  //SEG30 [12] phi (byte*) rvaluevar::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $2
+    lda #>$400
+    sta $2+$1
+  //SEG31 [12] phi (byte) rvaluevar::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG32 rvaluevar::@1
+  b1:
+  //SEG33 [13] if((byte) rvaluevar::i#2<(byte) 10) goto rvaluevar::@2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG34 rvaluevar::@return
+  breturn:
+  //SEG35 [14] return  [ ]
+    rts
+}
 //SEG36 rvaluevar::@2
-rvaluevar__B2:
+b2:
 //SEG37 [15] (byte) rvaluevar::b#0 ← * (byte*) rvaluevar::screen#2 [ rvaluevar::i#2 rvaluevar::screen#2 ] -- aby=_star_zpptrby1 
   ldy #$0
   lda ($2),y
@@ -2449,69 +2462,71 @@ rvaluevar__B2:
 //SEG39 [17] (byte) rvaluevar::i#1 ← ++ (byte) rvaluevar::i#2 [ rvaluevar::i#1 rvaluevar::screen#1 ] -- xby=_inc_xby 
   inx
 //SEG40 [12] phi from rvaluevar::@2 to rvaluevar::@1
-rvaluevar__B1_from_B2:
+b1_from_b2:
 //SEG41 [12] phi (byte*) rvaluevar::screen#2 = (byte*) rvaluevar::screen#1 -- register_copy 
 //SEG42 [12] phi (byte) rvaluevar::i#2 = (byte) rvaluevar::i#1 -- register_copy 
-  jmp rvaluevar__B1
+  jmp b1
 //SEG43 rvalue
-rvalue:
-//SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- aby=_star_cowo1 
-  lda $400
-//SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- aby=_star_cowo1 
-  lda $401
-//SEG46 [20] phi from rvalue to rvalue::@1
-rvalue__B1_from_rvalue:
-//SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG48 rvalue::@1
-rvalue__B1:
-//SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc rvalue__B2
-//SEG50 rvalue::@return
-rvalue__Breturn:
-//SEG51 [22] return  [ ]
-  rts
+rvalue: {
+  //SEG44 [18] (byte) rvalue::b#0 ← * (word) 1024 [ ] -- aby=_star_cowo1 
+    lda $400
+  //SEG45 [19] (byte) rvalue::b#1 ← * (word) 1025 [ ] -- aby=_star_cowo1 
+    lda $401
+  //SEG46 [20] phi from rvalue to rvalue::@1
+  b1_from_rvalue:
+  //SEG47 [20] phi (byte) rvalue::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG48 rvalue::@1
+  b1:
+  //SEG49 [21] if((byte) rvalue::i#2<(byte) 10) goto rvalue::@2 [ rvalue::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG50 rvalue::@return
+  breturn:
+  //SEG51 [22] return  [ ]
+    rts
+}
 //SEG52 rvalue::@2
-rvalue__B2:
+b2:
 //SEG53 [23] (byte) rvalue::b#2 ← (word) 1024 *idx (byte) rvalue::i#2 [ rvalue::i#2 ] -- aby=cowo1_staridx_xby 
   lda $400,x
 //SEG54 [24] (byte) rvalue::i#1 ← ++ (byte) rvalue::i#2 [ rvalue::i#1 ] -- xby=_inc_xby 
   inx
 //SEG55 [20] phi from rvalue::@2 to rvalue::@1
-rvalue__B1_from_B2:
+b1_from_b2:
 //SEG56 [20] phi (byte) rvalue::i#2 = (byte) rvalue::i#1 -- register_copy 
-  jmp rvalue__B1
+  jmp b1
 //SEG57 lvalue
-lvalue:
-//SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-//SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
-  lda #$2
-  sta $401
-//SEG60 [27] phi from lvalue to lvalue::@1
-lvalue__B1_from_lvalue:
-//SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG62 lvalue::@1
-lvalue__B1:
-//SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc lvalue__B2
-//SEG64 lvalue::@return
-lvalue__Breturn:
-//SEG65 [29] return  [ ]
-  rts
+lvalue: {
+  //SEG58 [25] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+  //SEG59 [26] *((word) 1025) ← (byte) 2 [ ] -- _star_cowo1=coby2 
+    lda #$2
+    sta $401
+  //SEG60 [27] phi from lvalue to lvalue::@1
+  b1_from_lvalue:
+  //SEG61 [27] phi (byte) lvalue::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG62 lvalue::@1
+  b1:
+  //SEG63 [28] if((byte) lvalue::i#2<(byte) 10) goto lvalue::@2 [ lvalue::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG64 lvalue::@return
+  breturn:
+  //SEG65 [29] return  [ ]
+    rts
+}
 //SEG66 lvalue::@2
-lvalue__B2:
+b2:
 //SEG67 [30] *((word) 1024 + (byte) lvalue::i#2) ← (byte) 3 [ lvalue::i#2 ] -- cowo1_staridx_xby=coby2 
   lda #$3
   sta $400,x
 //SEG68 [31] (byte) lvalue::i#1 ← ++ (byte) lvalue::i#2 [ lvalue::i#1 ] -- xby=_inc_xby 
   inx
 //SEG69 [27] phi from lvalue::@2 to lvalue::@1
-lvalue__B1_from_B2:
+b1_from_b2:
 //SEG70 [27] phi (byte) lvalue::i#2 = (byte) lvalue::i#1 -- register_copy 
-  jmp lvalue__B1
+  jmp b1
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.sym b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.sym
index befb3faa1..6974617bc 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtest.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) lvalue()
 (label) lvalue::@1
 (label) lvalue::@2
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.asm b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.asm
index caeafc91e..7446a9104 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.asm
@@ -1,16 +1,17 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-main__B1_from_main:
-  ldx #$2
-main__B1:
-  cpx #$a
-  bcc main__B2
-main__Breturn:
-  rts
-main__B2:
+bend:
+main: {
+  b1_from_main:
+    ldx #$2
+  b1:
+    cpx #$a
+    bcc b2
+  breturn:
+    rts
+}
+b2:
   lda $400,x
   inx
-main__B1_from_B2:
-  jmp main__B1
+b1_from_b2:
+  jmp b1
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.cfg b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.cfg
index 8b99c36d3..36c1fceac 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   [1] (byte) main::i#2 ← phi( main/(byte) 2 main::@2/(byte) main::i#1 ) [ main::i#2 ]
@@ -10,7 +10,7 @@ main::@1: from main main::@2
   to:main::@return
 main::@return: from main::@1
   [3] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ]
   [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ]
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.log b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.log
index 017b02b61..f477b7b51 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.log
@@ -51,7 +51,7 @@ SYMBOLS
 (byte) main::i
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
   to:@1
 main: from
@@ -77,10 +77,10 @@ main::@6: from
   to:main::@3
 main::@return: from main::@3
   return 
-  to:@RETURN
-@1: from @BEGIN
-  to:@END
-@END: from @1
+  to:@return
+@1: from @begin
+  to:@end
+@end: from @1
 
 Removing empty block main::@4
 Removing empty block main::@3
@@ -88,9 +88,9 @@ Removing empty block main::@5
 Removing empty block main::@6
 Removing empty block @1
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (byte[1024]) main::SCREEN ← (word) 1024
   (byte) main::i ← (byte) 2
@@ -106,18 +106,18 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte[1024]) main::SCREEN ← (word) 1024
   (byte) main::i ← (byte) 2
   to:main::@1
@@ -132,18 +132,18 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte[1024]) main::SCREEN#0 ← (word) 1024
   (byte) main::i#0 ← (byte) 2
   to:main::@1
@@ -162,16 +162,16 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   (byte[1024]) main::SCREEN#0 ← (word) 1024
   (byte) main::i#0 ← (byte) 2
   to:main::@1
@@ -190,16 +190,16 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Culled Empty Block (label) @2
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   (byte[1024]) main::SCREEN#0 ← (word) 1024
   (byte) main::i#0 ← (byte) 2
   to:main::@1
@@ -218,17 +218,17 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[1024]) main::SCREEN#0 (word) 1024
 Constant (byte) main::i#0 (byte) 2
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte[1024]) main::SCREEN#2 ← phi( main/(word) 1024 main::@2/(byte[1024]) main::SCREEN#1 )
@@ -245,18 +245,18 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Alias (byte[1024]) main::SCREEN#1 = (byte[1024]) main::SCREEN#2 
 Alias (byte) main::i#2 = (byte) main::i#3 
 Alias (byte) main::b#0 = (byte~) main::$1 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte[1024]) main::SCREEN#1 ← phi( main/(word) 1024 main::@2/(byte[1024]) main::SCREEN#1 )
@@ -270,16 +270,16 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Self Phi Eliminated (byte[1024]) main::SCREEN#1
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte[1024]) main::SCREEN#1 ← phi( main/(word) 1024 )
@@ -293,16 +293,16 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Simple Condition (boolean~) main::$0 if((byte) main::i#2<(byte) 10) goto main::@2
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte[1024]) main::SCREEN#1 ← phi( main/(word) 1024 )
@@ -315,16 +315,16 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte[1024]) main::SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte) main::i#2 ← phi( main/(byte) 2 main::@2/(byte) main::i#1 )
@@ -336,19 +336,19 @@ main::@2: from main::@1
   to:main::@1
 main::@return: from main::@1
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
 Multiple usages for variable. Not optimizing sub-constant (byte) main::i#2
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   (byte) main::i#2 ← phi( main/(byte) 2 main::@2/(byte~) main::i#4 )
@@ -356,7 +356,7 @@ main::@1: from main main::@2
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2
   (byte) main::i#1 ← ++ (byte) main::i#2
@@ -366,11 +366,11 @@ main::@2: from main::@1
 Adding empty live range for unused variable main::b#0
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   [1] (byte) main::i#2 ← phi( main/(byte) 2 main::@2/(byte~) main::i#4 ) [ main::i#2 ]
@@ -378,7 +378,7 @@ main::@1: from main main::@2
   to:main::@return
 main::@return: from main::@1
   [3] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ]
   [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ]
@@ -388,15 +388,15 @@ main::@2: from main::@1
 Created 1 initial phi equivalence classes
 Coalesced [6] main::i#4 ← main::i#1
 Coalesced down to 1 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@1 main::@return main::@2 
+Block Sequence Planned @begin @end main main::@1 main::@return main::@2 
 Adding empty live range for unused variable main::b#0
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   to:main::@1
 main::@1: from main main::@2
   [1] (byte) main::i#2 ← phi( main/(byte) 2 main::@2/(byte) main::i#1 ) [ main::i#2 ]
@@ -404,7 +404,7 @@ main::@1: from main main::@2
   to:main::@return
 main::@return: from main::@1
   [3] return  [ ]
-  to:@RETURN
+  to:@return
 main::@2: from main::@1
   [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ]
   [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ]
@@ -414,12 +414,12 @@ CALL GRAPH
 Calls in [] to 0:main 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@1 dominated by  @BEGIN main::@1 main 
-main::@return dominated by  @BEGIN main::@return main::@1 main 
-main::@2 dominated by  @BEGIN main::@2 main::@1 main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@1 dominated by  @begin main::@1 main 
+main::@return dominated by  main::@return @begin main::@1 main 
+main::@2 dominated by  @begin main::@2 main::@1 main 
 
 Found back edge: Loop head: main::@1 tails: main::@2 blocks: null
 Populated: Loop head: main::@1 tails: main::@2 blocks: main::@2 main::@1 
@@ -451,34 +451,35 @@ Complete equivalence classes
 Allocated zp byte:2 to zp byte:2 [ main::i#2 main::i#1 ]
 Allocated zp byte:3 to zp byte:3 [ main::b#0 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $2
-  jmp main__B1
-//SEG6 main::@1
-main__B1:
-//SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$a
-  bcc main__B2
-  jmp main__Breturn
-//SEG8 main::@return
-main__Breturn:
-//SEG9 [3] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $2
+    jmp b1
+  //SEG6 main::@1
+  b1:
+  //SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$a
+    bcc b2
+    jmp breturn
+  //SEG8 main::@return
+  breturn:
+  //SEG9 [3] return  [ ]
+    rts
+}
 //SEG10 main::@2
-main__B2:
+b2:
 //SEG11 [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ] -- zpby1=cowo1_staridx_zpby2 
   ldx $2
   lda $400,x
@@ -486,9 +487,9 @@ main__B2:
 //SEG12 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- zpby1=_inc_zpby1 
   inc $2
 //SEG13 [1] phi from main::@2 to main::@1
-main__B1_from_B2:
+b1_from_b2:
 //SEG14 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ main::i#2 main::i#1 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -500,46 +501,47 @@ Uplift Scope []
 
 Uplifting [main] best 235 combination reg byte a [ main::b#0 ] reg byte x [ main::i#2 main::i#1 ] 
 Uplifting [] best 235 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__B1
-Removing instruction jmp main__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b1
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG6 main::@1
-main__B1:
-//SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc main__B2
-//SEG8 main::@return
-main__Breturn:
-//SEG9 [3] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG6 main::@1
+  b1:
+  //SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG8 main::@return
+  breturn:
+  //SEG9 [3] return  [ ]
+    rts
+}
 //SEG10 main::@2
-main__B2:
+b2:
 //SEG11 [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ] -- aby=cowo1_staridx_xby 
   lda $400,x
 //SEG12 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
   inx
 //SEG13 [1] phi from main::@2 to main::@1
-main__B1_from_B2:
+b1_from_b2:
 //SEG14 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) main()
 (label) main::@1
 (label) main::@2
@@ -555,35 +557,36 @@ reg byte x [ main::i#2 main::i#1 ]
 reg byte a [ main::b#0 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] phi from main to main::@1
-main__B1_from_main:
-//SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- xby=coby1 
-  ldx #$2
-//SEG6 main::@1
-main__B1:
-//SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- xby_lt_coby1_then_la1 
-  cpx #$a
-  bcc main__B2
-//SEG8 main::@return
-main__Breturn:
-//SEG9 [3] return  [ ]
-  rts
+main: {
+  //SEG4 [1] phi from main to main::@1
+  b1_from_main:
+  //SEG5 [1] phi (byte) main::i#2 = (byte) 2 -- xby=coby1 
+    ldx #$2
+  //SEG6 main::@1
+  b1:
+  //SEG7 [2] if((byte) main::i#2<(byte) 10) goto main::@2 [ main::i#2 ] -- xby_lt_coby1_then_la1 
+    cpx #$a
+    bcc b2
+  //SEG8 main::@return
+  breturn:
+  //SEG9 [3] return  [ ]
+    rts
+}
 //SEG10 main::@2
-main__B2:
+b2:
 //SEG11 [4] (byte) main::b#0 ← (word) 1024 *idx (byte) main::i#2 [ main::i#2 ] -- aby=cowo1_staridx_xby 
   lda $400,x
 //SEG12 [5] (byte) main::i#1 ← ++ (byte) main::i#2 [ main::i#1 ] -- xby=_inc_xby 
   inx
 //SEG13 [1] phi from main::@2 to main::@1
-main__B1_from_B2:
+b1_from_b2:
 //SEG14 [1] phi (byte) main::i#2 = (byte) main::i#1 -- register_copy 
-  jmp main__B1
+  jmp b1
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.sym b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.sym
index 51dedf953..9948ec675 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/ptrtestmin.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (void()) main()
 (label) main::@1
 (label) main::@2
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/summin.asm b/src/main/java/dk/camelot64/kickc/test/ref/summin.asm
index 940708608..a64cade94 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/summin.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/summin.asm
@@ -1,31 +1,32 @@
-BBEGIN:
-sum_from_BBEGIN:
+bbegin:
+sum_from_bbegin:
   lda #$2
   ldy #$1
   jsr sum
-B2:
+b2:
   sta $2
-sum_from_B2:
+sum_from_b2:
   lda #$4
   ldy #$3
   jsr sum
-B3:
+b3:
   tax
-sum_from_B3:
+sum_from_b3:
   lda #$d
   ldy #$9
   jsr sum
-B4:
+b4:
   sta $3
   txa
   clc
   adc $2
   clc
   adc $3
-BEND:
-sum:
-  sty $ff
-  clc
-  adc $ff
-sum__Breturn:
-  rts
+bend:
+sum: {
+    sty $ff
+    clc
+    adc $ff
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/summin.cfg b/src/main/java/dk/camelot64/kickc/test/ref/summin.cfg
index 9ab34cce3..4ce068bca 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/summin.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/summin.cfg
@@ -1,7 +1,7 @@
-@BEGIN: from
+@begin: from
   [0] call sum param-assignment [ sum::return#0 ]
   to:@2
-@2: from @BEGIN
+@2: from @begin
   [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ]
   [2] call sum param-assignment [ sum::return#0 s1#0 ]
   to:@3
@@ -13,13 +13,13 @@
   [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ]
   [6] (byte~) $3 ← (byte) s1#0 + (byte) s2#0 [ $3 s3#0 ]
   [7] (byte) s4#0 ← (byte~) $3 + (byte) s3#0 [ ]
-  to:@END
-@END: from @4
-sum: from @2 @3 @BEGIN
-  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
-  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  to:@end
+@end: from @4
+sum: from @2 @3 @begin
+  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
   [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ]
   to:sum::@return
 sum::@return: from sum
   [10] return  [ sum::return#0 s1#0 s2#0 ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/summin.log b/src/main/java/dk/camelot64/kickc/test/ref/summin.log
index 2c91edfbc..290513b90 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/summin.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/summin.log
@@ -43,7 +43,7 @@ SYMBOLS
 (byte) sum::return
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte~) $0 ← call sum (byte) 1 (byte) 2 
   (byte) s1 ← (byte~) $0
   (byte~) $1 ← call sum (byte) 3 (byte) 4 
@@ -61,17 +61,17 @@ sum: from
 sum::@return: from sum sum::@1
   (byte) sum::return ← (byte) sum::return
   return (byte) sum::return
-  to:@RETURN
+  to:@return
 sum::@1: from
   to:sum::@return
-@1: from @BEGIN
-  to:@END
-@END: from @1
+@1: from @begin
+  to:@end
+@end: from @1
 
 Removing empty block sum::@1
 Removing empty block @1
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte~) $0 ← call sum (byte) 1 (byte) 2 
   (byte) s1 ← (byte~) $0
   (byte~) $1 ← call sum (byte) 3 (byte) 4 
@@ -81,7 +81,7 @@ CONTROL FLOW GRAPH
   (byte~) $3 ← (byte) s1 + (byte) s2
   (byte~) $4 ← (byte~) $3 + (byte) s3
   (byte) s4 ← (byte~) $4
-  to:@END
+  to:@end
 sum: from
   (byte~) sum::$0 ← (byte) sum::a + (byte) sum::b
   (byte) sum::return ← (byte~) sum::$0
@@ -89,18 +89,18 @@ sum: from
 sum::@return: from sum
   (byte) sum::return ← (byte) sum::return
   return (byte) sum::return
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte) sum::a ← (byte) 1
   (byte) sum::b ← (byte) 2
   (byte) sum::return ← call sum param-assignment
   to:@2
-@2: from @BEGIN
+@2: from @begin
   (byte~) $0 ← (byte) sum::return
   (byte) s1 ← (byte~) $0
   (byte) sum::a ← (byte) 3
@@ -120,27 +120,27 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte~) $3 ← (byte) s1 + (byte) s2
   (byte~) $4 ← (byte~) $3 + (byte) s3
   (byte) s4 ← (byte~) $4
-  to:@END
-sum: from @2 @3 @BEGIN
+  to:@end
+sum: from @2 @3 @begin
   (byte~) sum::$0 ← (byte) sum::a + (byte) sum::b
   (byte) sum::return ← (byte~) sum::$0
   to:sum::@return
 sum::@return: from sum
   (byte) sum::return ← (byte) sum::return
   return (byte) sum::return
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte) sum::a#0 ← (byte) 1
   (byte) sum::b#0 ← (byte) 2
   (byte) sum::return#0 ← call sum param-assignment
   to:@2
-@2: from @BEGIN
-  (byte) sum::return#5 ← phi( @BEGIN/(byte) sum::return#0 )
+@2: from @begin
+  (byte) sum::return#5 ← phi( @begin/(byte) sum::return#0 )
   (byte~) $0 ← (byte) sum::return#5
   (byte) s1#0 ← (byte~) $0
   (byte) sum::a#1 ← (byte) 3
@@ -165,10 +165,10 @@ CONTROL FLOW GRAPH SSA
   (byte~) $3 ← (byte) s1#1 + (byte) s2#1
   (byte~) $4 ← (byte~) $3 + (byte) s3#0
   (byte) s4#0 ← (byte~) $4
-  to:@END
-sum: from @2 @3 @BEGIN
-  (byte) sum::b#3 ← phi( @2/(byte) sum::b#1 @3/(byte) sum::b#2 @BEGIN/(byte) sum::b#0 )
-  (byte) sum::a#3 ← phi( @2/(byte) sum::a#1 @3/(byte) sum::a#2 @BEGIN/(byte) sum::a#0 )
+  to:@end
+sum: from @2 @3 @begin
+  (byte) sum::b#3 ← phi( @2/(byte) sum::b#1 @3/(byte) sum::b#2 @begin/(byte) sum::b#0 )
+  (byte) sum::a#3 ← phi( @2/(byte) sum::a#1 @3/(byte) sum::a#2 @begin/(byte) sum::a#0 )
   (byte~) sum::$0 ← (byte) sum::a#3 + (byte) sum::b#3
   (byte) sum::return#3 ← (byte~) sum::$0
   to:sum::@return
@@ -176,18 +176,18 @@ sum::@return: from sum
   (byte) sum::return#8 ← phi( sum/(byte) sum::return#3 )
   (byte) sum::return#4 ← (byte) sum::return#8
   return (byte) sum::return#4
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte) sum::a#0 ← (byte) 1
   (byte) sum::b#0 ← (byte) 2
   call sum param-assignment
   (byte) sum::return#0 ← (byte) sum::return#4
   to:@2
-@2: from @BEGIN
-  (byte) sum::return#5 ← phi( @BEGIN/(byte) sum::return#0 )
+@2: from @begin
+  (byte) sum::return#5 ← phi( @begin/(byte) sum::return#0 )
   (byte~) $0 ← (byte) sum::return#5
   (byte) s1#0 ← (byte~) $0
   (byte) sum::a#1 ← (byte) 3
@@ -214,10 +214,10 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte~) $3 ← (byte) s1#1 + (byte) s2#1
   (byte~) $4 ← (byte~) $3 + (byte) s3#0
   (byte) s4#0 ← (byte~) $4
-  to:@END
-sum: from @2 @3 @BEGIN
-  (byte) sum::b#3 ← phi( @2/(byte) sum::b#1 @3/(byte) sum::b#2 @BEGIN/(byte) sum::b#0 )
-  (byte) sum::a#3 ← phi( @2/(byte) sum::a#1 @3/(byte) sum::a#2 @BEGIN/(byte) sum::a#0 )
+  to:@end
+sum: from @2 @3 @begin
+  (byte) sum::b#3 ← phi( @2/(byte) sum::b#1 @3/(byte) sum::b#2 @begin/(byte) sum::b#0 )
+  (byte) sum::a#3 ← phi( @2/(byte) sum::a#1 @3/(byte) sum::a#2 @begin/(byte) sum::a#0 )
   (byte~) sum::$0 ← (byte) sum::a#3 + (byte) sum::b#3
   (byte) sum::return#3 ← (byte~) sum::$0
   to:sum::@return
@@ -225,8 +225,8 @@ sum::@return: from sum
   (byte) sum::return#8 ← phi( sum/(byte) sum::return#3 )
   (byte) sum::return#4 ← (byte) sum::return#8
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Constant (byte) sum::a#0 (byte) 1
 Constant (byte) sum::b#0 (byte) 2
@@ -236,12 +236,12 @@ Constant (byte) sum::a#2 (byte) 9
 Constant (byte) sum::b#2 (byte) 13
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call sum param-assignment
   (byte) sum::return#0 ← (byte) sum::return#4
   to:@2
-@2: from @BEGIN
-  (byte) sum::return#5 ← phi( @BEGIN/(byte) sum::return#0 )
+@2: from @begin
+  (byte) sum::return#5 ← phi( @begin/(byte) sum::return#0 )
   (byte~) $0 ← (byte) sum::return#5
   (byte) s1#0 ← (byte~) $0
   call sum param-assignment
@@ -264,10 +264,10 @@ CONTROL FLOW GRAPH
   (byte~) $3 ← (byte) s1#1 + (byte) s2#1
   (byte~) $4 ← (byte~) $3 + (byte) s3#0
   (byte) s4#0 ← (byte~) $4
-  to:@END
-sum: from @2 @3 @BEGIN
-  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 )
-  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 )
+  to:@end
+sum: from @2 @3 @begin
+  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 )
+  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 )
   (byte~) sum::$0 ← (byte) sum::a#3 + (byte) sum::b#3
   (byte) sum::return#3 ← (byte~) sum::$0
   to:sum::@return
@@ -275,8 +275,8 @@ sum::@return: from sum
   (byte) sum::return#8 ← phi( sum/(byte) sum::return#3 )
   (byte) sum::return#4 ← (byte) sum::return#8
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Not aliassing across scopes: $0 sum::return#5
 Not aliassing across scopes: $1 sum::return#6
@@ -288,10 +288,10 @@ Alias (byte) s3#0 = (byte~) $2
 Alias (byte) s4#0 = (byte~) $4 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call sum param-assignment
   to:@2
-@2: from @BEGIN
+@2: from @begin
   (byte) s1#0 ← (byte) sum::return#0
   call sum param-assignment
   to:@3
@@ -303,27 +303,27 @@ CONTROL FLOW GRAPH
   (byte) s3#0 ← (byte) sum::return#0
   (byte~) $3 ← (byte) s1#0 + (byte) s2#0
   (byte) s4#0 ← (byte~) $3 + (byte) s3#0
-  to:@END
-sum: from @2 @3 @BEGIN
-  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 )
-  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 )
+  to:@end
+sum: from @2 @3 @begin
+  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 )
+  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 )
   (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3
   to:sum::@return
 sum::@return: from sum
   return 
-  to:@RETURN
-@END: from @4
+  to:@return
+@end: from @4
 
 Not aliassing across scopes: s1#0 sum::return#0
 Not aliassing across scopes: s2#0 sum::return#0
 Not aliassing across scopes: s3#0 sum::return#0
-Block Sequence Planned @BEGIN @2 @3 @4 @END sum sum::@return 
-Block Sequence Planned @BEGIN @2 @3 @4 @END sum sum::@return 
+Block Sequence Planned @begin @2 @3 @4 @end sum sum::@return 
+Block Sequence Planned @begin @2 @3 @4 @end sum sum::@return 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call sum param-assignment
   to:@2
-@2: from @BEGIN
+@2: from @begin
   (byte) s1#0 ← (byte) sum::return#0
   call sum param-assignment
   to:@3
@@ -335,16 +335,16 @@ CONTROL FLOW GRAPH - PHI LIFTED
   (byte) s3#0 ← (byte) sum::return#0
   (byte~) $3 ← (byte) s1#0 + (byte) s2#0
   (byte) s4#0 ← (byte~) $3 + (byte) s3#0
-  to:@END
-@END: from @4
-sum: from @2 @3 @BEGIN
-  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 )
-  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 )
+  to:@end
+@end: from @4
+sum: from @2 @3 @begin
+  (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 )
+  (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 )
   (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3
   to:sum::@return
 sum::@return: from sum
   return 
-  to:@RETURN
+  to:@return
 
 Adding empty live range for unused variable s4#0
 Propagating live ranges...
@@ -362,10 +362,10 @@ Propagated s1#0 through call [4] call sum param-assignment
 Propagated s2#0 through call [4] call sum param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call sum param-assignment [ sum::return#0 ]
   to:@2
-@2: from @BEGIN
+@2: from @begin
   [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ]
   [2] call sum param-assignment [ sum::return#0 s1#0 ]
   to:@3
@@ -377,20 +377,20 @@ CONTROL FLOW GRAPH - LIVE RANGES
   [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ]
   [6] (byte~) $3 ← (byte) s1#0 + (byte) s2#0 [ $3 s3#0 ]
   [7] (byte) s4#0 ← (byte~) $3 + (byte) s3#0 [ ]
-  to:@END
-@END: from @4
-sum: from @2 @3 @BEGIN
-  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
-  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  to:@end
+@end: from @4
+sum: from @2 @3 @begin
+  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
   [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ]
   to:sum::@return
 sum::@return: from sum
   [10] return  [ sum::return#0 s1#0 s2#0 ]
-  to:@RETURN
+  to:@return
 
 Created 2 initial phi equivalence classes
 Coalesced down to 2 phi equivalence classes
-Block Sequence Planned @BEGIN @2 @3 @4 @END sum sum::@return 
+Block Sequence Planned @begin @2 @3 @4 @end sum sum::@return 
 Adding empty live range for unused variable s4#0
 Propagating live ranges...
 Propagating live ranges...
@@ -407,10 +407,10 @@ Propagated s1#0 through call [4] call sum param-assignment
 Propagated s2#0 through call [4] call sum param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call sum param-assignment [ sum::return#0 ]
   to:@2
-@2: from @BEGIN
+@2: from @begin
   [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ]
   [2] call sum param-assignment [ sum::return#0 s1#0 ]
   to:@3
@@ -422,28 +422,28 @@ CONTROL FLOW GRAPH - PHI MEM COALESCED
   [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ]
   [6] (byte~) $3 ← (byte) s1#0 + (byte) s2#0 [ $3 s3#0 ]
   [7] (byte) s4#0 ← (byte~) $3 + (byte) s3#0 [ ]
-  to:@END
-@END: from @4
-sum: from @2 @3 @BEGIN
-  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @BEGIN/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
-  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @BEGIN/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  to:@end
+@end: from @4
+sum: from @2 @3 @begin
+  [8] (byte) sum::b#3 ← phi( @2/(byte) 4 @3/(byte) 13 @begin/(byte) 2 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
+  [8] (byte) sum::a#3 ← phi( @2/(byte) 3 @3/(byte) 9 @begin/(byte) 1 ) [ s1#0 s2#0 sum::a#3 sum::b#3 ]
   [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ]
   to:sum::@return
 sum::@return: from sum
   [10] return  [ sum::return#0 s1#0 s2#0 ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:sum 2:sum 4:sum 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@2 dominated by  @BEGIN @2 
-@3 dominated by  @BEGIN @2 @3 
-@4 dominated by  @BEGIN @2 @3 @4 
-@END dominated by  @BEGIN @2 @3 @4 @END 
-sum dominated by  @BEGIN sum 
-sum::@return dominated by  @BEGIN sum::@return sum 
+@begin dominated by  @begin 
+@2 dominated by  @2 @begin 
+@3 dominated by  @2 @3 @begin 
+@4 dominated by  @2 @3 @4 @begin 
+@end dominated by  @2 @3 @4 @end @begin 
+sum dominated by  @begin sum 
+sum::@return dominated by  @begin sum::@return sum 
 
 NATURAL LOOPS
 
@@ -497,11 +497,11 @@ Allocated zp byte:7 to zp byte:7 [ $3 ]
 Allocated zp byte:8 to zp byte:8 [ s4#0 ]
 Allocated zp byte:9 to zp byte:9 [ sum::return#0 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call sum param-assignment [ sum::return#0 ]
-//SEG2 [8] phi from @BEGIN to sum
-sum_from_BBEGIN:
+//SEG2 [8] phi from @begin to sum
+sum_from_bbegin:
 //SEG3 [8] phi (byte) sum::b#3 = (byte) 2 -- zpby1=coby1 
   lda #$2
   sta $3
@@ -509,15 +509,15 @@ sum_from_BBEGIN:
   lda #$1
   sta $2
   jsr sum
-  jmp B2
+  jmp b2
 //SEG5 @2
-B2:
+b2:
 //SEG6 [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ] -- zpby1=zpby2 
   lda $9
   sta $4
 //SEG7 [2] call sum param-assignment [ sum::return#0 s1#0 ]
 //SEG8 [8] phi from @2 to sum
-sum_from_B2:
+sum_from_b2:
 //SEG9 [8] phi (byte) sum::b#3 = (byte) 4 -- zpby1=coby1 
   lda #$4
   sta $3
@@ -525,15 +525,15 @@ sum_from_B2:
   lda #$3
   sta $2
   jsr sum
-  jmp B3
+  jmp b3
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) s2#0 ← (byte) sum::return#0 [ s1#0 s2#0 ] -- zpby1=zpby2 
   lda $9
   sta $5
 //SEG13 [4] call sum param-assignment [ sum::return#0 s1#0 s2#0 ]
 //SEG14 [8] phi from @3 to sum
-sum_from_B3:
+sum_from_b3:
 //SEG15 [8] phi (byte) sum::b#3 = (byte) 13 -- zpby1=coby1 
   lda #$d
   sta $3
@@ -541,9 +541,9 @@ sum_from_B3:
   lda #$9
   sta $2
   jsr sum
-  jmp B4
+  jmp b4
 //SEG17 @4
-B4:
+b4:
 //SEG18 [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ] -- zpby1=zpby2 
   lda $9
   sta $6
@@ -557,21 +557,22 @@ B4:
   clc
   adc $6
   sta $8
-  jmp BEND
-//SEG21 @END
-BEND:
+  jmp bend
+//SEG21 @end
+bend:
 //SEG22 sum
-sum:
-//SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- zpby1=zpby2_plus_zpby3 
-  lda $2
-  clc
-  adc $3
-  sta $9
-  jmp sum__Breturn
-//SEG24 sum::@return
-sum__Breturn:
-//SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
-  rts
+sum: {
+  //SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- zpby1=zpby2_plus_zpby3 
+    lda $2
+    clc
+    adc $3
+    sta $9
+    jmp breturn
+  //SEG24 sum::@return
+  breturn:
+  //SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
+    rts
+}
 
 REGISTER UPLIFT POTENTIAL REGISTERS
 Potential registers zp byte:2 [ sum::a#3 ] : zp byte:2 , reg byte a , reg byte x , reg byte y , 
@@ -591,49 +592,49 @@ Uplifting [] best 107 combination reg byte a [ s4#0 ] reg byte a [ $3 ] zp byte:
 Uplifting [sum] best 79 combination reg byte y [ sum::a#3 ] reg byte a [ sum::b#3 ] reg byte a [ sum::return#0 ] 
 Re-allocated ZP register from zp byte:4 to zp byte:2
 Re-allocated ZP register from zp byte:6 to zp byte:3
-Removing instruction jmp B2
-Removing instruction jmp B3
-Removing instruction jmp B4
-Removing instruction jmp BEND
-Removing instruction jmp sum__Breturn
+Removing instruction jmp b2
+Removing instruction jmp b3
+Removing instruction jmp b4
+Removing instruction jmp bend
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call sum param-assignment [ sum::return#0 ]
-//SEG2 [8] phi from @BEGIN to sum
-sum_from_BBEGIN:
+//SEG2 [8] phi from @begin to sum
+sum_from_bbegin:
 //SEG3 [8] phi (byte) sum::b#3 = (byte) 2 -- aby=coby1 
   lda #$2
 //SEG4 [8] phi (byte) sum::a#3 = (byte) 1 -- yby=coby1 
   ldy #$1
   jsr sum
 //SEG5 @2
-B2:
+b2:
 //SEG6 [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ] -- zpby1=aby 
   sta $2
 //SEG7 [2] call sum param-assignment [ sum::return#0 s1#0 ]
 //SEG8 [8] phi from @2 to sum
-sum_from_B2:
+sum_from_b2:
 //SEG9 [8] phi (byte) sum::b#3 = (byte) 4 -- aby=coby1 
   lda #$4
 //SEG10 [8] phi (byte) sum::a#3 = (byte) 3 -- yby=coby1 
   ldy #$3
   jsr sum
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) s2#0 ← (byte) sum::return#0 [ s1#0 s2#0 ] -- xby=aby 
   tax
 //SEG13 [4] call sum param-assignment [ sum::return#0 s1#0 s2#0 ]
 //SEG14 [8] phi from @3 to sum
-sum_from_B3:
+sum_from_b3:
 //SEG15 [8] phi (byte) sum::b#3 = (byte) 13 -- aby=coby1 
   lda #$d
 //SEG16 [8] phi (byte) sum::a#3 = (byte) 9 -- yby=coby1 
   ldy #$9
   jsr sum
 //SEG17 @4
-B4:
+b4:
 //SEG18 [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ] -- zpby1=aby 
   sta $3
 //SEG19 [6] (byte~) $3 ← (byte) s1#0 + (byte) s2#0 [ $3 s3#0 ] -- aby=zpby1_plus_xby 
@@ -643,26 +644,27 @@ B4:
 //SEG20 [7] (byte) s4#0 ← (byte~) $3 + (byte) s3#0 [ ] -- aby=aby_plus_zpby1 
   clc
   adc $3
-//SEG21 @END
-BEND:
+//SEG21 @end
+bend:
 //SEG22 sum
-sum:
-//SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- aby=yby_plus_aby 
-  sty $ff
-  clc
-  adc $ff
-//SEG24 sum::@return
-sum__Breturn:
-//SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
-  rts
+sum: {
+  //SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- aby=yby_plus_aby 
+    sty $ff
+    clc
+    adc $ff
+  //SEG24 sum::@return
+  breturn:
+  //SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
+    rts
+}
 
 FINAL SYMBOL TABLE
 (byte~) $3 reg byte a 4.0
 (label) @2
 (label) @3
 (label) @4
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) s1
 (byte) s1#0 zp byte:2 0.5
 (byte) s2
@@ -690,42 +692,42 @@ reg byte a [ s4#0 ]
 reg byte a [ sum::return#0 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call sum param-assignment [ sum::return#0 ]
-//SEG2 [8] phi from @BEGIN to sum
-sum_from_BBEGIN:
+//SEG2 [8] phi from @begin to sum
+sum_from_bbegin:
 //SEG3 [8] phi (byte) sum::b#3 = (byte) 2 -- aby=coby1 
   lda #$2
 //SEG4 [8] phi (byte) sum::a#3 = (byte) 1 -- yby=coby1 
   ldy #$1
   jsr sum
 //SEG5 @2
-B2:
+b2:
 //SEG6 [1] (byte) s1#0 ← (byte) sum::return#0 [ s1#0 ] -- zpby1=aby 
   sta $2
 //SEG7 [2] call sum param-assignment [ sum::return#0 s1#0 ]
 //SEG8 [8] phi from @2 to sum
-sum_from_B2:
+sum_from_b2:
 //SEG9 [8] phi (byte) sum::b#3 = (byte) 4 -- aby=coby1 
   lda #$4
 //SEG10 [8] phi (byte) sum::a#3 = (byte) 3 -- yby=coby1 
   ldy #$3
   jsr sum
 //SEG11 @3
-B3:
+b3:
 //SEG12 [3] (byte) s2#0 ← (byte) sum::return#0 [ s1#0 s2#0 ] -- xby=aby 
   tax
 //SEG13 [4] call sum param-assignment [ sum::return#0 s1#0 s2#0 ]
 //SEG14 [8] phi from @3 to sum
-sum_from_B3:
+sum_from_b3:
 //SEG15 [8] phi (byte) sum::b#3 = (byte) 13 -- aby=coby1 
   lda #$d
 //SEG16 [8] phi (byte) sum::a#3 = (byte) 9 -- yby=coby1 
   ldy #$9
   jsr sum
 //SEG17 @4
-B4:
+b4:
 //SEG18 [5] (byte) s3#0 ← (byte) sum::return#0 [ s1#0 s2#0 s3#0 ] -- zpby1=aby 
   sta $3
 //SEG19 [6] (byte~) $3 ← (byte) s1#0 + (byte) s2#0 [ $3 s3#0 ] -- aby=zpby1_plus_xby 
@@ -735,16 +737,17 @@ B4:
 //SEG20 [7] (byte) s4#0 ← (byte~) $3 + (byte) s3#0 [ ] -- aby=aby_plus_zpby1 
   clc
   adc $3
-//SEG21 @END
-BEND:
+//SEG21 @end
+bend:
 //SEG22 sum
-sum:
-//SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- aby=yby_plus_aby 
-  sty $ff
-  clc
-  adc $ff
-//SEG24 sum::@return
-sum__Breturn:
-//SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
-  rts
+sum: {
+  //SEG23 [9] (byte) sum::return#0 ← (byte) sum::a#3 + (byte) sum::b#3 [ sum::return#0 s1#0 s2#0 ] -- aby=yby_plus_aby 
+    sty $ff
+    clc
+    adc $ff
+  //SEG24 sum::@return
+  breturn:
+  //SEG25 [10] return  [ sum::return#0 s1#0 s2#0 ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/summin.sym b/src/main/java/dk/camelot64/kickc/test/ref/summin.sym
index a08a3f6aa..8595aca59 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/summin.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/summin.sym
@@ -2,8 +2,8 @@
 (label) @2
 (label) @3
 (label) @4
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte) s1
 (byte) s1#0 zp byte:2 0.5
 (byte) s2
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.asm b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.asm
index 08122dcb6..2c6f7cbcb 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.asm
@@ -1,8 +1,9 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-  lda #$1
-  sta $400
-main__Breturn:
-  rts
+bend:
+main: {
+    lda #$1
+    sta $400
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.cfg b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.cfg
index 3e6cabbbc..02dba420e 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.cfg
@@ -1,10 +1,10 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 1024) ← (byte) 1 [ ]
   to:main::@return
 main::@return: from main
   [2] return  [ ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.log b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.log
index 7d450436b..8de7b589a 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.log
@@ -20,7 +20,7 @@ SYMBOLS
 (label) main::@return
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
   to:@1
@@ -29,171 +29,171 @@ main: from
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@1: from @BEGIN
-  to:@END
-@END: from @1
+  to:@return
+@1: from @begin
+  to:@end
+@end: from @1
 
 Removing empty block @1
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   *((byte*) SCREEN) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
+@2: from @begin
+  to:@end
+main: from @begin
   *((byte*) SCREEN) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#1 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@2: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#1 ← phi( @begin/(byte*) SCREEN#0 )
   *((byte*) SCREEN#1) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
   to:@2
-@2: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#1 ← phi( @BEGIN/(byte*) SCREEN#0 )
+@2: from @begin
+  to:@end
+main: from @begin
+  (byte*) SCREEN#1 ← phi( @begin/(byte*) SCREEN#0 )
   *((byte*) SCREEN#1) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @2
+  to:@return
+@end: from @2
 
 Culled Empty Block (label) @2
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#1 ← phi( @BEGIN/(byte*) SCREEN#0 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#1 ← phi( @begin/(byte*) SCREEN#0 )
   *((byte*) SCREEN#1) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Constant (byte*) SCREEN#0 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
-  (byte*) SCREEN#1 ← phi( @BEGIN/(word) 1024 )
+  to:@end
+main: from @begin
+  (byte*) SCREEN#1 ← phi( @begin/(word) 1024 )
   *((byte*) SCREEN#1) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
 Redundant Phi (byte*) SCREEN#1 (word) 1024
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   *((word) 1024) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
-@END: from @BEGIN
+  to:@return
+@end: from @begin
 
-Block Sequence Planned @BEGIN @END main main::@return 
-Block Sequence Planned @BEGIN @END main main::@return 
+Block Sequence Planned @begin @end main main::@return 
+Block Sequence Planned @begin @end main main::@return 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   *((word) 1024) ← (byte) 1
   to:main::@return
 main::@return: from main
   return 
-  to:@RETURN
+  to:@return
 
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 1024) ← (byte) 1 [ ]
   to:main::@return
 main::@return: from main
   [2] return  [ ]
-  to:@RETURN
+  to:@return
 
 Created 0 initial phi equivalence classes
 Coalesced down to 0 phi equivalence classes
-Block Sequence Planned @BEGIN @END main main::@return 
+Block Sequence Planned @begin @end main main::@return 
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] *((word) 1024) ← (byte) 1 [ ]
   to:main::@return
 main::@return: from main
   [2] return  [ ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@return dominated by  @BEGIN main::@return main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@return dominated by  main::@return @begin main 
 
 NATURAL LOOPS
 
@@ -209,23 +209,24 @@ VARIABLE REGISTER WEIGHTS
 Initial phi equivalence classes
 Complete equivalence classes
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-  jmp main__Breturn
-//SEG5 main::@return
-main__Breturn:
-//SEG6 [2] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+    jmp breturn
+  //SEG5 main::@return
+  breturn:
+  //SEG6 [2] return  [ ]
+    rts
+}
 
 Statement [1] *((word) 1024) ← (byte) 1 [ ] always clobbers reg byte a 
 Statement [1] *((word) 1024) ← (byte) 1 [ ] always clobbers reg byte a 
@@ -237,48 +238,50 @@ Uplift Scope []
 
 Uplifting [main] best 24 combination 
 Uplifting [] best 24 combination 
-Removing instruction jmp BEND
-Removing instruction jmp main__Breturn
+Removing instruction jmp bend
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-//SEG5 main::@return
-main__Breturn:
-//SEG6 [2] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+  //SEG5 main::@return
+  breturn:
+  //SEG6 [2] return  [ ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@return
 
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
-  lda #$1
-  sta $400
-//SEG5 main::@return
-main__Breturn:
-//SEG6 [2] return  [ ]
-  rts
+main: {
+  //SEG4 [1] *((word) 1024) ← (byte) 1 [ ] -- _star_cowo1=coby2 
+    lda #$1
+    sta $400
+  //SEG5 main::@return
+  breturn:
+  //SEG6 [2] return  [ ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.sym b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.sym
index 46563cb31..a9d294ba6 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/useglobal.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/useglobal.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) SCREEN
 (void()) main()
 (label) main::@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.asm b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.asm
index 883331848..da61114f9 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.asm
+++ b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.asm
@@ -1,101 +1,103 @@
-BBEGIN:
+bbegin:
   jsr main
-BEND:
-main:
-addpoint_from_main:
-  lda #$1
-  sta $2
-  ldy #$5
-  lda #$0
-  sta $8
-  lda #$5
-  jsr addpoint
-main__B3:
-addpoint_from_B3:
-  lda #$2
-  sta $2
-  ldy #$8
-  lda #$f
-  jsr addpoint
-main__B4:
-addpoint_from_B4:
-  lda #$3
-  sta $2
-  ldy #$e
-  lda #$6
-  jsr addpoint
-main__B5:
-addpoint_from_B5:
-  lda #$4
-  sta $2
-  ldy #$2
-  lda #$22
-  jsr addpoint
-main__B6:
-addpoint_from_B6:
-  lda #$5
-  sta $2
-  ldy #$11
-  lda #$15
-  jsr addpoint
-main__B7:
-addpoint_from_B7:
-  lda #$7
-  sta $2
-  ldy #$16
-  lda #$1f
-  jsr addpoint
-main__B8:
-  jsr initscreen
-main__B1:
-  jsr render
-main__B10:
-  jsr animate
-main__B11:
-  jmp main__B1
-main__Breturn:
-  rts
-animate:
-  lda $1000
-  clc
-  adc #$1
-  sta $1000
-  lda $1000
-  cmp #$28
-  beq animate__B1
-animate__B2:
-  lda $1100
-  clc
-  adc #$1
-  sta $1100
-  lda $1100
-  cmp #$19
-  beq animate__B3
-animate__B4:
-  ldx $1001
-  dex
-  stx $1001
-  lda $1001
-  cmp #$ff
-  beq animate__B5
-animate__B6:
-  lda $1102
-  clc
-  adc #$1
-  sta $1102
-  lda $1102
-  cmp #$19
-  beq animate__B7
-animate__B8:
-  ldx $1103
-  dex
-  stx $1103
-  lda $1103
-  cmp #$ff
-  beq animate__B9
-animate__Breturn:
-  rts
-animate__B9:
+bend:
+main: {
+  addpoint_from_main:
+    lda #$1
+    sta $2
+    ldy #$5
+    lda #$0
+    sta $8
+    lda #$5
+    jsr addpoint
+  b3:
+  addpoint_from_b3:
+    lda #$2
+    sta $2
+    ldy #$8
+    lda #$f
+    jsr addpoint
+  b4:
+  addpoint_from_b4:
+    lda #$3
+    sta $2
+    ldy #$e
+    lda #$6
+    jsr addpoint
+  b5:
+  addpoint_from_b5:
+    lda #$4
+    sta $2
+    ldy #$2
+    lda #$22
+    jsr addpoint
+  b6:
+  addpoint_from_b6:
+    lda #$5
+    sta $2
+    ldy #$11
+    lda #$15
+    jsr addpoint
+  b7:
+  addpoint_from_b7:
+    lda #$7
+    sta $2
+    ldy #$16
+    lda #$1f
+    jsr addpoint
+  b8:
+    jsr initscreen
+  b1:
+    jsr render
+  b10:
+    jsr animate
+  b11:
+    jmp b1
+  breturn:
+    rts
+}
+animate: {
+    lda $1000
+    clc
+    adc #$1
+    sta $1000
+    lda $1000
+    cmp #$28
+    beq b1
+  b2:
+    lda $1100
+    clc
+    adc #$1
+    sta $1100
+    lda $1100
+    cmp #$19
+    beq b3
+  b4:
+    ldx $1001
+    dex
+    stx $1001
+    lda $1001
+    cmp #$ff
+    beq b5
+  b6:
+    lda $1102
+    clc
+    adc #$1
+    sta $1102
+    lda $1102
+    cmp #$19
+    beq b7
+  b8:
+    ldx $1103
+    dex
+    stx $1103
+    lda $1103
+    cmp #$ff
+    beq b9
+  breturn:
+    rts
+}
+b9:
   lda #$19
   sta $1103
   lda $1003
@@ -104,181 +106,185 @@ animate__B9:
   sta $1003
   lda $1003
   cmp #$28
-  bcs animate__B11
-  jmp animate__Breturn
-animate__B11:
+  bcs b11
+  jmp breturn
+b11:
   lda $1003
   sec
   sbc #$28
   sta $1003
-  jmp animate__Breturn
-animate__B7:
+  jmp breturn
+b7:
   lda #$0
   sta $1102
-  jmp animate__B8
-animate__B5:
+  jmp b8
+b5:
   lda #$28
   sta $1001
-  jmp animate__B6
-animate__B3:
+  jmp b6
+b3:
   lda #$0
   sta $1100
-  jmp animate__B4
-animate__B1:
+  jmp b4
+b1:
   lda #$0
   sta $1000
-  jmp animate__B2
-render:
-render__B1_from_render:
-  lda #<$d800
-  sta $3
-  lda #>$d800
-  sta $3+$1
-  lda #$0
-  sta $2
-render__B1_from_B3:
-render__B1:
-render__B2_from_B1:
-  lda #$0
-  sta $5
-render__B2_from_B5:
-render__B2:
-  lda $5
-  sta $9
-  lda $2
-  sta $a
-  jsr findcol
-render__B5:
-  tya
-  ldy $5
-  sta ($3),y
-  inc $5
-  lda $5
-  cmp #$28
-  bcc render__B2_from_B5
-render__B3:
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-  inc $2
-  lda $2
-  cmp #$19
-  bcc render__B1_from_B3
-render__Breturn:
-  rts
-findcol:
-findcol__B1_from_findcol:
-  ldy #$0
-  lda #$ff
-  sta $6
-  ldx #$0
-findcol__B1_from_B13:
-findcol__B1:
-  lda $1000,x
-  sta $7
-  lda $1100,x
-  sta $b
-  lda $9
-  cmp $7
-  beq findcol__B2
-findcol__B3:
-  lda $9
-  cmp $7
-  bcc findcol__B6
-findcol__B7:
-  lda $9
-  sec
-  sbc $7
-  sta $7
-findcol__B8_from_B7:
-findcol__B8:
-  lda $a
-  cmp $b
-  bcc findcol__B9
-findcol__B10:
-  lda $a
-  sec
-  sbc $b
-  clc
-  adc $7
-findcol__B11_from_B10:
-findcol__B11:
-  cmp $6
-  bcc findcol__B12
-findcol__B13_from_B11:
-findcol__B13:
-  inx
-  cpx $8
-  bcc findcol__B1_from_B13
-findcol__Breturn_from_B13:
-  jmp findcol__Breturn
-findcol__Breturn_from_B2:
-  ldy #$0
-findcol__Breturn:
-  rts
-findcol__B12:
+  jmp b2
+render: {
+  b1_from_render:
+    lda #<$d800
+    sta $3
+    lda #>$d800
+    sta $3+$1
+    lda #$0
+    sta $2
+  b1_from_b3:
+  b1:
+  b2_from_b1:
+    lda #$0
+    sta $5
+  b2_from_b5:
+  b2:
+    lda $5
+    sta $9
+    lda $2
+    sta $a
+    jsr findcol
+  b5:
+    tya
+    ldy $5
+    sta ($3),y
+    inc $5
+    lda $5
+    cmp #$28
+    bcc b2_from_b5
+  b3:
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+    inc $2
+    lda $2
+    cmp #$19
+    bcc b1_from_b3
+  breturn:
+    rts
+}
+findcol: {
+  b1_from_findcol:
+    ldy #$0
+    lda #$ff
+    sta $6
+    ldx #$0
+  b1_from_b13:
+  b1:
+    lda $1000,x
+    sta $7
+    lda $1100,x
+    sta $b
+    lda $9
+    cmp $7
+    beq b2
+  b3:
+    lda $9
+    cmp $7
+    bcc b6
+  b7:
+    lda $9
+    sec
+    sbc $7
+    sta $7
+  b8_from_b7:
+  b8:
+    lda $a
+    cmp $b
+    bcc b9
+  b10:
+    lda $a
+    sec
+    sbc $b
+    clc
+    adc $7
+  b11_from_b10:
+  b11:
+    cmp $6
+    bcc b12
+  b13_from_b11:
+  b13:
+    inx
+    cpx $8
+    bcc b1_from_b13
+  breturn_from_b13:
+    jmp breturn
+  breturn_from_b2:
+    ldy #$0
+  breturn:
+    rts
+}
+b12:
   ldy $1200,x
   sta $6
-findcol__B13_from_B12:
-  jmp findcol__B13
-findcol__B9:
+b13_from_b12:
+  jmp b13
+b9:
   lda $b
   sec
   sbc $a
   clc
   adc $7
-findcol__B11_from_B9:
-  jmp findcol__B11
-findcol__B6:
+b11_from_b9:
+  jmp b11
+b6:
   lda $7
   sec
   sbc $9
   sta $7
-findcol__B8_from_B6:
-  jmp findcol__B8
-findcol__B2:
+b8_from_b6:
+  jmp b8
+b2:
   lda $a
   cmp $b
-  beq findcol__Breturn_from_B2
-  jmp findcol__B3
-initscreen:
-initscreen__B1_from_initscreen:
-  lda #<$400
-  sta $3
-  lda #>$400
-  sta $3+$1
-initscreen__B1_from_B1:
-initscreen__B1:
-  ldy #$0
-  lda #$e6
-  sta ($3),y
-  inc $3
-  bne !+
-  inc $3+$1
-!:
-  lda $3+$1
-  cmp #>$7e8
-  bcc initscreen__B1_from_B1
-  bne !+
-  lda $3
-  cmp #<$7e8
-  bcc initscreen__B1_from_B1
-!:
-initscreen__Breturn:
-  rts
-addpoint:
-  ldx $8
-  sta $1000,x
-  tya
-  ldy $8
-  sta $1100,y
-  lda $2
-  ldx $8
-  sta $1200,x
-  inc $8
-addpoint__Breturn:
-  rts
+  beq breturn_from_b2
+  jmp b3
+initscreen: {
+  b1_from_initscreen:
+    lda #<$400
+    sta $3
+    lda #>$400
+    sta $3+$1
+  b1_from_b1:
+  b1:
+    ldy #$0
+    lda #$e6
+    sta ($3),y
+    inc $3
+    bne !+
+    inc $3+$1
+  !:
+    lda $3+$1
+    cmp #>$7e8
+    bcc b1_from_b1
+    bne !+
+    lda $3
+    cmp #<$7e8
+    bcc b1_from_b1
+  !:
+  breturn:
+    rts
+}
+addpoint: {
+    ldx $8
+    sta $1000,x
+    tya
+    ldy $8
+    sta $1100,y
+    lda $2
+    ldx $8
+    sta $1200,x
+    inc $8
+  breturn:
+    rts
+}
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.cfg b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.cfg
index 4a9870515..c9106dd7c 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.cfg
+++ b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.cfg
@@ -1,8 +1,8 @@
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call addpoint param-assignment [ ]
   to:main::@3
 main::@3: from main
@@ -34,7 +34,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [11] return  [ ]
-  to:@RETURN
+  to:@return
 animate: from main::@10
   [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ]
   [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ]
@@ -72,7 +72,7 @@ animate::@8: from animate::@6 animate::@7
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   [37] return  [ ]
-  to:@RETURN
+  to:@return
 animate::@9: from animate::@8
   [38] *((word) 4355) ← (byte) 25 [ ]
   [39] (byte~) animate::$20 ← * (word) 4099 [ animate::$20 ]
@@ -123,7 +123,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   [63] return  [ ]
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -161,7 +161,7 @@ findcol::@13: from findcol::@11 findcol::@12
 findcol::@return: from findcol::@13 findcol::@2
   [79] (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 ) [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
   [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  to:@RETURN
+  to:@return
 findcol::@12: from findcol::@11
   [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ]
   [82] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::mincol#1 findcol::diff#13 numpoints#1 ]
@@ -186,7 +186,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   [91] return  [ ]
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   [92] (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 ) [ numpoints#19 addpoint::x#6 addpoint::y#6 addpoint::c#6 ]
   [92] (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 ) [ numpoints#19 addpoint::x#6 addpoint::y#6 addpoint::c#6 ]
@@ -199,4 +199,4 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   [97] return  [ ]
-  to:@RETURN
+  to:@return
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.log b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.log
index fc2b79251..f15ba9adc 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.log
+++ b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.log
@@ -437,7 +437,7 @@ SYMBOLS
 (byte) render::y
 
 INITIAL CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (byte*) COLORS ← (word) 55296
   (byte) FILL ← (byte) 230
@@ -465,8 +465,8 @@ main::@2: from main::@1
   to:main::@return
 main::@return: from main::@2
   return 
-  to:@RETURN
-@1: from @BEGIN
+  to:@return
+@1: from @begin
   to:@2
 animate: from
   (byte~) animate::$0 ← (byte[256]) XPOS *idx (byte) 0
@@ -564,7 +564,7 @@ animate::@24: from
   to:animate::@11
 animate::@return: from animate::@10
   return 
-  to:@RETURN
+  to:@return
 @2: from @1
   to:@3
 addpoint: from
@@ -575,7 +575,7 @@ addpoint: from
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 @3: from @2
   to:@4
 initscreen: from
@@ -592,7 +592,7 @@ initscreen::@2: from initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@2
   return 
-  to:@RETURN
+  to:@return
 @4: from @3
   to:@5
 render: from
@@ -621,7 +621,7 @@ render::@4: from render::@3
   to:render::@return
 render::@return: from render::@4
   return 
-  to:@RETURN
+  to:@return
 @5: from @4
   to:@6
 findcol: from
@@ -661,7 +661,7 @@ findcol::@17: from
 findcol::@return: from findcol::@27 findcol::@28 findcol::@4
   (byte) findcol::return ← (byte) findcol::return
   return (byte) findcol::return
-  to:@RETURN
+  to:@return
 findcol::@18: from
   to:findcol::@5
 findcol::@6: from findcol::@20 findcol::@3
@@ -722,8 +722,8 @@ findcol::@27: from findcol::@13
 findcol::@28: from
   to:findcol::@return
 @6: from @5
-  to:@END
-@END: from @6
+  to:@end
+@end: from @6
 
 Removing empty block main::@2
 Removing empty block @1
@@ -764,7 +764,7 @@ Removing empty block findcol::@26
 Removing empty block findcol::@28
 Removing empty block @6
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (byte*) COLORS ← (word) 55296
   (byte) FILL ← (byte) 230
@@ -773,7 +773,7 @@ CONTROL FLOW GRAPH
   (byte[256]) YPOS ← (word) 4352
   (byte[256]) COLS ← (word) 4608
   (void~) $0 ← call main 
-  to:@END
+  to:@end
 main: from
   (void~) main::$0 ← call addpoint (byte) 5 (byte) 5 (byte) 1 
   (void~) main::$1 ← call addpoint (byte) 15 (byte) 8 (byte) 2 
@@ -790,7 +790,7 @@ main::@1: from main main::@1
   to:main::@return
 main::@return: from main::@1
   return 
-  to:@RETURN
+  to:@return
 animate: from
   (byte~) animate::$0 ← (byte[256]) XPOS *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -859,7 +859,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from
   *((byte[256]) XPOS + (byte) numpoints) ← (byte) addpoint::x
   *((byte[256]) YPOS + (byte) numpoints) ← (byte) addpoint::y
@@ -868,7 +868,7 @@ addpoint: from
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from
   (byte*) initscreen::screen ← (byte*) SCREEN
   to:initscreen::@1
@@ -881,7 +881,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from
   (byte*) render::colline ← (byte*) COLORS
   (byte) render::y ← (byte) 0
@@ -906,7 +906,7 @@ render::@3: from render::@2
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from
   (byte) findcol::mindiff ← (byte) 255
   (byte) findcol::mincol ← (byte) 0
@@ -934,7 +934,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return ← (byte) findcol::return
   return (byte) findcol::return
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte~) findcol::$5 ← (byte) findcol::xp - (byte) findcol::x
   (byte) findcol::diff ← (byte~) findcol::$5
@@ -974,14 +974,14 @@ findcol::@13: from findcol::@11 findcol::@12
 findcol::@27: from findcol::@13
   (byte) findcol::return ← (byte) findcol::mincol
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 PROCEDURE MODIFY VARIABLE ANALYSIS
 main modifies numpoints
 addpoint modifies numpoints
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
-@BEGIN: from
+@begin: from
   (byte*) SCREEN ← (word) 1024
   (byte*) COLORS ← (word) 55296
   (byte) FILL ← (byte) 230
@@ -991,10 +991,10 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL
   (byte[256]) COLS ← (word) 4608
   call main param-assignment
   to:@7
-@7: from @BEGIN
+@7: from @begin
   (byte) numpoints ← (byte) numpoints
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   (byte) addpoint::x ← (byte) 5
   (byte) addpoint::y ← (byte) 5
   (byte) addpoint::c ← (byte) 1
@@ -1053,7 +1053,7 @@ main::@11: from main::@10
 main::@return: from main::@11
   (byte) numpoints ← (byte) numpoints
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -1122,7 +1122,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   *((byte[256]) XPOS + (byte) numpoints) ← (byte) addpoint::x
   *((byte[256]) YPOS + (byte) numpoints) ← (byte) addpoint::y
@@ -1132,7 +1132,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
 addpoint::@return: from addpoint
   (byte) numpoints ← (byte) numpoints
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen ← (byte*) SCREEN
   to:initscreen::@1
@@ -1145,7 +1145,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline ← (byte*) COLORS
   (byte) render::y ← (byte) 0
@@ -1175,7 +1175,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   (byte) findcol::mindiff ← (byte) 255
   (byte) findcol::mincol ← (byte) 0
@@ -1203,7 +1203,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return ← (byte) findcol::return
   return (byte) findcol::return
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte~) findcol::$5 ← (byte) findcol::xp - (byte) findcol::x
   (byte) findcol::diff ← (byte~) findcol::$5
@@ -1243,7 +1243,7 @@ findcol::@13: from findcol::@11 findcol::@12
 findcol::@27: from findcol::@13
   (byte) findcol::return ← (byte) findcol::mincol
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Completing Phi functions...
 Completing Phi functions...
@@ -1260,7 +1260,7 @@ Completing Phi functions...
 Completing Phi functions...
 Completing Phi functions...
 CONTROL FLOW GRAPH SSA
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   (byte*) COLORS#0 ← (word) 55296
   (byte) FILL#0 ← (byte) 230
@@ -1270,18 +1270,18 @@ CONTROL FLOW GRAPH SSA
   (byte[256]) COLS#0 ← (word) 4608
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  (byte) numpoints#11 ← phi( @BEGIN/(byte) numpoints#0 )
+@7: from @begin
+  (byte) numpoints#11 ← phi( @begin/(byte) numpoints#0 )
   (byte) numpoints#1 ← (byte) numpoints#11
-  to:@END
-main: from @BEGIN
-  (byte*) COLORS#12 ← phi( @BEGIN/(byte*) COLORS#0 )
-  (byte) FILL#9 ← phi( @BEGIN/(byte) FILL#0 )
-  (byte*) SCREEN#9 ← phi( @BEGIN/(byte*) SCREEN#0 )
-  (byte[256]) COLS#3 ← phi( @BEGIN/(byte[256]) COLS#0 )
-  (byte[256]) YPOS#13 ← phi( @BEGIN/(byte[256]) YPOS#0 )
-  (byte[256]) XPOS#13 ← phi( @BEGIN/(byte[256]) XPOS#0 )
-  (byte) numpoints#22 ← phi( @BEGIN/(byte) numpoints#0 )
+  to:@end
+main: from @begin
+  (byte*) COLORS#12 ← phi( @begin/(byte*) COLORS#0 )
+  (byte) FILL#9 ← phi( @begin/(byte) FILL#0 )
+  (byte*) SCREEN#9 ← phi( @begin/(byte*) SCREEN#0 )
+  (byte[256]) COLS#3 ← phi( @begin/(byte[256]) COLS#0 )
+  (byte[256]) YPOS#13 ← phi( @begin/(byte[256]) YPOS#0 )
+  (byte[256]) XPOS#13 ← phi( @begin/(byte[256]) XPOS#0 )
+  (byte) numpoints#22 ← phi( @begin/(byte) numpoints#0 )
   (byte) addpoint::x#0 ← (byte) 5
   (byte) addpoint::y#0 ← (byte) 5
   (byte) addpoint::c#0 ← (byte) 1
@@ -1403,7 +1403,7 @@ main::@return: from main::@11
   (byte) numpoints#18 ← phi( main::@11/(byte) numpoints#23 )
   (byte) numpoints#8 ← (byte) numpoints#18
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte[256]) YPOS#9 ← phi( main::@10/(byte[256]) YPOS#21 )
   (byte[256]) XPOS#1 ← phi( main::@10/(byte[256]) XPOS#9 )
@@ -1493,7 +1493,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte[256]) COLS#1 ← phi( main/(byte[256]) COLS#3 main::@3/(byte[256]) COLS#4 main::@4/(byte[256]) COLS#5 main::@5/(byte[256]) COLS#6 main::@6/(byte[256]) COLS#7 main::@7/(byte[256]) COLS#8 )
   (byte) addpoint::c#6 ← phi( main/(byte) addpoint::c#0 main::@3/(byte) addpoint::c#1 main::@4/(byte) addpoint::c#2 main::@5/(byte) addpoint::c#3 main::@6/(byte) addpoint::c#4 main::@7/(byte) addpoint::c#5 )
@@ -1511,7 +1511,7 @@ addpoint::@return: from addpoint
   (byte) numpoints#20 ← phi( addpoint/(byte) numpoints#9 )
   (byte) numpoints#10 ← (byte) numpoints#20
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte) FILL#2 ← phi( main::@8/(byte) FILL#3 )
   (byte*) SCREEN#1 ← phi( main::@8/(byte*) SCREEN#3 )
@@ -1529,7 +1529,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte) numpoints#41 ← phi( main::@1/(byte) numpoints#29 )
   (byte[256]) COLS#23 ← phi( main::@1/(byte[256]) COLS#25 )
@@ -1591,7 +1591,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   (byte) numpoints#37 ← phi( render::@2/(byte) numpoints#38 )
   (byte[256]) COLS#18 ← phi( render::@2/(byte[256]) COLS#20 )
@@ -1657,7 +1657,7 @@ findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#5 ← phi( findcol::@27/(byte) findcol::return#3 findcol::@4/(byte) findcol::return#1 )
   (byte) findcol::return#2 ← (byte) findcol::return#5
   return (byte) findcol::return#2
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::mincol#8 ← phi( findcol::@3/(byte) findcol::mincol#10 )
   (byte[256]) YPOS#36 ← phi( findcol::@3/(byte[256]) YPOS#38 )
@@ -1780,10 +1780,10 @@ findcol::@27: from findcol::@13
   (byte) findcol::mincol#2 ← phi( findcol::@13/(byte) findcol::mincol#3 )
   (byte) findcol::return#3 ← (byte) findcol::mincol#2
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
-@BEGIN: from
+@begin: from
   (byte*) SCREEN#0 ← (word) 1024
   (byte*) COLORS#0 ← (word) 55296
   (byte) FILL#0 ← (byte) 230
@@ -1793,18 +1793,18 @@ CONTROL FLOW GRAPH WITH ASSIGNMENT CALL & RETURN
   (byte[256]) COLS#0 ← (word) 4608
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  (byte) numpoints#11 ← phi( @BEGIN/(byte) numpoints#8 )
+@7: from @begin
+  (byte) numpoints#11 ← phi( @begin/(byte) numpoints#8 )
   (byte) numpoints#1 ← (byte) numpoints#11
-  to:@END
-main: from @BEGIN
-  (byte*) COLORS#12 ← phi( @BEGIN/(byte*) COLORS#0 )
-  (byte) FILL#9 ← phi( @BEGIN/(byte) FILL#0 )
-  (byte*) SCREEN#9 ← phi( @BEGIN/(byte*) SCREEN#0 )
-  (byte[256]) COLS#3 ← phi( @BEGIN/(byte[256]) COLS#0 )
-  (byte[256]) YPOS#13 ← phi( @BEGIN/(byte[256]) YPOS#0 )
-  (byte[256]) XPOS#13 ← phi( @BEGIN/(byte[256]) XPOS#0 )
-  (byte) numpoints#22 ← phi( @BEGIN/(byte) numpoints#0 )
+  to:@end
+main: from @begin
+  (byte*) COLORS#12 ← phi( @begin/(byte*) COLORS#0 )
+  (byte) FILL#9 ← phi( @begin/(byte) FILL#0 )
+  (byte*) SCREEN#9 ← phi( @begin/(byte*) SCREEN#0 )
+  (byte[256]) COLS#3 ← phi( @begin/(byte[256]) COLS#0 )
+  (byte[256]) YPOS#13 ← phi( @begin/(byte[256]) YPOS#0 )
+  (byte[256]) XPOS#13 ← phi( @begin/(byte[256]) XPOS#0 )
+  (byte) numpoints#22 ← phi( @begin/(byte) numpoints#0 )
   (byte) addpoint::x#0 ← (byte) 5
   (byte) addpoint::y#0 ← (byte) 5
   (byte) addpoint::c#0 ← (byte) 1
@@ -1926,7 +1926,7 @@ main::@return: from main::@11
   (byte) numpoints#18 ← phi( main::@11/(byte) numpoints#23 )
   (byte) numpoints#8 ← (byte) numpoints#18
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte[256]) YPOS#9 ← phi( main::@10/(byte[256]) YPOS#21 )
   (byte[256]) XPOS#1 ← phi( main::@10/(byte[256]) XPOS#9 )
@@ -2016,7 +2016,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte[256]) COLS#1 ← phi( main/(byte[256]) COLS#3 main::@3/(byte[256]) COLS#4 main::@4/(byte[256]) COLS#5 main::@5/(byte[256]) COLS#6 main::@6/(byte[256]) COLS#7 main::@7/(byte[256]) COLS#8 )
   (byte) addpoint::c#6 ← phi( main/(byte) addpoint::c#0 main::@3/(byte) addpoint::c#1 main::@4/(byte) addpoint::c#2 main::@5/(byte) addpoint::c#3 main::@6/(byte) addpoint::c#4 main::@7/(byte) addpoint::c#5 )
@@ -2034,7 +2034,7 @@ addpoint::@return: from addpoint
   (byte) numpoints#20 ← phi( addpoint/(byte) numpoints#9 )
   (byte) numpoints#10 ← (byte) numpoints#20
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte) FILL#2 ← phi( main::@8/(byte) FILL#3 )
   (byte*) SCREEN#1 ← phi( main::@8/(byte*) SCREEN#3 )
@@ -2052,7 +2052,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte) numpoints#41 ← phi( main::@1/(byte) numpoints#29 )
   (byte[256]) COLS#23 ← phi( main::@1/(byte[256]) COLS#25 )
@@ -2115,7 +2115,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   (byte) numpoints#37 ← phi( render::@2/(byte) numpoints#38 )
   (byte[256]) COLS#18 ← phi( render::@2/(byte[256]) COLS#20 )
@@ -2181,7 +2181,7 @@ findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#5 ← phi( findcol::@27/(byte) findcol::return#3 findcol::@4/(byte) findcol::return#1 )
   (byte) findcol::return#2 ← (byte) findcol::return#5
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::mincol#8 ← phi( findcol::@3/(byte) findcol::mincol#10 )
   (byte[256]) YPOS#36 ← phi( findcol::@3/(byte[256]) YPOS#38 )
@@ -2304,7 +2304,7 @@ findcol::@27: from findcol::@13
   (byte) findcol::mincol#2 ← phi( findcol::@13/(byte) findcol::mincol#3 )
   (byte) findcol::return#3 ← (byte) findcol::mincol#2
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Constant (byte*) SCREEN#0 (word) 1024
 Constant (byte*) COLORS#0 (word) 55296
@@ -2339,21 +2339,21 @@ Constant (byte) findcol::i#0 (byte) 0
 Constant (byte) findcol::return#1 (byte) 0
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  (byte) numpoints#11 ← phi( @BEGIN/(byte) numpoints#8 )
+@7: from @begin
+  (byte) numpoints#11 ← phi( @begin/(byte) numpoints#8 )
   (byte) numpoints#1 ← (byte) numpoints#11
-  to:@END
-main: from @BEGIN
-  (byte*) COLORS#12 ← phi( @BEGIN/(word) 55296 )
-  (byte) FILL#9 ← phi( @BEGIN/(byte) 230 )
-  (byte*) SCREEN#9 ← phi( @BEGIN/(word) 1024 )
-  (byte[256]) COLS#3 ← phi( @BEGIN/(word) 4608 )
-  (byte[256]) YPOS#13 ← phi( @BEGIN/(word) 4352 )
-  (byte[256]) XPOS#13 ← phi( @BEGIN/(word) 4096 )
-  (byte) numpoints#22 ← phi( @BEGIN/(byte) 0 )
+  to:@end
+main: from @begin
+  (byte*) COLORS#12 ← phi( @begin/(word) 55296 )
+  (byte) FILL#9 ← phi( @begin/(byte) 230 )
+  (byte*) SCREEN#9 ← phi( @begin/(word) 1024 )
+  (byte[256]) COLS#3 ← phi( @begin/(word) 4608 )
+  (byte[256]) YPOS#13 ← phi( @begin/(word) 4352 )
+  (byte[256]) XPOS#13 ← phi( @begin/(word) 4096 )
+  (byte) numpoints#22 ← phi( @begin/(byte) 0 )
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -2457,7 +2457,7 @@ main::@return: from main::@11
   (byte) numpoints#18 ← phi( main::@11/(byte) numpoints#23 )
   (byte) numpoints#8 ← (byte) numpoints#18
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte[256]) YPOS#9 ← phi( main::@10/(byte[256]) YPOS#21 )
   (byte[256]) XPOS#1 ← phi( main::@10/(byte[256]) XPOS#9 )
@@ -2547,7 +2547,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte[256]) COLS#1 ← phi( main/(byte[256]) COLS#3 main::@3/(byte[256]) COLS#4 main::@4/(byte[256]) COLS#5 main::@5/(byte[256]) COLS#6 main::@6/(byte[256]) COLS#7 main::@7/(byte[256]) COLS#8 )
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
@@ -2565,7 +2565,7 @@ addpoint::@return: from addpoint
   (byte) numpoints#20 ← phi( addpoint/(byte) numpoints#9 )
   (byte) numpoints#10 ← (byte) numpoints#20
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte) FILL#2 ← phi( main::@8/(byte) FILL#3 )
   (byte*) SCREEN#1 ← phi( main::@8/(byte*) SCREEN#3 )
@@ -2583,7 +2583,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte) numpoints#41 ← phi( main::@1/(byte) numpoints#29 )
   (byte[256]) COLS#23 ← phi( main::@1/(byte[256]) COLS#25 )
@@ -2644,7 +2644,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   (byte) numpoints#37 ← phi( render::@2/(byte) numpoints#38 )
   (byte[256]) COLS#18 ← phi( render::@2/(byte[256]) COLS#20 )
@@ -2706,7 +2706,7 @@ findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#5 ← phi( findcol::@27/(byte) findcol::return#3 findcol::@4/(byte) 0 )
   (byte) findcol::return#2 ← (byte) findcol::return#5
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::mincol#8 ← phi( findcol::@3/(byte) findcol::mincol#10 )
   (byte[256]) YPOS#36 ← phi( findcol::@3/(byte[256]) YPOS#38 )
@@ -2829,7 +2829,7 @@ findcol::@27: from findcol::@13
   (byte) findcol::mincol#2 ← phi( findcol::@13/(byte) findcol::mincol#3 )
   (byte) findcol::return#3 ← (byte) findcol::mincol#2
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Multiple usages for variable. Not optimizing sub-constant (byte*) SCREEN#2
 Not aliassing across scopes: initscreen::screen#0 SCREEN#1
@@ -2918,19 +2918,19 @@ Alias (byte) findcol::mincol#1 = (byte~) findcol::$13
 Alias (byte) findcol::mincol#2 = (byte) findcol::mincol#3 (byte) findcol::return#3 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  to:@END
-main: from @BEGIN
-  (byte*) COLORS#10 ← phi( @BEGIN/(word) 55296 )
-  (byte) FILL#2 ← phi( @BEGIN/(byte) 230 )
-  (byte*) SCREEN#1 ← phi( @BEGIN/(word) 1024 )
-  (byte[256]) COLS#27 ← phi( @BEGIN/(word) 4608 )
-  (byte[256]) YPOS#13 ← phi( @BEGIN/(word) 4352 )
-  (byte[256]) XPOS#13 ← phi( @BEGIN/(word) 4096 )
-  (byte) numpoints#22 ← phi( @BEGIN/(byte) 0 )
+@7: from @begin
+  to:@end
+main: from @begin
+  (byte*) COLORS#10 ← phi( @begin/(word) 55296 )
+  (byte) FILL#2 ← phi( @begin/(byte) 230 )
+  (byte*) SCREEN#1 ← phi( @begin/(word) 1024 )
+  (byte[256]) COLS#27 ← phi( @begin/(word) 4608 )
+  (byte[256]) YPOS#13 ← phi( @begin/(word) 4352 )
+  (byte[256]) XPOS#13 ← phi( @begin/(word) 4096 )
+  (byte) numpoints#22 ← phi( @begin/(byte) 0 )
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -2969,7 +2969,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS#1 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -3046,7 +3046,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte[256]) COLS#1 ← phi( main/(byte[256]) COLS#27 main::@3/(byte[256]) COLS#27 main::@4/(byte[256]) COLS#27 main::@5/(byte[256]) COLS#27 main::@6/(byte[256]) COLS#27 main::@7/(byte[256]) COLS#27 )
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
@@ -3062,7 +3062,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen#0 ← (byte*) SCREEN#1
   to:initscreen::@1
@@ -3078,7 +3078,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (byte*) COLORS#1
   to:render::@1
@@ -3117,7 +3117,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -3159,7 +3159,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#0 ← phi( findcol::@27/(byte) findcol::mincol#2 findcol::@4/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#1 - (byte) findcol::x#2
   to:findcol::@8
@@ -3222,7 +3222,7 @@ findcol::@13: from findcol::@11 findcol::@12
   to:findcol::@27
 findcol::@27: from findcol::@13
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Redundant Phi (byte) numpoints#22 (byte) 0
 Redundant Phi (byte[256]) XPOS#13 (word) 4096
@@ -3281,12 +3281,12 @@ Redundant Phi (byte) findcol::y#9 (byte) findcol::y#11
 Redundant Phi (byte[256]) COLS#19 (byte[256]) COLS#2
 Succesful SSA optimization Pass2RedundantPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  to:@END
-main: from @BEGIN
+@7: from @begin
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -3325,7 +3325,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS#1 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -3394,7 +3394,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -3407,7 +3407,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen#0 ← (word) 1024
   to:initscreen::@1
@@ -3423,7 +3423,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (byte*) COLORS#1
   to:render::@1
@@ -3462,7 +3462,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -3493,7 +3493,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#0 ← phi( findcol::@27/(byte) findcol::mincol#2 findcol::@4/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -3530,7 +3530,7 @@ findcol::@13: from findcol::@11 findcol::@12
   to:findcol::@27
 findcol::@27: from findcol::@13
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Self Phi Eliminated (byte*) COLORS#1
 Self Phi Eliminated (byte[256]) XPOS#1
@@ -3553,12 +3553,12 @@ Self Phi Eliminated (byte[256]) COLS#16
 Self Phi Eliminated (byte) numpoints#35
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  to:@END
-main: from @BEGIN
+@7: from @begin
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -3597,7 +3597,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS#1 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -3666,7 +3666,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -3679,7 +3679,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen#0 ← (word) 1024
   to:initscreen::@1
@@ -3695,7 +3695,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (byte*) COLORS#1
   to:render::@1
@@ -3734,7 +3734,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -3765,7 +3765,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#0 ← phi( findcol::@27/(byte) findcol::mincol#2 findcol::@4/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -3802,7 +3802,7 @@ findcol::@13: from findcol::@11 findcol::@12
   to:findcol::@27
 findcol::@27: from findcol::@13
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Simple Condition (boolean~) animate::$3 if((byte~) animate::$2==(byte) 40) goto animate::@1
 Simple Condition (boolean~) animate::$7 if((byte~) animate::$6==(byte) 25) goto animate::@3
@@ -3821,12 +3821,12 @@ Simple Condition (boolean~) findcol::$12 if((byte) findcol::diff#6<(byte) findco
 Simple Condition (boolean~) findcol::$14 if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
 Succesful SSA optimization Pass2ConditionalJumpSimplification
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
   to:@7
-@7: from @BEGIN
-  to:@END
-main: from @BEGIN
+@7: from @begin
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -3865,7 +3865,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS#1 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -3928,7 +3928,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -3941,7 +3941,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen#0 ← (word) 1024
   to:initscreen::@1
@@ -3956,7 +3956,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (byte*) COLORS#1
   to:render::@1
@@ -3993,7 +3993,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -4021,7 +4021,7 @@ findcol::@4: from findcol::@2
 findcol::@return: from findcol::@27 findcol::@4
   (byte) findcol::return#0 ← phi( findcol::@27/(byte) findcol::mincol#2 findcol::@4/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -4055,7 +4055,7 @@ findcol::@13: from findcol::@11 findcol::@12
   to:findcol::@27
 findcol::@27: from findcol::@13
   to:findcol::@return
-@END: from @7
+@end: from @7
 
 Culled Empty Block (label) @7
 Culled Empty Block (label) main::@9
@@ -4063,10 +4063,10 @@ Culled Empty Block (label) findcol::@4
 Culled Empty Block (label) findcol::@27
 Succesful SSA optimization Pass2CullEmptyBlocks
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -4103,7 +4103,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (byte[256]) XPOS#1 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -4166,7 +4166,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -4179,7 +4179,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   (byte*) initscreen::screen#0 ← (word) 1024
   to:initscreen::@1
@@ -4194,7 +4194,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (byte*) COLORS#1
   to:render::@1
@@ -4231,7 +4231,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -4257,7 +4257,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -4289,7 +4289,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Constant (byte*) COLORS#1 (word) 55296
 Constant (byte[256]) XPOS#1 (word) 4096
@@ -4300,10 +4300,10 @@ Constant (byte) FILL#1 (byte) 230
 Constant (byte*) SCREEN#2 (word) 1024
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -4336,7 +4336,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← (word) 4096 *idx (byte) 0
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -4399,7 +4399,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -4412,7 +4412,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -4424,7 +4424,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (word) 55296
   to:render::@1
@@ -4461,7 +4461,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -4487,7 +4487,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -4519,7 +4519,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Consolidated referenced array index constant in assignment animate::$0
 Consolidated assigned array index constant in assignment *(4096)
@@ -4548,10 +4548,10 @@ Consolidated referenced array index constant in assignment animate::$24
 Consolidated assigned array index constant in assignment *(4099)
 Succesful SSA optimization Pass2ConstantAdditionElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -4584,7 +4584,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -4647,7 +4647,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -4660,7 +4660,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -4672,7 +4672,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (word) 55296
   to:render::@1
@@ -4709,7 +4709,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -4735,7 +4735,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#1
   to:findcol::@8
@@ -4767,7 +4767,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Not aliassing across scopes: findcol::x#0 render::x#2
 Not aliassing across scopes: findcol::y#0 render::y#2
@@ -4783,10 +4783,10 @@ Alias (byte) findcol::x#0 = (byte) findcol::x#1
 Alias (byte) findcol::y#0 = (byte) findcol::y#1 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -4818,7 +4818,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -4881,7 +4881,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -4894,7 +4894,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -4906,7 +4906,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (word) 55296
   to:render::@1
@@ -4937,7 +4937,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -4957,7 +4957,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0
   to:findcol::@8
@@ -4989,7 +4989,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Self Phi Eliminated (byte[256]) XPOS#19
 Self Phi Eliminated (byte[256]) YPOS#19
@@ -4997,10 +4997,10 @@ Self Phi Eliminated (byte[256]) COLS#16
 Self Phi Eliminated (byte) numpoints#35
 Succesful SSA optimization Pass2SelfPhiElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -5032,7 +5032,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -5095,7 +5095,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -5108,7 +5108,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -5120,7 +5120,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   (byte*) render::colline#0 ← (word) 55296
   to:render::@1
@@ -5151,7 +5151,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -5171,7 +5171,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0
   to:findcol::@8
@@ -5203,7 +5203,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Constant (byte*~) initscreen::$0 (word) 2024
 Constant (byte*) render::colline#0 (word) 55296
@@ -5212,10 +5212,10 @@ Constant (byte[256]) YPOS#19 (word) 4352
 Constant (byte[256]) COLS#16 (word) 4608
 Succesful SSA optimization Pass2ConstantPropagation
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -5247,7 +5247,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -5310,7 +5310,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -5323,7 +5323,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -5334,7 +5334,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   to:render::@1
 render::@1: from render render::@3
@@ -5361,7 +5361,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -5381,7 +5381,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0
   to:findcol::@8
@@ -5413,7 +5413,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#35) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) findcol::i#12
 Multiple usages for variable. Not optimizing sub-constant (byte) findcol::i#12
@@ -5424,10 +5424,10 @@ Not aliassing across scopes: render::col#0 findcol::return#0
 Alias (byte) numpoints#1 = (byte) numpoints#35 
 Succesful SSA optimization Pass2AliasElimination
 CONTROL FLOW GRAPH
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-main: from @BEGIN
+  to:@end
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -5459,7 +5459,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -5522,7 +5522,7 @@ animate::@11: from animate::@9
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 )
   (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 )
@@ -5535,7 +5535,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 initscreen: from main::@8
   to:initscreen::@1
 initscreen::@1: from initscreen initscreen::@1
@@ -5546,7 +5546,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 render: from main::@1
   to:render::@1
 render::@1: from render render::@3
@@ -5572,7 +5572,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -5592,7 +5592,7 @@ findcol::@3: from findcol::@1 findcol::@2
 findcol::@return: from findcol::@13 findcol::@2
   (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@6: from findcol::@3
   (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0
   to:findcol::@8
@@ -5624,7 +5624,7 @@ findcol::@13: from findcol::@11 findcol::@12
   (byte) findcol::i#1 ← ++ (byte) findcol::i#12
   if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1
   to:findcol::@return
-@END: from @BEGIN
+@end: from @begin
 
 Multiple usages for variable. Not optimizing sub-constant (byte) findcol::i#12
 Multiple usages for variable. Not optimizing sub-constant (byte) findcol::i#12
@@ -5632,20 +5632,20 @@ Multiple usages for variable. Not optimizing sub-constant (byte) findcol::i#12
 Not aliassing across scopes: findcol::x#0 render::x#2
 Not aliassing across scopes: findcol::y#0 render::y#2
 Not aliassing across scopes: render::col#0 findcol::return#0
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@13 findcol::@return findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return addpoint addpoint::@return 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@13 findcol::@return findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return addpoint addpoint::@return 
 Added new block during phi lifting render::@6(between render::@3 and render::@1)
 Added new block during phi lifting render::@7(between render::@5 and render::@2)
 Added new block during phi lifting findcol::@29(between findcol::@13 and findcol::@1)
 Added new block during phi lifting findcol::@30(between findcol::@11 and findcol::@13)
 Added new block during phi lifting findcol::@31(between findcol::@13 and findcol::@return)
 Added new block during phi lifting initscreen::@3(between initscreen::@1 and initscreen::@1)
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return render::@6 render::@7 findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@30 findcol::@13 findcol::@31 findcol::@return findcol::@29 findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return initscreen::@3 addpoint addpoint::@return 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return render::@6 render::@7 findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@30 findcol::@13 findcol::@31 findcol::@return findcol::@29 findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return initscreen::@3 addpoint addpoint::@return 
 CONTROL FLOW GRAPH - PHI LIFTED
-@BEGIN: from
+@begin: from
   call main param-assignment
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   call addpoint param-assignment
   to:main::@3
 main::@3: from main
@@ -5682,7 +5682,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   return 
-  to:@RETURN
+  to:@return
 animate: from main::@10
   (byte~) animate::$0 ← * (word) 4096
   (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1
@@ -5720,7 +5720,7 @@ animate::@8: from animate::@6 animate::@7
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   return 
-  to:@RETURN
+  to:@return
 animate::@9: from animate::@8
   *((word) 4355) ← (byte) 25
   (byte~) animate::$20 ← * (word) 4099
@@ -5771,7 +5771,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   return 
-  to:@RETURN
+  to:@return
 render::@6: from render::@3
   (byte~) render::y#6 ← (byte) render::y#1
   (byte*~) render::colline#6 ← (byte*) render::colline#1
@@ -5825,7 +5825,7 @@ findcol::@31: from findcol::@13
 findcol::@return: from findcol::@2 findcol::@31
   (byte) findcol::return#0 ← phi( findcol::@31/(byte~) findcol::mincol#16 findcol::@2/(byte) 0 )
   return 
-  to:@RETURN
+  to:@return
 findcol::@29: from findcol::@13
   (byte~) findcol::i#13 ← (byte) findcol::i#1
   (byte~) findcol::mindiff#12 ← (byte) findcol::mindiff#11
@@ -5858,7 +5858,7 @@ initscreen::@1: from initscreen initscreen::@3
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   return 
-  to:@RETURN
+  to:@return
 initscreen::@3: from initscreen::@1
   (byte*~) initscreen::screen#3 ← (byte*) initscreen::screen#1
   to:initscreen::@1
@@ -5874,7 +5874,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   return 
-  to:@RETURN
+  to:@return
 
 Propagating live ranges...
 Propagating live ranges...
@@ -5939,11 +5939,11 @@ Propagated render::y#2 through call [60] call findcol param-assignment
 Propagated render::colline#2 through call [60] call findcol param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - LIVE RANGES
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call addpoint param-assignment [ numpoints#1 ]
   to:main::@3
 main::@3: from main
@@ -5980,7 +5980,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [16] return  [ ]
-  to:@RETURN
+  to:@return
 animate: from main::@10
   [17] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ]
   [18] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ]
@@ -6018,7 +6018,7 @@ animate::@8: from animate::@6 animate::@7
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   [42] return  [ ]
-  to:@RETURN
+  to:@return
 animate::@9: from animate::@8
   [43] *((word) 4355) ← (byte) 25 [ ]
   [44] (byte~) animate::$20 ← * (word) 4099 [ animate::$20 ]
@@ -6069,7 +6069,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   [68] return  [ ]
-  to:@RETURN
+  to:@return
 render::@6: from render::@3
   [69] (byte~) render::y#6 ← (byte) render::y#1 [ render::y#6 render::colline#1 ]
   [70] (byte*~) render::colline#6 ← (byte*) render::colline#1 [ render::y#6 render::colline#6 ]
@@ -6123,7 +6123,7 @@ findcol::@31: from findcol::@13
 findcol::@return: from findcol::@2 findcol::@31
   [92] (byte) findcol::return#0 ← phi( findcol::@31/(byte~) findcol::mincol#16 findcol::@2/(byte) 0 ) [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
   [93] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  to:@RETURN
+  to:@return
 findcol::@29: from findcol::@13
   [94] (byte~) findcol::i#13 ← (byte) findcol::i#1 [ numpoints#1 render::x#2 render::y#2 render::colline#2 findcol::i#13 findcol::x#0 findcol::y#0 findcol::mincol#2 findcol::mindiff#11 ]
   [95] (byte~) findcol::mindiff#12 ← (byte) findcol::mindiff#11 [ numpoints#1 render::x#2 render::y#2 render::colline#2 findcol::i#13 findcol::mindiff#12 findcol::x#0 findcol::y#0 findcol::mincol#2 ]
@@ -6156,7 +6156,7 @@ initscreen::@1: from initscreen initscreen::@3
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   [110] return  [ ]
-  to:@RETURN
+  to:@return
 initscreen::@3: from initscreen::@1
   [111] (byte*~) initscreen::screen#3 ← (byte*) initscreen::screen#1 [ initscreen::screen#3 ]
   to:initscreen::@1
@@ -6172,7 +6172,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   [117] return  [ numpoints#1 ]
-  to:@RETURN
+  to:@return
 
 Created 16 initial phi equivalence classes
 Coalesced [2] numpoints#43 ← numpoints#1
@@ -6203,7 +6203,7 @@ Culled Empty Block (label) findcol::@30
 Culled Empty Block (label) findcol::@31
 Culled Empty Block (label) findcol::@29
 Culled Empty Block (label) initscreen::@3
-Block Sequence Planned @BEGIN @END main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@13 findcol::@return findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return addpoint addpoint::@return 
+Block Sequence Planned @begin @end main main::@3 main::@4 main::@5 main::@6 main::@7 main::@8 main::@1 main::@10 main::@11 main::@return animate animate::@2 animate::@4 animate::@6 animate::@8 animate::@return animate::@9 animate::@11 animate::@7 animate::@5 animate::@3 animate::@1 render render::@1 render::@2 render::@5 render::@3 render::@return findcol findcol::@1 findcol::@3 findcol::@7 findcol::@8 findcol::@10 findcol::@11 findcol::@13 findcol::@return findcol::@12 findcol::@9 findcol::@6 findcol::@2 initscreen initscreen::@1 initscreen::@return addpoint addpoint::@return 
 Propagating live ranges...
 Propagating live ranges...
 Propagating live ranges...
@@ -6247,11 +6247,11 @@ Propagated render::y#2 through call [55] call findcol param-assignment
 Propagated render::colline#2 through call [55] call findcol param-assignment
 Propagating live ranges...
 CONTROL FLOW GRAPH - PHI MEM COALESCED
-@BEGIN: from
+@begin: from
   [0] call main param-assignment [ ]
-  to:@END
-@END: from @BEGIN
-main: from @BEGIN
+  to:@end
+@end: from @begin
+main: from @begin
   [1] call addpoint param-assignment [ ]
   to:main::@3
 main::@3: from main
@@ -6283,7 +6283,7 @@ main::@11: from main::@10
   to:main::@return
 main::@return: from main::@11
   [11] return  [ ]
-  to:@RETURN
+  to:@return
 animate: from main::@10
   [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ]
   [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ]
@@ -6321,7 +6321,7 @@ animate::@8: from animate::@6 animate::@7
   to:animate::@return
 animate::@return: from animate::@11 animate::@8 animate::@9
   [37] return  [ ]
-  to:@RETURN
+  to:@return
 animate::@9: from animate::@8
   [38] *((word) 4355) ← (byte) 25 [ ]
   [39] (byte~) animate::$20 ← * (word) 4099 [ animate::$20 ]
@@ -6372,7 +6372,7 @@ render::@3: from render::@5
   to:render::@return
 render::@return: from render::@3
   [63] return  [ ]
-  to:@RETURN
+  to:@return
 findcol: from render::@2
   to:findcol::@1
 findcol::@1: from findcol findcol::@13
@@ -6410,7 +6410,7 @@ findcol::@13: from findcol::@11 findcol::@12
 findcol::@return: from findcol::@13 findcol::@2
   [79] (byte) findcol::return#0 ← phi( findcol::@13/(byte) findcol::mincol#2 findcol::@2/(byte) 0 ) [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
   [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  to:@RETURN
+  to:@return
 findcol::@12: from findcol::@11
   [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ]
   [82] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::mincol#1 findcol::diff#13 numpoints#1 ]
@@ -6435,7 +6435,7 @@ initscreen::@1: from initscreen initscreen::@1
   to:initscreen::@return
 initscreen::@return: from initscreen::@1
   [91] return  [ ]
-  to:@RETURN
+  to:@return
 addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   [92] (byte) addpoint::c#6 ← phi( main/(byte) 1 main::@3/(byte) 2 main::@4/(byte) 3 main::@5/(byte) 4 main::@6/(byte) 5 main::@7/(byte) 7 ) [ numpoints#19 addpoint::x#6 addpoint::y#6 addpoint::c#6 ]
   [92] (byte) addpoint::y#6 ← phi( main/(byte) 5 main::@3/(byte) 8 main::@4/(byte) 14 main::@5/(byte) 2 main::@6/(byte) 17 main::@7/(byte) 22 ) [ numpoints#19 addpoint::x#6 addpoint::y#6 addpoint::c#6 ]
@@ -6448,7 +6448,7 @@ addpoint: from main main::@3 main::@4 main::@5 main::@6 main::@7
   to:addpoint::@return
 addpoint::@return: from addpoint
   [97] return  [ ]
-  to:@RETURN
+  to:@return
 
 CALL GRAPH
 Calls in [] to 0:main 
@@ -6456,55 +6456,55 @@ Calls in [main] to 1:addpoint 2:addpoint 3:addpoint 4:addpoint 5:addpoint 6:addp
 Calls in [render] to 55:findcol 
 
 DOMINATORS
-@BEGIN dominated by  @BEGIN 
-@END dominated by  @BEGIN @END 
-main dominated by  @BEGIN main 
-main::@3 dominated by  @BEGIN main::@3 main 
-main::@4 dominated by  @BEGIN main::@4 main::@3 main 
-main::@5 dominated by  @BEGIN main::@4 main::@3 main::@5 main 
-main::@6 dominated by  @BEGIN main::@4 main::@3 main::@6 main::@5 main 
-main::@7 dominated by  @BEGIN main::@4 main::@3 main::@6 main::@5 main::@7 main 
-main::@8 dominated by  @BEGIN main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-main::@1 dominated by  @BEGIN main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-main::@10 dominated by  @BEGIN main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-main::@11 dominated by  @BEGIN main::@10 main::@11 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-main::@return dominated by  @BEGIN main::@return main::@10 main::@11 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate dominated by  @BEGIN animate main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@2 dominated by  @BEGIN animate animate::@2 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@4 dominated by  @BEGIN animate animate::@4 animate::@2 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@6 dominated by  @BEGIN animate animate::@6 animate::@4 animate::@2 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@8 dominated by  @BEGIN animate animate::@6 animate::@4 animate::@2 animate::@8 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@return dominated by  @BEGIN animate animate::@return animate::@6 animate::@4 animate::@2 animate::@8 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@9 dominated by  @BEGIN animate animate::@6 animate::@4 animate::@2 animate::@9 animate::@8 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@11 dominated by  @BEGIN animate animate::@11 animate::@6 animate::@4 animate::@2 animate::@9 animate::@8 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@7 dominated by  @BEGIN animate animate::@6 animate::@4 animate::@2 animate::@7 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@5 dominated by  @BEGIN animate animate::@5 animate::@4 animate::@2 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@3 dominated by  @BEGIN animate animate::@3 animate::@2 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-animate::@1 dominated by  @BEGIN animate animate::@1 main::@10 main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render dominated by  @BEGIN render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render::@1 dominated by  @BEGIN render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render::@2 dominated by  @BEGIN render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render::@5 dominated by  @BEGIN render::@2 render::@5 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render::@3 dominated by  @BEGIN render::@3 render::@2 render::@5 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-render::@return dominated by  @BEGIN render::@3 render::@2 render::@5 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 render::@return main 
-findcol dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-findcol::@1 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@1 main 
-findcol::@3 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@3 findcol::@1 main 
-findcol::@7 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@7 main::@8 findcol::@3 findcol::@1 main 
-findcol::@8 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 findcol::@8 main::@7 main::@8 findcol::@3 findcol::@1 main 
-findcol::@10 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@10 main 
-findcol::@11 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@11 main 
-findcol::@13 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@13 findcol::@11 main 
-findcol::@return dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@1 findcol::@return main 
-findcol::@12 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@12 findcol::@11 main 
-findcol::@9 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@9 main 
-findcol::@6 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@6 findcol::@3 findcol::@1 main 
-findcol::@2 dominated by  @BEGIN findcol render::@2 render::@1 render main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@2 findcol::@1 main 
-initscreen dominated by  @BEGIN initscreen main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
-initscreen::@1 dominated by  @BEGIN main::@4 initscreen main::@3 main::@6 main::@5 main::@7 main::@8 main initscreen::@1 
-initscreen::@return dominated by  @BEGIN main::@4 initscreen main::@3 main::@6 main::@5 main::@7 main::@8 initscreen::@return main initscreen::@1 
-addpoint dominated by  @BEGIN addpoint main 
-addpoint::@return dominated by  @BEGIN addpoint addpoint::@return main 
+@begin dominated by  @begin 
+@end dominated by  @end @begin 
+main dominated by  @begin main 
+main::@3 dominated by  @begin main::@3 main 
+main::@4 dominated by  @begin main::@4 main::@3 main 
+main::@5 dominated by  @begin main::@4 main::@3 main::@5 main 
+main::@6 dominated by  @begin main::@4 main::@3 main::@6 main::@5 main 
+main::@7 dominated by  @begin main::@4 main::@3 main::@6 main::@5 main::@7 main 
+main::@8 dominated by  @begin main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+main::@1 dominated by  @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+main::@10 dominated by  main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+main::@11 dominated by  main::@10 main::@11 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+main::@return dominated by  main::@return main::@10 main::@11 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate dominated by  animate main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@2 dominated by  animate animate::@2 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@4 dominated by  animate animate::@4 animate::@2 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@6 dominated by  animate animate::@6 animate::@4 animate::@2 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@8 dominated by  animate animate::@6 animate::@4 animate::@2 animate::@8 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@return dominated by  animate animate::@return animate::@6 animate::@4 animate::@2 animate::@8 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@9 dominated by  animate animate::@6 animate::@4 animate::@2 animate::@9 animate::@8 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@11 dominated by  animate animate::@11 animate::@6 animate::@4 animate::@2 animate::@9 animate::@8 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@7 dominated by  animate animate::@6 animate::@4 animate::@2 animate::@7 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@5 dominated by  animate animate::@5 animate::@4 animate::@2 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@3 dominated by  animate animate::@3 animate::@2 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+animate::@1 dominated by  animate animate::@1 main::@10 @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render dominated by  render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render::@1 dominated by  render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render::@2 dominated by  render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render::@5 dominated by  render::@2 render::@5 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render::@3 dominated by  render::@3 render::@2 render::@5 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+render::@return dominated by  render::@3 render::@2 render::@5 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 render::@return main 
+findcol dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+findcol::@1 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@1 main 
+findcol::@3 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@3 findcol::@1 main 
+findcol::@7 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@7 main::@8 findcol::@3 findcol::@1 main 
+findcol::@8 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 findcol::@8 main::@7 main::@8 findcol::@3 findcol::@1 main 
+findcol::@10 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@10 main 
+findcol::@11 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@11 main 
+findcol::@13 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@13 findcol::@11 main 
+findcol::@return dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@1 findcol::@return main 
+findcol::@12 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@12 findcol::@11 main 
+findcol::@9 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 findcol::@8 main::@8 findcol::@3 findcol::@1 findcol::@9 main 
+findcol::@6 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@6 findcol::@3 findcol::@1 main 
+findcol::@2 dominated by  findcol render::@2 render::@1 render @begin main::@1 main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 findcol::@2 findcol::@1 main 
+initscreen dominated by  @begin initscreen main::@4 main::@3 main::@6 main::@5 main::@7 main::@8 main 
+initscreen::@1 dominated by  @begin main::@4 initscreen main::@3 main::@6 main::@5 main::@7 main::@8 main initscreen::@1 
+initscreen::@return dominated by  @begin main::@4 initscreen main::@3 main::@6 main::@5 main::@7 main::@8 initscreen::@return main initscreen::@1 
+addpoint dominated by  addpoint @begin main 
+addpoint::@return dominated by  addpoint addpoint::@return @begin main 
 
 Found back edge: Loop head: main::@1 tails: main::@11 blocks: null
 Found back edge: Loop head: render::@2 tails: render::@5 blocks: null
@@ -6753,252 +6753,254 @@ Allocated zp byte:41 to zp byte:41 [ findcol::yp#0 ]
 Allocated zp byte:42 to zp byte:42 [ findcol::$10 ]
 Allocated zp byte:43 to zp byte:43 [ findcol::$8 ]
 INITIAL ASM
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-  jmp BEND
-//SEG2 @END
-BEND:
+  jmp bend
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call addpoint param-assignment [ ]
-//SEG5 [92] phi from main to addpoint
-addpoint_from_main:
-//SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
-  lda #$1
-  sta $10
-//SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $f
-//SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $e
-//SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $d
-  jsr addpoint
-  jmp main__B3
-//SEG10 main::@3
-main__B3:
-//SEG11 [2] call addpoint param-assignment [ ]
-//SEG12 [92] phi from main::@3 to addpoint
-addpoint_from_B3:
-//SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $10
-//SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- zpby1=coby1 
-  lda #$8
-  sta $f
-//SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- zpby1=coby1 
-  lda #$f
-  sta $d
-  jsr addpoint
-  jmp main__B4
-//SEG17 main::@4
-main__B4:
-//SEG18 [3] call addpoint param-assignment [ ]
-//SEG19 [92] phi from main::@4 to addpoint
-addpoint_from_B4:
-//SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
-  lda #$3
-  sta $10
-//SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- zpby1=coby1 
-  lda #$e
-  sta $f
-//SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- zpby1=coby1 
-  lda #$6
-  sta $d
-  jsr addpoint
-  jmp main__B5
-//SEG24 main::@5
-main__B5:
-//SEG25 [4] call addpoint param-assignment [ ]
-//SEG26 [92] phi from main::@5 to addpoint
-addpoint_from_B5:
-//SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
-  lda #$4
-  sta $10
-//SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $f
-//SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- zpby1=coby1 
-  lda #$22
-  sta $d
-  jsr addpoint
-  jmp main__B6
-//SEG31 main::@6
-main__B6:
-//SEG32 [5] call addpoint param-assignment [ ]
-//SEG33 [92] phi from main::@6 to addpoint
-addpoint_from_B6:
-//SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $10
-//SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- zpby1=coby1 
-  lda #$11
-  sta $f
-//SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- zpby1=coby1 
-  lda #$15
-  sta $d
-  jsr addpoint
-  jmp main__B7
-//SEG38 main::@7
-main__B7:
-//SEG39 [6] call addpoint param-assignment [ ]
-//SEG40 [92] phi from main::@7 to addpoint
-addpoint_from_B7:
-//SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
-  lda #$7
-  sta $10
-//SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- zpby1=coby1 
-  lda #$16
-  sta $f
-//SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- zpby1=coby1 
-  lda #$1f
-  sta $d
-  jsr addpoint
-  jmp main__B8
-//SEG45 main::@8
-main__B8:
-//SEG46 [7] call initscreen param-assignment [ ]
-  jsr initscreen
-  jmp main__B1
-//SEG47 main::@1
-main__B1:
-//SEG48 [8] call render param-assignment [ ]
-  jsr render
-  jmp main__B10
-//SEG49 main::@10
-main__B10:
-//SEG50 [9] call animate param-assignment [ ]
-  jsr animate
-  jmp main__B11
-//SEG51 main::@11
-main__B11:
-//SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
-  jmp main__B1
-  jmp main__Breturn
-//SEG53 main::@return
-main__Breturn:
-//SEG54 [11] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call addpoint param-assignment [ ]
+  //SEG5 [92] phi from main to addpoint
+  addpoint_from_main:
+  //SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
+    lda #$1
+    sta $10
+  //SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $f
+  //SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $e
+  //SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $d
+    jsr addpoint
+    jmp b3
+  //SEG10 main::@3
+  b3:
+  //SEG11 [2] call addpoint param-assignment [ ]
+  //SEG12 [92] phi from main::@3 to addpoint
+  addpoint_from_b3:
+  //SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $10
+  //SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- zpby1=coby1 
+    lda #$8
+    sta $f
+  //SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- zpby1=coby1 
+    lda #$f
+    sta $d
+    jsr addpoint
+    jmp b4
+  //SEG17 main::@4
+  b4:
+  //SEG18 [3] call addpoint param-assignment [ ]
+  //SEG19 [92] phi from main::@4 to addpoint
+  addpoint_from_b4:
+  //SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
+    lda #$3
+    sta $10
+  //SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- zpby1=coby1 
+    lda #$e
+    sta $f
+  //SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- zpby1=coby1 
+    lda #$6
+    sta $d
+    jsr addpoint
+    jmp b5
+  //SEG24 main::@5
+  b5:
+  //SEG25 [4] call addpoint param-assignment [ ]
+  //SEG26 [92] phi from main::@5 to addpoint
+  addpoint_from_b5:
+  //SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
+    lda #$4
+    sta $10
+  //SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $f
+  //SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- zpby1=coby1 
+    lda #$22
+    sta $d
+    jsr addpoint
+    jmp b6
+  //SEG31 main::@6
+  b6:
+  //SEG32 [5] call addpoint param-assignment [ ]
+  //SEG33 [92] phi from main::@6 to addpoint
+  addpoint_from_b6:
+  //SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $10
+  //SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- zpby1=coby1 
+    lda #$11
+    sta $f
+  //SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- zpby1=coby1 
+    lda #$15
+    sta $d
+    jsr addpoint
+    jmp b7
+  //SEG38 main::@7
+  b7:
+  //SEG39 [6] call addpoint param-assignment [ ]
+  //SEG40 [92] phi from main::@7 to addpoint
+  addpoint_from_b7:
+  //SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
+    lda #$7
+    sta $10
+  //SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- zpby1=coby1 
+    lda #$16
+    sta $f
+  //SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- zpby1=coby1 
+    lda #$1f
+    sta $d
+    jsr addpoint
+    jmp b8
+  //SEG45 main::@8
+  b8:
+  //SEG46 [7] call initscreen param-assignment [ ]
+    jsr initscreen
+    jmp b1
+  //SEG47 main::@1
+  b1:
+  //SEG48 [8] call render param-assignment [ ]
+    jsr render
+    jmp b10
+  //SEG49 main::@10
+  b10:
+  //SEG50 [9] call animate param-assignment [ ]
+    jsr animate
+    jmp b11
+  //SEG51 main::@11
+  b11:
+  //SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
+    jmp b1
+    jmp breturn
+  //SEG53 main::@return
+  breturn:
+  //SEG54 [11] return  [ ]
+    rts
+}
 //SEG55 animate
-animate:
-//SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- zpby1=_star_cowo1 
-  lda $1000
-  sta $11
-//SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- zpby1=zpby2_plus_1 
-  lda $11
-  clc
-  adc #$1
-  sta $12
-//SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=zpby1 
-  lda $12
-  sta $1000
-//SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- zpby1=_star_cowo1 
-  lda $1000
-  sta $13
-//SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- zpby1_eq_coby1_then_la1 
-  lda $13
-  cmp #$28
-  beq animate__B1
-  jmp animate__B2
-//SEG61 animate::@2
-animate__B2:
-//SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- zpby1=_star_cowo1 
-  lda $1100
-  sta $14
-//SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- zpby1=zpby2_plus_1 
-  lda $14
-  clc
-  adc #$1
-  sta $15
-//SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=zpby1 
-  lda $15
-  sta $1100
-//SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- zpby1=_star_cowo1 
-  lda $1100
-  sta $16
-//SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- zpby1_eq_coby1_then_la1 
-  lda $16
-  cmp #$19
-  beq animate__B3
-  jmp animate__B4
-//SEG67 animate::@4
-animate__B4:
-//SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- zpby1=_star_cowo1 
-  lda $1001
-  sta $17
-//SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- zpby1=zpby2_minus_1 
-  lda $17
-  sec
-  sbc #$1
-  sta $18
-//SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=zpby1 
-  lda $18
-  sta $1001
-//SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- zpby1=_star_cowo1 
-  lda $1001
-  sta $19
-//SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- zpby1_eq_coby1_then_la1 
-  lda $19
-  cmp #$ff
-  beq animate__B5
-  jmp animate__B6
-//SEG73 animate::@6
-animate__B6:
-//SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- zpby1=_star_cowo1 
-  lda $1102
-  sta $1a
-//SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- zpby1=zpby2_plus_1 
-  lda $1a
-  clc
-  adc #$1
-  sta $1b
-//SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=zpby1 
-  lda $1b
-  sta $1102
-//SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- zpby1=_star_cowo1 
-  lda $1102
-  sta $1c
-//SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- zpby1_eq_coby1_then_la1 
-  lda $1c
-  cmp #$19
-  beq animate__B7
-  jmp animate__B8
-//SEG79 animate::@8
-animate__B8:
-//SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- zpby1=_star_cowo1 
-  lda $1103
-  sta $1d
-//SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- zpby1=zpby2_minus_1 
-  lda $1d
-  sec
-  sbc #$1
-  sta $1e
-//SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=zpby1 
-  lda $1e
-  sta $1103
-//SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- zpby1=_star_cowo1 
-  lda $1103
-  sta $1f
-//SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- zpby1_eq_coby1_then_la1 
-  lda $1f
-  cmp #$ff
-  beq animate__B9
-  jmp animate__Breturn
-//SEG85 animate::@return
-animate__Breturn:
-//SEG86 [37] return  [ ]
-  rts
+animate: {
+  //SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- zpby1=_star_cowo1 
+    lda $1000
+    sta $11
+  //SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- zpby1=zpby2_plus_1 
+    lda $11
+    clc
+    adc #$1
+    sta $12
+  //SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=zpby1 
+    lda $12
+    sta $1000
+  //SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- zpby1=_star_cowo1 
+    lda $1000
+    sta $13
+  //SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- zpby1_eq_coby1_then_la1 
+    lda $13
+    cmp #$28
+    beq b1
+    jmp b2
+  //SEG61 animate::@2
+  b2:
+  //SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- zpby1=_star_cowo1 
+    lda $1100
+    sta $14
+  //SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- zpby1=zpby2_plus_1 
+    lda $14
+    clc
+    adc #$1
+    sta $15
+  //SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=zpby1 
+    lda $15
+    sta $1100
+  //SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- zpby1=_star_cowo1 
+    lda $1100
+    sta $16
+  //SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- zpby1_eq_coby1_then_la1 
+    lda $16
+    cmp #$19
+    beq b3
+    jmp b4
+  //SEG67 animate::@4
+  b4:
+  //SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- zpby1=_star_cowo1 
+    lda $1001
+    sta $17
+  //SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- zpby1=zpby2_minus_1 
+    lda $17
+    sec
+    sbc #$1
+    sta $18
+  //SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=zpby1 
+    lda $18
+    sta $1001
+  //SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- zpby1=_star_cowo1 
+    lda $1001
+    sta $19
+  //SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- zpby1_eq_coby1_then_la1 
+    lda $19
+    cmp #$ff
+    beq b5
+    jmp b6
+  //SEG73 animate::@6
+  b6:
+  //SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- zpby1=_star_cowo1 
+    lda $1102
+    sta $1a
+  //SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- zpby1=zpby2_plus_1 
+    lda $1a
+    clc
+    adc #$1
+    sta $1b
+  //SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=zpby1 
+    lda $1b
+    sta $1102
+  //SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- zpby1=_star_cowo1 
+    lda $1102
+    sta $1c
+  //SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- zpby1_eq_coby1_then_la1 
+    lda $1c
+    cmp #$19
+    beq b7
+    jmp b8
+  //SEG79 animate::@8
+  b8:
+  //SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- zpby1=_star_cowo1 
+    lda $1103
+    sta $1d
+  //SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- zpby1=zpby2_minus_1 
+    lda $1d
+    sec
+    sbc #$1
+    sta $1e
+  //SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=zpby1 
+    lda $1e
+    sta $1103
+  //SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- zpby1=_star_cowo1 
+    lda $1103
+    sta $1f
+  //SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- zpby1_eq_coby1_then_la1 
+    lda $1f
+    cmp #$ff
+    beq b9
+    jmp breturn
+  //SEG85 animate::@return
+  breturn:
+  //SEG86 [37] return  [ ]
+    rts
+}
 //SEG87 animate::@9
-animate__B9:
+b9:
 //SEG88 [38] *((word) 4355) ← (byte) 25 [ ] -- _star_cowo1=coby2 
   lda #$19
   sta $1103
@@ -7019,10 +7021,10 @@ animate__B9:
 //SEG93 [43] if((byte~) animate::$22>=(byte) 40) goto animate::@11 [ ] -- zpby1_ge_coby1_then_la1 
   lda $22
   cmp #$28
-  bcs animate__B11
-  jmp animate__Breturn
+  bcs b11
+  jmp breturn
 //SEG94 animate::@11
-animate__B11:
+b11:
 //SEG95 [44] (byte~) animate::$24 ← * (word) 4099 [ animate::$24 ] -- zpby1=_star_cowo1 
   lda $1003
   sta $23
@@ -7034,220 +7036,222 @@ animate__B11:
 //SEG97 [46] *((word) 4099) ← (byte~) animate::$25 [ ] -- _star_cowo1=zpby1 
   lda $24
   sta $1003
-  jmp animate__Breturn
+  jmp breturn
 //SEG98 animate::@7
-animate__B7:
+b7:
 //SEG99 [47] *((word) 4354) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1102
-  jmp animate__B8
+  jmp b8
 //SEG100 animate::@5
-animate__B5:
+b5:
 //SEG101 [48] *((word) 4097) ← (byte) 40 [ ] -- _star_cowo1=coby2 
   lda #$28
   sta $1001
-  jmp animate__B6
+  jmp b6
 //SEG102 animate::@3
-animate__B3:
+b3:
 //SEG103 [49] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1100
-  jmp animate__B4
+  jmp b4
 //SEG104 animate::@1
-animate__B1:
+b1:
 //SEG105 [50] *((word) 4096) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1000
-  jmp animate__B2
+  jmp b2
 //SEG106 render
-render:
-//SEG107 [51] phi from render to render::@1
-render__B1_from_render:
-//SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
-  lda #<$d800
-  sta $3
-  lda #>$d800
-  sta $3+$1
-//SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-  jmp render__B1
-//SEG110 [51] phi from render::@3 to render::@1
-render__B1_from_B3:
-//SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
-//SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
-  jmp render__B1
-//SEG113 render::@1
-render__B1:
-//SEG114 [52] phi from render::@1 to render::@2
-render__B2_from_B1:
-//SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $5
-  jmp render__B2
-//SEG116 [52] phi from render::@5 to render::@2
-render__B2_from_B5:
-//SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
-  jmp render__B2
-//SEG118 render::@2
-render__B2:
-//SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $5
-  sta $25
-//SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $2
-  sta $26
-//SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  jsr findcol
-  jmp render__B5
-//SEG122 render::@5
-render__B5:
-//SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- zpby1=zpby2 
-  lda $a
-  sta $27
-//SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=zpby2 
-  lda $27
-  ldy $5
-  sta ($3),y
-//SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
-  inc $5
-//SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $5
-  cmp #$28
-  bcc render__B2_from_B5
-  jmp render__B3
-//SEG127 render::@3
-render__B3:
-//SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-//SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
-  inc $2
-//SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$19
-  bcc render__B1_from_B3
-  jmp render__Breturn
-//SEG131 render::@return
-render__Breturn:
-//SEG132 [63] return  [ ]
-  rts
+render: {
+  //SEG107 [51] phi from render to render::@1
+  b1_from_render:
+  //SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
+    lda #<$d800
+    sta $3
+    lda #>$d800
+    sta $3+$1
+  //SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+    jmp b1
+  //SEG110 [51] phi from render::@3 to render::@1
+  b1_from_b3:
+  //SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
+  //SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
+    jmp b1
+  //SEG113 render::@1
+  b1:
+  //SEG114 [52] phi from render::@1 to render::@2
+  b2_from_b1:
+  //SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $5
+    jmp b2
+  //SEG116 [52] phi from render::@5 to render::@2
+  b2_from_b5:
+  //SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
+    jmp b2
+  //SEG118 render::@2
+  b2:
+  //SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $5
+    sta $25
+  //SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $2
+    sta $26
+  //SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    jsr findcol
+    jmp b5
+  //SEG122 render::@5
+  b5:
+  //SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- zpby1=zpby2 
+    lda $a
+    sta $27
+  //SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=zpby2 
+    lda $27
+    ldy $5
+    sta ($3),y
+  //SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
+    inc $5
+  //SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $5
+    cmp #$28
+    bcc b2_from_b5
+    jmp b3
+  //SEG127 render::@3
+  b3:
+  //SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+  //SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
+    inc $2
+  //SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$19
+    bcc b1_from_b3
+    jmp breturn
+  //SEG131 render::@return
+  breturn:
+  //SEG132 [63] return  [ ]
+    rts
+}
 //SEG133 findcol
-findcol:
-//SEG134 [64] phi from findcol to findcol::@1
-findcol__B1_from_findcol:
-//SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $a
-//SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
-  lda #$ff
-  sta $7
-//SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $6
-  jmp findcol__B1
-//SEG138 [64] phi from findcol::@13 to findcol::@1
-findcol__B1_from_B13:
-//SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
-//SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
-//SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
-  jmp findcol__B1
-//SEG142 findcol::@1
-findcol__B1:
-//SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $6
-  lda $1000,x
-  sta $28
-//SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_zpby2 
-  ldx $6
-  lda $1100,x
-  sta $29
-//SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
-  lda $25
-  cmp $28
-  beq findcol__B2
-  jmp findcol__B3
-//SEG146 findcol::@3
-findcol__B3:
-//SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $25
-  cmp $28
-  bcc findcol__B6
-  jmp findcol__B7
-//SEG148 findcol::@7
-findcol__B7:
-//SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby3 
-  lda $25
-  sec
-  sbc $28
-  sta $8
-//SEG150 [70] phi from findcol::@7 to findcol::@8
-findcol__B8_from_B7:
-//SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
-  jmp findcol__B8
-//SEG152 findcol::@8
-findcol__B8:
-//SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $26
-  cmp $29
-  bcc findcol__B9
-  jmp findcol__B10
-//SEG154 findcol::@10
-findcol__B10:
-//SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby3 
-  lda $26
-  sec
-  sbc $29
-  sta $2a
-//SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_plus_zpby3 
-  lda $8
-  clc
-  adc $2a
-  sta $9
-//SEG157 [74] phi from findcol::@10 to findcol::@11
-findcol__B11_from_B10:
-//SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
-  jmp findcol__B11
-//SEG159 findcol::@11
-findcol__B11:
-//SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $9
-  cmp $7
-  bcc findcol__B12
-//SEG161 [76] phi from findcol::@11 to findcol::@13
-findcol__B13_from_B11:
-//SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
-//SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
-  jmp findcol__B13
-//SEG164 findcol::@13
-findcol__B13:
-//SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- zpby1=_inc_zpby1 
-  inc $6
-//SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $6
-  cmp $e
-  bcc findcol__B1_from_B13
-//SEG167 [79] phi from findcol::@13 to findcol::@return
-findcol__Breturn_from_B13:
-//SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
-  jmp findcol__Breturn
-//SEG169 [79] phi from findcol::@2 to findcol::@return
-findcol__Breturn_from_B2:
-//SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $a
-  jmp findcol__Breturn
-//SEG171 findcol::@return
-findcol__Breturn:
-//SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  rts
+findcol: {
+  //SEG134 [64] phi from findcol to findcol::@1
+  b1_from_findcol:
+  //SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $a
+  //SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
+    lda #$ff
+    sta $7
+  //SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $6
+    jmp b1
+  //SEG138 [64] phi from findcol::@13 to findcol::@1
+  b1_from_b13:
+  //SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
+  //SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
+  //SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
+    jmp b1
+  //SEG142 findcol::@1
+  b1:
+  //SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $6
+    lda $1000,x
+    sta $28
+  //SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_zpby2 
+    ldx $6
+    lda $1100,x
+    sta $29
+  //SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
+    lda $25
+    cmp $28
+    beq b2
+    jmp b3
+  //SEG146 findcol::@3
+  b3:
+  //SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $25
+    cmp $28
+    bcc b6
+    jmp b7
+  //SEG148 findcol::@7
+  b7:
+  //SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby3 
+    lda $25
+    sec
+    sbc $28
+    sta $8
+  //SEG150 [70] phi from findcol::@7 to findcol::@8
+  b8_from_b7:
+  //SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
+    jmp b8
+  //SEG152 findcol::@8
+  b8:
+  //SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $26
+    cmp $29
+    bcc b9
+    jmp b10
+  //SEG154 findcol::@10
+  b10:
+  //SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby3 
+    lda $26
+    sec
+    sbc $29
+    sta $2a
+  //SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_plus_zpby3 
+    lda $8
+    clc
+    adc $2a
+    sta $9
+  //SEG157 [74] phi from findcol::@10 to findcol::@11
+  b11_from_b10:
+  //SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
+    jmp b11
+  //SEG159 findcol::@11
+  b11:
+  //SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $9
+    cmp $7
+    bcc b12
+  //SEG161 [76] phi from findcol::@11 to findcol::@13
+  b13_from_b11:
+  //SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
+  //SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
+    jmp b13
+  //SEG164 findcol::@13
+  b13:
+  //SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- zpby1=_inc_zpby1 
+    inc $6
+  //SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $6
+    cmp $e
+    bcc b1_from_b13
+  //SEG167 [79] phi from findcol::@13 to findcol::@return
+  breturn_from_b13:
+  //SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
+    jmp breturn
+  //SEG169 [79] phi from findcol::@2 to findcol::@return
+  breturn_from_b2:
+  //SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $a
+    jmp breturn
+  //SEG171 findcol::@return
+  breturn:
+  //SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    rts
+}
 //SEG173 findcol::@12
-findcol__B12:
+b12:
 //SEG174 [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ] -- zpby1=cowo1_staridx_zpby2 
   ldx $6
   lda $1200,x
@@ -7256,12 +7260,12 @@ findcol__B12:
   lda $9
   sta $7
 //SEG176 [76] phi from findcol::@12 to findcol::@13
-findcol__B13_from_B12:
+b13_from_b12:
 //SEG177 [76] phi (byte) findcol::mindiff#11 = (byte~) findcol::diff#13 -- register_copy 
 //SEG178 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#1 -- register_copy 
-  jmp findcol__B13
+  jmp b13
 //SEG179 findcol::@9
-findcol__B9:
+b9:
 //SEG180 [83] (byte~) findcol::$8 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 findcol::$8 ] -- zpby1=zpby2_minus_zpby3 
   lda $29
   sec
@@ -7273,87 +7277,89 @@ findcol__B9:
   adc $2b
   sta $9
 //SEG182 [74] phi from findcol::@9 to findcol::@11
-findcol__B11_from_B9:
+b11_from_b9:
 //SEG183 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#2 -- register_copy 
-  jmp findcol__B11
+  jmp b11
 //SEG184 findcol::@6
-findcol__B6:
+b6:
 //SEG185 [85] (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby3 
   lda $28
   sec
   sbc $25
   sta $8
 //SEG186 [70] phi from findcol::@6 to findcol::@8
-findcol__B8_from_B6:
+b8_from_b6:
 //SEG187 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#0 -- register_copy 
-  jmp findcol__B8
+  jmp b8
 //SEG188 findcol::@2
-findcol__B2:
+b2:
 //SEG189 [86] if((byte) findcol::y#0==(byte) findcol::yp#0) goto findcol::@return [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
   lda $26
   cmp $29
-  beq findcol__Breturn_from_B2
-  jmp findcol__B3
+  beq breturn_from_b2
+  jmp b3
 //SEG190 initscreen
-initscreen:
-//SEG191 [87] phi from initscreen to initscreen::@1
-initscreen__B1_from_initscreen:
-//SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $b
-  lda #>$400
-  sta $b+$1
-  jmp initscreen__B1
-//SEG193 [87] phi from initscreen::@1 to initscreen::@1
-initscreen__B1_from_B1:
-//SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
-  jmp initscreen__B1
-//SEG195 initscreen::@1
-initscreen__B1:
-//SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
-  ldy #$0
-  lda #$e6
-  sta ($b),y
-//SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
-  inc $b
-  bne !+
-  inc $b+$1
-!:
-//SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
-  lda $b+$1
-  cmp #>$7e8
-  bcc initscreen__B1_from_B1
-  bne !+
-  lda $b
-  cmp #<$7e8
-  bcc initscreen__B1_from_B1
-!:
-  jmp initscreen__Breturn
-//SEG199 initscreen::@return
-initscreen__Breturn:
-//SEG200 [91] return  [ ]
-  rts
+initscreen: {
+  //SEG191 [87] phi from initscreen to initscreen::@1
+  b1_from_initscreen:
+  //SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $b
+    lda #>$400
+    sta $b+$1
+    jmp b1
+  //SEG193 [87] phi from initscreen::@1 to initscreen::@1
+  b1_from_b1:
+  //SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
+    jmp b1
+  //SEG195 initscreen::@1
+  b1:
+  //SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
+    ldy #$0
+    lda #$e6
+    sta ($b),y
+  //SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
+    inc $b
+    bne !+
+    inc $b+$1
+  !:
+  //SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
+    lda $b+$1
+    cmp #>$7e8
+    bcc b1_from_b1
+    bne !+
+    lda $b
+    cmp #<$7e8
+    bcc b1_from_b1
+  !:
+    jmp breturn
+  //SEG199 initscreen::@return
+  breturn:
+  //SEG200 [91] return  [ ]
+    rts
+}
 //SEG201 addpoint
-addpoint:
-//SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $d
-  ldx $e
-  sta $1000,x
-//SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $f
-  ldx $e
-  sta $1100,x
-//SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $10
-  ldx $e
-  sta $1200,x
-//SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
-  inc $e
-  jmp addpoint__Breturn
-//SEG206 addpoint::@return
-addpoint__Breturn:
-//SEG207 [97] return  [ ]
-  rts
+addpoint: {
+  //SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $d
+    ldx $e
+    sta $1000,x
+  //SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $f
+    ldx $e
+    sta $1100,x
+  //SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $10
+    ldx $e
+    sta $1200,x
+  //SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
+    inc $e
+    jmp breturn
+  //SEG206 addpoint::@return
+  breturn:
+  //SEG207 [97] return  [ ]
+    rts
+}
 
 Statement [38] *((word) 4355) ← (byte) 25 [ ] always clobbers reg byte a 
 Statement [40] (byte~) animate::$21 ← (byte~) animate::$20 + (byte) 7 [ animate::$21 ] always clobbers reg byte a 
@@ -7485,226 +7491,228 @@ Re-allocated ZP register from zp byte:14 to zp byte:8
 Re-allocated ZP register from zp byte:37 to zp byte:9
 Re-allocated ZP register from zp byte:38 to zp byte:10
 Re-allocated ZP register from zp byte:41 to zp byte:11
-Removing instruction jmp BEND
-Removing instruction jmp main__B3
-Removing instruction jmp main__B4
-Removing instruction jmp main__B5
-Removing instruction jmp main__B6
-Removing instruction jmp main__B7
-Removing instruction jmp main__B8
-Removing instruction jmp main__B1
-Removing instruction jmp main__B10
-Removing instruction jmp main__B11
-Removing instruction jmp main__Breturn
-Removing instruction jmp animate__B2
-Removing instruction jmp animate__B4
-Removing instruction jmp animate__B6
-Removing instruction jmp animate__B8
-Removing instruction jmp animate__Breturn
-Removing instruction jmp render__B1
-Removing instruction jmp render__B2
-Removing instruction jmp render__B5
-Removing instruction jmp render__B3
-Removing instruction jmp render__Breturn
-Removing instruction jmp findcol__B1
-Removing instruction jmp findcol__B3
-Removing instruction jmp findcol__B7
-Removing instruction jmp findcol__B8
-Removing instruction jmp findcol__B10
-Removing instruction jmp findcol__B11
-Removing instruction jmp findcol__B13
-Removing instruction jmp findcol__Breturn
-Removing instruction jmp initscreen__B1
-Removing instruction jmp initscreen__Breturn
-Removing instruction jmp addpoint__Breturn
+Removing instruction jmp bend
+Removing instruction jmp b3
+Removing instruction jmp b4
+Removing instruction jmp b5
+Removing instruction jmp b6
+Removing instruction jmp b7
+Removing instruction jmp b8
+Removing instruction jmp b1
+Removing instruction jmp b10
+Removing instruction jmp b11
+Removing instruction jmp breturn
+Removing instruction jmp b2
+Removing instruction jmp b4
+Removing instruction jmp b6
+Removing instruction jmp b8
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b5
+Removing instruction jmp b3
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp b3
+Removing instruction jmp b7
+Removing instruction jmp b8
+Removing instruction jmp b10
+Removing instruction jmp b11
+Removing instruction jmp b13
+Removing instruction jmp breturn
+Removing instruction jmp b1
+Removing instruction jmp breturn
+Removing instruction jmp breturn
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call addpoint param-assignment [ ]
-//SEG5 [92] phi from main to addpoint
-addpoint_from_main:
-//SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
-  lda #$1
-  sta $2
-//SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
-  ldy #$5
-//SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $8
-//SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
-  lda #$5
-  jsr addpoint
-//SEG10 main::@3
-main__B3:
-//SEG11 [2] call addpoint param-assignment [ ]
-//SEG12 [92] phi from main::@3 to addpoint
-addpoint_from_B3:
-//SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $2
-//SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
-  ldy #$8
-//SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
-  lda #$f
-  jsr addpoint
-//SEG17 main::@4
-main__B4:
-//SEG18 [3] call addpoint param-assignment [ ]
-//SEG19 [92] phi from main::@4 to addpoint
-addpoint_from_B4:
-//SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
-  lda #$3
-  sta $2
-//SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
-  ldy #$e
-//SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
-  lda #$6
-  jsr addpoint
-//SEG24 main::@5
-main__B5:
-//SEG25 [4] call addpoint param-assignment [ ]
-//SEG26 [92] phi from main::@5 to addpoint
-addpoint_from_B5:
-//SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
-  lda #$4
-  sta $2
-//SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
-  ldy #$2
-//SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
-  lda #$22
-  jsr addpoint
-//SEG31 main::@6
-main__B6:
-//SEG32 [5] call addpoint param-assignment [ ]
-//SEG33 [92] phi from main::@6 to addpoint
-addpoint_from_B6:
-//SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $2
-//SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
-  ldy #$11
-//SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
-  lda #$15
-  jsr addpoint
-//SEG38 main::@7
-main__B7:
-//SEG39 [6] call addpoint param-assignment [ ]
-//SEG40 [92] phi from main::@7 to addpoint
-addpoint_from_B7:
-//SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
-  lda #$7
-  sta $2
-//SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
-  ldy #$16
-//SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
-  lda #$1f
-  jsr addpoint
-//SEG45 main::@8
-main__B8:
-//SEG46 [7] call initscreen param-assignment [ ]
-  jsr initscreen
-//SEG47 main::@1
-main__B1:
-//SEG48 [8] call render param-assignment [ ]
-  jsr render
-//SEG49 main::@10
-main__B10:
-//SEG50 [9] call animate param-assignment [ ]
-  jsr animate
-//SEG51 main::@11
-main__B11:
-//SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
-  jmp main__B1
-//SEG53 main::@return
-main__Breturn:
-//SEG54 [11] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call addpoint param-assignment [ ]
+  //SEG5 [92] phi from main to addpoint
+  addpoint_from_main:
+  //SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
+    lda #$1
+    sta $2
+  //SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
+    ldy #$5
+  //SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $8
+  //SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
+    lda #$5
+    jsr addpoint
+  //SEG10 main::@3
+  b3:
+  //SEG11 [2] call addpoint param-assignment [ ]
+  //SEG12 [92] phi from main::@3 to addpoint
+  addpoint_from_b3:
+  //SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $2
+  //SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
+    ldy #$8
+  //SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
+    lda #$f
+    jsr addpoint
+  //SEG17 main::@4
+  b4:
+  //SEG18 [3] call addpoint param-assignment [ ]
+  //SEG19 [92] phi from main::@4 to addpoint
+  addpoint_from_b4:
+  //SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
+    lda #$3
+    sta $2
+  //SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
+    ldy #$e
+  //SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
+    lda #$6
+    jsr addpoint
+  //SEG24 main::@5
+  b5:
+  //SEG25 [4] call addpoint param-assignment [ ]
+  //SEG26 [92] phi from main::@5 to addpoint
+  addpoint_from_b5:
+  //SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
+    lda #$4
+    sta $2
+  //SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
+    ldy #$2
+  //SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
+    lda #$22
+    jsr addpoint
+  //SEG31 main::@6
+  b6:
+  //SEG32 [5] call addpoint param-assignment [ ]
+  //SEG33 [92] phi from main::@6 to addpoint
+  addpoint_from_b6:
+  //SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $2
+  //SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
+    ldy #$11
+  //SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
+    lda #$15
+    jsr addpoint
+  //SEG38 main::@7
+  b7:
+  //SEG39 [6] call addpoint param-assignment [ ]
+  //SEG40 [92] phi from main::@7 to addpoint
+  addpoint_from_b7:
+  //SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
+    lda #$7
+    sta $2
+  //SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
+    ldy #$16
+  //SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
+    lda #$1f
+    jsr addpoint
+  //SEG45 main::@8
+  b8:
+  //SEG46 [7] call initscreen param-assignment [ ]
+    jsr initscreen
+  //SEG47 main::@1
+  b1:
+  //SEG48 [8] call render param-assignment [ ]
+    jsr render
+  //SEG49 main::@10
+  b10:
+  //SEG50 [9] call animate param-assignment [ ]
+    jsr animate
+  //SEG51 main::@11
+  b11:
+  //SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
+    jmp b1
+  //SEG53 main::@return
+  breturn:
+  //SEG54 [11] return  [ ]
+    rts
+}
 //SEG55 animate
-animate:
-//SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
-  sta $1000
-//SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$28
-  beq animate__B1
-//SEG61 animate::@2
-animate__B2:
-//SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
-  sta $1100
-//SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B3
-//SEG67 animate::@4
-animate__B4:
-//SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
-  ldx $1001
-//SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
-  dex
-//SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
-  stx $1001
-//SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
-  lda $1001
-//SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B5
-//SEG73 animate::@6
-animate__B6:
-//SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
-  sta $1102
-//SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B7
-//SEG79 animate::@8
-animate__B8:
-//SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
-  ldx $1103
-//SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
-  dex
-//SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
-  stx $1103
-//SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
-  lda $1103
-//SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B9
-//SEG85 animate::@return
-animate__Breturn:
-//SEG86 [37] return  [ ]
-  rts
+animate: {
+  //SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
+    sta $1000
+  //SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$28
+    beq b1
+  //SEG61 animate::@2
+  b2:
+  //SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
+    sta $1100
+  //SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b3
+  //SEG67 animate::@4
+  b4:
+  //SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
+    ldx $1001
+  //SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
+    dex
+  //SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
+    stx $1001
+  //SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
+    lda $1001
+  //SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b5
+  //SEG73 animate::@6
+  b6:
+  //SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
+    sta $1102
+  //SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b7
+  //SEG79 animate::@8
+  b8:
+  //SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
+    ldx $1103
+  //SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
+    dex
+  //SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
+    stx $1103
+  //SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
+    lda $1103
+  //SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b9
+  //SEG85 animate::@return
+  breturn:
+  //SEG86 [37] return  [ ]
+    rts
+}
 //SEG87 animate::@9
-animate__B9:
+b9:
 //SEG88 [38] *((word) 4355) ← (byte) 25 [ ] -- _star_cowo1=coby2 
   lda #$19
   sta $1103
@@ -7719,10 +7727,10 @@ animate__B9:
   lda $1003
 //SEG93 [43] if((byte~) animate::$22>=(byte) 40) goto animate::@11 [ ] -- aby_ge_coby1_then_la1 
   cmp #$28
-  bcs animate__B11
-  jmp animate__Breturn
+  bcs b11
+  jmp breturn
 //SEG94 animate::@11
-animate__B11:
+b11:
 //SEG95 [44] (byte~) animate::$24 ← * (word) 4099 [ animate::$24 ] -- aby=_star_cowo1 
   lda $1003
 //SEG96 [45] (byte~) animate::$25 ← (byte~) animate::$24 - (byte) 40 [ animate::$25 ] -- aby=aby_minus_coby1 
@@ -7730,206 +7738,208 @@ animate__B11:
   sbc #$28
 //SEG97 [46] *((word) 4099) ← (byte~) animate::$25 [ ] -- _star_cowo1=aby 
   sta $1003
-  jmp animate__Breturn
+  jmp breturn
 //SEG98 animate::@7
-animate__B7:
+b7:
 //SEG99 [47] *((word) 4354) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1102
-  jmp animate__B8
+  jmp b8
 //SEG100 animate::@5
-animate__B5:
+b5:
 //SEG101 [48] *((word) 4097) ← (byte) 40 [ ] -- _star_cowo1=coby2 
   lda #$28
   sta $1001
-  jmp animate__B6
+  jmp b6
 //SEG102 animate::@3
-animate__B3:
+b3:
 //SEG103 [49] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1100
-  jmp animate__B4
+  jmp b4
 //SEG104 animate::@1
-animate__B1:
+b1:
 //SEG105 [50] *((word) 4096) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1000
-  jmp animate__B2
+  jmp b2
 //SEG106 render
-render:
-//SEG107 [51] phi from render to render::@1
-render__B1_from_render:
-//SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
-  lda #<$d800
-  sta $3
-  lda #>$d800
-  sta $3+$1
-//SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-  jmp render__B1
-//SEG110 [51] phi from render::@3 to render::@1
-render__B1_from_B3:
-//SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
-//SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
-//SEG113 render::@1
-render__B1:
-//SEG114 [52] phi from render::@1 to render::@2
-render__B2_from_B1:
-//SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $5
-  jmp render__B2
-//SEG116 [52] phi from render::@5 to render::@2
-render__B2_from_B5:
-//SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
-//SEG118 render::@2
-render__B2:
-//SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $5
-  sta $9
-//SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $2
-  sta $a
-//SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  jsr findcol
-//SEG122 render::@5
-render__B5:
-//SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
-  tya
-//SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
-  ldy $5
-  sta ($3),y
-//SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
-  inc $5
-//SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $5
-  cmp #$28
-  bcc render__B2_from_B5
-//SEG127 render::@3
-render__B3:
-//SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-//SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
-  inc $2
-//SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$19
-  bcc render__B1_from_B3
-//SEG131 render::@return
-render__Breturn:
-//SEG132 [63] return  [ ]
-  rts
+render: {
+  //SEG107 [51] phi from render to render::@1
+  b1_from_render:
+  //SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
+    lda #<$d800
+    sta $3
+    lda #>$d800
+    sta $3+$1
+  //SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+    jmp b1
+  //SEG110 [51] phi from render::@3 to render::@1
+  b1_from_b3:
+  //SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
+  //SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
+  //SEG113 render::@1
+  b1:
+  //SEG114 [52] phi from render::@1 to render::@2
+  b2_from_b1:
+  //SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $5
+    jmp b2
+  //SEG116 [52] phi from render::@5 to render::@2
+  b2_from_b5:
+  //SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
+  //SEG118 render::@2
+  b2:
+  //SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $5
+    sta $9
+  //SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $2
+    sta $a
+  //SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    jsr findcol
+  //SEG122 render::@5
+  b5:
+  //SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
+    tya
+  //SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
+    ldy $5
+    sta ($3),y
+  //SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
+    inc $5
+  //SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $5
+    cmp #$28
+    bcc b2_from_b5
+  //SEG127 render::@3
+  b3:
+  //SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+  //SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
+    inc $2
+  //SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$19
+    bcc b1_from_b3
+  //SEG131 render::@return
+  breturn:
+  //SEG132 [63] return  [ ]
+    rts
+}
 //SEG133 findcol
-findcol:
-//SEG134 [64] phi from findcol to findcol::@1
-findcol__B1_from_findcol:
-//SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
-  lda #$ff
-  sta $6
-//SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
-  ldx #$0
-  jmp findcol__B1
-//SEG138 [64] phi from findcol::@13 to findcol::@1
-findcol__B1_from_B13:
-//SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
-//SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
-//SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
-//SEG142 findcol::@1
-findcol__B1:
-//SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1000,x
-  sta $7
-//SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1100,x
-  sta $b
-//SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
-  lda $9
-  cmp $7
-  beq findcol__B2
-//SEG146 findcol::@3
-findcol__B3:
-//SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $9
-  cmp $7
-  bcc findcol__B6
-//SEG148 findcol::@7
-findcol__B7:
-//SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
-  lda $9
-  sec
-  sbc $7
-  sta $7
-//SEG150 [70] phi from findcol::@7 to findcol::@8
-findcol__B8_from_B7:
-//SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
-//SEG152 findcol::@8
-findcol__B8:
-//SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $a
-  cmp $b
-  bcc findcol__B9
-//SEG154 findcol::@10
-findcol__B10:
-//SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
-  lda $a
-  sec
-  sbc $b
-//SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
-  clc
-  adc $7
-//SEG157 [74] phi from findcol::@10 to findcol::@11
-findcol__B11_from_B10:
-//SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
-//SEG159 findcol::@11
-findcol__B11:
-//SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
-  cmp $6
-  bcc findcol__B12
-//SEG161 [76] phi from findcol::@11 to findcol::@13
-findcol__B13_from_B11:
-//SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
-//SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
-//SEG164 findcol::@13
-findcol__B13:
-//SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
-  inx
-//SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
-  cpx $8
-  bcc findcol__B1_from_B13
-//SEG167 [79] phi from findcol::@13 to findcol::@return
-findcol__Breturn_from_B13:
-//SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
-  jmp findcol__Breturn
-//SEG169 [79] phi from findcol::@2 to findcol::@return
-findcol__Breturn_from_B2:
-//SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG171 findcol::@return
-findcol__Breturn:
-//SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  rts
+findcol: {
+  //SEG134 [64] phi from findcol to findcol::@1
+  b1_from_findcol:
+  //SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
+    lda #$ff
+    sta $6
+  //SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
+    ldx #$0
+    jmp b1
+  //SEG138 [64] phi from findcol::@13 to findcol::@1
+  b1_from_b13:
+  //SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
+  //SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
+  //SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
+  //SEG142 findcol::@1
+  b1:
+  //SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1000,x
+    sta $7
+  //SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1100,x
+    sta $b
+  //SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
+    lda $9
+    cmp $7
+    beq b2
+  //SEG146 findcol::@3
+  b3:
+  //SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $9
+    cmp $7
+    bcc b6
+  //SEG148 findcol::@7
+  b7:
+  //SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
+    lda $9
+    sec
+    sbc $7
+    sta $7
+  //SEG150 [70] phi from findcol::@7 to findcol::@8
+  b8_from_b7:
+  //SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
+  //SEG152 findcol::@8
+  b8:
+  //SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $a
+    cmp $b
+    bcc b9
+  //SEG154 findcol::@10
+  b10:
+  //SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
+    lda $a
+    sec
+    sbc $b
+  //SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
+    clc
+    adc $7
+  //SEG157 [74] phi from findcol::@10 to findcol::@11
+  b11_from_b10:
+  //SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
+  //SEG159 findcol::@11
+  b11:
+  //SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
+    cmp $6
+    bcc b12
+  //SEG161 [76] phi from findcol::@11 to findcol::@13
+  b13_from_b11:
+  //SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
+  //SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
+  //SEG164 findcol::@13
+  b13:
+  //SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
+    inx
+  //SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
+    cpx $8
+    bcc b1_from_b13
+  //SEG167 [79] phi from findcol::@13 to findcol::@return
+  breturn_from_b13:
+  //SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
+    jmp breturn
+  //SEG169 [79] phi from findcol::@2 to findcol::@return
+  breturn_from_b2:
+  //SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG171 findcol::@return
+  breturn:
+  //SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    rts
+}
 //SEG173 findcol::@12
-findcol__B12:
+b12:
 //SEG174 [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ] -- yby=cowo1_staridx_xby 
   ldy $1200,x
 //SEG175 [82] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::mincol#1 findcol::diff#13 numpoints#1 ] -- zpby1=aby 
   sta $6
 //SEG176 [76] phi from findcol::@12 to findcol::@13
-findcol__B13_from_B12:
+b13_from_b12:
 //SEG177 [76] phi (byte) findcol::mindiff#11 = (byte~) findcol::diff#13 -- register_copy 
 //SEG178 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#1 -- register_copy 
-  jmp findcol__B13
+  jmp b13
 //SEG179 findcol::@9
-findcol__B9:
+b9:
 //SEG180 [83] (byte~) findcol::$8 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 findcol::$8 ] -- aby=zpby1_minus_zpby2 
   lda $b
   sec
@@ -7938,276 +7948,280 @@ findcol__B9:
   clc
   adc $7
 //SEG182 [74] phi from findcol::@9 to findcol::@11
-findcol__B11_from_B9:
+b11_from_b9:
 //SEG183 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#2 -- register_copy 
-  jmp findcol__B11
+  jmp b11
 //SEG184 findcol::@6
-findcol__B6:
+b6:
 //SEG185 [85] (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby1_minus_zpby2 
   lda $7
   sec
   sbc $9
   sta $7
 //SEG186 [70] phi from findcol::@6 to findcol::@8
-findcol__B8_from_B6:
+b8_from_b6:
 //SEG187 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#0 -- register_copy 
-  jmp findcol__B8
+  jmp b8
 //SEG188 findcol::@2
-findcol__B2:
+b2:
 //SEG189 [86] if((byte) findcol::y#0==(byte) findcol::yp#0) goto findcol::@return [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
   lda $a
   cmp $b
-  beq findcol__Breturn_from_B2
-  jmp findcol__B3
+  beq breturn_from_b2
+  jmp b3
 //SEG190 initscreen
-initscreen:
-//SEG191 [87] phi from initscreen to initscreen::@1
-initscreen__B1_from_initscreen:
-//SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $3
-  lda #>$400
-  sta $3+$1
-  jmp initscreen__B1
-//SEG193 [87] phi from initscreen::@1 to initscreen::@1
-initscreen__B1_from_B1:
-//SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
-//SEG195 initscreen::@1
-initscreen__B1:
-//SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
-  ldy #$0
-  lda #$e6
-  sta ($3),y
-//SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
-  inc $3
-  bne !+
-  inc $3+$1
-!:
-//SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
-  lda $3+$1
-  cmp #>$7e8
-  bcc initscreen__B1_from_B1
-  bne !+
-  lda $3
-  cmp #<$7e8
-  bcc initscreen__B1_from_B1
-!:
-//SEG199 initscreen::@return
-initscreen__Breturn:
-//SEG200 [91] return  [ ]
-  rts
+initscreen: {
+  //SEG191 [87] phi from initscreen to initscreen::@1
+  b1_from_initscreen:
+  //SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $3
+    lda #>$400
+    sta $3+$1
+    jmp b1
+  //SEG193 [87] phi from initscreen::@1 to initscreen::@1
+  b1_from_b1:
+  //SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
+  //SEG195 initscreen::@1
+  b1:
+  //SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
+    ldy #$0
+    lda #$e6
+    sta ($3),y
+  //SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
+    inc $3
+    bne !+
+    inc $3+$1
+  !:
+  //SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
+    lda $3+$1
+    cmp #>$7e8
+    bcc b1_from_b1
+    bne !+
+    lda $3
+    cmp #<$7e8
+    bcc b1_from_b1
+  !:
+  //SEG199 initscreen::@return
+  breturn:
+  //SEG200 [91] return  [ ]
+    rts
+}
 //SEG201 addpoint
-addpoint:
-//SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
-  ldx $8
-  sta $1000,x
-//SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
-  tya
-  ldy $8
-  sta $1100,y
-//SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $2
-  ldx $8
-  sta $1200,x
-//SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
-  inc $8
-//SEG206 addpoint::@return
-addpoint__Breturn:
-//SEG207 [97] return  [ ]
-  rts
+addpoint: {
+  //SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
+    ldx $8
+    sta $1000,x
+  //SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
+    tya
+    ldy $8
+    sta $1100,y
+  //SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $2
+    ldx $8
+    sta $1200,x
+  //SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
+    inc $8
+  //SEG206 addpoint::@return
+  breturn:
+  //SEG207 [97] return  [ ]
+    rts
+}
 
-Removing instruction jmp render__B1
-Removing instruction jmp render__B2
-Removing instruction jmp findcol__B1
-Removing instruction jmp initscreen__B1
+Removing instruction jmp b1
+Removing instruction jmp b2
+Removing instruction jmp b1
+Removing instruction jmp b1
 Succesful ASM optimization Pass5NextJumpElimination
 ASSEMBLER
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call addpoint param-assignment [ ]
-//SEG5 [92] phi from main to addpoint
-addpoint_from_main:
-//SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
-  lda #$1
-  sta $2
-//SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
-  ldy #$5
-//SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $8
-//SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
-  lda #$5
-  jsr addpoint
-//SEG10 main::@3
-main__B3:
-//SEG11 [2] call addpoint param-assignment [ ]
-//SEG12 [92] phi from main::@3 to addpoint
-addpoint_from_B3:
-//SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $2
-//SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
-  ldy #$8
-//SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
-  lda #$f
-  jsr addpoint
-//SEG17 main::@4
-main__B4:
-//SEG18 [3] call addpoint param-assignment [ ]
-//SEG19 [92] phi from main::@4 to addpoint
-addpoint_from_B4:
-//SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
-  lda #$3
-  sta $2
-//SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
-  ldy #$e
-//SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
-  lda #$6
-  jsr addpoint
-//SEG24 main::@5
-main__B5:
-//SEG25 [4] call addpoint param-assignment [ ]
-//SEG26 [92] phi from main::@5 to addpoint
-addpoint_from_B5:
-//SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
-  lda #$4
-  sta $2
-//SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
-  ldy #$2
-//SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
-  lda #$22
-  jsr addpoint
-//SEG31 main::@6
-main__B6:
-//SEG32 [5] call addpoint param-assignment [ ]
-//SEG33 [92] phi from main::@6 to addpoint
-addpoint_from_B6:
-//SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $2
-//SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
-  ldy #$11
-//SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
-  lda #$15
-  jsr addpoint
-//SEG38 main::@7
-main__B7:
-//SEG39 [6] call addpoint param-assignment [ ]
-//SEG40 [92] phi from main::@7 to addpoint
-addpoint_from_B7:
-//SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
-  lda #$7
-  sta $2
-//SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
-  ldy #$16
-//SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
-  lda #$1f
-  jsr addpoint
-//SEG45 main::@8
-main__B8:
-//SEG46 [7] call initscreen param-assignment [ ]
-  jsr initscreen
-//SEG47 main::@1
-main__B1:
-//SEG48 [8] call render param-assignment [ ]
-  jsr render
-//SEG49 main::@10
-main__B10:
-//SEG50 [9] call animate param-assignment [ ]
-  jsr animate
-//SEG51 main::@11
-main__B11:
-//SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
-  jmp main__B1
-//SEG53 main::@return
-main__Breturn:
-//SEG54 [11] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call addpoint param-assignment [ ]
+  //SEG5 [92] phi from main to addpoint
+  addpoint_from_main:
+  //SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
+    lda #$1
+    sta $2
+  //SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
+    ldy #$5
+  //SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $8
+  //SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
+    lda #$5
+    jsr addpoint
+  //SEG10 main::@3
+  b3:
+  //SEG11 [2] call addpoint param-assignment [ ]
+  //SEG12 [92] phi from main::@3 to addpoint
+  addpoint_from_b3:
+  //SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $2
+  //SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
+    ldy #$8
+  //SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
+    lda #$f
+    jsr addpoint
+  //SEG17 main::@4
+  b4:
+  //SEG18 [3] call addpoint param-assignment [ ]
+  //SEG19 [92] phi from main::@4 to addpoint
+  addpoint_from_b4:
+  //SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
+    lda #$3
+    sta $2
+  //SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
+    ldy #$e
+  //SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
+    lda #$6
+    jsr addpoint
+  //SEG24 main::@5
+  b5:
+  //SEG25 [4] call addpoint param-assignment [ ]
+  //SEG26 [92] phi from main::@5 to addpoint
+  addpoint_from_b5:
+  //SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
+    lda #$4
+    sta $2
+  //SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
+    ldy #$2
+  //SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
+    lda #$22
+    jsr addpoint
+  //SEG31 main::@6
+  b6:
+  //SEG32 [5] call addpoint param-assignment [ ]
+  //SEG33 [92] phi from main::@6 to addpoint
+  addpoint_from_b6:
+  //SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $2
+  //SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
+    ldy #$11
+  //SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
+    lda #$15
+    jsr addpoint
+  //SEG38 main::@7
+  b7:
+  //SEG39 [6] call addpoint param-assignment [ ]
+  //SEG40 [92] phi from main::@7 to addpoint
+  addpoint_from_b7:
+  //SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
+    lda #$7
+    sta $2
+  //SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
+    ldy #$16
+  //SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
+    lda #$1f
+    jsr addpoint
+  //SEG45 main::@8
+  b8:
+  //SEG46 [7] call initscreen param-assignment [ ]
+    jsr initscreen
+  //SEG47 main::@1
+  b1:
+  //SEG48 [8] call render param-assignment [ ]
+    jsr render
+  //SEG49 main::@10
+  b10:
+  //SEG50 [9] call animate param-assignment [ ]
+    jsr animate
+  //SEG51 main::@11
+  b11:
+  //SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
+    jmp b1
+  //SEG53 main::@return
+  breturn:
+  //SEG54 [11] return  [ ]
+    rts
+}
 //SEG55 animate
-animate:
-//SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
-  sta $1000
-//SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$28
-  beq animate__B1
-//SEG61 animate::@2
-animate__B2:
-//SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
-  sta $1100
-//SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B3
-//SEG67 animate::@4
-animate__B4:
-//SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
-  ldx $1001
-//SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
-  dex
-//SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
-  stx $1001
-//SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
-  lda $1001
-//SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B5
-//SEG73 animate::@6
-animate__B6:
-//SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
-  sta $1102
-//SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B7
-//SEG79 animate::@8
-animate__B8:
-//SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
-  ldx $1103
-//SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
-  dex
-//SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
-  stx $1103
-//SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
-  lda $1103
-//SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B9
-//SEG85 animate::@return
-animate__Breturn:
-//SEG86 [37] return  [ ]
-  rts
+animate: {
+  //SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
+    sta $1000
+  //SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$28
+    beq b1
+  //SEG61 animate::@2
+  b2:
+  //SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
+    sta $1100
+  //SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b3
+  //SEG67 animate::@4
+  b4:
+  //SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
+    ldx $1001
+  //SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
+    dex
+  //SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
+    stx $1001
+  //SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
+    lda $1001
+  //SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b5
+  //SEG73 animate::@6
+  b6:
+  //SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
+    sta $1102
+  //SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b7
+  //SEG79 animate::@8
+  b8:
+  //SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
+    ldx $1103
+  //SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
+    dex
+  //SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
+    stx $1103
+  //SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
+    lda $1103
+  //SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b9
+  //SEG85 animate::@return
+  breturn:
+  //SEG86 [37] return  [ ]
+    rts
+}
 //SEG87 animate::@9
-animate__B9:
+b9:
 //SEG88 [38] *((word) 4355) ← (byte) 25 [ ] -- _star_cowo1=coby2 
   lda #$19
   sta $1103
@@ -8222,10 +8236,10 @@ animate__B9:
   lda $1003
 //SEG93 [43] if((byte~) animate::$22>=(byte) 40) goto animate::@11 [ ] -- aby_ge_coby1_then_la1 
   cmp #$28
-  bcs animate__B11
-  jmp animate__Breturn
+  bcs b11
+  jmp breturn
 //SEG94 animate::@11
-animate__B11:
+b11:
 //SEG95 [44] (byte~) animate::$24 ← * (word) 4099 [ animate::$24 ] -- aby=_star_cowo1 
   lda $1003
 //SEG96 [45] (byte~) animate::$25 ← (byte~) animate::$24 - (byte) 40 [ animate::$25 ] -- aby=aby_minus_coby1 
@@ -8233,203 +8247,205 @@ animate__B11:
   sbc #$28
 //SEG97 [46] *((word) 4099) ← (byte~) animate::$25 [ ] -- _star_cowo1=aby 
   sta $1003
-  jmp animate__Breturn
+  jmp breturn
 //SEG98 animate::@7
-animate__B7:
+b7:
 //SEG99 [47] *((word) 4354) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1102
-  jmp animate__B8
+  jmp b8
 //SEG100 animate::@5
-animate__B5:
+b5:
 //SEG101 [48] *((word) 4097) ← (byte) 40 [ ] -- _star_cowo1=coby2 
   lda #$28
   sta $1001
-  jmp animate__B6
+  jmp b6
 //SEG102 animate::@3
-animate__B3:
+b3:
 //SEG103 [49] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1100
-  jmp animate__B4
+  jmp b4
 //SEG104 animate::@1
-animate__B1:
+b1:
 //SEG105 [50] *((word) 4096) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1000
-  jmp animate__B2
+  jmp b2
 //SEG106 render
-render:
-//SEG107 [51] phi from render to render::@1
-render__B1_from_render:
-//SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
-  lda #<$d800
-  sta $3
-  lda #>$d800
-  sta $3+$1
-//SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-//SEG110 [51] phi from render::@3 to render::@1
-render__B1_from_B3:
-//SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
-//SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
-//SEG113 render::@1
-render__B1:
-//SEG114 [52] phi from render::@1 to render::@2
-render__B2_from_B1:
-//SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $5
-//SEG116 [52] phi from render::@5 to render::@2
-render__B2_from_B5:
-//SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
-//SEG118 render::@2
-render__B2:
-//SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $5
-  sta $9
-//SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $2
-  sta $a
-//SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  jsr findcol
-//SEG122 render::@5
-render__B5:
-//SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
-  tya
-//SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
-  ldy $5
-  sta ($3),y
-//SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
-  inc $5
-//SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $5
-  cmp #$28
-  bcc render__B2_from_B5
-//SEG127 render::@3
-render__B3:
-//SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-//SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
-  inc $2
-//SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$19
-  bcc render__B1_from_B3
-//SEG131 render::@return
-render__Breturn:
-//SEG132 [63] return  [ ]
-  rts
+render: {
+  //SEG107 [51] phi from render to render::@1
+  b1_from_render:
+  //SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
+    lda #<$d800
+    sta $3
+    lda #>$d800
+    sta $3+$1
+  //SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+  //SEG110 [51] phi from render::@3 to render::@1
+  b1_from_b3:
+  //SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
+  //SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
+  //SEG113 render::@1
+  b1:
+  //SEG114 [52] phi from render::@1 to render::@2
+  b2_from_b1:
+  //SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $5
+  //SEG116 [52] phi from render::@5 to render::@2
+  b2_from_b5:
+  //SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
+  //SEG118 render::@2
+  b2:
+  //SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $5
+    sta $9
+  //SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $2
+    sta $a
+  //SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    jsr findcol
+  //SEG122 render::@5
+  b5:
+  //SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
+    tya
+  //SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
+    ldy $5
+    sta ($3),y
+  //SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
+    inc $5
+  //SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $5
+    cmp #$28
+    bcc b2_from_b5
+  //SEG127 render::@3
+  b3:
+  //SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+  //SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
+    inc $2
+  //SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$19
+    bcc b1_from_b3
+  //SEG131 render::@return
+  breturn:
+  //SEG132 [63] return  [ ]
+    rts
+}
 //SEG133 findcol
-findcol:
-//SEG134 [64] phi from findcol to findcol::@1
-findcol__B1_from_findcol:
-//SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
-  lda #$ff
-  sta $6
-//SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG138 [64] phi from findcol::@13 to findcol::@1
-findcol__B1_from_B13:
-//SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
-//SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
-//SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
-//SEG142 findcol::@1
-findcol__B1:
-//SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1000,x
-  sta $7
-//SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1100,x
-  sta $b
-//SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
-  lda $9
-  cmp $7
-  beq findcol__B2
-//SEG146 findcol::@3
-findcol__B3:
-//SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $9
-  cmp $7
-  bcc findcol__B6
-//SEG148 findcol::@7
-findcol__B7:
-//SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
-  lda $9
-  sec
-  sbc $7
-  sta $7
-//SEG150 [70] phi from findcol::@7 to findcol::@8
-findcol__B8_from_B7:
-//SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
-//SEG152 findcol::@8
-findcol__B8:
-//SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $a
-  cmp $b
-  bcc findcol__B9
-//SEG154 findcol::@10
-findcol__B10:
-//SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
-  lda $a
-  sec
-  sbc $b
-//SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
-  clc
-  adc $7
-//SEG157 [74] phi from findcol::@10 to findcol::@11
-findcol__B11_from_B10:
-//SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
-//SEG159 findcol::@11
-findcol__B11:
-//SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
-  cmp $6
-  bcc findcol__B12
-//SEG161 [76] phi from findcol::@11 to findcol::@13
-findcol__B13_from_B11:
-//SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
-//SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
-//SEG164 findcol::@13
-findcol__B13:
-//SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
-  inx
-//SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
-  cpx $8
-  bcc findcol__B1_from_B13
-//SEG167 [79] phi from findcol::@13 to findcol::@return
-findcol__Breturn_from_B13:
-//SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
-  jmp findcol__Breturn
-//SEG169 [79] phi from findcol::@2 to findcol::@return
-findcol__Breturn_from_B2:
-//SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG171 findcol::@return
-findcol__Breturn:
-//SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  rts
+findcol: {
+  //SEG134 [64] phi from findcol to findcol::@1
+  b1_from_findcol:
+  //SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
+    lda #$ff
+    sta $6
+  //SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG138 [64] phi from findcol::@13 to findcol::@1
+  b1_from_b13:
+  //SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
+  //SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
+  //SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
+  //SEG142 findcol::@1
+  b1:
+  //SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1000,x
+    sta $7
+  //SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1100,x
+    sta $b
+  //SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
+    lda $9
+    cmp $7
+    beq b2
+  //SEG146 findcol::@3
+  b3:
+  //SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $9
+    cmp $7
+    bcc b6
+  //SEG148 findcol::@7
+  b7:
+  //SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
+    lda $9
+    sec
+    sbc $7
+    sta $7
+  //SEG150 [70] phi from findcol::@7 to findcol::@8
+  b8_from_b7:
+  //SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
+  //SEG152 findcol::@8
+  b8:
+  //SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $a
+    cmp $b
+    bcc b9
+  //SEG154 findcol::@10
+  b10:
+  //SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
+    lda $a
+    sec
+    sbc $b
+  //SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
+    clc
+    adc $7
+  //SEG157 [74] phi from findcol::@10 to findcol::@11
+  b11_from_b10:
+  //SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
+  //SEG159 findcol::@11
+  b11:
+  //SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
+    cmp $6
+    bcc b12
+  //SEG161 [76] phi from findcol::@11 to findcol::@13
+  b13_from_b11:
+  //SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
+  //SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
+  //SEG164 findcol::@13
+  b13:
+  //SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
+    inx
+  //SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
+    cpx $8
+    bcc b1_from_b13
+  //SEG167 [79] phi from findcol::@13 to findcol::@return
+  breturn_from_b13:
+  //SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
+    jmp breturn
+  //SEG169 [79] phi from findcol::@2 to findcol::@return
+  breturn_from_b2:
+  //SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG171 findcol::@return
+  breturn:
+  //SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    rts
+}
 //SEG173 findcol::@12
-findcol__B12:
+b12:
 //SEG174 [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ] -- yby=cowo1_staridx_xby 
   ldy $1200,x
 //SEG175 [82] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::mincol#1 findcol::diff#13 numpoints#1 ] -- zpby1=aby 
   sta $6
 //SEG176 [76] phi from findcol::@12 to findcol::@13
-findcol__B13_from_B12:
+b13_from_b12:
 //SEG177 [76] phi (byte) findcol::mindiff#11 = (byte~) findcol::diff#13 -- register_copy 
 //SEG178 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#1 -- register_copy 
-  jmp findcol__B13
+  jmp b13
 //SEG179 findcol::@9
-findcol__B9:
+b9:
 //SEG180 [83] (byte~) findcol::$8 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 findcol::$8 ] -- aby=zpby1_minus_zpby2 
   lda $b
   sec
@@ -8438,86 +8454,88 @@ findcol__B9:
   clc
   adc $7
 //SEG182 [74] phi from findcol::@9 to findcol::@11
-findcol__B11_from_B9:
+b11_from_b9:
 //SEG183 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#2 -- register_copy 
-  jmp findcol__B11
+  jmp b11
 //SEG184 findcol::@6
-findcol__B6:
+b6:
 //SEG185 [85] (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby1_minus_zpby2 
   lda $7
   sec
   sbc $9
   sta $7
 //SEG186 [70] phi from findcol::@6 to findcol::@8
-findcol__B8_from_B6:
+b8_from_b6:
 //SEG187 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#0 -- register_copy 
-  jmp findcol__B8
+  jmp b8
 //SEG188 findcol::@2
-findcol__B2:
+b2:
 //SEG189 [86] if((byte) findcol::y#0==(byte) findcol::yp#0) goto findcol::@return [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
   lda $a
   cmp $b
-  beq findcol__Breturn_from_B2
-  jmp findcol__B3
+  beq breturn_from_b2
+  jmp b3
 //SEG190 initscreen
-initscreen:
-//SEG191 [87] phi from initscreen to initscreen::@1
-initscreen__B1_from_initscreen:
-//SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $3
-  lda #>$400
-  sta $3+$1
-//SEG193 [87] phi from initscreen::@1 to initscreen::@1
-initscreen__B1_from_B1:
-//SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
-//SEG195 initscreen::@1
-initscreen__B1:
-//SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
-  ldy #$0
-  lda #$e6
-  sta ($3),y
-//SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
-  inc $3
-  bne !+
-  inc $3+$1
-!:
-//SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
-  lda $3+$1
-  cmp #>$7e8
-  bcc initscreen__B1_from_B1
-  bne !+
-  lda $3
-  cmp #<$7e8
-  bcc initscreen__B1_from_B1
-!:
-//SEG199 initscreen::@return
-initscreen__Breturn:
-//SEG200 [91] return  [ ]
-  rts
+initscreen: {
+  //SEG191 [87] phi from initscreen to initscreen::@1
+  b1_from_initscreen:
+  //SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $3
+    lda #>$400
+    sta $3+$1
+  //SEG193 [87] phi from initscreen::@1 to initscreen::@1
+  b1_from_b1:
+  //SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
+  //SEG195 initscreen::@1
+  b1:
+  //SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
+    ldy #$0
+    lda #$e6
+    sta ($3),y
+  //SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
+    inc $3
+    bne !+
+    inc $3+$1
+  !:
+  //SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
+    lda $3+$1
+    cmp #>$7e8
+    bcc b1_from_b1
+    bne !+
+    lda $3
+    cmp #<$7e8
+    bcc b1_from_b1
+  !:
+  //SEG199 initscreen::@return
+  breturn:
+  //SEG200 [91] return  [ ]
+    rts
+}
 //SEG201 addpoint
-addpoint:
-//SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
-  ldx $8
-  sta $1000,x
-//SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
-  tya
-  ldy $8
-  sta $1100,y
-//SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $2
-  ldx $8
-  sta $1200,x
-//SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
-  inc $8
-//SEG206 addpoint::@return
-addpoint__Breturn:
-//SEG207 [97] return  [ ]
-  rts
+addpoint: {
+  //SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
+    ldx $8
+    sta $1000,x
+  //SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
+    tya
+    ldy $8
+    sta $1100,y
+  //SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $2
+    ldx $8
+    sta $1200,x
+  //SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
+    inc $8
+  //SEG206 addpoint::@return
+  breturn:
+  //SEG207 [97] return  [ ]
+    rts
+}
 
 FINAL SYMBOL TABLE
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) COLORS
 (byte[256]) COLS
 (byte) FILL
@@ -8684,192 +8702,194 @@ reg byte a [ findcol::$10 ]
 reg byte a [ findcol::$8 ]
 
 FINAL CODE
-//SEG0 @BEGIN
-BBEGIN:
+//SEG0 @begin
+bbegin:
 //SEG1 [0] call main param-assignment [ ]
   jsr main
-//SEG2 @END
-BEND:
+//SEG2 @end
+bend:
 //SEG3 main
-main:
-//SEG4 [1] call addpoint param-assignment [ ]
-//SEG5 [92] phi from main to addpoint
-addpoint_from_main:
-//SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
-  lda #$1
-  sta $2
-//SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
-  ldy #$5
-//SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $8
-//SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
-  lda #$5
-  jsr addpoint
-//SEG10 main::@3
-main__B3:
-//SEG11 [2] call addpoint param-assignment [ ]
-//SEG12 [92] phi from main::@3 to addpoint
-addpoint_from_B3:
-//SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
-  lda #$2
-  sta $2
-//SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
-  ldy #$8
-//SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
-  lda #$f
-  jsr addpoint
-//SEG17 main::@4
-main__B4:
-//SEG18 [3] call addpoint param-assignment [ ]
-//SEG19 [92] phi from main::@4 to addpoint
-addpoint_from_B4:
-//SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
-  lda #$3
-  sta $2
-//SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
-  ldy #$e
-//SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
-  lda #$6
-  jsr addpoint
-//SEG24 main::@5
-main__B5:
-//SEG25 [4] call addpoint param-assignment [ ]
-//SEG26 [92] phi from main::@5 to addpoint
-addpoint_from_B5:
-//SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
-  lda #$4
-  sta $2
-//SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
-  ldy #$2
-//SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
-  lda #$22
-  jsr addpoint
-//SEG31 main::@6
-main__B6:
-//SEG32 [5] call addpoint param-assignment [ ]
-//SEG33 [92] phi from main::@6 to addpoint
-addpoint_from_B6:
-//SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
-  lda #$5
-  sta $2
-//SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
-  ldy #$11
-//SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
-  lda #$15
-  jsr addpoint
-//SEG38 main::@7
-main__B7:
-//SEG39 [6] call addpoint param-assignment [ ]
-//SEG40 [92] phi from main::@7 to addpoint
-addpoint_from_B7:
-//SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
-  lda #$7
-  sta $2
-//SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
-  ldy #$16
-//SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
-//SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
-  lda #$1f
-  jsr addpoint
-//SEG45 main::@8
-main__B8:
-//SEG46 [7] call initscreen param-assignment [ ]
-  jsr initscreen
-//SEG47 main::@1
-main__B1:
-//SEG48 [8] call render param-assignment [ ]
-  jsr render
-//SEG49 main::@10
-main__B10:
-//SEG50 [9] call animate param-assignment [ ]
-  jsr animate
-//SEG51 main::@11
-main__B11:
-//SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
-  jmp main__B1
-//SEG53 main::@return
-main__Breturn:
-//SEG54 [11] return  [ ]
-  rts
+main: {
+  //SEG4 [1] call addpoint param-assignment [ ]
+  //SEG5 [92] phi from main to addpoint
+  addpoint_from_main:
+  //SEG6 [92] phi (byte) addpoint::c#6 = (byte) 1 -- zpby1=coby1 
+    lda #$1
+    sta $2
+  //SEG7 [92] phi (byte) addpoint::y#6 = (byte) 5 -- yby=coby1 
+    ldy #$5
+  //SEG8 [92] phi (byte) numpoints#19 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $8
+  //SEG9 [92] phi (byte) addpoint::x#6 = (byte) 5 -- aby=coby1 
+    lda #$5
+    jsr addpoint
+  //SEG10 main::@3
+  b3:
+  //SEG11 [2] call addpoint param-assignment [ ]
+  //SEG12 [92] phi from main::@3 to addpoint
+  addpoint_from_b3:
+  //SEG13 [92] phi (byte) addpoint::c#6 = (byte) 2 -- zpby1=coby1 
+    lda #$2
+    sta $2
+  //SEG14 [92] phi (byte) addpoint::y#6 = (byte) 8 -- yby=coby1 
+    ldy #$8
+  //SEG15 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG16 [92] phi (byte) addpoint::x#6 = (byte) 15 -- aby=coby1 
+    lda #$f
+    jsr addpoint
+  //SEG17 main::@4
+  b4:
+  //SEG18 [3] call addpoint param-assignment [ ]
+  //SEG19 [92] phi from main::@4 to addpoint
+  addpoint_from_b4:
+  //SEG20 [92] phi (byte) addpoint::c#6 = (byte) 3 -- zpby1=coby1 
+    lda #$3
+    sta $2
+  //SEG21 [92] phi (byte) addpoint::y#6 = (byte) 14 -- yby=coby1 
+    ldy #$e
+  //SEG22 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG23 [92] phi (byte) addpoint::x#6 = (byte) 6 -- aby=coby1 
+    lda #$6
+    jsr addpoint
+  //SEG24 main::@5
+  b5:
+  //SEG25 [4] call addpoint param-assignment [ ]
+  //SEG26 [92] phi from main::@5 to addpoint
+  addpoint_from_b5:
+  //SEG27 [92] phi (byte) addpoint::c#6 = (byte) 4 -- zpby1=coby1 
+    lda #$4
+    sta $2
+  //SEG28 [92] phi (byte) addpoint::y#6 = (byte) 2 -- yby=coby1 
+    ldy #$2
+  //SEG29 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG30 [92] phi (byte) addpoint::x#6 = (byte) 34 -- aby=coby1 
+    lda #$22
+    jsr addpoint
+  //SEG31 main::@6
+  b6:
+  //SEG32 [5] call addpoint param-assignment [ ]
+  //SEG33 [92] phi from main::@6 to addpoint
+  addpoint_from_b6:
+  //SEG34 [92] phi (byte) addpoint::c#6 = (byte) 5 -- zpby1=coby1 
+    lda #$5
+    sta $2
+  //SEG35 [92] phi (byte) addpoint::y#6 = (byte) 17 -- yby=coby1 
+    ldy #$11
+  //SEG36 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG37 [92] phi (byte) addpoint::x#6 = (byte) 21 -- aby=coby1 
+    lda #$15
+    jsr addpoint
+  //SEG38 main::@7
+  b7:
+  //SEG39 [6] call addpoint param-assignment [ ]
+  //SEG40 [92] phi from main::@7 to addpoint
+  addpoint_from_b7:
+  //SEG41 [92] phi (byte) addpoint::c#6 = (byte) 7 -- zpby1=coby1 
+    lda #$7
+    sta $2
+  //SEG42 [92] phi (byte) addpoint::y#6 = (byte) 22 -- yby=coby1 
+    ldy #$16
+  //SEG43 [92] phi (byte) numpoints#19 = (byte) numpoints#1 -- register_copy 
+  //SEG44 [92] phi (byte) addpoint::x#6 = (byte) 31 -- aby=coby1 
+    lda #$1f
+    jsr addpoint
+  //SEG45 main::@8
+  b8:
+  //SEG46 [7] call initscreen param-assignment [ ]
+    jsr initscreen
+  //SEG47 main::@1
+  b1:
+  //SEG48 [8] call render param-assignment [ ]
+    jsr render
+  //SEG49 main::@10
+  b10:
+  //SEG50 [9] call animate param-assignment [ ]
+    jsr animate
+  //SEG51 main::@11
+  b11:
+  //SEG52 [10] if(true) goto main::@1 [ ] -- true_then_la1 
+    jmp b1
+  //SEG53 main::@return
+  breturn:
+  //SEG54 [11] return  [ ]
+    rts
+}
 //SEG55 animate
-animate:
-//SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
-  sta $1000
-//SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
-  lda $1000
-//SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$28
-  beq animate__B1
-//SEG61 animate::@2
-animate__B2:
-//SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
-  sta $1100
-//SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
-  lda $1100
-//SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B3
-//SEG67 animate::@4
-animate__B4:
-//SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
-  ldx $1001
-//SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
-  dex
-//SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
-  stx $1001
-//SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
-  lda $1001
-//SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B5
-//SEG73 animate::@6
-animate__B6:
-//SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
-  clc
-  adc #$1
-//SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
-  sta $1102
-//SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
-  lda $1102
-//SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$19
-  beq animate__B7
-//SEG79 animate::@8
-animate__B8:
-//SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
-  ldx $1103
-//SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
-  dex
-//SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
-  stx $1103
-//SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
-  lda $1103
-//SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
-  cmp #$ff
-  beq animate__B9
-//SEG85 animate::@return
-animate__Breturn:
-//SEG86 [37] return  [ ]
-  rts
+animate: {
+  //SEG56 [12] (byte~) animate::$0 ← * (word) 4096 [ animate::$0 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG57 [13] (byte~) animate::$1 ← (byte~) animate::$0 + (byte) 1 [ animate::$1 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG58 [14] *((word) 4096) ← (byte~) animate::$1 [ ] -- _star_cowo1=aby 
+    sta $1000
+  //SEG59 [15] (byte~) animate::$2 ← * (word) 4096 [ animate::$2 ] -- aby=_star_cowo1 
+    lda $1000
+  //SEG60 [16] if((byte~) animate::$2==(byte) 40) goto animate::@1 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$28
+    beq b1
+  //SEG61 animate::@2
+  b2:
+  //SEG62 [17] (byte~) animate::$4 ← * (word) 4352 [ animate::$4 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG63 [18] (byte~) animate::$5 ← (byte~) animate::$4 + (byte) 1 [ animate::$5 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG64 [19] *((word) 4352) ← (byte~) animate::$5 [ ] -- _star_cowo1=aby 
+    sta $1100
+  //SEG65 [20] (byte~) animate::$6 ← * (word) 4352 [ animate::$6 ] -- aby=_star_cowo1 
+    lda $1100
+  //SEG66 [21] if((byte~) animate::$6==(byte) 25) goto animate::@3 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b3
+  //SEG67 animate::@4
+  b4:
+  //SEG68 [22] (byte~) animate::$8 ← * (word) 4097 [ animate::$8 ] -- xby=_star_cowo1 
+    ldx $1001
+  //SEG69 [23] (byte~) animate::$9 ← (byte~) animate::$8 - (byte) 1 [ animate::$9 ] -- xby=xby_minus_1 
+    dex
+  //SEG70 [24] *((word) 4097) ← (byte~) animate::$9 [ ] -- _star_cowo1=xby 
+    stx $1001
+  //SEG71 [25] (byte~) animate::$10 ← * (word) 4097 [ animate::$10 ] -- aby=_star_cowo1 
+    lda $1001
+  //SEG72 [26] if((byte~) animate::$10==(byte) 255) goto animate::@5 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b5
+  //SEG73 animate::@6
+  b6:
+  //SEG74 [27] (byte~) animate::$12 ← * (word) 4354 [ animate::$12 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG75 [28] (byte~) animate::$13 ← (byte~) animate::$12 + (byte) 1 [ animate::$13 ] -- aby=aby_plus_1 
+    clc
+    adc #$1
+  //SEG76 [29] *((word) 4354) ← (byte~) animate::$13 [ ] -- _star_cowo1=aby 
+    sta $1102
+  //SEG77 [30] (byte~) animate::$14 ← * (word) 4354 [ animate::$14 ] -- aby=_star_cowo1 
+    lda $1102
+  //SEG78 [31] if((byte~) animate::$14==(byte) 25) goto animate::@7 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$19
+    beq b7
+  //SEG79 animate::@8
+  b8:
+  //SEG80 [32] (byte~) animate::$16 ← * (word) 4355 [ animate::$16 ] -- xby=_star_cowo1 
+    ldx $1103
+  //SEG81 [33] (byte~) animate::$17 ← (byte~) animate::$16 - (byte) 1 [ animate::$17 ] -- xby=xby_minus_1 
+    dex
+  //SEG82 [34] *((word) 4355) ← (byte~) animate::$17 [ ] -- _star_cowo1=xby 
+    stx $1103
+  //SEG83 [35] (byte~) animate::$18 ← * (word) 4355 [ animate::$18 ] -- aby=_star_cowo1 
+    lda $1103
+  //SEG84 [36] if((byte~) animate::$18==(byte) 255) goto animate::@9 [ ] -- aby_eq_coby1_then_la1 
+    cmp #$ff
+    beq b9
+  //SEG85 animate::@return
+  breturn:
+  //SEG86 [37] return  [ ]
+    rts
+}
 //SEG87 animate::@9
-animate__B9:
+b9:
 //SEG88 [38] *((word) 4355) ← (byte) 25 [ ] -- _star_cowo1=coby2 
   lda #$19
   sta $1103
@@ -8884,10 +8904,10 @@ animate__B9:
   lda $1003
 //SEG93 [43] if((byte~) animate::$22>=(byte) 40) goto animate::@11 [ ] -- aby_ge_coby1_then_la1 
   cmp #$28
-  bcs animate__B11
-  jmp animate__Breturn
+  bcs b11
+  jmp breturn
 //SEG94 animate::@11
-animate__B11:
+b11:
 //SEG95 [44] (byte~) animate::$24 ← * (word) 4099 [ animate::$24 ] -- aby=_star_cowo1 
   lda $1003
 //SEG96 [45] (byte~) animate::$25 ← (byte~) animate::$24 - (byte) 40 [ animate::$25 ] -- aby=aby_minus_coby1 
@@ -8895,203 +8915,205 @@ animate__B11:
   sbc #$28
 //SEG97 [46] *((word) 4099) ← (byte~) animate::$25 [ ] -- _star_cowo1=aby 
   sta $1003
-  jmp animate__Breturn
+  jmp breturn
 //SEG98 animate::@7
-animate__B7:
+b7:
 //SEG99 [47] *((word) 4354) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1102
-  jmp animate__B8
+  jmp b8
 //SEG100 animate::@5
-animate__B5:
+b5:
 //SEG101 [48] *((word) 4097) ← (byte) 40 [ ] -- _star_cowo1=coby2 
   lda #$28
   sta $1001
-  jmp animate__B6
+  jmp b6
 //SEG102 animate::@3
-animate__B3:
+b3:
 //SEG103 [49] *((word) 4352) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1100
-  jmp animate__B4
+  jmp b4
 //SEG104 animate::@1
-animate__B1:
+b1:
 //SEG105 [50] *((word) 4096) ← (byte) 0 [ ] -- _star_cowo1=coby2 
   lda #$0
   sta $1000
-  jmp animate__B2
+  jmp b2
 //SEG106 render
-render:
-//SEG107 [51] phi from render to render::@1
-render__B1_from_render:
-//SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
-  lda #<$d800
-  sta $3
-  lda #>$d800
-  sta $3+$1
-//SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $2
-//SEG110 [51] phi from render::@3 to render::@1
-render__B1_from_B3:
-//SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
-//SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
-//SEG113 render::@1
-render__B1:
-//SEG114 [52] phi from render::@1 to render::@2
-render__B2_from_B1:
-//SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
-  lda #$0
-  sta $5
-//SEG116 [52] phi from render::@5 to render::@2
-render__B2_from_B5:
-//SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
-//SEG118 render::@2
-render__B2:
-//SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $5
-  sta $9
-//SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
-  lda $2
-  sta $a
-//SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  jsr findcol
-//SEG122 render::@5
-render__B5:
-//SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
-  tya
-//SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
-  ldy $5
-  sta ($3),y
-//SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
-  inc $5
-//SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
-  lda $5
-  cmp #$28
-  bcc render__B2_from_B5
-//SEG127 render::@3
-render__B3:
-//SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
-  lda $3
-  clc
-  adc #$28
-  sta $3
-  bcc !+
-  inc $3+$1
-!:
-//SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
-  inc $2
-//SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
-  lda $2
-  cmp #$19
-  bcc render__B1_from_B3
-//SEG131 render::@return
-render__Breturn:
-//SEG132 [63] return  [ ]
-  rts
+render: {
+  //SEG107 [51] phi from render to render::@1
+  b1_from_render:
+  //SEG108 [51] phi (byte*) render::colline#2 = (word) 55296 -- zpptrby1=cowo1 
+    lda #<$d800
+    sta $3
+    lda #>$d800
+    sta $3+$1
+  //SEG109 [51] phi (byte) render::y#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $2
+  //SEG110 [51] phi from render::@3 to render::@1
+  b1_from_b3:
+  //SEG111 [51] phi (byte*) render::colline#2 = (byte*) render::colline#1 -- register_copy 
+  //SEG112 [51] phi (byte) render::y#2 = (byte) render::y#1 -- register_copy 
+  //SEG113 render::@1
+  b1:
+  //SEG114 [52] phi from render::@1 to render::@2
+  b2_from_b1:
+  //SEG115 [52] phi (byte) render::x#2 = (byte) 0 -- zpby1=coby1 
+    lda #$0
+    sta $5
+  //SEG116 [52] phi from render::@5 to render::@2
+  b2_from_b5:
+  //SEG117 [52] phi (byte) render::x#2 = (byte) render::x#1 -- register_copy 
+  //SEG118 render::@2
+  b2:
+  //SEG119 [53] (byte) findcol::x#0 ← (byte) render::x#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $5
+    sta $9
+  //SEG120 [54] (byte) findcol::y#0 ← (byte) render::y#2 [ render::x#2 render::y#2 render::colline#2 ] -- zpby1=zpby2 
+    lda $2
+    sta $a
+  //SEG121 [55] call findcol param-assignment [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    jsr findcol
+  //SEG122 render::@5
+  b5:
+  //SEG123 [56] (byte) render::col#0 ← (byte) findcol::return#0 [ render::x#2 render::y#2 render::colline#2 render::col#0 ] -- aby=yby 
+    tya
+  //SEG124 [57] *((byte*) render::colline#2 + (byte) render::x#2) ← (byte) render::col#0 [ render::x#2 render::y#2 render::colline#2 ] -- zpptrby1_staridx_zpby1=aby 
+    ldy $5
+    sta ($3),y
+  //SEG125 [58] (byte) render::x#1 ← ++ (byte) render::x#2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1=_inc_zpby1 
+    inc $5
+  //SEG126 [59] if((byte) render::x#1<(byte) 40) goto render::@2 [ render::x#1 render::y#2 render::colline#2 ] -- zpby1_lt_coby1_then_la1 
+    lda $5
+    cmp #$28
+    bcc b2_from_b5
+  //SEG127 render::@3
+  b3:
+  //SEG128 [60] (byte*) render::colline#1 ← (byte*) render::colline#2 + (byte) 40 [ render::colline#1 render::y#2 ] -- zpptrby1=zpptrby1_plus_coby1 
+    lda $3
+    clc
+    adc #$28
+    sta $3
+    bcc !+
+    inc $3+$1
+  !:
+  //SEG129 [61] (byte) render::y#1 ← ++ (byte) render::y#2 [ render::y#1 render::colline#1 ] -- zpby1=_inc_zpby1 
+    inc $2
+  //SEG130 [62] if((byte) render::y#1<(byte) 25) goto render::@1 [ render::y#1 render::colline#1 ] -- zpby1_lt_coby1_then_la1 
+    lda $2
+    cmp #$19
+    bcc b1_from_b3
+  //SEG131 render::@return
+  breturn:
+  //SEG132 [63] return  [ ]
+    rts
+}
 //SEG133 findcol
-findcol:
-//SEG134 [64] phi from findcol to findcol::@1
-findcol__B1_from_findcol:
-//SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
-  lda #$ff
-  sta $6
-//SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
-  ldx #$0
-//SEG138 [64] phi from findcol::@13 to findcol::@1
-findcol__B1_from_B13:
-//SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
-//SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
-//SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
-//SEG142 findcol::@1
-findcol__B1:
-//SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1000,x
-  sta $7
-//SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
-  lda $1100,x
-  sta $b
-//SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
-  lda $9
-  cmp $7
-  beq findcol__B2
-//SEG146 findcol::@3
-findcol__B3:
-//SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $9
-  cmp $7
-  bcc findcol__B6
-//SEG148 findcol::@7
-findcol__B7:
-//SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
-  lda $9
-  sec
-  sbc $7
-  sta $7
-//SEG150 [70] phi from findcol::@7 to findcol::@8
-findcol__B8_from_B7:
-//SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
-//SEG152 findcol::@8
-findcol__B8:
-//SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
-  lda $a
-  cmp $b
-  bcc findcol__B9
-//SEG154 findcol::@10
-findcol__B10:
-//SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
-  lda $a
-  sec
-  sbc $b
-//SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
-  clc
-  adc $7
-//SEG157 [74] phi from findcol::@10 to findcol::@11
-findcol__B11_from_B10:
-//SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
-//SEG159 findcol::@11
-findcol__B11:
-//SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
-  cmp $6
-  bcc findcol__B12
-//SEG161 [76] phi from findcol::@11 to findcol::@13
-findcol__B13_from_B11:
-//SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
-//SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
-//SEG164 findcol::@13
-findcol__B13:
-//SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
-  inx
-//SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
-  cpx $8
-  bcc findcol__B1_from_B13
-//SEG167 [79] phi from findcol::@13 to findcol::@return
-findcol__Breturn_from_B13:
-//SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
-  jmp findcol__Breturn
-//SEG169 [79] phi from findcol::@2 to findcol::@return
-findcol__Breturn_from_B2:
-//SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
-  ldy #$0
-//SEG171 findcol::@return
-findcol__Breturn:
-//SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
-  rts
+findcol: {
+  //SEG134 [64] phi from findcol to findcol::@1
+  b1_from_findcol:
+  //SEG135 [64] phi (byte) findcol::mincol#11 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG136 [64] phi (byte) findcol::mindiff#10 = (byte) 255 -- zpby1=coby1 
+    lda #$ff
+    sta $6
+  //SEG137 [64] phi (byte) findcol::i#12 = (byte) 0 -- xby=coby1 
+    ldx #$0
+  //SEG138 [64] phi from findcol::@13 to findcol::@1
+  b1_from_b13:
+  //SEG139 [64] phi (byte) findcol::mincol#11 = (byte) findcol::mincol#2 -- register_copy 
+  //SEG140 [64] phi (byte) findcol::mindiff#10 = (byte) findcol::mindiff#11 -- register_copy 
+  //SEG141 [64] phi (byte) findcol::i#12 = (byte) findcol::i#1 -- register_copy 
+  //SEG142 findcol::@1
+  b1:
+  //SEG143 [65] (byte) findcol::xp#0 ← (word) 4096 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1000,x
+    sta $7
+  //SEG144 [66] (byte) findcol::yp#0 ← (word) 4352 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=cowo1_staridx_xby 
+    lda $1100,x
+    sta $b
+  //SEG145 [67] if((byte) findcol::x#0==(byte) findcol::xp#0) goto findcol::@2 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
+    lda $9
+    cmp $7
+    beq b2
+  //SEG146 findcol::@3
+  b3:
+  //SEG147 [68] if((byte) findcol::x#0<(byte) findcol::xp#0) goto findcol::@6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $9
+    cmp $7
+    bcc b6
+  //SEG148 findcol::@7
+  b7:
+  //SEG149 [69] (byte) findcol::diff#1 ← (byte) findcol::x#0 - (byte) findcol::xp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#1 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby2_minus_zpby1 
+    lda $9
+    sec
+    sbc $7
+    sta $7
+  //SEG150 [70] phi from findcol::@7 to findcol::@8
+  b8_from_b7:
+  //SEG151 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#1 -- register_copy 
+  //SEG152 findcol::@8
+  b8:
+  //SEG153 [71] if((byte) findcol::y#0<(byte) findcol::yp#0) goto findcol::@9 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::yp#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_lt_zpby2_then_la1 
+    lda $a
+    cmp $b
+    bcc b9
+  //SEG154 findcol::@10
+  b10:
+  //SEG155 [72] (byte~) findcol::$10 ← (byte) findcol::y#0 - (byte) findcol::yp#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::$10 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_minus_zpby2 
+    lda $a
+    sec
+    sbc $b
+  //SEG156 [73] (byte) findcol::diff#3 ← (byte) findcol::diff#4 + (byte~) findcol::$10 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#3 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby=zpby1_plus_aby 
+    clc
+    adc $7
+  //SEG157 [74] phi from findcol::@10 to findcol::@11
+  b11_from_b10:
+  //SEG158 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#3 -- register_copy 
+  //SEG159 findcol::@11
+  b11:
+  //SEG160 [75] if((byte) findcol::diff#6<(byte) findcol::mindiff#10) goto findcol::@12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- aby_lt_zpby1_then_la1 
+    cmp $6
+    bcc b12
+  //SEG161 [76] phi from findcol::@11 to findcol::@13
+  b13_from_b11:
+  //SEG162 [76] phi (byte) findcol::mindiff#11 = (byte) findcol::mindiff#10 -- register_copy 
+  //SEG163 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#11 -- register_copy 
+  //SEG164 findcol::@13
+  b13:
+  //SEG165 [77] (byte) findcol::i#1 ← ++ (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby=_inc_xby 
+    inx
+  //SEG166 [78] if((byte) findcol::i#1<(byte) numpoints#1) goto findcol::@1 [ render::x#2 render::y#2 render::colline#2 findcol::i#1 findcol::mindiff#11 findcol::mincol#2 findcol::x#0 findcol::y#0 numpoints#1 ] -- xby_lt_zpby1_then_la1 
+    cpx $8
+    bcc b1_from_b13
+  //SEG167 [79] phi from findcol::@13 to findcol::@return
+  breturn_from_b13:
+  //SEG168 [79] phi (byte) findcol::return#0 = (byte) findcol::mincol#2 -- register_copy 
+    jmp breturn
+  //SEG169 [79] phi from findcol::@2 to findcol::@return
+  breturn_from_b2:
+  //SEG170 [79] phi (byte) findcol::return#0 = (byte) 0 -- yby=coby1 
+    ldy #$0
+  //SEG171 findcol::@return
+  breturn:
+  //SEG172 [80] return  [ render::x#2 render::y#2 findcol::return#0 render::colline#2 ]
+    rts
+}
 //SEG173 findcol::@12
-findcol__B12:
+b12:
 //SEG174 [81] (byte) findcol::mincol#1 ← (word) 4608 *idx (byte) findcol::i#12 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#6 findcol::mincol#1 numpoints#1 ] -- yby=cowo1_staridx_xby 
   ldy $1200,x
 //SEG175 [82] (byte~) findcol::diff#13 ← (byte) findcol::diff#6 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::mincol#1 findcol::diff#13 numpoints#1 ] -- zpby1=aby 
   sta $6
 //SEG176 [76] phi from findcol::@12 to findcol::@13
-findcol__B13_from_B12:
+b13_from_b12:
 //SEG177 [76] phi (byte) findcol::mindiff#11 = (byte~) findcol::diff#13 -- register_copy 
 //SEG178 [76] phi (byte) findcol::mincol#2 = (byte) findcol::mincol#1 -- register_copy 
-  jmp findcol__B13
+  jmp b13
 //SEG179 findcol::@9
-findcol__B9:
+b9:
 //SEG180 [83] (byte~) findcol::$8 ← (byte) findcol::yp#0 - (byte) findcol::y#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::y#0 findcol::diff#4 findcol::mindiff#10 findcol::mincol#11 numpoints#1 findcol::$8 ] -- aby=zpby1_minus_zpby2 
   lda $b
   sec
@@ -9100,80 +9122,82 @@ findcol__B9:
   clc
   adc $7
 //SEG182 [74] phi from findcol::@9 to findcol::@11
-findcol__B11_from_B9:
+b11_from_b9:
 //SEG183 [74] phi (byte) findcol::diff#6 = (byte) findcol::diff#2 -- register_copy 
-  jmp findcol__B11
+  jmp b11
 //SEG184 findcol::@6
-findcol__B6:
+b6:
 //SEG185 [85] (byte) findcol::diff#0 ← (byte) findcol::xp#0 - (byte) findcol::x#0 [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::diff#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1=zpby1_minus_zpby2 
   lda $7
   sec
   sbc $9
   sta $7
 //SEG186 [70] phi from findcol::@6 to findcol::@8
-findcol__B8_from_B6:
+b8_from_b6:
 //SEG187 [70] phi (byte) findcol::diff#4 = (byte) findcol::diff#0 -- register_copy 
-  jmp findcol__B8
+  jmp b8
 //SEG188 findcol::@2
-findcol__B2:
+b2:
 //SEG189 [86] if((byte) findcol::y#0==(byte) findcol::yp#0) goto findcol::@return [ render::x#2 render::y#2 render::colline#2 findcol::i#12 findcol::x#0 findcol::xp#0 findcol::y#0 findcol::yp#0 findcol::mindiff#10 findcol::mincol#11 numpoints#1 ] -- zpby1_eq_zpby2_then_la1 
   lda $a
   cmp $b
-  beq findcol__Breturn_from_B2
-  jmp findcol__B3
+  beq breturn_from_b2
+  jmp b3
 //SEG190 initscreen
-initscreen:
-//SEG191 [87] phi from initscreen to initscreen::@1
-initscreen__B1_from_initscreen:
-//SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
-  lda #<$400
-  sta $3
-  lda #>$400
-  sta $3+$1
-//SEG193 [87] phi from initscreen::@1 to initscreen::@1
-initscreen__B1_from_B1:
-//SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
-//SEG195 initscreen::@1
-initscreen__B1:
-//SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
-  ldy #$0
-  lda #$e6
-  sta ($3),y
-//SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
-  inc $3
-  bne !+
-  inc $3+$1
-!:
-//SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
-  lda $3+$1
-  cmp #>$7e8
-  bcc initscreen__B1_from_B1
-  bne !+
-  lda $3
-  cmp #<$7e8
-  bcc initscreen__B1_from_B1
-!:
-//SEG199 initscreen::@return
-initscreen__Breturn:
-//SEG200 [91] return  [ ]
-  rts
+initscreen: {
+  //SEG191 [87] phi from initscreen to initscreen::@1
+  b1_from_initscreen:
+  //SEG192 [87] phi (byte*) initscreen::screen#2 = (word) 1024 -- zpptrby1=cowo1 
+    lda #<$400
+    sta $3
+    lda #>$400
+    sta $3+$1
+  //SEG193 [87] phi from initscreen::@1 to initscreen::@1
+  b1_from_b1:
+  //SEG194 [87] phi (byte*) initscreen::screen#2 = (byte*) initscreen::screen#1 -- register_copy 
+  //SEG195 initscreen::@1
+  b1:
+  //SEG196 [88] *((byte*) initscreen::screen#2) ← (byte) 230 [ initscreen::screen#2 ] -- _star_zpptrby1=coby1 
+    ldy #$0
+    lda #$e6
+    sta ($3),y
+  //SEG197 [89] (byte*) initscreen::screen#1 ← ++ (byte*) initscreen::screen#2 [ initscreen::screen#1 ] -- zpptrby1=_inc_zpptrby1 
+    inc $3
+    bne !+
+    inc $3+$1
+  !:
+  //SEG198 [90] if((byte*) initscreen::screen#1<(word) 2024) goto initscreen::@1 [ initscreen::screen#1 ] -- zpptrby1_lt_cowo1_then_la1 
+    lda $3+$1
+    cmp #>$7e8
+    bcc b1_from_b1
+    bne !+
+    lda $3
+    cmp #<$7e8
+    bcc b1_from_b1
+  !:
+  //SEG199 initscreen::@return
+  breturn:
+  //SEG200 [91] return  [ ]
+    rts
+}
 //SEG201 addpoint
-addpoint:
-//SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
-  ldx $8
-  sta $1000,x
-//SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
-  tya
-  ldy $8
-  sta $1100,y
-//SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
-  lda $2
-  ldx $8
-  sta $1200,x
-//SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
-  inc $8
-//SEG206 addpoint::@return
-addpoint__Breturn:
-//SEG207 [97] return  [ ]
-  rts
+addpoint: {
+  //SEG202 [93] *((word) 4096 + (byte) numpoints#19) ← (byte) addpoint::x#6 [ numpoints#19 addpoint::y#6 addpoint::c#6 ] -- cowo1_staridx_zpby1=aby 
+    ldx $8
+    sta $1000,x
+  //SEG203 [94] *((word) 4352 + (byte) numpoints#19) ← (byte) addpoint::y#6 [ numpoints#19 addpoint::c#6 ] -- cowo1_staridx_zpby1=yby 
+    tya
+    ldy $8
+    sta $1100,y
+  //SEG204 [95] *((word) 4608 + (byte) numpoints#19) ← (byte) addpoint::c#6 [ numpoints#19 ] -- cowo1_staridx_zpby1=zpby2 
+    lda $2
+    ldx $8
+    sta $1200,x
+  //SEG205 [96] (byte) numpoints#1 ← ++ (byte) numpoints#19 [ ] -- zpby1=_inc_zpby1 
+    inc $8
+  //SEG206 addpoint::@return
+  breturn:
+  //SEG207 [97] return  [ ]
+    rts
+}
 
diff --git a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.sym b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.sym
index fefdad772..f1cab0f0e 100644
--- a/src/main/java/dk/camelot64/kickc/test/ref/voronoi.sym
+++ b/src/main/java/dk/camelot64/kickc/test/ref/voronoi.sym
@@ -1,5 +1,5 @@
-(label) @BEGIN
-(label) @END
+(label) @begin
+(label) @end
 (byte*) COLORS
 (byte[256]) COLS
 (byte) FILL