Сообщение от
zx_
что за программы TDISK и TAPE ?
Уже для СР/М программы? или RKDOS
Это были скриншоты из CP/M для СПЕЦИАЛИСТА, в которой в качестве носителя было 3 дополнительные банки ОЗУ (в каждой из которых использовалось всего по 48 кб, т.к 48*3=144 кб, плюс ещё 4 кб я брал из "верхнего ОЗУ).
TDISK.COM это программа CP/M для отбраковки на дискете дохлых секторов. Но данная версия в отличие от оригинала TDISK и POWER TEST, работает быстрее, т.к умнее, учитывает размеры блоков и физ.секторов. Те тестируют каждый лог.сектор в 128 байт, что очень медленно. А данный TDISK был мной доработан. Если в блоке в 2 кб дохлый один физ.сектор, то бракуется весь одно-килобайтовый физ.сектор и дополнительно соседний физ.сектор в 1 кб, потому что блок состоит из двух физ.секторов по 1 кб.
Если в физическом секторе в 1 кб дохлый первый сектор, то совершенно незачем впустую "пилить" дискету пытаясь считать оставшиеся 31 лог.сектора блока, в который входит данный дохлый физ.сектор. И без того ясно, что и остальные 31 сектор блока следует считать дохлыми, в том числе 15 лог.секторов дохлого физ.сектора и ещё 16 лог.секторов соседнего исправного физ.сектора, т.к они в одном блоке. Это и делает фирменные тестеры дико тормозными и диско-запильными, если обнаруживается дохлота.
Моя TAPE.COM решает ту же задачу, что и TAPE.COM Е.Седова для RKDOS - позволяет перенести МГ-файлы на дискету. Это я сделал для себя, безлошадного (в смысле без внешнего носителя), чтобы можно было что-то удобно делать и в реале, а не только в эмуляторе, где доступ к программам быстрый и по МГ-интерфейсу. Но в отличие от программы Е.Седова, это автоматическая программа. Т.к в отличие от РК86, СПЕЦИАЛИСТ имеет формат с именем, что и позволяет автоматизировать процесс. В том смысле, что не надо трахаться передавая по одному файлу.
TAPE.COM это чуть изменённая древняя программа для CP/M (но не программа CP/M, в смысле она некорректная для других CP/M, т.к использует МГ-подпрограммы ПЗУ C000...C7FF), адаптированная от РК86 для СПЕЦИАЛИСТА. Хотя адаптация была нужна только для удобства, т.к можно было вводить и в МГ-формате РК86. Но формат РК86 - он без имени, отчего каждый раз по окончании ввода очередного файла с МГ, надо вручную вводить имя. Это лишает всякой оперативности и сильно утомляет.
В СПЕЦИАЛИСТЕ есть формат с именем, что и позволяет автоматизировать процесс. Строго говоря, можно было бы использовать и формат ОРИОНА (он тоже с именем), ведь ввод делает программа, а не монитор. Кстати в СПЕЦИАЛИСТЕ с ленинградским монитором есть возможность вводить и в формате ОРИОНА с помощью директивы '@', но увы эмуляторы нихрена не поддерживают удобный формат ORD (в котором я храню файлы).
Но данный TAPE вводит именно в специалистовском формате с именем (что важно, т.к позволяет подготовить запись средствами самого СПЕЦИАЛИСТА) и по окончании ввода автоматически записывает файл с корректным CP/M именем на текущий CP/M-диск (неважно какой физически). Если в имени встречены недопустимые для CP/M символы, то они заменяются на символ #. Если имя совсем плохое (точнее первый символ имени пробел или меньше), то записывается файл под именем FILE-nn.COM, где 'nn' для очередного файла увеличивается от 01 до 99.
Это сделано специально, чтобы автоматизировать конверсию RKS-файлов без имени. Простейшей программой написанной на MSDOS-бейсике, в начало файлов добавляется HEADER, вот такой
Код:
.
.phase 100H
defb 0D9H,0D9H,0D9H,20H,0
DS 256 - ($-100H)
defb 0E6H
А т.к сам файл без имени начинается с адресов, то в результате получается файл пригодный для ввода по директиве I, т.е для переноса файла на диски CP/M. Отпадает необходимость ручной конверсии RKS-файлов без имени в RKS-файлы с именем. Вообще это полный идиотизм для совершенно разных форматов использовать одно и то же расширение RKS. Я постоянно путаюсь, но увы, убедить авторов эмуляторов ввести разные расширения не удалось.
Есть CP/M программа OUT.COM, которая позволяет вывести файлы с дискеты CP/M на магнитофон или в линию подключенную на другом конце к МГ-входу другого компьютера. Так в 1994 передавались файлы из ОРИОНА на дискеты CP/M для РК86 (т.к по дискетам между ОРИОНОМ и РК86 нет совместимости). Хотя вместо МГ-подпрограмм LDBYTE/SVBYTE на вектора грузились подпрограммы для передачи/приёма байта по проводной линии и скорость передачи составляла 8 кб в секунду. Любой файл передавался за несколько секунд. На передаче всё было автоматизировано с помощью SUB-файла со списком того, что надо передать, а вот на приёме приходилось сидеть у РК86 и вводить имя каждого принятого файла вручную.
Потому, я и учёл этот опыт и использовал формат с именем. Т.к эмулятор EMU80 не умеет принимать с проводной линии, то используются обычные подпрограммы ПЗУ LDBYTE и SVBYTE (C377 и C3D0). Но т.к МГ-ввод в эмуляторе сделан не в реально времени, отчего быстрый, то это не создаёт проблем.
В TAPE.COM можно нажимать <ВК> услышав звук пилотона в начале передачи файла, а можно запустить в автомате, тогда после ввода и записи очередного файла, ввод продолжится автоматически. Достаточно кинуть кассету в магнитофон, или запустить BAT-файл на каком-нибудь компьютере, чтобы в линии шёл непрерывный поток файлов и без участия оператора всё, что считано будет записано на CP/M-диск. В этом и заключается удобство, особенно, если использовать обмен по линии с высокой скоростью обмена, - то запустил TAPE и вжик... - за пару минут весь VDISK в 1 мб заполнен заранее подготовленными файлами.
Увы, автоматизировать ввод с МГ в эмуляторе не удаётся. А это единственный способ программам попасть в эмулируемый компьютер. В моём эмуляторе, есть функции позволяющие программе 8-ми разрядки непосредственно работать с винчестером IBM PC. При старте любой DOS в эмуляторе эта DOS имеет возможность считать все файлы конкретного каталога винчестера в свой эмулируемый диск. Потому пользоваться удобно. А в имеющиеся эмуляторы для Windows рассчитаны только на МГ, что неудобно для их практического использования.
Вскоре собираюсь сделать аналог TAPE и для RKDOS, т.к RAM-RKDOS для СПЕЦИАЛИСТА с ОЗУ в 512 кб тоже уже есть. Её только что (пока в первом варианте) адаптировал от ОРИОНА, но ещё надо доделать кое-что. К сожалению, при конверсии Z80-команд объём кода резко увеличился и не влезает в 4 кб. Увы, такой уж КР580 ущербный в смысле размера команд.
RKDOS для СПЕЦИАЛИСТА без дисковода, но с ОЗУ в 256/512 кб собираюсь использовать на реальном СПЕЦИАЛИСТЕ. И в эмуляторе. Разумеется, для эмулятора нужен конфиг-файл, который делает 8 банок ОЗУ, коммутируемых портом F9 в окне основного ОЗУ в 48К (0...BFFF) и "открывает" верхнее ОЗУ D000...F7FF. У меня есть такой конфиг для эмулятора EMU80, но для публикации надо спрашивать разрешение у автора EMU80, т.к, если выложить без разрешения, то автор эмулятора может разозлиться.
Конфиг для EMU80, о котором речь, кстати, делает ещё и 64 кб ПЗУ в окне для ПЗУ C000...DFFF. Кстати, эта RKDOS нестандартная. В ней в отличие от оригинала Е.Седова добавлены команды DEL, REN и ATTR. Позднее добавлю COPY, чтобы совсем избавиться от SYS-файлов. Кстати, SYS-файлы и другие дисковые программы от РК86 не годятся. Т.к у РК-программ управляющие ячейки DOS - на 7500, а здесь под вершиной ОЗУ СПЕЦИАЛИСТА (на 8D00...8EFF). Надо перетранслировать все SYS и COM-файлы, сделаю чуть позже.