From the category archives:

Emuladores

Corriendo Snow Leopard en una PC

by Jorge Machin on March 14, 2010 · 0 comments

in Emuladores, Personal

Aprovechando el puente, hice el experimento de correr OS-X Snow Leopard en mi computadora PC:


Hi! I'm a PC

Probé varios métodos, pero finalmente el que funcionó mejor y encontré menos laborioso fue este:

http://prasys.co.cc/2009/10/empire-efi/

{ 0 comments }

Reviviendo MS-DOS 6.22 con QEMU

by Jorge Machin on June 30, 2008 · 0 comments

in Emuladores, Fedora, Linux, Videojuegos

Al hacer el post de mis videojuegos favoritos, me di cuenta que algunos de ellos ya no los puedo jugar ni usando wine o dosemu. Afortunadamente queda la alternativa de usar un emulador de "PC" e instalar en ellos DOS, Windows 3.11 o Windows95 para disfrutarlos otra vez. Efectivamente, al emular la PC se obtiene una computadora lenta, pero las computadoras de esa época eran igual de lentas y actualmente no se nota la diferencia cuando se juega en una máquina virtual.

Utilicé el conocido emulador QEMU porque funciona en Windows, Linux y Mac y las imágenes creadas son completamente intercambiables.

Instalando QEMU

En Fedora:

La instalación es con yum:

yum install kqemu

Si quiere utilizar aceleración por hardware, QEMU tiene un módulo que ejecuta directamente el código de máquina si se esta en una maquina compatible con los microprocesadores de Intel. Este se levanta como cualquier otro módulo:

modprobe kqemu

En Windows:

Solamente se necesita bajar y descomprimir el archivo zip con los binarios de la siguiente página: http://www.h7.dion.ne.jp/~qemu-win/. No hay archivo de instalación.

En este post se va asumir que todo se hace desde la línea de comando. Si usted prefiere, puede intentar usar el programa Qemu manager.

Si desea utilizar la aceleración por hardware, es necesario que baje e instale el archivo Kqemu-version-install.exe.

Instalado MS-DOS 6.22

El primer paso es crear una imagen del disco duro donde vamos a instalar todo, para ello ejecutamos el comando:

qemu-img create dos622.img 1000M

El nombre de la imagen donde instalaremos es dos622.img y su tamaño es de 1 GB. Es usted libre de cambiar el tamaño a sus necesidades.

El siguiente paso es instalar el MS-DOS. Afortunadamente cuento con unas imágenes de los diskettes de una computadora que tuve. Si usted tiene los diskettes los puede utilizar dando la ruta o creando primero una imagen usando dd o windd. El comando para hacer la imagen de los diskettes sería de la forma:

dd bs=2x80x18b if=/dev/fd0 of=/tmp/disk1.image

Ahora que si no cuenta con un sistema operativo MS-DOS original, podría intentar con FreeDOS o con DR-DOS, que igual y son mejores porque su desarrollo continúa hasta la fecha. Yo utilicé MS-DOS porque los tengo a la mano y usar los originales fue parte de este reto personal.

Con las imagenes o los diskettes a la mano, ejecutamos el comando:

qemu -boot a -fda disk1.img -hda dos622.img

En Windows es necesario agregar el parámetro L al directorio donde esta la instalación. Si estamos sobre el directorio de instalación el comando se transforma en:

qemu -L . -boot a -fda disk1.img -hda dos622.img

Desde aquí se puede seguir la instalación normal del MS-DOS.


¿Evocando pesadillas del pasado?

Los cambios de diskette que pide el instalador se pueden hacer accediendo a la consola, la cual se abre con las teclas 2 y usando el comando:

change floppy0 disk2.img

Si QEMU no conoce el dispositivo floppy0, puede ser porque su sistema lo nombre de otra forma. Para obtener los nombres de los dispositivos, puede ejecutar el siguiente comando y así cambiarlo por el correcto:

info block

Para regresar a la pantalla de instalación se presiona las teclas 1.

Una vez instalado el sistema operativo, se arranca sin la opción -boot y con todo la emulación del hardware que desee:

qemu -L .  -hda dos622.img -cdrom E:

Ahora si lo desea puede configurar a su gusto los archivos CONFIG.SYS y AUTOEXEC.BAT. Los mios tienen esta forma:

CONFIG.SYS:

DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF
DEVICE=C:\DOS\EMM386.EXE NOEMS
DOS=HIGH
LASTDRIVE=Z
COUNTRY=003,,C:\DOS\COUNTRY.SYS
SHELL=COMMAND.COM /P /e:1024
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
FILES=50

