quarta-feira, 5 de abril de 2023

Adaptador isolado para backup de fitas cassete no PC

 Segue o circuito que montei, usando um transformador 1:1 


E uma foto do adaptador montado. Os jumpers foram mais pra teste mesmo. Numa próxima montagem vou deixar apenas o transformador e os cabos.



sábado, 6 de novembro de 2021

Recriação da interface FA-32

E segue a montagem da alternativa à interface FA-32. A placa foi fabricada pelo método da transferência de Toner.



E iniciei a montagem. Ainda estou esperando alguns componentes chegarem.




 

terça-feira, 19 de outubro de 2021

Esquema do adaptador FA-32

 A partir das fotos encontradas no site do B@ss foi possível levantar o esquema do adaptador de cassete FA-32 usado nos micros da Casio MX-10, MX-101 e PV-7.

O primeiro passo foi sobrepor a imagem das trilhas sobre a foto da placa.


Em seguida foi criado um projeto no Eagle, e todos os componentes foram dispostos nas posições semelhantes às da foto da placa.

 


Comparando as imagens foi possível estabelecer as ligações dos diversos componentes e assim levantar o circuito.

O diagrama está disponível em formato Eagle e PDF no meu repositório do GitHub

 

Sugestão de Layout em face simples com conector DIN e Jacks P2:

 




A placa é para montagem em caixas Hammond 1593J que mede aproximadamente 66 x 66 x 24mm





sexta-feira, 9 de julho de 2021

Adaptador de Teclado para o Expert.

Embora o Gradiente Expert ainda seja relativamente fácil de encontrar, é raro achar um com o teclado, e mais raro ainda encontrar o conjunto com um bom preço.
Para resolver essa situação e ajudar trazer essas máquinas de volta à vida eu criei um adaptador de teclados PS/2 que também funciona com teclados USB que possuam o modo de compatibilidade com PS/2.
O projeto é completamente aberto e está hospedado no Github.
Mais informações estão disponíveis na minha página do hackaday.io

segunda-feira, 7 de dezembro de 2020

Manual do Hot Asm

 Digitalização de uma cópia da cópia do manual do Hot Asm (Hot Assembler). 

A data que tenho anotada no rodapé da encadernação improvisada é de 9/11/1987!

Arquivo em PDF disponível no Dropbox


sexta-feira, 14 de junho de 2019

Atualizando um post antigo sobre o Paddle Vaus

Quando analisei há um tempo atrás a rotina de leitura do Paddle Vaus pelo jogo Arkanoid deixei passar batido um detalhe: O bit mais significativo da leitura já está na entrada "up" assim que a termina a conversão/contagem do circuito do paddle

Os 9 bits são lidos da seguinte maneira:

  • Lê registro 14 do PSG e salva em H

  • Repete 8 vezes:
    • gera um pulso de clock para deslocar 1 bit
    • lê o bit e salva em C
  • Salva o conteúdo de C para o endereço 0xEOC1
  • Isola o bit 0 de H, que é o bit mais significativo da leitura e salva em 0xE0C2
...
42fc 3e0e      ld      a,0eh       ; seleciona registro 14 do PSG
42fe d3a0      out     (0a0h),a
4300 dba2      in      a,(0a2h)    ; realiza primeira leitura
4302 67        ld      h,a         ; bit mais significativo já esta na saida
4303 0608      ld      b,08h       ; 8 bits
4305 0e00      ld      c,00h
4307 1e00      ld      e,00h
4309 3e0f      ld      a,0fh
430b d3a0      out     (0a0h),a
430d 3e1e      ld      a,1eh
430f d3a1      out     (0a1h),a    ; clock low
4311 3e1f      ld      a,1fh
4313 d3a1      out     (0a1h),a    ; clock high
4315 3e0e      ld      a,0eh
4317 d3a0      out     (0a0h),a
4319 dba2      in      a,(0a2h)
431b 5f        ld      e,a
431c cb3f      srl     a           ; lê bit
431e cb11      rl      c           ; armazena em C
4320 10e7      djnz    4309h       ; próximo bit
4322 79        ld      a,c
4323 32c1e0    ld      (0e0c1h),a  ; armazena bits menos significativos
4326 7c        ld      a,h         ; pega primeira leitura
4327 e601      and     01h         ; isola bit 0 (up)
4329 32c2e0    ld      (0e0c2h),a  ; armazena bit mais significativo
 

432c 3e0f      ld      a,0fh       ; gera um pulso para iniciar
432e d3a0      out     (0a0h),a    ; a próxima conversão/contagem
4330 3e1f      ld      a,1fh
4332 d3a1      out     (0a1h),a    ; pino8 high
4334 3e0f      ld      a,0fh
4336 d3a1      out     (0a1h),a    ; pino8 low
4338 3e1f      ld      a,1fh
433a d3a1      out     (0a1h),a    ; pino8 high
433c 3e0e      ld      a,0eh
433e d3a0      out     (0a0h),a
4340 dba2      in      a,(0a2h)
4342 5f        ld      e,a
4343 21c4e0    ld      hl,0e0c4h
4346 7e        ld      a,(hl)
4347 73        ld      (hl),e
4348 e60f      and     0fh
434a a3        and     e
434b ab        xor     e
434c 32c5e0    ld      (0e0c5h),a
434f 47        ld      b,a
4350 3a0be0    ld      a,(0e00bh)
4353 b7        or      a
4354 c0        ret     nz

4355 cb48      bit     1,b         ; Testa botão de tiro
4357 c8        ret     z           ; bit 1 -> DOWN do reg 14

4358 3a0ae0    ld      a,(0e00ah)
435b b7        or      a
435c ca7043    jp      z,4370h
435f af        xor     a
4360 320ae0    ld      (0e00ah),a
4363 213ce5    ld      hl,0e53ch
4366 113de5    ld      de,0e53dh
4369 3600      ld      (hl),00h
436b 010700    ld      bc,0007h
436e edb0      ldir
4370 3e01      ld      a,01h
4372 320ce0    ld      (0e00ch),a
4375 c9        ret

...



 


quinta-feira, 13 de junho de 2019

Diferentes versões de Arkanoid

Eu montei um clone do controle de Arkanoid e ao testar notei que o jogo não reconhecia o controle. Achei estranho pois me lembrava de ter visto o código e até "desassemblado" um trecho de uma ROM que gerava os sinais para ler o controle da Taito.
Clone do Paddle Arkanoid da TAITO

Pesquisando em alguns sites achei uma versão cujo binário era realmente era diferente, e que funcionou com o Paddle que montei.

Arkanoid 1 (1986) (Taito) (J).rom

Comparando com mais detalhes as duas versões dá pra ver que a ROM em que o Paddle não funciona chama apenas a rotina de leitura de teclado (0x425b - CD 0141H) ao passo em que a outra ROM chama uma função no endereço 0x42FD que é justamente responsável por gerar os sinais e ler os dados vindos do paddle (vide artigo anterior)



Além disso existe uma diferença "visual" entre as ROMS. A que lê o Paddle coloca na tela a mensagem TAITO CORPORATION. Já a ROM que não lê o paddle escreve TAITO IMAGINE LTD.










A última difereça é o último byte do arquivo, que em uma versão tem o valor 0x00 e na outra 0x3F