Archivos para Mayo, 2007

Microcontroladores PIC y señales de video (y III)

Mayo 27, 2007

Para los que buscáis información detallada y práctica de cómo generar señales de video con un microcontrolador de la familia PIC, aquí tenéis varios enlaces de enorme interés. Que lo disfrutéis!

PIC PAL Video Library

This page will show you, how to turn a PIC18 into a B&W Text & Graphics PAL video processor with a very few and inexpensive hardware, and a minimum of coding effort !

089-pic-pal-tv-pic_pal_video_1.jpg

The &microSCOPE

Recently I obtained a sample of the 12f675. On examination of the datasheet of this small 8 pins micro controller from Microchip, it appeared that the small package contained all the components of a miniature videoscope. In short the &microSCOPE project was born, with as main objective the challenge of implementing such a relatively complex task in this small micro controller.

mozaiek.jpg

Alien Slaughter!

After seeing Rickard Gunee’s video PIC projects, I knew that using a fast enough processor, if you were careful about timing you could generate a proper T.V. video signal with an assembly written program. I could use a small PIC16F84 µcontroller running at 20MHz to generate a black and white video signal based on the graphical contents of an external SRAM chip…

lowres-alienslaughter_pix_27.jpg

Aprendiendo a emular (II.i)

Mayo 22, 2007

Probando los accesos de lectura/escritura del Z80, he encontrado lo siguiente:

tstados: 12315     | PC: 289   
Z80 read from ROM (0289)
Z80 read from ROM (028a)
Z80 write on to Video RAM (26e1) the value: (0097)
tstados: 12316     | PC: 28b

Es decir, después de llenar la video memoria de carácteres vacíos (0×20), llega el momento en el que sitúa en la esquina inferior izquierda de la pantalla (0×26e1 = 9953) el “cursor” (0×97) esperando alguna señal del usuario mediante el teclado.  Voy por buen camino!

Sólo un problema:

tstados: 784     | PC: 29    
Z80 read from ROM (0029)
You can't write on ROM memory! (0000)
tstados: 785     | PC: 2a

Donde el listado de la ROM me indica:

; ------------------------------------
; THE 'INITIALIZATION ROUTINE' Part 2.
; ------------------------------------

L0028:  INC     H                       ; increase high byte
        LD      (HL),A                  ; insert A value
        CP      (HL)                    ; compare to expected
        JR      Z,L0028                 ; loop back while RAM is populated.

Supongo que es al guardar en HL => 0×000 el valor del Acumulador… y peta!

Seguiré investigando…


Aprendiendo a emular (II) (Jupiter Ace)

Mayo 21, 2007

Siguiendo con el estudio de la emulación, he reducido más todavía el campo de aprendizaje al tomar como objeto de emulación el Jupiter Ace. He encontrado una página dedicada a este extraño micro ordenador, especialmente a especificaciones técnicas se refiere:

Tras ir jugando y estudiando el mapa de memoria, aquí tenéis una captura de pantalla de la tabla ASCII de caracteres del Jupiter Ace. Nunca me he sentido tan satisfecho. Prometo más…

pantallazo.png

The ZX Spectrum Book – 1982 to 199x…

Mayo 19, 2007

Ha salido a la venta un libro exclusivamente dedicado a recopilar 230 juegos del ZX Spectrum 48K. La edición es “personal” y, por lo tanto, ajena a una distribución comercial. Luego, el mismo autor, nos confiesa que sólo dispone de 1000 copias. La calidad visual parece más que aceptable y, aunque sea un tanto reacio a estos recopilatorios, creo que el mes que viene compraré una copia… la nostalgia me vence!

bookfront.png

Study of the Techniques for Emulation Programming

Mayo 13, 2007

Around 2001 I wrote a document about emulation programming for my final year project of my Computer Science studies, here at UPC-FIB. It is mainly centered in the techniques for implementing the emulation of a CPU, but there are also a small chapter about graphic and sound emulation and other peripherics.

For the project I also implemented a simple Master System emulator using a modified version of Neil Bradley’s MZ80 core (to support bank addressing) and a Space Invader emulator. The source for both can be found in the code section.

Link

Spark Fun Electronics

Mayo 13, 2007

Los lectores y lectoras de Make están de suerte: la tiendecita Spark Fun Electronics es un buen lugar donde adquirir componentes electrónicos hasta entrenadores más singulares como el ya famoso y, para mí, sobrevalorado Arduino (con las locuras que pueden hacerse con la Spartan III). De todas formas, no dejéis de echarle un vistazo a los proyectos como tutoriales. No están nada mal.

tetrisgame-02-l.jpg

Aprendiendo a emular (I) (primeros pasitos…)

Mayo 13, 2007

Antes que nada, lo que tenéis aquí es simple y llanamente es un “recorte” y “pega” del magnífico emulador de la familia ZX Spectrum, FBZX. Dicho emulador se distribuye bajo los términos de la licencia GPL, por lo que he podido estudiar (bastante), modificar (poco) y, finalmente, estructurar uno nuevo que sólo cargara correctamente la rom del ZX Spectrum y que se viera la pantalla de inicio. Después de unas horas cacharreando aquí y allá en el código, la captura que demuestra el éxito de la contienda:

pantallazo2.png

Queda claro que se distribuye bajo licencia GPL (excepto el núcleo de Z80, que no puede ser distribuido comercialmente.Más detalles en la página de Marat Fayzullin) y, como habitualmente se dice y escribe, “at your own risk”.

Ahora viene un segundo paso, quizá más pausado y lento, que será estudiar con profundidad las funciones de dibujo de la memoria gráfica y el cómo ha implementado el autor las funciones que Marat Fayzullin deja abiertas para adapatarlas a cualquier emulador. Luego estaría bien poder utilizar la misma infraestructura para emular el fantástico Jupiter Ace…

El juguete lo podéis descargar aquí.

Space Invaders Didactic Emulator

Mayo 11, 2007

Well, my goal is not to write an emulator and then forget about it, but rather to write a series of didactic emulators that can be used by programmers that are moving their first steps in the emulation world.

screen1.png

Yet Another Unfinished Retro Project

Mayo 10, 2007

Lo explico y estiqueto como YAURP, ya que, al ritmo que llevo, dudo que pase de eso, de proyecto. En fin… la idea es…


$ irb
irb(main):001:0> jupiterAce= Computer.new :micro=>'z80', :memory =>'8M'
=> #
irb(main):002:0> jupiterAce.load :rom=>'jace.rom'
irb(main):003:0> jupiterAce.run
....

Wall of Pong (¿se puede ser más friki?)

Mayo 10, 2007

Wall of Pong is a fast-moving, interactive, laser-based pong game playable on any flat surface.

The system uses a digitally controlled laser projection platform to draw a pong ball onto any flat surface. This allows for a large playing area that can be set up almost anywhere. Hand held paddles with embedded sensors are given to each player. The real life paddles increases the interactivity of the game and makes it an enjoyable and dynamic derivative of the original PONG arcade game.

banner.jpg