@cp... postaram się z nimi skontaktować, przekażę info że jest robota do zrobienia :D
@pw... wysłałem :)

Nie ma za co :) Trzeba pomyśleć czy nie zgłosić sprawy do "Clever People", może by zrobili jakąś reedycję z poprawkami? :D

Sikor napisał/a:

Seban, a dasz radę sprawdzić, czy ta wersja gry na cartridge-u poprawnie da się ukończyć? O ile pamiętam - każda znana mi wersja plikowa wykrzaczała się na 29 czy 30 poziomie.

Przyznaję szczerze że ta gra od zawsze doprowadzała mnie do szewskiej pasji :) W czasach kiedy w tę grę próbowałem grać , przejście zaledwie kilku początkowych poziomów było dla mnie sukcesem ;) Ale nie wyobrażam sobie abym mógł próbować dotrzeć do poziomu 29 czy 30 ;) Chyba bym osiwiał :D

Jeżeli ktoś ma cierpliwość to może tą grę uruchomić nawet na emu i to na dwa sposoby:

1. Obraz z carta z bankowaniem Blizzard32K
2. wersja XEX

Na realnym sprzęcie również można uruchomić wersję XEX bez problemu, po czy gdy pojawi się:

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr11.png

Wciskamy klawisz OPTION i odpala się gra Nexuss.

Jeżeli ma ktoś cierpliwość, czas i ochotę aby to sprawdzić grając poziom po poziomie byłoby super... Ja mogę spróbować zrobić jakiegoś cheat-a do przechodzenia po poziomach (ale nie wiem czy coś nie jest wbudowane przez autora... coś mi się po głowie kołacze... ale nie pamiętam dobrze tego faktu... sprawdzę zatem!)

EDIT1: o kurde... u fandala jest jakaś wersja z pozmienianymi napisami :( jeszcze "filed by"... jakiś ktoś... ja miałem wersję identyczną z tą na carcie, tzn. w takim sensie że napisy były nie pozmieniane.

EDIT2: sprawdziłem wersję XEX, po 28 levelu który ma "?" jako układ bloków do rozbicia... następuje level 29 z dwoma rzędami klocków u góry, po czym odpala się level 30 i to jest już kaszana i śmiecie na ekranie. sprawdzę zatem oryginał na carcie. Sprawdziłem oryginał na carcie, odpalony na real sprzęcie. Gra zachowuje się dokładnie tak samo... sieczka na 30-levelu.

Czyżby autor założył że nikt nie dotrze tak daleko?

EDIT3: LOL... autor popełnił błąd w kodzie ;) zakładał że poziomów będzie 49... jednak poziomów w grze umieścił 29... poziom 30 faktycznie nie istnieje... po poprawce w kodzie gry po przejściu 29 poziomu... gra po prostu startuje od nowa tzn. od poziomu nr 1 :) nie ma żadnego zakończenia, nawet napisu "congratulations" :D

No skoro zrobiła się już nam tutaj kolejna strona wątku spróbujmy zatem zająć się kolejnym cartem z kolekcji uicr0bee. Tym razem na warsztacie cart  "Turbo Toolbox II" autorstwa Marka Góreckiego znanego także jako Górecki Productions lub EGR General Programming.

Powiem wam ze ten cart mimo, że niby prosty, ale jakoś mnie zmęczył... podchodziłem do niego jak do jeża... głównie ze względu na zawarty w nim kod... i specyficzne mechanizmy, prawdopodobnie zastosowane w celu utrudnienia zmian, kopiowania, etc... przez to wszystko wymagał o wiele więcej uwagi i pracy niż wszystkie do tej pory napotkanie, poza tym chciałem dobrze wszystko udokumentować, bo cart jest do tej pory jednym z niewielu napotkanych gdzie ciekawostka, goni ciekawostkę. Niestety nie nie miałem do niego żadnej instrukcji ani jakichkolwiek informacji... A może ktoś ma jakieś materiały dotyczące tego carta? Albo jaką ulotkę, artykuł, reklamę... swoje własne wspomnienia, cokolwiek innego ;)?.

To co prezentuję tutaj udało mi się ustalić to tylko i wyłącznie na podstawie analizy kodu, więc informacje mogą być niepełne lub wręcz nieścisłe.

Cartridge ma pojemność 32KB (4 banki po 8KB umieszczone w przestrzeni $A000-$BFFF) i nazwijmy to "autorskie" rozwiązanie przełączania tych banków, niestety nieobsługiwane przez żaden emulator. Oprogramowanie zawarte w cartridge prezentuje się następująco:

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr1.png  https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr2.png

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr3.png  https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr4.png

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr5.png  https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr6.png

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr7.png  https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr8.png

Jak widać na pokładzie carta jest zawarta całkiem spora ilość softu dla Turbo Blizzard, a jest to:

Universal Loader, Binary Loader - dwa loadery umożliwiające wczytywanie programie typu FILE oraz BOOT. Są dość krótkie ponieważ nie instalują handlera obsługującego urządzenie "T:" w systemie, a jedynie służą wczytaniu jedno-plikowego gry/programu
Tape Turbo System - odpowiednik Blizzardowego KOS-a znanego z cartów KNS/Atares
The Eternal - dwie wersje programów umożliwiających wprowadzanie poprawek w ładowanych programach (np. nieśmiertelności)
Tape Test - umożliwiający sprawdzenie ustawienia głowicy, jakości sygnału zapisanego na taśmie. Zaprezentowany screen-shot pochodzi z emulatora, niestety Altirra nie radzi sobie jeszcze z Blizzard Turbo i doskonale to widać na ekranie... emulacja liczników POKEY-a ostro kuleje... zatem nie da się nawet precyzyjnie wyrysować prawidłowego sygnału, nie mówiąc już o jego poprawnym wczytaniu.
Aragorn Copy - całkiem przyzwoity program kopiujący, obsługuje dodatkową pamięć i w przypadku jej obecności bufor na dane jest całkiem spory. Dodatkowo możliwe jest uruchomienie cartridge w taki sposób aby wykonać boot z dyskietki z DOS-em... a potem program kopiujący uruchamia się automatycznie... w tym celu należy przytrzymać klawisz SHIFT gdy włączamy komputer włożonym cartridge
Jester - wymaga jakiegoś dodatkowego rozszerzenia sprzętowego o nazwie "ROMEK", ale z tego co rozumiem kopiuje on OS-ROM do pamięci ROMKA a następnie dokonuje poprawek w OS które powodują że procedury SIO obsługują szybką transmisję w przypadku stacji dysków Happy Warp, Top-Drive czy TOMS-Drive
Disk Utility - tak autor nazwał spora ilość opcji dostępną pod klawiszami od J do U, które to opcje możemy podzielić na dwie sekcje... jedna z nich (klawisze J...O) umożliwia zbootowanie dyskietki z obsługą szybkiego SIO instalowaną opcjonalnie pod adresami $100 lub $600, dodatkowo możemy wybrać czy BASIC ma być włączony czy też wyłączony. Druga opcja (klawisze P...U) to loader plików binarnych oraz "cassette boot". Tutaj też można dokonać wyboru co do włączenia BASIC-a czy szybkich procedur SIO.

Wszystkie te programy upakowane zostały w dwóch 8KB bankach zajmujących 16KB pamięci EPROM... w takim razie co znajduje się w dwóch pozostałych bankach? No to jedna z niespodzianek... gdy włączymy komputer z wciśniętym OPTION po chwili oczom naszym ukaże się...

https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr9.png  https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/scr/tt2_scr10.png

... prawdę mówiąc przyglądając się sieczce w zrzucie pamięci zastanawiało mnie co zajmuje tyle miejsca... zacząłem oglądać kod startujący cart i gdy zobaczyłem że sprawdza on różne dziwne rzeczy przy starcie... w tym różne klawisze ... po dalszej analizie ustaliłem że sprawdzane są SHIFT i OPTION... o ile SHIFT był jasny (opisano to nawet w krótkim info o Aragorn Copy dostępnym po wciśnięciu klawisza "X" w menu) ... o to co zobaczyłem po uruchomieniu z OPTION spowodowało że uśmiech pojawił się na mojej twarzy :) Nie sądziłem że ta gra była oficjalnie wydana na cartridge przez autora :) W dodatku jako dodatek do Turbo Toolbox II :D ... a ja chyba obiecywałem się streszczać i nie przynudzać... ;) zatem:

1) Zawartość pamięci EPROM:

Turbo Toolbox II - EGR banking - oryginalna zawartość pamięci. Nie da się jej uruchomić na emulatorze... żaden z emu nie wspiera takiego schematu przełączania banków... więcej o tym przy okazji prezentacji schematu.

EDIT1: wszystko wskazuje na to że pomyliłem się generując ten plik (zła kolejność banków w obrazie). Jak tylko sprawa zostanie zweryfikowana na real hardware udostępnię poprawiony plik. Błąd wykrył jeden z użytkowników czytający wątek i zgłosił problem, za co mu serdecznie dziękuję!

EDIT2: Dzięki czujności i pracy, którą wykonał kolega JLS próbując zrekonstruować ten cart, okazało się, że popełniłem fatalny w skutkach błąd przy składaniu pliku "TurboToolboxII_orgEGR.bin" w całość, wszystkie osoby które go pobrały proszone są o zaktualizowanie pliku nową i działającą wersją.

W błędnej wersji przy składaniu pliku w całość zamieniłem linie adresowe A13 i A14 co skutkuje przemieszaniem banków, prawidłowo były w pliku ulokowane banki "00" i "11", natomiast banki "01" i "10" zostały zamienione. JLS podjął próbę odtworzenia carta i okazało się, że nie działa on prawidłowo, zgłosił problem i po opisaniu przez niego zachowania jego wersji carta i analizie problemu odkryłem gdzie popełniłem błąd! Gdyby JLS nie próbował  uruchomić carta pewnie dość długo uszkodzony plik wisiałby tutaj, a ponieważ replika wykonana przez niego po podmianie pliku na prawidłowy zadziałała, możemy mieć pewność ze teraz wszystko z plikiem "oryginalnym" jest OK! Zatem WIELKIE podziękowania dla JLS za wykonaną pracę i cierpliwość przy rozwiązywaniu problemu!

Turbo Toolbox II - Blizzard 32K banking - przeorganizowana wersja EPROM, nic w niej nie było zmieniane oprócz kolejności banków w tymże obrazie, tak się szczęśliwe złożyło nie trzeba było zmienić ani bajtu kodu w tym obrazie, wystarczyła drobna reorganizacja. Być może było tak, że autor carta pisał swoje oprogramowanie tak aby działało na cartridge w tym standardzie, jednak później zmienił schemat bankowania aby jego rozwiązanie było nietypowe i być może nie tak łatwe do powielenia. Ten obraz da się uruchomić na emulatorze wybierając jako typ carta: "Blizzard 32K Cartridge".

TurboToolboxII_orgEGR_fixed_A13,A14.bin:
MD5   : 952ba0425b053fd12fbfa163bd8ef0e9
SHA256: 746a5b53527683843fa10be9e9295efeca094b2f2c971100586703f96cc6c6dc

TurboToolboxII_BLZ32k.bin:
MD5   : b9eb6f8536e9946e20a1ba02fe101c43
SHA256: 911beb38c94e925e83944b6cc9111593c195f148e8a5a20668e5180b6827e96b

UWAGA!!! Jeżeli ktoś ściągnął wcześniej plik: "TurboToolboxII_orgEGR.bin", powinien go skasować jest błędny i nie będzie działał poprawnie, sumy kontrolne uszkodzonego pliku:

TurboToolboxII_orgEGR.bin:
MD5   : b7f155cac9b8c6682754198284ef5df7
SHA256: 76be92e319934f5924689b2b61a7ed33ff24fdb2743d1bce419be9235ba5e80d

2) wersja XEX dająca się uruchomić spod DOS-a lub dowolnego loadera plików binarnych: Turbo_ToolBOX_II.xex.zip.

Z tą wersję było trochę nudnej, żmudnej i monotonnej roboty, zanim to ogarnąłem to trochę minęło. Dużo było śledzenia kodu i wnikania w to co się dzieje w środku ... w sumie to chciałem odpuścić w pewnej chwili bo zastanawiam się czy jest sens aby walczyć z tak specyficznym cartem, takim który może zbootować DOS-a w trakcie swojego initu, etc. Ten cart ma kupę soków bezpośrednio w ROM, i trochę sztuczek i "dirty hacków"...  w dodatku autor z uporem godnym maniaka zabezpieczał i zaciemniał swój kod przepisując po 100 razy różne obszary pamięci z jednego miejsca w drugie, xorując to wszystko z różnymi stałymi wartościami... kiedyś może to było jakieś zabezpieczenie, jednak dziś w dobie emulatorów ze zintegrowanymi debuggerami i możliwością używania break-pointów ... odmiąchanie tego to kwestia tylko czasu i cierpliwości... Koniec końców po zapisaniu paru kartek A4 adresami, narysowaniem co gdzie i jak... wszystkie poprawki w kodzie sprowadziły się do załadowania poszczególnych banków w odpowiednie miejsce pamięci i zmiany 3 bajtów w oryginalnym kodzie co doskonale widać zresztą w strukturze pliku XEX:

001:     $0480 $0522: $00A3
002:     $02E2 $02E3: $0002
     INI $0480
003:     $0523 $055A: $0038
004:     $4000 $BFFF: $8000
005:     $BEE2 $BEE2: $0001
006:     $BF56 $BF56: $0001
007:     $BF79 $BF79: $0001
008:     $02E0 $02E1: $0002
     RUN $0523

Obszar $4000-$BFFF zajmują  4 banki po 8K oryginalnie umieszczone w EPROM, a trzy segmenty o długości jednego bajta to patche poprawiające kod tak aby uruchomił się on bez carta i przepisał dane z innych obszarów niż w oryginale. Z perspektywy czasu patrząc na to ile czasu zajęło mi złożenie tego w całość... i patrząc że wystarczyły 3 bajty i odpowiednia reorganizacja danych... to teraz można się z tego śmiać... jednak parę ładnych godzin poszło :) Ale cóż.. dłubanie w reliktach z przeszłości ma swoją cenę... cieszę się że udało mi się to ogarnąć. Prawdę mówiąc nie sprawdziłem tego jeszcze na real hardware... ale jeżeli okazałoby się że są jakieś dodatkowe zabezpieczenia i coś nie działa to nie omieszkam poinformować o tym fakcie nieco później... teraz muszę trochę od tego odpocząć :]

EDIT: Jeszcze jedna uwaga co do wersji XEX... w przypadku fizycznego cartridge lub uruchamiania jego obrazu na emulatorze (trzeba trzymać SHIFT włączając komputer), można w stacji dysków umieścić dyskietkę z DOS-em, a gdy DOS.SYS się zbootuje, system operacyjny przekaże sterowanie ponownie do kodu zawartego w cartridge, a ten uruchomi "Aragorn Copy". Wtedy będzie możliwa kopiowanie "dysk <--> turbo tape", ponieważ DOS.SYS zapewni instalację handlera dla urządzenia "D:", a "Aragorn Copy" zainstaluje handler dla urządzenia "T:". W przypadku wersji XEX taka operacja jest niemożliwa, ponieważ wciśnięcie SHIFT powoduje wywołanie sekwencji "boot" z ROM komputera, ale tak naprawdę nie ma takiej potrzeby... wystarczy XEX-a załadować z pod DOS-a i będzie można go używać w taki sam sposób (DOS zapewni obsługę "D:", Aragorn obsługę "T:").

3)  Schemat: wektor (PDF), raster color (PNG), raster grayscale (PNG).

I dwa słowa o schemacie i budowie samego carta. Cartridge zawiera w sobie 32KB pamięć EPROM 27C256 o pojemności 32KB. Pamięć podzielono na 4 banki po 8KB umieszczone w przestrzeni $A000-$BFFF. Co ciekawe cartridge ma również podłączoną linię RD4 przez co system myśli że to cart 16KB zajmujący lokację $8000-$BFFF. Jednak EPROM aktywowany jest tylko w przypadku adresowania przestrzeni $A000-$BFFF. Efekt jest taki że w obszarze $8000-$9FFF sa losowe śmiecie zebrane magistrali danych na której żaden w układów nie jest aktywowany. EPROM włączany jest tylko sygnałem ~S5 co powoduje że reaguje tylko na adresy $A000-$BFFF. Być może to celowe działanie autora :)

Teraz o układzie przełączania banków i odłączania carta... zrealizowano go na układzie KM555TM8, czyli sowieckim klonie 74175. To właściwie 4 przerzutniki typu D, ze wspólnym wejściem zegarowym i resetującym. W przypadku tego carta zrealizowano z nich taką hybrydę rejestru przesuwającego z 2-bitowym licznikiem zliczającym w kodzie Graya. Gdyby pomiąć przerzutniki Q1 i Q2... to Q3 i Q4 tworzyły by 2-bitowy licznik adresujący linie A13 i A14 pamięci EPROM... jednak w tym wypadku dodano jeszcze 2 przerzutniki tak aby wyjście ostatniego z nich sterowało stanem linii RD5 odpowiedzialnej za odłączenie cartridge.

Na schemacie dodałem symulację pokazującą zachowanie się całego układu. Sposób zaprojektowania powoduje że po włączeniu lub wciśnięciu RESET na cartridge układ ustala stan wszystkich przerzutników na 0, a ponieważ informacje adresujące linie A13 i A14 oraz linię RD5 są brane z wyjść zanegowanych przerzutników to startowym bankiem jest ten dla którego A13,A14=1, RD5 również przyjmuje stan 1, i cart zostaje włączony i wykryty przez system. Kolejne odwołania do dowolnego adresu z zakresu $D500-$D5FF (aktywność ~CCTL)  powodują zmianę stanów linii A13 i A14 (tabelka zmian umieszczona na schemacie). Kolejne 3 kroki (po reset) adresują kolejne banki carta, ale po następnym kroku cart zostaje odłączony. Co ciekawe dalsza aktywność CCTL pozwala na ponowne włączenie carta jednak już nigdy więcej nie będzie można zaadresować 2 początkowych banków... nastąpi zapętlenie i linie adresowe A13 i A14 wraz z RD5 będą przyjmowały takie stany że włączenie cartridge będzie następowało tylko dla dwóch ostatnich banków zawierających tylko grę "Nexuss". W przypadku gdy będą adresowane pozostałe banki stan lini RD5 będzie ustawiony na "0" co będzie powodowało że cart będzie w tych chwilach wyłączony.

Na koniec prezentacja samego bohatera tego opisu:

Cartrige Turbo Toolbox II, by Górecki Productions:
https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/photos/tt2_cart.jpg

PCB góra:
https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/photos/tt2_pcb_top.jpg

PCB spód:
https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/photos/tt2_pcb_bot.jpg

PCB góra, zbliżenie na informacje o autorze:
https://pigwa.code32.org/uicr0bee/carts/TurboToolboxII/photos/tt2_pcb_credits.jpg

EDITED@2025.08.13: http to https links changed

Hej!

Dzięki za drugi dump! Wygląda na to że ten się uruchamia! Sprawdzę go dokładniej wieczorem i dam znać czy nie znalazłem jakichś problemów.

https://pigwa.code32.org/aa/T2001_copy_scr1.png https://pigwa.code32.org/aa/T2001_copy_scr2.png

Gdyby podczas testów okazało się że coś jeszcze nie działa lub zobaczę jakąś sieczkę w kodzie, to będę dawał znać i wtedy mogę zgrać karta u siebie... przy okazji mógłbym go doprowadzić do stanu działania :)

Hej!

Dzięki za zgranie, ale mam pytanie możesz spróbować jeszcze raz to zgrać? Dlaczego pytam? Bo obawiam się że to nie cart w fatalnym stanie, ale sam EPROM... próbowałem to uruchomić na szybko na EMU, ale robi się totalny zwis. Przeglądając na szybko zawartość pliku i de-asemblując kod i śledząc jego wykonanie widać przekłamania na bitach co skutkuje że kod nie ma prawa się poprawnie wykonać... np.

    B026: A2 A4             LDX #$A4
    B028: BD C4 B0          LDA $B0C4,X
    B02B: DD 5B 07          CMP $075B,X
    B02E: CA                DEX
    B02F: D0 F7             BNE $B028
    B031: 4C CE F7          JMP $F7CE
    B034: A9 00             LDA #$00
...

Widać iż CMP ($DD) zostało przekłamana, zdecydowanie powinno być tam STA i zapewne nie $075B tez jest błędne, mogę zgadywać że to miało być $F75B. Tyle że nie jestem w stanie tych miejsc z błędami wszystkich wykryć :(  Prośba o powtórzenie dump-a wynika z tego że chciałbym móc oszacować czy uszkodzenia zawartości EPROM są za każdym razem jednakowe i permanentne, czy też te przekłamania są losowe?

Yezy napisał/a:

Turbo 2001 ver 2.1 według instrukcji Toms`ów jest wersją montowaną wewnątrz komputera dopiero ver 2.2 jest wersją dla carta.

Czyli wychodzi na to że ten cart który mam opisany Turbo 2001 v.2.1 (którego zawartość udostępniłem wyżej) to znowu jakiś piracki klon? ;) ew. nie jest to wersja 2.1 jak głosi napis na obudowie carta... a jakaś inna wersja... niestety w zawartości carta nie ma żadnej dodatkowej informacji o wersji. W sumie to nawet dobrze że to klon/pirat, bo już myślałem że TOMS sprzedawał taką prowizorkę.

Yezy napisał/a:

Mam gdzieś wersję carta TURBO 2001 z kopierem, jak znajdę to wrzucę zawartość.

Byłoby super. Następny cart byłby zarchiwizowany.

1,183

(30 odpowiedzi, napisanych Sprzęt - 8bit)

Dokładnie! Właśnie chciałem pisać posta że Jesionen jest specem i mistrzem od ożywiania takich rzeczy :] Szacunek przeogromny za przywracanie życia takim sprzętom! :)

Jeżeli chodzi o monitor LCD z żalem muszę stwierdzić że nie trafiłem nic co byłoby sensowne i działało na tyle satysfakcjonująco abym mógł zamienić monitor CRT na LCD. Może jak OLED stanieje stanie się sensowną alternatywą?

Rzuciłem dokładniej okiem (bo wcześniej do deasemblacji to zgrałem sobie po prostu wynikowy kawałek pamięci zawierający turbo, czyli w tym wypadku $700-$EFF) ... i spokoju mi nie dawało że ten plik .xex jest czymś potratowany... no i okazało się że był w końcu mi sie przypomniało ... jest taki program "super copy" (zresztą jest też w paczce Blukiego) który możliwa konwersję BOOT<-->XEX ... właśnie tym softem został potraktowany plik boot i zamieniony na postać "Atari DOS binary file". Oryginalnie był to zatem program typu BOOT ładowany z kasety, nawet zachował się oryginalny nagłówek typu boot:

00 10 F8 06 1A 0E 18 60

^^^ a więc 16 rekordów ładowanych od adresu $6F8 do adresu (+16*128) czyli $EF7.

swoją drogą na końcu pliku widać:

0EE8: D0 F6 4C 3C 36 20 8F 3B 44 75 70 6C 69 63 61 74 |..L<6 .;Duplicat|

nie wiem skąd się wzięło to "Duplicat" ;-) tzn .mogę się domyślić iż wylądowało to tam zamiast 8 bajtów nagłówka cartridge, który formalnie w przypadku tego carta jest ulokowany pod adresami $BFF8-$BFFF.

Więc droga tego pliku udostępnionego przez Blukiego była taka: EPROM -> BOOT -> XEX :)

Patrząc jeszcze trochę na kod, widać że w miejscach w których w oryginalnym cartridge były procedury kopiujące obszar $B000-$B7FF na miejsce docelowe (czyli $700-$EFF) pojawiły się nowe procedury udające uruchomienie cartridge (np. ustawienie memtop na $A000, potem otwarcie ekranu, etc.). Dokonując porównania obu plików widać dokładnie, że zmian dokonano tylko w tej części odpowiedzialnej za start i uruchomienie:

https://pigwa.code32.org/aa/T2001_cart_vs_file.png

Reszta pliku jest identyczna, tak więc to co jest na cartridge który posiadam jest dokładnie tym co było źródłem do powstania pliku BOOT/XEX udostępnionego przez Blukiego. Szkoda że autor tej konwersji (Cart --> BOOT) mieszał w oryginalnym obrazie carta... ja robiąc dumpy/loadery zawsze zachowuję plik w oryginalnej postaci... nawet w przypadku wersji XEX zachowuję strukturę oryginału, tak aby dało się ją wydobyć z pliku, ale widać czasy były takie że nikt nie myślał w kategoriach zachowania oryginału :) Na szczęście zachowały się oryginalne carty :) W przeciwnym wypadku trzeba byłoby "odkręcać" zmiany ręcznie, ale to już nie byłby oryginał :)

To chyba wyczerpuje temat Turbo 2001 na chwilę obecną? Zapewne wrócimy do niego jak dostanę w swoje ręce wersje 2.2 cartridge. No chyba że jeszcze ktoś ma jakieś pytanie/sugestie co do dalszych działań w tym temacie?

EDIT: zobaczyłem że w "paczce" softu od Blukiego jest jeszcze jeden plik opisany jako "Turbo 2001C":

https://pigwa.code32.org/aa/Turbo2001v2.1c.png

Sprawdziłem i okazało się że jedyna różnica to zastąpienie napisu "Wylacz Cartridge" napisem "TURBO 2001 v. 2.1C":

https://pigwa.code32.org/aa/T2001_2.1_vs_2.1c.png

Edited on 2025.08.18: Updated HTTP links to HTTPS to avoid mixed content issues.

1,185

(69 odpowiedzi, napisanych Sprzęt - 8bit)

Tor zapisu XC12 naprawdę jest banalny:

https://pigwa.code32.org/drop/xc12.gif

Jak pisałem wcześniej składa się 3 znaczących elementów: C3,R6,C4. Po drodze sygnał jak pisałem też wcześniej przechodzi przez SW1. Sprawdź wartości R6, C3 oraz to czy np. C4 nie ma zwarcia. Jeżeli sygnał z piny #5 gniazda SIO (DATA_OUT) przychodzi (zakładam że POKEY jest sprawny) to przejściu przez C3 i R6 i SW1 powinien się pojawić na obu kablach dochodzących do głowicy (pomiar musisz wykonać na tych dwóch końcówkach głowicy bezpośrednio, a nie względem masy magnetofonu). Jedna końcówka oscyloskopu do kabla białego, druga do czerwonego.

Z tym że trzeba uważać, bo w trybie odczytu to czerwony kabel jest podłączony do masy, a z biały do wzmacniacza odczytu.... natomiast po wciśnięciu REC sytuacja odwraca się to i na czerwonym kablu pojawia się sygnał do zapisu, a biały staje się masą. Także przy testowaniu zapisu końcówkę pomiarową sondy przykładasz do czerwonego kabla, masę sondy pomiarowej do białego.

Zresztą zrób test omomierzem... zmierz czy w normalnym trybie masz "przejście" pomiędzy masą a czerwonym kablem, potem wciśnij REC i zobaczy czy masa się pojawiła na białym kablu przy głowicy.

https://pigwa.code32.org/aa/xc12_head.jpg

EDIT: o, widzę że kolega xtrem007 wyjaśnił wszystko już wcześniej :D

Hej!

Trochę w tym wątku się zrobiło cicho bo walczę trochę z opornymi egzemplarzami albo takimi co mają "security by obscurity" zrobione... i to mnie już trochę zmęczyło, bo dużo bezsensownej roboty jest... zabezpieczania żadne sensowne w sumie, a tylko czas marnują aby zrobić z tego coś sensownie uruchamiającego się. No i dobrze że się zapytałeś bo potrzebowałem przerwy i postanowiłem przeszukać swoje zbiory... okazało się że znalazłem cart do Turbo2001! (nawet nie wiedziałem że takowy posiadam). Zatem zamiast przerabiać plik z pakietu Blukiego, zabrałem się za cart, szczególnie że jest prymitywny na maksa.

Prawdę mówiąc to wcześniej zabrałem się nawet za pełną disassemblację tej wersji którą udostępnił Bluki, właściwie po to aby porównać to z dokładnie Turbo2000F, ale przeanalizowanie i opisanie wszystkiego zajmie trochę więcej niż sądziłem... więc, zmieniłem plany prac i oto efekty pracy z dzisiejszego popołudnia i wieczora...

https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr1.png  https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr2.png

https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr3.png  https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr4.png

https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr5.png  https://pigwa.code32.org/atari/Turbo2001_v2.1/scr/T2001v2.1_scr6.png

Sam cartridge to 4KB EPROM 2KB EPROM (w tym wypadku ruski klon typowego 2716) ... i tu ciekawostka... z manualnym odłączaniem, którego dokonuje się za pomocą przełącznika na obudowie! Nie ma nawet prymitywnego układu czasowego ;-) Co ciekawe płytka wygląda na taką na której taki układ był pierwotnie obecny, jednak ktoś usunął go wycinając kawałek płytki i montując wyłącznik i parę kabli. Zatem nie ględząc już dalej...

1) zawartość EPROM:

oryginał: Turbo 2001 v.2.1

wersja poprawiona: Turbo 2001 v.2.1 - auto CCTL OFF patch

wersja dla emulatora: Turbo 2001 v.2.1 - auto CCTL OFF patch (doubled to 4K for emulators)

Turbo2001_v2.1.bin:

MD5   : 6bf691ea1dd4f8384934647755a47e6a
SHA256: ee0f7288c79ecc8ff0f26a98fc9d90992c7a09faf78cce1584bf11c266121d28

Turbo2001_v2.1_auto_off_CCTL_patch.bin:

MD5   : d2ac392ee223e6910e176b12e1081736  
SHA256: a3a1938adf6f6386649af96bedd5ecb4b8bd276b41a402fd5709707d1b56fd51

Turbo2001_v2.1_auto_off_CCTL_patch_(doubled_4K_for_emu).bin:

MD5   : 63aa8fb93812f3ebf4b9c4dd52b005cd  
SHA256: 27a2c63de6611c77c5f5254ce07ac273cb67a6d30032bec49962b19528043c44

2) Wersja XEX -> nie robiłem, chyba nie jest potrzebna skoro jest w pakiecie u Blukiego?

3)  Schemat: wektor (PDF), raster color (PNG), raster grayscale (PNG).

Schematu nawet nie ma co komentować za bardzo, 2KB EPROM zawiera oprogramowanie Turbo2001. EPROM mapowany jest w obszar $A000-$BFFF. A ponieważ linie A11 i A12 nie są podłączona (EPROM ma 2K) to w obszarze $A000-$BFFF widać 4x to samo, tzn. $A000-$A7FF, $A800-$AFFF, $B000-$B7FF, $B800-$BFFF są swoimi kopiami.

Jeżeli ktoś chciałby ucywilizować trochę ten cart i zrobić nieco zmodyfikowaną płytkę (wzbogaconą chociażby o prosty układ RC) powinien wykonać sobie cart z opcją nr 2 widoczną na schemacie, tzn. układ opóźniający wyłączenie cartridge oparty o tranzystor i prosty układ RC.

A żeby zrobić to naprawdę jak należy, to polecam wykonanie carta odłączanego na drodze programowej (poprzez dowolne odwołanie do obszaru $D500-$D5FF).  Wtedy należy użyć wersji "Turbo2001_v2.1_auto_off_CCTL_patch" jako wsad do pamięci EPROM. Wersja ta zamiast czekać w nieskończoność na odłączenie karta dokonuje cyklicznych zapisów pod $D500 i gdy TRIG3 ($D013) przyjmie wartość "0", przechodzi sama dalej. Na schemacie układ działający z tą wersją jest narysowany jako opcja nr 3.

Obrazy BIN można uruchomić pod Altirrą. W pierwszym wypadku (Turbo2001_v2.1.bin) proszę wybrać cartridge 8K, a następnie gdy zobaczymy napis "wyłącz cartridge" z menu należy wybrać opcję "Deatach Cartridge" wcześniej oczywiście trzeba w opcjach wyłączyć "reset when changing cartridges".

W drugim wypadku [Turbo2001_v2.1_auto_off_CCTL_patch_(doubled_4K_for_emu)] należy wybrać jako typ cartridge "Blizzard 4K" i zignorować napis "wylacz cartridge", po chwili wszystko uruchomi się dalej samo. Musiałem powielić dwa razy obraz "Turbo2001_v2.1_auto_off_CCTL_patch.bin" ponieważ Altirra nie obsługuje poprawnie obrazów 2K z możliwością odłączenia na drodze programowej.

Przy okazji ... Altirra 3.10 ma chyba błąd w obsłudze cartów 4K (type 58), nawet jak cart jest podłączony to stan $D013 (TRIG3) jest równy 0, to chyba nie jest celowe działanie, wygląda mi po prostu na błąd.

U Uicr0Beeiego czeka wersja 2.2 tego carta (ciekawe czy są jakieś znaczące różnice), ale na chwilę obecną dopiero kończę walkę z aktualną partią cartów (elektroniczną dokumentacją, wersjami XEX, patchami, poprawkami i analizą kodu co ciekawszych przypadków). Wcześniej chciałem to wrzucić tak jak zostało to przeze mnie zgrane już jakiś czas temu, ale doszedłem do wniosku że należy zrobić to raz a porządnie... co prawda teraz żałuję że tyle to przeleżało bo dużo już zapomniałem i koniec końców niektóre rzeczy robię od nowa ;)

na sam koniec pozostało zaprezentować wygląda tego cart-a:

https://pigwa.code32.org/atari/Turbo2001_v2.1/photos/cart.jpg

po otwarciu obudowy:
https://pigwa.code32.org/atari/Turbo2001_v2.1/photos/pcb_in_case.jpg

PCB góra:
https://pigwa.code32.org/atari/Turbo2001_v2.1/photos/pcb_top.jpg

PCB spód:
https://pigwa.code32.org/atari/Turbo2001_v2.1/photos/pcb_bot.jpg

EDIT: Późnym wieczorem zdałem sobie sprawę że EPROM w tym cartridge to nie klon 2732 a 2716, a więc nie 4KB a 2KB... po podejrzeniu plików okazało się że wersje które udostępniłem w środku mają powielony dwukrotnie ten sam 2KB obraz. Po poprawkach jednak okazało się że wersja 2K z programowym odłączaniem nie jest poprawnie obsługiwana przez emulator, dlatego też pozostawiłem zdublowaną do 4K wersję z opisem ze działa ona pod emulatorem. Poprawiłem też schemat dorysowując możliwe opcje sterowania wyłączeniem carta i zmodyfikowałem treść posta, aby zamiast odsyłać do innych wątków wszystko było w jednym miejscu. Mam nadzieję że teraz wszystko będzie jasne. Wersję 1.0 schematu można wywalić (jeżeli ktoś zdążył ściągnąć), bo miała wrzucony zły typ pamięci EPROM (2732 zamiast 2716).

A i jeszcze jedna ciekawostka która wniknęła z tego zamieszania, na końcu obrazu cartridge ktoś zostawił swój podpis, widnieje tam mianowicie ciąg znaków "mod. ROBERTM". W wersji którą udostępnił Bluki tego ciągu nie ma.

Ale rzucę jeszcze okiem w tę wersję od Blukiego i dam znać czy to jest mniej więcej to samo i ew. jak sobie poradzić z zamianą na wersję cartridge czegoś takiego.... po pierwszym rzucie oka już mi słabo ;) ten plik wygląda na konwersję pliku BOOT (pewnie kasetowego, który oryginalnie ładował się gdzieś od $700) na plik Atari DOS binary file... użyto gotowego konwertera BOOT->XEX które nazwy już nie pomnę, ale już nie raz się na niego natknąłem (bo np. przepisuje kod po pamięci lokując swoje procedury m.in. od $3C0).

1,187

(69 odpowiedzi, napisanych Sprzęt - 8bit)

perinoid napisał/a:

Nagrałem na wieży ścieżkę dźwiękową (muzyczkę z Black Lamp) miejscami na lewym kanale, miejscami na prawym, miejscami na obu. Potem włożyłem to do I niestety, magnetofon nie odtworzył dźwięku z prawego kanału.

Dźwięku z prawego kanału nigdy nie usłyszysz idzie on tylko i wyłącznie (po przejściu przed demodulator FSK) na linię DATA_IN gniazda SIO. Tego nigdy nie słychać a dźwięk który słyszysz przy wczytywaniu pochodzi z generatorów POKEY-a które w tym czasie pracują jakgo BRG (Baud Rate Generator) dla wewnętrznego portu szeregowego.

Natomiast dźwięk z lewego kanału jest podawany na wzmacniacz m.cz. a następnie wprowadzany do toru audio Atari poprzez 11 pin gniazda SIO (Audio Input).

O magnetofonie swego czasu już pisał dużo Jer na swojej stronie

O ile Ci się udało poprawnie wczytać "Dan Strikes Back" (btw. prosta aczkolwiek świetna gra! ile ja czasu nad tym spędziłem :P) to oznacza że głowica jest sprawa (skoro odczytuje to powinna i zapisywać bez problemu).. Tor zapisu jest tak prosty że tam właściwie nie ma co nie działać... składa się on z jednego rezystora (R6), jednego kondensatora (C3) oraz kondensatora filtrującego/blokującego wyższe częstotliwości  C4. Sprawdź dokładnie czy te elementy są obecne i czy są dobrze przylutowane, po drodze sygnał przechodzi jeszcze poprzez przełącznik zapis/odczyt (SW1) możesz zmierzyć sobie omomierzem/multimetrem czy w pozycji "zapis" masz przejście od obu końcówek C4 do głowicy.

1,188

(21 odpowiedzi, napisanych Sprzęt - 8bit)

Wygląda na to że ten DOS formatuje dyskietkę w innym przeplocie sektorów niż oryginalna dyskietka. Więcej o przeplocie poczytasz chociażby tutaj.

Niestety DOS-a XL widziałem na oczy ze dwa razy... więc będę zgadywał... Stacja CA-2001 może pracować w trybie turbo Synchromesh. Może wystarczy z dyskietki załadować ten sterownik i potem wykonać kopię dyskietki? (albo wręcz przeciwnie... nie ładować sterownika (może jest ładowany domyślnie? nie pamiętam niestety) i sformatować dyskietkę w przeplocie standardowym?)

1,189

(69 odpowiedzi, napisanych Sprzęt - 8bit)

Głowica zapisująco/odczytująca jest uniwersalna gdyby działał w niej tylko lewy kanał efekt byłby taki jak opisujesz. XC12 zapisuje dane tylko na prawym kanale, lewy pozostaje niezapisany. Oba kanały są wcześniej kasowane przez tą białą głowicę kasującą. Możesz jeszcze sprawdzić czy nikt nie zamienił kabli od kanałów L,P czy to przy głowicy, lub na na płytce magnetofonu.

1,190

(69 odpowiedzi, napisanych Sprzęt - 8bit)

czyli przerwy nie ma, więc powinno być OK. Głowica jest uniwersalna, tzn. odczytująca-zapisująca, zmiany trybu pracy (odczyt/zapis) dokonuje switch "SW1" (schemat XC12 od JER-a)... ale skoro widziałeś na oscyloskopie sygnał zapisy to powinno być OK! no chyba że jakiś mega paproch Ci się przykleił na czoło głowy, próbowałeś jej czoło przetrzeć np. wacikiem, albo patyczkiem kosmetycznym nasączonym jakiś spirytusem/izopropanolem/denaturatem?

Z tego co mi przychodzi do głowy, to jeszcze jest możliwe że urwany jest jeden z przewodów od głowicy (np. ten masowy). Nie wiem gdzie miałeś podłączoną masę od oscyloskopu, ale jeżeli gdzieś do masy na PCB i dotykałeś tylko końcem sondy do jednego przewodów przy głowicy to mogłeś widzieć sygnał który faktycznie tam nie docierał bo. np. brakowało wspomnianej masy)

Druga z głowic jest odpowiedzialna za kasowanie i z tego co piszesz to wygląda na to że ona pracuje (z powodzeniem kasuje poprzedni zapis).

Problem może istnieć również w torze tej głowicy zapisująco/odczytującej. Zobacz czy na płytce są poprawnie wmontowane R6 i C3 i jakie mają wartości? może ktoś usuwając/zmieniając C4 (np. przy modyfikacji na turbo 2001) coś uszkodził w torze zapisu?

Masz dostęp do jakiegoś innego magnetofonu? (może być dowolny magnetofon kasetowy, cos typu deck/ mini wieża, etc.)

1,191

(69 odpowiedzi, napisanych Sprzęt - 8bit)

To co widać na zdjęciach to jest Turbo 2000F albo Turbo2001 :) Rzucić okiem do wątku o Turbo2001 by Bluki. Turbo 2001 to sprzętowo tak naprawdę Turbo2000F.

Zapis danych powinien być wykonany na prawym kanale, kanał lewy jest do dyspozycji użytkownika i właściwie może być tam nagrane cokolwiek... będzie to słyszalne w kanale audio Atari podczas wczytywania. Magnetofon Atari nagrywa dane tylko i wyłącznie na prawym kanale, na lewym pozostaje nagrana "cisza".

Jeżeli sygnał faktycznie dociera do prawego kanału głowicy, a nie jest nagrywany... to wskazuje to na uszkodzenie głowicy :( na początek może zmierz jej rezystancje, powinna mieć około 200-paru omów.

1,192

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Ok! Wielkie Dzięki za walkę z cartem :) Dopytywałem się tak bo chciałem mieć pewność że Twój cart nie zawiera nic nowego ;) Jeżeli zawierałaby jakieś dodatkowe informacje lub inną wersję na pewno prosiłbym o wykonanie kopii/zrzutu zawartości.

Warto wyrwać z odmętów historii każdą wersję softu/carta/obrazu która się zachowała :) to w sumie nasza komputerowa historia :)

Jeszcze raz dziękuję za poświęcony czas na sprawdzenie wszystkiego! :)

1,193

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Jeżeli noga tego kondensatora jest urwana, to nie powinno wywołać takich efektów. To kondensator filtrujący sygnał CCTL, bez niego byłyby pewnie jakieś anomalie w mechanizmie odłączania carta... ale sieczki na ekranie nie powinno być... może popraw cart w złączu... ew. oczyść trochę styki tego carta. Wygląda na brak kontaktu jakiejś lini adresowej/danych. Wymiana tego kondensatora to nie problem w razie czego.

EDIT: Ewentualnie "pomachaj" porządnie kilka razy te przełączniki od wyboru banku, mogły po latach styki się utlenić i źle kontaktować, przy takim zachowaniu efekt byłby taki jak opisujesz.

1,194

(13 odpowiedzi, napisanych Sprzęt - 8bit)

zupełnie o tym zapomniałem...  ten cart tak ma... uruchamiając komputer z tym obrazem cart-a trzymaj klawisz OPTION (to wyłączy BASIC) ew. z poziomu BASIC-a napisz komendę "DOS", powinno przejść do KOS-a lub Microloader-a tyle że z włączonym BASIC-em.

1,195

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Dzięki! A jakie są wersje KOS-a i microloadera gdy przełączysz na ten obraz:

http://www.atari.org.pl/forum/misc.php? ... mp;preview

1,196

(13 odpowiedzi, napisanych Sprzęt - 8bit)

Hej!

No wersja powinna być widoczna po uruchomieniu czy to micro-loadera czy to KOS-a, np:

Microloader w wersji 2.7 prezentuje się tak:
http://seban.pigwa.net/uicr0bee/carts/Blizzard2/scr/blz2_cart1_b.png

a KOS w wersji np. 2.0, tak:
http://seban.pigwa.net/uicr0bee/carts/Blizzard2/scr/blz2_cart1_c.png

A KOS w starszej wersji, np. tak:
http://seban.pigwa.net/uicr0bee/carts/Blizzard_8k/scr/blz8k_b.png

EDIT: Możliwe też jest że w wersji cart-a którą masz nie ma informacji o wersjach, bo ktoś usunął te informacje.

1,197

(15 odpowiedzi, napisanych Programowanie - 8 bit)

xxl napisał/a:

poza tym dlaczego mam ograniczac rozwoj w tym kierunku... ktos bedzie chcial to uzyje nie to nie i nic sie nie stanie ;)

no jak to dlaczego? ;-)

https://imgs.xkcd.com/comics/standards.png
^^^ src: xkcd

A tak na serio, Ja Ci niczego nie bronię ;) i nie chcę ograniczać niczego ani nikogo... z tyłu głowy miałem po prostu myśl że można osiągnąć to co chcesz w sposób nie wymagający zmiana formatu AtariDOS binary. Ale jeżeli tak jak proponujesz jest Ci wygodniej/lepiej/fajniej/bo tak, etc. to mi nic do tego ... :) XBIOS to Twoje dzieło i będzie podążało w kierunku w którym zechcesz :)

1,198

(15 odpowiedzi, napisanych Programowanie - 8 bit)

no tak. ale w przypadku np. SuperPacker by Jiri, to dekompresor jest tylko raz osadzony (na początku pliku) a potem tylko małe segmenty znanych zawierające konf. dekompresora dla danego segmentu i segmenty init wywołujące procedurę dekompresującą. Pewnie tak samo jest w przypadku LZ4 i SuperPacker by TeBe, ale już w przypadku użycia EXO (o ile dobrze pamiętam) to dekompresor jest dołączany do każdego segmentu danych. I zapewne wynika to ze specyficznych wymagań exomizera, nie mówię że nie dało by się inaczej tego zrobić, ale pewnie tak było szybciej/prościej, etc. Trzeba by zapytać TeBe.

Dołączanie depackera do loadera, nie wydaje mi się dobrym pomysłem... uwiązujesz loader do konkretnych wersji programów kompresujących czy depackerów, etc. Coś się zmieni w LZ4 czy EXO i zaraz będzie problem że XBIOS w takiej to a takiej wersji nie odczytuje poprawnie plików przygotowanych przez LZ4 v.131321 bo musi być LZ4 v.131313 ... a do kompletu o ile dobrze zrozumiałem tworzysz "nowy" format pliku, niezgodny z AtariDOS binary file. Przecież żaden loader nie odczyta segmentu typu $xxxx-$0000, no chyba że ktoś będzie pisał dedykowany loader do tego typu plików.

No chyba że właśnie taki masz zamiar, tzn. przygotować taki hermetycznie zamknięty system/format pliku, który jeżeli zostanie zastosowany w danej produkcji, to uwiąże ją raz na zawsze do Twojego rozwiązania. Jeżeli takie ma być założenie, to możesz robić oczywiście co zechcesz i osoby decydujące się na Twoje rozwiązanie też będą świadome tego. Dla części osób będzie to wada, dla części osób zaleta. Tutaj zapewne będzie tyle opinii ilu użytkowników.

Niestety nie jestem osobą która będzie w tym przypadku będzie mogła zachować jakąś sensowną neutralność wypowiedzi i nie bardzo umiem tutaj stanąć po jakiejś stronie, bo sami jako Slight robiliśmy produkcje "cało dyskowe" w formacie "żadnym" i uwiązanym do loadera znajdującego się na dysku, czy mechanizmów w nim zaszytych. Oczywiście wtedy wydawało się nam że to jedynie słuszna droga... bo i można sobie robić co chcesz na dysku, czytać jak Ci się podoba... i ograniczyć wpływ czynników zewnętrznych, takich jak rodzaj DOS-a czy systemu z którego nasza produkcja zostanie uruchomiona. Wtedy wydawało nam się to sensownym rozwiązaniem, szczególne gdy działo się coś podczas wczytywania... człowiek nie musiał wnikać co się dzieje pod spodem i jakie figle spłata DOS pracujący niżej.... wszystko było w naszych rekach, nawet system operacyjny był wtedy dla nas złem. W tym samym okresie była też druga strona barykady, która nie przejmowała się ładowaniem z dyskietki poszczególnych efektów czy części... nie przejmowano się loaderem, tylko korzystano z dobrodziejstw systemu operacyjnego czy to SIO czy CIO, a nawet i DOS-a... ładowano wszystko do dodatkowej pamięci i już po załadowaniu całej binarki w odpowiednie miejsca daną produkcję czy program odpalało się tylko z RAM nie przejmując się również tym co siedziało nisko w pamięci.

Jeżeli takie demo czy produkcja było w formacie plikowym to załadować się to dało ze wszystkiego właściwie, jedyne ograniczenie było takie że o ile same efekty nie wymagały dodatkowej pamięci, to EXT RAM był wykorzystany jako swego rodzaju RAM DYSK, nie przeszkadzał już żaden OS czy kosmicznie wolne czasy dostępu do danych z dyskietki. Cześć ludzi posiadających wtedy jakieś stacje równoległe (np. Karin MAXI drive) czy HDD mogła takie produkcja ładować nawet spod DOS-a. Prędkość ładowania produkcji z takich urządzeń była nieporównywalnie wyższa.

Patrząc na produkcję z tamtych czasów, każdy robił jak chciał i jak mu było wygodniej. My jako Slight, mieliśmy jakiegoś świra na punkcie pamięci i chcieliśmy aby nasze produkcje dało się uruchomić na komputerze z 64KB RAM. Poza tym dodatkową pamięć wykorzystywaliśmy podczas tworzenia do innych celów (albo jako ramdysk, albo jako przestrzeń w której Freezer zapisywał aktualny stan maszyny). Np. kompilowaliśmy wszystko do RAM-u na "żywca" z pod QA. Przed uruchomieniem efektu (który niszczył całą pamięć, a więc samo źródło, DOS-a i wszystko co się dało jeszcze zadeptać ;] ) wykonywało się "save state" maszyny z poziomu freezer-a do EXT RAM. Po uruchomieniu i stwierdzeniu gdzie są błędy i co trzeba poprawić odzyskiwało się stan maszyny z punktu ostatniego "zamrożenia" i pisało się kod dalej. Takie rozwiązanie powodowało że 64KB pamięci podstawowej stało się dla nas jakby domyślnym środowiskiem w którym będą uruchamiane nasze produkcje.

Jak więc widzisz trudno mi ocenić Twoje rozwiązanie w dobie obecnych "trendów" panujących na scenie, bo purystą i świętoszkiem nie byłem i orałem cały RAM łącznie z OS-em czy DOS-em ;) Czy dziś patrząc na to wszystko zrobiłbym to inaczej... pewnie tak... ale wtedy pewnie nie powstałoby Bitter Reality czy Overmind w takim kształcie w jakim powstały. A że obecnie ciężko je uruchomić i są produkcjami które stwarzają problemy z uruchomieniem... bo trzeba użyć SIO2PC albo rzeczywistej dyskietki i stacji dysków, i do kompletu nie da się tego uruchomić z SIDE czy HDD, etc. takie są koszty postępu chyba... chociaż wydaje mi się że i ten problem jest trochę sztucznie wygenerowany przez nowo zaprojektowany hardware, w którym pominięto możliwość rozwiązania tej "niekompatybilności", tzn. sądzę że na rzecz tego że te 1% produkcji,które nie ruszą na tym sprzęcie po prostu zignorowano możliwość rozwiązania tego problemu.

Tyle że to to nie był jakiś skomplikowany problem do rozwiązania i zapewne jest już rozwiązany jest od "n" lat, przez różnych ludzi i zapewne nie tylko w mojej szufladzie. Ale sprzęt dziś projektuje się tak aby był tani i mało problematyczny w produkcji... bo po co dodatkowe gniazdo, wtyczka, czy kawałek kodu, który będzie rzadko wykorzystany :P Na rzecz pełnej zgodności z przeszłością w i celu zwiększenia prostoty i komfortu używania nowych urządzeń, zrezygnowano z ciągnięcia za sobą historycznego ogona w postaci SIO.

1,199

(15 odpowiedzi, napisanych Programowanie - 8 bit)

exomizer ma pewnie założenia odgórne związane z platformą dla której powstał jako pierwszy, czyli C64. Jeżeli jest z nim jakiś problem, to sądzę że trzeba by porozmawiać z TeBe celem jego rozwiązania. Nie sądzę aby jakimś problemem było dekompresowanie danych spakowanych EXO podczas ładowania (via INIT). Być może trzeba przeorganizować tylko dane trochę (bo być może exomizer /nie sprawdzałem/ depakuje dane od końca, tak jak większość cruncherów z C64/C128 i stąd wynikają pewne ograniczenia).

Były czasy kiedy używało się wielu różnych programów kompresujących z różnych platform (C64, Amiga, Atari ST) i dekompresowało się wszystko w locie podczas wczytywania... jeden z przykładów. Binarka spakowana różnymi cruncherami/packerami, w tym: PowerPacker (Amgia), Fast Cruel (C64), Faces Exploding Cruncher (C64), X-Rated Power Cruncher (C64). Część danych dekompresuje się w locie podczas wczytywania. Pozostałe wtedy kiedy są potrzebne już po wczytaniu. Kod depackerów z C64 przeniesiony 1:1 z minimalnymi modyfikacjami. Do Amigowskiego Power Packer-a zastosowano dedykowany autorski dekompresor. Wszystko zawarte w tej binarce, która załaduje się pewnie z 99% dostępnych loaderów/inicjalizerów, a pewnie i nawet DOS-a o niskim MEMLO.

1,200

(15 odpowiedzi, napisanych Programowanie - 8 bit)

XXL napisał/a:

czy spakowane pliki binarne do ktorych dodawany jest dekompresor maja ograniczenia dotyczace adresow init i run? przykladowo - moze byc wieloblokowy plik binarny z kilkoma initami?

Jeżeli loader jest dobrze napisany i przetwarza dane strumieniowo, to takie ograniczenie nie ma prawa mieć  miejsca. Nie spotkałem loadera który nakładałby ograniczenia na ilość segmentów INIT. Wiele segmentów RUN nie ma sensu, bo ważny będzie tylko ostatni.

XXL napisał/a:

czy mozna czesciowo pakowac taki plik binarny?

A dlaczego miałoby tak nie być? Przykładowym narzędziem umożliwiającym takie coś jest chociażby Super Packer Jiriego Bernaseka. Z dzisiejszych narzędzi to oczywiście Super Packer od TeBe.