AUTOEXEC.BAT:

@ECHO OFF
PROMPT $p$g
PATH C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB LA,,C:\DOS\KEYBOARD.SYS
C:\DOS\SMARTDRV.EXE /X
C:\DOS\SHARE.EXE /L:500
C:\DOS\DOSKEY.COM

Si necesita transferir archivos a la partición, en Linux, puede montar la imagen con el siguiente comando:

mount -o loop,offset=32256 dos622 punto_de__montaje

En windows, se pueden crear imágenes iso para leerlas desde QEMU, usar una disketera virtual como VFD o bien ver un directorio de nuestra máquina con el parámetro:

-hdb fat:/mi_directorio

Soporte para CD

Por lo general, los controladores de las unidades de disco compacto se incluían con ellas. Afortunadamente en el sitio 4DOS.infi se puede bajar unos controladores de Acer compatibles con atapi que funcionan correctamente con qemu.

Después de bajar el archivo APICD214.ZIP y transifir VIDE-CDD.SYS a nuestra imagen, se agrega la siguiente línea al archivo CONFIG.SYS:

DEVICE=C:\VIDE-CDD.SYS /D:MSCD001

y esta al AUTOEXEC.BAT:

C:\DOS\MSCDEX.EXE /S /D:MSCD001

Después de reiniciar, ya tenemos acceso a la unidiad de discos.

Soporte para ratón

Podemos usar el controlador CuteMouse que es un ejecutable que podemos agregar al AUTOEXEC.BAT.

Aceleración por hardware

Si ya tiene instalado o cargado los módulos de kqemu, solo necesita agregar la opción -kernel-kqemu

{ 0 comments }

En este post iré poniendo imagenes de los juegos que realmente me han fascinado y que considero que son o fueron mis favoritos.


 Kaboom! (2600-1983)
 Kaboom! (2600-1983) Enduro (2600-1983) Hockey sobre hielo (2600-1983) Pressure Cooker (2600-1983) Cazadores del Arca Perdida (2600-1983) Streef Fighter 2 (SNES-1993) Star Fox (SNEX-1993) Doom (MS-DOS-1994) Actua Soccer (MS-DOS-1996) Myst (WIN95-1996) Need for Speed Hot Pursuit 2 (WIN98-2002) Unreal Tournament (WIN98-2002) Uru (WINXP-2003) Unreal Tournament 2004 (WINXP-2004) The Longest Journey (WIN-2005) Fahrenheit ( WINXP-2005) Elder Scrolls Oblivion ( WINXP-2006) Dreamfall ( WINXP-2006) Team Fortress 2 (WINXP-2007) Call of Duty 4 (WINXP-2007)

La ventaja de haber conocido los videojuegos desde casi el comienzo es que fuí creciendo con ellos. ¡De hecho jugué el pong!

Nota: Las fechas son de cuando los jugué y no de cuando salieron a la venta.

{ 0 comments }

Aunque con un emulador es suficiente usar imágenes de diskettes para trabajar o jugar un rato, no hay nada mejor que tener un sistema con un disco duro donde podamos ordenar en un solo lugar todos nuestros programas y sentir que nuestra CoCo podría rivalizar en funcionalidad a nuestra PC... Bueno, debo de reconocer que a veces algunas cosas me apasionan más de la cuenta, pero la Color Computer es considerada por muchos como la computadora de 8 bits más poderosa que ha existido y si la han utilizado sabrán a que me refiero.

Agregando un disco duro a nuestro emulador

La Color Computer real manejaba diskettes por medio de una "disketera" conectada por medio de un cartucho, el cual tenía un ROM con un "sistema operativo de disco - DOS" que extendía el lenguaje BASIC con comandos y rutinas en lenguaje de máquina que daban el soporte básico para el manejo de archivos en diskettes de 5.25 pulgadas (de un sólo lado).

Que yo sepa, la Radio Shack nunca sacó a la venta discos duros para la Color Computer (correción: Ya desde al menos 1988, ya aparecia en los catagos de Radio Shack); sin embargo, otras compañías diseñaron interfaces para soportarlos con versiones adaptadas de su sistema operativo de disco.

Por lo tanto, de igual forma debemos sustituir el Disk Extended Color Basic en el archivo zip con los ROMs en el emulador; es decir, debemos cambiar el archivo DISK11.ROM en el archivo coco3.zip por uno que nos de soporte para disco duro. Afortunadamente, Robert Gault, tiene preparado en su página de Internet el ROM RGBDOS modificado para usarse en emuladores y todas las herramientas necesarias para echar andar nuestro disco duro virtual. La página de Internet de Robert Gault donde se encuentra el RGBDOS es http://home.att.net/~robert.gault/Coco/Downloads/Downloads.htm

