Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Кассетный интерфейс |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 * 10 | Печать |
Kurill_GANJOU |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 0:05 Сообщение отредактировано: 2 мая 2014 0:17
SoftCat написал: Во вложении – процедуры чтения/записи файлов на кассету от «Поиска-1». Там, помимо всего прочего, есть описание кассетного заголовка. Особо хотел бы обратить внимание на примечание: Может быть для текстовых файлов на Бейсике длину надо как-то корректировать? 01 – это исполнимый бинарник; 80 – сжатая Бейсик-прога; A0 – защищенная Бейсик-прога. А прога в виде ASCII текста имеет тип 40. То есть, по идее, для него длина должна браться не из заголовка, а каким-то другим образом. Теперь понятно, почему wav2cas глючит, причем именно на этом типе данных. «Длина записанной в файл информации, значения сегмента и смещения адреса (поля заголовка A-F) запоминаются в заголовке только для файлов типов 01, 80 и А0.» Кстати, неплохо бы узнать, как в этом случае находится длина. Первое, что мне пришло в голову – это следующий алгоритм: считывается с ленты 256-байтный блок, в нем ищется какой-то маркер конца файла (рискну предположить, что это четыре идущие подряд нулевых байта). Если маркер найден, значит, файл считан до конца. Если нет – загрузить с ленты следующие 256 байт и повторить поиск, и т. д. Хотя об этом Бейсик было бы хорошо спросить: можно попробовать выловить и дизассемблировать процедуры работы с кассетными файлами. Ловить можно, например, по обращению к INT 15. SoftCat написал: Я – никак. Назначение моего обработчика кассетного прерывания – это тупо считать или записать блок данных с ленты или на ленту. А уж сколько именно байтов в этом блоке использовать, решает вызывающая этот обработчик прога. В данном случае – Бейсик, т. к. других прог для работы с кассетами IBM PC (именно PC/PCjr, а не «Поиск-1») я что-то не видел. А Вы как учитываете длину файла, указанную в заголовке? Прикрепленный файл (RWCAS.ASM, 5093 байт, скачан: 56 раз) |
SoftCat |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 0:34 Сообщение отредактировано: 2 мая 2014 0:35
Kurill_GANJOU написал: Тогда поясните, пожалуйста, поподробнее, зачем Вам потребовался байт FFh в начале бинарного файла на Бейсике? Чем именно (при чтении бинарного файла на Бейсике) Ваш драйвер отличается от драйвера Профессора Лампочкина? Я – никак. Назначение моего обработчика кассетного прерывания – это тупо считать или записать блок данных с ленты или на ленту. А уж сколько именно байтов в этом блоке использовать, решает вызывающая этот обработчик прога. В данном случае – Бейсик, т. к. других прог для работы с кассетами IBM PC (именно PC/PCjr, а не «Поиск-1») я что-то не видел. |
Kurill_GANJOU |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 21:20 Сообщение отредактировано: 2 мая 2014 23:27
SoftCat написал: FFh потребовался не мне, а Бейсику, чтобы он бинарник, созданный wav2cas'ом из wav'ки, мог принять за родной дисковый файл и адекватно загрузить с диска. Драйвер здесь не при чем. FFh был добавлен не драйвером, а hex-редактором. Драйвер не пишет в файл то, чего там изначально не было. Тогда поясните, пожалуйста, поподробнее, зачем Вам потребовался байт FFh в начале бинарного файла на Бейсике? SoftCat написал: С точки зрения конечного результата (чтение файлов) - ничем, как для бинарников, так и для других типов. А вот на уровне кода есть разница в способе опознавания битов на ленте. У Лампочкина и у разработчиков "Поиска-1" минимальная продолжительность бита вычисляется адаптивно. А у меня (и у айбиэмовцев) она тупо сравнивается с константой. Вот, мне и было интересно, как это будет работать, особенно на советских магнитофонах с их коэффициентом детонации. Опыты с "ИЖ-306С" показали, что разницы нет. Чем именно (при чтении бинарного файла на Бейсике) Ваш драйвер отличается от драйвера Профессора Лампочкина? Драйвер Лампочкина не может работать на XT. А мой, как показал uav1606, по крайней мере, писать может (чтение пока не проверяли). В перспективе это позволит добавить поддержку каасетных фунций от "Поиска-1" в "Поиск-2" (а кассетный интерфейс PC / PCjr можно добавить хоть сейчас, если собрать входные-выходные цепи и загрузить мой драйвер). Моя прога не критична к базовому адресу LPT. Этот адрес может принимать самые идиотские значения, лишь бы он соответствовал реально установленному устройству. У Лампочкина адрес LPT фиксированный - 378h. Я ради смеха ставил в BIOS setup LPT1 как 378H, 278H или вообще "Disabled". Во всех случаях мой драйвер работал корректно (при нулевом базовом адресе он, понятно, не загружался). О записи текстов на кассету. Сегодня провел очередной эксперимент. Во вложении: TXT2CAS.BAS – прога на Бейсике, копирующая текст с диска на кассету; CAS2TXT.BAS - копирование текста с кассеты на диск; BYKOV.TXT – текст на диске; BYKOV.WAV - аудиопоток на кассете. TXT2CAS “на лету” по строкам копирует текстовый файл с диска на кассету. Прога ничего не знает о длине этого файла. Если бы копирование было с диска на диск, то тактика была бы понятной: записать строку в целевой файл, увеличить размер файла в FAT на длину этой строки, потом записать следующую строку, снова обновить FAT и т. д. (как вариант - обновить размер один раз, при закрытии целевого файла). А при записи на кассету Бейсик при всем желании не может отмотать ленту назад и скорректировать длину в заголовке. Поэтому логично предположить, что для текстовых данных в заголовок пишется какое-то фиктивное значение длины, которое реально (при загрузке) не используется. Я записал текст на кассету, оцифровал запись и прогнал wav’ку через wav2cas. Трониксовский wav2cas, как это и следовало ожидать, глюкнул. Tronix написал: А длина образца текста была почти 2 килобайта. И Васиком там и не пахло - это был литературный текст, а не Васик программа. Значит, глюк связан не с малой длиной, а с неверным ее определением в принципе. Выходит, что для данных типа 00 и 40 длина берется не из заголовка, а вычисляется анализом самих данных. Вероятно, там ищется какой-то признак конца файла (это или 4 нуля подряд, или 1AH / Ctrl^Z) и по положению этого признака находится длина. Ну у меня там в проге какой-то глюк вроде на тему размера был, щаз уже не помню точно, ибо год назад писал. Возможно проявляется только на таких маленьких файлах (> 512 байт) и возможно только на васике. Так что, есть смысл заняться реверс-инженирингом Бейсика… Прикрепленный файл (TXT_TAPE.ZIP, 809474 байт, скачан: 52 раза) |
SoftCat |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 21:30 Сообщение отредактировано: 2 мая 2014 21:38
Kurill_GANJOU написал: А Вы пробовали читать бинарный файл на Бейсике через Ваш драйвер в Бейсике (как бы с кассеты)? Что при этом получается? FFh потребовался не мне, а Бейсику, чтобы он бинарник, созданный wav2cas'ом из wav'ки, мог принять за родной дисковый файл и адекватно загрузить с диска. Драйвер здесь не при чем. FFh был добавлен не драйвером, а hex-редактором. Драйвер не пишет в файл то, чего там изначально не было. Kurill_GANJOU написал: Вот эта ошибка в связи с чем произошла? Сегодня утром разобрался, в чем дело с Бейсиком. Записал hellowld2.wav от uav1606 на кассету и пробовал загрузить в Бейсик. Моей программой считался только заголовок, после загрузки блока данных Бейсик выдал «Out of memory». |
Kurill_GANJOU |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 21:39 Сообщение отредактировано: 2 мая 2014 23:04
SoftCat написал: Почему "как бы"? Прямо с кассеты и читал упомянутым совковым магнитофоном. Предварительно записав файл как на кассету, так и на диск, чтобы сравнить. На АТ / ATX компах с файлы с кассеты читаются успешно. Другое дело, что чтение на XT пока не проверяли... А Вы пробовали читать бинарный файл на Бейсике через Ваш драйвер в Бейсике (как бы с кассеты)? Что при этом получается? SoftCat написал: Там процедура выключения мотора магнитофона портила регистр, в котором драйвер возвращает кол-во считанных байт. Что интересно, на ASCII текстах этот баг не проявлялся (почему - понять не могу). Только на бинарниках. Команды PUSH / POP этот баг успешно пролечили. Kurill_GANJOU написал:Вот эта ошибка в связи с чем произошла? Сегодня утром разобрался, в чем дело с Бейсиком. Записал hellowld2.wav от uav1606 на кассету и пробовал загрузить в Бейсик. Моей программой считался только заголовок, после загрузки блока данных Бейсик выдал «Out of memory». |
SoftCat |
Kurill_GANJOU написал: Но можно выход звуковой карты использовать вместо магнитофонного выхода и проигрывать WAV-файл. Почему "как бы"? Прямо с кассеты и читал упомянутым совковым магнитофоном. |
Kurill_GANJOU |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 2 мая 2014 22:41 Сообщение отредактировано: 2 мая 2014 23:08
SoftCat написал: Это если под рукой два компьютера. А у меня он один. Экперименты с драйвером проходят по голым ДОСом, а оцифровка в wav - под Виндой. Опять же, желательно учитывать характеристики реального магнитофона (детонацию ленты и проч.). Но можно выход звуковой карты использовать вместо магнитофонного выхода и проигрывать WAV-файл. |
Profesor_lampochkin
Junior Member
Всего сообщений: 103 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 7 янв. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 20 февраля 2016 3:11 Сообщение отредактировано: 20 февраля 2016 3:51
Всем привет Вот что есть: РАДЧЕНКО Л.И. КОМПЛЕКС ПРОГРАММ ДЛЯ ОБРАБОТКИ И ТИРАЖИРОВАНИЯ ПАКЕТОВ ФАЙЛОВ "К О П И Р О В Щ И К вып.4". Москва, 1991. Комплекс программ "Копировщик вып.4" предназначен для использования на ЭВМ ПОИСК, работающей с MS DOS в оболочке NORTON COMMANDER, для обработки и тиражирования магнитофонных версий пакетов файлов, созданных с помощью персональных ЭВМ ПОИСК, МС 1502, БК-0010. Качаем тут Ох и долго я искал эти програмки! (Вопрос по копировщику в моем сообщении от 15 февраля 2012) |
SKcorp
Advanced Member
Эксперт. Откуда: Leningrad, USSR Всего сообщений: 3005 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 28 июля 2008 |
Profesor_lampochkin написал: У меня был его пакет для БК - большего рукожопия в те времена было найти сложно. РАДЧЕНКО Л.И. |
Profesor_lampochkin
Junior Member
Всего сообщений: 103 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 7 янв. 2012 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 21 февраля 2016 15:00 Сообщение отредактировано: 21 февраля 2016 23:06
В файле INTDOC.DOC описание файлов "К О П И Р О В Щ И К вып.6", в файле COP.DOC "К О П И Р О В Щ И К вып.4" Похоже, что из выложенного - часть файлов 6-го, а часть 4-го выпуска. Жаль, конечно, что файлы не все... А вот и форум, где добрые люди выложили это сокровище http://www.nedopc.org/forum/viewtopic.php?p=109907 Вот спасибо им |
<<Назад Вперед>> | Страницы: 1 2 3 4 5 6 7 8 9 * 10 | Печать |
Полигон-2 » IBM PC-совместимое. До 2000 года включительно » Кассетный интерфейс |
1 посетитель просмотрел эту тему за последние 15 минут |
В том числе: 1 гость, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |