PDA

Просмотр полной версии : Орион - Вопросы и ответы.



Error404
01.05.2010, 10:17
Предлагаю задавать вопросы в этом треде, полезное каталогизировать в формате FAQ.

Программная часть


Утилиты для обработки образов Fdd-дисков *.odi и hdd(sd)-дисков *.ohi,
.
{Q} Каким образом на ПЦ можно добавлять/удалять файлы в образе .ohi?
{A} В составе эмулятора распространяются плагины для TotalCommander и Far, которые могут быть подключены как архиваторные плагины этих файловых менеджеров и обеспечить в этих файловых менеджерах пофайловое копирование из/в образ диска *.odi, *.ohi работая с образом диска как с обычными подкаталогами ("входить" в образ как в подкаталог).
Установка odi.wcx:


How to install this plugin (32 bit only) in TotalCommander:
1. Unzip odi.wcx, system.bin to any directory
(usually c:\wincmd\Plugins)
2. In Windows Commander 5.5 (or newer), choose
Configuration - Options
3. Open the 'Packer' page
4. Click 'Configure packer extension DLLs'
5. type the "ODI" extension
6. Click 'new type', and select the odi.wcx
7. Click OK. Click OK
8. Repeat steps 2-7 for other supported (specified in
ODI.INI) formats - such as TRD, DSK, etc.

How to install this plugin (32 bit only) in Far Manager:
0. Install wcx.dll (plugin allowing TC WCX-plugins usage
in Far) to
{FAR_DIR}\Plugins\Multiarc\Formats\WCX\
Install wcx.fmt to
{FAR_DIR}\Plugins\Multiarc\Formats\
1. Unzip odi.wcx, system.bin to
{FAR_DIR}\Plugins\Multiarc\Formats\WCX\
1.2. To Support any other CP/M format (specified in INI),
just copy ODI.WCX, ODI.INI to files with
file name corresponding to format extension (for
example: DSK.WCX, DSK.INI ; TRD.WCX, TRD.INI) to
{FAR_DIR}\Plugins\Multiarc\Formats\WCX\
2. Restart Far

ohi.wcx устанавливается полностью аналогично. Только тип (расширение) в пункте 5 указываем не "ODI", а "OHI", в пункте 6 выбираем ohi.wcx, а пункта 8 не будет вообще. Небольшой неприятный ньюанс. Т.к. при обработке *.ohi для простоты реализации в качестве обработчика файловой системы CP/M используется odi.wcx (которая есть DLL) и винда ее кэшируетс вместе с сегментом данных, то единожды открыв один ohi-образ можно работать только с ним. Корректно обрабатывать другой образ можно только перезапустив TC/Far. Возможно позже плагин будет переписан для работы без odi.wcx - тогда этого эффекта не будет.
.
.
Altair-DOS V3.x
.
.
{Q} Как "сшить" ранее выложенный образ SD (или IDE) c новым образом (установить на системные дорожки операционную систему)?
{A} Операционная система (ОС) устанавливается из файла с кодом ОС. Теоретически, записать код ОС на системные дорожки можно при помощи утилиты POWER, но тогда потеряются контрольные суммы спецобластей AltairDOS (символьные имена USER-ов, даты файлов), что неудобно. Чтоб это обойти, рекомендую такую последовательность действий:

запустить под Altair-DOS V3.x драйвер низкоуровневого доступа IDEBDOS.COM. Для варианта SD-карты использовать IDEBDOS.COM версии не ниже 1.3 и запускать его с параметром "sd" (по-умолчанию, т.е. без параметра "sd", работа идет с IDE по схеме на i8255):



C:\>idebdos sd

IDEBDOS V1.3. (c) 2010 Serge. ?=HELP Port: F762

Begin devices autodetect (less then 20sec per device)... be patient!
Detected Altair DOS 3.x or higher.

SD-card: MSX v1 scheme

Model: FILE Rev: 1.0, Total: 32Mb

C:\>

Запустить программу FDISK.COM (следите чтобы fdisk был той же версии, что и idebdos - разноверсионные варианты могут быть несовместимы):



C:\>fdisk




FDISK v1.3 - Fixed Disks Partition Manager. Type 'FDISK -?' for help
Public Domain Software by Serge.

Current drive: 0 (Master, Total 32M, Free 0K). UPCASE=active partition

+-+---------------------------------------------------------------------------+
|m|ccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccc|
+-+---------------------------------------------------------------------------+
32M
[m]-MBR, [e]-empty; partitions: [f]-FAT, [c]-CP/M, [u]-UZIX, [o]-other

FDISK Options

Choose one of the following:

1. Create partition
2. Set Active partition
3. Delete partition
4. MBR Maintenance

Enter choice (1..4, A,Q=Abort=Quit):

Выбрать пункт 1 - "Create partition" (нажать кнопку "1"), затем пункт 5 "Sysgen CPM from the file", ввести порядковый номер партиции куда из файла будем копировать код ОС (ввод завершаем кнопкой "Enter"), ввести имя файла (файл должен быть на текущем диске в текущем USER или в USER-по_умолчению, настроенному в config.sys переменной PATH. Ввод завершаем кнопкой "Enter"). Fdisk запишет код ОС на системные дорожки:


FDISK v1.3 - Fixed Disks Partition Manager. Type 'FDISK -?' for help
Public Domain Software by Serge.

Current drive: 0 (Master, Total 32M, Free 0K). UPCASE=active partition

+-+---------------------------------------------------------------------------+
|m|ccccccccccccccccccccccccccccccccccccccccccccccc cccccccccccccccccccccccccccc|
+-+---------------------------------------------------------------------------+
32M
[m]-MBR, [e]-empty; partitions: [f]-FAT, [c]-CP/M, [u]-UZIX, [o]-other


Enter name of file containig Altair DOS code: dos.bin
bootsector..usernames..filedates..code............ ...........................
Operation `Sysgen CPM from the file` with partition 1 completed. Press any key

