PDA

Просмотр полной версии : Образ винта IDE HDD под ATM-turbo 2+: обсуждение



Максагор
23.11.2017, 13:47
Выложил на сайте АТМ то, что в свое время меня просили примерно лет 8-10 назад, и недавно вновь возникла у народа потребность, а именно - ОБРАЗ IDE HDD под ATM-turbo 2+ (http://atmturbo.nedopc.com/download/ATM_HDD.zip), набитый софтом (как системным, так и играми) под OS CP/M, TASiS и iS-DOS Chic - данный образ можно как использовать в эмуляторах, так и копировать посекторно на реальные винты и использовать на реальных машинах сразу "искаропки", главное, чтобы винт в CHS-режиме показывал бы 63 сектора на дорожку и 16 головок в цилиндре (а современные винты все это показывает - древние, объемом меньше мегабайта не в счет). Сам образ, само собой, забит не под завязку и место для экспериментов есть. Образ в распакованном виде весит около 200Мб, а в запакованном чуть больше 9Мб. Берите и пользуйтесь. Инструкция с параметрами винта, количеством, расположением и предназначением разделов - в текстовом файле внутри ZIP-архива. Но если что будет непонятно, по ходу эксплуатации готов в этой теме ответить на возникшие вопросы.

Если кратко, со параметры и содержимое образа следующее:


HDD Parameters:

Bytes: 206438400 (197Mb)

Cilinders: 400
Heads: 16
Sectors: 63

LBA: 403200 blocks

=====================

CP/M disks:

A: RAM-Disk
B: Floppy Disk 0
C: Floppy Disk 1
D: HDD Master - 5 Cyls from Cyl 1 to 5 - 2520 Kb (Cyl 0 - reserved for config boots) - main SYSTEM
E: HDD Master - 16 Cyls from Cyl 6 to 21 - 8064 Kb - GFX and MUSIC progs and files
F: HDD Master - 16 Cyls from Cyl 22 to 37 - 8064 Kb - different system progs
G: HDD Master - 16 Cyls from Cyl 38 to 53 - 8064 Kb - games

From Cyl 54 to 69 free space (16 Cyls)

iS-DOS/TASiS disks:

A: Floppy disk 0 /HDD Master - 33 Cyls from Cyl 103 to 135 - 16Mb
B: Floppy disk 1 /HDD Master - 33 Cyls from Cyl 70 to 102 - 16Mb
C: HDD Master - 33 Cyls from Cyl 103 to 135 - 16Mb (OS TASiS v5.40)
D: HDD Master - 33 Cyls from Cyl 136 to 168 - 16Mb (OS iS-DOS Chic v5.01)
E: HDD Master - 33 Cyls from Cyl 169 to 201 - 16Mb (empty iS-DOS disk)
F: HDD Master - 33 Cyls from Cyl 202 to 234 - 16Mb (empty iS-DOS disk)
G: HDD Master - 33 Cyls from Cyl 235 to 267 - 16Mb (empty iS-DOS disk)
H: HDD Master - 33 Cyls from Cyl 268 to 300 - 16Mb (empty iS-DOS disk)

From Cyl 301 to 399 free space

Чтобы запустить CP/M, необходимо войти в стартовом меню в ПЗУ xBIOS (но сгодится и древнее ПЗУ от МикроАРТа) в опцию "CP/M" - ВАЖНО: флоппи диск в дисководе НЕ ДОЛЖЕН НАХОДИТЬСЯ, иначе будет предпринята попытка загрузиться с него, а в случае ненахождения на флопике системы перехода к загрузке с винта не будет.

Чтобы запустить OS TASiS, необходимо войти в стартовом меню ПЗУ xBIOS (и только xBIOS. В МикроАРТовском ПЗУ либо грузиться с загрузочной дискеты, либо.... Есть возможность сделать файл загрузчик из среды CP/M. Об этом отдельно как-нибудь) в опцию "IDE hard drive master", либо в этом же ПЗУ в меню Бейсика-128 выбрать опцию "HDD boot".

Выбор между OS TASiS и OS iS-DOS Chic осуществляется в открывающейся менюшке при старте TASiS (или, впоследствии - при входе в iS-DOS Chic), которую впоследствии всегда можно вызвать по F2.

ВНИМАНИЕ: При работе со всеми ОСями на винте ВЕСЬМА ЖЕЛАТЕЛЬНО включать эмуляцию ATM-контроллера PC-клавиатуры! (причем в случае с CP/M - желательно ДО ЗАГРУЗКИ самой ОСи)

Вроде бы пока на этом всё.

Error404
23.11.2017, 16:03
HDD Parameters:

Bytes: 206438400 (197Mb)
Cilinders: 400
Heads: 16
Sectors: 63
LBA: 403200 blocks

From Cyl 301 to 399 free space



1. Прошу о небольшом ликбезе - как в Unreal проверить/сделать вот это:



ВАЖНО: флоппи диск в дисководе НЕ ДОЛЖЕН НАХОДИТЬСЯ

ВНИМАНИЕ: При работе со всеми ОСями на винте ВЕСЬМА ЖЕЛАТЕЛЬНО включать эмуляцию ATM-контроллера PC-клавиатуры! (причем в случае с CP/M - желательно ДО ЗАГРУЗКИ самой ОСи)


2. Сразу рационализаторское предложение: исправить сектор с LBA=0 (первый от начала) так, чтобы в нем находилась валидная MBR-таблица разделов с одним (первым) разделом зарезервированного типа, накрывающим собой все занятые данными области (на ATM разделы как я понимаю размечены нестандартно, и через MBR к ним доступа не будет, но хотя бы их данные гарантированно не пострадают, если на этот диск натравить нормальный fdisk - хоть CPM-овский, хоть Спринтеровский, хоть от Linux, хоть от мелгкомягких - например для создания второго MBR-раздела на свободном месте cyl 301...). Для этого в очень удачно пустой (заполненной нулями) области MBR мы пропишем такое:


000001C0: 01 00 52 10-11 96 01 00-00 00 30 A1-04 00 00 00
000001D0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
000001E0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00
000001F0: 00 00 00 00-00 00 00 00-00 00 00 00-00 00 55 AA


3. Еще вопрос по структуре (не хочу угадывать, вдруг инфа известна): в первом ATM-разделе с CP/M, начинающемся c 7E000h, сначала идет 32256 нулей (т.е. не 32кб, а почему-то на 512 байт меньше), затем с 85E00 начинается каталог. Где-то в образе диска хранится размер этого странного оффсета (нужно для наших PC-утилит обмена файлами) и начальные адреса разделов? Откуда грузится система если эти системные треки(?) перед каталогом забиты нулями?

- - - Добавлено - - -

Еще вопрос/пожелание. Первый раздел CP/M имеет места в каталоге ровно столько сколько туда уже записано. И чтобы добавить туда что-то ненужное, надо будет сначала что-то ненужное удалить. Может быть, сделать каталог побольше?

Максагор
24.11.2017, 06:17
1. Прошу о небольшом ликбезе - как в Unreal проверить/сделать вот это:

Цитата Сообщение от Максагор Посмотреть сообщение
ВАЖНО: флоппи диск в дисководе НЕ ДОЛЖЕН НАХОДИТЬСЯ

ВНИМАНИЕ: При работе со всеми ОСями на винте ВЕСЬМА ЖЕЛАТЕЛЬНО включать эмуляцию ATM-контроллера PC-клавиатуры! (причем в случае с CP/M - желательно ДО ЗАГРУЗКИ самой ОСи)

С флопиком все очень просто. Я даже удивился этому вопросу для человека, знакомого с Unreal - вы же вставляете виртуальные TRDшки в эмуле либо по F3 (там вставляется только в A:), либо через выбора соответствующей опции в конфигурационном меню, вызываемом по ALT+F1 - там уже можно выбрать устройства A: B: C: D: (сразу скажу, для CP/M, где можно программно гибко подключать любые физические устройства к любым логическим буквам устройств, данные перечисленные ABCD скорее означают физические флопики 0,1,2,3). Так вот, если какой-то образ подсоединен к дисководу A:, но не забудьте отмонтировать образ через меню по ALT+F1, выбрав там вкладку Beta-Disk и нажав там у образа кнопочку remove.

По клавиатуре:
В версиях эмуля v0.34 или 0.35 ATM-клава включается/отключается по CTRL+ALT+Z. Может быть в других версиях и другая раскладка "горячих клавиш", тогда это можно посмотреть или в хелпе по F1, или в INI-файле настроек.


2. Сразу рационализаторское предложение: исправить сектор с LBA=0 (первый от начала) так, чтобы в нем находилась валидная MBR-таблица разделов с одним (первым) разделом зарезервированного типа, накрывающим собой все занятые данными области (на ATM разделы как я понимаю размечены нестандартно, и через MBR к ним доступа не будет, но хотя бы их данные гарантированно не пострадают, если на этот диск натравить нормальный fdisk - хоть CPM-овский, хоть Спринтеровский, хоть от Linux, хоть от мелгкомягких - например для создания второго MBR-раздела на свободном месте cyl 301...). Для этого в очень удачно пустой (заполненной нулями) области MBR мы пропишем такое:

Эта идея не нова, я на данном форуме также ее продвигал, когда здесь обсуждалась разработка Partition Magic для спектрума - так как CP/M использует только первые 128 байт нулевого сектора, а остальные не нарушает, а MBR использует последние 64 байта, то если сделать так, что программа разбивки винта на совместимые с PC разделы при создании MBR-разметки также не нарушит первые 128 байт, то совместимость (точнее - совместное существование) разметки CP/M с FAT и проч. на одном винте вполне реально. Ну еще надо учитывать TASiS/iS-DOS, которые в варианте АТМ для данных о части своих разделов использует сектор №2 нулевой дорожки, так что при разметке винта через стандартный MBR как раз первый по счету раздел необходимо сделать "пустым", чтобы спектрумовские ОСи резвились в нем как угодно.



3. Еще вопрос по структуре (не хочу угадывать, вдруг инфа известна): в первом ATM-разделе с CP/M, начинающемся c 7E000h, сначала идет 32256 нулей (т.е. не 32кб, а почему-то на 512 байт меньше), затем с 85E00 начинается каталог.

Тут все просто: если посмотреть на описания даже форматов дисков на флопике, то там есть такое понятие, как зарезервированнная область область системных дорожек. Так, например, на АТМ-флопике это 4 логических дорожки (два двухсторонних цилиндра). В данном конкретном образе винта я при создании разделов зарезервировал на них одну логическую дорожку (не цилиндр) - напоминаю, что драйвер винта в АТМовском ЦПМ (зашитый в ПЗУ), работает в CHS-формате - т.е. с цилиндрами, дорожками, головками и секторами. А так как, исходя из параметров данного конкретного винта, одна дорожка содержит в себе именно 63 сектора по 512 байт каждый, то 63*512=32256 зарезервированных байт и ни байтом больше.


Еще вопрос/пожелание. Первый раздел CP/M имеет места в каталоге ровно столько сколько туда уже записано. И чтобы добавить туда что-то ненужное, надо будет сначала что-то ненужное удалить. Может быть, сделать каталог побольше?

Первый раздел с системой на винте я намеренно сделал небольшим и с каталогом в 128 файлов максимум для скорости работы - ибо данная версия ЦПМ достаточно тормозная, и чем больше объем раздела, тем больше тормозов. А этот раздел - именно основной, системный, требующий максимальной скорости работы. В остальных разделах по 8Мб я сделал размер каталога в до 512 файлов. Такой подход диктует как мой личный опыт, так и опыт других пользователей винта на АТМ, который описан в газете "Online":
http://zxpress.ru/article.php?id=2496

Изменить число файлов в каталоге именно первого, "системного" можно только перезаписав описатель раздела с измененным размером каталога в конфигурационную запись в нулевом винте и переформатировав после этого раздел. С остальными разделами проще - там достаточно подправить имеющиеся на системном разделе файлы с конфигурацией и переформатированием этих разделов. Менять конфиг при этом не надо будет.


Где-то в образе диска хранится размер этого странного оффсета (нужно для наших PC-утилит обмена файлами) и начальные адреса разделов? Откуда грузится система если эти системные треки(?) перед каталогом забиты нулями?


Вопрос в том хотя бы где этот сектор, это явно не первый сектор жесткого диска, т.к. в нем чего-то похожего на загрузчик не наблюдается. Кроме того сам загрузчик тоже явно должен по какой-то таблице, описывающей расположение данных, все остальное подгружать (то что относится к описанию файловой системы - DPH, DPB в CP/M), ибо даже по количеству секторов зарезервированных под ОС (перед каталогом) явно оно отличается от того что было на дискетках - слишком жирно 32кб отступ для дискеток. И если это захардкодено в загрузчике, то это пипец какой дурной тон в CP/M где всё настраиваемое таблично (посему не думаю что оно задано константно в коде загрузчика).

Не все так просто. Да, загрузочный сектор нулевой на нулевой дорожке в данном образе имеется. Но нет какого-то стандарта, в соответствии с которым достаточно запомнить, в каком байте по какому смещению лежат нужные данные для настройки (вроде MBR), чтобы настроиться на структуру винта. Ниже я попытаюсь как можно проще (но коротко не получится) разъяснить это.

Нет, никаких жестких предустановок нет - все можно перенастроить как угодно. И не только в случае с винтом. Можно, например, флоп настроить на стандарт дискет ЦПМ Профика, корвета или Роботрона и работать с ними точно также, как утилита Штейнблюм настраивается путем изменения ряда констант на незнакомые образы.

Для каждого канала, к которым можно подключить драйвера физических носителей существуют 35-байтные загружаемые описатели. Что из себя такие описатели представляют, можно посмотреть в доке по BIOS CP/M ATM на странице 17 здесь:
http://atmturbo.nedopc.com/inf/books/bios/bios.zip

Также для лучшего понимания того, что будет изложено ниже, необходимо прочитать "Инструкцию по установке ОС CP/M на винчестер" - http://atmturbo.nedopc.com/inf/books/nedopc/install.zip - ей все равно так или иначе придется руководствоваться, если захотите самостоятельно устанавливать (или менять параметры разделов).

В приложении я прикрепил образ загрузочного диска, аналогичного размещенному на сайте АТМ - http://atmturbo.nedopc.com/download/cpm/system/boot/bootdisk.zip но с настройками именно на разделы текущего образа винта. Именно в этом образе флопа я вносил правки и грузил систему на винт. В принципе, все настроенные конфигурационный файлы и необходимые системные программы с их описанием я перенес на системный раздел образа винта (так что далее я не буду уточнять, имеется ввиду винт или системная дискетка), но все равно - если придется заново все переразмечать, лучше делать это с системной дискетки (почему - станет ясно из текста ниже). Да и "Штейнблюмом" пока что удобнее смотреть описываемые мной далее файлы конфигурации именно на образе дискетки (а все упоминаемые далее файлы и программы можно посмотреть на системном разделе на винте или на загрузочной дискете).

Итак: жестко заданных параметров устройств нет, но есть дефолтные значения, которые хранятся в ПЗУ и копируются в область описателей в ОЗУ (вместе с ядром системы - CCP/BDOS/часть BIOS и монитор) при первичном старте системы. В этом первичном случае по дефолту из все возможных десяти (A,B,C,D,E,F,G,H,I,J) устройств мы имеем подключенными три:

A: - RAM-диск (его с этой буквы лучше не смещать и не удалять, так как он используется для хранения временных файлов при работе пакетных процедур (аналогичных обработке BAT-файлов в MS-DOS и т.д. - это позволяет не обращаться лишний раз к реальным физическим носителям))
B: - флоппи-дисковод №0 (тот, что соответствует букве A: в TR-DOS) описатель которого настроен на физический формат TR-DOS (640Кб, 2 стороны, 80 дорожек по 16 секторов на каждой размером по 256 байт, 4 системные дорожки (две двухсторонние и др.), 128 файлов в каталоге).
C: - IDE HDD №0 (Master) - с тоже прописанными по дефолту параметрами CHS винта. Какие это параметры - нам в данном случае совершенно неважны. Важно только то, что начало логического раздела винта, исходя из этих дефолтных параметров совпадает с физическим началом собственно винта (т.н. нулевой сектор нулевой дорожки логического раздела соответствует нулевому сектору нулевой дорожки физического винта). Это самое главное -

Потому что после старта система пытается искать конфигурационную запись сначала на нулевом секторе (первых его 128 байт) нулевой дорожки логическом устройстве B: и если находит его, до начинает выполнять содержащуюся в нем программу автостарта, а если не находит запись при вставленной дискете, то вываливается с оставшимися дефолтными настройками в командную строку.

А если система не находит дискеты в устройстве B: вообще, то тогда ищется аналогично конфиг на нулевом секторе нулевой дорожки устройства C: - в нашем случае - винта. Если находит - отрабатывает то, что заложено в записи и через нее можно настроить винт (и другие устройства) по своему хотению, или даже поменять расположение устройств относительно букв. Если нет (или винт не подключен) - выходит опять в командную строку с дефолтными настройками.

Как сконфигурировать устройства? Я уже упоминал, что каждой букве устройства можно подключить 35-байтный описатель конфигурации. Этим занимаются утилиты AS.COM/ASSIGN.COM (через командную строку) или ASS.COM (через интерактивное меню) - описание этих утилит есть на диске - воспользуйтесь в эмуле утилитой HELP.COM. (также разбиением винта на разделы и прописыванием их в конфигурационную запись занимается утилита FDISK.COM, но делает она это негибко, в частности всегда устанавливает каталог размером в 128 файлов и смена его объема не предусмотрена, так что ее я для настроек не использую, хотя она сделана наглядно и красиво). Данные утилиты могут работать с конфигурационными файлами в двух видах (все они имеют расширение *.CDS вне зависимости от типа) - собственно в виде 35-байтного массива данных, либо в виде обычного текстового файла, создаваемого в любом редакторе, команды которого при переконфигурировании данными уьилитами кстройств переводятся в эти 35 байт.

Вот как, к примеру, выглядит текстовый описатель раздела винта, подключенного к букве E (файл HDDE.CDS):


DRIVER = 4 ;номер драйвера. 4=HDD, 3=FDD, 2=RAM. В этом ПЗУ все, но разработчики упоминают еще 1=ROM-диск, 5=NET-диск. А всего цифр может быть от 0 до 7
UNIT = 0 ;номер физического устройства. В данном случае 0=master, 1=slave
SECTORS = 63 ;CHS-параметры
TRACKS = 16 ;CHS-параметры
SECSIZE = 512 ;размер сектора (может быть равен 128, 256, 512 или 1024)
HEADSR = 0 ;число сменных головок (применяется для флопов)
HEADSF = 16 ;CHS-параметры
SYS = 1 ;число системных дорожек (те самые 32256 байт в 63 секторах)
DIR = 512 ;число файлов в каталоге
PATBEG = 6 ;номер физического цилиндра, с которого начинается нулевая дорожка логического раздела. Так описатели остальных одинаковых разделов для F: и
G: будут различаться
WORD 13 = 50660 ;это я не знаю что это - так было в образцах
BYTE 2 = 64 ;аналогично


А вот как выглядит описатель для второго флопа, имеющий теже дефолтные "TRDшные" настройки, но подключаемые ко второму флопу (файл FDD2.CDS):


DRIVER = 3 ;драйвер флопа
UNIT = 1 ;флоппи-привол №1 (или буква B: в TR-DOS)
SECTORS = 16 ;далее обычный физический формат для TR-DOS
TRACKS = 80
SECSIZE = 256
HEADSR = 2
HEADSF = 0


Стоит заметить, что в отличие от описателя винта, тут меньше команд. В частности, не упомянуты команды SYS, DIR и PATBEG - в этом случае эти (и другие команды, так как по описанию утилиты AS их гораздо больше) выставляются "нулевые" дефолтные параметры. В данном случае SYS - будет равняться 4 системным логическим дорожкам, DIR будет равняться 128 файлам в каталоге, а PATBEG - нулевому цилиндру на физическом носителе.

В общем, с помощью утилит AS, ASSING, ASS и текстового редактора мы можем создать и подсоединить через командную строку необходимые разделы винта и прочие устройства. Но как все это запихнуть в автоконфигурационную запись для автостарта? Для этого есть утилита CONFIG.COM, которая тоже имеет свои конфигурационные текстовые файлы с расширением *.CFG, котоыре затем преобразовываются с конфигурационную запись на любом логическом устройстве. Так с помощью нее же создавалась автозагружаемая системная флоппи-дискета. Кстати, немаловажно, что утилита пишет конфиг в нулевой логический (размерос в 128 байт) сектор на нулевую дорожку ЛОГИЧЕСКОГО устройства - но так как по дефолтным параметрам первоначально нулевая дорожка логического раздела винта у нас совпадает с физической - то мы имеем возможность, грузясь с системной дискеты записать инфу в физический нулевой сектор винта.

И вот как выглядит конкретная конфигурационная запись, которая была сделана мной при создании образа винта (файл CONF1.CFG):


FORMAT:
CHANNAL=1
TRACK=1 ;форматирование (очистка каталога) RAM-диска
ASSIGN:
DRV=2
CHANNAL=2
<FDD2.CDS> ;назначение на букву C: (0=A, 1=B, 2=C и т.д.) описателя второго флопа.
ASSIGN:
DRV=3
CHANNAL=3
<HDDD.CDS> ;назначение на букву D: (вместо C: где теперь флоп) сформированного нами нового описателя винта.
GO:
"D:@ D:AUTOEXEC" ;запуск с D: утилиты @.COM - обработчика пакетных *.SUB файлов (аналога BAT на ПиСи) - в данном случае - AUTOEXEC.SUB
END:


Таким образом мы видим, что при автозапуске с винта мы получаем первоначальную настройку в виде RAM-диска, ДВУХ флопов и ОДНОГО (системного) раздела винта на D: (хотя, например, при использовании конфига CONF2.CFG получим RAM, ОДИН флоп и ОДИН раздел винта на C:)
А куда делись другие разделы E,F и G? И что если я хочу создать разделы для H,I,J (по максимуму) и еще больше (сверх максимального количества букв)?

Можно забить в конфиг и еще разделы, но только в ограниченном количестве - так как конфигурационная запись ограничена 128 байтами, а только один описатель устройства, как уже упоминалось, состоит из 35 байт. Так что даже этот конфиг из двух таких описателей, кодов команд и их параметров плюс строка с автозапуском AUTOEXEC уже составит чуть более 100 байт. Так что особо тут не разгуляться. При этом CONFIG.COM не контролирует итоговый объем получающейся конфигурационной записи, но в итоге запишет на винт только первые 128 байт из нее с понятными последствиями для работоспособности такой записи.

Поэтому все *.CDS описатели разделов винта хранятся на самом системном разделе и уже подсоединяются утилитой AS.COM как раз в процессе работы стартового пакетного файла AUTOEXEC.SUB.

Вот как он выглядит в нашем случае:


; ASSIGN DISKS
;+===================+
;| |
;| HDD PARTITION 1 |
;| |
;| (SYSTEM) |
;| |
;+===================+ ;выводим "эхом" надпись
D: ;переходим на диск D: как основной
;AS D: 3 D:HDDD.CDS ;"закомментированное подключение раздела на D: - оно у нас и так присутствует. А вот если бы винт начинался с C:, то раскомментировали бы
AS E: 4 D:HDDE.CDS ;подсоединение описателя раздела к E:
AS F: 5 D:HDDF.CDS ;подсоединение описателя раздела к F:
AS G: 6 D:HDDG.CDS ;подсоединение описателя раздела к G:
XC ;запуск нортоноподобной оболочки XC.COM


При желании по данной схеме можно дополнить SUB-файл и изготовит и подсоединить описатели разделов для других букв устройств. Более того. Можно изготовить описатели хоть на сотни разделов. Но так как число букв ограничено (только от A: до J: (и то из-за глюков в системе свыше H: буквы использовать рискованно)), то можно использовать хорошо известный на спектруме принцип страничной адресации - наример через отдельно изготовленные пакетные SUB-файлы подключать к букве G: то один "теневой" раздел, то другой - их количество ограничено только объемом винта и размером файлового каталога для хранения всех описателей и пакетных файлов-запускалок.

В общем, подводя итог резюмирую - конфигурационная запись как бы есть, но не имеет четких форм, так как через CONFIG.COM можно по разному формировать эту запись (например, внедрить в нее текстовую строчку, выводимую перед началом отработки конфига во время автозапуска), в разном порядке подавать команды конфига, использовать разное число описателей устройств и т.д. А основная часть описателей устройств хранится собственно на устройстве ЦПМ и подгружается пользователем.

Кстати, похожая схема и в случае с TASiS/iS-DOS - ее конфигурационная запись хранится в секторе №2 нулевой дорожки и содержит в себе лишь абсолютные координаты раздела системы, на котором находится файл ядра системы и координаты этого файла внутри раздела. Но данные по текущим разделам опять-таки храни в себе ядро систему в подсоединенном к нему драйвере. И тоже разделов можно создавать сколько угодно (больше 8 одновременно доступных) и менять по страничному принципу - просто я создал образ винта как пример и всякие "излишества" я в настройках закомментировал, но я при работе на реале только так и использую множество страниц. И ничто не мешает при желании использовать оставшееся свободное место в образе и раскомментировать соответствующие настройки.

Error404
24.11.2017, 11:53
С флопиком все очень просто. Я даже удивился этому вопросу для человека, знакомого с Unreal


По части Unreal нубские вопросы от меня наверное еще будут поступать, т.к. с ним (и с эмулями Спека) я опыта практически не имел, а то что по наитию правлю в его INI, иногда не то чем кажется (как в пример с тем же HDD). Более близко видел только DelphiSpec, да и с ним знакомство было только в той части, что заимствовал оттуда эмуляцию Z80 (остальное делал своё и некоторые модули "с миру по нитке").

Остальное буду осмысливать, вступать в ряды ATM-щиков (надеюсь мой новодел ATM v8 таки рано или поздно запустится). :)

