#Atari8bit My 7yo daughter and I finish playing a game of Othello over #FujiNet. Her #Atari #XEGS is upstairs, and my 1200XL is downstairs. Video is from my 1200XL. https://youtu.be/R5L8MqW_BYY

Wrzuciłem kopię reversi.atr do fujinet.pl. Ładuje ona automatycznie grę. Jeśli grasz jako słuchacz (gracz 1) upewnij się, że przekazałeś port TCP 6502.

#Atari8bit W tym filmie, pokazuję jak wziąć istniejącą grę, "Roman Checkers" (Sears, 1979), jedną z najwcześniejszych gier BASIC, i przekonwertować ją do gry przez #FujiNet używając N: handler i standardowych oświadczeń I/O.

https://youtube.com/watch?v=ROxa8N8SE_o

#Atari8bit Teraz, gdy obsługa i kod sieciowy działają na tyle dobrze, że można ich używać do tworzenia gier, musimy spróbować przekonwertować istniejącą grę turową na #FujiNet. Oto potencjalna, konkurencyjna gra turowa oparta na wierceniu szybów naftowych.
https://youtube.com/watch?v=oeImwNKp-yY

#Atari8bit Jakiś programista montażowy? Ktoś chce pomóc w obsłudze CIO #FujiNet'a?

Są trzy kwestie, z którymi potrzebuję pomocy, ponieważ pracuję po stronie firmware'u (ESP32).

Dodaj obsługę Binary Load File
https://github.com/FujiNetWIFI/fujinet- … r/issues/1

Dodaj notatkę/punkt obsługi
https://github.com/FujiNetWIFI/fujinet- … r/issues/2

Spraw, by kod mógł być ponownie przeniesiony.
https://github.com/FujiNetWIFI/fujinet- … r/issues/3

Dodaj tryb Burst Mode I/O
https://github.com/FujiNetWIFI/fujinet- … r/issues/4

56

(226 odpowiedzi, napisanych Fabryka - 8bit)

#FujiNet @jeffpiep is checking in the last of the #Atari 822 printing emulation, which provides graphics support! The secret? Using SIO command 'P' instead of the usual 'W', which causes the printer to accept 1 bit per pixel monochrome bitmap data in the same format as a GRAPHICS 8 screen. This was previously undocumented.

---

#FujiNet @jeffpiep sprawdza w ostatniej emulacji druku #Atari 822, która zapewnia wsparcie graficzne! Tajemnica? Użycie polecenia SIO 'P' zamiast zwykłego 'W', które powoduje, że drukarka akceptuje 1 bit na piksel monochromatycznych danych bitmapy w tym samym formacie co ekran GRAPHICS 8. To było wcześniej nieudokumentowane.

https://i.imgur.com/oa9P4Y2.png

57

(226 odpowiedzi, napisanych Fabryka - 8bit)

2020-03-26 Sprawozdanie o stanie prac:

do programistów swędzących o projekt lub sposób na pomoc: Naprawdę przydałaby mi się pomoc przy próbie zaimplementowania wsparcia dla ATX-a, ponieważ jestem zajęty próbą podparcia innych części kodu.

Ostatni tydzień spędziłem pracując nad kodem TNFS:

* Usuń kod recachingowy, bo to był buggy, w przygotowaniu do refactora.
* Poprawić logikę refactora, żeby zduplikowane pakiety nie powodowały problemów, są ignorowane.
* Refaktor poprawnie obsługuje timeouty i zawiedzie tylko wtedy, gdy wszystkie próby ponownej analizy zakończą się niepowodzeniem.
* Zaimplementować komendę SIO dla polecenia Napisz z weryfikacją (już nie tylko alias dla P).
* Implementuj optymalizację wyszukiwania, poszukuj tylko wtedy, gdy jest to konieczne, zmniejszając w ten sposób znacznie liczbę pakietów uruchomień UDP w trybie round trip dla odczytów liniowych.

Rick Lopez pracował nad kodem R:, rozbierając go na części, aby go zrozumieć, i wprowadzając ulepszenia. Jego obecny zestaw eksperymentów wykorzystuje Altirra R: handler i osadza go w firmware #FujiNet, który jest przekazywany przez sondę typu 1. (Mamy pozwolenie od @phaeron)
Usprawnienia w zakresie buforowania są również starane zrekompensować charakterystycznie małe bufory RX określone przez Atari w trybie równoległym przez większość programów MODEM, starając się uzyskać większość programów modemowych, aby móc pracować z większą prędkością.
Pomysł, który tutaj zaproponowałem, to modyfikacja R: handler, aby wyemitować dodatkową komendę przed komendą STREAM, która zwraca rozmiar żądanej długości bufora IOCB. Może to być użyte jako dodatkowy bufor, wypełniany tylko po opróżnieniu, aby zdławić połączenie nawet przy większych szybkościach transmisji, gdy bufor jest o wiele za mały, aby obsłużyć większe szybkości transmisji.

Przechodzimy dalej przez błoto. :)

58

(226 odpowiedzi, napisanych Fabryka - 8bit)

For anyone who wants to contribute, another easy enhancement is needed to improve TNFS network performance when the cache is off (e.g. during development):

An enhancement ticket:

https://github.com/FujiNetWIFI/atariwifi/issues/165

Given a sector number coming into sio_read():
https://github.com/FujiNetWIFI/atariwif … sk.cpp#L44

Determine if the sector to be read is the very next sector. If yes, DO NOT SEEK, otherwise perform a seek.

Sector size needs to be taken into account, as well (first three sectors 128 bytes, we do not currently account for 256 byte or 512 byte sectors).

For TNFS, this will remove one round trip communication, and speed up network access.

59

(226 odpowiedzi, napisanych Fabryka - 8bit)

#FujiNet używa TNFS, który głównie komunikuje się poprzez UDP. Oznacza to, że oprogramowanie firmware musi być w stanie obsługiwać sieci w mniej niż idealnych warunkach, które mogą powodować timeouty, porzucone pakiety, a nawet duplikaty pakietów.

Ostatni tydzień spędziłem na refaktoringu kodu TNFS, aby go uprościć i zapewnić jedną ścieżkę kodu do wysyłania pakietów, odbierania odpowiedzi i obsługi timeoutów. Pozwoliło mi to lepiej zobaczyć co się dzieje i zmienić logikę retry w ciągu ostatniego półtora dnia, aby uczynić ją bardziej solidną, używając sieci testowej hojnie dostarczonej przez użytkownika, który zbudował swój własny #FujiNet!

Wkrótce pojawi się więcej raportów o stanie!

60

(226 odpowiedzi, napisanych Fabryka - 8bit)

What constraints would you like to know?
-Thom

61

(226 odpowiedzi, napisanych Fabryka - 8bit)

Jeśli ktoś chce pomóc w dostrojeniu wydajności pamięci podręcznej read cache na #FujiNet, spójrz na ten problem:

https://github.com/FujiNetWIFI/atariwifi/issues/162

Wierzę, że odczytywany cache może być bardziej inteligentnie wdrażany jako bufor pierścieniowy, który może być konsekwentnie dołączany w miarę wypychania sektorów. Szczegóły w bilecie, w tym link do kodu źródłowego aktualnej implementacji.

62

(226 odpowiedzi, napisanych Fabryka - 8bit)

Ćwiczę, każdego dnia korzystając z programu #Atari Personal Fitness. Wcześniej zachowywałem swoją kopię zarówno programu jak i dysk danych, którego używałem codziennie na dwóch oddzielnych dyskietkach, ponieważ Personal Fitness obsługiwał tylko jeden dysk.

Dzięki #FujiNet mogę umieścić program i dyski danych w pierwszych dwóch slotach na dyskach i obracać je w razie potrzeby, aby uruchomić program w całości z mojego lokalnego serwera plików lub z lokalnego magazynu plików #FujiNet.

https://www.youtube.com/watch?v=0KV2aayuSFs

63

(226 odpowiedzi, napisanych Fabryka - 8bit)

#Atari8bit #FujiNet jedną z nowo dodanych funkcji do #platformio wersji oprogramowania firmware jest "Disk Rotate", który obraca obrazy dysków do następnego sąsiedniego gniazda napędu w prawo.

https://www.youtube.com/watch?v=Bs3mwpqh718

64

(226 odpowiedzi, napisanych Fabryka - 8bit)

Status na lata 2020-03-14:

* @jeffpiep jest ciężko pracować wdrażając emulację ploterową Atari 1020. Emulacja ta jest wyjątkowa w tym sensie, że wyjście nie jest plikiem PDF, ale SVG.

* Wyskakuje jeszcze kilka testerów płyt ESP32 i pojawiają się raporty o błędach.

