CAS

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 12:13, 5 sty 2024
Mono (Dyskusja | wkład)
(Odnośniki zewnętrzne - link do a8cas-tools)
← Previous diff
Aktualna wersja
Seban (Dyskusja | wkład)
(strona E.R.Schreursa już nie istnieje, zamiana odnośnika na ten z WayBack Machine.)
Linia 31: Linia 31:
Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole ''aux'' jest ignorowane, natomiast ''data'' zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku. Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole ''aux'' jest ignorowane, natomiast ''data'' zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku.
====baud==== ====baud====
-Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następneg bloku "baud"). Blok ten ma długość ''length'' równą 0, a pole ''aux'' zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud".+Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następnego bloku "baud"). Blok ten ma długość ''length'' równą 0, a pole ''aux'' zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud".
 + 
====data==== ====data====
Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole ''aux'' zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się '''przed''' rekordem, a ''data'' zawiera kolejne bajty znajdujące się w rekordzie. Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole ''aux'' zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się '''przed''' rekordem, a ''data'' zawiera kolejne bajty znajdujące się w rekordzie.
Linia 45: Linia 46:
==Odnośniki zewnętrzne== ==Odnośniki zewnętrzne==
-* [http://home.planet.nl/~ernest/atarixle.html Strona domowa Ernesta R. Schreursa] - m. in. programy WAV2CAS, CAS2WAV+* [https://web.archive.org/web/20230101130543/http://home.planet.nl/~ernest/atarixle.html Strona domowa Ernesta R. Schreursa] - m. in. programy WAV2CAS, CAS2WAV
* [https://a8cas.sourceforge.net/format-cas.html Strona programu a8cas-tools] napisanego przez [[Krótki]]ego z opisem rozszerzonego protokołu * [https://a8cas.sourceforge.net/format-cas.html Strona programu a8cas-tools] napisanego przez [[Krótki]]ego z opisem rozszerzonego protokołu

Aktualna wersja

Plik zawierający obraz taśmy z Atari. Przygotowywany jest przy pomocy programu WAV2CAS - zamiana modulacji częstotliwości WAV na postać binarną.

Analogicznie, program CAS2WAV zamienia pliki CAS na format WAV, który następnie można zapisać na kasetę.

Format CAS został zaprojektowany przez Ernesta R. Schreursa, autora pakietu WAV2CAS.

Spis treści

Opis formatu CAS

Plik CAS składa się z bloków, z których każdy ma nagłówek długości 8 bajtów. Każdy blok ma następującą postać:

Opis bloku CAS
Offset Rozmiar (bajty) Nazwa Znaczenie
0 4 type Typ bloku - 4-znakowy napis.
4 2 length długość bloku (najpierw LSB; długość nagłówka nie wliczona)
6 2 aux zależne od typu bloku
8 length data dane (znaczenie zależne od typu bloku)

Zatem cały blok ma długość length+8.

Liczby w nagłówku są zapisane w formacie little-endian.

Plik CAS ma następującą strukturę: najpierw blok typu "FUJI", a następnie dowolna kombinacja bloków typu "baud" i "data".

Typy bloków

Nazwa typu bloku jest jednocześnie wartością pola type nagłówka.

FUJI

Blok typu "FUJI" występuje tylko raz, na początku pliku. Pole aux jest ignorowane, natomiast data zawiera ciąg ASCII będący (czytelnym dla użytkownika) opisem pliku.

baud

Blok typu "baud" określa częstotliwość (w bodach) następujących po nim bloków typu "data" (aż do następnego bloku "baud"). Blok ten ma długość length równą 0, a pole aux zawiera częstotliwość. Standardowa prędkość transmisji wynosi 600 bodów i taka też wartość jest domyślnie przyjmowana przez program CAS2WAV dla bloków "data", których nie poprzedza blok "baud".

data

Blok typu "data" zawiera właściwe dane - pojedynczy rekord pliku taśmowego. Pole aux zawiera długość w milisekundach przerwy (IRG - Inter Record Gap) znajdującej się przed rekordem, a data zawiera kolejne bajty znajdujące się w rekordzie.

W bloku typu "data" można przechować wyłącznie standardowe rekordy SIO (aczkolwiek mogą mieć dowolną długość, nie tylko standardowe 132 bajty). W standardowym rekordzie SIO każdy bajt jest zakodowany na 10 bitach: bit startu = 0, 8 bitów danych (poczynając od najmniej znaczącego bitu), bit stopu = 1. Nie jest możliwe zapisanie rekordu, w środku którego zmienia się prędkość odczytu, ani żadnych innych nietypowych danych. Format CAS nie pozwala zatem zarchiwizować taśm zabezpieczonych przed kopiowaniem.

Użyteczność

Oprócz programów WAV2CAS i CAS2WAV, format CAS jest także obsługiwany przez emulator Atari800 i pochodne, aczkolwiek wszystkie rekordy są tam wczytywane z prędkością 600 bodów (stan z wersji 2.0.3). Plik CAS można także wysłać bespośrednio do Atari za pomocą kabla SIO2PC i programu CAS2SIO/cassio, a także za pomocą SIO2USB.

Pliki CAS są też dobrze wspierane przez AtariSIO i APE.

AtariSIO poczynając od deweloperskiego snapshotu z dnia 13.01.2010 obsługuje długie bloki oraz nieoficjalne rozszerzenie formatu CAS o blok typu 'fsk ' (opisane na stronach projektu A8CAS). Dzięki temu możliwe jest wczytywanie przez kabel SIO2PC kaset z zabezpieczeniami, zarchiwizowanych w formacie CAS.

Odnośniki zewnętrzne

Personal tools