Код ОС записан, при перезагрузке он начнет выполняться.
ВНИМАНИЕ! Выполнение кода ОС зависит от параметров, передаваемых из MBR (Master Boot Record) при загрузке. Желательно также переписать на подготавливаемый диск (куда уже записали код ОС) и MBR (со старым, несоответствующим MBR возможны глюки при загрузке).
Записать MBR можно опять же при помощи fdisk.com. Сначала с образцового диска нужно записать код MBR в файл (FDISK: 4. MBR Maintenance -> 3. Save the MBR to a file), затем на целевом диске записать MBR из этого файла (FDISK: 4. MBR Maintenance -> 2. Copy MBR boot code from file).
Можно поступить проще, в один шаг: записать на целевой диск образцовый MBR из тела FDISK (FDISK: 4. MBR Maintenance -> 1. Create ZBootLoader MBR). В FDISK версии 1.3 находится последний на настоящий момент MBR, но это не всегда будет так, поэтому этот более простой шаг потенциально небезопасен.
Примечание: если на диске (IDE-устройстве, SD-карте) несколько загрузочных разделов, то при старте можно выбрать с какого из разделов загружаться. Для этого выводится меню, в каждый пункт которого выводится метка диска соответствующих разделов (до 16 символов длиной). Настроить метку диска можно командой VOL операционной системы или в одном из пунктов PullDown меню оболочки NC.COM.

.
.
{Q} У меня нет файла с кодом ОС. Можно ли "взять" код ОС в файл с работающего диска?
{A} Это можно сделать при помощи утилиты POWER.COM


C:\USER_2>power

POWER 3.03 on CP/M 2.22 1/2

Copyright (c) 1981, 1982 by PAVEL BREDER
All rights reserved. 01/03/83

C2=read 0 1 5000 160
G=----:-- T=0000 S=001 PS=001 At:5000-507F
G=----:-- T=0000 S=002 PS=002 At:5080-50FF
.......
G=----:-- T=0000 S=160 PS=160 At:9F80-9FFF
C2=
C2=save dos.bin 5000 160
C2=
C2=exit
C:\USER_2>
C:\USER_2>dir
Volume: Altair DOS v3.4t
dos .bin
Total size:32736k Free size:31264k
C:\USER_2>

.
.

Ewgeny7
01.05.2010, 19:08
Утилиты, разное


IDE, SD, Hddutil.exe
.
{Q} Совсем не нашел, как готовить CP/M флешки. Существует ли описание?

{A} Пока описания нет, но планируется. В качестве первоначального, цитаты с форума:
.

Привет, скажи а какая у тебя поддержка под винт есть для Ориона, разбиение, форматирование - софт.

На Орионе пока сделано так: винт разбивается на стандартные MBR-партиции - как в винде (http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB_%D0%B4%D0%B8% D1%81%D0%BA%D0%B0). Поддерживается 4 стандартных master-партиции. И разбитый так винт можно подключать как к PC с виндой (винда работает со своей FAT-партицией, плюс утилитами можно сдампить в образ и обратно и CP/M-партицию), так и к Ориону, который живет (грузится) в своей CP/M партиции и может монтировать другие CP/M партиции этого или второго винта. Размер CP/M партиции меняется от версии к версии (сейчас максимум 100M, хотя CP/M 2.2 позволяет до 512M), и разноразмерных партиций может быть несколько, и не только CPM, но и к примеру, FAT на этом же диске (флешке). Каждая партиция имеет свой тип (CPM=52).
.
Под CP/M для Ориона для работы с партициями написана утилита fdisk.com, которая в этом стандарте (MBR-партиции) создает/удаляет партиции и файловые системы CP/M (пример вида fdisk.com см. тут (http://zx.pk.ru/showpost.php?p=279991&postcount=1)).
.
Также портирована библиотека работы с FAT(12/16/32), написана для нее оболочка fat.com (командный режим), и на Орионе из-под CP/M можно в обе стороны пофайлово обмениваться данными с FAT-партициями винды. В отличие от fdisk.com, fat.com понимает extended партиции, т.к. WinXP для FAT-партиций более 32G по дефолту лепит extended-партицию.
.
И fat.com, и fdisk.com написаны абстрактно на языке С - они не лезут напрямую ни в экран (работа идет стандартным VT-52), ни к контроллеру IDE - низкоуровневая запись/чтение 512b-блоков вынесены в отдельный драйвер (в моем случае - это IDEBDOS.COM, написанный на asm)
.
Варианты загрузки с IDE на i8255 (580вв55) (http://zx.pk.ru/showthread.php?t=9675) и SD по двум схемам (http://zx.pk.ru/showthread.php?t=11916) подключения на Орионе:
- IDE при помощи ПЗУ F800 (один из: M35ZMSH.BIN, M35ZRKH.BIN, M36ZMSH.BIN, M36ZRKH.BIN). ПЗУ при включении питания вместо ORDOS сразу грузит MBR-сектор с master-IDE в ОЗУ по адресу 1:0000 (т.е. с начала второй физической страницы памяти) и передает туда управление. M35* работают с IDE с портoм 0F500h, M36* - с портoм 0F600h. Суффикс *RK* обозначает прошивку для клавиатуры RK-86, *MS* - для клавиатуры МС7007 по лениградской схеме.
.
- SD при помощи ПЗУ F800:


M35zmsc.bin - Монитор 3.5, по включению питания загружающийся с SD-карты, подключеной по схеме N8VEM. Клавиатура MS7007 (Лениград).
M35ZMSS.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, подключеной по схеме MSX. Клавиатура MS7007 (Лениград).
M35ZRKC.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, схема N8VEM. Клавиатура РК-86.
M35ZRKS.BIN - Монитор 3.5, по включению питания загружающийся с SD-карты, схема MSX. Клавиатура РК-86.

Поддерживаются оба вида схем подключения SD-карт: N8VEM (http://orion-z.mylivepage.ru/image/347/26955_n8vem_sd-mmc.gif) и MSX (http://orion-z.mylivepage.ru/image/347/26954_msx_sd-mmc.gif).
Программно пока поддерживаются только SDC-карты (размером до 2Gb). SDHC (4 и более GB) не поддерживаются. Скачать мониторы-SD тут (http://orion-z.mylivepage.ru/file/335/5704_SDC_BOOT.zip)
.
- Вариант загрузки из ORDOS. ПЗУ F800 при этом может быть любым. ПЗУ F800 грузит ORDOS и передает ей управление. Под ORDOS используйте утилиту MBOOT$.ord (ее можно прошить в ROM-DISK), которая использует загрузчик, полностью аналогичный Мониторам, но корректирующий в загружаемом с IDE/SD коде MBR-загрузчика и BOOT-сектора CPM все вызовы адреса 0F834h (это подпрограмма чтения с IDE 512-байтного сектора в Мониторах М3*H.BIN) на вызов своей подпрограммы.


MBOOT.ORD - утилита для ORDOS для загрузки с SD-карты (обе схемы, автодетект), IDE (Master и Slave, порт F600), Floppy0 (дисковод А). Монитор - любой.

.
В считанном MBR (http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D0%B7% D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BE%D1%87%D0%BD%D0 %B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C) выполняется проверка на наличие кодов AA55h (MBR/boot flag) и C3h (JMP) находящиеся по адресам (от начала бутсектора) 1FEh, 0h соответственно.
.
Дальнейшая загрузка происходит так, как написан MBR (в настоящее время он позволяет грузиться по выбору с любого из 4-х primary разделов master-HDD (SD-карты), где есть загрузочный образ CPM. Выводится меню - список меток_дисков [offset +20h] соотвествующих разделов). MBR (а далее и BOOT-сектор раздела) используют п/п 0F834h (или п\п предоставляемую MBOOT$.ord), которая в числе прочих параметров возвращает и базовый адрес ППА IDE / порт SD. Далее этот адрес передается в CPM как базовый адрес порта IDE/SD (F500/F600/F762...) и ядро CPM само себя соответствующе корректирует. Т.е. не важно какой адрес порта IDE/SD будет передан из MBR\BOOT (он может даже не быть F500/F600, а быть, к примеру, F567).

В качестве образа диска для загрузки с IDE/SD рекомендую диск с игрушками (на нем более-менее свежая версия ОС с поддержкой IDE/SD, в архиве есть readme). Образ уже с размеченными партициями (заливай да пей! :)), да и лучшего теста для Z80CardII чем игры - не придумать :
http://orion-z.mylivepage.ru/file/335/5706_GAMES-sd.zip

В силу вышеописанного алгоритма работы, корректировать ОС для работы на порту, отличном от F500 (IDE) или F762(SD) не надо, все корректировки адреса ППА IDE надо делать только в Мониторе (ПЗУ F800) или MBOOT$.ord. Некоторые CP/M утилиты, к примеру fat.com, fdisk.com, которым необходимо лезть к IDE "напрямую", т.е. мимо CPM, работают с IDE через драйвер IDEBDOS.COM. Этому драйверу при старте можно в командной строке передать параметры, в т.ч. и номер порта IDE. Например:
IDEBDOS port:f600

Залить образ HDD на реальный IDE-диск под Windows можно утилитой HddUtil.exe:
http://orion-z.hoter.ru/file/355/4538_HddUtil.zip

Утилита консольная (т.е. запускать из CMD - оно напишет подсказку). Команды - на любой вкус, например можно считать/записать один (к примеру, первый) сектор c параметром /с=1. Утилита тестировалась на чтении/заливке образов с/на как реальных винтов (подключенных к IDE материнской платы), так и для CompactFlash в обычном китайском USB-адаптере (CardReader).

Сначала выполняем hddutil /list и смотрим какими приводами (с какими номерами) можно оперировать. По косвенным (серийник - если есть, размер карты/диска, наличие и тип партиций) определяем привод куда/откуда заливать образ.

Заливаем образ. Например, чтобы записать образ GAMES.OHI на hdd, установленный в системе вторым, надо выполнить примерно такое:
hddutil c:\temp\games.ohi 1: /c=131072

Если ключ /c не указан, утилита обругается, что размер образа не соответствует размеру диска (защита от дурака - чтобы не ошибиться: не записывать на диск не соотвествующие по размеру образы), и напишет, что если образ не соответствует. В этом случае надо указывать сколько секторов писать (утилита, обругав, укажет требуемое число), например - "/c=12345678". Указываем его. На вопрос о записи ответить "Yes". После завершения счетчика записанных секторов hddutil сообщит "Complete", что означает, что все записалось.

После записи образа, команда
hddutil /list
для привода 1: должна показывать наличие двух СРМ партиций
.
Дубль два


Error404, я у тебя уже спрашивал... Объясни еще раз, пожалуйста. У меня приготовлен винт на 100Мб. Я его подключу как диск D на ПЦ. Отформатирую (FAT32?). Образ с твоего сайта у меня есть. Сижу под ХР.
Какой утилиткой заливать? Какая командная строка для утилиты?

Ничего форматировать не надо, файловая система все равно будет другая. Если винт исправен, то он уже отформатирован (размечен для работы с 512-байтными секторами), надо просто образ диска залить на винт. Но винт должен уметь работать в LBA-режиме (это умеют все современные винты, даты выпуска примерно от 1994г. и новее). 100Мб это может быть очень старый винт, который "только-CHS".

Делать надо так:
- Качаем образ диска в каталог C:\tmp:
http://orion-z.mylivepage.ru/file/335/5706_GAMES-sd.zip
распаковываем

- Качаем утилиту в каталог C:\tmp:
http://orion-z.hoter.ru/file/355/4538_HddUtil.zip
распаковываем
Утилита консольная, поэтому переходим в cmd (коммандный режим винды, в тот каталог где лежит образ и hddutil, ну или в противном случае надо будет указывать полные пути к файлам)
Из-под cmd запускаем hddutil.exe без параметров и читаем справку

- Подключаем диск, куда писать образ, к PC, проверяем\ищем его индекс (номер) в системе командой:
C:\tmp\hddutil.exe /list
допустим, это номер 1 (т.к. номер 0 скорее всего это "c:")

- Пишем наш образ на реальный диск:
C:\tmp\hddutil.exe C:\tmp\games.ohi 1:
Оно обругается, что размер образа не соответствует размеру диска (защита от дурака), и напишет, что если образ не соответствует, надо указывать сколько секторов писать - "/c=12345678" (к примеру!), ну и указываем:
C:\tmp\hddutil.exe C:\tmp\games.ohi 1: /c=12345678
Начинается запись. Когда счетчик дойдет до 12345678, образ записан.
Выполняем:
C:\tmp\hddutil.exe /list
должно показать, что на диске теперь 2 партиции (раздела)
.
Винда в диск-манагере тоже должна видеть 2 партиции + пустое место, но партиции она не распoзнает (unknown)
.
Примечание: в качестве утилиты для записи образа HDD на диск/карту можно применить любую другую утилиту, умеющую писать образ на диск "один-в-один" (посекторно).

Error404
01.05.2010, 23:38
Программная часть, разное




Программирование
.
.
{Q} Каким методом ты очищаешь экран при старте программ?

{A} Очистка экрана, очистка строки справа от курсора, позиционирование курсора - все это обычно делаю при помощи управляющих символов Монитора (или CP/M), которые добавлены к строкам выводимым на экран. Монитор их парсит и сам выполняет LDIR нужной области экрана, или позиционирование курсора:


драйвер дисплея игнорирует символы с кодами 00-1FH, вернее интерпретирует их как пробел. Исключение составляют коды
управления работой дисплея:
08Н - перемещение курсора на одну позицию влево.
09Н - горизонтальная табуляция. Установка курсора в ближайшую позицию в
строке, кратную четырем.
0АН - перемещение курсора вниз на одну строку в той же позиции. Если такой
переход происходит в самой нижней строке, то включается режим “Скроллинг”
(смещение всего изображения экрана на одну строку вверх).
0СН - установка курсора в левый верхний угол экрана.
0DH - установка курсора в первую позицию строки.
18Н-перемещение курсора на одну позицию вправо.
19Н - перемещение курсора на одну позицию вверх.
1АН - перемещение курсора на одну позицию вниз.
1FH - стирание экрана, курсор установить в верхний левый угол.
7FH - переключение вывода символов на экран дисплея в инверсном виде (белый
фон, черные символы). Выключение - повторный ввод кода 7FH.
МОНИТОР-2 имеет расширенный набор функций, вызываемых с помощью управляющего кода 1ВН (АР2). В программе МОНИТОР-1 эти функции отсутствуют:
1ВН+41Н - сместить курсор на одну позицию вверх.
1ВН+42Н - сместить курсор на одну позицию вниз.
1ВН+43Н - сместить курсор на одну позицию вправо.
1ВН+44Н - сместить курсор на одну позицию влево.
1ВН+45Н - стирание экрана.
1ВН+48Н - установить курсор в верхний левый угол.
1BH+4AH - стирание экрана нг, с курсора.
1ВН+4ВН — стирание строки правее курсора.
1BH+59H+(X+20H)+(Y+20H) - установить курсор в позицию Х (номер строки -
0-19Н), Y (номер позиции - 0-3FH).
Драйвер дисплея использует несколько установочных констант, которые хранятся в области служебных ячеек и поэтому доступных для оперативного изменения.
0F3CFH - старший байт адреса начала строки. При инициализации МОНИТОР заносит значение 0С0Н (0С000Н - начальный адрес области ОЗУ экрана №1 ). Если записывать промежуточные значения (0С0-0Е0Н), то будет происходить смещение начала строки
вправо. Для включения экранов №2, №3 и №4 заносят (помимо соответствующего кода в системный порт №3) соответственно коды 80Н, 40Н, 00Н. Данная константа влияет на начальную позицию первого символа в строке. 0F3D0H - ширина поля, в котором производятся операции “Скроллинг” и гашение экрана. Исходное значение З0Н, т. е. 48 байт в строке (не символов). Программно сдвигая экран вправо, необходимо пропорционально укорачивать эту константу, в
противном случае функции гашение экрана и “Скроллинг” будут “влезать” в служебную область МОНИТОРА (для экрана №1) - поле знакогенератора. На длину символьной строки данная константа не влияет.
0F3D4H - номер строки, с которой действуют функции стирания экрана, а также “Скроллинг”. Отсчет ведется от верхней строки. Если в ячейку занести код 05Н, к примеру, то верхние пять строк не будут стираться по коду 1FH (или 1ВН+45Н) и не попадут под действие режима “Скроллинг”. Для возврата в исходное состояние, необходимо восстановить начальное значение констант.

Сугоняко, В. Сафронов, К. Коненков. Персональный радиолюбительский компьютер “Орион-128”. Программное обеспечение. - Радио, 1990, № 2, с. 46.

.
.
{Q}
{A}
.
.

Error404
02.05.2010, 19:12
А в данном случае как должно быть?
Я не силен в таких тонких материях, мне кажется что МБР должен быть только один, перед всеми партициями. Соответственно бутлодер также должен быть один, размещен всё равно где, но видящий все партиции. Отсюдова делаю вывод, что создав партицию на диске, она автоматом "покроет" уже находящийся на диске образ (в нашем случае TTY-SD.OHI). Создав новый бутлоадер в FDISK, я рассчитываю что он не совсем дурак, и зная количество партиций просмотрит каталоги и создаст соответствующие строчки-ссылки при запуске.


Не, бутлоадер в этой терминологии - совсем дурак. :)
Он отработает только то, что описано в таблице разделов (массив 4х16=64 байт со смещением 446 байт от начала образа). Вторичные партиции не поддерживаются - обрабатываются только 4 первичные партиции. Причем, формируя меню, он по некоторым критериям определяет что есть в бутсекторе (первый сектор) каждой партиции (загрузочная партиция или нет, есть метка диска или нет и т.п.).
.
Ты слил один за другим 2 образа и создал третью партицию, соответственно, в третьей партиции у тебя в лучшем случае - MBR второго образа, а не CP/M-бутсектор каковой там должен быть (в котором находится метка диска, она же - строка меню бутлоадера).
.
Причем это будет так только в том случае, если обе уже существовавшие партиции (первая и вторая) занимали весь образ диска (и третья партиция начинается сразу после окончания второй). А для диска с играми (как раз это и есть худший случай) это не так - я там специально сделал 2 партиции + свободное место (чтобы людям было где попрактиковаться в создании разделов). Поэтому третья партиция своими координатами в MBR вообще никак не попадает на реальное содержание второго образа подлитого в конец первого.
.
Сегодня я копал грядки, а вчера на сон грядущий проделал всю цепочку как это делал бы я. Вкратце: склеиваем tty-sd.ohi + games-sd.ohi (в такой последовательности, а не наоборот, чтобы не было "пустот", т.к. первый образ полностью занят партицией, а второй занят партициями не до конца).
.
Затем под виндой в HEX-редакторе (просмотрщике) смотрим MBR в обоих исходных образах и уже в CP/M при помощи командного режима fdisk (он умеет больше чем итерактивный режим) правим таблицу MBR так, чтобы первую партицию увеличить на 1 сектор (накрыть MBR второго образа чтобы он не мешался и не был "дыркой" между партициями), и прописываем LBA-координаты второй и третьей партиции.
.
Все. Можно грузиться. Но во второй и третьей партициях еще надо будет (при желании) потом поправить директивы ASSIGN в файлах config.sys - там монтируются первый и второй разделы, а они у нас сдвинулись и стали вторым и третьим соответственно.
.
Напоминалка: при загрузке ОС можно удержать кнопку F4 (ctrl+С) и выполнять config.sys пошагово (пропустить ASSIGN), или кнопку F5 (ctrl+D) и вообще не выполнять config.sys.

А вот пример моих вчерашних действий:

Под виндой:


copy /b tty-sd.OHI + games-sd.ohi ttygames.ohi


Под CP/M (загрузившись с образа ttygames.ohi):


C:\>idebdos sd

IDEBDOS V1.3. (c) 2010 Serge. ?=HELP Port: F762

Begin devices autodetect (less then 20sec per device)... be patient!
Detected Altair DOS 3.x or higher.

SD-card: MSX v1 scheme

Model: FILE Rev: 1.0, Total: 96Mb

C:\>
C:\>fdisk -p 0:

0 : 00 000000 52 000000 01000000 FFFF0000
2 : 00 000000 00 000000 00000000 00000000
4 : 00 000000 00 000000 00000000 00000000
6 : 00 000000 00 000000 00000000 00000000

Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65535
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 2 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

C:\>
C:\>fdisk -l 0: 1 1 65536

Partition 1 of 0: LBA parameters have been changed to:

Starting LBA: 1
LBA Size: 65536


C:\>
C:\>fdisk -p 0:

0 : 00 000000 52 000000 01000000 00000100
2 : 00 000000 00 000000 00000000 00000000
4 : 00 000000 00 000000 00000000 00000000
6 : 00 000000 00 000000 00000000 00000000

Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 2 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

C:\>
C:\>
C:\>fdisk -l 0: 2 65537 65535

Partition 2 of 0: LBA parameters have been changed to:

Starting LBA: 65537
LBA Size: 65535


C:\>
C:\>
C:\>fdisk -m 0: 2 82

Partition 2 of 0: type has been changed to: 82.


C:\>
C:\>fdisk -p 0:

0 : 00 000000 52 000000 01000000 00000100
2 : 00 000000 52 000000 01000100 FFFF0000
4 : 00 000000 00 000000 00000000 00000000
6 : 00 000000 00 000000 00000000 00000000

Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 2 nonactive=00, type 52=CP/M, LBA start 65537 and LBA size 65535
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 3 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

C:\>
C:\>
C:\>fdisk -l 0: 3 131072 4000

Partition 3 of 0: LBA parameters have been changed to:

Starting LBA: 131072
LBA Size: 4000


C:\>
C:\>fdisk -m 0: 3 82

Partition 3 of 0: type has been changed to: 82.


C:\>
C:\>fdisk -p 0:

0 : 00 000000 52 000000 01000000 00000100
2 : 00 000000 52 000000 01000100 FFFF0000
4 : 00 000000 52 000000 00000200 A00F0000
6 : 00 000000 00 000000 00000000 00000000

Partition 1 nonactive=00, type 52=CP/M, LBA start 1 and LBA size 65536
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 2 nonactive=00, type 52=CP/M, LBA start 65537 and LBA size 65535
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 3 nonactive=00, type 52=CP/M, LBA start 131072 and LBA size 4000
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

Partition 4 nonactive=00, type 00=deleted, LBA start 0 and LBA size 0
Beginning: 0 cylinder, 0 head, 0 sector
Ending: 0 cylinder, 0 head, 0 sector

C:\>

Error404
03.05.2010, 16:49
Спасибо, получилось :)
Почти.
Что такое "ALV not found" (ZX-Games) и "D: BDOS Error (вроде бы)" на Old-Games.

Посмотрев примеры понял нужную вещь (к сожалению, не разжеванную в твоих письменах) - FDISK -l (редактирование) 0: (диска 0) 2 (номер партиции) 65536 (начало партиции в блоках по 512кб) 65535 (длина партиции в блоках)
FDISK -m (mode, режим "существования" партиции) 0: (для диска 0) 3 (партиция 3) 82 (установить режим 82, СР/М).
Кстати, почему ставим 82, а получаем 52 по fdisk -p 0: ?

Если вызвать FDISK с какими-то непонятными ему параметрами или ключем "-?", он выводит подсказку, в которой описано назначение ключей и параметров. Поэтому я не описывал через чур подробно.
.
С "ALV not found" все просто: в CP/M есть буфер ALV, который содержит битовое отображение занятых/свободных логических блоков. Этот буфер не безграничен. В AltairDOS для IDE/SD разделов сумммарный объем всех смонтированных партиций - 6400 логических блоков (этот буфер ALV займет в памяти 800 байт), что при размере блока в 8к (как он и есть в имиджах tty-dos и games-sd - задается при создании файловой системы) составляет суммарный максисмум объема всех партиций в 50Mb. Если увеличить размер лог. блока до максимальных для CP/M 16 килобайт, то это ограничение будет 100Мб. Конечно, буфер можно сделать и более чем 800 байт, но урезать TPA - сердце кровью обливается. ИМХО большая ТРА важнее.
Я уже писал об этом тут (в release notes): http://zx.pk.ru/showpost.php?p=275608&postcount=851


"ALV not found" - Для монтируемой файловой системы требуется буфер ALV, который с
учетом других уже смонтированных партиций не помещается в текущий
буфер CPM. Размер буфера ALV пропорционален размеру файловой системы
(то самое ограничение 100Мб).
Решение: умерить аппетиты при создании файловой системы
программой FDISK.COM.

.
В config.sys разделов с игрушками к символам дисков C и D монтируются партиции 0 и 1. В дисках с игрушками это были партиции размером 30Mб и 2Мб. Сейчас эти партиции сместились на одну, а первой добавилась партиция в 30Мб. Соответственно партиции 0 и 1 стали равны 30Мб и 30Мб соответственно, что суммарно превышает размер буфера ALV.

Ожидая чего-то подобного, во вчерашнем посте я писал:


Но во второй и третьей партициях еще надо будет (при желании) потом поправить директивы ASSIGN в файлах config.sys - там монтируются первый и второй разделы, а они у нас сдвинулись и стали вторым и третьим соответственно.
.
Напоминалка: при загрузке ОС можно удержать кнопку F4 (ctrl+С) и выполнять config.sys пошагово (пропустить ASSIGN), или кнопку F5 (ctrl+D) и вообще не выполнять config.sys.

Если в config.sys пропустить все диррективы ASSIGN, то после загрузки смонтированной к диску "С" будет только та партиция, с которой загрузились (и в ней можно спокойно поправить config.sys).

Error404
17.05.2010, 18:00
Аппаратная часть



Орион-128
.
.
{Q} Как сделать замену РФ2 ром-диска на флеш?
{A} Я не делал такой замены, но навскидку это делается просто: с ВВ55 на Ром-диск выходит 16 адресных ног и 8 ног для данных. Берем 27с512 (EEPROM 64k) или похожую, прошиваем туда содержимое ром-диска и подключаем согласно распиновке адресных ног и ног данных по даташиту. Чипселект (/OE, /CE) на землю (чтобы было "всегда выбрано"), /WE на +5V (всегда чтение).
.
.
Orion-Pro
.
.
{Q}
{A}
.
.
.
Orion-2010
.
.
{Q}
{A}
.
.
Разное
.
.
{Q} Какого объема лучше использовать SD и CF карты с Орионом?
{A} Пока статистики практически нет. Общий принцип - чем меньшего размера и меньшей скорости карта, там лучше. Лично пока пробовал только CF 64Mb Transcend и CF 1Gb Kingston. SD пока не применял (может по моделям ewgeny7 подскажет)? Программно пока поддерживаются только карты SDC (т.е. non-SDHC, размером до 2Gb).

Подсказывает ewgeny7 :) Применял микро-SD карточки Kingston, 512мб и две по 1Гб. Прекрасно работают все три штуки.
.
Error404: не работает SD-карточка Kingston micro-sd SDC/2G. Может, не работает оттого, что на ней написано "N0214-001.ADOLF"? :) Карточка Transcend 1G работает нормально.
UPD 23.08.2010: А вот mini-SD карточка от того же Kingston и тоже на 2G работает нормально. В-общем, не угадаешь...
.
.
{Q} На каком порту висит AY\YM (музыкальный сопроцессор), есть дока по подключению?
{A} Подключение AY абсолютно одинаковое с ZX-Спектрум. Порты BFFD/FFFD. Конкретно как оно у меня подключено к Ориону можно посмотреть здесь:
http://orion-z.mylivepage.ru/file/355/2434_scr_turbo_AY_kempston.rar
.
.

