Агат/Техническая информация: различия между версиями
< Агат
Panther (обсуждение | вклад) (Новая страница: «{{Emuverse}} == Агат-9 == === Порт клавиатуры === Для работы с клавиатурой используются следующие порты ввода-вывода: * C000—C00F – код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению. * C063 – линия Р/Л, старший бит кода нажат...») |
Panther (обсуждение | вклад) (→Агат-9) |
||
(не показано 10 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{Emuverse}} | {{Emuverse}} | ||
== Контроллер и дисковод 140к == | |||
* Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0! | |||
* Используется свой алгоритм кодирования [https://en.wikipedia.org/wiki/Group_coded_recording GCR 6.2], отличающийся от Apple Disk ][? | |||
** Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму. | |||
* Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно. | |||
* Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки. | |||
Документация по nib-формату: | |||
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md | |||
* https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md | |||
== Агат-9 == | == Агат-9 == | ||
=== Распределение портов === | |||
* C000-C00F ― регистр данных клавиатуры. | |||
* C010-C01F ― очистка регистра данных клавиатуры. | |||
* C020-C02F ― магнитофон? | |||
* C030-C03F ― звук? | |||
* C040-C04F ― ? | |||
* C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0). | |||
* C058-C05B ― переключение палитры. | |||
* C060-C06F ― клавиатура, пульты. | |||
* C070-C07F ― ? | |||
* C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF. | |||
* C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?. | |||
* C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка. | |||
* C200-C2FF ― разъём 2. | |||
* C300-C3FF ― разъём 3. | |||
* C400-C4FF ― разъём 4. | |||
* C500-C5FF ― разъём 5. | |||
* C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА) | |||
=== ПА и ПМ === | |||
* '''ПМ''' ― «Признак Машины» | |||
** 0 ― ОЗУ в режиме Агат, только сброс. | |||
** 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF | |||
* '''ПА''' ― «Признак Apple» | |||
** 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057 <br/>или C700-C7FF (при ПМ==1) | |||
** 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0 | |||
'''Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!''' | |||
=== Управление памятью === | |||
Назначение банков физической памяти на логические сегменты происходит записью произвольного значения по адресам C100-C1FF. Формат адреса: C1mn, где m ― номер логического сегмента (0-7), n ― номер банка (0-F). Чтение возвращает записанное значение. Запись разрешена только в режиме Агат (ПМ==0). | |||
При этом m = 0-7 обозначают номера сегментов в режиме Агат, а E и F указывают на подключенные банки к сегментам 6 и 7 в режиме Apple. | |||
=== Порт клавиатуры === | === Порт клавиатуры === | ||
Для работы с клавиатурой используются следующие порты ввода-вывода: | Для работы с клавиатурой используются следующие порты ввода-вывода: |
Текущая версия от 12:11, 22 марта 2024
Этот документ создан для Emuverse и распространяется на условиях лицензии CC-BY-SA-3.0. |
Контроллер и дисковод 140к
- Физические параметры: сторон: 1 (0), дорожек: 35 (0-34), секторов: 16 (0-15). Нумерация секторов от 0!
- Используется свой алгоритм кодирования GCR 6.2, отличающийся от Apple Disk ][?
- Пока замечено, что два «лишних» байта при кодировании первого блока «заворачиваются» на начало буфера, а в найденных эмуляторах Apple берутся нулевыми, что не влияет на раскодированные данные, но меняет контрольную сумму.
- Порядок секторов 0x0,0xD,0xB,0x9,0x7,0x5,0x3,0x1,0xE,0xC,0xA,0x8,0x6,0x4,0x2,0xF — при этом в файле DSK они находятся именно в таком порядке, и при генерации NIB-трека их переставлять не нужно.
- Как и в Apple Disk ][, число физических дорожек равно 70, но стандартно используется только каждая вторая, следовательно, номер дорожки в образе равен половине номера физической дорожки.
Документация по nib-формату:
- https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Nibble-notes.md
- https://github.com/fadden/CiderPress2/blob/main/DiskArc/Disk/Unadorned-notes.md
Агат-9
Распределение портов
- C000-C00F ― регистр данных клавиатуры.
- C010-C01F ― очистка регистра данных клавиатуры.
- C020-C02F ― магнитофон?
- C030-C03F ― звук?
- C040-C04F ― ?
- C050-C057 ― чт/зп ― видеорежим Apple, переключение ДК в режим Apple (ПА <= 0).
- C058-C05B ― переключение палитры.
- C060-C06F ― клавиатура, пульты.
- C070-C07F ― ?
- C080-C08F ― режим пзу, псевдо-пзу, сегмента D000-DFFF.
- C0F0-C0FF ― запись ― переключение ПМ <= 1, чтение ― ?.
- C100-C1FF ― запись ― переключение страниц памяти, чтение ― возврат номера подключенного банка.
- C200-C2FF ― разъём 2.
- C300-C3FF ― разъём 3.
- C400-C4FF ― разъём 4.
- C500-C5FF ― разъём 5.
- C700-C7FF ― Видеорежим Агат, переключение ДК а режим Агат/Apple (ПА)
ПА и ПМ
- ПМ ― «Признак Машины»
- 0 ― ОЗУ в режиме Агат, только сброс.
- 1 ― ОЗУ в режиме Apple, запись по адресу C0F0-C0FF
- ПА ― «Признак Apple»
- 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057
или C700-C7FF (при ПМ==1) - 1 ― ДК в режиме Агат, сброс или обращение по адресам C700-C7FF при ПМ==0
- 0 ― ДК в режиме Apple, обращение (ч/з) по адресам C050-C057
Внимание! В отдельных изданиях официальной документации названия сигналов перепутаны!
Управление памятью
Назначение банков физической памяти на логические сегменты происходит записью произвольного значения по адресам C100-C1FF. Формат адреса: C1mn, где m ― номер логического сегмента (0-7), n ― номер банка (0-F). Чтение возвращает записанное значение. Запись разрешена только в режиме Агат (ПМ==0).
При этом m = 0-7 обозначают номера сегментов в режиме Агат, а E и F указывают на подключенные банки к сегментам 6 и 7 в режиме Apple.
Порт клавиатуры
Для работы с клавиатурой используются следующие порты ввода-вывода:
- C000—C00F – код нажатой клавиши (младшие 7 битов). Старший бит, равный 1, означает, что код готов к чтению.
- C063 – линия Р/Л, старший бит кода нажатой клавиши (бит 7).
- C010—C01F – обращение по этим адресам сбрасывает буфер для приема следующей клавиши.