Nie używałem żadnych przejściówek.
Do kompletu wypróbowałem jeszcze jedną wersję programu - jeden z bitów portu zamieniłem na wyjście - a czwarty bit do nibbla pobrałem z "Fire" taktowanie było w jedną stronę od Atari do PC. Okazało się, że jest to najgorszy sposób gdyż port LPT nie nadążał z nadawaniem danych powodując błędy. Poprawiło się trochę gdy przestawiłem kolejność rozkazów aby opóźnić odczyt. Program trochę się rozrósł ledwo mieszcząc się na jednej stronie pamięci. (W kabelku zamieniłem 2 przewody)
w skrócie
STA PortA 7 bit (taktowanie)
LDA PortA odczyt danych - to za szybko (pomiędzy te dwa rozkazy trzeba dać inne rozkazy)
To by było na tyle pozostaje zrobić wersję cało-bajtową.
*-----------------------*
Zamiast podsumowania mały offtopic z eksperymentów. Zrobiłem generator aby sprawdzić jaką częstotliwość da się wycisnąć z portu i wyniki są takie
Atari : 148,4 kHz
386sx: 220 kHz
amd800: 341 kHz
amd2000: 437 kHz
Mnożąc wynik razy dwa mamy ilość zapisów do portu w ciągu sekundy. Różnica między atari a PC jest taka, że dodając kilka rozkazów do pętli na Atari częstotliwość spada o kilka kHz a na PC-cie nieznacznie po przecinku. Nie wiem jak dokładnie działa zapis do portów LPT, ale gdzieś wyczytałem że działa z prędkością szyny ISA.
Program na wyglądał tak
...
ldx #$00
lda #$FF
x stx porta
sta porta
bvc x lub jmp x
Ciekawostka pierwsza obojętnie czy bvc x czy jmp oba rozkazy (i programy) działają tak samo szybko, mimo że bvc jest o bajt krótsze.
Ciekawostka druga umieszczenie tego programu na stronie zerowej nie powoduje szybszego działania (chyba w TA czytałem że program na stronie zerowej działa szybciej jak widać nie.) (szybciej to działa zapis i odczyt z komórek pamięci na tej stronie - sprawdziłem to)