Arquivo da tag: Assembly

Coisinhas para usuários aventureiros de CoCo 1 e 2 brincarem, parte 1

Sabe as ROMs alteradas que eu mencionei no post sobre a mega-procrastinação? Pois taqui um pacotinho pra  vocês se divertirem. ROMs para as várias variantes de controladores de disco* (ou acesso a disco virtualizado via serial ou rede), listagens em Assembly 6809 à la Unravelled para cada uma, patch contra o fonte do Toolshed e um README – que tá em inglês, então vou traduzir pelo menos a parte das novas funcionalidades.
Continue lendo Coisinhas para usuários aventureiros de CoCo 1 e 2 brincarem, parte 1

Você se acha um procrastinador? Pffft.

Pois eu vou lhe mostrar como os procrastinadores profissionais procrastinam. Vou tentar resumir o contexto ao máximo, mas senta que a história é longa.

1984: Sou contratado como estagiário na LZ Equipamentos, fabricante do Color64, clone do TRS-80 Color, mais conhecido como CoCo.

1985: Amei a máquina, aprendi linguagem de máquina Motorola 6809, domino as mumunhas do hardware e da ROM de BASIC, mas acho ridículo que o modo texto dele tenha míseros 32 caracteres por linha (o TRS-80 original tinha 64). Crio meus programas para a empresa usando um editor chamado Super Color Writer, que desenha caracteres na tela gráfica e portanto consegue exibir 64 caracteres por linha. Ou 51, com caracteres um pouco mais bonitinhos. Ou 85, se você realmente se odeia e não dá valor à saúde dos seus olhos.

1986: Desde ano passado estou com a ideia na cabeça: não seria legal se o BASIC pudesse operar nesse modo? Melhor resolução de texto, e poder fazer programas gráficos com texto usando simplesmente PRINT. Eu poderia alterar o BASIC. É uma trabalheira, mas sei como fazer isso. Taí, vou fazer…
Continue lendo Você se acha um procrastinador? Pffft.

Repórter Retro 070

O Seu Repórter Retro

Bem-vindos à edição 070 do Repórter Retro.

Links do podcast

Música de fundo

Random Chiptune Mix 23

Ouvindo este episódio offline

Baixe o ZIP, descompacte e ouça com seu tocador de música preferido.

Onde este episódio (e todo o Retrocomputaria) está disponível

Os episódios do Repórter Retro estão, como todo o conteúdo do Retrocomputaria, em muitos lugares: Spotify, YouTube, Google Podcasts, Apple Podcasts, Deezer e, usando nosso feed RSS, qualquer programa para escutar podcasts.

Seu comentário é o nosso salário

Não se esqueça de deixar seu comentário aí embaixo; afinal, seu comentário é o nosso salário. No entanto, caso você prefira, entre diretamente em contato conosco.

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.