Apurado de memoria

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
jcsanchez7028
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Mar 09 Abr , 2019 4:57 pm

Apurado de memoria

Mensajepor jcsanchez7028 » Sab 18 May , 2019 3:48 pm

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!!!

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

Re: Apurado de memoria

Mensajepor MiguelSky » Sab 18 May , 2019 4:41 pm

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.

jcsanchez7028
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Mar 09 Abr , 2019 4:57 pm

Re: Apurado de memoria

Mensajepor jcsanchez7028 » Dom 19 May , 2019 10:00 am

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!!!

Poliyo
Keeper of The Forum
Keeper of The Forum
Mensajes: 909
Registrado: Jue 12 May , 2016 10:07 pm
Ubicación: Valencia

Re: Apurado de memoria

Mensajepor Poliyo » Dom 19 May , 2019 10:01 am

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

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

Re: Apurado de memoria

Mensajepor MiguelSky » Dom 19 May , 2019 10:21 am

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?
CDTMaster incluye una funcionalidad para copiar contenido desde el debugger de WinAPE, quizá esto sea lo que necesitas.

Avatar de Usuario
ronaldo
Forum Addict
Forum Addict
Mensajes: 358
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: Apurado de memoria

Mensajepor ronaldo » Dom 19 May , 2019 3:41 pm

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.

jcsanchez7028
Lechoncillo
Lechoncillo
Mensajes: 4
Registrado: Mar 09 Abr , 2019 4:57 pm

Re: Apurado de memoria

Mensajepor jcsanchez7028 » Jue 23 May , 2019 12:53 pm

Gracias a todos!
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
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic