Posiadam ulepszoną wersję wykrywania źródła sygnału. Źródło sygnału jest przełączane do momentu znalezienia impulsu. Muszę dokonać modyfikacji w kodzie wykrywania sygnału pilota. Nie miał limitu czasu na początkowe wykrywanie krawędzi, więc dodałem go. Używam prostego zawijania rejestru X

DPILOT_BEGIN   ldy #$00                       ;Reset pilot tone counter
               jsr SWITCH_SIGNAL_SOURCE       ;Switch signal source
               
DPILOT_0       ldx #$00                       ;Reset mini counter
DPILOT_1       inx                            ;Increment mini counter                             
               beq DPILOT_BEGIN               ;Timout, start over
               
L_MASK_A       lda #$10                       ;Get mask for 1                     
L_BIT_A        bit SKSTAT                     ;Compare with signal
               bne DPILOT_1                   ;If 1, then loop
               
               ldx #$00                       ;Reset mini counter
               stx COLBK                      ;Blank background
DPILOT_MID     inx                            ;Increment mini counter
               bmi DPILOT_BEGIN               ;Timeout, start over
L_BIT_B        bit SKSTAT                     ;Compare with signal
               beq DPILOT_MID                 ;If 0, then loop
               lda #$08                       ;Background = gray
               sta COLBK
               cpx #$36                       ;Check duration of the pulse
               bcc DPILOT_BEGIN               ;Too long, start over
               iny                            ;Inc pilot tone counter
               bne DPILOT_0                   ;Less than 256, keep in pilot
JUSTRTS        rts

Dla porównania, oto oryginalny kod. Widać, że początkowa detekcja przejścia nie ma limitu czasu (reszta impulsu ma).

L0703       ldy #$00
L0705       lda #$10
L0707       bit SKSTAT
            bne L0707
            ldx #$00
            stx COLBK
L0711       inx
            bmi L0703
            bit SKSTAT
            beq L0711
            lda #$08
            sta COLBK
            cpx #$36
            bcc L0703
            iny
            bne L0705
JUSTRTS     rts

Seban, bardzo dziękuję.

Zmodyfikuję loader tak, aby wykorzystywał metodę wykrywania sygnału jak Omicron Turbo (OT). OT działa w następujący sposób:

1. Przełącz oczekiwane źródło sygnału
2. Poczekaj na przejście (przejście 0/1 lub 1/0)
3. Jeśli upłynął limit czasu, przejdź do 1
4. Gotowe, mamy sygnał.

Dzisiaj eksperymentowałem z magnetofonem KSO Turbo 2000 (wejście z portu joysticka). Moja ładowarka Speedy2700 była w stanie rozpoznać ton pilota, ale nic poza tym.

Hmmm:
Jedyną różnicą jest aktywny MOTOR CTRL i COMMAND (logiczne 0). Są one potrzebne w wariancie SIO.

Jeśli dobrze rozumiem, KSO Turbo 2000 ma swój dodatkowy "MOTOR CTRL" na pinie 7 portu joysticka, uważam również, że jest "aktywny", gdy jest logiczne 0. Według Altirry, logiczne zero rzeczywiście tam jest.

Poczekajmy na test Sebana. Dziękuję.

KSO Turbo 2000 loader
Port A control:   3c (IOR, motor line: high / off, proceed line: -edge)
Port A direction: 60
Port A output:    00
Port A edge:      none
Port B control:   3c (IOR, command line: high / off, interrupt line: -edge)
Port B direction: ff
Port B output:    ff
Port B edge:      none

Baktra's Speedy2700 loader
Port A control:   34 (IOR, motor line: low / on, proceed line: -edge)
Port A direction: 60
Port A output:    00
Port A edge:      pending
Port B control:   34 (IOR, command line: low / on, interrupt line: -edge)
Port B direction: ff
Port B output:    ff
Port B edge:      none

Original Speedy2700 loader
Port A control:   34 (IOR, motor line: low / on, proceed line: -edge)
Port A direction: 60
Port A output:    00
Port A edge:      pending
Port B control:   34 (IOR, command line: low / on, interrupt line: -edge)
Port B direction: ff
Port B output:    ff
Port B edge:      none

Szkoda. Wygląda na to, że będę musiał zabrać swój magnetofon z rozszerzeniem KSO Turbo 2000, który kupiłem w Polsce i nigdy wcześniej nie testowałem.
Spróbuję najpierw uzyskać wgląd w emulator Altirra, aby zobaczyć stan układów PIA i POKEY.

pancio.net napisał/a:

Baktraaa, a czy możliwe byłoby dorobienie takiego feature by przed ładowaniem konkretnego pliku (np gry w T2000 ) dało by się załadować loader do tego turbo  w normal?
czyli:
zadajemy dwa pliki:
1. Loader do turbo (w normal)
2. właściwy plik (w turbo)

Chodzi o to, że nie zawsze wiesz pod jakim turbo plik będzie się uruchamiał i nie zawsze masz do tego turbo loader np na cartridge....

BTW, Twój Turgen to super sprawa - pełen podziw!

Większość pluginow ma już tę możliwość jako opcję. Czy jest jakiś konkretny przypadek, w którym go brakuje?

takron27 napisał/a:

baktraaa,
spieszę potwierdzić, że Omicron działa na 100%z kso.
na ~3000bps, czyli tyle co prędkość w kso, działa zawsze, bez zarzutu;
(czasem też wczyta na 4000bps, czasem się wywala)

Będę musiał zbadać, co może być nie tak.
Co się stanie, jeśli mój Speedy2700 zostanie przekonwertowany na plik startowy kasety? Czy to też zawodzi?

Więc jeśli dobrze rozumiem...

1. Oryginalna ładowarka Speedy2700 działa
2. Moja wersja programu ładującego Speedy2700 nie działa
3. Masz KSO Turbo 2000 używając wejścia z portu joysticka

Wydawałoby się, że automatyczne wykrywanie wejścia sygnału z jakiegoś powodu nie działa (to było coś, czego nie zmieniłem w loaderze i zachowałem bez zmian).

Czy mogę spróbować wypróbować Omicron Turbo z tym samym magnetofonem? Użyj tego samego .xex, wybierz dowolny typ konwersji.

108

(10,049 odpowiedzi, napisanych Bałagan)

@zbyti

Lubię mapę. Szkoda, że Żarnowiec nie mógł zostać ukończony. Wykorzystywanie większości energii z węgla nie jest dobre na dłuższą metę. A to tylko prąd, ale kraj potrzebuje też ciepła. Co chyba też pochodzi z węgla.

Teraz budowa lub rozbudowa elektrowni jądrowej jest zbyt trudna. Nie róbcie tego  jak my w Czechach. Od ponad 10 lat rządy spierają się, czy i jak rozbudować nasze jedyne dwie elektrownie jądrowe. Dlaczego w latach 80., kiedy budowano elektrownia Dukovany, nie było to takie trudne?

Czy Polska ma jakieś źródła uranu?

Prace trwają również dzięki wszystkim, którzy znajdują zapomniane informacje na temat systemów turbo.
I proszę zgłaszać błędy, jeśli je znajdziecie.

Panowie, bawcie się dobrze z TS w wersji 8.8.4 i Speedy2700. L3 pozostaje na razie, dopóki jego los nie zostanie przesądzony.

Mam kilka wiadomości na temat obsługi Speedy2700 w TS. Ostatni commit pozwala na konwersję loadera Speedy2700 do pliku startowego z taśmy. Wsparcie jest już prawie gotowe, więc 8.8.4 ukaże się wkrótce.
Zastanawiam się nad konwersją do formatu L3. Speedy2700 wykonuje praktycznie tę samą pracę, ale znacznie wydajniej. Czy jest tu jakiś zapalony użytkownik L3? Czy nikt nie ma pojęcia o istnieniu L3?

Możesz udać się do Baktrii po inspirację

ChainLoader Turbo 6000
https://github.com/baktragh/turgen_tape ... hainloader

Oryginalny loader Turbo 6000
https://github.com/baktragh/turgen_tape ... 000_loader

113

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

Odważę się polecić modernizację sprzętu Czechosłowackiego Turbo 2000.
https://turgen.sourceforge.io/docs/Turb ... pgrade.pdf

Otrzymasz kompatybilność z następującymi systemami załadunku:
Czechosłowacki: Turbo 2000, Super Turbo, B-TAPE, Turbo 2000 kilobajtowe bloky
Polskie: Turbo 2000F, Turbo 2001, Atari Super Turbo, Atari Turbo Tape, Unerring Master, Dolnośląskie Turbo 2000, Turbo ROM Plus.

Turbo Blizzard to dobry system, ma jednak dwie wady:
1. Stała i zbyt duża prędkość transferu
2. Nie jest kompatybilny z niczym innym, chyba że używasz cross-turbo-ładowarek

Dodałem do repozytorium zaktualizowaną wersję kodu źródłowego Speedy2700. Teraz możliwe jest stworzenie wersji, która jest plikiem startowym kasety.

Ulepszę Turgena, aby można było wybrać, czy program ładujący ma zostać przekonwertowany do formatu naturalnego KSO Turbo 2000, czy do pliku startoweho z  kasety. Będzie to wpis konfiguracyjny.

Czasowo zabrakło mi cierpliwości do ATASM i jego błędów, więc przerzuciłem się na MADS. Mam nadzieję, że tak będzie lepiej. Nie chcę was torturować CA65 i jego plikami konfiguracyjnymi linkera.

https://github.com/baktragh/turgen_tape ... speedy2700

Komentowane źródło Speedy 2700
https://github.com/baktragh/turgen_tape ... speedy2700

Mogę zgłosić duże postępy w Speedy 2700. Wprowadziłem zmiany, które pozwalają konwertować pliki do formatu Speedy 2700 za pomocą Turgena do repozytorium GIT. Gra Ridiculous Reality (mój ulubiony przedmiot testu) załadowała się między innymi dobrze.

Co zostało?
1. Trochę udoskonalamy loader i publikujemy jego kod źródłowy.
2. Dokładniejsze testowanie i wydawanie TS 8.8.4

Spróbuję.

Ściągnąłem plik ajek_speedy_2700_splited.7z, aby "pożyczyć" loader binarny i uruchomić go przez deasembler.

To dobra wiadomość, że loader obsługuje już różne wejścia sygnału (port joysticka/DATA IN). Z ciekawości porównam rozwiązanie z moim Omicronem Turbo.

Skrócenie loadera na niewiele się zda, bo nadal będzie to blok 3KB, chociaż im więcej zer w bloku, tym szybciej się ładuje. Widzę też, czy Super Packer może loader trochę skompresować.

Pod względem programowania w Javie będzie to łatwe. Format pliku Unerring Masters jest zasadniczo identyczny, więc będzie to CTRL-INSERT, SHIFT-INSERT z pewnymi modyfikacjami.

...Boże. Program ładujący sam się przemieszcza i xoruje. W ramach bonusu samomodyfikujący się kod. Ale z debuggerem Altirra odniosę sukces.

...Izolowałem rdzeń kodu programu ładującego binarnego. Można go uruchomić i zajmuje adresy od 0x0700 do 0x089E. Całkiem mały.

Aby był w pełni użyteczny, będę musiał wprowadzić pewne zmiany

1. Dostarczę mu inny relokator - byłoby to pożądane, gdy loader najpierw ładuje się pod adres 0x2100, a następnie przenosi się do 0x0700, aby nie zniszczył przedwcześnie KSO. Ale bez XORingu ani innych dziwactw. Potrzebny będzie również kod inicjujący.

2. Błąd ładowania zostanie zgłoszony tylko przez zwykły różowy ekran. Nie ma gwarancji, że jakiekolwiek litery i tak będą mogły zostać wyświetlone w takim scenariuszu.

