Consulta FSK MAC65

Software y Juegos para retro-computadores, bueeeno... casi puros juegos :-)
Responder
Avatar de Usuario
dogdark
Mensajes: 574
Registrado: Lun Mar 04, 2013 1:36 pm
Contactar:

Consulta FSK MAC65

Mensaje por dogdark » Vie Nov 10, 2017 5:07 pm

Como he seguido en el ambiente del asm en mac65, se me ocurrió realizar pruebas con el sistemas de las FSK de assembler, siguiendo la guía de re atari sobre los cassettes, hay un ejemplo que aparece, como poder leer las FSK, por lo tanto en mi programación que estoy realizando que esta en asm, despues de un dlist que muestra algo en la pantalla ejecuto el inicio del motor y luego debo de validar si hay una fsk a la espera, un ejemplo:

Código: Seleccionar todo

       *=$6000
ENCMOTOR
	LDA #52
	STA $D302
	RTS
APAMOTOR
	LDA #60
	STA $D302
	RTS
ESPEROFSK

.....

INICIO
	.... CODIGO DLIST ...
	JSR ENCMOTOR
	JSR ESPEROFSK
       ......
Por lo tanto debo de realizar esa validación que esta en basic y debo pasarla a asm

Código: Seleccionar todo

1000 IF INT(PEEK(53775)/32+0.5)=INT(PEEK(53775)/32)
     THEN RETURN: REM CHECK THE 5TH BIT OF EACH
                  INCOMING BYTE. IF IT IS "0" THEN
                  THE SYNC SPACE IS FOUND.
1010 GOTO 1000
el problema que tengo es primeramente obtener el peek(LDA $D20F), pero que sea integro con la división integrada para después hacer casi lo mismo en comparación, en resumen pasar todo el código de la linea 1000 en asm. De antemano muchas gracias.

Avatar de Usuario
vitoco
Mensajes: 1959
Registrado: Lun Ene 28, 2013 5:47 pm
Contactar:

Re: Consulta FSK MAC65

Mensaje por vitoco » Vie Nov 10, 2017 7:30 pm

La línea 1000 es clara: hay que ver que el bit 5 (6to bit si la cuenta parte de cero) traiga un 1. Es decir, es más fácil en ASM que en BASIC...

Código: Seleccionar todo

ESPEROFSK
  LDA 53775
  AND #32
  BNE ESPEROFSK
  RTS
El 32 es lo mismo que $20 o 00100000, pero lo puse así para hacer la analogía con el BASIC, al igual que la dirección de memoria $D20F a controlar. Esa operación AND deja sólo el bit 5 en el acumulador, y si trae valor distinto de cero se queda esperando.

Ojalá funcione...

Responder