Error404
15.11.2010, 12:14
как открыть odi с cp/m и вывалиться в ее консоль?


Если речь о том как это сделать в моем эмуляторе, то алгоритм примерно такой:
Загружаем орионовский загрузочный (содержащий CP/M на системных дорожках) образ диска, к примеру, некий disk.odi
в, к примеру, каталог c:\temp

Запускаем эмулятор.
В панели инструментов эмулятора есть 2 кнопки с символом дисковода и красными буквами "А" и "В" - это эмулируемые дисковые приводы 0 и 1. При нажатии на кнопку "А" (все загрузчики - о них ниже - грузят ОС с дисковода A) отобразится меню, в котором нужно выбрать "browse for files" и выбрать файл c:\temp\disk.odi.

Образ диска с приводом сопоставлен (теперь он подсвечивается как hint на соответствующей кнопке дисковода панели инструментов), теперь нужно с него загрузиться. Если используется загрузка из ОРДОС (Монитор вываливается в Ордос), то нужно пользоваться загрузчиком DOS$ для CPM фирмы Орион-Софт (они называли их OSDOS v 2.4, 3.6) или загрузчиками BOOT$, MBOOT$ для прочих вариантов орионовских CPM.

Можно использовать Монитор (ROM-BIOS F800) такой, чтобы он по включению питания или RESET сразу грузился с дисковода А, без Ордос (будет грузить все версии орионовских CPM кроме упомянутых OSDOS). Для этого в окне настроек на закладке ROM нужно выбрать имя файла Монитора содержащего в суффиксе имени файла символ "D". Также нужно учитывать тип клавиатуры и выбирать соответствующий тип Монитора (в имени будут суффиксы "RK" или "MS"). Пример: M35zrkd.bin - Монитор версии 3.5, работает только на Z80, клавиатура RK-86, встроен загрузчик с дисковода.

Error404
10.12.2010, 20:00
Имеем в своем распоряжении модуль SD-MSX на Орион-2010 и исходники модуля BIOSSD.MAC.
Горим жутким желанием прочитать/записать группу секторов.
К примеру, с адреса 1000Н по 8FFFН имеем 32 кб данных (64 сектора SD). Нужно запихнуть их на SD в сектора с 0012_76DE и далее.
Убив моск на исходниках test2sd.mac пишем сюда :)
Может ли уважаемый гуру Ориона набросать соответствующие вызовы процедур из BIOSSD для решения сих несложных вопросов?

---------- Post added at 13:25 ---------- Previous post was at 13:22 ----------

К примеру, используя модуль ZControllera с драйвером от него, запись выглядит так:

LD HL,1000H
LD BC,0012H
LD DE,76DEH
LD A,64
CALL COM_SD
DB 5

Инициализация карты выглядит так:
CALL COM_SD
DB 0

При чтении DB 5 просто меняем на DB 3. Усё.
А как это делается на BIOSSD.MAC?

Инициализация при помощи подпрограммы sd_init, без параметров.


Запись при помощи подпрограммы sd_write_block - пишет один 512-байтный блок из буфера. Параметры:
;
; INP: DEHL=data position, BC: buffer address
; byte offset in dehl
; OUT: z return if ok, or error code in a
;

DEHL - 32-битный адрес (offsef от начала SD-карты) в байтах ( L - младший байт). Для перевода номера сектора в байты (offset) тебе надо будет LBA-номер сектора (т.е. считаемого с нуля) умножить на 512 (сдвинуть влево 9 раз).

Подпрограмму, понятно дело, надо в цикле вызвать N раз, меняя значения входных параметров. И готовность карты проверять (кусок подпрограммы sd_setup).

Как-то так...

Еще есть такая подпрограмма, наверное она будет удобнее (готовность проверяет сама и больше похожа на п\п Z-controller-а):

sd_write:
;
; Input: HL=DriveInfo_array+8, d: 1=SDC, 3=SDHC
;

Регистр D всегда выставляй в 1 (SDHC не поддерживается).
HL указывает на последний (так исторически сложилось - чтобы съэкономить 3 байта в Мониторе :) ) элемент массива вида



DevMsk0:ds 1 ; 0 for Master device
ISLBA0: ds 1 ; 0=work in CHS mode, !0(2)=Work in LBA mode
bbank0: ds 1 ; caller (buffer) bank
Buffer0:dw buffer ; 512bytes buffer address
lba0: ds 1 ; sec 28bit Logical Block Address
ds 1 ; cyl_low
ds 1 ; cyl_high
ds 1 ; head


Пример структурки для SD (для нее первые 3 байта безразличны) для LBA-номера 001276DEh и буфера с 1000h:


DevMsk0:ds 1 ; 0 for Master device
ISLBA0: ds 1 ; 0=work in CHS mode, !0(2)=Work in LBA mode
bbank0: ds 1 ; caller (buffer) bank
defw 1000h
defb 0DEh ;
defb 076h
defb 012h
addr: defb 000h


Никакие из п\п опций чтения нескольких последовательных блоков не имеют, т.к. для CP/M это бессмысленно, и соответственно не делалось.

Error404
11.12.2010, 12:42
m80n при компиляции BIOSSD.MAC нашел 209 fatall error, не считая 22 варнингов :)


Бывает. :)
Где-нить лишнюю запятую поставил. :)



Частенько вываливается надпись "Directory full". Суммарный объем файлов в каталоге чем-то ограничен? Для партиции размером в 32 метра это как-то стрянно...

Ну, это ж не FAT. :)
Размер каталога задается, сейчас в образах он 8192 байт, т.е. 256 файловых описателей. Можно было бы сделать больше, но большинство орионовских коммандеров не поддерживают более 128 файлов в каталоге (как оно было по дефолту на корветовских дискетках), а для NC предел 256 файлов. Поэтому я обрезал каталог до 256 файлов чтобы не разбираться что там заработает, а что заглючит.

Вообще, ограничение по количеству файлов - больное место CPM, т.к. даже самый маленький файл занимает такой же описатель как файл большого размера, т.е. можно записать 100 файлов и занять всю партицию и еще место в каталоге останется, а можно записать 256 маленьких файлов, занять 256кб из 32М и больше туда уже ничего не впихнёшь. В CPM 3.x было даже специальное решение - вместо подкаталогов использовались LBR-файлы (архивы типа как tar на UNIX), c которыми CCP работал напрямую (запускал оттуда файлы). Это позволяло кучу мелочи хранить в одном большом архиве.

Error404
11.12.2010, 19:27
у меня кагбэ в каталоге два файла, но directory full...
Или это подразумевается 256 файлов на всю партицию СР/М?

Да.

Каталог в понимании не поддирректории (юзер), а "системные дорожки - каталог - данные". Большие файлы (более 64к) занимают 2 и более записей в каталоге (1 запись покрывает 64к). Всего максимум 256 таких записей (это не предел CPM, а так были отформатированы файловые системы под игрушки).

Ewgeny7
12.12.2010, 20:13
Сделал таки сохранялку-загружалку диска С под ОРДОС на SD-карту. Давно хотел это сделать, дабы хоть работать можно было :)

Ewgeny7
13.12.2010, 07:49
А куда сохраняешь/читаешь (в какую область карты)?
Под "потолок" 512Мб карты. Там образ диска никому не мешает. ФАТ разумеется не использую.

Error404
09.06.2012, 22:47
{Q} Как сохранять диски Ордос на карте утилитой test2sd$ ORDOS?

{А} Утилита test2sd$ позволяет сохранять "сырые" ("RAW") блоки памяти на устройствах SD (схемы MSX, N8VEM) и IDE (схема на 580ВВ55). Никакие файловые системы не поддерживаются. Адрес куда сохранять на SD/IDE указывается в формате LBA (все 512-байтные сектора устройства последовательно пронумерованы от 0 до MAXLBA-1). Т.е. емкость любого устройства - MAXLBA*2 килобайт. Указывается также сколько 512-байтных секторов записать и начинаяа с какого адреса в памяти и в какой странице памяти брать данные (при записи на SD/IDE) или куда их класть (при чтении с SD/IDE).

Сохранять сырые данные на устройства лучше "под потолок", т.е. в максимальные значения LBA - там обычно неиспользуемые области, т.е. вероятность попортить какие-нибудь файловые системы невелика.

Рисунок окна программы представлен на рисунке во вложении. На рисунке сохраняем диск "В" ОРДОС на SD-карту.

Кнопки программы:


кнопка D (Device) : выбрать устройство (SD или IDE Master или IDE Slave)
надо указать банк и адрес (Page, Address) буфера ОЗУ:
1:0000 - диск В, 2:0000 - диск С и т.д.
каждый диск ОРДОС в ОЗУ занимает 60кб (120 секторов), соответственно, указываем в Count (кнопка C). Все числа - шестнадцатиричные, поэтому вводим 78
кпопка L (LBA) - адрес на диске куда сохранять надо указать как MAXLBA-120-1 или MAXLBA-240-1 или MAXLBA-360-1... MAXLBA свой для каждого устройства (зависит от размера, программа его подскажет перед вводом номера LBA). Числа - шестнадцатиричные!
кнопкой R (Read) прочитываем данные c SD/IDE устройства в ОЗУ, кнопкой W (Write) записываем данные из ОЗУ на SD/IDE. Обратите внимание, номер LBA увеличился - установлен после прочитанного/записанного фрагмента.

http://savepic.net/2820709.gif




UPD 11.06.2012

Теперь по умолчанию при запуске программы ставится банк:адрес=1:0000, количество секторов COUNT=78Н (120, т.е. 60кб), LBA=MAXLBA-COUNT (такое значение LBA ставится начальным всегда при выборе устройства кнопкой "D"). Также упрощено переключение банков памяти (кнопка "G") и выбор области записи на карте - автоматом вычитает из текущего LBA количество секторов заданное в COUNT (кнопка "M") - удобно для перемещения "под потолком" карты.

Т.е. для записи/чтения диска "B" ОРДОС достаточно войти в прогу и нажать "W" или "R".
Для записи/чтения диска "C" ОРДОС достаточно войти в прогу и нажать сначала "G", затем "W" или "R". Для записи/чтения диска "D" ОРДОС - войти в прогу и нажать сначала "G" дважды, затем "W" или "R".


Все прочие функции сохранены. Как и ранее можно делать с SD-картой или MasterIDE/SlaveIDE что угодно, но надо вводить цифирьки. :)

Исходники программы тут: http://zx-pk.ru/showthread.php?t=17329&p=838469&viewfull=1#post838469

Дмитрий2012
12.06.2015, 07:57
Может кто-нибудь рассказать про механизм обработки прерываний в Орион-ПРО?
Интересует вопрос, как программно определить, что запрос на прерывание пришёл именно от IRQ0, IRQ1 … IRQ7?
Хорошо бы посмотреть на пример кода с обработчиком прерываний:)

Denn
04.09.2017, 15:05
Вопрос касательно креатива на Орионе, а конкретно - программирования.

{Q} Есть ли у владельцев лучшего на свете ПРК желание освоить написание хотя бы несложных программ для него?
Вообще говоря, считаю именно Орион очень удобным компьютером для приобщения к программированию.

Вопрос возник вот откуда. Имею достаточное кол-во наработок, в т.ч. создана комфортная среда для написания и отладки программ на Ассемблере (непосредственно на Орионе), и если есть интерес, то мог бы поделиться информацией (тематическими постами с "разжёванными" примерами, готовыми библиотеками и т.п.). Понятное дело, что по основам программирования на том же Ассме есть соотв. учебники, но там нет ничего про особенности программирования конкретно под архитектуру Ориона, а тут есть свои нюансы. Ну и учебники - это учебники, кто их читает-то? :)
Просто так "сотрясать воздух" не хочется, в связи с чем и возник вопрос =)

DIMKA55
04.09.2017, 16:02
Денис, желание освоить есть, пиши статьи :) Что-то Стива Балмера сразу вспомнил...

VituZz
06.09.2017, 08:04
Есть интерес, если это будет применимо к ВМ80.

Denn
06.09.2017, 11:02
Есть интерес, если это будет применимо к ВМ80.

Только ВМ80 и только "MOV, LDA и т.п." ! Другое и не интересно :)

OrionExt
07.09.2017, 02:37
Что тебе сказать. Кто хочет писать…., тот Пишет. Кто не хочет - ищет причину.

mr.Lee
08.09.2017, 09:45
было бы интересно

Xrust
08.09.2017, 21:01
+

Sancho45
07.10.2017, 13:04
Есть софт для записи образов ohi под win 7 x64 ?

Error404
07.10.2017, 18:39
Есть софт для записи образов ohi под win 7 x64 ?

Я вот этим пользуюсь:
https://github.com/serge-404/OriZEmu/tree/master/UTILS/HddUtil

Запускать надо под административными правами (т.е. сначала запустить cmd.exe с ярлыка правой кнопкой мыши "run as Administrator", а уже в нём утилиту с параметрами)

Еще любые утилиты типа WinImage (кому какие по вкусу) можно применять, они и пошустрее пишут.

Sancho45
07.10.2017, 18:48
Я вот этим пользуюсь:
https://github.com/serge-404/OriZEmu/tree/master/UTILS/HddUtil

Запускать надо под административными правами (т.е. сначала запустить cmd.exe с ярлыка правой кнопкой мыши "run as Administrator", а уже в нём утилиту с параметрами)

Еще любые утилиты типа WinImage (кому какие по вкусу) можно применять, они и пошустрее пишут.



под админом и пускал win7x64,как только начинает записывать, пишет ошибка доступа или доступ запрещен(не помю). под хрюшей х32 нормально работает. winimage что то не распознает формат

Error404
07.10.2017, 19:13
под админом и пускал win7x64,как только начинает записывать, пишет ошибка доступа или доступ запрещен(не помю). под хрюшей х32 нормально работает. winimage что то не распознает формат

Кстати да, припоминаю такое под W7. Читать оно будет всегда нормально. А вот для записи еще надо чтобы привод ни чем не был открыт (что W7 в отличие от XP, под которой отлаживалась утилита, всегда делает: скан/open для всех распознаваемых ей флешек/кардридеров, и всё время лезет к ним на полный доступ). Поэтому ЕМНИП под W7 я обычно делаю так: чтобы записывать, записываю первый раз как есть (с ошибкой), оно хотя и сваливается, но MBR носителю все же записать успевает, и если потом этот носитель извлечь (корректно через меню) и затем вставить, то нестандартный съемный носитель (с более чем одной и тем более непонятной Винде CP/M партицией в MBR) W7 уже не считает своей собственностью, к нему не лазает, и на такой носитель HDDUtil вторым разом уже нормально пишется весь образ (тоже под администратором).

Возможно, достаточно будет вынести FAT-партицию средствами штатного диспетчера дисков W7, я не пробовал.