Minęło trochę czasu od naprawy Superchargera, a ja do tej pory nie miałem czasu go przetestować. Planowałem do tego celu zbudować prosty układ, bo zapewne będę jeszcze nie raz reanimował zepsute joysticki. No i zbudowałem. Znalazłem kilka starych 9-cio pinowych gniazd D-SUB, prawdopodobnie pochodzące z jakiegoś starego klona popularnych w latach 90-tych gier video (konsol), dorzuciłem kilka diod i gotowe. Nawet nie było za bardzo co projektować.
[gallery] Chciałem nie tylko móc testować joysticki, ale także inny sprzęt podłączany do portu Control Port mikrokomputerka.
Dawno temu przytaszczyłem do stolicy mój stary komodorek w celu uruchomienia, eksperymentów i kilku sprzętowych (głównie) projektów. Z kilku względów dokupiłem magnetofonik i joysticka. Ale QuickJoy Supercharger SV-123 zakupiony na allegro nie do końca był sprawny. Jak dobrze pamiętam miał problemy z przyciskami “fire” (teraz zgaduję). Ale z braku czasu i problemów z rozebraniem, temat leżał dosyć długo odłogiem.
Miałem problemy z rozkręceniem, śruby się zapiekły w plastiku, a główki okręcały, że coraz bardziej problem się nasilał.
Istnieje wiele słynnych, a nawet kultowych i przełomowych, a przy tym prostych konstrukcji układów scalonych, które w jakimś stopniu przerosły oczekiwania twórców, stały się popularne i jakoś wywarły wpływ na rozwój elektroniki. A ponadto pomimo upływu wielu lat nadal są często stosowane w wielu profesjonalnych i amatorskich projektach. Obok najbardziej znanego timera 555 i op-ampa 741, można w szeregu dołożyć układ TL431.
Do napisanie kilka słów o tym układzie zmusił mnie dziwny zbieg okoliczności, gdy na początku roku, z kilku różnych stron, dochodziły do mnie informacje o tym układzie.
Visual Studio jest najlepszym środowiskiem IDE pod Windowsem. I nie tylko do windowsowych projektów czy współpracy z kompilatorami dołączonymi w zestawie. Samo IDE może być wykorzystane na różne sposoby, a szczególnie przy użyciu projektu typu Makefile, gdzie można podpiąć dowolne skrypty czy pliki make, używane do budowania projektu.
Dosyć często z tej metody korzystałem w różnych projektach. Czy to przy budowaniu sterowników do Windowsa, w czasach kiedy WinDDK dostarczał własny toolkit do tego celu, a nikt nawet nie myślał, że kiedyś będzie można wprost z Visuala tworzyć projekty kernelowe.
Dokładnie 10 lat temu, 15 stycznia 2006 roku, o godzinie 20:00 pojawił się w sieci mój pierwszy post - standardowe Hello World!, a wraz z nim ten blog, na którym ja teraz piszę, publikuję ten tekst, a Ty go czytasz. To już 10 lat istnienia w sieci, choć prywatna strona domowa pojawiła się znacznie wcześniej (jeśli dobrze kojarzę). To już 10 lat pisania, z większymi lub mniejszymi przerwami. Kiedy zaczynałem nawet nie spodziewałem się tego, że blog ten przetrwa tak długo i ciągle będę na nim zamieszczał swoje różne wypociny i komentarze.
Wraz z końcem roku swój jubileusz 20-lecia obchodzi popularne i kultowe polskie czasopismo dla elektroników - Elektronika dla Wszystkich. Tak się składa, że z tym miesięcznikiem miałem styczność w latach młodzieńczych. Mogę nawet powiedzieć, że to właśnie ono było pierwszym, które zaczeło ukierunkowywać moje techniczne zainteresowania w stronę elektroniki. Swego czasu byłem długim prenumeratorem, gdzieś do 200x roku (2004/5), do czasu kiedy przeszedłem na drugą stronę mocy, na stronę oprogramowania.
Znalazłem ciekawe tricki związane ze zmianami w opcodach instrukcji między x86 a x64. Odpowiednie wykorzystanie ich pozwala na łatwe wykrycie typu architektury i tworzenie wspólnej implementacji funkcji lub kodu dla obu tych platform. Co szczególnie może być użyteczne przy różnego rodzaju shellcodach i innych takich zabawkach.
Nad takimi konstrukcjami w syringe zacząłem się zastanawiać, po tym, jak w minionym tygodniu zmieniłem pewien hack, związany z określeniem długości kodu wstrzykiwanego przy ładowaniu dll-ki do procesu.
Niniejsza notatka jest podsumowującą całą serię edukacyjnych wpisów SaeLog, jakie w tym roku na przestrzeni kilku miesięcy pojawiały się na blogu. Seria dotyczyła hackowania modyfikacji kodu firmware oraz aplikacji analizatora logicznego firmy Saleae, aby ten działa również z nieoficjalnymi wersjami (klonami) urządzenia, gdzie używane są różne typy pamięci EEPROM. Problem ostatecznie został rozwiązany, więc nie będzie kontynuacji tematu.
Poniżej lista wszystkich odcinków jakie ukazały się na blogu w ramach #SaeLog:
W wolnych chwilach pracowałem nad funkcjonalnością patchowania plików w moim projekcie strzykawki - syringe. Funkcja ta ukazała się pod postacią komendy patch. Nie tylko potrafi ona nakładać IDA-owe pliki diff na standardowe binarki, ale także, co było dla mnie ważne, bezpośrednio na dane zapisane w formacie IntelHex. Takiej możliwości potrzebowałem, aby móc dokończyć całą zabawę z analizatorem logicznym Saleae Logic i finalnie zaaplikować wszystko do programu. A ostatecznie rownież wygenerować łatkę rozwiązującą problem.
Nawiązując do moich hacków firmware’u analizatora przedstawionych w poprzednim poście z serii SaeLog, zastanawiałem się czy dokonana modyfikacja kodu jest dobra. Oczywiście jest, dla kogoś kto posiada płytkę z pamięcią adresowaną 2-bajtowo. Mimo to czuję jakiś niesmak, bo wielokrotnie wspominałem o dodaniu obsługi większych kostek, to finalnie moje modyfikacje firmware-u ograniczyły się do sztywnej “zamiany” obsługi 1-bajtowo adresowanych EEPROM-ów na 2-bajtowe. Nie mogłem spać po nocach, a po głowie ciągle chodziła mi myśl, aby spróbować dostosować kod do obsługi obu typów pamięci.