Buenas,
estoy intentando acabar un juego en ensamblador para el 464 y estoy justísimo de memoria. La idea es poder generar un código cargable desde cinta, con pantalla de presentación, etc. Entonces,...
tenía pensado hacer un cargador Basic de la pantalla y el código del juego, pero no se cómo conseguiré meterlo todo y la primera pregunta es:
- Cuál es el mínimo de memoria que tengo que reservar para el Basic para poder generar un pequeño cargador basic y que el interprete siga funcionando? Cuando pongo el Memory muy abajo, enseguida me da un Memory full.
- Luego, hasta dónde puedo cargar código en ensamblador sin que deje de funcionar la rutina de carga de cassette?
(Estoy programándolo de momento en Winape, pero no he generado los binarios fuera del ensamblador)
Gracias por vuestra ayuda!!!
Apurado de memoria
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
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
Re: Apurado de memoria
No te preocupes por ello. En tu cargador BASIC, carga primero la pantalla de carga y luego carga el código del juego con RUN"". Al usar RUN"" sobreescribirás el cargador BASIC. Eso sí, el binario del juego deberá incluir la dirección de carga y ejecución en su cabecera.
-
- Lechoncillo
- Mensajes: 4
- Registrado: Mar 09 Abr , 2019 4:57 pm
Re: Apurado de memoria
Gracias! lo probaré...
Una cuestión más, por si sabeis.
En este momento el juego me ocupa en WinApe desde #400 hasta 41.000 aprox. A partir de esa posición tendré una pantalla secundaria para operaciones.
Cuál es el mejor modo de "extraer" el binario del Winape y generar el BIN para cassete? con la memoria tan ocupada podré hacer un SAVE fiable? y si no puedo extraer el binario con el Winape a un fichero windows y generar el audio con alguna utilidad?
Gracias por vuestra ayuda de nuevo!!!
Una cuestión más, por si sabeis.
En este momento el juego me ocupa en WinApe desde #400 hasta 41.000 aprox. A partir de esa posición tendré una pantalla secundaria para operaciones.
Cuál es el mejor modo de "extraer" el binario del Winape y generar el BIN para cassete? con la memoria tan ocupada podré hacer un SAVE fiable? y si no puedo extraer el binario con el Winape a un fichero windows y generar el audio con alguna utilidad?
Gracias por vuestra ayuda de nuevo!!!
Re: Apurado de memoria
Ojo. Lo que te comenta Miguel te funcionará fantástico si después de la pantalla de carga queda solo por ejecutar un fichero.
Si después hay más de uno el problema de esa forma es que fuerza que cargue de cinta, no iría en disco ni admitirá formatos extendidos de disco.
Si tienes que cargar más de un fichero puedes, después de cargar la pantalla desde basic (por ejemplo) puedes hacer un pequeño cargador y mandarlo a &A000
Si después hay más de uno el problema de esa forma es que fuerza que cargue de cinta, no iría en disco ni admitirá formatos extendidos de disco.
Si tienes que cargar más de un fichero puedes, después de cargar la pantalla desde basic (por ejemplo) puedes hacer un pequeño cargador y mandarlo a &A000
Re: Apurado de memoria
CDTMaster incluye una funcionalidad para copiar contenido desde el debugger de WinAPE, quizá esto sea lo que necesitas.Cuál es el mejor modo de "extraer" el binario del Winape y generar el BIN para cassete? con la memoria tan ocupada podré hacer un SAVE fiable? y si no puedo extraer el binario con el Winape a un fichero windows y generar el audio con alguna utilidad?
- ronaldo
- Forum Addict
- Mensajes: 358
- Registrado: Sab 14 Sep , 2013 9:31 pm
- Ubicación: Alicante
- Contactar:
Re: Apurado de memoria
Sí utilizas el firmware para cargar el binario de tu juego en memoria, una vez pones RUN", el control lo toma el código que está en ROM, por lo que no puedes sobreescribirlo, no te preocupes. Lo que sí puedes sobreescribir son las variables que ese código utiliza y que necesariamente se almacenan en RAM. Estas variables se almacenan en la zona de AMSDOS, que está a partir de &A6FC en adelante. Tu programa puedes cargarlo tranquilamente desde &40 hasta &A6FC sin ningún problema. No te preocupes por dejar espacio para el programita en BASIC: lo único que tienes que hacer con el loader en BASIC es que su última instrucción sea el RUN", para que ceda ahí el control al cargador del firmware en ROM y te deje sobreescribir todas estas partes de RAM sin problema alguno.
Puedes consultar más sobre lo que AMSDOS almacena en memoria en la guía del firmware de Amstrad.
Si vas a cargar desde casete, otra opción que tienes es tener tu propio cargador y no utilizar el del firmware. Esto te permite mucha flexibilidad, porque puedes decidir dónde quieres ubicar el código del cargador, olvidarte de toda la zona de AMSDOS y sobreescribirla si quieres, e incluso cargar varios binarios, ejecutar cosas enmedio, descomprimir, etc. Aquí explico un poco más sobre cargadores de casete propios en ensamblador con CPCtelera. También puedes echarle un ojo al código fuente del cargador incluido en CPCtelera, por si te interesa.
Puedes consultar más sobre lo que AMSDOS almacena en memoria en la guía del firmware de Amstrad.
Si vas a cargar desde casete, otra opción que tienes es tener tu propio cargador y no utilizar el del firmware. Esto te permite mucha flexibilidad, porque puedes decidir dónde quieres ubicar el código del cargador, olvidarte de toda la zona de AMSDOS y sobreescribirla si quieres, e incluso cargar varios binarios, ejecutar cosas enmedio, descomprimir, etc. Aquí explico un poco más sobre cargadores de casete propios en ensamblador con CPCtelera. También puedes echarle un ojo al código fuente del cargador incluido en CPCtelera, por si te interesa.
-
- Lechoncillo
- Mensajes: 4
- Registrado: Mar 09 Abr , 2019 4:57 pm
Re: Apurado de memoria
Gracias a todos!
En cuanto pueda lo pruebo. Espero poder finalizarlo pronto y publicarlo.
En cuanto pueda lo pruebo. Espero poder finalizarlo pronto y publicarlo.
¿Quién está conectado?
Usuarios navegando por este Foro: johnlobo
La Comunidad Española |