wla assemblador (65xx, 68xx, z80, 8008, 8080 e huc6280)

Discussão em 'Dicas e tutoriais' iniciado por kodo no kami, 2 Fevereiro 2020.

  1. kodo no kami
    Offline

    kodo no kami Membro Conhecido

    Afiliado:
    16 Dezembro 2015
    Mensagens:
    244
    Sexo:
    Masculino
    Avaliações:
    +330 / -0
    e ae galera o WLA é um assemblador/compilador bem interessante para retro-programação voltado para as arquiteturas 65xx (6502, 65c02, 6510, 65816), alem de compilar para outras arquiteturas como os da motorola 68xx (6800, 6801, 6809), e outras como z80, 8008, 8080, spc700 e huc6280. Podemos baixar e compilar ele no site oficial ou pelo github do autor

    site oficial wla
    github (vhlein)

    para compilar vou usar o xubuntu e baixa ele pelo github usando o git (nem devo dizer que é necessario as ferramenntas ja instaladas para compilar ele ne tipo o gcc, cmake e etc)

    Código (Forge Crash):
    git clone https://github.com/vhelin/wla-dx
    [​IMG]

    depois de baixado basta entrar no diretorio com terminal

    Código (Forge Crash):
    cd wla-dx
    usamos o comando cmake . para configurar a source

    Código (Forge Crash):
    cmake .
    [​IMG]

    agora usamos o comando make para compilar o compiador

    Código (Forge Crash):
    make
    [​IMG]

    se tudo ocorreu bem usamos o sudo make install

    Código (Forge Crash):
    sudo make install
    [​IMG]

    agora podemos compilar os nossos codigos para alguma daquelas arquiteturas citada, nesse exemplo vou apenas gerar um simples contador em 6502 que começa com o valor 0 e vai incrementando ate 10 (nesse compilador tem que colocar os mapas de memoria e bancos de roms .MEMORYMAP e .BANKROMMAP)

    Código (Forge Crash):
    .MEMORYMAP
     DEFAULTSLOT 0
     SLOTSIZE $2000
     SLOT 0 $0
    .ENDME

    .ROMBANKMAP
     BANKSTOTAL 1
     BANKSIZE $2000
     BANKS 1
    .ENDRO

    .BANK 0 SLOT 0
    .ORG 0

     LDA #0
    repetir:
     cmp #10
     beq fim
     adc #1
     jmp repetir
    fim:
     jmp fim
    .END
     
    para compilar usamos o wla-XXX (ex: wla-6502, wla-z80, wla-6800 e etc), com isso vai gerar o arquivo objeto (no meu caso kodo.o)

    Código (Forge Crash):
    wla-6502 -o kodo.o kodo.asm
    [​IMG]

    para linkar usamos o wlalink, so que para isso precisamos antes criar um arquivo de linkagem com os seguintes o parametro [objects] e o nosso arquivo objeto(chamei o arquivo de kodo.l)

    Código (Forge Crash):
    [objects]
    kodo.o
    com o arquivo de linkagem pronto usamos o wlalink seguido do arquivo de linkagem e o arquivo de saida que vai ser o nosso binario

    Código (Forge Crash):
    wlalink kodo.l kodo.bin
    [​IMG]

    pronto o nosso binario para 6502 esta pronto bastando simular ele em simulador/emulador ou ate mesmo gravar ele em uma ROM e roda em um 6502 real (um dia eu compro um 6502 para brincar T.T )

    [​IMG]

    bom galera é isso o wla é um excelente compilador para quem curte retoprogramação ou queira se aventurar em criar games para nes, snes e gb ou outra plataformas daquelas CPUs \o

    by kodo no kami
     
    • Top Top x 1
    • Amei Amei x 1

Compartilhe esta Página