Autor Tema: lucturas recomendadas ensamblador z80 y 68k  (Leído 5028 veces)

Pofo

lucturas recomendadas ensamblador z80 y 68k
« en: 10 de Mayo de 2014, a las 18:48 horas »
Que lecturas recpmendais los que controlais marcos, edcross y demas?

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #1 en: 10 de Mayo de 2014, a las 18:54 horas »
Yo controlo bastante el Z80, ¿a qué te refieres sobre lesturas recomendadas? ¿A cómo se hacen pogramas en Z80?
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

enricnes

  • *****
  • Mensajes: 362
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #2 en: 10 de Mayo de 2014, a las 19:10 horas »
Pofo,
Ensamblador es ensamblador. Todas las cpu comparten un monton de instrucciones y lo que aprendas para una cpu ten por seguro que te servira en otra cpu.
Para Z80 uno recomendado es este: http://www.msxarchive.nl/pub/msx/mirrors/msx2.com/zaks/index-nf.htm

ArcadeHacker

  • Con experiencia
  • ***
  • Mensajes: 644
  • .
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #3 en: 10 de Mayo de 2014, a las 20:21 horas »
Mantengo mi recomendación para los que empiezan de cero:

Spectrum Machine Language for the Absolute Beginner

http://www.worldofspectrum.org/infoseekid.cgi?id=2000363

Un libro extremadamente bien escrito y comprensible.
Busco placa de Taito: Chack'n Pop.

Marcos75

  • ****
  • Mensajes: 3042
  • Arcadero de los 80s
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #4 en: 10 de Mayo de 2014, a las 20:32 horas »
Yo hace un millón de años me compré "Programación del z80", de Rodnay Zaks. Era el libro de referencia de aquella época.

Yo empezaría por el z80, porque luego te resultará muy fácil dar el salto al 68000.

Un saludo.

EDITO: http://www.maquinitas.org/app/download/5381998459/Programacion+del+Z80+%28www.maquinitas.org%29.rar?t=1368257295

« última modificación: 10 de Mayo de 2014, a las 20:35 horas por Marcos75 »


Pofo

Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #5 en: 10 de Mayo de 2014, a las 20:49 horas »
Muchas gracias, empezare por los que menciona matcos y edcross, a ver.

Bubu, yo es que de programacion no se casi nada, estudie un plan muy antiguo en industriales y de programacion veiamos modula-2 que era como pascal en un at.

Entiendo que ensamblador es de bajo nivel y se manejan ya posiciones de memoria y ordenes a cpu y tal. Modula 2 es ya alto nivel y bueno, es que ni me acuerdo, hablamos que lo estudie hace unos 20 años y me acuerdo que mi programa para entregar la practica era de encriptado pero muy sencillo con llave.

Lo dicho, gracias.

Characa

  • Con experiencia
  • ***
  • Mensajes: 916
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #6 en: 11 de Mayo de 2014, a las 10:08 horas »
Yo empecé con éste:



Y ahora uso este cacharrejo para hacer "inventos":



Usa un 6502, pero vamos, el modus operandi es igual en todos los uPs

Saludos.

Characa

  • Con experiencia
  • ***
  • Mensajes: 916
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #7 en: 11 de Mayo de 2014, a las 10:28 horas »
Cita de: Pofo en10 de Mayo de 2014, a las  20:49 horas

Entiendo que ensamblador es de bajo nivel y se manejan ya posiciones de memoria y ordenes a cpu y tal. Modula 2 es ya alto nivel y bueno, es que ni me acuerdo, hablamos que lo estudie hace unos 20 años y me acuerdo que mi programa para entregar la practica era de encriptado pero muy sencillo con llave.

Lo dicho, gracias.

El lenguaje ensamblador según lo entiendo yo, es código máquina "avanzado" particular de cada uP, se usan nmemónicos para facilitar la programación, pues programar en lenguaje máquina puro y duro (código binario) sería imposible.

Para poner un ejemplo clarificador: En lenguaje ensamblador, vez de usar 00000110 se pone 6 y para "decirle" al uP que ejecute una instrucción concreta se invoca a su nmemónico correspondiente (ADD, NOP, AND, OR...) y no al código binario.

Mientras escribo esto, recuerdo que entre el código binario y el ensamblador está el código hexadecimal, es un rollo, pero para pequeños programitas como los que hago en el MICRO-KIM, vale.

Un saludo.

Pd: Os dejo éste enlace sobre las instrucciones del Z80: http://www.infor.uva.es/~bastida/OC/Tablas%20Z80%20SPARC%20y%20ASCII.pdf

« última modificación: 11 de Mayo de 2014, a las 10:34 horas por Characa »

Pofo

Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #8 en: 11 de Mayo de 2014, a las 12:43 horas »
Desconozco que es ese cacharro characa imagino por ese teclado hexadecimal que inyectara codigo leera, modificara o similar. Si quieres comentarlo...

Wikipedia jeje...

El código escrito en lenguaje ensamblador posee una cierta dificultad de ser entendido ya que su estructura se acerca al lenguaje máquina, es decir, es un lenguaje de bajo nivel.
El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para un microprocesador, puede necesitar ser modificado, para poder ser usado en otra máquina distinta. Al cambiar a una máquina con arquitectura diferente, generalmente es necesario reescribirlo completamente.
Los programas hechos por un programador experto en lenguaje ensamblador son generalmente mucho más rápidos y consumen menos recursos del sistema (memoria RAM y ROM) que el programa equivalente compilado desde un lenguaje de alto nivel. Al programar cuidadosamente en lenguaje ensamblador se pueden crear programas que se ejecutan más rápidamente y ocupan menos espacio que con lenguajes de alto nivel.
Con el lenguaje ensamblador se tiene un control muy preciso de las tareas realizadas por un microprocesador por lo que se pueden crear segmentos de código difíciles y/o muy ineficientes de programar en un lenguaje de alto nivel, ya que, entre otras cosas, en el lenguaje ensamblador se dispone de instrucciones del CPU que generalmente no están disponibles en los lenguajes de alto nivel.
También se puede controlar el tiempo en que tarda una rutina en ejecutarse, e impedir que se interrumpa durante su ejecución.


...

Para torpes como yo...http://es.wikipedia.org/wiki/Lenguaje_ensamblador

Veo que efectivamente es bajo nivel que combina instruciones y posiciones hexadecimales.

El libro de marcos y el de edcross, muy buenos... A ver si me da la mocha para entenderlo y pasar al nivel de edcross en reparaciones jijijiji, esto con un osc., un comparador y el 9100 me parecen un conjunto muy bueno (sin desdeñar mi querida sonda de 8 ?).

No aspiro a mas que poder comprender el codigo lo suficiente para trazar un programa, mas o menos como lo que hizo edcross en su interesante hilo del bubble bobble.

Saludos y gracias compañeros.

Characa

  • Con experiencia
  • ***
  • Mensajes: 916
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #9 en: 11 de Mayo de 2014, a las 13:00 horas »
Cita de: Pofo en11 de Mayo de 2014, a las  12:43 horas
Desconozco que es ese cacharro characa imagino por ese teclado hexadecimal que inyectara codigo leera, modificara o similar. Si quieres comentarlo...


Pofo, es un "entrenador" por llamarlo de algún modo, puedes ejecutar pequeños programitas como un reloj, un texto, sumar dos cifras, operaciones lógicas etc...Este en particular está basado en el KIM-1.

Has oído hablar del JUNIOR COMPUTER, AIM-65, OHIO SCIENTIFIC...?, es un buen punto de partida para practicar con el lenguaje máquina y/o ensamblador haciendo pequeños programas.

El que tengo en particular, también puedes cargarle programas más extensos a través del puerto serie que lleva.

Info sobre el MICRO-KIM: http://www.brielcomputers.com/wordpress/?cat=24

Un saludo.

Bubu

  • ***
  • Mensajes: 2750
  • Old, pero muuy old school
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #10 en: 11 de Mayo de 2014, a las 13:14 horas »
Y como un ejemplo siempre es lo más mejón, pongo cómo sumar dos números.

En z80:

Código: [Seleccionar]
ld a, 0xA0
ld b, 0x05
add a, b
ld c, a

Al terminar ese pograma, 'c' vale 0xA5 (la suma de 'a' y 'b')

En lenguaje de "alto" nivel, p.ej. BASIC

Código: [Seleccionar]
LET c = 0xA0 + 0x05

Al terminar ese pograma, c vale 0xA5 (la suma de 'a' y 'b')

Por cierto, los números 0xA0 y 0x05 los he puesto en hexadecimal, pero igualmente los podrías haber puesto en decimal, binario u octal.
Si algo funciona... ¡¡ no lo toques !!

¡¡ ni de coña !!

Characa

  • Con experiencia
  • ***
  • Mensajes: 916
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #11 en: 11 de Mayo de 2014, a las 13:38 horas »
Cita de: Bubu en11 de Mayo de 2014, a las  13:14 horas


En lenguaje de "alto" nivel, p.ej. BASIC

Código: [Seleccionar]
LET c = 0xA0 + 0x05

Al terminar ese pograma, c vale 0xA5 (la suma de 'a' y 'b')

Por cierto, los números 0xA0 y 0x05 los he puesto en hexadecimal, pero igualmente los podrías haber puesto en decimal, binario u octal.

...Y donde envías el resultado??

El BASIC no permite sumar A PELO números hexadecimales, se debe emplear la función HEX, BIN u OCT, si no se indica, por defecto sólo admite números enteros.

El ejemplo podría quedar tal que así:

10 LET A=1+2
20 PRINT A

O también:

10 A=1
20 B=2
30 C=A+B
40 PRINT C

En los "modernos" BASIC se puede omitir la sentencia LET.

Un saludo.
« última modificación: 11 de Mayo de 2014, a las 13:40 horas por Characa »

Pofo

Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #12 en: 11 de Mayo de 2014, a las 18:58 horas »
Cita de: Bubu en11 de Mayo de 2014, a las  13:14 horas
Y como un ejemplo siempre es lo más mejón, pongo cómo sumar dos números.

En z80:

Código: [Seleccionar]
ld a, 0xA0
ld b, 0x05
add a, b
ld c, a

Al terminar ese pograma, 'c' vale 0xA5 (la suma de 'a' y 'b')

En lenguaje de "alto" nivel, p.ej. BASIC

Código: [Seleccionar]
LET c = 0xA0 + 0x05

Al terminar ese pograma, c vale 0xA5 (la suma de 'a' y 'b')

Por cierto, los números 0xA0 y 0x05 los he puesto en hexadecimal, pero igualmente los podrías haber puesto en decimal, binario u octal.

Gracias bubu, realmente voy leyendo y me va refrescando la memoria (muchos años) de cuando convertia de hex a bin con la calculadora,

Creo que me interesa mas el fluke para meter codigo que un entrenador porque con el fluke y una placa tengo lo que necesito.

Con el nivel que estoy viendo por el foro ahora en programacion (bubu, edcross, marcos) podriais animaros y sobre la base de algun juego curraros algun mod, por ejemplo modificar algun cartelito o algo y que os publiquen en mame un bootleg aumapero.

Lo dicho, gracias, voy a ir leyendo y si tengo dudas te abraso bubu jijijiji

Rockman

  • Con experiencia
  • ***
  • Mensajes: 1280
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #13 en: 11 de Mayo de 2014, a las 22:09 horas »
Pofo, yo no he dicho nada sobre estos libros porque realmente nunca los he leido. Hace poco eché un vistazo por la red, y el que recomendaban en muchos sitios es el mismo que recomienda Marcos. el del Sr. Zacks.

El que recomienda edcross he encontrado uno que se llama igual. Edcross, es de los viejos viejos que está impreso como a máquina de escribir?

Echando un vistazo al de Zacks, veo que se centra absolutamente en el ensamblador el Z80 y no entra demasiado en el hardware asociado. Pensar que las placas arcade eran de lo más puntero de la época y llevaban las cpus al limite de sus posibilidades. Entender completamente el programa de ensamblador de una placa arcade puede costar un poquillo. No es a+b=4, va un pelín más allá. Y encima como no tenemos los programas comentados, ver lo que hace un programa de asembler hay que tener mucha mucha soltura con una cpu en concreto y dominar primero la estructura del hardware.

Pero insisto, desde mis limitados conocimientos, que para reparar placas no creo yo que sea necesario dominar el ensamblador. Otra cosa que uno quiera crear/modificar/emular aplicaciones o juegos, que también es muy interesante. Claro que son un aporte a la hora de analizar el funcionamiento, pero creo yo que es mejor primero dominar el hardware/ttls/buses/memorias y como se interconexionan y funcionan que conocer el codigo que corren al dedillo. (Esa parte Pofo creo que tu la tienes más que superada).
Que conste que soy el primero al que le gusta aprender como funcionan las cosas y que el saber no ocupa lugar.

Saludos.
RESUMEN: Proyecto de incluir versiones españolas de juegos a Mame (Oficial): http://www.aumap.org/foro/index.php?topic=1270.0

ArcadeHacker

  • Con experiencia
  • ***
  • Mensajes: 644
  • .
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #14 en: 11 de Mayo de 2014, a las 22:13 horas »
Cita de: Rockman en11 de Mayo de 2014, a las  22:09 horas
El que recomienda edcross he encontrado uno que se llama igual. Edcross, es de los viejos viejos que está impreso como a máquina de escribir?

Correcto, esta es la descarga ftp://ftp.worldofspectrum.org/pub/sinclair/books/SpectrumMachineLanguageForTheAbsoluteBeginner.pdf

A diferencia del 99% de los textos de ensamblador (van muy a saco), este se puede entender.
Busco placa de Taito: Chack'n Pop.

Pofo

Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #15 en: 12 de Mayo de 2014, a las 00:07 horas »
Rockman esto es todo hobbie para mi, de echo mi trabajo y mis estudios nada y menos tienen que ver con la electronica y la programacion (muy poco vamos).

Todo empezo para mi cambiando un buffer de mandos...me parece interesante aprender programacion porque ayuda a comprender mejor el hard y es su complemento.

Poco a poco, llevo años con esto...dentro de 3-4 años a ver si empiezo a chanar algo en programacion, no hay prisas a mi edad jajajajaj

Rockman

  • Con experiencia
  • ***
  • Mensajes: 1280
Re:lucturas recomendadas ensamblador z80 y 68k
« Respuesta #16 en: 22 de Mayo de 2014, a las 13:59 horas »
Añado un antiguo libro que parece interesante y creo que es el complemento al libro que colgó Marcos sobre el ensamblador del Z-80. De hecho en el libro de Marcos hace referencia de este que os pongo aquí.

Se llama Microprocessor Interfacing Techniques, donde se centra más en como conectar el Z-80 hacia el "mundo exterior". De un tal Sr. Lesea y un tal Sr. Zaks que se ve que controlaban un poco el tema.

https://archive.org/download/MicroprocessorInterfacingTechniques/LeseaZaks-MicroprocessorInterfacingTechniques.pdf

Mañana examen! ;-)
RESUMEN: Proyecto de incluir versiones españolas de juegos a Mame (Oficial): http://www.aumap.org/foro/index.php?topic=1270.0