• Amstrad o MSX

    From Armando Perez@2:343/107.20 to Jon Cortazar on Tue Nov 26 09:29:22 2013

    *** Respondiendo un mensaje publicado en el area ESP.MSX (ESP.MSX).

    ¡Hola Jon!

    El 25 Nov 13 a las 15:30, Jon Cortazar le decía a Armando Perez:

    Hablando del CPC464 (el modelo base), digamos que posee 64KBs de RAM (desde #0000 a #FFFF). En el caso de IOTZM, que no usaba el firmware,
    el programa empezaba en #0100 (el firmware reside en la ROM baja, que
    se página entre #0000 y #3FFF).

    Por lo que, entiendo, hay un registro para selecionar memoria/ROM, verdad?

    Lo que no me queda claro (y ayer estuve mirando bastante documentación) es como
    "cargas" tu juego.

    Porque si me dices que está en #100 (no podrías usar desde #0000 y te parcheas los RST y la KEYINT?) y el firmware está en las dos primeras páginas (#0000-#3FFF) de alguna manera tienes que depositar ahí tu código, no?

    En cuanto a la pantalla, por defecto la memoria de video empieza en
    #C000,

    Si. Y he visto que se puede poner en cualquiera de las otras 3 páginas. Vamos que puedes configurar los bits altos. ;)

    así que es buena idea poner la pila allí, justo antes de que
    comience la pantalla.

    Si, ahí será el F380 de turno. :)

    Las resoluciones de pantalla estandar son
    160x200 16 colores (mode 0), 320x200 4 colores (mode 1) y 640x200 2 colores (mode 2), todos a escoger de una paleta de 27 (aunque puedes cambiar el tamaño en ancho de la pantalla).

    También lo he visto, gracias.

    Ah, y otra curiosidad es que en el CPC el modo de interrupciones 1 del
    z80 es totalmente funcional, pero las interrupciones se producen 6
    veces por cada refresco de pantalla (la pantalla internamente tiene un alto de 312, así que se produce una interrupción cada 52 líneas).

    Suena interesante para los amantes del PSG. Se pueden sacar ADSRs majas gracias
    a eso. :)

    En fin, que al final me he ido del tema. Pero vamos, al menos esa
    sería un poco el mapa de memoria (a lo bestia y sin entrar en
    detalles).

    Me gustaría que entrases un poco. :) Me interesa el tema del "cargador" y el formato del binario, etc... :)



    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)
  • From Jon Cortazar@2:343/107 to Armando Perez on Tue Nov 26 19:11:02 2013
    Buenas, Armando!

    Me gustaría que entrases un poco. :) Me interesa el tema del "cargador" y el formato del binario, etc... :)

    Lo cierto es que poco te voy a poder ayudar, voy a hablar un poco a lo burro, porque mi conocimiento acerca del CPC es bastante limitado. En su momentó conté
    con mucha ayuda al respecto, y yo solo me dediqué a programar: digamos que es como tu rutina de selección de slots y subslots, que no me detengo a entenderla, la uso y ya... XD

    Lo que si tiene el CPC que me dejó alucinado fue el WinAPE: es un emulador/ensamblador/debugger todo en uno *fantástico*, con una ventana de edición de texto donde puedes tener varios archivos (tus includes) abiertos en pestañas, que modificas y de la misma compilas y ejecutas en el propio emulador. Como herramienta de desarrollo es alucinante, y te aconsejaría que le
    echaras un ojo. Es la única herramienta que utilicé para portar Invasion of the
    Zombie Monsters: bueno, esa y un conversor de gráficos de Augusto Ruiz (Img2CPC) para convertir mis archivos PNG al formato deseado.

    Incluso una vez tenía el binario rulando en el emulador (digamos, en una especie de "snapshot"), fueron después David Donaire y Augusto quienes se encargaron de cogerlo y generar las distribuciones en cassette y dsk a partir de mi binario. Es que en CPC he recibido mucha ayuda, como cuando me lancé al ZX Spectrum, que sin Javi Peña que me explicó como funcionaba todo y me ayudó con partes del código básicas, no hubiera podido hacer nada.

    Es decir, que dispongo de la información en plan mascada que me han pasado otros, pero no creo ser el adecuado para dar lecciones de CPC (ojo, me pasa lo mismo con el MSX y con el Spectrum XD). A mi lo que me gusta es diseñar, crear el juego, y hacer los gráficos: lo de programar es circustancial, una vez tengo
    todo hecho.

    A lo que voy es que tengo rutinas para inicializar el modo de la pantalla, ajustar las columnas, cambiar la paleta, controlar las interrupciones, etc... de hecho, por ejemplo, te comenté en otro mensaje que la pila la inicializaba cerca de los datos de pantalla, y revisando el código de IOTZM no es cierto: lo
    que hago es ponerla en la zona baja de memoria:


    ; IOTZM de RELEVO Videogames (AMSTRAD CPC)

    nolist ; directiva WinAPE, no mostrar líneas de código al compilar run GAME_START; directiva WinAPE, tras compilar, empezar a emular desde ahí.

    ; write "iotzm.bin" ; directiva WinAPE escribir como binario
    org #0100
    GAME_START:
    di
    ld sp,#00FF
    ...


    A partir de ahí, limpiar la zona de RAM, ajustar la pantalla y los colores con los parámetros que queramos, poner el replayer en las interrupciones y empezar con el programa.

    En fin, que si quieres comparto lo que tengo contigo ;-), pero no esperes clases maestras de CPC, ya que no puedo darlas, ni de CPC ni de ninguna máquina
    de 8 bits me temo ;-)

    Un saludo! Y un saludo a toda la gente del grupo! Jon



    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Armando Perez@2:343/107.20 to Jon Cortazar on Wed Nov 27 09:31:26 2013
    ¡Hola Jon!

    El 26 Nov 13 a las 19:11, Jon Cortazar le decía a Armando Perez:

    Lo cierto es que poco te voy a poder ayudar, voy a hablar un poco a lo burro,

    No puede ser. :) Has sacado a la venta un juego!!! xDD Algo tienes que saber!

    porque mi conocimiento acerca del CPC es bastante limitado.

    Mayor que el mío, seguro. ;)

    En
    su momentó conté con mucha ayuda al respecto, y yo solo me dediqué a programar: digamos que es como tu rutina de selección de slots y
    subslots, que no me detengo a entenderla, la uso y ya... XD

    Que lujo! La verdad es que está bien, si no te gusta trastear, dedicarte solo a
    lo importante. Pero es que yo no puedo funcionar así: Necesito saber cómo funciona la máquina antes de abordar cualquier proyecto. ;) Y estoy totalmente perdido con el AMSTRAD. Algunas cosas no me cuadran, no las entiendo.

    Lo que si tiene el CPC que me dejó alucinado fue el WinAPE: es un emulador/ensamblador/debugger todo en uno *fantástico*, con una
    ventana de edición de texto donde puedes tener varios archivos (tus includes) abiertos en pestañas, que modificas y de la misma compilas y ejecutas en el propio emulador. Como herramienta de desarrollo es alucinante, y te aconsejaría que le echaras un ojo.

    Lo miraré, pero es que no uso Windows, tiro de OS X. :/ He visto que hay buenos
    emuladores (o por lo menos que cuentan con debugger) para Win. Para OS X nada, el del bannister (que tiene emulador de todo lo emulable xD).

    Tampoco soy de IDEs. Intento evitarlos. Cuando llevas (hablo ya en general) mil
    años programando te das cuenta que es perder el tiempo acostumbrarte a un IDE ya que en unos años todo cambiará y tendrás que ir a otro: vi + makefile y a correr. :) Lo se, no es el caso.

    Y entiendo que esa herramienta es una manera de "acercar" a los desarrolladores
    al AMSTRAD. Es buena idea.


    Es la única
    herramienta que utilicé para portar Invasion of the Zombie Monsters: bueno, esa y un conversor de gráficos de Augusto Ruiz (Img2CPC) para convertir mis archivos PNG al formato deseado.

    Entonces comprendo que no tengas demasiados datos técnicos.

    Incluso una vez tenía el binario rulando en el emulador (digamos, en
    una especie de "snapshot"),

    Si. He visto que los .SNA también funcionan en muchos emuladores. No se si el formato será igual que en Speccy. Usando .SNA (generado por mis propias herramientas) es como hice Maji en Speccy. Pero, vamos, también me generé yo al
    final el TAP y demás. Ya te digo: necesito saber como van las cosas. XD

    fueron después David Donaire y Augusto
    quienes se encargaron de cogerlo y generar las distribuciones en
    cassette y dsk a partir de mi binario. Es que en CPC he recibido mucha ayuda, como cuando me lancé al ZX Spectrum, que sin Javi Peña que me explicó como funcionaba todo y me ayudó con partes del código básicas,
    no hubiera podido hacer nada.

    Entiendo. Pues diles que te informen y me lo chivas! XDD

    Es decir, que dispongo de la información en plan mascada que me han
    pasado otros, pero no creo ser el adecuado para dar lecciones de CPC

    Si no quiero lecciones. :) Solo dudas concretas que al final son como funciona el hardware + firmware. Es lo que me pierde un poco.

    (ojo, me pasa lo mismo con el MSX y con el Spectrum XD). A mi lo que
    me gusta es diseñar, crear el juego, y hacer los gráficos: lo de
    programar es circustancial, una vez tengo todo hecho.

    Todo lo contrario de lo que hago yo que es programar y entender el hard. ;)

    A lo que voy es que tengo rutinas para inicializar el modo de la
    pantalla, ajustar las columnas, cambiar la paleta, controlar las interrupciones, etc...

    Eso no me preocupa tanto. Más o menos he visto ya como hacerlo. Hay bastantes ejemplos.

    de hecho, por ejemplo, te comenté en otro
    mensaje que la pila la inicializaba cerca de los datos de pantalla, y revisando el código de IOTZM no es cierto: lo que hago es ponerla en
    la zona baja de memoria:

    Pues ahora te cuento.

    org #0100
    GAME_START:
    di
    ld sp,#00FF
    ...

    Creo que deberías de ponerla en #100. Estás perdiendo un precioso byte. XD

    La verdad es que normalmente con 256 bytes (ya que si te pasa de #0000 se te meterá en la pantalla) tienes de sobra. Pero ojo! Que tienes el gancho de KEYINT por medio. Es decir que la zona de pila utilizable es #100 - #3A bytes. De sobra insisto, siendo ASM. Si fuese un lenguaje tipo C que pase parametros en pila y demás, podría ser peligroso.

    A partir de ahí, limpiar la zona de RAM, ajustar la pantalla y los
    colores con los parámetros que queramos, poner el replayer en las interrupciones y empezar con el programa.

    Si. Lo habitual. Pero todo eso, ya te digo, más o menos lo tengo claro. He visto bastante info aquí:

    http://www.cpcmania.com

    Y en la wiki:

    http://cpcwiki.eu/index.php/Main_Page


    En fin, que si quieres comparto lo que tengo contigo ;-), pero no
    esperes clases maestras de CPC, ya que no puedo darlas, ni de CPC ni
    de ninguna máquina de 8 bits me temo ;-)

    Pues realmente mis dudas son otras, a ver si las puedes averiguar:

    - Como cargar un binario. O de disco. O el formato del mismo (si tiene direccion de inicio, final, ejecución).

    - Como está posicionada la ROM/RAM cuando cargas ese binario. Es decir: Cuando estás en el sistema operativo (BASIC).

    En resumen: ¿donde pongo el ORG? ¿Como cargo eso? ¿Lo hace solo? XD

    Es que viendo tu código y muchos otros veo que todos tratan como que la memoria
    ya está posicionada desde #0000 en adelante, como si no hubiese ROM. Y luego utilizan rutinas que están por "arriba" (#Bxxxx) para cambiar paleta, inicializar el modo, etc...

    Me pierdooooo!!! XDDD

    En cualquier caso, gracias por la info, Jon!

    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)
  • From Jose Angel Morente@2:343/107 to Armando Perez on Wed Nov 27 11:00:38 2013
    Armando wrote:

    su momentó conté con mucha ayuda al respecto, y yo solo me dediqué a
    programar: digamos que es como tu rutina de selección de slots y
    subslots, que no me detengo a entenderla, la uso y ya... XD

    Que lujo! La verdad es que está bien, si no te gusta trastear, dedicarte solo
    lo importante. Pero es que yo no puedo funcionar así: Necesito saber cómo

    A mí me pasa igual. No soporto que me den hecho nada, me siento agobiado si hay
    alguna parte de mi código que no controlo. A veces en el trabajo he usado librerías o funciones de terceros, pero antes las he destripado y normalmente modificado a mi antojo antes que usarlas al estilo "blackbox".

    includes) abiertos en pestañas, que modificas y de la misma compilas y
    ejecutas en el propio emulador. Como herramienta de desarrollo es
    alucinante, y te aconsejaría que le echaras un ojo.

    Lo miraré, pero es que no uso Windows, tiro de OS X. :/ He visto que hay bueno >emuladores (o por lo menos que cuentan con debugger) para Win. Para OS X nada,
    el del bannister (que tiene emulador de todo lo emulable xD).

    ¿Y recompilando alguno de Linux o usando Wine?

    Tampoco soy de IDEs. Intento evitarlos. Cuando llevas (hablo ya en general) mi
    años programando te das cuenta que es perder el tiempo acostumbrarte a un IDE ya que en unos años todo cambiará y tendrás que ir a otro: vi + makefile y a correr. :) Lo se, no es el caso.

    A mí me gustan ciertos IDEs, siempre y cuando:

    -Sean eficientes
    -El proyecto sea agnóstico del IDE (cosa que no pasa por ejemplo con Eclipse) -Permitan adaptarlos a mi forma de trabajar, y que no tenga yo que adaptar mi forma de trabajar al IDE.

    Pero en 8bits esa idea del ide+emu de CPC me ha gustado mucho, es muy práctica.

    GAME_START:
    di
    ld sp,#00FF
    ...
    Creo que deberías de ponerla en #100. Estás perdiendo un precioso byte. XD
    La verdad es que normalmente con 256 bytes (ya que si te pasa de #0000 se te meterá en la pantalla) tienes de sobra. Pero ojo! Que tienes el gancho de

    A mí me da un poco de pánico esto... ¿no es fácil colarse en el #0038-#003A? Especialmente si tienes alguna rutina con algo de IA. Tampoco sé si el CPC tiene soporte NMI en cuyo caso ya no se podría bajar de
    #0066-#0068.

    ¿Lo de tomar como punto de partida #0100 es por costumbre CP/Mera?

    De sobra insisto, siendo ASM. Si fuese un lenguaje tipo C que pase parametros en pila y demás, podría ser peligroso.

    Cuidado si usas alguna rutina recursiva... en arcade son poco frecuentes, pero en juegos como la Abadía son la base.

    Pues realmente mis dudas son otras, a ver si las puedes averiguar:
    - Como cargar un binario. O de disco. O el formato del mismo (si tiene

    Si es de disco es CP/M puro y duro. O sea, igual que si fuese MSX-DOS. La cuestión es cómo hacerlo de cinta (y cómo invocar BIOS y demases).

    Saludos.

    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Armando Perez@2:343/107.20 to Jose Angel Morente on Wed Nov 27 11:24:10 2013
    ¡Hola Jose!

    El 27 Nov 13 a las 11:00, Jose Angel Morente le decía a Armando Perez:

    A mí me pasa igual. No soporto que me den hecho nada, me siento
    agobiado si hay alguna parte de mi código que no controlo.

    Eso es.

    A veces en
    el trabajo he usado librerías o funciones de terceros, pero antes las
    he destripado y normalmente modificado a mi antojo antes que usarlas
    al estilo "blackbox".

    A tanto no llego. En 8 bits si, me gusta. Es factible además. En otros sistemas
    se me escapa. No puedo programar en iOS y saber como va todo el OS. Es imposible. No puedo ponerme a ver como está hecha "foundation" por ejemplo. Me basta con saber cómo funciona, a grandes rasgos, el sistema y las app.

    Pero en 8 bits se me hace totalmente necesario.

    Win. Para OS X nada, el del bannister (que tiene emulador de todo lo
    emulable xD).

    ¿Y recompilando alguno de Linux o usando Wine?

    No se si hay para linux. Y el wine... pues no. xD No es problemático. Con tener
    uno que funcione más o menos (el de bannister) y que me permita cambiar el color del borde, como hemos hecho toda la vida para "marcarnos" cosas, me sobra. :) Lo del debugger es para señoritos. xDDDD (es broma, es una tool importántisima que aumenta la productividad).

    A mí me gustan ciertos IDEs, siempre y cuando:

    -Sean eficientes
    -El proyecto sea agnóstico del IDE (cosa que no pasa por ejemplo con Eclipse) -Permitan adaptarlos a mi forma de trabajar, y que no tenga
    yo que adaptar mi forma de trabajar al IDE.

    Es que el Eclipse es como una patada en los huevos. Mas o menos. Malo, lento, ineficiente, difícil, oscuro... Lo tiene todo. Y en PUTO JAVA! Es MALISIMO.

    El único IDE que uso, y un poco por fuerza, es Xcode. Pero hijo mio... que diferencia con el Eclipse: rapido, limpio, manejable... uff... lo tiene todo.


    Pero en 8bits esa idea del ide+emu de CPC me ha gustado mucho, es muy práctica.

    Si. Eso decía. Que para acercar al "desarrollador externo" al AMSTRAD es fantástico.

    pasa de #0000 se te meterá en la pantalla) tienes de sobra. Pero
    ojo! Que tienes el gancho de

    A mí me da un poco de pánico esto... ¿no es fácil colarse en el #0038-#003A?

    No. Que va que va. No llegas ni de coña. Con un juego "normal" te sobra pila por todas partes. En un bucle puedes hacer como mucho unas 8 o 10 entradas en la misma. Piénsalo. ;) (CALL que llama a CALL que llama CALL más unos cuantos
    PUSH)

    Especialmente si tienes alguna rutina con algo de IA.

    Es que creo que ni así, pero ya peligra, si.

    Tampoco sé si el CPC tiene soporte NMI en cuyo caso ya no se podría
    bajar de #0066-#0068.

    Eso si que no lo se.


    ¿Lo de tomar como punto de partida #0100 es por costumbre CP/Mera?

    Es que es lo que me intriga. Parece "muy" CP/M pero sin embargo... no lo es! Poruqe viendo el juego de Jon en disco no cargan "antes" el CP/M. Carga directo, como un binario normal desde el BASIC.

    Entonces "entiendo" que posiciona la RAM en esa parte #0000-3FFF y que se parchea KEYINT. Pero ... ¿la NMI no? :S

    A lo mejor el sistema deja esa zona #0000-#0FF con sus propias rutinas o algo, no?

    Porque si no yo que haría serái hacerme con TODOs los RST para mi. Me pondría las rutinas básicas que se usan mil veces (HL = HL + A, LD HL,(HL), etc..).

    Cuidado si usas alguna rutina recursiva... en arcade son poco
    frecuentes, pero en juegos como la Abadía son la base.

    Eso comentaba. Que podría ser poca pila para "segun que cosas".

    Pues realmente mis dudas son otras, a ver si las puedes averiguar:
    - Como cargar un binario. O de disco. O el formato del mismo (si
    tiene

    Si es de disco es CP/M puro y duro. O sea, igual que si fuese MSX-DOS.

    No no... que va. xD Que te digo yo que no cargan el CP/M antes y ejecutan "un bat". Es como desde el DISK-BASIC del MSX, para entendernos.

    La cuestión es cómo hacerlo de cinta (y cómo invocar BIOS y demases).

    Eso es lo más cojonudo. Jon... ¿cómo pones el modo 0 y la paleta? Lo haces con las rutinas de #Bxxx (que he visto por ahi)? Es que si estas llamando a eso desde tu programa en #100 ... ¿ande puñetas está la ROM puesta? Imagino que lo hará a "pincho" accediendo al hierro. Algo que mola mil ya que el AMS lo permite. :) (puertos fijos, no hay expansiones, no hay ampliaciones... :D).


    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)
  • From Jose Angel Morente@2:343/107 to Armando Perez on Wed Nov 27 12:15:48 2013
    Armando wrote:

    A mí me pasa igual. No soporto que me den hecho nada, me siento
    el trabajo he usado librerías o funciones de terceros, pero antes las
    he destripado y normalmente modificado a mi antojo antes que usarlas
    al estilo "blackbox".
    A tanto no llego. En 8 bits si, me gusta. Es factible además. En otros sistema
    se me escapa. No puedo programar en iOS y saber como va todo el OS. Es

    Hombre, si son librerías del propio sdk del iOS no, como tampoco suelo destripar las rutinas de la BIOS del MSX. Pero si tomo prestadas librerías de un tercer desarrollador sí que me gusta chafardearlas.

    Win. Para OS X nada, el del bannister (que tiene emulador de todo lo
    emulable xD).
    ¿Y recompilando alguno de Linux o usando Wine?
    No se si hay para linux. Y el wine... pues no. xD No es problemático. Con tene

    Para Linux está el propio CPCemu, y seguro que habrá más.

    uno que funcione más o menos (el de bannister) y que me permita cambiar el color del borde, como hemos hecho toda la vida para "marcarnos" cosas, me sobra. :) Lo del debugger es para señoritos. xDDDD (es broma, es una tool importántisima que aumenta la productividad).

    Ya te digo...

    Es que el Eclipse es como una patada en los huevos. Mas o menos. Malo, lento, ineficiente, difícil, oscuro... Lo tiene todo. Y en PUTO JAVA! Es MALISIMO. El único IDE que uso, y un poco por fuerza, es Xcode. Pero hijo mio... que diferencia con el Eclipse: rapido, limpio, manejable... uff... lo tiene todo.

    Cierto es.
    Yo uso Netbeans para algunas cosas, que no cumple el primer punto que he dicho (la eficiencia) pero sí cumple los otros dos, especialmente que el proyecto no te lo "estropea", y tal cuál lo puedes compilar a mano sin tener que reconfigurar nada. Y por supuesto es fácil e intuitivo, lo que no caracteriza precisamente al Eclipse.

    pasa de #0000 se te meterá en la pantalla) tienes de sobra. Pero
    ojo! Que tienes el gancho de
    A mí me da un poco de pánico esto... ¿no es fácil colarse en el
    #0038-#003A?

    No. Que va que va. No llegas ni de coña. Con un juego "normal" te sobra pila por todas partes. En un bucle puedes hacer como mucho unas 8 o 10 entradas en
    la misma. Piénsalo. ;) (CALL que llama a CALL que llama CALL más unos cuanto
    PUSH)

    Hostia, pues yo recuerdo haber hecho trazados de pila de juegos de MSX y te aseguro que se cuelan mucho más... claro que seguramente serían juegos más tochos, tipo SD Snatcher.

    Poruqe viendo el juego de Jon en disco no cargan "antes" el CP/M. Carga directo, como un binario normal desde el BASIC.
    Entonces "entiendo" que posiciona la RAM en esa parte #0000-3FFF y que se parchea KEYINT. Pero ... ¿la NMI no? :S

    Igual la NMI no está conectada, como pasa en MSX.

    A lo mejor el sistema deja esa zona #0000-#0FF con sus propias rutinas o algo,
    no?

    En el caso de CP/M ya sabes que así es. Rutinas propias, área de recogida de parámetros, etc.

    Porque si no yo que haría serái hacerme con TODOs los RST para mi. Me pondría las rutinas básicas que se usan mil veces (HL = HL + A, LD HL,(HL), etc..).

    La Coleco tiene eso resuelto de puta madre: todos los RST saltan a zonas definidas previamente en la cabecera del cartucho para que la propia ROM ya contenga las rutinas RST predefinidas para dicho juego.

    Pues realmente mis dudas son otras, a ver si las puedes averiguar:
    - Como cargar un binario. O de disco. O el formato del mismo (si
    tiene
    Si es de disco es CP/M puro y duro. O sea, igual que si fuese MSX-DOS.
    No no... que va. xD Que te digo yo que no cargan el CP/M antes y ejecutan "un bat". Es como desde el DISK-BASIC del MSX, para entendernos.

    Sí, tienes razón, lo pensé después.

    Saludos.

    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Javi Lopez@2:343/107 to Armando Perez on Wed Nov 27 16:25:38 2013
    Armando Perez wrote to Jose Angel Morente <=-

    ¡Hola Jose!

    Eso es lo más cojonudo. Jon... ¿cómo pones el modo 0 y la paleta? Lo
    haces con las rutinas de #Bxxx (que he visto por ahi)? Es que si estas llamando a eso desde tu programa en #100 ... ¿ande puñetas está la ROM puesta? Imagino que lo hará a "pincho" accediendo al hierro. Algo que
    mola mil ya que el AMS lo permite. :) (puertos fijos, no hay
    expansiones, no hay ampliaciones... :D).

    Y parecia que programar en Amstrad era desquiciante !


    ... DalekDOS v(overflow): (I)Obey (V)ision impaired (E)xterminate
    -+- MultiMail/Linux v0.49

    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Armando Perez@2:343/107.20 to Jose Angel Morente on Thu Nov 28 09:14:39 2013
    ¡Hola Jose!

    El 27 Nov 13 a las 12:15, Jose Angel Morente le decía a Armando Perez:

    Hombre, si son librerías del propio sdk del iOS no, como tampoco suelo destripar las rutinas de la BIOS del MSX. Pero si tomo prestadas
    librerías de un tercer desarrollador sí que me gusta chafardearlas.

    Exacto.


    No se si hay para linux. Y el wine... pues no. xD No es problemático.
    Con tene

    Para Linux está el propio CPCemu, y seguro que habrá más.

    Seguro que si.

    es Xcode. Pero hijo mio... que diferencia con el Eclipse: rapido,
    limpio, manejable... uff... lo tiene todo.

    Cierto es.
    Yo uso Netbeans para algunas cosas, que no cumple el primer punto que
    he dicho (la eficiencia) pero sí cumple los otros dos, especialmente
    que el proyecto no te lo "estropea", y tal cuál lo puedes compilar a
    mano sin tener que reconfigurar nada. Y por supuesto es fácil e intuitivo, lo que no caracteriza precisamente al Eclipse.

    Es que lo de Eclipse no tiene adjetivos ya.... :/

    unas 8 o 10 entradas en la misma. Piénsalo. ;) (CALL que llama a
    CALL que llama CALL más unos cuanto PUSH)

    Hostia, pues yo recuerdo haber hecho trazados de pila de juegos de MSX
    y te aseguro que se cuelan mucho más... claro que seguramente serían juegos más tochos, tipo SD Snatcher.

    Seguramente. Ya te digo yo que para uno tipo "arcade" no sueles gastar más de 64 bytes.

    parchea KEYINT. Pero ... ¿la NMI no? :S

    Igual la NMI no está conectada, como pasa en MSX.

    No tengo ni puta idea. :/

    A lo mejor el sistema deja esa zona #0000-#0FF con sus propias
    rutinas o algo, no?

    En el caso de CP/M ya sabes que así es. Rutinas propias, área de
    recogida de parámetros, etc.

    Si, pero es que esto no es CP/M. Ains... voy totalmente perdido. Me va a tocar poner un emulador en win con debugger para aclararme.

    La Coleco tiene eso resuelto de puta madre: todos los RST saltan a
    zonas definidas previamente en la cabecera del cartucho para que la
    propia ROM ya contenga las rutinas RST predefinidas para dicho juego.

    Está bien eso para que el programador se ponga los suyos propios, sobre todo de
    KEYINT.

    Pero por velocidad ninguna. Solo ganas espacio. Porque un CALL directo desde tu
    propio programa es más rápido. Pero ocupa más bytes.

    Vamos que:

    RST xx

    Y en el RST

    LD HL,(GANCHO) ; Seguro
    JP (HL)


    ejecutan "un bat". Es como desde el DISK-BASIC del MSX, para
    entendernos.

    Sí, tienes razón, lo pensé después.

    Pues a ver si alguien nos ilumina.



    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)
  • From Armando Perez@2:343/107.20 to Javi Lopez on Thu Nov 28 10:05:42 2013
    ¡Hola Javi!

    El 27 Nov 13 a las 16:25, Javi Lopez le decía a Armando Perez:

    :) (puertos fijos, no hay expansiones, no hay ampliaciones...
    :D).

    Y parecia que programar en Amstrad era desquiciante !

    Si. Lo es. Pero cuando haces las cosas como reto personal y entretenimiento donde la productividad importa poco pues se puede hacer divertido. ;)


    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)
  • From Jose Angel Morente@2:343/107 to Armando Perez on Thu Nov 28 18:56:34 2013
    Armando wrote:

    Yo uso Netbeans para algunas cosas, que no cumple el primer punto que
    he dicho (la eficiencia) pero sí cumple los otros dos, especialmente
    que el proyecto no te lo "estropea", y tal cuál lo puedes compilar a
    mano sin tener que reconfigurar nada. Y por supuesto es fácil e
    intuitivo, lo que no caracteriza precisamente al Eclipse.

    Es que lo de Eclipse no tiene adjetivos ya.... :/

    Había un texto por ahí que explicaba en clave de humor cómo instalar y configurar Eclipse. Comenzaba con una serie de pasos, así como "Descargar paquete eclipse, instalar paquete con dpkg -i, editar los archivos .conf para no sé qué, perder dos horas con los keybindings, resolver no se qué problema de
    dependencias, configurar el entorno, arreglar no sé cuánto" y el último paso era "Instalar Netbeans".

    :-D

    Hostia, pues yo recuerdo haber hecho trazados de pila de juegos de MSX
    y te aseguro que se cuelan mucho más... claro que seguramente serían
    juegos más tochos, tipo SD Snatcher.

    Seguramente. Ya te digo yo que para uno tipo "arcade" no sueles gastar más de 64 bytes.

    Hombre, 64 ya está bien, ya... Aunque hay que tener en cuenta que sólo el salvado de registro de la rutina de INT se come... ¿cuántos? Un push por cada par de registros, más set de registros alternativos...

    Pero por velocidad ninguna. Solo ganas espacio. Porque un CALL directo desde t
    propio programa es más rápido. Pero ocupa más bytes.
    Vamos que:
    RST xx
    Y en el RST
    LD HL,(GANCHO) ; Seguro
    JP (HL)

    Está claro. Aunque peor es el gancho a H.KEY o H.TIMI después de que la BIOS haya perdido semana y media en hacer otras cosas que no le has pedido ;-)


    Saludos.

    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Jose Angel Morente@2:343/107 to Armando Perez on Thu Nov 28 18:57:52 2013
    ¡Hola Javi!
    El 27 Nov 13 a las 16:25, Javi Lopez le decía a Armando Perez:
    :) (puertos fijos, no hay expansiones, no hay ampliaciones...
    :D).
    Y parecia que programar en Amstrad era desquiciante !
    Si. Lo es. Pero cuando haces las cosas como reto personal y entretenimiento donde la productividad importa poco pues se puede hacer divertido. ;)

    De hecho hay gente que hacer auténticas barbaridades como intentar recorrer U.S.A. a pie de una orilla a otra, dar la vuelta al mundo en un barquito sin más tripulación ni ayuda, o hacer juegos para CPC.

    Son los grandes logros y conquistas del ser humano.

    Saludos.

    --- BBBS/Li6 v4.10 Dada-1
    * Origin: Eye Of The Beholder BBS : el Corsario de FidoNet (2:343/107)
  • From Armando Perez@2:343/107.20 to Jose Angel Morente on Thu Nov 28 23:03:06 2013
    ¡Hola Jose!

    El 28 Nov 13 a las 18:56, Jose Angel Morente le decía a Armando Perez:

    arreglar no sé cuánto" y el último paso era "Instalar Netbeans".

    :-D

    JUASSSSS!!! XDDD


    Hombre, 64 ya está bien, ya... Aunque hay que tener en cuenta que
    sólo el salvado de registro de la rutina de INT se come... ¿cuántos?
    Un push por cada par de registros, más set de registros
    alternativos...

    Na. A ver

    AF
    HL
    DE
    BC
    IX
    IY
    AF'
    HL'
    DE'
    BC'

    20 bytes. xD

    Vamos que: RST xx Y en el RST LD HL,(GANCHO) ; Seguro JP (HL)

    Está claro. Aunque peor es el gancho a H.KEY o H.TIMI después de que
    la BIOS haya perdido semana y media en hacer otras cosas que no le has pedido ;-)

    Totalmente. Y que los RSTs sean un poco "inútiles" en MSX. Están más pensados para BASIC y programas de aplicacion que otra cosa.


    Un saludo,
    Armando Pérez Abad

    Fidonet: 2:343/107.20
    e-mail : majingazetto@gmail.com

    --- CrashMail II + binkd + GoldED+ on OS X
    * Origin: Armandín, Sora ni Sobieru (2:343/107.20)