Una vez bajado el archivo RGBDOS.ZIP es necesario quitarle los dos primeros bytes al archivo DISK.ROM porque está preparado para el emulador de Jeff Vavasour. El nuevo archivo DISK.ROM debe sustituir al archivo DISK11.ROM (DECB) dentro el archivo coco3h.zip.

Al iniciar MESS, se comparan la checksums de los ROMs, por lo que es muy probable que nos marque un error de CRC al correrlo la primera vez. En la configuración del archivo se puede modificar para evitar el warning. La pantalla de inicio, ahora es esta:

RGB-DOS
El RGB-DOS despliega un nuevo mensaje de bienvenida

El siguiente paso es crear el archivo donde se va a contener nuestro disco virtual. Esto se hace con la opción Devices/Virtual Hard Disk/Create y dándole un nombre al archivo. Al reiniciar, ya no aparecerá el mensaje de error que nos informa sobre la falta del disco duro.

Si queremos que el disco duro se monte automáticamente cada que iniciemos MESS, debemos agregar su ruta al archivo de configuración cfg/coco3h.cfg.

Ahora para inicializar el disco duro seguimos los siguientes pasos:

Paso 1: Montamos el disco TOOLS.dsk en la unidad de diskettes 0 y el NitrOS9boot.os9 en la unidad de diskettes 1. Estas dos imagenes de disco las podemos encontrar en el archivo RGBDOS.ZIP.

Paso 2: Accedemos a los diskettes ejecutando el comando DRIVE OFF.

Paso 3: Cargamos y ejecutamos el programa CREATE.BAS (LOAD "CREATE.BAS" y RUN ). Después de unos minutos nos habrá creado 255 diskettes virtuales y aumentado nuestro archivo vhd a 128 MB aproximadamente. Cada disco virtual es accesible con el comando DRIVE.

Paso 4: Sustituimos el disco TOOLS.dsk por nuestro disco de Sistema de NitrOS-9 (no olvidar cambiar la extensión de dsk a os9). Activamos nuevamente las unidades de diskette con DRIVE ON y booteamos desde él con el comando DOS.

Paso 5: Formateamos el disco duro con los siguientes comandos:

load /d1/hdrive
iniz /h0
format /h0

Paso 6: Se copian los archivos del disco del sistema con la siguiente orden:

chd /d0; dsave -s48 /h0 ! shell -p

Paso7: Reseteamos y ahora nos aparecerá un menú del cual abandonamos con la tecla escape. Colocamos nuevamente el disco Tools.dsk en la unidad de discos 0 y ejecutamos el programa link.bas dando como parámetro el número 254 para el número de disco de arranque.

Paso 8: Probamos bootear NitrOS-9 con el comando DOS 254 y ¡ya tenemos nuestro disco duro!.

{ 1 comment }

Ahora que podemos emular a la Color Computer en Windows o en Linux, podemos divertirnos por horas y horas; ya sea jugando con los videojuegos de antaño, trabajando con sus aplicaciones o programando como en los buenos tiempos. Pero primero es necesario hacer nuestra lista de sitios de donde podemos obtener recursos.

Algunos sitios importantes de la comunidad

La comunidad en Internet de la Color Computer es más grande de lo que se pudiera imaginar. Es fácil encontrar nuestros programas favoritos de antaño e incluso encontrar nuevos incluso con técnicas de programación actuales. Esta es la lista de los sitios que considero de visita obligada:

- Repositorio RTSI

Es una colección muy grande de programas freeware para OS-9 y NitrOS-9 de todo tipo.

- CoCo3.com

Es el sitio donde se reunen la mayoría de las personalidades del mundo de la Color Computer para ayudar y compartir sus proyectos. Su visita es altamente recomendada.

- Lista de juegos de L. Curtis Boyle

Aquí se puede encontrar una recopilación de los juegos más famosos de la Color Computer. Muchos de ellos se pueden bajar con el permiso expreso de los programadores.

- Maltedmedia

En este repositorio se pueden encontrar una enorme cantidad de manuales.

- Archivos Coco Downunder

Otro repositorio con manuales y programas.

NitrOS-9

