Happy Warp
From Atariki
Wersja z dnia 22:30, 25 paź 2010 KMK (Dyskusja | wkład) (→Protokół transmisji US Doubler / Happy Warp) ← Previous diff |
Aktualna wersja Jer (Dyskusja | wkład) (→Opis sprzętowy) |
||
Linia 1: | Linia 1: | ||
- | Zaawansowane rozszerzenie do stacji [[1050]]. Oprócz szybkiej transmisji - w trybie UltraSpeed - dodano kopiowanie dysków zabezpieczonych sektorami CRC oraz sektorami podwójnie numerowanymi. Stacja z tym rozszerzeniem potrafi również obsługiwać 180k format PC. | + | Zaawansowane rozszerzenie do stacji [[1050]]. Oprócz szybkiej transmisji - w trybie UltraSpeed - dodano kopiowanie dysków zabezpieczonych sektorami CRC oraz sektorami podwójnie numerowanymi. |
== Charakterystyka == | == Charakterystyka == | ||
Linia 22: | Linia 22: | ||
# metodą "prób i błędów". | # metodą "prób i błędów". | ||
- | Ta druga polega na tym, że stacja stara się odebrać blok komendy ustawiając się kolejno na dostępne prędkości transmisji, a jeśli odebranie komendy powiedzie się (tj. [[CRC]] przesłanej komendy zgadza się z obliczonym), stacja pracuje dalej z rozpoznaną prędkością. Działa to dzięki temu, że komputer jest w stanie powtórzyć przesłanie tej samej komendy do 16 razy, zanim zgłosi błąd. | + | Ta druga polega na tym, że stacja stara się odebrać blok komendy ustawiając się kolejno na dostępne prędkości transmisji, a jeśli odebranie komendy powiedzie się (tj. [[suma kontrolna SIO|suma kontrolna]] przesłana razem z komendą zgadza się z jej obliczoną od nowa wartością), stacja pracuje dalej z rozpoznaną prędkością. Działa to dzięki temu, że komputer jest w stanie powtórzyć przesłanie tej samej komendy do 16 razy, zanim zgłosi błąd. |
Stacje z rozszerzeniem US Doubler implementują dodatkową komendę [[Lista_komend_SIO_według_funkcji#US_Doubler|'?']] (SEND [[HS Index|HIGH SPEED INDEX]]). Wysłanie - w standardzie - tej komendy do stacji dysków powoduje, że zwraca ona 1 bajt stanowiący wartość, jaką należy wstawić do licznika układu [[POKEY]] celem uzyskania szybkiej transmisji. W standardowych stacjach US Doubler wartością tą jest $0A, ale stacje innych producentów dzięki temu mechanizmowi mogą implementować wyższe prędkości i wciąż pozostają zgodne z US Doublerem. | Stacje z rozszerzeniem US Doubler implementują dodatkową komendę [[Lista_komend_SIO_według_funkcji#US_Doubler|'?']] (SEND [[HS Index|HIGH SPEED INDEX]]). Wysłanie - w standardzie - tej komendy do stacji dysków powoduje, że zwraca ona 1 bajt stanowiący wartość, jaką należy wstawić do licznika układu [[POKEY]] celem uzyskania szybkiej transmisji. W standardowych stacjach US Doubler wartością tą jest $0A, ale stacje innych producentów dzięki temu mechanizmowi mogą implementować wyższe prędkości i wciąż pozostają zgodne z US Doublerem. | ||
Linia 28: | Linia 28: | ||
== Opis sprzętowy == | == Opis sprzętowy == | ||
- | Więcej informacji oraz opis wykonania rozszerzenia na stronie [[Jerzy Sobola|Jurka Soboli]]: [http://dereatari.republika.pl/serw.htm http://dereatari.republika.pl/serw.htm] | + | Opis wykonania rozszerzenia jest dostępny na stronie [[Jerzy Sobola|Jurka Soboli]]: [http://jsobola.atari8.info/dereatari/schematy.htm]. |
+ | |||
+ | Rozszerzenie może być wyposażone w opcjonalny układ 1050 Controller, który umożliwia sterowanie zabezpieczeniem zapisu oraz trybem szybkiej transmisji. Instalowane są przy tym 2 przełączniki oraz sygnalizacyjna dioda LED. | ||
+ | |||
+ | == Konfiguracja == | ||
+ | |||
+ | Stację z rozszerzeniem Happy Warp można skonfigurować wysyłając do niej komendę [[SIO]] 'H' ($48) z odpowiednio ustawionymi DAUX1/2. | ||
+ | Wartości bitów b1-b0 w DAUX1 mają następujące znaczenie: | ||
+ | * 00: zmiana parametrów pracy stacji wg bitów konfiguracyjnych podawanych w DAUX2 (zob. niżej); w DAUX1 należy przy tym ustawić odpowiedniki tych bitów z DAUX2, które mają być uwzględnione | ||
+ | * 01: ustawienie opóźnienia wyłączenia silnika obracającego dyskietkę wg wartości podanej w DAUX2 (zakres 0-6,5 sek., jednostka 0,1s) | ||
+ | * 10: programowa zmiana numeru stacji; w DAUX2 podaje się nowy numer z ustawionym bitem 7 | ||
+ | * 11: restart stacji. | ||
+ | |||
+ | Funkcje bitów konfiguracyjnych: | ||
+ | * b0,b1 - nie używane, równe 0 | ||
+ | * b2 - brak danych o znaczeniu tego bitu | ||
+ | * b3,b4 - służą do konfiguracji opcjonalnego układu 1050 Controller (programowe zezwolenie lub zablokowanie zapisu) | ||
+ | * b5 - 1=wyłączenie szybkiego zapisu | ||
+ | * b6 - 1=wyłączenie [[buforowanie ścieżek|buforowania ścieżek]] | ||
+ | * b7 - 1=wyłączenie rozszerzonych funkcji Happy Warp, emulacja nierozszerzonej stacji. | ||
+ | |||
+ | Aktualna konfiguracja stacji jest zwracana jako zawartość sektora o specjalnym numerze $9700. Bajt 2 zawiera przy tym bieżące wartości bitów konfiguracyjnych, tj. ważne do zmiany dyskietki, zaś bajt 3 - wartości, które będą użyte później. | ||
+ | |||
+ | == Szybki zapis == | ||
+ | |||
+ | Standardowo stacje z Happy Warp uruchamiają się z '''wyłączonym''' tzw. szybkim zapisem. W celu jego włączenia należy przesłać do stacji komendę 'H' z DAUX1=$20 i DAUX2=$00 (tj. skasować bit konfiguracyjny b5). Wówczas [[buforowanie ścieżek]] będzie włączone także przy zapisie, a weryfikacja danych będzie się odbywać z wykorzystaniem bufora stacji. | ||
+ | |||
+ | Włączenie szybkiego zapisu jest zwykle elementem zgodnych z Happy Warp procedur szybkiej transmisji (zawartych w [[DOS]] lub [[OS]]). Robi to np. sterownik INDUS.SYS w SpartaDOS X, i z tego powodu jego załadowanie jest konieczne, gdy używa się stacji Happy. | ||
+ | |||
+ | Niektóre wersje Happy Warp automatycznie włączają szybki zapis po komendzie [[Lista_komend_SIO_według_funkcji#US_Doubler|'?']]. | ||
+ | |||
+ | == Obsługa dyskietek IBM PC == | ||
+ | |||
+ | Od wersji 7.1 rozszerzenie potrafi obsługiwać 180k format PC [[Formaty_dyskietek#DD_512|DD 512]]. Dostęp do takiej dyskietki jest jednak utrudniony, odbywa się z pomocą dedykowanych komend [[SIO]], a nie typowych poleceń odczytu i zapisu. W praktyce oznacza to konieczność używania firmowego programu IBMXFR. | ||
==Zobacz też== | ==Zobacz też== | ||
* [[SIO]] | * [[SIO]] | ||
* [[Systemy Turbo]] | * [[Systemy Turbo]] | ||
+ | |||
+ | == Bibliografia == | ||
+ | * [http://www.atarimax.com/members/happy/users.pdf Happy 810 & 1050 Enhancement Warp Speed Software Rev. 7 Users Manual] | ||
+ | |||
+ | ==Odnośniki zewnętrzne== | ||
+ | * [http://en.wikipedia.org/wiki/Happy_Computers Happy Computers w Wikipedii] | ||
[[Kategoria:Peryferia 8-bit]] | [[Kategoria:Peryferia 8-bit]] | ||
[[Kategoria:Rozszerzenia]] | [[Kategoria:Rozszerzenia]] |
Aktualna wersja
Zaawansowane rozszerzenie do stacji 1050. Oprócz szybkiej transmisji - w trybie UltraSpeed - dodano kopiowanie dysków zabezpieczonych sektorami CRC oraz sektorami podwójnie numerowanymi.
Spis treści |
Charakterystyka
- Inne nazwy: HAPPY DRIVE
- Producent: Happy Computers Inc., USA
- Procesor: 6502
- ROM: 8 KB
- RAM: 8 KB-6264
- PIO: 6532
- Kontroler: 2793
- Transmisja: 68200 bodów
- Gęstości: SD, ED, DD, ST/IBM
Uwaga: istnieją "w obiegu" stacje Top Drive 1050, które przedstawiają się jako "Happy Warp".
Protokół transmisji US Doubler / Happy Warp
Protokół transmisji US Doublera (i zgodnego z nim Happy Warp), znany też jako UltraSpeed bądź po prostu "Ultra", jest identyczny jak w standardzie, z tą różnicą, że układ POKEY programowany jest do pracy z prędkością 52 kbps. Z tą prędkością przesyłane jest wszystko, tj. komendy, potwierdzenia, bloki danych. Praca w standardowym 19,2 kbps także jest możliwa. Stacja przełącza się pomiędzy tymi dwoma trybami pracy automatycznie, a aktualna prędkość transmisji rozpoznawana jest przez nią na jeden z dwóch sposobów, w zależności od implementacji:
- na podstawie sygnału CLOCK OUT w gnieździe SIO, lub
- metodą "prób i błędów".
Ta druga polega na tym, że stacja stara się odebrać blok komendy ustawiając się kolejno na dostępne prędkości transmisji, a jeśli odebranie komendy powiedzie się (tj. suma kontrolna przesłana razem z komendą zgadza się z jej obliczoną od nowa wartością), stacja pracuje dalej z rozpoznaną prędkością. Działa to dzięki temu, że komputer jest w stanie powtórzyć przesłanie tej samej komendy do 16 razy, zanim zgłosi błąd.
Stacje z rozszerzeniem US Doubler implementują dodatkową komendę '?' (SEND HIGH SPEED INDEX). Wysłanie - w standardzie - tej komendy do stacji dysków powoduje, że zwraca ona 1 bajt stanowiący wartość, jaką należy wstawić do licznika układu POKEY celem uzyskania szybkiej transmisji. W standardowych stacjach US Doubler wartością tą jest $0A, ale stacje innych producentów dzięki temu mechanizmowi mogą implementować wyższe prędkości i wciąż pozostają zgodne z US Doublerem.
Opis sprzętowy
Opis wykonania rozszerzenia jest dostępny na stronie Jurka Soboli: [1].
Rozszerzenie może być wyposażone w opcjonalny układ 1050 Controller, który umożliwia sterowanie zabezpieczeniem zapisu oraz trybem szybkiej transmisji. Instalowane są przy tym 2 przełączniki oraz sygnalizacyjna dioda LED.
Konfiguracja
Stację z rozszerzeniem Happy Warp można skonfigurować wysyłając do niej komendę SIO 'H' ($48) z odpowiednio ustawionymi DAUX1/2. Wartości bitów b1-b0 w DAUX1 mają następujące znaczenie:
- 00: zmiana parametrów pracy stacji wg bitów konfiguracyjnych podawanych w DAUX2 (zob. niżej); w DAUX1 należy przy tym ustawić odpowiedniki tych bitów z DAUX2, które mają być uwzględnione
- 01: ustawienie opóźnienia wyłączenia silnika obracającego dyskietkę wg wartości podanej w DAUX2 (zakres 0-6,5 sek., jednostka 0,1s)
- 10: programowa zmiana numeru stacji; w DAUX2 podaje się nowy numer z ustawionym bitem 7
- 11: restart stacji.
Funkcje bitów konfiguracyjnych:
- b0,b1 - nie używane, równe 0
- b2 - brak danych o znaczeniu tego bitu
- b3,b4 - służą do konfiguracji opcjonalnego układu 1050 Controller (programowe zezwolenie lub zablokowanie zapisu)
- b5 - 1=wyłączenie szybkiego zapisu
- b6 - 1=wyłączenie buforowania ścieżek
- b7 - 1=wyłączenie rozszerzonych funkcji Happy Warp, emulacja nierozszerzonej stacji.
Aktualna konfiguracja stacji jest zwracana jako zawartość sektora o specjalnym numerze $9700. Bajt 2 zawiera przy tym bieżące wartości bitów konfiguracyjnych, tj. ważne do zmiany dyskietki, zaś bajt 3 - wartości, które będą użyte później.
Szybki zapis
Standardowo stacje z Happy Warp uruchamiają się z wyłączonym tzw. szybkim zapisem. W celu jego włączenia należy przesłać do stacji komendę 'H' z DAUX1=$20 i DAUX2=$00 (tj. skasować bit konfiguracyjny b5). Wówczas buforowanie ścieżek będzie włączone także przy zapisie, a weryfikacja danych będzie się odbywać z wykorzystaniem bufora stacji.
Włączenie szybkiego zapisu jest zwykle elementem zgodnych z Happy Warp procedur szybkiej transmisji (zawartych w DOS lub OS). Robi to np. sterownik INDUS.SYS w SpartaDOS X, i z tego powodu jego załadowanie jest konieczne, gdy używa się stacji Happy.
Niektóre wersje Happy Warp automatycznie włączają szybki zapis po komendzie '?'.
Obsługa dyskietek IBM PC
Od wersji 7.1 rozszerzenie potrafi obsługiwać 180k format PC DD 512. Dostęp do takiej dyskietki jest jednak utrudniony, odbywa się z pomocą dedykowanych komend SIO, a nie typowych poleceń odczytu i zapisu. W praktyce oznacza to konieczność używania firmowego programu IBMXFR.