segunda-feira, 20 de abril de 2020

Programar em Z80 assembly no sec XXI: cross assemblers

Dado as múltiplas limitações da plataforma ZX Spectrum, os avanços tecnológicos, e o avanço de emulação, não é comum desenvolver extensivamente em assembly usado o ZX Spectrum como plataforma de desenvolvimento. Como tal, usa-se o que são conhecido como cross-assemblers, ou seja, assemblers noutras plataformas. estes geram ficheiros binários, incluindo ficheiros em formato .ROM, .TZX, .TAP, .Z80 e .SNA.

Neste artigo, vamos falar de 3 cross-assemblers, que podem ser usados em vários sistemas operativos. Apenas salientamos alguns pontos, que não são uma lista exaustiva:

  • Pode ser instalado de binário, fácil de compilar. 
  • Cria facilmente ficheiros em .tap e .tzx, com loaders BASIC.
  • Suporta Z80 e 8080.
  • Macros.
Assemblar um programa assembly:

pasmo --tap prog.asm prog.tap

Assemblar um programa assembly com loader ZX BASIC:

pasmo --tapbas prog.asm prog.tap

No ASM:
                       ORG 50000
                       RET
                       END 50000

A directiva END indica que o TAP é executado a partir do endereço 50000.

  • Tem de ser compilado. Dificuldade mediana.
  • Suporta fácil de usar de SNA e TAP
  • Multi-arquitectura.
  • Macros.
  • Pode dar problemas (mal compilado?) a ser usado em Mac e Linux.
 sjasmplus prog.asm

    DEVICE plain
    ORG 32768
StartProg:
    JP $

    ;SAVESNA "snapshotname.sna",StartProg
    SAVETAP "snapshotname.tap",StartProg

  • Pode ser instalado de binário.
  • Tem templates para .tap e .tzx.
  • Tem desenvolvimento recente.
  • Ligado ao projecto sdcc (compilador C para Z80)
  • Tem templates para geração de binário em .tap, .tzx
  • Tem templates para loaders BASIC ; o template  do loader é que vai definir onde o código arranca (ver os exemplos que vem com o zasm)
  • Macros.
  • Suporta z80 e 8080.
  • Suporta instruções não documentadas de Z80.
  • Plug-in para TextMate.
  • Aparenta ser indicado para utilizadores mais experientes.

Sem comentários:

Enviar um comentário