up este tema! esto del ensamblador para z80 es fascinante, lo bueno que tiene es que no tenemos miedo de que se pase de moda... por que ya lo está
Que maravilla esto del cpctelera, me uno a la marcha a ver que me sale!
CPCtelera, desarrollar juegos para Amstrad de forma sencilla
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
Estoy dándole caña al cpctelera, tengo un par de dudas a ver si alguien me podria ayudar.
- Existe la posibilidad de añadir un archivo binario como un asset dentro del binario que vaya a crear con ensamblador, y que vuelque este asset en la dirección de memoria que le diga? (no quisiera hacerlo con .db pq es un binario grandecillo). Querria hacer algo como load"archivo",&4000 pero desde asm, o incluirlo al hacer el make.
- Como se vuelve a basic si creo un binario con cpctelera? en los vídeos del curso, veo que emplean siempre jr .
- Existe la posibilidad de añadir un archivo binario como un asset dentro del binario que vaya a crear con ensamblador, y que vuelque este asset en la dirección de memoria que le diga? (no quisiera hacerlo con .db pq es un binario grandecillo). Querria hacer algo como load"archivo",&4000 pero desde asm, o incluirlo al hacer el make.
- Como se vuelve a basic si creo un binario con cpctelera? en los vídeos del curso, veo que emplean siempre jr .
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
1- Para importar distintos tipos de ficheros BIN, SCR, ASCII, BAS, etc. en un proyecto ya sea ASM, C o BASIC o mezcla, en un disco DSK, puedes usar la herramienta iDSK que viene en CPCTelera. Aunque mejor te lo cuenta el Profe en su video donde enseña cómo se hace un script "make.sh" personalizado:Estoy dándole caña al cpctelera, tengo un par de dudas a ver si alguien me podria ayudar.
- Existe la posibilidad de añadir un archivo binario como un asset dentro del binario que vaya a crear con ensamblador, y que vuelque este asset en la dirección de memoria que le diga? (no quisiera hacerlo con .db pq es un binario grandecillo). Querria hacer algo como load"archivo",&4000 pero desde asm, o incluirlo al hacer el make.
- Como se vuelve a basic si creo un binario con cpctelera? en los vídeos del curso, veo que emplean siempre jr .
https://www.youtube.com/live/5qsZ1lnEPC ... are&t=1979
2- Si cargas y ejecutas un binario desde el BASIC por ej. mediante CALL &8000, que lleve colocado un RET al final, este volverá al BASIC justo tras el CALL. Esta instrucción funciona del mismo modo en BASIC o ASM, guardando en la pila la dirección de memoria que usará el RET para volver, saltando al punto de ejecución.
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
@MoteroV4: gracias por responder tan rápido
1) Ok! le doy un ojo a ver, he visto como mil vídeos de este hombre
2) Si, bueno el tema es que lo estoy haciendo con cpctelera y quiero sobreescribir un par de líneas a partir de la &0000, y veo que si le meto un ret al final del main.s me devuelve a basic pero me ha sobreescrito lo que yo habia puesto en &0000
1) Ok! le doy un ojo a ver, he visto como mil vídeos de este hombre
2) Si, bueno el tema es que lo estoy haciendo con cpctelera y quiero sobreescribir un par de líneas a partir de la &0000, y veo que si le meto un ret al final del main.s me devuelve a basic pero me ha sobreescrito lo que yo habia puesto en &0000
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
Un placer ayudar en lo que pueda@MoteroV4: gracias por responder tan rápido
1) Ok! le doy un ojo a ver, he visto como mil vídeos de este hombre
2) Si, bueno el tema es que lo estoy haciendo con cpctelera y quiero sobreescribir un par de líneas a partir de la &0000, y veo que si le meto un ret al final del main.s me devuelve a basic pero me ha sobreescrito lo que yo habia puesto en &0000
Según creo entender en el problema que comentas, en principio no pueden comenzar los programas en &0000 porque ahí están las interrupciones, hasta &0040 donde empieza el área BASIC o Área de primer plano inferior de la ROM.
Si no deshabilitas el Firmware porque necesitas volver al BASIC, el sistema operativo puede sobreescribir esas direcciones en el rango &0000-&0170.
Además las líneas de un programa BASIC comienzan en &0170, como pueden ser las del cargador para tu programa BIN. Ese area se limita con la orden MEMORY, fijando su límite superior y a partir de cuya dirección (HIMEM) se puede colocar el binario de manera segura.
También, cuando se carga un archivo con el BASIC/Firm, se abre un buffer de lectura de 2KB temporal, justo por encima de HIMEM (area HIMEM+2048 bytes), bloques que mueve a la dirección de inicio del BIN. Al finalizar todas las cargas de ficheros, HIMEM vuelve a su valor anterior.
La estructura de la memoria la puedes encontrar en el libro "The Amstrad CPC Firmware Guide (Bob Taylor)", pág. 7.
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
ok, muchas gracias
madre mia que nivel teneís aquí, te sabes el libro de memoria?
madre mia que nivel teneís aquí, te sabes el libro de memoria?
Re: CPCtelera, desarrollar juegos para Amstrad de forma sencilla
Jajajaja que va, yo solo soy un novato que empezó en esto del Retro en 2019, con un par de jueguecillos publicados. Eso sí, tengo los libros y apuntes muy a mano por el siguiente proyectook, muchas gracias
madre mia que nivel teneís aquí, te sabes el libro de memoria?
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro
La Comunidad Española |