Taki projekcik aby zobaczyć jak szybko można ładować gry.
Kabelkiem łączymy port LPT z portem joysticka 2.
Transmisja danych jest po 4 bitach + taktowanie na sygnale "fire" na każdym zboczu pół bajta.
Najpierw wysylana jest suma kontrolna całego programu a potem dwa bajty długości.
(Obliczanie sumy można wyrzucić bo to spowalnia odbiór.)
Program na Atari ładuje się pod adress $100 czyli na stos - możecie sobie wygenerować inaczej.
W projekcie są 2 zestawy programów:
1. portal.exe portalpt.com - tu odbywa się wysyłanie danych bez potwierdzenia, dlatego wyłącza się obraz na czas transmisji. Program wysyłający po wykryciu adresu INIT robi pół sekundy przerwy aby program mógł się wykonać - na ten czas są także załączane obraz i przerwania. W programie portal.exe zastosowałem opóźnienie polegające na wielokrotnym zapisie do portu 0x80 - jest to mniej wrażliwe na prędkość procesora. Tę wartość można podać jako drugi parametr po nazwie pliku xex.
2. Transmisja z potwierdzeniem - wymagany jest dodatkowy przewód od sygnału command sio 7 do pinu 15 na LPT.
Nazwy programów zaczynają się na H jak Handshake. To zrobiłem aby zobaczyć jaką maksymalną prędkość transmisji można uzyskać 13000 KB/s (bez przerwań i obrazu). Na dyskietce (portalpt.atr) jest kilka wersji loadera - po nazwie można się zorientować czego nie robi (OFF bez obrazu, NO_CSUM- nie liczy sumy SEI- wyłacza przerwania przed ładowaniem H170 - ten nic nie wyłącza jest obraz i przerwania). Program działał z razem z podłączonym SIO2SD.
Programy przetestowałem w Dosie i Linuxie (Ubuntu 11). Źródła dla obu systemów.
LPT - Atari Joy (schemat kabelka)
1 - 6
2 - 1
3 - 2
4 - 3
5 - 4
18- 8 (masa 0V)