sexta-feira, 29 de dezembro de 2006

Captura de listagem

Uma forma fácil de armazenar a listagem de programas é um simples conversor paralelo-serial, composto de um microcontrolador, que aguarda o MSX baixar a linha de strobe, para receber o dado e enviá-lo via porta serial do PC. O microcontrolador faz ainda a sinalização de "busy" (ocupado) para o MSX.




O software para realizar esta implementação é muito simples. Uma possibilidade é utilizar um microcontrolador da família 8051, programado em Basic. A porta P1 recebe os dados da porta de impressora do MSX. A linha P3.2 recebe o sinal de "Strobe", e a linha P3.3 sinaliza a condição de ocupado ("busy"). A interface com o PC pode ser implementada através de um simples transistor.


' Captura porta impressora do MSX e envia
' para porta serial

'SERIAL PORT CONFIGURATION
$BAUD = 19200 'set 19200 baud rate for
$CRYSTAL = 11059000 '22.1184 MHz crystal

dim a as Byte
Reinicia:
p3.3=0 ' desabilita condição ocupado

Aguarda:
if p3.2=1 then goto Aguarda' aguarda sinal strobe

p3.3=1 ' indica ocupado
print p1; ' envia o caractere recebido na serial

' waitms 1
goto Reinicia ' aguarda proximo caractere



Versão em Assembly:


; captura listagem de impressora do MSX
; para a porta serial

$MOD51

org 0
ljmp inicio

inicio: mov a,#255
mov p1,a
setb p3.1
setb p3.2
setb p3.3

mov scon,#40h
mov pcon,#0
mov tmod,#20h
mov th1,#253
mov tl1,#253
setb tr1

reinicia: clr p3.3
aguarda: jb p3.2,aguarda
setb p3.3
mov a,p1
mov sbuf,a
jnb ti,$
clr ti
sjmp reinicia
end

O Diagrama do circuito, baseado num microcontrolador AT89C2051 encontra-se abaixo:



A alimentação do circuito pode ser retirada do conector de Joystick.

Um comentário:

Anônimo disse...

Por que nao:)