***************************************************************************** Amoric (v1.5): Documentación [2/4] El primer emulador de ORIC-1/Atmos 48K para Amiga © Copyright 1995-96 Jean-François Fabre Traducción al español de Dámaso D. Estévez ***************************************************************************** [Continuación...] La redefinición dinámica es a menudo utilizada (sólo en modo texto) para animar personajes u objetos. En modo 'HIRES', todos los modos de refrescos salvo el Completo ('Total') son equivalentes. ATENCION: Puede usar los ficheros de la ROM del Oric-1 y del Oric Atmos, lo mismo que modificarlos pero sólo para su uso personal. Sin embargo, hay algunas localizaciones que han sido parcheadas después de ser cargadas en memoria por el emulador (cargador de cinta, otros parches...). Modificar estas rutinas supone arriesgarse a que el Oric se bloquee sin razón aparente. -------------------------------=====--------------------------- 5. Arranque: cómo ejecutar Amoric ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Pinche con el puntero sobre el icono de Amoric si desea ejecutarlo desde el WB o teclee AmOric en una ventana CLI/Shell: el programa cargará el fichero ROM que corresponda y el de configuración... si todo va bien, aparecerá la pantalla simulando la visualización del Oric: ajuste los parámetros (preferencias) según su gusto o equipo del que dispone, guárdelos si lo desea y pulse el botón Emular ('Go') para arrancar la emulación. Si pulsa la tecla HELP en cualquier momento de la emulación, aparecerá un recordatorio de las teclas que permiten controlar la emulación (reinicio,...) sobre la pantalla del Oric. La emulación en este momento se habrá detenido (no consumirá tiempo de CPU). Pulsando la tecla F10 abandonará la emulación y el programa. Para elegir una "cinta virtual", pulse F3: aparecerá la pantalla del Workbench y una petición de ficheros para que pueda elegir el fichero que desee. Después de esto, teclee como siempre 'CLOAD ""' desde el emulador: si apareciese el mensaje 'Searching...' ('Buscando...'), podría ser debido a que no ha seleccionado ninguna "cinta" (pulse nuevamente F3 como ya hemos indicado) o que ésta ha llegado al final (en este último caso pulse F7 para 'rebobinarla'). 6. Emulación de los joysticks o palancas de control ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Esta versión de Amoric emula dos tipos de palancas de control, más conocidos como 'joysticks': los que utilizan la interfaz P.A.S.E y los programables. El joystick que utiliza la interfaz P.A.S.E. se conecta en el puerto de impresora del Oric: algunos juegos que los soportan son 'Ultima Zone', 'Pastablasta' o 'Lone Raider'. Pero también hay muchos otros que no lo utilizan lo cual es problemático, sobre todo con juegos que utilizan teclas que no se encuentran en la misma localización en el Amiga que en el Oric original (en 'Zorgon Revenge', en el nivel arcade, X sirve para subir y <- para bajar, pues estas teclas se encuentran una encima de la otra en el Oric-1). Existía igualmente otro tipo de interfaz conectada en el puerto de expansión. Permitía elegir las teclas que el joystick debía simular durante el juego. Esta interfaz es más flexible que la interfaz P.A.S.E. ya que permitía utilizar el joystick en juegos diseñados únicamente para ser manejados desde teclado. Sin embargo, tenía limitaciones: cuando presionaba fuego, otros movimientos del joystick se desconectaban; además, la interfaz era incapaz de reproducir ciertas teclas como Shift, Control y Funct. He probado a simular esta interfaz, pero con la posibilidad de desplazamiento diagonal, y sin interferencia entre el botón de fuego y los desplazamientos (si el juego permite mantener presionadas dos teclas simultáneamente). Es igualmente posible usar las teclas Shift, Control y Funct en los movimientos. Puede elegir las teclas de definición de los joysticks en la ventana de configuración, pinchando con el puntero sobre el botón 'Select...' ('Elija...') en 'JoyType' ('Tipo de joystick'), y presionar el botón 'Define' ('Definir') sobre el joystick elegido (en modo 'Custom', o sea, 'Definible'). Siga a continuación las instrucciones. No podrá ver las teclas que actualmente están definidas (lo siento) y sólo podrá elegir teclas válidas del Oric (por ejemplo, la tecla Help será ignorada). Puede guardar (y recuperar) de disco la configuración de los joysticks. -------------------------------=====--------------------------- 7. Emulación del sonido ~~~~~~~~~~~~~~~~~~~~ He implementado yo mismo un módulo de emulación del chip AY-3-8912; sé que no es perfecto, pero es obra MIA ;-): no se trata de ninguna adaptación de otro(s) programa(s) ya existente(s) (que conste que no estoy criticando a los que prefieren utilizarlos en sus desarrollos... sencillamente tenía necesidad de programarlo yo mismo, a pesar de que pueda ser menos fiel que otros). Esta es la razón por la que aún no es perfecto. Desde la versión 0.9 realmente no ha evolucionado, salvo en la reserva de canales de audio: si está escuchando un módulo con 'DeliTracker' y ejecuta Amoric, el sonido en la emulación no estará disponible al no poder reservarse los canales de audio; por contra, si usted ejecuta Amoric antes de 'DeliTracker', éste último no podrá reproducir el módulo ya que Amoric habrá reservado para sí los canales (realmente DeliTracker no es un buen ejemplo porque roba los canales de audio). A pesar de lo indicado, la emulación de sonido aún se realiza accediendo de forma directa a los chips a medida del Amiga y no a través del dispositivo 'audio.device': muchos programas de sonido funcionan de esta manera y parece no haber ningún problema. Los ruidos aún no están implementados en la emulación, y aún aparecen a veces sonidos indeseables con algunos programas (ZORGONS). Para suprimirlos, pulse dos veces tecla F6 (desconectar sonido y volver a conectarlo). -------------------------------=====--------------------------- 8. Gráficos ~~~~~~~~ Amoric intenta reproducir los gráficos del Oric, sin embargo, debe percatarse de que el sistema de visualización del Oric y del Amiga son ligeramente diferentes. 'Amoric' le permite elegir a la vez el modo y el gestor de video (novedades disponibles desde la versión 1.5) a utilizar. ***** MODO DE PANTALLA ***** Puede elegir un modo de vídeo que corresponda a su configuración: por ejemplo, si usted sólo dispone de un monitor monofrecuencia de 31 KHz (un monitor de 17" típico de PC) puede elegir el modo multibarrido (multiscan) o DoblePal (DblPAL), pudiendo jugar con esta frecuenciac de refresco. Sin embargo, la representación gráfica es más fiel en modo PAL (15 KHz). ***** VIDEO ***** Ahora puede elegir entre un modo de 8 colores por bitplanos (Planar 3: el sistema de base utilizado por el Amiga), de 2 colores también por bitplanos (Planar 1: el más rápido, pero en verde como los antiguos monitores) y un modo de 8 colores utilizando las rutinas de la biblioteca 'graphics.library' (Planar 3: es independiente del hardware). He añadido esta última opción para los poseedores de tarjetas gráficas no desconectables y para los usuarios de estaciones DraCo. Esta opción utiliza las rutinas WritePixel (TrazarPixel) y SetAPen (DefinirLápiz) para una máxima compatibilidad (la velocidad no es muy buena, pero no he podido probarla con una tarjeta gráfica conectada: las donaciones son bienvenidas --añada un multiplexor Zorro II, por favor-- :-)). Sin embargo, en modo texto la velocidad parece correcta. Puede que haga públicos los ficheros fuentes de Amoric en una próxima versión, así que los programadores de tarjetas gráficas/blitters serán seguramente capaces de optimizar mi código. -------------------------------=====--------------------------- 9. Teclado ~~~~~~~ Hay un único mapa de teclado (distribución de las teclas fija), que no depende del definido por el usuario a través de las Preferencias del WorkBench pues se utilizan los códigos RAWKEY para interpretarlas (coincide con la distribución del teclado USA)... esto significa que algunas teclas estarán intercambiadas en el teclado francés (A y Q, M y ;...). Además, hay algunas teclas suplementarias que son utilizadas para controlar ciertos aspectos del emulador: * F1 obliga al emulador a saltar a la rutina NMI --interrupción no enmascarable-- del Oric (el botón negro inalcanzable que estaba bajo el ordenador), * F2 actualiza/refresca completamente la pantalla (útil si hay algún error en el refresco de los modos 'TEXT'/'HIRES'...), * F3 le permite elegir/cambiar la actual "cinta de cassette virtual", * F4 permite reconfigurar el emulador sin tener que abandonarlo y volver a ejecutarlo nuevamente, * F5 tiene el mismo efecto que apagar y volver a encender el Oric, * F6 (des)conecta el sonido de la emulación, * F7 rebobina la "cinta de cassette virtual", * F8 permite memorizar el estado actual del Oric (memoria, registros...) en un área temporal de memoria: esta opción sólo funciona si al arrancar el emulador éste ha podido reservar la memoria necesaria, * F9 permite restarurar un estado anterior del Oric previamente memorizado con la tecla F8, y sólo funciona si se ha pulsado F8 al menos una vez durante la emulación, * F10 le hace retornar al Workbench deteniendo la emulación y abandonando el programa, * la tecla 'Help' muestra una pantalla de ayuda recordándole las teclas que acabamos de mencionar, y además: * la tecla 'FUNCT' del Oric Atmos es emulada por 'AltDcha', * la tecla 'Del' funciona de igual forma que '<-' ('Backspace'), * el teclado numérico separado puede emplearse sin ningún incoveniente, lo mismo que la tecla 'ENTER' en lugar de 'RETURN' (<-| o INTRO), * Caps Lock (retención de mayúsculas) tiene el mismo efecto que CTRL+T en el intérprete de comandos. * Las teclas NumL (bloqueo del teclado numérico ) y ScrL (bloqueo del desplazamiento) situadas ambas en el teclado numérico permiten incrementar/decrementar la frecuencia de refresco de la visualización durante la emulación: puede ser útil con algunos juegos. * PrtSc (volcar pantalla) le permite capturar la visualización actual de AmOric y guardarla en formato IFF-ILBM. Si elige los colores del Oric para el Workbench, podrá elaborar un mosaico con las imágenes capturadas como fondo :-) (yo, personalmente, prefiero la paleta de MagicWB). Nota: Con algunos juegos, por ejemplo "Zorgon's Revenge", las teclas de desplazamiento que usan pueden parecer ilógicas o extrañas: es debido a que la posición de algunas teclas en el Oric no es la misma que en el Amiga. Lo siento muchísimo, pero ¡así es la vida!. Defina las teclas adecuadamente para el joystick programable y juegue con éste. -------------------------------=====--------------------------- 10. Guardando en cinta con la función modificada 'CSAVE': Saving... GAME C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Las rutinas 'CSAVE' y 'CLOAD' son modificadas por AmOric para permitirle guardar/cargar ficheros desde disco flexible/disco duro. La carga es simple: elija una "cinta de cassette virtual", Amoric la cargará en memoria y cuando teclee 'CLOAD ""' desde el emulador, los bytes serán leídos desde la memoria y no desde el fichero en disco. El guardar los datos es más delicado, ya que AmOric debe para ello abrir un fichero en modo de escritura y escribir sobre un disco, por lo que ha de ser prudente, pues todo fichero que no se haya vuelto a cerrar puede significar el forzar a validar el disco después de reiniciar su Amiga (problema harto conocido por todos los usuarios). Cuando usted teclea 'CSAVE "FOO"', un fichero FOO.DAT se crea en el directorio por defecto (Volcados) que se haya definido desde las preferencias. Si el fichero ya existe previamente, un mensaje se mostrará preguntando si se desea sobreescribir el fichero y si la respuesta es negativa 'CSAVE' no hará nada. Si teclea 'CSAVE""', un fichero _NONAME_.DAT se creará, pues no es posible crear un fichero sin nombre bajo AmigaDOS. Pero el nombre Oric quedará vacío (""). Si por cualquier razón el fichero no puede ser creado, AmOric no escribirá nada y los datos no serán guardados (pero el mensaje 'Saving... FOO B' aparecerá igualmente): es como si no hubiese cinta en el magnetófono o como si estuviese protegida la cinta contra escritura. El fichero no se cerrará hasta que: - intente grabar otra "cinta", o, - pulse una tecla de función cualquiera (memorizar estado, ...). Es difícil decidir, en efecto, cuando la operación de grabación ha terminado para cerrar el fichero. Por lo tanto NO reinicie su Amiga mientras la emulación esté activa si está guardando datos en una "cinta virtual" y Amoric no ha podido cerrar el fichero ya que esto le forzaría a validar su disco lo cual aunque no suele ser grave, no es nada divertido, además de llevar su tiempo. Si cierra el fichero mientras el emulador está guardando los datos (pulsando una tecla de función), esto tendrá el mismo efecto que detener el magnetofón. PS : Para acelerar el acceso, en la escritura se emplea una memoria temporal de 1 Kb. -------------------------------=====--------------------------- 11. Sugerencias para el uso de Amoric ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Para mejorar la velocidad, active los cachés y el modo burst del procesador (a partir de 68030+), lo mismo que el modo copyback (con 68040). No empleo las transferencias DMA ni código automodificable para que el caché de dispositivos funcione. Puede redireccionar la tabla de vectores de interrupciones (VBR) a memoria Fast, con herramientas como TUDE de N.O.M.A.D., o SystemPrefs, para mejorar la velocidad en el tratamiento de éstas. - Como no tengo en cuenta los temporizadores del Oric (no los del Amiga) podría tener algún problema en la reacción del teclado en equipos lentos como el A1200 básico (el problema aparece si la tecla se liberase antes de que la rutina ROM del Oric la compruebe, perdiéndose algunas pulsaciones). La solución es mantener pulsada las teclas un tiempo mayor. - No promocione la pantalla del Oric con NewMode: utilice el propio emulador para elegir el modo de pantalla. El uso de Newmode puede producir bloqueos en algunos casos. - Si dispone de un monitor multisíncrono, puede emplear un modo de pantalla como el DoblePAL en baja resolución. Se mejorará el refresco de pantalla y como efecto secundario (aunque parezca extraño) el sonido mejorará en los tonos agudos, debido a un acoplamiento entre el audio y el video DMA. - Con el fin de no dejar ficheros abiertos en modo escritura demasiado tiempo, cuando vea que el Oric ha terminado dicha operación de escritura, pulse simplemente una de las teclas de función (incluso la tecla HELP): ésto cerrará el fichero (pero no lo haga mientras esté guardando datos, ya que esto detendrá el "magnetofón"... virtual). - No elija como teclas de activación para sus comodidades, una secuencia como Ctrl+T o Ctrl+C. Amoric no recibiría estos códigos y no podría usted disponer de las funciones Break (detener el programa) o CAPS ON/OFF (activar/desactivar mayúsculas). 12. Importar desde cintas de cassette para Oric ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Este es el meollo de la cuestión: ¿cómo recuperar programas que originalmente se encuentran almacenados en cintas (cassettes) de audio? * En el Oric, el 6522 y la ROM se ocupan de enviar y recibir ese chirriante sonido (señal de 2.400 baudios). Esta maldita señal es el medio más fácil de interconectar los ordenadores de hoy y el Oric (leer los microdiscos del Oric es demasiado complejo de emular para mi, no entra en mis planes y además no tengo ni una Jasmin ni una unidad de Microdiscos). Aunque no tengo nigún conocimiento de electrónica, lo que sí es obvio es que los discos del Oric originalmente son de 3" (aunque también se le pudiera conectar unidades de 3½") y no hay forma humanamente posible para que sean leidos por la unidades de discos de un Amiga o de un PC (3½" o 5¼"). Además tampoco hay demasiada documentación sobre su formato: las unidades de C64 están mejor documentadas y por ello se ha desarrollado gran cantidad de interfaces para el Amiga (paquete A64,...). * Creo que el Oric posee una interface RS-232, pero no me voy a romper la cabeza programando un protocolo de transferencia Amiga-Oric: sería el método de transferir los datos más seguro, aunque tendría que llevar su Oric a todas partes (y no me parece muy conveniente). * Boris y yo, buscamos y hemos encontrado una solución mejor (nos concentramos en la grabación de cintas de audio): en cualquier ordenador, es fácil digitalizar/muestrear sonidos si dispone de suficiente memoria y/o espacio en el disco duro (para est operación los necesitará). En primer lugar, tiene que muestrear sus cintas de cassette a frecuencia elevada (22050 KHz al menos) en formato .lo8 (sin cabecera, 8 bits sin signo: rango de 0 a 255). Después de esto utilice el programa 'Transf', escrito por Boris GRANVEAUD e incluido en este paquete (el programa no tiene una interfaz demasiado elaborada ya que ha sido portado directamente desde UNIX y seguramente no será utilizado muy a menudo): su sintaxis es... > transf fichero.lo8 GAME.DAT [Continúa...]