Créditos
- Código — NoRecess
Escrito en solitario.
CATRUN

CATRUN es una herramienta sencilla para las máquinas Amstrad CPC, pensada para agilizar el descubrimiento del contenido de un disquete y el lanzamiento de un programa.
Cuando se mete un disquete nuevo en la máquina, apuesto a que el 95 % de los usuarios habituales de Amstrad CPC teclean primero el comando CAT para ver qué contiene, y después RUN”NOMBREARCHIVO para lanzar el programa que buscaban.
Con CATRUN basta pulsar CTRL+TAB (o SHIFT+TAB en los 464) al arrancar la máquina —o en cualquier otro momento, por supuesto— para mostrar la lista de archivos guardados en el disquete, usar luego las teclas de flecha para seleccionar el archivo que se quiere ejecutar y pulsar por último RETURN/ENTER/COPY para que el comando RUN se teclee solo. Unas pulsaciones menos, y una experiencia de lanzamiento (¡un poco!) más agradable.
Mientras se selecciona un archivo, también se puede:
- pulsar H para mostrar la ayuda del programa
- pulsar ESC para volver simplemente al BASIC (es decir, descartar el comando RUN)
- pulsar TAB para releer el catálogo (por ejemplo cuando se quiere cambiar de disquete y volver a ver su contenido)
- pulsar R para renombrar el archivo seleccionado
- pulsar D o E para borrar el archivo seleccionado
- pulsar A o B para cambiar la unidad actual a A: o B:
- pulsar P para abrir un archivo ASCII con Protext
- pulsar S para la multiselección. Se puede combinar con las operaciones de borrado.

A partir de la V1.2, si se detecta UniDOS:
- pulsar CLR para ir a la carpeta raíz
- pulsar DEL para ir a la carpeta superior
- pulsar RETURN/ENTER/COPY para entrar en una subcarpeta
- pulsar N para crear una carpeta nueva
- pulsar C para copiar un archivo a la otra unidad lógica (combinable también con la tecla S, la multiselección)
Y eso es todo :)
Algunas notas más…
- admite tanto el MODE 1 como el MODE 2. Si el modo de vídeo actual es el MODE 0, se hace un CAT normal y se vuelve al BASIC
- para estar disponible en todo el sistema desde el prompt de BASIC, este programa se distribuye como ROM, para instalar en una ROMBoard (X-MEM, FlashGordon, etc.)
- el programa solo ocupa unos pocos bytes para la inicialización de la ROM (necesarios para que el sistema gestione el atajo |CATRUN mediante Control+Tab). ¡La ejecución en sí no requiere ninguna RAM adicional!
- si el catálogo del disquete resulta ser un CATART, se hace un CAT normal y se vuelve al BASIC
- si el catálogo resulta imposible de recorrer por cualquier motivo, se hace un CAT normal y se vuelve al BASIC. Ocurre, por ejemplo, con la (¡magnífica!) expansión M4 de Duke, que por dentro no se comporta como el CAT original de Amstrad; para programadores: el búfer de 2 K no lo rellena CAS CATALOG.
- en general, este programa solo recurre a las rutinas del firmware. Garantiza compatibilidad completa entre las máquinas Amstrad CPC 464, 664 y 6128 (probado)
- se comprueba que la llamada a |CATRUN venga del prompt de BASIC. No tendría sentido disparar CATRUN desde el prompt de comandos de Protext (¡sí, es posible!), por ejemplo.
- específico de UniDOS: la ruta actual se muestra encima de cada catálogo
- la fecha de compilación aparece en la ayuda
- no da por supuesto que AmsDOS esté en la ROM7
- por dentro se apoya en una «rutina de impresión rápida» (más rápida que la estándar de Amstrad)
- al mostrar un catálogo, CATRUN intenta preseleccionar un archivo ejecutable a partir del nombre (¡gracias, Eto/Prodatron!):
- si encuentra un archivo «disc.»/«disk.»/«disc.bas»/«disk.bas»/«disc.bin»/«disk.bin»
- y si no, el primer «*.»
- y si no, el primer «*.bas»
- y si no, el primer «*.bin» (muy útil, y acertado casi siempre.)
Poulette73 ha hecho pruebas adicionales (¡gracias!) en varias configuraciones de hardware (casos en que Amsdos está parcheado con sistemas de archivos propios):
- placa M4 + almacenamiento USB: bien soportado
- RSF3 + almacenamiento USB: bien soportado
- CubeMDOS, UniDOS, ParaDOS y X-Ddos también funcionan bien
Unas últimas palabras.
Este programa me resulta útil. ¡Con un poco de suerte, a ti también! :)
¡Gracias a TotO, Offset, Poulette73, roudoudou y a todos los demás que mantienen viva la escena Amstrad! =)