Максагор
24.11.2017, 13:09
По части Unreal нубские вопросы от меня наверное еще будут поступать, т.к. с ним (и с эмулями Спека) я опыта практически не имел

Ничего, постараюсь на все ответить.


не имел, а то что по наитию правлю в его INI, иногда не то чем кажется (как в пример с тем же HDD)

Кстати, всем просьба отписываться сюда по итогам запуска выложенного образа винта. Удалось, не удалось? Какие вопросы возникли в ходе запуска? Интересует также опыт запуска образа винта на эмулях Unreal выше, чем 0.35


Остальное буду осмысливать, вступать в ряды ATM-щиков (надеюсь мой новодел ATM v8 таки рано или поздно запустится)

Просьба о процессе сборки и наладки не забывать отписываться в соответствующей ветке - это сейчас всем очень нужно.

Moro
24.11.2017, 20:50
Ничего, постараюсь на все ответить.



Кстати, всем просьба отписываться сюда по итогам запуска выложенного образа винта. Удалось, не удалось? Какие вопросы возникли в ходе запуска? Интересует также опыт запуска образа винта на эмулях Unreal выше, чем 0.35



Просьба о процессе сборки и наладки не забывать отписываться в соответствующей ветке - это сейчас всем очень нужно.

Если у кого получится выложите плз готовый конфиг, можно с эмулятором