NitrOS-9 es una versión moderna del sistema operativo OS-9 de Microware que vendía la Radio Shack para darle un carácter profesional a su computadora casera. Esta escrito por varios de los programadores originales y es compatible a nivel binario con su antecesor e incluso tiene resuelto muchos bugs y problemas propios de las computadoras de generación pasada como el apocalíptico Y2K.

Se puede bajar las imágenes de diskette en su sitio oficial o desde sourceforge. Para usarlas con MESS es necesario cambiarles la extensión a .os9 a todos los archivos .dsk. Con eso ya están listas para "bootear" con el comando DOS del DECB.

Discos de sistema

Quizás el primer paso con Nitros-9 es crear un disco de arranque para hacer pruebas en él. Obviamente la velocidad de los diskettes en el emulador es mayor que en una Coco real porque estamos usando en realidad el disco duro de la computadora. No es raro que al crear y manejar archivos sea preferible usar el emulador a menos que tengamos una interfase SuperIDE de Cloud09.

Para crear un disco de arranque se siguen los siguientes pasos:

Paso 1: Crear el archivo que va a ser nuestra imagen con la opción Devices->Floppy #1->Create, dándole un nombre con extensión .os9 y eligiendo el tipo CoCo OS-9 disk image.

Los primeros diskettes de la color computer estaban organizados en 35 pistas con 18 sectores de 338 bytes de los cuales 256 eran para datos. Obviamente al haces 35*18*256, nos da la capacidad de 161,280 bytes.

En NitrOS-9 es común usar una geometría de 40 pistas de 18 sectores de 256 bytes de datos y dos lados que da como capacidad 40*18*256*2 ó 368640 (360 KB). Es recomendable usar esa geometría en NitrOS-9.

Paso 2: En el directiorio /d0/nitros9/6809l2/scripts existe un script llamado mb, el cual tiene automatizado el proceso de crear un disco de arranque. Sólo es necesario cambiarse a el y ejecutarlo.

Manejando ventanas simultaneas con procesos diferentes

Tanto NitrOS-9 LII como el venerable OS-9 LII permiten manejar hasta 7 ventanas que se pueden acceder como dispositivos con una denominación que va del /w1 al /w7. En cada una de ellas podemos correr procesos diferentes o abrir terminales sin el riesgo de que se llene de basura como ocurriá con las versiones del LI.

Para crear una ventana se utiliza el comando wcreate:

wcreate /dispositivo tipo posx posy tamx tamy color_fondo color_fuente color_borde

Donde el tipo de ventana puede ser cualquiera de estos:

255 Ventana que se despliega actualmente
00 Ventana del proceso actual
01 40 x 24 8 colores texto.
02 80 x 24 8 colores texto.
05 640 x 192 2 colores gráficas.
06 320 x 192 4 colores gráficas.
07 640 x 192 4 colores gráficas.
08 320 x 192 16 colores gráficas.

Y los números de los colores son los siguientes:

00 y 08 Blanco
01 y 09 Azul
02 y 10 Negro
03 y 11 Verde
04 y 12 Rojo
05 y 13 Amarillo
06 y 14 Magenta
07 y 15 Cian

Un ejemplo para crear 3 ventanas con una terminal en cada una en una misma pantalla se puede hacer de esta forma:

wcreate /w7 -s=2 0 12 80 12 00 01 00
shell i=/w7&
--> Ahora nos cambiamos de ventana con la tecla inicio
wcreate /w6 -s=0 0 0 40 12 04 05 00
shell i=/w6&
wcreate /w5 -s=0 40 0 40 12 02 03 00
shell i=/w5&

Lo cual fue algo que me dejó con la boca abierta hace 20 años y no me cansaba de aburrir a las visitas enseñandóles como corría 3 programas en BASIC compilado al mismo tiempo. Como se puede adivinar, al igual que en Linux, el & es el separador de comandos es el que permite la ejecución concurrente.

Aquí dejo un vídeo que subí a Youtube para estar a tono de nuevo:

Unos años después tuve mi primera PC y su MS-DOS no podía hacer eso; a lo mucho podía hacer "task switching". ¡Ah! claro, se me olvidaba en la explicación; para eliminar una ventana se usa el comando ex.

Archivo de autoarranque

En NitrOS-9, el archivo que sirve como equivalente al autoexec.bat de MS-DOS se llama startup. Con un editor de texto como EDIT o TS/EDIT podemos hacer todas las modificaciones que queramos. Aunque, como siempre, la recomendación es sacarle un respaldo antes.

Ahora que si es más intrépido, puede modificar el el módulo sysgo con lenguaje ensamblador o C.

{ 0 comments }