code: public void startSubroutine(String target) throws IOException
      {
          if (subroutine != null)
          {
              throw new IllegalStateException("subroutine "+subroutine+" not ended when "+target+ "started");
          }
          subroutine = target;
          if (!hasLocalVariable(SUBROUTINERETURNADDRESSNAME))
          {
              addVariable(SUBROUTINERETURNADDRESSNAME, Typ.ReturnAddress);
          }
          fixAddress(target);
          tstore(SUBROUTINERETURNADDRESSNAME);
      }
docs: Compiles the subroutine start. Use endSubroutine to end that subroutine.
  @param target
  @throws IOException