* Implementacja systemu plików TNFS przypadkowo odsyła sukcesy, gdy wszystkie próby zostały wyczerpane. Pochodzi to z niespójnego błędnego dopasowania wartości zwrotnych, które nastąpiło podczas przenoszenia kodu do standardowego API Arduino FS. Whoops.

* Dodatkowo, czas retry'u TNFS musi być dalej dostrajany, ponieważ obecnie jest więcej prób retry'u niż czasu w SIO timeout przydzielonego przez system operacyjny dla większości operacji dyskowych (5 prób, 5000ms, 25 sekund, w porównaniu do 15 sekund dla systemu operacyjnego), Musimy zmniejszyć czas pomiędzy timeoutami, i zrobić więcej prób. W tym celu przesunąłem wartości timeoutów na #definiowanie stałych w lib/sio/sio.h

* N: handler jest debugowany, dużo pracy trzeba tam wykonać. OPEN działa teraz, po całkowitym przepisaniu tokenizera specyfikacji urządzenia. Inne operacje obecnie zawodzą z powodu rozbijania stosu. Muszę ponownie przemyśleć sposób przekazywania buforów pomiędzy funkcjami protokołu. Jeśli ktoś jest zainteresowany, proszę sprawdzić kod i zanurzyć się w sio/sieci* Napisałem teorię operacji na wiki, jeśli ktoś jest zainteresowany.

To jest gówno projektu, zrobiliśmy wielki szum w demach "ain't it cool?!", a teraz zakasujemy rękawy i pracujemy nad połączeniem długu technicznego i testowania funkcjonalności. Nie wspominając już o testach jednostkowych :)

65

(226 odpowiedzi, napisanych Fabryka - 8bit)

pancio.net napisał/a:

Good to hear it. I'm first followers! :-)  Tom. Did you consider to make #Fujinet and sell it as full developed device? I'll be very happy to use it... Thanks @Montezuma for announcement.

Yes, while we will sell the device, I want it to become a standard, so we have and will continue to release all information as to how to build one. Schematics and firmware are public.

-Thom

66

(226 odpowiedzi, napisanych Fabryka - 8bit)

#FujiNet What do we have here? @jeffpiep has been hard at work implementing #Atari 1020 plotter emulation! This is awesome! :)

#FujiNet Co my tu mamy? @jeffpiep ciężko pracuje nad wdrożeniem #Atari 1020 ploter emulacji! To jest niesamowite! :)

https://cdn.discordapp.com/attachments/655893902380761091/688177341100195860/unknown.png

67

(226 odpowiedzi, napisanych Fabryka - 8bit)

Oto oficjalne ogłoszenie:

#Kod FujiNet jest tutaj w GitHub:

https://github.com/FujiNetWIFI/atariwifi

Strona Patreon tutaj:

https://www.patreon.com/user?u=8255002 (środki tutaj są wykorzystywane na pokrycie kosztów operacyjnych, takich jak koszty wysyłki tam i z powrotem).

Co to jest #FujiNet?

#FujiNet (dawniej znany pod #AtariWiFi) to karta sieciowa, która podłącza się do portu SIO (Peripheral) 8-bitowego systemu Atari. Obecnie (od Rev3) składa się z urządzenia NodeMCU 1.0 podłączonego do płytki interfejsu, które elektrycznie dołącza NodeMCU do magistrali SIO i zapewnia potrzebne złącza SIO.

Co on zapewnia?

#FujiNet ma zapewnić następującą funkcjonalność:

* "D:" Emulacja, do wirtualnego montażu, odczytu i zapisu obrazów dysków ATR na protokole zapożyczonym od społeczności Spectranet o nazwie TNFS.
* "R:" Emulacja, aby zapewnić wirtualny modem Wi-Fi do użytku z istniejącymi programami komunikacyjnymi takimi jak Ice-T, BobTerm, AMODEM i PLATOTERM.
* "P:" Emulacja, emulująca typowe typy drukarek, generująca dane wyjściowe PDF w locie do nowoczesnych drukarek.
* "N:" Nowe urządzenie do nawiązywania komunikacji TCP i UDP z innymi hostami, a także do sterowania adapterem (ustawianie konfiguracji, montowanie obrazów, itp.).
* Większa funkcjonalność, która będzie dostępna dzięki przyszłym aktualizacjom oprogramowania sprzętowego w trybie over-the-air (OTA), takim jak drukowanie IPP.

Kto może z niej korzystać?

