Jak pewnie część osób wie, istnieje możliwość podłączenia karty ISA - SMC 8216 to TT-tki.
smc_tt1.zip - Tuw-tcp for TT Lan and SMC ELITE ULTRA card
są do tego dostępne źródła oprogramowania.
Pomyślałem więc sobie, że spróbuję ożenić tę kartę z Panther/2 (w końcu to ISA jest).
Co mam. Sterownik się ładuje i testuje pamięć karty - jest OK.
Obsługa przerwania na VME i Panther to całkiem inna sprawa. Pantera ma program (P2INT), który niejako wszystko szykuje, należy się jedynie podłączyć w łańcuch XBRA, w czym pomagał mi Cyprian i udało się tę część przerobić:
doczytałem i okazało się, że jeszcze trzeba było je włączyć, adres do procedur włącz/wyłącz jest w ciasteczku, które wspomniany program tworzy. Więc przerwanie dla Pantery jest aktywne.
No i to by było na tyle z tego co się udało :)
Teraz jak uruchamiam wszystkie potrzebne programy do Tuw-tcp wszystko się uruchamia i nie zgłasza jakowychś błędów. Dostępny jest program umożliwiający połączenie FTP lub Telnet.
Problem jest taki, że przy próbie połączenia zwis lub 3 bombki. 3 bombki są akurat oczywiste (cytat z Profilbuch'a):
68000 i 68010 dostęp do adresów nieparzystych mogą uzyskiwać tylko bajt po bajcie. Ten wyjątek jest wyzwalany, gdy próbujesz uzyskać dostęp do słowa lub długiego słowa (licznik programu i wskaźnik stosu nie mogą zawierać żadnych nieparzystych wartości!).
wiadomo kwestia brakującej nogi A0.
Pomimo tego, jak puszczę ping z Windowsa (XP :) ) to widzi Panterę i jest odpowiedź. Sam router nie widzi (pewnie nie jest tak dziurawy jak XP, to tak odnośnie innego wątku).
No i teraz myślę jak się do tego zabrać. Sam przesył z karty do bufora to po prostu zestaw kilku instrukcji move.l, adresy docelowy jest parzysty, źródłowy to wskaźnik do struktury:
typedef struct
{
unsigned long in_dst; /* Internet Empfnger */
unsigned long in_src; /* Ethernet Absender */
unsigned short in_port; /* Port zu senden */
unsigned short dummy; /* long align */
unsigned short len; /* Laenge der Daten in lan_data*/
unsigned short code; /* Befehlscode */
unsigned long id; /* ID dieses Paketes */
short req_id; /* ID des eigenen Requesters */
short usr_id; /* ID des eingeloggten Users */
lan_data_typ lan_data;/* eigentlicher Datenpuffer */
} lan_buffer_typ;
Wszelkie wpisy do rejestrów to operacje na bajtach.
Gdyby ktoś bieglejszy rzucił na to okiem, byłbym rad niezmiernie.