Manual · 2
El editor de código
En la 2600 el programa dibuja la imagen mientras se mueve el haz, así que cada ciclo cuenta. El editor muestra los ciclos de cada instrucción y de lo que selecciones, y conoce todos los registros, etiquetas y macros de tu programa.
La columna de ciclos
Junto a cada instrucción aparece su coste en ciclos de CPU. Cuando el coste puede variar, se muestran los dos números:
4/5: un ciclo más cuando una lectura indexada cruza una página;2/4: un salto condicional tarda 2 ciclos si no se toma, 3 si se toma y 4 si cae en otra página.
Que una dirección esté en la página cero (3 ciclos para LDA $80) o sea absoluta (4 ciclos) depende del valor del símbolo. El editor usa los símbolos de la última compilación, y las constantes que acabas de escribir, para distinguirlas.
Direcciones y páginas
Haz clic en los ciclos de una línea para ver dónde la puso la última compilación: su dirección (y banco), su posición en el archivo de la ROM, cuántos bytes ocupa y si entra en otra página. Copiar lo lleva al portapapeles.
En los archivos de ensamblador, una raya fina marca dónde empieza cada página de 256 bytes del 6502, con la dirección de la página a la derecha. Un salto al otro lado de la raya cuesta un ciclo más, y también la lectura indexada de una tabla que la cruza; cuando una tabla empieza en una página y acaba en la siguiente, la raya va debajo y lo indica. Las rayas se quitan en Ver → Mostrar separadores de página del 6502. Todo sale de la última compilación: vuelve a compilar si mueves código.
Totales de una selección
Selecciona unas líneas y la barra de estado muestra su total: los ciclos mínimo y máximo, los bytes que ocupan y la fracción de una línea (una línea son 76 ciclos de CPU, o 228 relojes de color). Es la forma más rápida de comprobar que una línea de un kernel cabe.

Ayuda al pasar el ratón y autocompletado
Deja el ratón sobre una instrucción, un registro o un símbolo para ver qué es:
- una instrucción muestra sus modos de direccionamiento, bytes, ciclos y los flags que cambia;
- un registro del TIA o del RIOT muestra su dirección, sus bits y lo que hace;
- una etiqueta muestra su dirección, y una constante su valor.
Ctrl+Space (Cmd+Espacio es Spotlight) completa instrucciones, registros y símbolos. Las etiquetas, constantes y macros cuentan en cuanto las escribes, en los archivos abiertos y en el resto del proyecto, antes de compilar. Un símbolo que las fuentes ya no definen (porque lo has borrado o renombrado) deja de ofrecerse.
Ir a una definición
F12 sobre una etiqueta, constante o macro abre la línea donde se define. Si mantienes Ctrl (Cmd en macOS), la palabra bajo el ratón se subraya; haz clic para ir allí.
El mismo Ctrl+clic sobre una línea que nombra un archivo lo abre: include e incbin de DASM, #include de C, include, inline e incgraphic de batari Basic, y el .vcsgfx de un bloque rem vcsgfx. Se busca junto al archivo, en el proyecto, en sus carpetas de inclusión y en include/.
Ctrl+G va a un número de línea, y Ir a dirección va de una dirección del emulador a su línea.
Edición
- Buscar y reemplazar, con siguiente y anterior (Ctrl+F, F3, Shift+F3).
- Comentar líneas, duplicarlas, moverlas hacia arriba y hacia abajo, borrarlas.
- Zoom con Ctrl++/-/0 o con Ctrl y la rueda del ratón. La fuente se vuelve a dibujar en cada tamaño, así que se ve nítida, y el zoom se recuerda.
- La sangría es la del archivo: Tab, Shift+Tab, Retroceso e Intro van por sus niveles, un tabulador o los espacios que usan casi todas sus líneas.
- En C, Intro tras
{o tras unif (...)sin llaves entra un nivel, y añade la}si el bloque aún no está cerrado. Una{o}escrita en una línea sola se coloca donde está su bloque, y un comentario de bloque sigue con*. - Cada nivel de sangría puede tener su propio tono, según el tema.
Plegado
Las fuentes largas se pueden plegar por partes con las flechas del margen, Ctrl+Alt+↑ y ↓, o Editar → Plegar todo. Las regiones salen del propio texto, sin compilar:
- DASM:
MAC/ENDM,IF/ENDIF,REPEAT/REPEND, cadaSEGySUBROUTINE, cada etiqueta global hasta la siguiente y los grupos de comentarios. - batari Basic:
function,data,asm, bloques comoplayer0:hastaend, los bloquesrem vcsgfx, las etiquetas y los grupos derem. - C: llaves,
#if/#endify comentarios.
Una región plegada deja su primera línea con una marca que dice cuántas líneas oculta. Los pliegues siguen al texto mientras editas, y se abren cuando el cursor entra en ellos, por ejemplo para enseñar un resultado de búsqueda o un error.
Colores de la sintaxis
El ensamblador, batari Basic y C tienen cada uno su propio coloreado. En ensamblador, las instrucciones, directivas, registros, etiquetas, números y comentarios tienen colores distintos, y los opcodes ilegales también:
- los opcodes ilegales estables (como
LAXoSAX) en morado; - los inestables en rojo.
Opcodes ilegales
El 6502 tiene opcodes que no figuran en la lista oficial. Algunos hacen siempre lo mismo y muchos juegos de 2600 los usan; otros dependen del chip y es mejor evitarlos. Cada proyecto elige qué hacer con ellos (illegal_opcodes en el .vcsproj):
| Política | Efecto |
|---|---|
| Permitir | Cualquier opcode, sin avisos. |
| Solo estables | Los opcodes ilegales estables se admiten; los inestables son errores y el autocompletado no los ofrece. |
| Avisar | Cada opcode ilegal es un aviso en Problemas. |
| Prohibir | Cada opcode ilegal es un error, y el autocompletado no ofrece ninguno. |