Похоже, что это файлы на Бейсике. Видимо, утилита про них не знает и пытается интерпретировать сигнатуру в начале файла как адрес.
Вид для печати
Отписался в теме Специалиста о результате.
Подскажите по формату кассетной записи на РК86.
Я так понимаю, что вначале идет адрес начала файла, адрес конца, затем тело, затем два нулевых байта, затем синхробайт 0xE6, а затем какие-то два байта. Контрольная сумма? Как она вычисляется?
Беззнаковое сложение. Один байт просто сумма, второй - циклическая сумма. http://www.danbigras.ru/RK86/Naladka/CRC.html
Нулевых байтов может быть два (большинство компьютеров) либо один (Партнер). При чтении лучше не полагаться на количество нулевых байт, а просто ждать синхробайт.
На Микроше формат другой - синхробайта и нулевых байт в конце нет, сразу идет контрольная сумма, к тому же и считается она по-другому...
ПЗУ Микроши не дизассемблировал, т.к никогда не имел. КС для Специалиста, РК86 и Ориона:
Код:.
CHSUM: LD BC, 0
CHSLOO: LD A, C
ADD A, (HL)
LD C, A
PUSH AF
CALL CMPDH
JP Z,POPAF
POP AF
LD A, B
ADC A, (HL)
LD B, A
INC HL
JP CHSLOO
POPAF: POP AF
RET
CMPDH: LD A,H
CP D
RET NZ
LD A,L
CP E
RET
Код:.
CHSUMMA PROC ; BEGADR:DX, ENDADR:CX, RET:BX
MOV SI, DX
XOR BX, BX
CHSLOO: ADD BL, ES:[SI]
PUSHF
CMP SI, CX
JZ POP_F
POPF
ADC BH, ES:[SI]
INC SI
JMP CHSLOO
POP_F: POPF
RET
CHSUMMA ENDP
Для загрузки по сбросу контрольная сумма не нужна. Очевидно А.Волков взял МГ-процедуры от МИКРО-80, т.к это был единственная доступная информация про работу с МГ, хорошо документированная в ж.РАДИО за 1982. А т.к там, ни в формате монитора, ни в формате бейсика, контрольные суммы не использовались, то и Волков сделал так же.
Потому в загрузчике по сбросу процедура загрузки такая: после инициализации служ.ячеек (что просто копирование подпрограммой COPY C42D блока начальных констант из ПЗУ в ОЗУ) и вывода стартового сообщения, делается следующее:
Подпрограмма C3F9 - это ввод блока с поиском синхробайта по адресам следующим сразу за синхробайтом (причём младший и старший байты адреса следуют в стандартном порядке Intel, а не шиворот-навыворот, как у РК86). Контрольная сумма этой подпрограммой не читается и не контролируется. И это было сохранено и в зверковском загрузчике и повторено в ленинградском мониторе. Так что по сбросу можно загрузить даже дохлый файл.Код:.
CALL C3F9
LD HL,(ASTART)
JP (HL)
Хотя директивный монитор А.Волкова (тот, что грузится на 8D00) контрольную суммы при записи выдаёт. Если после синхробайта E6 стоит D9, D9, D9, то это формат с именем, а не формат для загрузки по сбросу.
Грамотная многоблочная программа может вышибать управление и при вводе по I. Это достигается тем, что блок грузится прямо в стек, подменяя адрес возврата из C3F9, но это нехорошо, т.к в разных мониторах разное число служ.ячеек и стек ставится по разному, что делает такой перехват зависимым от конкретной версии ПЗУ. Вот в ОРИОНЕ перехват удобнее, т.к там есть адрес вылета по ТАЙМ-АУТ, когда нет фронтов на время более 2-х периодов.
Titus, вот готовый фрагмент для подсчета КС в формате РК/Специалиста из исходников emu80:
Попозже могу посмотреть, что используется для Микроши - нужно найти в Мониторе и дизассемблировать...Код:uint16_t cs = 0;
for (uint16_t i = 0; i < fileSize - 1; i++) {
cs += buf[i];
cs += (buf[i] << 8);
}
cs = (cs & 0xff00) | ((cs + buf[fileSize - 1]) & 0xff);
Вот оно, из-за чего ошибка. Для последнего байта контрольная сумма считается иначе.
- - - Добавлено - - -
Кто-нибудь кинет аудиофайл с плохочитающейся записью для РК или Специалиста?
Плохость записи определяется не выпавшими битами, а нестабильностью скорости, плохими фронтами, гуляющей постоянкой.
Пришли аудиозаписи, которые плохо читаются. Я тебе в личку письмо написал)
- - - Добавлено - - -
Пока никто не кидает плохих аудиозаписей для тренировки моей читалки, я нашел на ютубе кассету с записью программ для РК86.
Попробуйте считать в своих эмуляторах или распознать чем-то пример оттуда: http://dropmefiles.com/jVOhN
У меня распознается, и НЕ в ручном режиме:-)
У меня нераспознаются не из-за качества записи а из-за отсутствия времени. Временно на паузе, надеюсь летом продолжу, как вернусь домой.
В общем, за неимением других плохих записей, обкатал свою читалку на вот таком примере:
https://www.youtube.com/watch?v=9tEML241j_o
И вытащил из него почти все (не ручками!), за исключением редактора-ассемблера (ручками возиться не стал).
На эмуляторах результат не проверял, но думаю, что все ок.
Код:Дата записи ПО - январь 1988 Программы:
1-2 Скорость
3-4 Питон
5-6 Ксоникс
7-8 Тетрис
9-10 Бейсик
11-12 Стратегия
13-14 Угадай число
15-16 Морской бой
17-18 Редактор-Ассемблер
19-20 Тест ОЗУ
Titus, в эмуляторе программы считываются с ошибками. Подозреваю, что на реале будет не сильно лучше.
Titus, HardWareMan, а ваши читалки доступны хотя бы в виде бинарников? Или писалось исключительно для себя, без распространения?
У меня те же условия, но только после того, как я закончу со всеми своими 80-тью кассетами. :)
Попробовал загрузить записи с youtube на реальном "Апогее" (процедура чтения на нем абсолютно идентична РК-86). Немного поигрался уровнями, каналами и константами чтения, но добиться совпадения КС не удалось: читаются так же неустойчиво, как и в эмуляторе (кстати, каналы там в противофазе, нужно брать либо левый, либо правый, но не смесь).
В общем, можно считать эти записи "плохими записями для тестов" - на реале они грузятся с ошибками...
Других плохих записей у меня, к сожалению, нет - имеющиеся в наличии кассеты грузятся без особых проблем... Посмотрю еще в выходные - может быть что-то вдруг завалялось (но вряд ли).
а где можно посмотреть про отдельный дегенератор для ВГ75 ?
где-то в сети читал про то что для ВГ75 ставилиотдельный генератор ( статейка из журнала Радио вроде ) но вот неогу найти ее
Вот теперь ясно о чём речь.
Речь о журнале РАДИО 01.1991. Статья том, что можно простейшим способом турбировать РК86 заменив кварц для ГФ24. А чтобы видеосигнал остался стандартным надо где-то взять TTL-клок 16 МГЦ для ВГ75, для чего пригоден любой генератор, например на 531ЛН1.
Более высокий такт КР580 (и соответственно RAS-CAS) снижает нагрузочную способность шины, потому при развитой периферии можно ограничиться тактом КР580 в 2.2 МГЦ от кварца 20 МГЦ или тактом в 2.5 МГЦ при кварце 22.5 МГЦ. При кварце 20 МГЦ эффективное быстродействие будет ~1.77 МГЦ (вместо ~1.3 МГЦ), а при кварце в 22.5 МГЦ - более 2 МГЦ.
Можно получить ускорение и без отдельного генератора, не меняя такт КР580, если повысить клок только ПДП с 1.77 МГЦ до 2.66 или даже до 3.2 МГЦ, разделив такт TTL 16 МГЦ с выхода ГФ24 на 5 или на 6 с помощью дополнительного счётчика.
Titus, нашел у себя несколько кассет - кандидатов на плохие записи. Это кассеты с софтом, присланные из каких-то кооперативов. Софт с них был сразу же переписан на другие кассеты, а вот как читаются оригиналы спустя столько лет - вопрос. На днях попробую прочитать.
http://ipic.su/img/img7/fs/Windowsdl...1522856661.png
Выложите, пожалуйста, кто-нибудь эту Windows для РК86.
Код:----------------------------------------------------- ОПЕРАЦИОННАЯ СИСТЕМА ДЛЯ WINDOWS "WINWAY"
"REAL TIME"
(C) THE DARK & AG PRO
1995-2000
-----------------------------------------------------
для правильного отображения
используйте шрифт типа Courier (rus)
ОПИСАНИЕ СИСТЕМЫ
ВВЕДЕНИЕ
--------
ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS "REAL TIME" (ОС)
ПРЕДНАЗНАЧЕНА ДЛЯ ИСПОЛЬЗОВАНИЯ В СРЕДЕ
WINDOWS "WINWAY" НА БАЗЕ ПРОЦЕССОРА
INTEL 8080 И СОВМЕСТИМЫХ.
ОС "REAL TIME" ОПЕРИРУЕТ ПОНЯТИЕМ ФАЙЛА.
ФАЙЛОМ ЯВЛЯЕТСЯ ФРАГМЕНТ ОПЕРАТИВНОЙ ПАМЯТИ,
ЗАРЕГИСТИРОВАННЫЙ В ОС, ИМЕЮЩИЙ ИМЯ И
РАСШИРЕНИЕ ИМЕНИ.
ОС ВЫПОЛНЯЕТ ФАЙЛОВЫЕ ОПЕРАЦИИ С РАЗГРАНИЧЕНИЕМ
ДОСТУПА К ПАМЯТИ И РЕАЛИЗУЕТ ЗАЩИТУ ОБЛАСТЕЙ
ПАМЯТИ, ИСПОЛЬЗУЕМЫХ ПРИЛОЖЕНИЯМИ.
РАСПРЕДЕЛЕНИЕ АДРЕСНОГО ПРОСТРАНСТВА
------------------------------------
0000..00FF СИСТЕМНАЯ ОБЛАСТЬ "REAL TIME"
0100..05FF ПАКЕТ WINDOWS "WINWAY"
0600..08FF ПАКЕТ "SYSTEM DRIVERS"
0900..0CFF ПАКЕТ "QUICK GRAPHICS"
0D00..10FF ОПЕРАЦИОННАЯ СИСТЕМА "REAL TIME"
1100..LAB1 СВОБОДНАЯ ОБЛАСТЬ ФАЙЛОВ
LAB2..LAB3 ОБЛАСТЬ ВИДЕОБУФЕРА
LAB4..LAB5 СИСТЕМНАЯ ОБЛАСТЬ МОНИТОРА
LAB6..LAB7 СВОБОДНАЯ ОБЛАСТЬ ФАЙЛОВ
LAB8..LAB9 ПОРТЫ АППАРАТУРЫ
F800..FFFF СИСТЕМНЫЙ МОНИТОР
ЗНАЧЕНИЯ АДРЕСОВ В КОНФИГУРАЦИЯХ ОС "REAL TIME"
-----------------------------------------------------
! ИМЯ ! АДРЕС ! ПРИМЕЧАНИЕ !
-----------------------------------------------------
КОМПЬЮТЕР РК-86
LAB1 68FF КОНЕЦ СВОБОДНОЙ ОБЛАСТИ ФАЙЛОВ
LAB2 6900 НАЧАЛО ОБЛАСТИ ВИДЕОБУФЕРА
LAB3 73FF КОНЕЦ ОБЛАСТИ ВИДЕОБУФЕРА
LAB4 7600 НАЧАЛО СИСТЕМНОЙ ОБЛАСТИ МОНИТОРА
LAB5 76CF КОНЕЦ СИСТЕМНОЙ ОБЛАСТИ МОНИТОРА
LAB6 7700 НАЧАЛО СВОБОДНОЙ ОБЛАСТИ ФАЙЛОВ
LAB7 7FFF КОНЕЦ СВОБОДНОЙ ОБЛАСТИ ФАЙЛОВ
LAB8 8000 НАЧАЛО ПОРТОВ АППАРАТУРЫ
LAB9 F7FF КОНЕЦ ПОРТОВ АППАРАТУРЫ
-----------------------------------------------------
ЗАПУСК ОС
---------
ОПЕРАЦИОННАЯ СИСТЕМА ЗАГРУЖАЕТСЯ
В ОПЕРАТИВНУЮ ПАМЯТЬ С ВНЕШНЕГО НОСИТЕЛЯ
И ЗАПУСКАЕТСЯ АВТОМАТИЧЕСКИ.
ПОСЛЕ ЗАПУСКА СИСТЕМА ИНИЦИАЛИЗИРУЕТ
УСТРОЙСТВА, СТИРАЕТ ЭКРАН, ВЫВОДИТ
ПАНЕЛЬ ЗАДАЧ И ПЕРЕХОДИТ В РЕЖИМ
ИНТЕРАКТИВНОГО ВВОДА И ОБРАБОТКИ
КОМАНД ПОЛЬЗОВАТЕЛЯ.
РАБОТА В ОС
-----------
REAL TIME
VMAKER .E 1100 2BFF
CLIPPER .E 7400 75A2
REALTIME .T 2C00 3F30
VG_EDIT .E 4D00 5DFF
§¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶
ОС "REAL TIME" ЯВЛЯЕТСЯ ПРОСТОЙ В ИСПОЛЬЗОВАНИИ,
НАДЕЖНОЙ, ИНТЕРАКТИВНОЙ, МОДУЛЬНОЙ, РАСШИРЯЕМОЙ,
НАСТРАЕВАЕМОЙ СИСТЕМОЙ.
СИСТЕМА ИСПОЛЬЗУЕТ ИНТУИТИВНО ПОНЯТНЫЙ
ГРАФИЧЕСКИЙ ОКОННЫЙ ПОЛЬЗОВАТЕЛЬСКИЙ
ИНТЕРФЕЙС.
В ОС МОГУТ ПРИМЕНЯТЬСЯ СИСТЕМНЫЕ РАСШИРЕНИЯ,
КОТОРЫЕ СУЩЕСТВЕННО РАСШИРЯЮТ
ФУНКЦИОНАЛЬНЫЕ И ИНТЕРФЕЙСНЫЕ ВОЗМОЖНОСТИ СИСТЕМЫ.
ПРИ РАБОТЕ СИСТЕМЫ НА ЭКРАНЕ ОТОБРАЖАЕТСЯ
ОСНОВНОЕ ОКНО - ПАНЕЛЬ ФАЙЛОВ,
С ПОМОЩЬЮ КОТОРОЙ ПРОИЗВОДИТСЯ РАБОТА С ФАЙЛАМИ.
В ПАНЕЛИ ОТОБРАЖАЕТСЯ СПИСОК
ФАЙЛОВ, ЗАРЕГИСТРИРОВАННЫХ В СИСТЕМЕ, ДЛЯ
КАЖДОГО ФАЙЛА ВЫВОДЯТСЯ ЕГО АТРИБУТЫ -
ИМЯ, РАСШИРЕНИЕ ИМЕНИ, НАЧАЛЬНЫЙ И КОНЕЧНЫЙ
АДРЕСА ОБЛАСТИ ПАМЯТИ, ЗАНЯТОЙ ФАЙЛОМ.
СУЩЕСТВУЮТ ДВЕ ОСНОВНЫХ КАТЕГОРИИ ФАЙЛОВ -
ПРИЛОЖЕНИЯ И ФАЙЛЫ ДАННЫХ.
НА ПАНЕЛИ ЗАДАЧ ИСПОЛЬЗУЕТСЯ СЛЕДУЮЩИЙ
ФОРМАТ НАЗВАНИЯ ФАЙЛА:
8 СИМВОЛОВ - ИМЯ ФАЙЛА
1 СИМВОЛ - РАСШИРЕНИЕ ИМЕНИ ФАЙЛА
ПРИ НЕОБХОДИМОСТИ ПРИЛОЖЕНИЯ
(НАПРИМЕР "SWORD") МОГУТ РАБОТАТЬ
С ДЛИННЫМИ ИМЕНАМИ ФАЙЛОВ
И СОХРАНЯТЬ ИХ НА ВНЕШНЕМ НОСИТЕЛЕ
С ДЛИННЫМИ ИМЕНАМИ
(НАПРИМЕР "ДЛИННОЕ ИМЯ .TXT")
В ДЛИННОМ ИМЕНИ ДОПУСКАЕТСЯ
ИСПОЛЬЗОВАТЬ ДО 22 СИМВОЛОВ.
ТИПЫ ФАЙЛОВ, ИСПОЛЬЗУЕМЫХ В СИСТЕМЕ:
EХЕ (Е) ПРИЛОЖЕНИЕ ОС "REAL TIME"
TXT (T) ТЕКСТОВЫЙ ДОКУМЕНТ
VMK (T) ДОКУМЕНТ НА ЯЗЫКЕ VMAKER
HTML (T) ГИПЕРТЕКСТОВЫЙ ДОКУМЕНТ
GRAF (G) ГРАФИЧЕСКИЙ ФАЙЛ
DSK (D) ДИСКОВЫЙ ФАЙЛ
AREA (A) ЗАРЕЗЕРВИРОВАННАЯ ОБЛАСТЬ ПАМЯТИ
LIB (L) БИБЛИОТЕЧНЫЙ ФАЙЛ ДЛЯ КОМПОНОВКИ
VOC (V) ФАЙЛ ОЦИФРОВАННОГО ЗВУКА
MIDI (M) ФАЙЛ СИНЕЗАТОРА ЗВУКА
<ПРОБЕЛ> КАТАЛОГ ФАЙЛОВ
ФАЙЛЫ С РАСШИРЕНИЕМ 'ЕХЕ' ('Е' НА ПАНЕЛИ ЗАДАЧ)
ЯВЛЯЮТСЯ ЗАПУСКАЕМЫМИ ПРОГРАММАМИ
(ПРИЛОЖЕНИЯМИ ОС "REAL TIME").
ОДНОВРЕМЕННО В СИСТЕМЕ И СООТВЕТСТВЕННО
НА ПАНЕЛИ ЗАДАЧ МОЖЕТ БЫТЬ ОПРЕДЕЛЕНО
ДО 12 ФАЙЛОВ (В БАЗОВОМ ВАРИАНТЕ).
ОСНОВНЫЕ КОМАНДЫ ОС
-------------------
F1 ЧТЕНИЕ ФАЙЛА С ВНЕШНЕГО НОСИТЕЛЯ
F2 ВЕРИФИКАЦИЯ ФАЙЛА НА ВНЕШНЕМ НОСИТЕЛЕ
F3 ЗАПИСЬ ФАЙЛА НА ВНЕШНИЙ НОСИТЕЛЬ
F4 ПЕРЕИМЕНОВАНИЕ ТЕКУЩЕГО ФАЙЛА
(ТОЛЬКО ДЛЯ ВЕРСИИ 5.0 И ВЫШЕ)
F5 ВЫХОД ИЗ ОПЕРЦИОННОЙ СИСТЕМЫ
СТРЕЛКА ВВЕРХ, ПЕРЕМЕЩЕНИЕ УКАЗАТЕЛЯ
СТРЕЛКА СНИЗ ПО СПИСКУ ФАЙЛОВ
ENTER АКТИВИЗАЦИЯ ФАЙЛА
ЕСЛИ ВЫБРАНО ПРИЛОЖЕНИЕ
(ФАЙЛ С РАСШИРЕНИЕМ 'ЕXE'),
ТО ЕМУ БУДЕТ ПЕРЕДАНО
УПРАВЛЕНИЕ
ПС <A> <B> ПЕРЕМЕЩЕНИЕ ФАЙЛА НА АДРЕС &AB00,
ГДЕ A И B - ДВЕ ЦИФРЫ АДРЕСА
(ШЕСТНАДЦАТЕРИЧНЫЕ)
(CNTRL-J для эмулятора)
СТР УДАЛЕНИЕ ФАЙЛА
(PAGE-UP для эмулятора)
УПP ^ ПЕРЕЗАПУСК СИСТЕМЫ
(SCROLL-LOCK CNTRL-X для эмулятора)
-----------------------------------------------------
(C) ВСЕ АВТОРСКИЕ ПРАВА
ПРИНАДЛЕЖАТ
THE DARK & AG PRO
12 АПРЕЛЯ 2000 ГОДА
-----------------------------------------------------
HTTP://INTEL8080.DA.RU HTTP://THEDARK.DA.RU
thedark@mail.ru
ICQ 48764751
-----------------------------------------------------
Так понимаю, что коды программы не сохранились. Жаль. Направление развития системного ПО товарищ выбрал правильное, без GUI даже на РК86 неудобно.
При словах Real Time думалось, что в системе есть прерывания, а при слове Windows думалось о графике с мышью. Что за Windows может быть без графики и даже без дополнительных фонтов?
Какой носитель файлов тоже не указано. Да и размер операционной системы в 1 кб наводит на грустные мысли. У меня не получалось даже в кодах Z80 сделать DOS (с нормальной файловой системой) с размером кода менее 8-ми килобайт.
Но сама идея вполне реальна даже для РК86. Считаю, что истратив не более 10 дополнительных TTL-корпусов реально доработать РК86 до полной графики и сделать файловый менеджер с Windows подобным интерфейсом.
- - - Добавлено - - -
Обнаружил ключевую фразу, пропущенную при первом прочтении.
Вот те на... И это в 1999 году. Если бы памяти было хотя бы несколько банок. Управление памятью в 22 свободных килобайта это не Windows и даже вообще не DOS, а демо или пародия.Цитата:
ФАЙЛОМ ЯВЛЯЕТСЯ ФРАГМЕНТ ОПЕРАТИВНОЙ ПАМЯТИ, ЗАРЕГИСТРИРОВАННЫЙ В ОС, ИМЕЮЩИЙ ИМЯ И РАСШИРЕНИЕ ИМЕНИ
Из этого ясно, что, вероятно, под мультимедийными приложениями понимаются текстовые игры РК, снабжённые хриплыми звуками.
Есть такая замечательная вещь - webarchive.
Вот сайт: http://nf8.jinr.ru/~volkov/pc-nostalgia/
Вот ссылка на коды (с эмулятором Pyk-а): http://nf8.jinr.ru:80/~volkov/pc-nostalgia/program/Emulator8080rt-25.exe
Вот актуальный адрес сайта Эдуарда:
http://rk86.smart-tv-home.ru/