"Consolización" de un CPC: parcheo de la Basic ROM

Programando el Amstrad en Ensamblador.
Reglas del Foro
Debido a que hay varios temas pidiendo ayuda para programar en ensamblador máquinas distintas al Amstrad CPC, con micro distinto al Z80 y que incluso dependen del sistema operativo, nos vemos en la necesidad de poner por escrito que estos posts son bienvenidos pero que no es el lugar adecuado ya que por estos lares nos dedicamos más al ensamblador del Z80, un microprocesador de 8 bits que tuvo su gran auge en ordenadores y consolas de los años 80.

De todas formas, esto no quita que alguien que sepa del asunto pueda postear alguna respuesta pero es más fácil encontrar foros dedicados a programar en ensamblador en Windows o MS-DOS que ayudarán más que nosotros:
http://www.lawebdelprogramador.com/news ... nsamblador
Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

"Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Mar 25 Jun , 2013 10:47 pm

Muy buenas!

Tengo en mente un proyecto muy parecido al Amstratil de sydaroa pero quitando de en medio el teclado, o lo que es lo mismo: crear una consola \:D/ y de paso aprovechar la idea para mejorar las posibilidades de uso de la GX4000

Peeeero, como siempre, el principal problema es la programación :oops: estoy buscando el código fuente suficientemente comentado de la ROM del Basic pero sólo encuentro este fichero:
http://www.cpctech.org.uk/docs/basic.asm

Y mi nivel no me permite descubrir como parchear esta ROM para lograr que aparezca el famoso mensaje "Press Play then any Key" automáticamente al arrancar la máquina :roll:

Cualquier pista o sugerencia será siempre bien recibida :)

Un saludo.

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 696
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor KaosOverride » Mié 26 Jun , 2013 1:31 am

Que es exactamente lo que quieres hacer. Que la consola cargue de cassete nada mas arrancar? No prefieres usar un 6128 y remplazar la rom basic por la amsdos y que al encender provoque un |cpm? Creo que hay un link en la placa que hace precisamente eso...
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Mié 26 Jun , 2013 3:44 pm

Muy buenas, Kaos!
KaosOverride escribió:Que es exactamente lo que quieres hacer. Que la consola cargue de cassete nada mas arrancar? No prefieres usar un 6128 y remplazar la rom basic por la amsdos y que al encender provoque un |cpm? Creo que hay un link en la placa que hace precisamente eso...


Exacto! lo que comentas del amsdos es un ejemplo perfecto de lo que quiero hacer, salvo que yo necesito que cargue desde cinta, o mejor dicho, desde CD o MP3.

El problema es que al no haber teclado no puedo pulsar CTRL + Intro :? y necesito que se produzca el salto a la ejecución de un RUN" virtual nada más aparecer el READY... me temo que va resultar más complicado que alterar los juegos para que sean controlados con el joy desde el principio #-o

Date cuenta de lo bueno que sería lograrlo, porque la GX4000 podría beneficiarse muy mucho del tema.

Un saludo.

EDIT:
Parece que voy progresando:

Código: Seleccionar todo

CALL &B900
LD HL,&B5A9
JP &C0B4


Con este código logramos el equivalente al comando RUN" desde C.M. (en un CPC6128). Ahora el problema es encontrar dónde colocarlo para que se ejecute justo después del READY :-k

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 696
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor KaosOverride » Jue 27 Jun , 2013 7:59 pm

Hay dos "Ready" en la ROM del BASIC... Un Breackpoint de lectura en la R y a ver donde esta ejecutando. tracea y reemplaza xDDDDD

Igual es mas divertido quitar las librerias del LOGO del AMSDOS, mirar como meten el menu del BASIC/JUEGO de los PLUS y reemplazarlo con un "CINTA/DISCO" o un navegador estilo PSP para ejecutar cosas del disco o cargar cinta xDD ¿¿Creo que te deja pie a casi 8 Ks libres en la ROM?????
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Vie 28 Jun , 2013 12:41 am

KaosOverride escribió:Hay dos "Ready" en la ROM del BASIC... Un Breakpoint de lectura en la R y a ver donde esta ejecutando. tracea y reemplaza xDDDDD

El segundo "ready" es en realidad "already" :)
Pues si, eso acabo de hacer y parece que funciona!
El cutre-parcheo consiste en meter 21,A9,B5,C3,B4,C0 en la posición &C081 (&0081 de la eprom basic 1.1). Con esto conseguimos que aparezca "Press Play then any key" en lugar de "Ready" (desactivando previamente AMSDOS, claro).

Espero que a alguien se le ocurra una solución más elegante :oops:

KaosOverride escribió:Igual es mas divertido quitar las librerias del LOGO del AMSDOS, mirar como meten el menu del BASIC/JUEGO de los PLUS y reemplazarlo con un "CINTA/DISCO" o un navegador estilo PSP para ejecutar cosas del disco o cargar cinta xDD ¿¿Creo que te deja pie a casi 8 Ks libres en la ROM?????

Pues es una idea genial \:D/ pero me temo que es un proyecto que me viene demasiado grande ](*,) de momento me conformo con mi pequeño logro O:)

Un saludo.

Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Jue 04 Jul , 2013 11:24 pm

Mas avances!

Ya he tostado una eprom 27c512 de 64Kbytes con una rom preparada a partir de la especial francesa (la que no tiene Burning Rubber) a la que he incorporado la s3 en vez de la f3 (os v3 del 6128 clásico en castellano) y se ha eliminado el amsdos, aplicando el parche al basic 1.1 para que arranque con el comando run" automáticamente.

¿el resultado? el esperado =D> arranca igual de bien que en los emuladores y al pulsar la tecla pausa o cualquiera del joystick hace desaparacer el cursor, asi que de momento todo va genial \:D/

Ahora toca la segunda fase: enganchar un cable a la patilla 68 del ASIC y fabricar este circuito:
http://www.zxdesign.info/cassette.shtml
y tengo pensado conectar masa y "line in" a las patillas 5 y 9 del puerto de joystick 2... a ver que tal se da [-o<

Un saludo.

Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Lun 20 Ene , 2014 9:16 pm

Huy! se me olvidó dar el toque final a este tema, sorry :oops:

A finales de agosto hice una prueba y no logré cargar nada en la GX4000 con el amplificador de la página mencionada (ni siquiera apareció un triste read error a) y en diciembre me pasó lo mismo con el spectrum harlequín, asi que tuve que hacerme un circuitillo en base a un comparador de tensión LM311, con el que logré cargar juegos en el clon, y ya de paso hice la misma prueba en la GX4000... ¿resultado? ¡espectacular! :mrgreen: debo ser el primero que logra cargar audios en una GX4000 :-({|=

Asi que ya lo sabeis, la GX4000 tiene más posibilidades de lo que se presuponía

Saludos.

Avatar de Usuario
MiguelSky
Lord of Short Time
Lord of Short Time
Mensajes: 5858
Registrado: Sab 08 Oct , 2005 2:02 am
Contactar:

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor MiguelSky » Lun 20 Ene , 2014 11:15 pm

Buen trabajo !! :-({|= Danos más detalles, creo que KaosOverride estará más que interesado :)

KaosOverride
Keeper of The Forum
Keeper of The Forum
Mensajes: 696
Registrado: Vie 27 Feb , 2009 12:21 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor KaosOverride » Mar 21 Ene , 2014 1:06 pm

Mola, de hecho creo que serias el primero en cargar un juego comercial de cpc en una gx4000 sea disco/cinta ya que el no$cart solo va en el 6128plus por tener el 765 fisico.

Que tal se arregla con un OTLA? Y los comprimidos de CngSoft?
--------
Carpeta publica [url=https://mega.nz/#F!W5IyhbLa!51JpgZqvyx6j__v12Pr9QA]MEGA Amstrad[/url]
Carpeta proyecto [url=https://github.com/KaosOverride]GitHub[/url]

Urusergi
Megaforero
Megaforero
Mensajes: 301
Registrado: Sab 25 Feb , 2006 5:45 pm

Re: "Consolización" de un CPC: parcheo de la Basic ROM

Mensajepor Urusergi » Mar 21 Ene , 2014 3:43 pm

KaosOverride escribió:Mola, de hecho creo que serias el primero en cargar un juego comercial de cpc en una gx4000 sea disco/cinta ya que el no$cart solo va en el 6128plus por tener el 765 fisico.

Que tal se arregla con un OTLA? Y los comprimidos de CngSoft?


Pues no se, nunca he usado el OTLA, pero si te puedo decir que el primer juego que cargué fue el Mag Max, que por el sonido debía de estar a 2000 baudios o más (ver. pirata), y cargó perfectamente. También le metí el mega apocalypse y perfecto \:D/
Pero vamos, si tienes algún archivo mp3 no tengo ningún inconveniente en hacer la prueba :wink:

Saludos.


Volver a “Ensamblador”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro

La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD El portal del CPC Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) El sitio del Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic