Proyecto Assembler 6809

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Proyecto Assembler 6809

Mensajepor luiscoco » 17 Sep 2017 17:07

No encuentro un post que creo que empece, así que no tuve mas remedio que empezar otro.

Ya se que me van a decir que ensambladores y des-ensambladores hay muchos, pero aun no encuentro uno que haga lo que yo quiero.
Si tienes un código de una revista o un PDF. no te lo entiende ningún ensamblador, así que, ha hacerme uno.

DESENSAMBLADOR
Ya tengo uno que desensambla muy bien, de código muy corto, que genera tanto el desensamblado como las columnas de, N# de linea, Address, Data binaria, Labels, OPCODE, DATOS y Comentarios, según lo que se desee, Esto lo obtiene desde un .BIN o .ROM normalmente a partir de $C000

Las rutinas son analizadas y si hay un RSR, PULS PC o PULU PC, se supone que termino una rutina.
Después de los JMP, BRA y LBRA, también que terminan rutinas, aunque esto no es cierto todo el tiempo.
Los JMP, JSR, y todos los Branch marcaran un label(Etiqueta) en el destino

Hasta acá bien, ahora faltan las variables, símbolos y zonas de memoria para datos.
Desensamblador.png
Desensamblador.png (24.82 KiB) Visto 251 veces
Desensamblador Rutinas.png
Desensamblador Rutinas.png (19.96 KiB) Visto 251 veces


ASSEMBLER
En esta parte comenzé tratando de leer algunos fuentes, pero los hay separados por TABs, solo por espacios(columnas fijas), mezclas de ambos y con mas o menos columnas, con varios formatos para los comentarios y address, algunos separan el address de los datos por / otros sin nada, los comentarios a veces son por un símbolo * y otras veces por la posición, vamos un lió.

Lo primero es ordenar una fuente de texto, cuando extraigo por ejemplo el unravelled desde el PDF, se le quitan todas las columnas
Si es una vista por CHROME o un viso de web se ve así, dependiendo de donde lo pegué, a veces todas las lineas juntas, si no, los tab se convierten en espacios.

Código: Seleccionar todo

0001 8000 EXBAS EQU $8000
0002 A000 BASIC EQU $A000
0003 C000 ROMPAK EQU $C000
0004
0005 0008 BS EQU 8 BACKSPACE
0006 000D CR EQU $D ENTER KEY
0007 001B ESC EQU $1B ESCAPE CODE
0008 000A LF EQU $A LINE FEED
0009 000C FORMF EQU $C FORM FEED
0010 0020 SPACE EQU $20 SPACE (BLANK)
0011
0012 003A STKBUF EQU 58 STACK BUFFER ROOM
0013 045E DEBDEL EQU $45E DEBOUNCE DELAY
0014 00FA LBUFMX EQU 250 MAX NUMBER OF CHARS IN A BASIC LINE
0015 00FA MAXLIN EQU $FA MAXIMUM MS BYTE OF LINE NUMBER
0016
0017 2600 DOSBUF EQU $2600 RAM LOAD LOCATION FOR THE DOS COMMAND
0018 0020 DIRLEN EQU 32 NUMBER OF BYTES IN DIRECTORY ENTRY
0019 0100 SECLEN EQU 256 LENGTH OF SECTOR IN BYTES
0020 0012 SECMAX EQU 18 MAXIMUM NUMBER OF SECTORS PER TRACK
0021 1200 TRKLEN EQU SECMAX*SECLEN LENGTH OF TRACK IN BYTES
0022 0023 TRKMAX EQU 35 MAX NUMBER OF TRACKS
0023 004A FATLEN EQU 6+(TRKMAX-1)*2 FILE ALLOCATION TABLE LENGTH
0024 0044 GRANMX EQU (TRKMAX-1)*2 MAXIMUM NUMBER OF GRANULES
0025 0119 FCBLEN EQU SECLEN+25 FILE CONTROL BLOCK LENGTH
0026 0010 INPFIL EQU $10 INPUT FILE TYPE
0027 0020 OUTFIL EQU $20 OUTPUT FILE TYPE
0028 0040 RANFIL EQU $40 RANDOM/DIRECT FILE TYPE
0029
0030 * PSEUDO PSEUDO OPS
0031 0021 SKP1 EQU $21 OP CODE OF BRN — SKIP ONE BYTE
0032 008C SKP2 EQU $8C OP CODE OF CMPX # - SKIP TWO BYTES
0033 0086 SKP1LD EQU $86 OP CODE OF LDA # - SKIP THE NEXT BYTE
0034 * AND LOAD THE VALUE OF THAT BYTE INTO ACCA — THIS
0035 * IS USUALLY USED TO LOAD ACCA WITH A NON ZERO VALUE
0036
0037 * REGISTER ADDRESSES
0038 FF00 PIA0 EQU $FF00 PERIPHERAL INPUT ADAPTER #0
0039 FF20 PIA1 EQU $FF20 PERIPHERAL INPUT ADAPTER #1
0040 FF20 DA EQU PIA1+0 DIGITAL/ANALOG CONVERTER
0041 FF40 DSKREG EQU $FF40 DISK CONTROL REGISTER
0042 FF48 FDCREG EQU $FF48 1793 CONTROL REGISTER
0043 FFC0 SAMREG EQU $FFC0 SAM CONTROL REGISTER
0044
0045 0000 ORG 0
0046 0000 SETDP 0
0047
0048 0000 ENDFLG RMB 1 STOP/END FLAG: POSITIVE=STOP, NEG=END


tanto es asi que alguien se hizo a mano esto:
* Color BASIC 1.3
* Copied from the PDF version of Color BASIC Unravelled.
* Fixed up to assemble in Mamou
* Revision Histor
* 04/04/2009 r21 Color BASIC 1.3 (match ROM)
* 04/03/2009 r18 Color BASIC 1.2 (match ROM)

http://www.colorcomputerarchive.com/coc ... r%20Basic/

Yo como soy muy flojo, hice un programa que me leyera estos fuentes y sacar correctamente las columnas y así elegir solo las de asembler y comentarios.

Ensamblador acondicionador de texto.png
Ensamblador acondicionador de texto.png (40.05 KiB) Visto 235 veces


CONTINUO DESPUES

BlackHole
Mensajes: 686
Registrado: 03 Ago 2011 23:07
Agradecimiento recibido: 31 veces

Re: Proyecto Assembler 6809

Mensajepor BlackHole » 18 Sep 2017 16:17

Por casualidad acabo de encontrar un ensamblador multiprocesador ¡online! con soporte para 6809 en https://www.asm80.com/

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Proyecto Assembler 6809

Mensajepor luiscoco » 18 Sep 2017 19:40

A ver

El código de unravelled no lo entiende

Y el de asembler puro tampoco, apenas marca en rojo algunos comandos.
También tiene una serie de tools que desde un LST lo para a ASM pero en realidad solo corta X bytes del lado izquierdo, no hace el trabajo necesario
Otro de BIN a ASM, arrojas un ROM o BIN y obtienes ASM .db con los datos en $, 0x o decimal, también lo pasa a JS array
Otro de HEX a ASM

Asm80-r.png
Asm80-r.png (335.26 KiB) Visto 172 veces

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Proyecto Assembler 6809

Mensajepor pser1 » 18 Sep 2017 22:18

Hola Luis,
en el momento en que tengas el contenido del unravelled bien copiado como texto, trata de compilarlo
con los mas conocidos y solventes:
- ASM6809 de Ciaran Anscomb (Sixxie) ... siempre podría echarnos un cable
- LWASM del LWTOOLS de William Astle, éste lo usan incluso para NitrOS-9 según su página en SourceForge
saludos
pere

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Proyecto Assembler 6809

Mensajepor luiscoco » 19 Sep 2017 02:50

Ok, ya lo hago, porque esto es para dragon unravelled

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Proyecto Assembler 6809

Mensajepor pser1 » 19 Sep 2017 09:50

Hola Luis,
me envió un correo Tormod respecto a tus andanzas en retrowiki, te lo adjunto (en inglés):
---------------------------------------------------------------------------------------------------------------------------
I sometimes get to do some quick lurking at retrowiki.es, but I never find time to log in and start writing something in Spanish :D
Maybe one day google-translate will support me.

luiscoco is looking at the CoCo BASIC ROM disassembly. The latest version r23 (and canonical source for this) is in the Toolshed
repository, under cocoroms/
Toolshed even still include the mamou assembler, although LWTOOLS is recommended instead.

The closest we get to "Unravelled..." for the Dragon is the disassembly made by Prime or the one by sixxie, both are too careful
to publish them, but I got them privately on request.
---------------------------------------------------------------------------------------------------------------------------
Espero que el traductor de google no sea demasiado traidor ;-)
saludos
pere

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Proyecto Assembler 6809

Mensajepor luiscoco » 19 Sep 2017 14:24

pser1 escribió:Hola Luis,
me envió un correo Tormod respecto a tus andanzas en retrowiki, te lo adjunto (en inglés):
---------------------------------------------------------------------------------------------------------------------------
I sometimes get to do some quick lurking at retrowiki.es, but I never find time to log in and start writing something in Spanish :D
Maybe one day google-translate will support me.

luiscoco is looking at the CoCo BASIC ROM disassembly. The latest version r23 (and canonical source for this) is in the Toolshed
repository, under cocoroms/
Toolshed even still include the mamou assembler, although LWTOOLS is recommended instead.

The closest we get to "Unravelled..." for the Dragon is the disassembly made by Prime or the one by sixxie, both are too careful
to publish them, but I got them privately on request.
---------------------------------------------------------------------------------------------------------------------------
Espero que el traductor de google no sea demasiado traidor ;-)
saludos
pere

Entendido, si quiere aportarlo para ampliarlo, bien, pero hay que tener en cuenta que el definitivo lo haría publico.
Si no, yo lo haré, veo que hay muchos trozos idénticos en coco, estoy haciendo un programa que copia las descripciones de los trozos iguales, y si no me sale bien, lo haré a mano, pero hay un 60% igual

PD: si quiere dile que postee en ingles, no dirán nada o que abra un hilo en ingles y yo le escribo

Avatar de Usuario
pser1
Mensajes: 2013
Registrado: 08 Dic 2012 18:34
Agradecido : 198 veces
Agradecimiento recibido: 181 veces

Re: Proyecto Assembler 6809

Mensajepor pser1 » 19 Sep 2017 16:19

luiscoco escribió:Entendido, si quiere aportarlo para ampliarlo, bien, pero hay que tener en cuenta que el definitivo lo haría publico.

Vamos a ver, Luis. Lo que Tormod te dice es que hay dos personas que han empezado el trabajo de desensamblar el DOS de Dragón
y NO lo publican, porqué o está inacabado o no desean hacerlo público.
Esto implica que Tormod no publicará NADA que no sea suyo. Si realmente quieres estas versiones, tendrás que contactar con los
autores y pedírselo explicando para que lo quieres y avisarles de que tu trabajo final SERÁ publicado, indicando que hará mención
a la procedencia del fichero original ...
Si no, yo lo haré, veo que hay muchos trozos idénticos en coco, estoy haciendo un programa que copia las descripciones de los trozos iguales, y si no me sale bien, lo haré a mano, pero hay un 60% igual

Existe una lista de 'equivalencias' de direcciones de rutinas CoCo-Dragón. No están todas, pero hay bastantes (unas 157). Te adjunto
un zip con el documento de texto que las detalla, por si te sirve de ayuda ...
PD: si quiere dile que postee en ingles, no dirán nada o que abra un hilo en ingles y yo le escribo

Así lo haré, le enviaré un correo comentándole esta posibilidad, gracias
saludos
pere
dragon-CoCo ROM equivs.zip
(3.83 KiB) Descargado 2 veces

Avatar de Usuario
luiscoco
Mensajes: 2328
Registrado: 15 May 2011 04:23
Ubicación: Caracas, Venezuela
Agradecido : 30 veces
Agradecimiento recibido: 44 veces
Contactar:

Re: Proyecto Assembler 6809

Mensajepor luiscoco » 19 Sep 2017 16:41

Ok, entendido, y muchas gracias


Volver a “Tandy CoCo”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado