Otros sitios...

Búsqueda

Antispam

Reviviendo MS-DOS 6.22 con QEMU

June 30th, 2008 by Jorge Machin

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 descomprir 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 instalaremsos 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 imagenes de los diskettes de una computadora que tuvé. 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 imagenes 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 compatiples 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 executable 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

Posteado en Emuladores, Fedora, Linux, Videojuegos | No hay comentarios »

Tip corto: Convertir archivos OpenXML a versiones anteriores

June 28th, 2008 by Jorge Machin

Para convertir archivos .docx, .xlsx y .pptx a versiones anteriores, una soloción es instalar en Windows, el paquete de compatibilidad de Office. Se puede bajar de la siguiente URL que no requiere ninguna validación:

http://office.microsoft.com/en-us/products/HA101686761033.aspx

No es necesario tener instalado Office. Si quiere ver los archivos es necesario tener instalado los visores correspondientes.

Posteado en Tip corto, Windows | No hay comentarios »

Programación de aplicaciones NitrOS-9 en ensamblador

June 26th, 2008 by Jorge Machin

Muchas de las primeras máquinas de 8 bits de antaño e incluso sistemas embebidos, rutinas de criptografía o de mátematicas de la actualidad se programan en lenguaje ensamblador para sacar la máxima velocidad a los microprocesadores.

Obviamente al ser de bajo nivel es un lenguaje muy talachudo en el que uno debe ser muy ordenado y tener en la mente muy claro lo que se está haciendo. No he tenido la oportunidad de utilizarlo profesionalmente desde que no programo microcontroladores pero de vez en cuando leo, modifico o hago algunos scripts para mi vieja computadora de 8 bits; ya sea para su sistema operativo NitrOS-9 o en el mismísimo DECB.

Programa "Hello World"

Mi primer programa en ensamblador del microprocesador 6809 en NitrOS-9 fue el clásico "Hello World":

* Program hello

              nam    hello

* Add OS-9 definitions

              ifp1
              use /dd/defs/defsfile
              endc

tylg          set    Prgrm+Objct
atry          set    ReEnt+rev
rev           set    $01
edition       set    $01

              mod    eom,name,tylg,atrv,start,size

              org    0
              rmb    450
size          equ    .

name          fcs    /hello/
              tcb    edition

* Text to output:

hello         fcc    "Hello World!"
crtn          fcb    C$CR
heLen         equ    *-hello

* Program start

start         lda    #1            send to stdout
              leax   >hello,pcr    address of the data to write
              ldy    #heLen        number of bytes to write
              os9    I$WritLn

* Program exit

              clrb                  no errors
 end          os9       F$Exit      terminate

              emod
              equ       *
              end

El cual se compila con el siguiente comando:

asm hello.asm -o #16k

Como se puede ver en el código, al igual que muchos sistemas operativos como el MS-DOS, mucha de su programación consiste en llamar rutinas (os9) del sistema operativo, llamadas al BIOS o interrupciones del microprocesador, por lo que la programación puede llegar a ser menos complicada de lo que parece.

Técnicas especiales

Al programar en ensamblador en NitrOS-9, se debe siempre escribir código independiente de la posición porque el sistema operativo asigna las direcciones dependiendo de la memoria disponible. Esto se hace utilizando los comandos BRA, LBRA, BSR y LBSR. Para obtener las direcciones de constantes y tablas, se debe usar instrucciones LEA en lugar de las instrucciones inmediatas LD.

Para saber más...

La documentación con las especificaciones de las llamada al sistema, las podemos encontrar en el manual OS-9 Technical Information y la información sobre el uso del ensamblador esta disponible en el manual OS-9 Program development.

Posteado en Color Computer | No hay comentarios »

Servicio a la comunidad: Interalia solicita programador(a)

June 25th, 2008 by Jorge Machin

Paso tal cual la nota del anuncio:

Interalia solicita programador(a)

Sexo: Indistinto

Escolaridad: Pasante o recién egresado de Ing/Lic. Sistemas Computacionales, Licenciatura en Informática, Cibernética, Matemáticas aplicadas o afin.

Conocimientos en programación: Manejo de lenguajes: C/C++, PHP, JSP, Java

Experiencia: Experiencia de dos años en alguno de los lenguajes mencionados.

Habilidades: Manejo de lenguajes de programación y arquitectura cliente-servidor

Inglés: Mínimo 80% (Se aplicará entrevista en inglés)

Características:

- Muy organizado
- Amplio sentido de responsabilidad
- Acostumbrado a trabajar por objetivos y bajo presión
- Disponibilidad inmediata

Horario: Tiempo completo, de Lunes a Viernes de 9:00 a 19:00 hrs.

Zona de trabajo: México D.F., Col San Miguel Chapultepec.

Ofrecen:

Sueldo según aptitudes
Buen ambiente de trabajo

Enviar currículum a rechumanos@interalia.net

Posteado en Servicio a la comunidad | No hay comentarios »

Servicio a la comunidad: Cómo terminar The Call of Cthulhu

June 15th, 2008 by Jorge Machin

Este post rompe un poco con la filosofía inicial de tratar sólo temas personales en mi página, pero debido a que se ha vuelto algo recurrente que me pidan que resuelva algunos tópicos especificos con temas mencionados en esta página; he decido agregar una nueva categoría: Servicio a la comunidad.

Inaguramos con el tema más preguntado:

¿Cómo terminar el juego The Call of Cthulhu?

Este juego de terror es algo díficil de terminar por varias razones: algunos de los acertijos son realmente díficiles, se necesita habilidad en el shooter, no hay muchos checkpoints, el juego es algo largo y tiene unos cuantos bugs.


¿En que parte salió esto?

Afortunadamente toda la ayuda esta alla fuera en la red:

Usando un parche

Existe un parchesque modifica el juego para hacerlo más llevadero; como por ejemplo poder guardar cuando se quiera, hacer que las armas causen más daño e incluso corrige algunos que otro bug:

- Parche de Digital ArchAngel

Guías escritas

Ahora que si quieres saber como resolver algún acertijo puedes consultar una de las muchas guías que existen en la red:

- Paseo (Walkthrough) por Simalcrum

Videos en Youtube

Si una imagen vale más que mil palabras, con un video paso a paso es imposible no terminar el juego:

- Paseo paso a paso por goTha83

Advertencia: Aún no sabemos si Internet va ser eterno, pero estoy seguro que sus enlaces no, por lo que no dudo que después de un tiempo las ligas que puse en este post tarde o temprano dejen de funcionar.

Posteado en Servicio a la comunidad, Videojuegos | No hay comentarios »

« Anteriores