Libro gratis para quienes hagan comentarios al blog

Un blog no lo hace su autor o autores. Lo hacen, sobre todo, sus lectores con sus comentarios y aportaciones.

Me consta que este blog tiene muchos lectores, porque lo veo en las estadísticas de navegación y porque me llegan bastantes mensajes por la sección de «contactos». Sin embargo, hay menos comentarios de los que me gustaría 😦 .

Y como me gustaría mucho fomentar la participación, los cinco primeros lectores que hagan comentarios de interés recibirán gratis en su casa un ejemplar del libro “Programación Retro del Commodore 64” que, por cierto, se está vendiendo bien y con valoraciones positivas en Amazon.

Lógicamente, para que esto sea posible los interesados tendrán que enviarme su dirección privadamente por la sección de «contacto«. Sólo si quieren recibir el libro, claro…

¡¡ Venga !! ¡¡ Ánimo y a participar !!

26 comentarios en «Libro gratis para quienes hagan comentarios al blog»

  1. ¡Yep! Creo que soy el primero en comentar algo 😅 Bueno, en primer lugar agradecerte la labor que estás haciendo con este blog, y espero que prosigas con la documentación de la creación de un juego para C64, lo veo como la continuación más lógica. Este tipo de series son las que animan al personal a meterse en esto de programar para máquinas clásicas, hace años me enganché al blog del autor del Guns’n Ghosts y saqué muchas ideas de ahí. Además, andamos escasos de este tipo de material en español, así que ahí tienes otra razón 😉 Por cierto, aprovecho para «spammear» un poquito: en el último Explora Commodore Darro99 (David Asenjo, autor de Rowman) y un servidor dimos una charla sobre cómo iniciarse en el ASM para C64, por si tienes curiosidad: https://youtu.be/1HoxZ7mVxus

    ¡¡¡Saludos!!!

    Me gusta

    1. Muchas gracias, Paco.

      Sí, después de todo lo que hemos revisado en el blog (herramientas actuales, el hardware, la memoria, el ensamblador, el VIC, el SID, etc.), la continuación lógica sería hacer y documentar un proyecto. O incluso varios con diferentes orientaciones y/o niveles de dificultad.

      Me encantaría hacerlo, pero esto requiere mucha dedicación (lo que llevo del blog han sido 9 meses, de octubre a junio), así que tendré que buscar el momento adecuado. Eso, o conseguir algún tipo de colaboración…

      Muchas gracias por el vídeo. Lo he visto con mucho interés y me ha encantado. A David tengo el placer de conocerlo en persona.

      Ya sabes, si te interesa el libro no tienes más que contactarme privadamente y enviarme tu dirección. Te lo remitiré gratuitamente.

      ¡¡Venga!! ¡¡Que quedan 4 libros!!

      Ah, y mucha suerte con Street Fighter II 🙂 .

      Me gusta

      1. Lo de hacer juegos con varios niveles de dificultad estaría muy bien: uno de puzles (tipo Tetris, por ejemplo, todo con caracteres), luego con pantallas estáticas (estilo Rodland, Bubble Bobble,…, se verían los sprites y los escenarios con caracteres), otro con scroll (un mata-mata tipo Némesis), etc. Cosas sencillitas que la gente pueda coger como inicio y desarrollar y profundizar posteriormente. Bueno, yo sugiero, imagino que tendrás otra cosa en mente 😛

        No sabía que conocías a David, es otro monstruo en esto del ASM, ya lleva 3 juegos y tiene unos cuantos en cola.

        Gracias por lo del SF2, espero poder acabarlo si no acaba antes él conmigo XDDDD

        Salu2!!!

        Me gusta

  2. Hola, soy fan del Commodore 64, y he tenido un vic-20 y un c128. Ahora estoy interesado en un c64 para cacharrear, pero toca repararlo. También voy detrás de un ZX Spectrum!! Jajajaja
    Por cierto, Me encanta tu web, enhorabuena!!
    Saludos,

    Me gusta

  3. Increíble tanto lo del libro, como el blog. La verdad que los desconocía, pero me los meto desde ya en el apartado de favoritos. Gracias por el esfuerzo que supone realizar algo así.

    Le gusta a 1 persona

  4. Hola colega, felicitaciones por la enorme iniciativa! Especialmente dada la escasa bibliografía que existe sobre nuestra amada Commodore en el idioma de Cervantes.

    Un cordial saludo desde el otro lado del Atlántico.

    Me gusta

  5. Buenas.

    Pues te he descubierto hoy gracias a un tuitero y, aparte de suscribirme a tu feed, acabo de mandar un correo a través del formulario de contacto para saber si podría comprar tu libro en otro lugar que no sea Amazon antes de leer esta entrada.
    Lo que tiene el hacer las cosas de manera desordenada.

    Ando tratando de dar mis primeros pasos en esto y creo que me vendrá estupendamente
    https://www.mytgard.com/php/bajo_un_oceano_de_bits_mes_xvii

    De cualquier manera, mi intención de comprarlo sigue intacta, sólo dejo el comentario porque sé que estas cosas sientan bien.

    Me gusta

  6. Gran blog el tuyo que acabo de descubrir gracias a CommodoreSpain. Ya me lo he comprado en Amazon y esperando a que llegue. Espero que continues la labor y ganes muchos nuevos seguidores.

    Me gusta

  7. Hola. Enhorabuena por la iniciativa. Toda una labor a tener en cuenta por tu parte.
    Yo me considero un friki de la retrovomputación, tengo varios modelos de ordenadores entre los que cuento con un Commodore 64 al que he conectado un portátil bastante antiguo con windows 95 para una vez metidos los archivos del Commodore, lanzar los juegos en formato disco. Con unos pocos comandos lo consigo pero eso es lo único que controlo de informática retro, estaría bien un poco de ayuda para continuar frikeando!! Lo dicho. Muchas gracias y a seguir a tope

    Me gusta

    1. Muchas gracias a todos los que habéis hecho comentarios.

      Para recibir el libro gratis (quedan 4 de los 5 prometidos), os animo a que los comentarios sean relativos al fondo técnico de alguna de las entradas. A eso me refería cuando decía que los comentarios tienen que ser «de interés».

      Es decir, se trata de comentar algo sobre la entrada / salida, el SID, el VIC, el ensamblador del 6510, el mapa de memoria del C64, etc.

      ¡¡Venga!! ¡¡Ánimo que quedan cuatro!!

      Me gusta

  8. Hola de nuevo. No sabía que se refería a un comentario técnico. Gracias por la aclaración.
    Siendo así. Me preguntaba si el libro trata al detalke y de manera práctica aspecto de la memoria del Commodore 64, el uso práctico de las zonas ROM y las Zonas RAM, teniendo en cuenta que en algunos casos se solapan. Además considerando que dentro dentro de un mismo espacio de memoria hay zonas RAM de lectura y escritura y zonas ROM de sólo escritura. Me preguntaba entonces si hay en el libro ejemplos prácticos para diferenciar ambas y aplicarlas.
    Muchas gracias.

    Me gusta

    1. Hola, Alfonso.

      El mapa de memoria se trata con cierto detalle en la entrada https://programacion-retro-c64.blog/2018/11/08/el-mapa-de-memoria-del-commodore-64/.

      Se comenta, sobre todo, el mapa de memoria «estándar», que es el que tiene el C64 cuando se arranca. Se comentan, también, las diferentes zonas de este mapa de memoria: la página cero, la pila, la RAM de BASIC, el intérprete de BASIC, etc.

      Por supuesto, también se comenta que hay zonas de RAM y de ROM e, incluso, que hay zonas solapadas (sin dar mucho más detalle). Y también se adelanta que muchas de estas zonas son registros del VIC, SID, CIAs, y que tienen usos especiales. Estos usos especiales se detallan en otras entradas posteriores del blog.

      Lo que sí es cierto es que el tema de la memoria admite mucho más detalle. El C64 admite diferentes configuraciones de memoria, y nada de esto se describe en detalle actualmente.

      Si tienes interés específico, puedes consultar el manual de referencia (https://archive.org/details/c64-programmer-ref). Si no recuerdo mal, ahí se describen las posibles configuraciones para el mapa de memoria (ver página 260 y siguientes).

      Si te interesa el libro, ya sabes, mándame tu dirección por privado.

      ¡¡Quedan dos!!

      Saludos.

      Me gusta

  9. Buenas!

    Descubrí tu blog hará unos meses, cuando estaba me estaba pegando con la reproducción de SID’s.

    Pero me pasa como en todos los lados y de todas las maneras, no consigo incorporar un SID en el MainGameLoop de manera correcta, para que se reproduzca a la velocidad que debería de ser. Lo de la velocidad fue un avance, porque las primeras veces únicamente conseguía reproducir la primera nota. 🙂

    Finalmente, conseguí entender un poco el archivo SID. Formado por su Player, que es invocado desde el programa y luego la música en si misma. Lo que no sabía es que había que llamarlo continuamente, nota por nota. Y claro… si a esas llamadas no se realizan a la velocidad determinada, lo que ocurre es que se te acelera o se ralentiza la canción.

    Seguí un ejemplo en BASIC para entender eso de las llamadas al SID para su reproducción:

    10 SYS (Dirección de memoria donde está el SID cargado)
    20 FOR I=1 to 9: NEXT: SYS (Dirección de memoria donde está el SID cargado +3): GOTO 20

    Nota: (Oh! Dios mío… un GOTO!!!… Suspendido!!! XD )

    Había que cargar un SID en memoria, como el Booga-Boo_the_Flea.sid, de la manera normal y corriente.

    LOAD»Booga-Boo_the_Flea.sid»,8,1

    Y lanzando el programa, nos reproduciría el SID a velocidad normal. SI cambiáramos el 9 por un 5, reproduciría la música de los saltos de la Pulga a ritmo de Chimo Bayo y si ponemos un 12, pues Balada.

    Pero… estamos dentro de un Bucle. Y yo lo que quiero es continuar con la ejecución de un programa y que la llamada a la rutina de reproducción sea en el momento adecuado.

    Por lo que aquí creo que entraría una entrada que tienes más adelante de los relojes de la CIA1 y sus timers (Aún no lo he leído detenidamente) pero creo que van por ahí los tiros: Hacer una llamada mediante interrupción al SID marcada por el Timer de la CIA. ¿Como se hace? Tengo que leerlo. 🙂

    Una cosa que me parece muy curiosa, con el ejemplo pachanguero en BASIC que he colocado, es que si primero cargo el SID en memoria y luego escribo el programa en BASIC, la memoria se desplaza. El SID ya no vuelve a estar en el sitio donde lo cargué inicialmente. (Donde se coloque o donde hemos configurado donde colocarlo con el SIDRELOC)

    Esto último no es importante, debe de ser alguna particularidad del BASIC que no es objetivo del blog de programación en ASM. Pero todo lo que me valga para entender una cosa, me da lo mismo que sea BASIC que C que ASM. Primero necesito entenderlo, sino… me resulta imposible aplicarlo. 😀

    En fin… aún estoy verde… y mi ordenador sigue sin sonar adecuadamente. 🙂

    Bonito Blog y un saludo!

    Me gusta

  10. Hola, Jeff.

    En la entrada https://programacion-retro-c64.blog/2019/05/18/ficheros-sid/ comento en qué consisten los ficheros SID, y cómo se pueden reproducir con un «player» o incluyéndolos en un programa en ensamblador. Te sugiero que mires el ejemplo de código, si no lo has hecho ya.

    Efectivamente, apuntas dos temas importantes: 1) la ubicación en memoria del fichero SID y 2) el «tempo» de la reproducción.

    Respecto a la ubicación en memoria, si no encaja con el mapa de memoria de tu programa, puedes intentar reubicarlo con Sidreloc.

    Y respecto al «tempo» de reproducción, yo creo que lo suyo es llamar a la rutina de reproducción mediante interrupciones. Cuando la música (tablas de octavas, notas y duraciones) y el programa de reproducción son enteramente tuyos, puedes jugar con la duración de las notas para modificar el «tempo». Puedes ver la entrada https://programacion-retro-c64.blog/2019/05/14/duracion-y-volumen/.

    Pero si la música y el programa de reproducción son de un tercero, como ocurre con un fichero SID, lo que puedes controlar es la frecuencia con la que llamas a la rutina de reproducción desde la rutina de interrupción, bien generando interrupciones con la frecuencia deseada (temporización CIA) o generando interrupciones como te interese, pero llamando a la reproducción cada X interrupciones.

    Si te interesa el libro, ya sabes: me envías tu dirección mediante contacto privado.

    ¡¡ Quedan 3 libros !!

    ¡¡Saludos y gracias!!

    Me gusta

  11. hola… la verdad me parece terrible proyecto tu libro, te cuento que soy de Uruguay y me interesó mucho tenerlo, pero no veo como poder comprarlo en Amazon de España, si me informas gustosamente lo quiero comprar, saludos y te dejo mis datos en la sesión.

    Me gusta

    1. Hola, Pablo. El libro se vende en Amazon.es, Amazon.com, y todos los sitios de Amazon. Yo creo que desde Amazon.com lo servirán en Uruguay, ¿no? Si no fuera así, házmelo saber. Muchas gracias por tu interés. Un saludo.

      Me gusta

  12. Acabo de enterarme de la existencia de este libro viendo el directo de AmigaWave. Como programador de demos de amiga, siempre me ha llamado la atencion el 64 y hace un mes finalmente he conseguido comprar uno de 5a mano.

    El primer efecto que quiero conseguir hacer es un scroll horizontal basico. He llegado a ver alguna demo que lo tiene en vertical (eg: andropolis de booze design), pero creo que no en horizontal.

    Rebuscando un poco por internet, la unica referencia que he encontrado ha sido con un scroll de una pantalla de formato charset — tu que tienes mas experiencia, sabes si se puede llegar a hacer un scroll horizontal de un bitmap?

    — winden

    Me gusta

    1. Hola.

      Buena pregunta…

      Las entradas del blog que describen el bitmap y el scroll las tienes aquí:

      Modo bitmap estándar

      Scroll horizontal y vertical

      En principio, el scroll lo he planteado sobre una pantalla en modo carácter, que yo creo que es lo más habitual. Puedes ver el ejemplo 46.

      Ahora bien, he hecho una prueba rápida para combinar los ejemplos 44 (bitmap) y 46 (scroll) y me ha funcionado perfectamente hacer un scroll horizontal sobre un bitmap. El bitmap se mueve pixel a pixel horizontalmente según el valor del registro $d016. Verticalmente será parecido cambiando el registro.

      Dicho esto, se me ocurren algunas pegas para hacer scroll con bitmap:

      La primera es que, al llegar al límite del scroll (7 pixels), tienes que mover la información a la columna/fila siguiente. En modo carácter esto supone mover 1K de información; pero en modo bitmap tendrás que mover 8K, lo cual es mucha más información.

      La segunda es parecida a la anterior, pero diferente. Una pantalla en modo carácter se define con 1K, pero un bitmap se define con 8K. Aparte de lo mucho/poco que te lleve mover esa información, si vas a hacer scroll es porque tienes varias pantallas que mostrar. Cada pantalla con sus 8K. Y el equipo tiene 64K… Y el VIC direcciona 16K…

      En definitiva, parece posible, pero complicado. Quizás para una demo sí; para un juego lo veo muy justo. Si alguien tiene otra visión que se sienta libre de aportarla 🙂 .

      Espero que te sea de ayuda… Y ya sabes, si te interesa el libro envíame tu dirección por privado.

      Y con esto siento decir que se han acabado los 5 libros… 😦 ¡¡Aun así os animo a seguir participando!!

      Saludos.

      Me gusta

  13. Hola Manuel. Muchas gracias a ti ya las personas como tú que dedican tiempo a investigar, recopilar y enseñar cosas a los demás. Especialmente en este mundo de la retro informática.
    Yo llevo muchos años en la informática, empecé con el spectrum y la curiosidad me hizo dedicarme a la informática como profesión. De hecho, también es mi afición, pero en este caso lo que me interesa es el mundo retro. Como mis comienzos fueron con el spectrum, ahora procuro aprender cosas de otros sistemas. De ahí que tu blog y tu libro me resulten tan interesantes.
    Quería preguntarte algo sobre la CPU del c64. Verás, hace muchos años aprendí a programar el 6502. Yo pensaba que ese era el micro del c64, pero parece que leo que es el 6510. ¿Es el mismo? En caso contrario, ¿son compatibles?.
    Otra cosa, recuerdo que el 6502 trabajaba a 1 MHz y como pensaba que éste era el micro del C64, me sorprendía que este ordenador pudiera tener los juegos y programas que tenía con un micro tan poco potente. ¿A qué frecuencia trabaja el 6510? Su juego de instrucciones, ¿es el mismo que el 6502 o está ampliado? Gracias por adelantado por tus respuestas. Ah! Y si el comentario te parece interesante para regalarme el libro, ya te envío el mail 🙂

    Me gusta

  14. Hola, Joaquín.

    Muchas gracias por tus comentarios.

    Los micros 6502 y 6510 son esencialmente el mismo. Los juegos de instrucciones y los modos de direccionamiento son iguales. La principal diferencia es que el 6510 es más flexible, porque incluye unos puertos (posiciones $0000 y $0001) que le permiten manejar diferentes mapas de memoria.

    Tienes algunas referencias a esto en estas entradas:

    El hardware del Commodore 64

    El mapa de memoria del Commodore 64

    Los registros del microprocesador 6510 (parte II)

    En el blog se describe el mapa de memoria estándar. El resto de mapas de memoria los puedes consultar en el Manual de Referencia (páginas 260 y siguientes):

    https://archive.org/details/c64-programmer-ref

    Pásame tu dirección postal por el contacto privado y te enviaré el libro. ¡¡Ya sólo queda 1 libro de los 5!!

    Saludos.

    Me gusta

    1. Hola
      Cribando todo internet en busca de info sobre programación para CBM me encuentro este blog. Yo siempre usé Spectrum, y me llamaba la atención los pocos usuarios de c64 en comparación a otros sistemas.
      Con el paso del tiempo todo el mundo dejamos nuestros micros de 8 bits…. todo el mundo? no. Un loqueras como yo todavía seguía usando su Spectrum y su Amiga en tiempos en dónde se llevaba el uso de los pc’s.
      Con cierta edad ya, pero con una herramienta como inet empiezo a buscar información en mi idioma sobre la programación de mi querido Spectrum, y de todos aquellos micros que no pude tocar en su momento, por un motivo u otro.
      Al c64 le tengo cierta simpatía a pesar de no tener contacto directo con este micro en su momento. He buscado, y sigo buscando info para programar con compilador cruzado en C esta máquina… hasta llegar a este blog. Donde veo que te vas a atrever a sacar un libro y todo… Bueno, no es C, es asm… no tengo la cabeza para tanto esfuerzo, pero lo voy a intentar.
      Tampoco te voy a engañar si te digo que me ilusiona recibir una copia del libro… si no es así, pues esperaré para poder adquirirlo [son sólo 5 euros, pero para alguien en paro desde hace varios años es un esfuerzo].
      Por último, deseo agradecerte el esfuerzo por llenar ese hueco existente hoy día en castellano, para enseñar a programar una de las máquinas míticas de los 80.
      De verdad, y aunque no sea mi máquina favorita, gracias.

      Me gusta

      1. Hola.

        Muchas gracias por tus comentarios.

        He leído en varios sitios que el C64 no se vendió mucho en España. La verdad, no tengo datos. A mí me cuesta un poco creerlo, porque la mayoría de la gente de mi entorno tenía Commodore (VIC-20, C64, C128, Amiga, …). Y, además, se supone que el C64 es el ordenador personal más vendido de la historia, con 17 millones de unidades vendidas (es una estimación).

        Como digo, no tengo datos. Quizás la cosa iba por grupos o vecindarios 🙂 .

        A mí es el que me tocó en suerte porque es el que me compraron mis padres y, lógicamente, le tengo muchísimo cariño. Pero es que además, ahora que lo he retomado después de varias décadas, y después de unos estudios técnicos, me parece una máquina muy potente (para su época) y muy bien diseñada.

        También tuve contacto con el ZX Spectrum, y también me gustaba mucho. Con los Amstrad apenas tuve contacto.

        Respecto al libro, me temo que con los comentarios anteriores ya hemos adjudicado los 5 ejemplares… 😦

        Saludos.

        Me gusta

    2. Muchas gracias Manuel. Acabo de enviarte mi dirección de mail por Contacto. Con todos los enlaces que me envías tengo para un buen rato de lectura y saciar mi curiosidad. Muchas gracias

      Me gusta

Deja un comentario