PDA

Ver la versión completa : Sobre programar para 8 bits



rafa-lito
14/10/2010, 18:54
Qué tal , coleguillas. Me gustaría saber qué ordenador de 8 bits es má sencillo de programar (si es que eso se puede saber) y en qué lenguaje. Si quisiérais programar juegos para 8 bits, ¿por dónde empezaríais?.

Un saludete.:brindis:

Wave
14/10/2010, 18:56
Para Spectrum-CPC-MSX hay librerias para programar en C, la mayoria de los juegos nuevos que salen para ellos estan hechos con esas librerias, aunque no se donde se consiguen...

juanvvc
14/10/2010, 19:05
Me gustaría saber qué ordenador de 8 bits es má sencillo de programar (si es que eso se puede saber) y en qué lenguaje. Si quisiérais programar juegos para 8 bits, ¿por dónde empezaríais?

Yo no iría hacia consolas u ordenadores antiguos. Si quieres programar en 8 bits, prueba los microcontroladores actuales: la serie 12 de Microchip, o Atmel AVR. Tres pesetas que cuestan sus micros y a veces incluso te los envían de regalo si los pides en sus webs, y cuando acabes hasta podrás vender tu propia consola portátil en el rastro madrileño :D

Se suelen programar en ensamblador, que en este caso tiene apenas un par de decenas de instrucciones así que es muy fácil de entender y aprender.

Ejemplos:

- Una consola portátil con un rogue-like: http://webs.ono.com/bcp001/index.htm
- Una chulada de discoteca: http://www.youtube.com/watch?v=uOPQzrA2OZ8&feature=related

rafa-lito
14/10/2010, 19:09
Yo no iría hacia consolas u ordenadores antiguos. Si quieres programar en 8 bits, prueba los microcontroladores actuales: la serie 12 de Microchip, o Atmel AVR. Tres pesetas que cuestan sus micros y a veces incluso te los envían de regalo si los pides en sus webs, y cuando acabes hasta podrás vender tu propia consola portátil en el rastro madrileño :D

Se suelen programar en ensamblador, que en este caso tiene apenas un par de decenas de instrucciones así que es muy fácil de entender y aprender.

Hombre, me gustaría aprender a programar juegos. ¿Para esos microcontroladores que me dices qué programo? :D

juanvvc
14/10/2010, 19:29
¿Para esos microcontroladores que me dices qué programo? :D

Pues juegos, ¿no? Cualquier microcontrolador actual es más potente que la CPU de la NES, por poner un ejemplo, y el heredero espiritual del 68000 que llevaba el Amiga es la serie actual de microcontroladores HC11 (algo más caro que los Microchip o AVR, pero una gozada de micro para trabajar con él)

Y bueno, también viene la parte utilitarista. Mejor será aprender a trabajar con un microcontrolador actual que con un ordenador que hace 20 años que no se fabrica, ¿no? :D

Ah, y no sé bien cuáles son tus intenciones. Si lo que quieres es programar juegos en 8 bits porque te hace gracia, pues empieza como empezamos todos y coge el Spectrum y su BASIC. Pero si lo que quieres es aprender a programar juegos, ten en cuenta que programar en 8 bits es mucho (pero muchísimo) más difícil que hacerlo en los ordenadores, consolas o móviles actuales.

rafa-lito
14/10/2010, 19:38
Sólo lo quiero hacer por hobby:D

xzakox
14/10/2010, 19:48
El tema de programar un microcontrolador, es que si te pones a usar una plataforma de juegos, ya no son tres pesetas como dice juanvvc, anádele un LCD o un TFT, botones, algun dac para audio (o sonido cutre con PWM), y claro, para todo eso o aprendes electrónica, o te compras una plataforma ya hecha (que hay varias muy majas, como la uzebox o similares).
E igualmente tienes el tema de que esas plataformas o son muy minoritarias aunque con una comunidad divertida, o si la diseñas tu, casi seguro que sólo vas a jugar tu xD
Bueno, luego está el tema de la arquitectura de los microcontroladores, memoria flash interna, asi que tienes que reprogramarlo para cada juego, no es que sea lo mejor si lo quieres distribuir.
Bueno, dicho esto, yo he de decir que he hecho algun jueguecillo para AVR xD

Pero por otro lado tienes los micros y las consolas retro, que tienen varias ventajas... primera, hay una scene muy grande (y eso implica usuarios en activo y documentación) para algunas máquinas, como nes, gameboy, spectrum, msx, CPC, C64... segundo, hay muchas de estas máquinas rulando por ahi como para poder ejecutar tus juegos y que la gente los juegue, y tercero, si no son las máquinas reales, hay emuladores 100% reales, en muchas plataformas, PC, PSP, XBOX, NDS, GP2X... xD con lo que la gente podrá jugarlos aunque no tenga las máquinas viejas.
Y bueno, si aprendes a programar en un sistema con escasos recursos de memoria, velocidad, gráficos, etc, ya sea en C o te metas un poco en ASM, luego aprender a programar para otra plataforma más moderna será sencillo y muchas veces un desahogo (siiiii, instrucciones de multiplicación y división!!!! números de 32 bits sin hacer locuras con los registros!!!).
Asi que si quieres aprender un poco con 8 bit, te recomiendo que te pongas con una plataforma retro, zx spectrum o amstrad cpc son casi las mejores, tienes el SDK z88dk para desarrollar en C, y las librerias splib y cpcrslib respectivamente para manejo de gráficos y entrada, y bastante documentación y código disponible (con que te veas los fuentes de los juegos de mojontwins ya tienes para rato), etc.
Ahora si lo que quieres es meterte en algo moderno de 8 bit y ponerte con temas de electrónica también, entonces te recomiendo Atmel AVR xD

FlipFlopX
14/10/2010, 20:11
Pues hacerte una Game Gear/SMS o Gambeboy casera, aunque no portátil me llama la atención y siempre se podría usar como PFC, lo de que te manden lmas muestras de chips gratis, cómo va? Si eres estudiante te pueden mandar cosas para probar? Es que me da vergüenza decirlo en el departamento de electrónica y pasar un poco como gorrón xD



Además el tema de las librerías de la GB por lo que vi por aquí estaban bastante maduritas...Una GB, que lea binarios, un DSP para mp3 normalico y lector de TF pinta bien :-)

doble-h
14/10/2010, 20:25
El tema de programar un microcontrolador, es que si te pones a usar una plataforma de juegos, ya no son tres pesetas como dice juanvvc, anádele un LCD o un TFT, botones, algun dac para audio (o sonido cutre con PWM), y claro, para todo eso o aprendes electrónica, o te compras una plataforma ya hecha (que hay varias muy majas, como la uzebox o similares).
E igualmente tienes el tema de que esas plataformas o son muy minoritarias aunque con una comunidad divertida, o si la diseñas tu, casi seguro que sólo vas a jugar tu xD
Bueno, luego está el tema de la arquitectura de los microcontroladores, memoria flash interna, asi que tienes que reprogramarlo para cada juego, no es que sea lo mejor si lo quieres distribuir.
Bueno, dicho esto, yo he de decir que he hecho algun jueguecillo para AVR xD

Pero por otro lado tienes los micros y las consolas retro, que tienen varias ventajas... primera, hay una scene muy grande (y eso implica usuarios en activo y documentación) para algunas máquinas, como nes, gameboy, spectrum, msx, CPC, C64... segundo, hay muchas de estas máquinas rulando por ahi como para poder ejecutar tus juegos y que la gente los juegue, y tercero, si no son las máquinas reales, hay emuladores 100% reales, en muchas plataformas, PC, PSP, XBOX, NDS, GP2X... xD con lo que la gente podrá jugarlos aunque no tenga las máquinas viejas.
Y bueno, si aprendes a programar en un sistema con escasos recursos de memoria, velocidad, gráficos, etc, ya sea en C o te metas un poco en ASM, luego aprender a programar para otra plataforma más moderna será sencillo y muchas veces un desahogo (siiiii, instrucciones de multiplicación y división!!!! números de 32 bits sin hacer locuras con los registros!!!).
Asi que si quieres aprender un poco con 8 bit, te recomiendo que te pongas con una plataforma retro, zx spectrum o amstrad cpc son casi las mejores, tienes el SDK z88dk para desarrollar en C, y las librerias splib y cpcrslib respectivamente para manejo de gráficos y entrada, y bastante documentación y código disponible (con que te veas los fuentes de los juegos de mojontwins ya tienes para rato), etc.
Ahora si lo que quieres es meterte en algo moderno de 8 bit y ponerte con temas de electrónica también, entonces te recomiendo Atmel AVR xD

no creo que quiera montarse una "consola" si no hacer un juego al estilo 8bits

juanvvc
14/10/2010, 20:34
Si eres estudiante te pueden mandar cosas para probar?

En el caso de Microchip no hay ni que ser estudiante, simplemente entrar en su página y pedir samples. Tardan un poquito y te cobran otro poquito por envío, pero ya va bien. Ahora, en la tienda un 16F84 por ejemplo cuesta 3 euros y lo tienes al instante, así que no sé si vale la pena la espera por ahorrarte unos eurillos ;)

GameMaster
14/10/2010, 21:01
Es mas facil que pedir una Caanoo grátis, yo tengo amigos que en los tiempos de la uni, pidieron grátis unos cuantos xDDD

xzakox
14/10/2010, 22:01
Uf, solo que hacerse una plataforma de juegos con un 16f84... solo un timer de 8 bits... 1K de programa y 68 bytes de ram... como que chungo xD
Mejor tirarse a la serie 18... algo como un 18F2550 con usb, 32K de programa y 2K de RAM, USART, 3 Timers de 16 bit y uno de 8 bit, ADC...
Y si, los de microchip envian samples gratis, pero tardan. Atmel lo mismo, además miran con lupa las solicitudes.
Los que envian samples sin pensarselo son los de ST, he pedido varios STM32 (ARM cortex m3), y me han llegado por paqueteria en tres o cuatro dias xD
Otros que envian samples siempre, son Ti, y Maxim, pero el tema de todos los micros de estas es que no están tan extendidos como PIC o AVR y claro, necesitarias ya herramientas menos asequibles (los programadores, ensambladores/compiladores, etc).

valdivia
15/10/2010, 00:12
una preguntilla yo no entiendo demasiado pero una consola portatil como tanto una de mesa estan echas con piezas de ordenador no?entonces las portatiles de antes las piezas deben ser similares a las de un 486 no?o anteriores digo yo..no se y tan dificil es hacerse una consola?yo tengo pensado hacerme una con piezas de ordenador algo de sobremesa pero el problema es la salida de video que parezca una consola al iniciarse..o que al meterle un juego se ponga.. y no salga el instalador de windows sera dificil. hay que ver en gp32 lo que sabeis de estaas cosas yo como dije cada dia aprendo algo nuevo me enkanta este foro :) que pena que no sepa tanto como vosotros

josepzin
15/10/2010, 08:15
Si finalmente te decides por Commodore 64, aquí tienes mi Tutorial de instalación de entorno de desarrollo en lenguaje C para Commodore 64, usando CC65 y WinVICE sobre Windows XP/7 (http://josezanni.com/444/tutorial-de-instalacion-de-entorno-de-desarrollo-en-lenguaje-c-para-commodore-64-usando-cc65-y-winvice-sobre-windows-xp-7)

Commodore 64 tiene mucha potencia con chips dedicados y demás, pero cuesta arrancar porque hay que entender como funciona.

rafa-lito
15/10/2010, 08:26
Si finalmente te decides por Commodore 64, aquí tienes mi Tutorial de instalación de entorno de desarrollo en lenguaje C para Commodore 64, usando CC65 y WinVICE sobre Windows XP/7 (http://josezanni.com/444/tutorial-de-instalacion-de-entorno-de-desarrollo-en-lenguaje-c-para-commodore-64-usando-cc65-y-winvice-sobre-windows-xp-7)

Commodore 64 tiene mucha potencia con chips dedicados y demás, pero cuesta arrancar porque hay que entender como funciona.


Gracias :brindis:

xzakox
15/10/2010, 08:28
Y aqui mi tutorial sobre programación de GameBoy en ensamblador xD
http://wiki.ladecadence.net/doku.php?id=tutorial_de_ensamblador

cybernoid
15/10/2010, 08:46
Yo te recomendaria MSX, el procesador es el Z80 el que mas se usaba en las maquinas de 8bits, chip de video con sprites, chip de sonido, acceso mediante bios para hacer "casi" todo lo que se te ocurra.

Como lenguaje, pues como los machotes ASM :) documentación por internet hay a patadas.

Ya me contaras :)

< - >

Y aqui mi tutorial sobre programación de GameBoy en ensamblador xD
http://wiki.ladecadence.net/doku.php?id=tutorial_de_ensamblador


mola :) me lo quedo pa chafardear ^_^

josepzin
15/10/2010, 09:12
Programar para el 6510 es cosa de machos!!

kiero
15/10/2010, 13:38
puedes probar con el batari basic para hacer juegos para atari 2600 . Aquí tienes más info en http://bataribasic.com , y en los enlaces que contiene esa página

Aiken
15/10/2010, 15:14
Hombre, me gustaría aprender a programar juegos. ¿Para esos microcontroladores que me dices qué programo? :D

antes de aprender a programar juegos para una consola 8bits, deberias aprender a programar juegos en general (que no tengo ni idea si ya sabes, si es asi olvida este comentario).

despues de eso, seguramente la mas comoda de programar debe ser la GB, creo.

Aiken

rafa-lito
16/10/2010, 20:27
¿Alguien sabe de algun curso de ensamblador para 8 bits para hypermegaultranovatos como yo?:D

Karkayu
16/10/2010, 21:23
¿Alguien sabe de algun curso de ensamblador para 8 bits para hypermegaultranovatos como yo?:D

A lo mejor me equivoco, pero ... ¿¿No sabes programar en un lenguaje de alto nivel tipo C y pretendes tirarte de cabeza con ensamblador?? :confused: Admiro tu valentia ...

josepzin
16/10/2010, 21:30
A lo mejor me equivoco, pero ... ¿¿No sabes programar en un lenguaje de alto nivel tipo C y pretendes tirarte de cabeza con ensamblador?? :confused: Admiro tu valentia ...
Jajajaj!!!

Igual yo conozco varios casos de gente que comenzó de la nada y terminó varios juegos, pero es mas facil usando un lenguaje de alto nivel.

Segata Sanshiro
16/10/2010, 21:30
A lo mejor me equivoco, pero ... ¿¿No sabes programar en un lenguaje de alto nivel tipo C y pretendes tirarte de cabeza con ensamblador?? :confused: Admiro tu valentia ...

Tienen tan poco que ver el uno con el otro que no sé qué decirte... :D

Karkayu
16/10/2010, 22:48
Tienen tan poco que ver el uno con el otro que no sé qué decirte... :D

Eso no quita que uno sea mas sencillo de aprender que el otro. Asi de simple :)
No entro en valorar lo diferente/potente/bonito que es un lenguaje con otro. Yo solo creo que para una persona que no conoce los conceptos basicos de programación no es lo mas sencillo empezar con ensamblador.

Un saludo
:brindis:

rafa-lito
16/10/2010, 23:42
Eso no quita que uno sea mas sencillo de aprender que el otro. Asi de simple :)
No entro en valorar lo diferente/potente/bonito que es un lenguaje con otro. Yo solo creo que para una persona que no conoce los conceptos basicos de programación no es lo mas sencillo empezar con ensamblador.

Un saludo
:brindis:

Vamos a ver. Quiero aprender a programar ensamblador como si fuera un novato, pero en realidad, en una escala del 0 al 10, digamos que estoy en el 1,5. Hace años me saqué mis titulillos de programador en Basic y en Dbase III+, por lo que lo básico lo sé

Malenko
16/10/2010, 23:55
Si finalmente te decides por Commodore 64, aquí tienes mi Tutorial de instalación de entorno de desarrollo en lenguaje C para Commodore 64, usando CC65 y WinVICE sobre Windows XP/7 (http://josezanni.com/444/tutorial-de-instalacion-de-entorno-de-desarrollo-en-lenguaje-c-para-commodore-64-usando-cc65-y-winvice-sobre-windows-xp-7)

Commodore 64 tiene mucha potencia con chips dedicados y demás, pero cuesta arrancar porque hay que entender como funciona.

No tendrás uno, o sabrás de algun lado para programar en C para un CPC? :D

josepzin
17/10/2010, 00:02
Para Amstrad CPC mira esta librería CPCSprLib, ademas creo que hay tutoriales en su web: http://www.amstrad.es/programacion/index.html

cpcrslib; http://www.amstrad.es/programacion/cpcrslib.html
Es una libreria para hacer juegos usando C en CPC

rafa-lito
17/10/2010, 09:08
Para Amstrad CPC mira esta librería CPCSprLib, ademas creo que hay tutoriales en su web: http://www.amstrad.es/programacion/index.html

cpcrslib; http://www.amstrad.es/programacion/cpcrslib.html
Es una libreria para hacer juegos usando C en CPC

Entonces, programar en c es lo mas recomendado pues lo puedo hacer tanto para z80 como para 6502,¿no?. ¿No es mejor entonces hacerlo en ensamblador?

(Llevo tanto tiempo queriendo aprender a programar en ensamblador, pero no hay manera de que me entre en la cabeza, empiezo muy bien pero de pronto parece que estoy aprendiendo lenguaje marciano o algo así[wei] Por eso busco aprender ensamblador de la forma más sencilla posible)

josepzin
17/10/2010, 09:30
En realidad el tema es asi: si sabes programar en algun lenguaje de alto nivel (o en C) puedes empezar YA a programar para 8 bits, "sólo" tienes que aprenderte el funcionamiento de la maquina elegida, cada sistema es TOTAL ya absolutamente distinto entre si.

En cambio si quieres usar Assembler, tienes que aprender 2 cosas: el lenguaje y el sistema de la maquina de 8 bits.

¡¡Indudablemente se obtendrá mejor rendimiento del procesador desde Ensamblador!! Aunque dependiendo del tipo de juego puedes o no necesitar esa potencia. Los juegos Mojones son todos hechos en C (ahora dices que no conoces a los Mojons Twins...)

Por ejemplo si copias algun ejemplo del BASIC de C64 y lo entiendes, entonces ya estas casi listo para hacer ese mismo programa en Ensamblador, ya que el BASIC de C64 es tan malo que para hacer cosas es casi casi casi igual al Ensamblador :D Lo cual en este caso se covierte en una ventaja jeje

Ejemplo: para activar un sprite tienes que poner a 1 un bit en una posicion de memoria.
En BASIC se usaria PEEK para leer una posicion de memoria, AND para procesar el byte y luego POKE para poner el valor.
En Ensamblador es igual solo que mas facil!!!

rafa-lito
17/10/2010, 11:42
... (ahora dices que no conoces a los Mojons Twins...)



Sí los conozco :D

Karkayu
17/10/2010, 11:42
Vamos a ver. Quiero aprender a programar ensamblador como si fuera un novato, pero en realidad, en una escala del 0 al 10, digamos que estoy en el 1,5. Hace años me saqué mis titulillos de programador en Basic y en Dbase III+, por lo que lo básico lo sé



(Llevo tanto tiempo queriendo aprender a programar en ensamblador, pero no hay manera de que me entre en la cabeza, empiezo muy bien pero de pronto parece que estoy aprendiendo lenguaje marciano o algo así[wei] Por eso busco aprender ensamblador de la forma más sencilla posible)

Ves? Tu mismo te respondes. Yo solo te estoy dando mi opinion. Y mi opinion es que si no sabes de programación (tu mismo dices que de una escala del 1 al 10 te pones un 1.5) no creo que ensamblador sea lo mas conveniente. ¿Que aún asi quieres meterle mano? Pues ole tus wevos!! :D Y lo digo en serio :)

Un saludo
:brindis:

cybernoid
17/10/2010, 11:47
En BASIC se usaria PEEK para leer una posicion de memoria, AND para procesar el byte y luego POKE para poner el valor.
En Ensamblador es igual solo que mas facil!!!

Más fácil o igual? tendras que leer el byte hacer el and y escribir el byte igual no?

LD A,[40000] ; leo byte (peek)
AND 01010101; and
LD [40000],A ; escribo byte (poke)

josepzin
17/10/2010, 11:52
Más fácil o igual? tendras que leer el byte hacer el and y escribir el byte igual no?

LD A,[40000] ; leo byte (peek)
AND 01010101; and
LD [40000],A ; escribo byte (poke)

Seguro que más fácil!

Cualquier operación con bytes y bits es muchisimo mas facil de hacer en ASM que en BASIC, el ASM tiene montones de instrucciones para operar a nivel de bit, hacer desplazamientos y cosas asi que en BAS no tiene (creo). Y seguro que el código es mas legible en ASM.

Y ni hablar que puedes ponerlo en binario o hexadecimal.

cybernoid: ¿Sabes assembler del 6510???

rafa-lito
17/10/2010, 11:56
Bueno , venga. A ver quien se anima a poner un tutorial para novatos de programacio n en ensamblador para 8 bits :D

josepzin
17/10/2010, 12:01
Basicamente ASM tiene 3 tipos de instrucciones:

- Las que cargan o almacenan datos (leer desde una posicion de memoria y cargarlo en A, B, X, etc. o guardar el valor de A, B, etc en una posicion de memoria)
- Las que procesan datos (AND, OR, desplazamiento de bits, etc)
- Las que saltan y comparan (tipo GOTO, o tipo GOTO IF...)

Tambien estan las de usar la PILA, creo que entrarian en el primer grupo...

Y si mi memoria no falla, no hay mas... con eso se hace todo :D :D

Un detalle importante es que en ASM no existen las variables, existen los registros del procesador (A, B, C, X) y posiciones de memoria (si, que serian como las variables)

Nota: Tengo que reaprender ensamblador!

cybernoid
17/10/2010, 12:39
Seguro que más fácil!

Cualquier operación con bytes y bits es muchisimo mas facil de hacer en ASM que en BASIC, el ASM tiene montones de instrucciones para operar a nivel de bit, hacer desplazamientos y cosas asi que en BAS no tiene (creo). Y seguro que el código es mas legible en ASM.

Y ni hablar que puedes ponerlo en binario o hexadecimal.

cybernoid: ¿Sabes assembler del 6510???

Pero todo eso es igual en C, incluso algunas operaciones se pueden hacer en basic facilmente.

por ejemplo los desplazamientos los puedes simular facilmente en basic con multiplicaciones y divisiones, lo mismo pasa con las operaciones sobre bits, todo son matemáticas.

En C puedes informar valores en hexadecimal o binario a tu gusto, y en el Basic MSX también (en spectrum y c64 no lo se :P)

No se ASM de 6510, solo se un poco de Z80 :) (tengo un c64 por aquí quien sabe si algun día :))

< - >

Basicamente ASM tiene 3 tipos de instrucciones:

- Las que cargan o almacenan datos (leer desde una posicion de memoria y cargarlo en A, B, X, etc. o guardar el valor de A, B, etc en una posicion de memoria)
- Las que procesan datos (AND, OR, desplazamiento de bits, etc)
- Las que saltan y comparan (tipo GOTO, o tipo GOTO IF...)

Tambien estan las de usar la PILA, creo que entrarian en el primer grupo...

Y si mi memoria no falla, no hay mas... con eso se hace todo :D :D

Un detalle importante es que en ASM no existen las variables, existen los registros del procesador (A, B, C, X) y posiciones de memoria (si, que serian como las variables)

Nota: Tengo que reaprender ensamblador!

Te dejas la comunicación IN-OUT :) y seguro que se nos pasa alguna más.

xzakox
17/10/2010, 13:12
Pues si te manejas con inglés, tienes este tutorial para la NES y su 6502, micro usado por varias consolas y ordenadores de la época. El 6510 del C64 es un 6502 un poco mejor, pero muy similar, lo que aprendas de 6502 te valdrá para él.
http://patater.com/gbaguy/nesasm.htm

Luego, para la GameBoy, tienes el ASMSchool, también en ingles, que es una buena base para el asm de la GameBoy, un derivado del z80, lo que aprendas aqui te valdrá para programar luego asm del spectrum, amstrad cpc, msx, etc.
http://gameboy.mongenel.com/asmschool.html

Luego como dije, puedes seguir mi propio tutorial de ensamblador par ala gameboy, que aunque no es un tutorial especifico de ensamblador, sino de como programar la gameboy en si, si que me voy deteniendo en las instrucciones en los primeros ejemplos, explicando cada bloque de código, instrucciones, datos, etc:
http://wiki.ladecadence.net/doku.php?id=tutorial_de_ensamblador
En perfecto (creo) castellano ;-)

Luego tienes también en inglés el tutorial de z80 para las calculadoras Ti-83+ (si, yo tengo una, se pueden programar en ensamblador y hay juegazos tipo mario, tetris, zelda para ellas), en http://www.ticalc.org/archives/files/fileinfo/268/26877.html (descargas el zip y luego lo puedes leer desde el navegador en local).
Este es muy bueno, explica el z80 poco a poco.

Y en español también, muy bueno y conciso, un curso de ensamblador de z80 orientado al spectrum, de sromero:
http://www.speccy.org/wiki/doku.php?id=cursos:ensamblador:indice

Aqui ya tienes buen material para empezar. Ya nos cuentas :-)

josepzin
17/10/2010, 13:31
Pero todo eso es igual en C, incluso algunas operaciones se pueden hacer en basic facilmente.

por ejemplo los desplazamientos los puedes simular facilmente en basic con multiplicaciones y divisiones, lo mismo pasa con las operaciones sobre bits, todo son matemáticas.

En C puedes informar valores en hexadecimal o binario a tu gusto, y en el Basic MSX también (en spectrum y c64 no lo se :P)

No se ASM de 6510, solo se un poco de Z80 :) (tengo un c64 por aquí quien sabe si algun día :))
En C seguro que si, pero en BASIC de C64 es una tortura, eso que dices de las operaciones matematicas para hacer operacione sobre bits, por una parte es LENTO! Y por otra no es facil de entender.
No es lo mismo poner un >> 3 en C (desplazar 3 bits a la derecha) que hacer no se que operaciones en BASIC :D




Te dejas la comunicación IN-OUT :) y seguro que se nos pasa alguna más.
Y el tema de las interrupciones, y seguro que algunas cosas mas!

rafa-lito
17/10/2010, 17:08
Buscando por la internete he encontrado una página que me ha parecido interesantísima. Vienen tutoriales y muchisimas mas cosas:

http://www.consolasparasiempre.net/

jduranmaster
17/10/2010, 18:07
chincheta a esa pagina. tiene un monton de informacion.

josepzin
17/10/2010, 18:09
Cierto, una web en español con informacion de ese tipo no es tan comun.

cybernoid
18/10/2010, 09:32
En C seguro que si, pero en BASIC de C64 es una tortura, eso que dices de las operaciones matematicas para hacer operacione sobre bits, por una parte es LENTO! Y por otra no es facil de entender.
No es lo mismo poner un >> 3 en C (desplazar 3 bits a la derecha) que hacer no se que operaciones en BASIC :D

Piensa que los desplazamientos de bytes solos son divisiones (si son a la izquierda) y multiplicaciones (si son a la derecha)

< - >
por cierto,

En esta pagina de mi web tienes información sobre el z80 y algunas cosillas más: http://alonesoft.blogspot.com/p/documentacion-z80specmsxams.html

josepzin
18/10/2010, 10:40
Piensa que los desplazamientos de bytes solos son divisiones (si son a la izquierda) y multiplicaciones (si son a la derecha)

A eso me refiero, por una parte es mucho mas claro ver UNA instruccion que desplaza tantos bits a la izq/der que ver una operación matemática.

Y ni hablar del coste que tiene hacer una operación como multiplicar/dividir, al lado de SOLO UNA desde Ensamblador.

Muy interesante tu web, que además tiene cosas en español.

swapd0
18/10/2010, 21:56
Piensa que los desplazamientos de bytes solos son divisiones (si son a la izquierda) y multiplicaciones (si son a la derecha)


Desplazar a la izquierda es multiplicar por una potencia de 2 (2 elevado al numero de desplazamientos), desplazar a la derecha es dividir por una potencia de 2.

cybernoid
18/10/2010, 22:22
Desplazar a la izquierda es multiplicar por una potencia de 2 (2 elevado al numero de desplazamientos), desplazar a la derecha es dividir por una potencia de 2.

correcto, fallo mio :P