Arquivo da tag: Assembler

Crônica de uma morte anunciada: o Coprocessador Numérico x87

Assim como quem não quer nada, resolvi começar a ler sobre programação Assembly para processadores Intel do seu PC velho… mas a versão muderna, cheia de zilhões de instruções, registradores a dar com pau, mil maneiras de fazer operações paralelas e o escambau. Por que alguém faria algo tão insano? Ora raios…

Pois bem, ao longo dos mais de 40 anos que a arquitetura sobreviveu, níveis e mais níveis de funcionalidade foram sendo adicionados uns por cima dos outros, mantendo sempre todas as estruturas anteriores presentes:

16 bits modo real16 bits modo protegido32 bitsMMX64 bitsSSEAVX … e contando.

Correndo por fora, existiu, lá nos primórdios, um bicho chamado 8087 – o Coprocessador Matemático. Se seu PC tivesse esse chip, ele adicionava instruções para fazer operações matemáticas com números reais, não apenas inteiros, e também operações como seno, cosseno, logaritmos… a partir do 486, ele passou a ser incorporado ao processador principal, mas todas as velhas instruções como FMUL, FDIV, FCOS etc estavam lá, e usá-las sempre foi a melhor maneira de fazer contas. A alternativa era usar bibliotecas de ponto flutuante, lentas e nem sempre dentro do padrão (é o que os nossos retromicros clássicos usam).

Mas aí que tá… os novos conjuntos de instruções SSEn e AVX, planejados para realizar várias operações ao mesmo tempo num conjunto grande de números, também fazem operações de ponto flutuante. Aí, no capítulo sobre otimização deste livro, leio o seguinte:

Os seguintes critérios devem ser observados ao escrever código em Assembly que realize aritmética de ponto flutuante:
* (…)
* Em código novo, use as funções escalares das arquiteturas SSE ou AVX, em vez da FPU x87.

Pois é, a utilidade do velho chip, amigão dos estudantes de engenharia (e de tantas outras áreas) nos anos 80, chegou ao fim. Mais um dinossauro se dirigindo lentamente ao poço de piche. É provável que daqui a alguns anos, os quatro primeiros itens da cadeia de setas acima sejam abandonados e os novos processadores sejam puramente 64 bits.

O último negócio inacabado da RetroRio (Parte 2)

Fechamos o 1º Ciclo de Palestras Retrocomputaria com a palestra sobre desenvolvimento de jogos para MSX com Giovanni Nunes, onde o autor fala sobre a sua experiência, e como empregou técnicas de desenvolvimento atuais para desenvolver jogos para uma plataforma clássica.

ATENÇÃO: Palestra com excessiva concentração de nerdice e altos graus de repimboca da parafuseta em 8 bits. Só para os fortes.

Agora que finalmente acabamos os negócios inacabados, nosso muito obrigado ao Giovanni pela palestra instrutiva, ao Mario Trotta pela deliciosa entrevista na outra metade do Ciclo, ao Michel Maldonado (que a princípio não tem planos de virar pastor) pela edição dos vídeos, e a todos que abrilhantaram esta RetroRio.

Pílulas

Desenvolvendo para o COSMAC num ATARI 8-bits

rca_cdp1802_pecom64

William H. Donnelly é um entusiasta do maravilhosamente bizarro microprocessador 1802 da RCA (aquele que foi ao espaço e aguenta explosões de bombas nucleares), desencavou e postou no grupo COSMAC ELF and 1802 Microcomputing no Yahoo!Groups — Sim! Tem grupo até disso — esta mosca branca aqui:

Não vi nenhuma referência disto em lugar nenhum, então pensei em divulgar caso alguém esteja interessado.

COSMATIC era um cross-assembler de 1802 que era comercializado para a linha de computadores Atari 400/800 em 1982. É uma coisa meio estranha de se criar, que dirá vender (como um produto legítimo para Atari), e de acordo com o autor eles não venderam muitas cópias, se é que venderam alguma. Ele foi idealizado principalmente para dar um início à divisão de software (?) deles, tipo botar algumas moedas no chapeuzinho de doações. O autor tinha experiência prévia com o 1802, então ele decidiu escrever esse software porque seria divertido e interessante.

Continue lendo Desenvolvendo para o COSMAC num ATARI 8-bits

Macross 6502

habitat

O pessoal do Museu de Arte e Entretenimento Digital recuperou e disponibilizou no GitHub o código fonte do Macross — não, não é este Macross! — um montador assembler para 6502 desenvolvido entre 1984 e 1987 pelo pessoal da LucasFilm Ltd e utilizado na criação de títulos Habitat (que rodava na QuickLink, aquilo que veio a virar a AOL), Maniac Mansion e Zak McKracken.

Continue lendo Macross 6502

O tal CAPS-LOCK do HOTBIT

HB8000_capslock

A tecla CAPS-LOCK sempre foi um ponto de discórdia entre usuários brasileiros de MSX, não pela tecla em si mas pelo fato do HOTBIT, com seu jeito de brinquedo, ter um led que indicava seu estado enquanto que o Expert, com seu teclado destacado, não! 😀

Talvez para enfatizar a existência do led o pessoal da Sharp EPCOM resolveu QUE O CAPS-LOCK DEVERIA SER TRAVADO APÓS O BOOT! Algo que eu, como usuário de HOTBIT, sempre detestei mas sempre relevei pois bastava apertar «CAPS» para resolver.

Mas como estou velho e (cada vez mais) preguiçoso e meu HOTBIT ainda não usa uma versão corrigida (ainda) eu resolvi “quebrar o galho” fazendo um programinha para colocar no “AUTOEXEC.BAT” — ou “REBOOT.BAT” no caso do MSX-DOS 2.

Continue lendo O tal CAPS-LOCK do HOTBIT