Error404
24.11.2017, 23:07
В приложении я прикрепил образ загрузочного диска, аналогичного размещенному на сайте АТМ - http://atmturbo.nedopc.com/download/cpm/system/boot/bootdisk.zip но с настройками именно на разделы текущего образа винта. Именно в этом образе флопа я вносил правки и грузил систему на винт. В принципе, все настроенные конфигурационный файлы и необходимые системные программы с их описанием я перенес на системный раздел образа винта (так что далее я не буду уточнять, имеется ввиду винт или системная дискетка), но все равно - если придется заново все переразмечать, лучше делать это с системной дискетки (почему - станет ясно из текста ниже). Да и "Штейнблюмом" пока что удобнее смотреть описываемые мной далее файлы конфигурации именно на образе дискетки (а все упоминаемые далее файлы и программы можно посмотреть на системном разделе на винте или на загрузочной дискете).


А где именно в приложении образ системной дискетки?

Вопрос по Unreal: по кнопке Esc всегда открывается отладчик эмулятора, что дико неудобно в CP/M. Это как-то перенастраивается?


Если у кого получится выложите плз готовый конфиг, можно с эмулятором

Во вложении конфиг для этого образа HDD для Unreal 3.04 (эмуль и ROM-ы, прописанные в конфиге, брал с официального сайта ATM в разделе эмуляторы - см. в подписи у Максагора). Хотя в "дисководах" дисков нет, но с HDD оно само не грузится, нужно на стартовом экране нажать пробел и провалиться в SETUP меню BOOT, уже там выбирать пункт "CP/M 2.2" для загрузки CP/M (операционка в этом случае, как я понял, стартует из ПЗУ и подмонтирует разделы HDD согласно описанному в нулевом секторе, который у АТМ вместо MBR) или пункт "IDE hard drive master" для загрузки ISDOS (которая грузится с самого HDD).

UPD. И сам рабочий эмуль с ROM добавлю на всякий случай. В unreal.ini найдите строку "Image0=C:\Temp\ATM\ATM_HDD.HDD" и исправьте на актуальное для вас размещение образа HDD. Или в меню настроек эмулятора по кнопке Alt+F1

- - - Добавлено - - -

Black Cat / Era CG вынес мне 1000-ю благодарность. :) Ушел обмывать это дело.

Максагор
25.11.2017, 00:12
А где именно в приложении образ системной дискетки?

Ох, неужели не прикрепилось? Ладно, доберусь до домашнего компа, скину повторно.


Вопрос по Unreal: по кнопке Esc всегда открывается отладчик эмулятора, что дико неудобно в CP/M. Это как-то перенастраивается?

Включи ATM-клавиатуру по CTRL+ALT+Z и тогда ESC и все функциональные клавиши станут "АТМ-совместимыми", но тогда для входа в отладчик эмуля или для вставки/удаления дискеток и прочих манипуляций с функциональными клавишами надо будет временно отключать эмуляцию АТМ-клавы. Тогда в отключенном режиме АТМ-клавы ESC будет срабатывать по какой-то из комбинаций клавиш (то ли SS+CS, то ли еще как - сейчас не помню).


нужно на стартовом экране нажать пробел и провалиться в SETUP меню BOOT, уже там выбирать пункт "CP/M 2.2" для загрузки CP/M (операционка в этом случае, как я понял, стартует из ПЗУ и подмонтирует разделы HDD согласно описанному в нулевом секторе, который у АТМ вместо MBR) или пункт "IDE hard drive master" для загрузки ISDOS (которая грузится с самого HDD).

