Los PET posteriores implementaban BASIC 4.0, similar al original pero agregando una serie de comandos para trabajar con disquete.
El BASIC 7.0 se incluyó con el Commodore 128 e incluía comandos de programación estructurados del BASIC 3.5 del Plus/4, así como palabras clave diseñadas específicamente para aprovechar las nuevas capacidades de la máquina.
Commodore tomó el código fuente del BASIC y lo desarrolló internamente para todas sus otras computadoras domésticas de 8 bits.
(El huevo de Pascua estaba bien ofuscado: el mensaje no apareció en ningún desensamblado del intérprete).
Esto ahorró costos de fabricación, ya que el V2 encaja en ROM más pequeñas.
Una característica conveniente del intérprete BASIC residente en ROM y el KERNAL era el editor de pantalla completa.
Con el PET (y BASIC 2.0), los archivos de los casetes se podían solicitar por nombre.
el comando, GOTO, podría abreviarse G{Shift-O} (que se parecía a GΓ en pantalla).
Por ejemplo, el comando, INPUT no tenía abreviatura porque su ortografía chocaba con la palabra clave separada INPUT#, que se encontraba más cerca del comienzo de la palabra clave en la tabla de correspondencia.
Esta falla fue utilizada con algún efecto por los programadores que querían probar y proteger su trabajo, aunque era bastante fácil de eludir.
[cita requerida] Para ejecutar más rápido que el intérprete, los programadores comenzaron a usar varias técnicas para acelerar la ejecución.
Esto es en comparación con otras implementaciones de BASIC que normalmente tienen comandos dedicados para limpiar la pantalla o mover el cursor.
Las líneas de programa en Commodore BASIC no requieren espacios en ninguna parte (pero el comando LIST siempre mostrará uno entre el número de línea y la declaración), por ejemplo, 100 IFA=5THENPRINT "YES":GOTO160, y era común escribir programas sin espacios.
Esta función se agregó para conservar la memoria, ya que el tokenizador nunca elimina ningún espacio insertado entre las palabras clave: la presencia de espacios da como resultado 0x20 bytes adicionales en el programa tokenizado que simplemente se omiten durante la ejecución.
El tokenizador elimina los espacios entre el número de línea y la declaración del programa.
Las versiones anteriores no producían un error y simplemente mostraban el mensaje READY dos líneas hacia abajo si se excedía la longitud de la línea.
Poner varias declaraciones en una línea usará menos memoria y se ejecutará más rápido.
Esto ralentizará los programas más grandes, por lo que es preferible colocar las subrutinas de uso común cerca del inicio.
La mayoría de las implementaciones BASIC contemporáneas usaban un byte para el exponente y tres bytes para la mantisa.
Dado que las máquinas Commodore de 8 bits que no sean C128 no pueden iniciar automáticamente el software del disco, la técnica habitual es incluir un código auxiliar BASIC como 10 SYS 2048 para comenzar la ejecución del programa.
Es posible iniciar automáticamente el software después de la carga y no requerir que el usuario escriba una declaración RUN, esto se hace con un fragmento de código que conecta el vector BASIC «ready» en $0302.
El reloj no es un método de cronometraje muy confiable, ya que se detiene cada vez que se desactivan las interrupciones (realizadas por algunas rutinas del kernel) y acceder al puerto IEC (o puerto IEEE en el PET) retrasará la actualización del reloj unos pocos tics.
La función RND en Commodore BASIC puede usar el reloj para generar números aleatorios; esto se logra mediante RND(0), sin embargo, tiene un uso relativamente limitado ya que solo se devuelven números entre 0 y 255.
Tampoco es posible cancelar la recolección de basura ya que BASIC no escanea la tecla RUN/STOP mientras realiza esta rutina.
Una de las extensiones más populares fue DOS Wedge, que se incluyó en el Commodore 1541 Test/Demo Disk.
Sus funciones se incorporaron posteriormente en varias extensiones de terceros, como el popular cartucho Epyx Fast Load.
Era una práctica común incrementar los números en algún valor (5, 10 o 100) para facilitar la inserción de líneas durante la edición o depuración del programa, pero una mala planificación significaba que insertar grandes secciones en un programa a menudo requería reestructurar todo el código.
Los bucles claramente definidos son difíciles de crear, lo que a menudo hace que el programador confíe en el comando GOTO (esto se rectificó más tarde en BASIC 3.5 con la adición de DO, LOOP, WHILE, UNTIL y EXIT).
Al igual que otras computadoras domésticas, las máquinas de Commodore se iniciaban directamente en el intérprete BASIC.
Los complementos como DOS Wedge superaron esto al mostrar la lista del directorio directamente en la memoria de la pantalla.