Generar Ficheros de RSC desde el PC

By manolito74

Paragon (1190)

manolito74's picture

13-01-2017, 17:03

Hola:

Me gustaría compartir con vosotros algo que acabo de descubrir por "causalidad". A los que nos gusta usar el RSC-II desde un Emu de MSX o MSX real nos resultaría de gran utilidad poder generar el Fichero en Formato "RSC" a partir de un Texto Plano desde el PC. ¿A qué suena bien, ¡eh!? Pues vamos allá con el Proceso para poder hacerlo:

1- Primero tenéis que descargar una versión de "Q-BASIC" para Windows. En función de vuestro Windows (si es de 32 ó 64 bits) podéis descargarlo desde aquí:

http://programacion-gandhi-secundaria.blogspot.com.es/2015/0...

2- Una vez descargado descomprimimos el Fichero.

3- En la Carpeta en la que lo hemos descomprimido ejecutamos el Fichero "QBasic64.exe" (en mi caso es ese porque mi versión es la de 64 Bits)

4-Una vez ejecutado ese Fichero nos va a aparecer el Editor del Q-Basic (un Programa en MS-DOS)

5- En esa Pantalla debemos pegar el siguiente Código Q-Basic:

'convierte ficheros de texto ASCII
'a ficheros formato RSC,
'cargables desde el ensamblador RSC
'
'para detalles ficheros RSC,
'ver el fichero RSCFILE.TXT
'
'29/1/2003 - FUNCIONA
'11/2/2003 - conversion minusculas a mayusculas
'            (RSC solo soporta codigo fuente en MAYUSCULAS)
'
CLS
FILES
PRINT
INPUT "沙ichero ASCII a convertir (con extension)"; fe$
PRINT
FILES fe$ 'comprueba si existe
PRINT
INPUT "沙ichero resultante "; fs$
'
PRINT
PRINT "Convirtiendo fichero ..."
'
OPEN fe$ FOR INPUT AS 1
'
ls$ = "" 'buffer para fichero
lf = 0 'longitud fichero resultante
n = 10'numero de linea incial
DO
        LINE INPUT #1, li$
        lo = LEN(li$)
        'los nemotecnicos se convierten a mayusculas pero no los comentarios
        li1$ = UCASE$(LEFT$(li$, INSTR(li$, ";"))) 'parte de programa
        li2$ = RIGHT$(li$, lo - LEN(li1$))'parte de comentario
        IF li1$ = "" THEN li2$ = UCASE$(li2$)
        lo = lo + 4 'tama寸 linea+4
        lsb = n AND &HFF
        msb = (n AND &HFF00) / 256
        ls$ = ls$ + CHR$(lo) 'longitud linea
        ls$ = ls$ + CHR$(lsb) + CHR$(msb) + CHR$(0) 'numero linea
        'texto de la linea
        'ls$ = ls$ + li$
        ls$ = ls$ + li1$ + li2$
        ls$ = ls$ + CHR$(1) 'fin linea
        lf = lf + lo + 1'long fichero
        n = n + 10
LOOP WHILE NOT EOF(1)
'
lf = lf + 1 'long datos
lsbl = lf AND &HFF
msbl = (lf AND &HFF00) / 256
'
ls$ = CHR$(2) + CHR$(lsbl) + CHR$(msbl) + ls$ + CHR$(0)
'
OPEN fs$ FOR RANDOM ACCESS WRITE AS 2 LEN = LEN(ls$)
FIELD 2, LEN(ls$) AS d$
LSET d$ = ls$
PUT 2
'
CLOSE
PRINT "Ok"

6- Guardamos el Fichero desde el Menú "File --> Save As" con el nombre que queramos por ejemplo en el mismo directorio del Q-Basic.

7- Ahora generamos el Fichero Ejecutable desde el Menú "RUN - Make .Exe Only" con lo cual se nos genera un Fichero ".Exe" con el mismo nombre del Fichero Fuente Q-Basic.

8- Ejecutamos el Fichero ".Exe" que hemos generado haciendo doble Click y nos aprece una ventana MS-DOS en la que tenemos que introducir los Datos de nuestro Fichero FUENTE con Extensión que contiene el Código del Programa "RSC" (os recuerdo que es simplemente un Fichero de Texto Plano en el que hemos pegado el Código del Programa Ensamblador RSC" y elegimos un Nombre y Extensión para el Fichero de Salida (Recordemos que el Fichero de Salida va a ser un Fichero que contiene el Código del Programa Ensamblador para ser cargado desde el RSC en un MSX o en un Emu)

Acabo de probarlo y ¡funciona perfectamente! Una pequeña salvedad: el Fichero que tenemos en PC con el código del Programa crearlo SIN NÚMEROS DE LÍNEA (si contiene números de línea el fichero de salida va a contener los números de Línea duplicados) (aunque supongo que sería fácil modificar el Programa Q-Basic para corregir ésto)

Pues nada, dicho queda. Así explicado parece un Proceso largo y complejo pero una vez que tengamos la Carpeta de Trabajo con el Q-Basic y el Ejecutable para hacer la conversión pues resulta muy muy cómodo generar Ficheros Ensamblador con Formato "RSC"

N.B.: Info extraida de la Página de Hans Otten (Programa Q-Basic creado por "IVI Soft"):

http://msx.hansotten.com/uploads/files/asc2rsc.txt

Saludetes. ;-)

Login or register to post comments

By Panzer-

Paragon (1041)

Panzer-'s picture

15-01-2017, 15:01

Gracias, manolito.
Muy interesante...