Ага, именно так.

Grand
25.11.2017, 09:59
Кстати, всем просьба отписываться сюда ... Интересует также опыт запуска образа винта на эмулях Unreal выше, чем 0.35Я запустил образ на UnrealSpeccy 0.37.1FIX от AloneCoder'а: http://alonecoder.nedopc.com/zx/US0371FIX.rar
Этот эмулятор у меня уже натроен на Turbo2+. Пробовал и CP/M, и TASIS. Запускаются игры демки... Единственно - старт TASIS происходит только из setup'а: Boot -> IDE hard drive master, а из Boot -> ZX-Spectrum menu -> HDD boot - не работает.

Максагор
26.11.2017, 04:52
Ох, неужели не прикрепилось? Ладно, доберусь до домашнего компа, скину повторно.

Вот, вроде бы сейчас аттач должен быть.

63061

Кстати, если захотите на винте в системном разделе или на загрузочной дискете поредактировать текстовые конфигурационные файлы, настоятельно советую воспользоваться специально записанным туда до кучи простеньким текстовым редактором PTE2.COM
Простенький потому, что не использует постепенную подгрузку больших по объему текстовых файлов, а поэтому способен работать только с текстами, которые влезают непосредственно в свободное пространство ОЗУ (что-то чуть больше 20Кб), но для файлов конфигов - это несущественно.
Зато этот редактор очень "дружелюбен", отличается завидной безглючностью и скоростью, а самое важное, сохраняет BAK-копии открытых файлов, что очень хорошо на случай каких-то ошибок в редактировании. Загрузить тексто можно из меню в самом редакторе (об этом ниже), либо по командной строке PTE2 FILENAME.TXT (расширение может быть любым)

Если же работать с файлами в самом редакторе, то полезные управляющие клавиши в текстовом редакторе PTE2 следующие:
F2 - SAVE
F3 - LOAD
F4 - SAVE AS...
F10 - SAVE/QUIT
CTRL+O - переключение РУС/ЛАТ


Единственно - старт TASIS происходит только из setup'а: Boot -> IDE hard drive master, а из Boot -> ZX-Spectrum menu -> HDD boot - не работает.

А вот это какая-то фигня - не должно так быть. Тем более что в обоих случаях, если мне не изменяет память, там в обоих случаях один зашитый в ПЗУ загрузсик используется. Кроме того, проверил у себя на эмуле (v0.35) - все входы работают штатно. Может быть у тебя образ ПЗУ битый?

Grand
26.11.2017, 07:21
... Boot -> ZX-Spectrum menu -> HDD boot - не работает.
... не должно так быть. ... Может быть у тебя образ ПЗУ битый?Так происходит на прошивке eXtra BIOS 1.32XT. При выборе HDD boot в меню "128" - рестарт 48-ого BASIC'а. Скачал ее еще раз с твоего сайта. Нет, файл не битый. Проверил другие прошивки - 1.33 ведет себя также, а вот с 1.34 все работает как надо.

Когда я экспериментировал на реальном (ATM) Turbo 2+, там стояла прошивка 1.32, и тоже HDD boot в меню "128" не работал.

Grand
26.11.2017, 14:42
Максагор, а этот образ HDD сделан с реального устройства (винчестера/флеш-карты)? На какой платформе какими программами?

Максагор
27.11.2017, 01:12
Максагор, а этот образ HDD сделан с реального устройства (винчестера/флеш-карты)? На какой платформе какими программами?

Нет, этот образ сделан чисто на эмуляторе. Я создал файл-пустышку, дал ему расширение *.HDD, в соответствии с его размером вычислил и присвоил ему параметры CHS и LBA, прописал пусть в эмуляторе UNREAL, а затем посредством образов загрузочных дисков CP/M, TASiS и iS-DOS Chic разбил его на разделы под эти системы, установил системы на винт. И это было самое быстрое - я со всеми этими операциями управился в полчаса. А потом я пару дней с перерывами закачивал на уже установленные системы массу софта.

Все это я сделал по неоднократным просьбам форумчан для опытов и экспериментов.

Grand
27.11.2017, 17:32
Максагор, несколько недель назад я тоже решил сделать образ HDD в эмуляторе (ATM) Turbo 2+ с системами, тем более, что ранее у меня был положительный опыт на реале. Но я споткнулся вот обо что. Сейчас на твоем сайте многие программы для TASIS (IS-DOS) распространяются не в дисковых образах, а в ZIP-архивах в виде файлов. Как эти файлы записать из windows на реальный IS-DOS-диск или хотябы в образ IS-DOS-диска?

Максагор
27.11.2017, 18:58
Максагор, несколько недель назад я тоже решил сделать образ HDD в эмуляторе (ATM) Turbo 2+ с системами, тем более, что ранее у меня был положительный опыт на реале. Но я споткнулся вот обо что. Сейчас на твоем сайте многие программы для TASIS (IS-DOS) распространяются не в дисковых образах, а в ZIP-архивах в виде файлов. Как эти файлы записать из windows на реальный IS-DOS-диск или хотябы в образ IS-DOS-диска?

Для этого можно просто взять FDI-образ любой iS-DOSдискеты (ту же дискету с iS-DOS Chic, например. Очистить ее от файлов (проинициализировать через эмулятор и сохранить) - получим пустую болванку диска с объемом почти 800Кб свободного места.

Затем берем коммандер FAR с установленными ZX-плагинами от HalfElf - ни позволяют работать с образами TR-DOS и iS-DOS как с подкаталогами. И закачать таким образом, сколько влезет в объем 800Кб файлов. А потом этот образ открыть в эмуляторе и уже средствами TASiS скачать файлы на винт. Там файлы упакованы в два вида архивов - ZIP и IPC Второй - это исдосный архиватор на основе HRiPа. Под оба архива в TASiS установлены разархиваторы. Так что они распакуются автоматически средствами системы по клику на файл архива. В некоторых архивах лежат IMG-файлы - это целый посекторные образы исдосных устройств (точне их занятых файлами частей). Сделано это так в тех случаях, когда важно при создании архива сохранить и структуру подкаталогов, так как архиватры в iS-DOS архивировать вместе с подкаталогами не умеют. Тогда обработать данные IMG-образы надо так - создать средствами системы RAM-диск, объемом в 800Кб, посекторно скопировать IMG-образ на этот RAM-диск и открыть уже его там,а дальше, в соответствии с инструкциями скопировать оттуда то, что нужно на системные разделы винта. (главное, не копировать посекторно на раздел винта, тогда он станет объемом всего в 800Кб).

OrionExt
27.11.2017, 19:43
Да расскажи пацанам как накатать уже имидж (любой) на любой утуг (SD, …). Хватит их за яйца держать.

А так я котал это все в 2000г., прикольно. А что дальше?)

- - - Добавлено - - -

Вот обидно. Платформа загнила. А теперь хоть кадилом махай. У нас все секретно=) некрофилы говорят. И все у них виснет. Не мудрено. Загубили. Программеры и афторы.

Максагор
27.11.2017, 20:57
Да расскажи пацанам как накатать уже имидж (любой) на любой утуг (SD, …). Хватит их за яйца держать.

А так я котал это все в 2000г., прикольно. А что дальше?)

Вот обидно. Платформа загнила. А теперь хоть кадилом махай. У нас все секретно=) некрофилы говорят. И все у них виснет. Не мудрено. Загубили. Программеры и афторы.

Спокойно, братан, выше нос! - Спекки еще поживет. И мы тоже... )))

Grand
06.12.2017, 15:49
Столкнулся с проблемой. Она не имеет отношения к образу HDD. Если это уже где-то обсуждалось, то просьба, отослать туда.
Все делалось на эмуляторе, так как на реале у меня сейчас проверить возможности нет.

Итак. Если на RAM-диск записан TR-DOS-образ в котором 0 свободных секторов, то при копировании его в файл на HDD программой savtrd.com выдается ошибка "Error No: 87", и хотя файл vtrdimg.trd 2560 секторов все же создается, при его открытии vTR-dos выдает "Disk error". А вот если образ создать непосредственно с TR-DOS-диска программой sv_trd.com (доработка by Prusak) (http://zxbyte.ru/index.php?id=102), то он работает в vTR-dos. Вероятно, savtrd.com не может создавать образы, где 0 свободных секторов...
Во вложении тот самый TR-DOS-образ.

Максагор
06.12.2017, 16:19
Итак. Если на RAM-диск записан TR-DOS-образ в котором 0 свободных секторов, то при копировании его в файл на HDD программой savtrd.com выдается ошибка "Error No: 87", и хотя файл vtrdimg.trd 2560 секторов все же создается, при его открытии vTR-dos выдает "Disk error". А вот если образ создать непосредственно с TR-DOS-диска программой sv_trd.com (доработка by Prusak), то он работает в vTR-dos. Вероятно, savtrd.com не может создавать образы, где 0 свободных секторов...

Да, не может. Это косвенно указывается и в описании. Но можно подсунуть ему имеющийся полный, не сокращенный образ TRD - просто поместив его в какой-то каталог и указав в командной строке путь к нему в качестве параметра к утилите (например, при подвешивании вызов утилиты на клавишу). И тогда savtrd.com будет писать в этот образ вообще всю информацию, которая там есть, несмотря на его содержимое, даже если там в RAM-диске вообще полная абра-кадабра. Это полезно, когда надо сохранить диск, в котором основные данные лежат вне файловой системы - например, игру "Звездное наследие" с сохраненными состояниями. Иным способом, кроме как скопировать все 2560 секторов "вслепую", не анализируя файловый каталог, это сделать не поулчится.

Кстати, таким способом можно копировать образы и объемнее, чем 2560 блоков TRD, просто прописывая в качестве параметра более объемные файлы (но не более чем 3200 блоков - 800Кб).

В общем, читайте описание к утилите.

ec105
11.12.2017, 00:04
Да расскажи пацанам как накатать уже имидж (любой) на любой утуг (SD, …).

Меня также заинтересовал этот вопрос, и решение оказалось настолько простым, что помещается в две строки:

1) Скачиваем программу Win32DiskImager https://sourceforge.net/projects/win32diskimager/;
2) Записываем файл ATM_HDD.HDD на физический носитель.

Я записывал на PC на Compact Flash размером в 2 Гб (меньше на aliexpress не продается).

Так как железный АТМ пока находится в процессе сборки, флэшку для проверки вставлял в железную ZX-Evo. Через переходник IDE-CompactFlash.
Запуск из Base Conf меню Service ATM CP/M. Картинки ниже.

Compact Flash (www.128byte.ru/download/cf-ide.png)

X-Commander (www.128byte.ru/download/xc.jpg)

juka1868
15.02.2018, 19:11
Меня также заинтересовал этот вопрос, и решение оказалось настолько простым, что помещается в две строки:

1) Скачиваем программу Win32DiskImager https://sourceforge.net/projects/win32diskimager/;
2) Записываем файл ATM_HDD.HDD на физический носитель.

Эвы у меня нет, но на "железном" АТМ этот номер не прокатывает :(
Похоже этот образ подходит только для эмулей, а жаль так хотелось срубить готовый образ по легкому :biggrin:

Black Cat / Era CG
16.02.2018, 18:37
Эвы у меня нет, но на "железном" АТМ этот номер не прокатывает
Эта утилита под винду же. Скачиваете ее, подключаете к пц винт и с помощью на нее заливаете на него образ...

juka1868
16.02.2018, 18:50
Эта утилита под винду же. Скачиваете ее, подключаете к пц винт и с помощью на нее заливаете на него образ...
Да я так собсно и сделал :)
В результате содержимое не видит ни комп ни АТМ.

Black Cat / Era CG
16.02.2018, 18:56
Странно...

Error404
19.02.2018, 14:21
Да я так собсно и сделал :)
В результате содержимое не видит ни комп ни АТМ.

РС на уровне менеджера томов ОС это видеть и не должен, т.к. образ не соответствует ни одной из принятых схем разбиения на разделы. А вот проверить его посекторным чтением с последующей проверкой глазками в HEX-редакторе РС вполне сможет.

На ATM могут быть другие косяки: сам винт может не читаться (схему НЕМО и ей подобные не все HDD/CF любят, там примерно 50/50) либо не угадали с параметрами CHS (в образе настроено одно, а у HDD другие, а работа ПО идет с адресацией CHS, на LBA такого не было бы)

juka1868
19.02.2018, 20:10
либо не угадали с параметрами CHS (в образе настроено одно, а у HDD другие, а работа ПО идет с адресацией CHS, на LBA такого не было бы)
Что сказать сам протупил :v2_dizzy_facepalm: Ведь в описании четко сказано:
Heads: 16
Sectors: 63
А у меня флешатина:
Heads: 16
Sectors: 32
Накатил образ на железный винт, и СР-М загрузился без вопросов, так как у винта те же
Heads: 16
Sectors: 63


Чтобы запустить OS TASiS, необходимо войти в стартовом меню ПЗУ xBIOS (и только xBIOS. В МикроАРТовском ПЗУ либо грузиться с загрузочной дискеты, либо.... Есть возможность сделать файл загрузчик из среды CP/M. Об этом отдельно как-нибудь) в опцию "IDE hard drive master", либо в этом же ПЗУ в меню Бейсика-128 выбрать опцию "HDD boot".

Из xBIOS-"IDE hard drive master" у меня "малевич", а вот из Бейсика-128 - "HDD boot" TASiS грузится замечательно :v2_dizzy_roll:

Огромное спасибо Максагору за такой подарок как мультизагрузочный образ диска со всеми АТМ-овскими осями.
Просто отвал башки :biggrin:

tigr101274
18.10.2018, 12:26
1) Скачиваем программу Win32DiskImager https://sourceforge.net/projects/win32diskimager/;
2) Записываем файл ATM_HDD.HDD на физический носитель.
С физическим носителем понятно, не понятно как на "железный" винт записать образ? Ведь Win32DiskImager видит только флеш, как быть?

Sayman
18.10.2018, 13:49
tigr101274, использовать winhex.

tigr101274
20.10.2018, 05:50
использовать winhex
Спасибо, все работает!!!