Dodałem nową komendę ($DF) do urządzenia FUJI ($70), która powoduje, że #FUJINET emituje sygnał zegara na pinie CLOCKIN do transmisji synchronicznej. Bajty AUX określają częstotliwość w kHz i będą używane przez @mr-atari do implementacji UHSIO z teoretyczną maksymalną prędkością 440kHz. Narzędzie w narzędziach fnc o nazwie FESCLK może ustawić częstotliwość taktowania.
FN uses both Proceed / Interrupt inputs? You could add a command that sets the frequency of generating external interrupts for Atari ... as you know, the POKEY counters consume the sound generator and the above solution adds one IRQ source with freely set frequency.
Kurcze szkoda, że nikt nie napisał że w przypadku lokalnego własnego tnfs'a trzeba samemu wyedytować host list i wpisać tam ip swojego serwera.. godzinę walczyłem, aby ogarnąć temat :))
kompilowanie na Ubuntu 18.4
potrzebujemy w systemie pakietów:
apt install make apt install make-guile apt install build-essential make OS=LINUX
wrzucamy skompilowany tnfsd np do /bin ja jeszcze na potrzeby usługi założyłem użytkownka tnfsd a potem
tnfsd /atari -c tnfsd & ktoś chce start usługi automatycznie to można dorzucić to do rc.local
OK, więc. Dobra wiadomość: znaleźliśmy problem z emulacją MIDIMAZE, zmiany w ESP-IDF spowodowały, że musieliśmy zmienić sposób inicjowania zegara SIO. Mozzwald i ja byliśmy w stanie zrobić małą grę.
Nie jest to dobra wiadomość: wciąż jest niestabilny i będzie potrzebował pomocy od ludzi, którzy chcą się dobrze przyjrzeć midimaze.cpp w naszym firmware'u, aby spróbować usprawnić jego działanie. :)
Jeśli zaktualizujesz swój FujiNet do najnowszego firmware'u, powinieneś być w stanie grać w grę, teraz, nawet wśród wielu uczestników.
Ponieważ #FujiNet wykorzystuje standardowe konwencje, których używają inne urządzenia #Atari serial I/O, łatwo jest napisać nowe biblioteki, aby język programowania mógł korzystać z funkcji sieciowych #FujiNet. Pokazuję jak to robię, od podstaw. Podwójnie jak ACTION tut!
Po żartach Benja Edwardsa w niezgodzie na #FujiNet, Mozzwald i ja gorączkowo stworzyliśmy #atari8-bitowy program dla użytkowników #FujiNet, aby śledzić głosy wyborcze na dzisiejsze wybory w USA.
Aktualizuje się on co 15 minut, a jeśli masz FujiNet, możesz go uruchomić również wybierając election.atr z serwera fujinet.online TNFS!
(Ten przykładowy zrzut ekranu wykorzystuje dane testowe i nie wskazuje na żadne rzeczywiste przeprowadzenie wyborów)
#Atari8bit Wraz z najnowszą aktualizacją firmware'u, #FujiNet pozwala teraz rejestrować ruch modemu WiFi do pliku, który może być odebrany przez administratora www, który może być wykorzystany do analizy protokołu.
co z nowości: - ustawienia użytkownika i ostatnia lokalizacja są zapisywane (na karcie SD), więc program startuje szybciej, - można ustawić i używać własnego klucza API, a wtedy pojawi się opcja zmiany częstości automatycznego odświeżania - obsługa skórek i 2 nowe motywy wizualne od PG - opcjonalne wyświetlanie regionu
Teraz aplikacja startuje z obrazu .atr Możesz bootować z TNFS fujinet.pl /networking/weather.atr albo pobrać tu: ->link<-
Program wymaga najnowszego firmware (z dziś), w przeciwnym razie zapis ustawień nie będzie działać.
.. a dlaczego zapisu nie można robić z poziomu dos? Nawet uruchamiając z ATR możesz to odpalić z dos i tam zapisać konfiguracje. A karty SD w FN nie mam, bo nie potrzebuję tej funkcjonalności.
Poza tym kartę warto mieć nie tylko z powodu emulacji S-Drive, która mnie osobiście tez nie jest potrzebna. Na karcie trzymana jest też kopia konfiguracji samego urządzenia, co powoduje, że nie musze wszystkiego ustawiać od nowa po każdej aktualizacji firmware.
Teraz właśnie doszła opcja zapisywania "ciasteczek" z poziomu Atari na karcie SD, co moim zdaniem jest super fajną opcją i daje ogromne możliwości. Zapis i odczyt tych danych odbywa sie oczywiście za pomocą standardowych systemowych procedur SIO.
No i mamy już oczywiście do tego dedykowaną libke w Mad-Pascalu: ->link<-
Więc polecam mieć w urządzeniu kartę SD, niekoniecznie na potrzeby SDrive.
Warto zauważyć, że chciałbym kiedyś zobaczyć wersję PBI FujiNet, po prostu nie wiem jak to zrobić, dobrym projektem byłoby rozpracowanie zarówno aspektów sprzętowych jak i firmware'owych. :)
#Atari8bit #FujiNet Jednym z funkcjonalnych aspektów N: jest możliwość posiadania protokołów, które nie tylko zajmują się sesjami terminalowymi, takich jak TELNET, i SSH, ale także dostarczają abstrakcje do zbiorów danych, takich jak systemy plików, napisałem takie adaptery dla FTP, HTTP, HTTPS, i TNFS, jak dotąd, i pozwalają one na bezpośredni dostęp do plików przechowywanych w tych systemach plików, będąc w stanie odczytać i zapisać do nich, tylko za pomocą odpowiednich devicespec.
Ma to ciekawe konsekwencje.
Pomyślmy na przykład o adapterze protokołu dla IMAP, który jest protokołem IETF umożliwiającym dostęp do poczty elektronicznej. Jest to długo działający standard przyjęty przez wielu dostawców poczty elektronicznej, nawet GMAIL. Protokół ten pozwala na pobieranie list z dowolnego folderu, a także na wczytywanie się w treść dowolnej wiadomości. Istnieją również rozszerzenia protokołu do obsługi wyszukiwania i filtrowania wiadomości e-mail. Nie zapewnia on żadnego mechanizmu wysyłania wiadomości e-mail, dlatego też należy pozostawić go protokołom takim jak SMTP.
Można na przykład udostępnić następujące urządzenia typu appliancepec, aby uzyskać dostęp do skrzynki pocztowej:
N:IMAP://IMAP.GMAIL.COM/INBOX
aby odnieść się do folderu INBOX na koncie GMAIL.
Wyobraź sobie, że otwierasz powyższą ścieżkę w systemie BASIC w następujący sposób:
A co jeśli otworzysz M1.EML? Dostałbyś treść identyfikatora e-mail nr 1:
OPEN #1,4,0, "N:IMAP://IMAP.GMAIL.COM/INBOX/1"
Kolejne przeczytania, wróci:
Od: Bob Johnson <bob@bob.com> Do: Thomas Cherryhomes <thom.cherryhomes@gmail.com>
Hej tam...
...aż do końca wiadomości.
Możesz również na przykład chwycić załącznik, dodając numer załącznika na końcu urządzenia:
N:IMAP://IMAP.GMAIL.COM/INBOX/1/1
Gdybyś przekazał 128 do aux2 katalogu OTWARTEGO, wtedy adapter zwróciłby ładną, długą skrzynkę INBOX:
OPEN #1,6,128, "N:IMAP://IMAP.GMAIL.COM/INBOX"
1 Bob Johnson Witam 2 Joe Guy. To działa.
...i tak dalej.
Dzięki temu można zobaczyć, na przykład, jak to byłoby nie tylko trywialne napisać klienta poczty elektronicznej (nawet w języku BASIC!), ale jak inne programy mogłyby dosłownie odczytywać pocztę elektroniczną i/lub załączniki, wyobrazić sobie, że można by czytać pocztę elektroniczną na przykład w AtariWriter :).
Wszystko idzie we właściwym kierunku jak widzę :) Przypominam o moim pomyślę konwersji grafiki on-the-fly ;) Aby request pobrania pliku np. przy dodaniu parametrów np. HIP, 160x200, 320x200, dither etc. powodował skonwertowanie pliku JPG na wybrany format Atari :)
TNFSD buduje 2020.1115, a później ma teraz 6-godzinny limit czasu sesji. Oznacza to, że jeśli zostawisz coś zamontowanego na noc, prawdopodobnie nie uruchomisz go następnego dnia rano. Musieliśmy to zrobić, aby uporać się z faktem, że połączenia TNFS wyczerpują tabele identyfikacyjne sesji do tego stopnia, że po kilku dniach intensywnego użytkowania publicznego, przestanie on akceptować połączenia. Podczas gdy to rozwiązuje problem przecieku sesji na naszych serwerach, musimy zmodyfikować kod firmware'u tak, że jeśli z jakiegoś powodu, INVALID SESSION ID zostanie zwrócony, to powinniśmy spróbować ponownie zamontować hosta (i/lub slot urządzenia). Jeśli ktoś chce pomóc w rozwiązywaniu i usuwaniu tego problemu, może skorzystać z wszelkiej pomocy, jaką możemy uzyskać. Adres URL biletu tutaj: ->link<-
@8-Bitz: jeżeli nie przeszkadza Ci parsowanie JSONa po stronie Atari, to w moim kliencie pogody jest implementacja prostego, ale działającego klienta RestAPI. Parser JSON, który tam zaimplementowałem jest bardzo prosty, ale dla nieskomplikowanych dokumentów wystarczy.
No i musisz mieć bufor w pamięci Atari na przechowanie całej odpowiedzi z serwera ;)
Oczywiście jak już będzie gotowe parsowanie po stronie urządzenia, to przepiszę ten program, i pewnie będzie o 70% mniejszy.
Witajcie wszyscy, mam nadzieję, że wszyscy mają wielkie Święto Dziękczynienia!
Miałam kilka minut tutaj, gdzie pracowałam nad firmware'em #FujiNet, zanim wszyscy się pojawili i chciałam podać aktualny status tego, nad czym obecnie pracujemy.
Od mojego końca, resztę roku spędzam na przepisywaniu N:. Wyniki są wrzucane do tego oddziału: ->link<-
Jak widać, obecnie jest to ponad 160 zobowiązań wyprzedzających główną gałąź wykorzystywaną do cięcia produkcyjnych wersji firmware'u, więc jest tam wiele pracy, a jeszcze więcej do zrobienia. Na razie adaptery protokołu TCP, TELNET i UDP działają poprawnie. Używam programów netcat i dumbterm.bas, aby przełączać się pomiędzy tymi typami protokołów i używać netcat na końcu PC, aby przetestować te protokoły i upewnić się, że działają poprawnie.
Próbowałem dodać obsługę multicastu do UDP, ale nie mogłem sprawić, aby działała ona poprawnie. Jestem pewien, że jest to coś, co robię źle po swojej stronie, więc spróbuję tego ponownie, w przyszłości.
Główne zmiany w stosunku do administratora polegają na wyrwaniu protokołów sieciowych do ich własnej biblioteki i próbie jak największego odizolowania działań protokołów od urządzenia SIO network.cpp. Wiązało się to z bardzo świadomym przekazywaniem warunków błędu z protokołu do urządzenia sio i staraniem się brać pod uwagę jak najwięcej powtórzeń, które nagromadziły się w różnych adapterach protokołu. W tym celu, istnieje nie tylko nowa klasa bazowa, NetworkProtocol, istnieje również druga klasa bazowa dla protokołów, które działają jako magazyny plików, NetworkProtocolFS, która dodaje działania systemu plików, takie jak odczyt/zapis plików w stosunku do katalogów, działanie na katalogach, i tak dalej, i co najważniejsze, rozwiązywanie nazw plików 8.3 znaków do dłuższych nazw plików, aby zmaksymalizować kompatybilność z programami i pakietami narzędzi dyskowych, które zakładają, że wszystkie nazwy plików są 8.3.
Więc posuwając się naprzód, moim celem jest uzyskanie protokołów, które obecnie istnieją w masterze, przepisanych; w procesie rozwiązywania samego dowodu kodu koncepcyjnego obecnego w niektórych adapterach protokołów (takich jak FTP, który potrzebuje znacznie bardziej solidnej maszyny stanu protokołu! ), nie wiem, jak długo to potrwa, ale ponieważ jestem na wakacjach przez resztę roku, mam zamiar spędzić jak najwięcej czasu, jak to możliwe, w celu wdrożenia tego, co należy zrobić dla N:, i mam nadzieję, że uzyskać N: do punktu, w którym może być używany przez szerszą publiczność jako przydatne narzędzie, a nie po prostu ciekawość.
#Atari8bit with Mr. Atari's examples and insight, I was able to write a read burst mode for the #FujiNet N: CIO handler, which drastically improves network read performance, we see the results with a BASIC program that reads a graphic from a web server!
#Atari8bit the latest build of the #FujiNet firmware not only adds support for the cassette slot (so you can load cassette images, even over network!), it also fixes the long standing ticket #371 MODEM hangs! :)
#Atari8bit #FujiNet in this video, I show how #FujiNet hosts a BBS Express Pro! 5.0b instance, accepting calls at 9600 baud and behaving wonderfully. A SIDE3 cart is used for storage, #FujiNet provides the MODEM. It works.
#Atari8bit #FujiNET Happy Holidays, everyone! In this video, I show how I use the NCD and NTRANS tools, coupled with AtariWriter, to take a document prepared in AtariWriter, convert it to HTML, and upload to a web server!
#Atari8bit #FujiNet @KaySavetz (cameo by @kgagne!) wrote a #BASIC program that bounces a ball from one system to another, and back again! In this test, we bounce the ball from my system to his, over 2,300 miles apart! :) #silliness :)