Miejmy nadzieję, że wszyscy! Emulacja "D:" umożliwia natychmiastowe użycie nieużywanej obudowy do montowania dysków w sieci, niezależnie od tego, jaka sieć istnieje, np. lokalna, lub hosta internetowego. Kontroler "R:" pozwoli każdemu, kto chce zadzwonić na internetowe BBSy i usługi takie jak IRATA.ONLINE, natychmiast korzystać z urządzenia, a urządzenie "N:" pozwoli na napisanie zupełnie nowych programów, które mogą natywnie obsługiwać ruch sieciowy!

Kiedy będzie ono dostępne?

#FujiNet (od marca 2020) rozwija się szybko. Przeszliśmy od napisania wstępnych przypadków testowych w Arduino, do napisania finalnego firmware'u produkcyjnego w PLATFORM.IO, łącząc wszystkie poszczególne testy razem pod jednym firmware'em. Szacujemy, że mniej więcej reszta tego roku zostanie przeznaczona na debugowanie i udoskonalanie opisanego powyżej zestawu funkcji.

Ile to będzie kosztować?

Zbyt wcześnie, aby powiedzieć, ale biorąc pod uwagę, że jest on oparty na sprzęcie NodeMCU, a także biorąc pod uwagę, że płyta interfejsu jest w całości wypełniona pasywnymi komponentami, my (ci z nas, którzy pracują po stronie sprzętowej) oczekujemy, że koszt będzie tani, porównywalny do SDrive-MAX.

Gdzie znajduje się dokumentacja?

Na Githubie jest tworzona Wiki: https://github.com/FujiNetWIFI/atariwifi/wiki.

Czy są pokazy wideo?

A Tonne. Dosłownie zrobić Youtube wyszukiwania #FujiNet: https://www.youtube.com/results?search_query=%23fujinet&page=&utm_source=opensearch
Ostatni pokaz kodu łączonego: https://www.youtube.com/watch?v=9YVvK1DUmUE

Jak są udostępniane obrazy z dysku dla "D:" Emulacja?

Obrazy dyskowe są współdzielone za pomocą protokołu współdzielenia plików zwanego TNFS. Został on opracowany przez Dylana Smitha, człowieka, który opracował interfejs Spectranet dla ZX Spectrum. Zrozumiano, że protokoły takie jak NFS i SMB są o wiele za ciężkie do zaimplementowania na 8-bitowych mikrokomputerach, protokoły takie jak FTP i HTTP mają o wiele za dużo na głowie, a protokoły takie jak TFTP i BOOTP są zbyt proste. Tak więc opracowano ładne medium, które mapuje podstawowy system plików w prosty, łatwy do zaimplementowania protokół, który może być używany przez UDP lub TCP, który używa jednego połączenia.

Gdzie mogę dostać kopię tnfsd?

Serwer TNFSD można pobrać tutaj: http://spectrum.alioth.net/doc/index.php/TNFS_server , jest on dostępny dla systemów Windows, Mac i Linux. Dostępny jest również kod źródłowy.

Czy informacja o protokole TNFS jest dostępna?

Absolutnie, jest on używany do implementacji firmware'u Arduino: http://spectrum.alioth.net/svn/filedeta … otocol.txt.

Jakie informacje specyficzne dla Atari są wykorzystywane do wdrażania oprogramowania sprzętowego?

@phaeron's excellent Altirra Hardware Reference Manual is being used for the SIO side of things: http://www.virtualdub.org/downloads/Altirra Hardware Reference Manual.pdf

Kto nad tym pracuje?

* @tschak909 pracujący nad Firmware
* @mozzwald pracujący nad Hardware i Firmware, pierwszy przeszedł obudowę.
* @jeffpiep pracujący nad Hardware i Firmware
* @Mr Robot pracujący nad sprzętem i obudową
* @Bill Lange Helping test.
* @48kRAM help test. === @48kRAM help test.
* @a8isa1 helping test with his own board/interface
* @ivop help test with his own board/interface
* Joe Decuir będzie miał wkrótce tablicę do testów.

Jak sprzęt jest wdrażany?

Sprzęt przeszedł kilka rewizji. Obecna wersja wykorzystuje mikrokontroler ESP32-WROOM, zamontowany na płytce, który zapewnia również pasywne układy SIO, gniazdo kart SD oraz układ USB, który może być użyty do zasilania urządzenia lub do programowania nowego firmware. #FujiNet może być zasilany albo z magistrali SIO, albo przez USB.