Deasemblacja wygląda czytelnie, więc dodam skomentowany kod źródłowy do mojego repozytorium GIT.

Spodziewam się, że zmodyfikowana wersja będzie miała długość około 600 bajtów i upewnię się, że reszta bloku 3 KB jest wypełniona zerami, aby skrócić czas ładowania.

Ten format pliku i program ładujący Speedy 2700 jest interesujący, a także bardzo gęsty. Sygnały pilota marnują tylko niezbędny czas. Może rozważę wsparcie go w Systemie Turgen. Bloki 3KB są niezgrabne dla oprogramowania wymagającego pamięci, a mój system L3 marnuje dużo czasu na sygnały pilota.

Pecus napisał/a:

Uważam też, że znana z AST idea zapisywania jednego bloku (obszaru pamięci) jaest na prawdę dobra.... ale nie dla Atari, które już w tym okresie dysponowało formatem binarnym umożliwiającym "skakanie" po pamięci. A przerobienie pliku rozrzucającego się w czasie ładowania po całej pamięci na jeden blok bywało czasem karkołomne.

Zostało to rozwiązane przez program ładujący BUT i jego format pliku. Jednak najbardziej wydajne podejście obrał ładowacz Unnering Masters - nowy blok dopiero po segmencie INIT.

Nigdy w pełni nie rozumiałem formatu BUT. Wypróbowałem kilka przykładowych plików i nie znalazłem wystarczającej liczby podobieństw. Wygląda na to, że będę musiał disassemblovać oryginalny loader BUT z cartu AST.

120

(21 odpowiedzi, napisanych Software, Gry - 8bit)

Nowy Turgen z obsługą nowego 1-blokowego programu ładującego.
Skopiujcie plik turgen.jar do istniejącej instalacji Turgena.

https://sourceforge.net/p/turgen/turgen ... format=raw
https://atariage.com/forums/uploads/monthly_2021_04/35444104_obrzek_2021-04-08_103436.png.b1a1972c837cef208bc66cc8328c1d9a.png

121

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

micromax napisał/a:

Moja propozycja, może udało by się dodać przeglądarkę z FTP z grami? tak jak w PLAYZX, który sciąga grę automatycznie po wyszukaniu jej.

Problem polega na tym, że archiwa obrazów taśm .cas są w jakiś sposób rzadkie (podczas gdy archiwa TAP i TZX są obfite). Idealnym rozwiązaniem byłoby, gdyby CAS2Audio mogło akceptować pliki .xex. Gdyby obsługiwany był cały system turbo, oznaczałoby to przepisanie wszystkich wtyczek Turgen System (TS) na Androida. Trudne zadanie. Dlatego CAS2Audio został zaprojektowany jako mały satelita TS. TS tworzy pliki CAS z plików .xex, CAS2Audio je odtwarza.

122

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

Wersja 1.0.2 nie reaguje na przypadkowe obroty, więc sygnał nie jest przerywany.
https://github.com/baktragh/CAS2Audio/r ... /tag/1.0.2

123

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

https://github.com/baktragh/CAS2Audio/projects/1

124

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

takron27 napisał/a:

baktraaa, a może da się to prosto zrobić? na przykład: w aplikacji suwak/przełącznik blokowania układu/położenia ekranu.

Rozwiązanie nie jest takie proste. Domyślnie Android całkowicie restartuje aplikację po obróceniu urządzenia. Nawet jeśli ponownie uruchomię strumień audio, będą luki w sygnale.

Pierwszym krokiem będzie po prostu zapobieganie rotacji w CAS2Audio. Można to zrobić w manifeście aplikacji.

Android pozwala również na przesłonięcie domyślnego zachowania. Oznacza to, że aplikacja może samodzielnie obsługiwać obrót urządzenia. Jest to bardziej złożone i będzie rozwiązaniem długoterminowym.

125

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

To jest błąd. Spróbuję to naprawić, kiedy zorientuję się, jak obracający się ekran wpływa na cykl życia aplikacji.