лучше последнее.
Вид для печати
Согласен, быстрее. Но, это актуально в ср/м из коммандной строки. Имея NC-подобную оболочку, почти все операции выполняются через нее. А для редкого использования более тяжеловесная, но и более универсальная оболочка в самый раз. Конечно удивительно, что ни один коммандер не позволяет ставить атрибуты файлов. Как вариант когда то организовал себе эти функции прописав в F2 меню, но почти не пользовался.
alvis, Если вспомнить прошлое, то до появления винчестера на машине я использовал xlat для копирования "системных" программ с загрузочного диска на виртуальный диск (последние 512кб). Она позволяет копировать с установкой флагов. А системный флаг позволяет запускать программы из user0 для любого user's. Устанавливаем виртуальный диск как системный, и ву аля, доступны все нужные функции на любой дискетке. При этом данные сохраняться до выключения питания, что происходило у меня не чаще раза в неделю.
По старой фидошной традиции "не менять тему" напишу здесь, тем более что вопрос довольно мелкий.
Последнее время активно пользовался эмулятором ZXMak2 для работы на Profi в CP/M. Эмулятор хороший. Главный плюс, всё работает "из коробки", отличная эмуляция IBM клавиатуры, работают все кнопки включая F1-F12. Единственная претензия к клаве, отсутствие перехода в режим ЙЦУКЕН. На реальной машине переключение режимов ЙЦУКЕН/ЯВЕРТЫ происходит по нажатию ScrollLock.
Есть ещё ряд моментов:
1. Эмулируется только стандартную частоту проца 3.5мГц. Что для работы в CP/M всегда было мало (большой экран, больше память и пр.). Турбо режим на реальной машине не отключаться ни когда. А тут его просто нет. Что вырабатывает "философское отношение к жизни". Есть режим заменитель, отключение программных задержек работы, что даёт некое ускорение. НО:
2. Ускорение при его активации не такое значительное как хотелось бы.
3. И в таком режиме практические невозможно работать (в отличие от полноценного турбо) так как на одно нажатие на клавиатуре происходит сразу несколько срабатываний.
4. Так же выявлена пробела с замедлением работ эмулятора после нескольких (десятков) включение/отключения режима ускорения (в частности, визуально видно замедления вывода данных на экран). А так как в нем работать невозможно, приходится часто его включать и отключать, а сам эмулятор не выключается сутками. Лечиться только перезапуском эмулятора.
5. Так же замечен глюк в "залипании" клавиш. Печатаешь текст, и последний нажатый символ побежал дублироваться в строке. Отлипает после повторного нажатия на эту кнопку, но далеко не с первого раза.
6. Иногда (очень редко) клавиатура вообще перестает отвечать. Для преодоления делаем так: двойным щелчком мышки делаем окно эмулятора активным, переходим в режим монопольного пользования клавиатурой. После чего выходим из него по нажатию клавиш с флажками виндовс. Клавиатура в эмуляторе оживает, но лучше перегрузить эмулятор.
Всё это делает работу в ZXMak2 не такой комфортной как хотелось бы. Что заставило меня в очередной раз заняться изучением настроек Unreal'а.
Его главной проблемой является отсутствие эмуляции контролера IBM клавиатуры для Profi. А на стандартной много не наработаешь. После ряда "тыкания туда-сюда", вспомнил, что у Профи все системные клавиш дублированы на стандартной клавиатуре путем нажатия сочетаний клавиш. Экспериментально в ZXMak2 выявил нужные комбинации и прописал их в конфиге для стандартной клавиатуре. Вот кусок конфига:
Так же нужно включить это:Код:[ZX.KEYS.default]
Name=unreal default
; ZX keyboard layout:
;
; 1 2 3 4 5 6 7 8 9 0
; Q W E R T Y U I O P
; A S D F G H J K L ENT
; CAP Z X C V B N M SYM SPC
; KLEFT,KRIGHT,KUP,KDOWN,KFIRE - kempston joystick
; format:
; PC_KEY=[ZX_KEY_SHIFT] ZX_KEY
1=1
2=2
3=3
4=4
5=5
6=6
7=7
8=8
9=9
0=0
Q=Q
W=W
E=E
R=R
T=T
Y=Y
U=U
I=I
O=O
P=P
A=A
S=S
D=D
F=F
G=G
H=H
J=J
K=K
L=L
Z=Z
X=X
C=C
V=V
B=B
N=N
M=M
ESC=CAP 1
;TIL=CAP 1
TIL=SYM A
F4=CAP M
F7=CAP 2
F8=SYM Q
;CAPS=CAP SYM
PGUP=CAP R
PGDN=CAP C
LEFT=CAP 5
DOWN=CAP 6
UP=CAP 7
RIGHT=CAP 8
DEL=CAP G
BACK=CAP 0
;MINUS=-
;PLUS=+
COMMA=SYM N
POINT=SYM M
ENTER=ENT
SPACE=SPC
LB=SYM Y
RB=SYM U
COL=SYM Z
TAB=CAP I ; break
INS=CAP V
HOME=CAP 3
END=CAP 4
QUOTE=SYM P
SLASH=SYM C
;BACKSL=SYM CAP
;SCLOCK=SYM Q
SHIFT=CAP
CONTROL=SYM
;SHIFT=SYM
;CONTROL=CAP
N4=4
N6=6
N8=8
N2=2
N5=5
N1=1
N3=3
N7=7
N9=9
N0=0
NP=SYM M
GRDIV=SYM V
GRMUL=SYM B
GRSUB=SYM J
GRADD=SYM K
GRENTER=ENT
MWU=CAP 7
MWD=CAP 6
JLEFT=KLEFT
JRIGHT=KRIGHT
JUP=KUP
JDOWN=KDOWN
JFIRE=KFIRE
Теперь клавиатура заработает почти как надо. Почти потому что:Код:KeybPCMode=1 ; when enabled, using pc defaults, ex: SHIFT+7 => &
1. Не работают кнопки F1-12 - они заняты эмулятором и не доступны как F кнопки для стандартной клавы.
2. Tab в Write3 делает не отступ 8 символов, а прыгает под начало символов на строке сверху, если строку пустая - ни чего не делает. Оставил так.
3. Не удалось настроить нормальный CapsLock. В спектруме он включает комбинацией "CAP SYM". Но когда прописываешь её в конфиге получаем следующий эффект: первое нажатие наживаем кнопку CapsLock и оставляет её в нажатом состоянии, второе нажатие отключает кнопку CapsLock. То есть для простого включения режима нужно дважды нажать CapsLock, если упустил - клавиатура начинает реагировать неадекватно. По этому отключил её вовсе. Включение режима по нажатию Shift+Ctrl. Не фонтан, но привыкнуть можно.
4. К сожалению не возможны комбинации типа Ctrl+End, Ctrl+home.
5. Ю (SYM+X; SYM+2) и Ч (SYM+A; SYM+h) доступны Shit+2 и Shit+6 соответственно. Э (SYM+S; SYM+d) доступна по "|". В раскладку ЙЦУКЕН перейти нельзя.
6. Insert в Hop Commander'е не работает (и возможно не только в нем). Выделение файлов по пробелу.
7. Остается несколько системных функций которые в реальной машине весят на кнопках F1-12.
7.1. Переключение кодировки KOI8/ALT. На спектруме это комбинация SYM+Q. Повесил на F8.
7.2. F9, F10 - сохранение и выход во Write3. Не смог найти комбинации для стандартной клавы. Можно выполнить через меню.
7.3. Переключение режимов 64/80 символов в строке. На спекки CAP+2 или SYM+I. Повесил на F7.
7.4. Оставшиеся функции не критичны. А для функционала Write3 есть заменители для обычной клавиатуры.
7.5. В Hop Commander'е есть комбинация CAP M аналогичная F4. Работает только в нем, но так как удобно для вызова файла на редактирование, решил внедрить. Для этого команду эмулятора, висевшую на этой кнопке, перевесил на F10.
8. Вызов монитора с Ecs - перевесил на F9. А Ecs настроил работать штатно.Код:main.selectfilter=F10 ; select video filter
Калькулятор настроен на ввод цифр и арифметических знаков. При желании, можно перенастроить на управление в играх (в том числе задействовать дополнительные кнопки), но мне удобнее эта его функция.Код:main.monitor=F9 ; for hackers only
Остальное вроде работает штатно.
Языки русский-английский переключаться по Ctrl+Space.
Если кто подскажет как в Unreal'е запрограммировать нажатие сочетание клавиш (например Ctrl+влево), то можно было бы запрограммировать такие функции в Write3 как движение влево/вправо по словам и т.п.
Свободным остаются кнопки ScrollLock, F11. Дополнительно можно задействовать Тилда, знак в общем не нужный.
F11 лучше не трогать, из-за близости к F12 - сбросу. Если нужно будет их задействовать, функционал сброса лучше переназначить на ScrollLock.
Да и на последок, эта строка установит скорость проца на 15Мгц.
Код:PRESET.PROFI=239616,12580,224,50,28,0,0,0,0,0 ; thanks to DDp
С клавиатурой в Unreal'e вроде разобрались. Теперь попробуем разобраться с крысой.
В CP/M есть две крысы: COM и Кемстон.
С COM крысой скорее всего в эмуляторе ни как. Остается Кемстон крыса.
Я в CP/M с ней дело не имел, пользовался комовской.
Сейчас нашел драйвер который при загрузке выводит "Resident MOUSE driver (c) 2000 by DIAMOND/AREAsoft".
Поле его запуска крыса начинает реагировать на кнопки, но отказываться бегать. При этом каждый раз после возврата из запущенных программ в Hop Commander, курсор немного сдвигается от предыдущего местоположения.
Будут мысли куда рыть? Может у кого есть иные драйвера?
Не стал пока разбираться с мышкой, но заметил следующее. Как было замечено выше, кнопки начинают работать. Но как-то странно это работает. Кликом мышки можно запустить файл, но зппускается вовсе не из под курсора мышки. Курсор мышки (видимый) может стоять между панелями, а "перемещая мышку" можно выбрать файл для запуска. В кавычках написал потому, что видимый курсор при этом осется на месте (или практически не двигается), а предпологаемый все-таки перемещается.
Прошу прощения, а где можно образов накачать?
Вроде бы тут есть - https://zx-pk.ru/threads/2672-cp-m-d...l=1#post732610
Я еще гляну у себя архивы...
От Savelij - https://www.dropbox.com/s/o8ivgsclpc...zip?dl=0&raw=1
От vBv - https://www.dropbox.com/s/i5ngubuf9a...zip?dl=0&raw=1
От SoftStar - https://www.dropbox.com/s/x0kahm18hb...zip?dl=0&raw=1
Эххх, нашёлся бы человек как Максим Тимонин, только по части Профи+, сайт бы замутил... А то весь софт перемешан, везде повторы (в каждой из вышеперечисленных раздач много одних и тех же файлов), никакого каталога софта в принципе не существует :( Для Скорпиона и то дела обстоят много лучше - там всего-то дисков 16 было под CP/M, все сохранились.
Ждём-с!!!
P.S: Я лично переводил многие диски в образы, которые ныне выложены в вышепредставленных сборниках (брал их у счастливых владельцев, у меня ж Профи, увы, отродясь не было) - но тогда проверить их работоспособность я, увы, не мог - ни реального Профи не было, а поддержка Профи в эмуляторах появилась много-много позже... Поэтому очень хочется взглянуть на нечто стройное, разложенное по полочкам и обязательно работающее!
Систематезированно то оно у меня было сразу, файлопомойки не было, я сразу раскладывал по категориям, но потом пошли новые образы тут, их нужно было пересмотреть. + правильно ещё сделать файлами и образами, что бы человек мог быстро образы к эмулю подключить и посмотреть.
Немного подниму тему. Есть ли подвижки в создании систематизированной коллекции дисков для Profi? Про сроки, разумеется, не спрашиваю, понимаю, что процесс не быстрый.
sergiosk, в настоящий момент разобраны все известные коллекция дисков по Профи, программы сохранены по отдельным папкам, частично описаны, частично сняты скриншоты. Но ещё много материала с других CP/M машин, к нему даже не прикасались.
Лучше всего дело обстоит с драйверами, по ним работа завершена на 98%. Что заставило задуматься как же это всё размещать в интернете. Размещение на одно странице в виде таблице, убъёт всю систематизацию и затруднит поиск нужной программы. То есть нужно создавать значительное число тематических страниц, что вручную сделать весь затратно. Я молчу о поддержки этого. Ищем пути решения задачи.
Пока базовый вариант такой: создание мини сайта на базе ВК (https://vk.com/profi1024) с использование wiki страниц. У них простой синтаксис, легко создать скрипты которые смогу его поддержать. Весь материал будет храниться на Яндекс диске. В первой версии планируется ручное размещение автоматически созданных wiki страниц. В перспективе используя API ВК думаю можно полностью автоматизировать выкладку материала. Но всё застряло на уровне идеи, так как времени критинически не хватает.
Я располагаю достаточным временем (и желанием), чтобы предложить помощь в создании полноценного сайта для Profi. Например, на движке WordPress, но не на дефолтных темах и плагинах, а сверстать тему и написать функционал с нуля. Там можно будет и каталогизацию грамотную сделать, и много чего. Вопрос денег, разумеется, не стоит. Готов и сделать, и поддерживать бесплатно. Если у вас есть какие-либо соображения на этот счет, можно обсудить их. Хороший арендованный сервер (виртуальная машина) для размещения сайта у меня есть.
sergiosk, ушло в личку
@tae1980 @Vadim
У нас есть такой сайт, вы знаете его, называется http://vtrd.in
Сайт уже давно вышел за пределы только трдоса, так что для Профи там самое место.
Если бы кто-то прислал систематизированный софт по Профи - было бы замечательно. Предлагается сделать отдельный раздел вида как сделан раздел https://vtrd.in/system.php - то есть сверху большие подразделы, на каждый файл можно сделать краткое описание (вместо текста как сейчас о производителе софта) и справа ссылка на дополнительную страницу со скриншотами/дополнительно инфой, если таковая есть и нужна. Сделаю вот прям сразу за максимум неделю, если дадите нормальные разделенные файлы и описания.
Если кто-то уже делает отдельный сайт - это замечательно, но все яйца в одну корзину лучше не класть. Иначе опять же придётся выкладывать тот "мусор" который тут пролетал по теме, чтобы люди не мучались вопросом, а где взять, а почему нет.
Лично я не возражаю. Но, есть несколько "НО".
Вот тут проблема. Файла рассортированы в довольно сложную структуру, в зависимости от назначения, числа версий, и пр. Всё подчинено идеи: всегда видно минимум файлов и папок, но зная что тебе нужно ты всегда пройдешь по цепочку к нужной программе. Перенос информации в простой список, убъёт 60% удобства поиска. А полностью разрушит систему. Я не утверждаю, что сложившаяся система идеальна, просто я её пользуюсь уже более 20 лет, в том числе на производстве - проблем не было, только польза. Готов рассмотреть альтернативы и к диалогу по вопросу.
В files.bbs описано только ~45% файлов. Нужна дальнейшая работа, на которую пока нет времени.
Почти на все программы есть скриншоты, но они периодически дополняются, меняются, так как текущие делалась в процессе сортировки, как побочное действие.
В качестве больших статей, в 99% планировалось давать хелпы к программа. Благо в CP/M была хоть какая-то культура документирования. Но работа по формированию и т.п. текстов даже не начинались.
К документам даже не прикасался...
Что нужно:
* окончательно устаканить структур хранения и описания программ. Будет сделано по результатам первых попыток формирования материала для выкладивания.
* так как работа требует много времени и сил, она будет проводиться частями. А значит нужен механизм автоматизации выкладывания, так что бы сам процесс не отнимал лишнего времени нужного для разбора архивов. В идеале, запустить скрипт который сам определит, что где изменилось (даже если это была запятая в файле описания), и сам перенёс изменения на сайт. Такой скрипт в начале разработке.
Если в схему впишется выкладывание материала на vtrd, я только "за".
Ты бы хоть показал что ли свои файлы или ббс, чтобы я понимал. Так в общем-то, что ты описываешь, нормально вписывается, как мне кажется. Вариант с каталогами выглядит некрасиво в вебе, ты упаришься ходить внутрь, есть другие варианты организации категорий. Можно в личку.
А можно увидеть по каким критериям планируется сортировка и какие данные присутствуют в описании файлов?
Не совсем понял вопрос.
По поводу критерием сортировки вышел не большой дискус. Думаю мы друг друга услышали, но единое решение так и не принято.
У меня критерии "плавающие" и зависят от конкретной информации. Например: у драйверов _Drivers\_Тип драйвера\Папка драйвера, для языков программирования (может быть) так: _Программирование\Pascal\_Library\ Папка библиотеки. Основа сортировки, назначение программы (информации).
Shadow Maker, предлагает жесткую 2-3 уровненную сортировку. Основа сортировки, устоявшиеся web стандарты.
У меня минимальной единицей является версия программы, она должна содержать следующие элементы (на текущий момент):
* запись с описанием в files.bbs на уровень выше. Сдержит: название программы (стараемся что бы как у автора), имя/ник автора, год создания
* папка SCRSHOTS - скриншоты, набор файлов без вложений и описаний.
* архивы - lzh (желательно), zip (опционно) собственно сама программа. Архивов может быть несколько. Все должны быть описаны в files.bbs
* ReadMy - большая статья. Формат txt или html (пока не решил). Чаще всего инструкция от программы.
* папка IMG - с образами дисков с программой. Один или несколько образов, все описаны в files.bbs
* папка Документы - тут понятно, их может быть несколько, так же все описаны в files.bbs Или ссылки на каталог документов.
* папка Исходники - то же самое.
Все поля не обязательные, кроме архива с программой :)
Уточняю. Некоторые прграммы работают только под определенными конфигурациями железа и софта.
есть программы работающие под:
- определенной версией операционной системы
- определенной конфигурацией памяти или драйверов
- определенным типом экрана (профи версий 3/4/5)
- определенным типом железа (например разная адресация СОМ-порта на плате периферии v5.xx и внешней платой СОМ-порта)
- поддерживающие и неподдерживающие рабту с HDD
и т.д. ...
alvis, Нет, такая информация не планируется.
Во первых, 99% программ работают везде без ограничений. А как выявить остальные просто не знаю.
Для программ типа управления палитрой, комп порта и т.п. понятно, что нужно профильное железо. Случаи конфликта железа, мне не известны.
Знаю 5-7 программ, которые требуют определённую версию системы. Из них только одна программа имеет практическую ценность, и хотелось бы её подправить. Остальные либо устарели, либо имеют иную версию. То есть тут подходи индивидуальный и его легко отразить в описании.
Знаю, что все это не просто. Однако поля под такую информацию предусмореть думаю стоит. В т.ч. что-то типа "дополнительная информация". А со временем, эти поля заполнятся. Надеюсь. Возможно авторы или те, кто владеет точной информацией помогут.
Есть немецкий пакет утилит cpmtools, который позволят работать с образами дисков CP/M из командной строки. Но разумеется он ни чего не знает о образах в формате *.pro.
В наличие есть конфигурационный файл, в котором можно его прописать. Что я и попробовал сделать. Получилось прочитать каталог, скопировать файлы из образа, удалить файл в образе. Но не могу корректно записать файл в образ. Файл пишется, но имеет бешено большой размер.
Исходный описание форматов образов выглядит так
Вот описание образа pro из другой программы.Код:diskdef ibm-3740
seclen 128
tracks 77
sectrk 26
blocksize 1024
maxdir 64
skew 6
boottrk 2
os 2.2
end
Вот что подправил яКод:# PRO (Profi Disk Image, CP/M) - image size strictly (!) 819200 bytes:
# 5 x 1024b sectors, double density, 80 tracks, 4k catalog, 0 system tracks, 16k extents
#
# PROFI_5x1024x2x80= 01010301050050002800040F008E017F00C00020000000
# 0101
# len: $03; // размер сектора 0=128, 1=256, 2=512, 3=1024 - orion(korvet) feature - must be defined!
# den: $01; // плотность (или стороны ?): 0=НДМЮ, 1=ДБЕ - orion(korvet) feature - must be defined!
# sec: $0005; // phisical sectors per track - this and items below are standard CPM features
# trk: $0050; // phisical tracks on disk (one side)
# spt: $0028; // logical sectors (128b) per track
# bsh: $04; // Block Shift - Block Size is given by 128 * 2^(BSH). Here BlockSize=2048
# blm: $0F; // Block Mask - Block Size is given by 128 * (BLM +1). Here BlockSize=2048
# exm: $00; // Extent Mask (0=16k, 1=32k, 3=64k, 7=128k)
# dsm: $018E; // user space size in 2048b blocks = SEC * (TRK-OFF) - (CKS/8)
# drm: $007F; // max quantity of file records (FCBs) in catalog -1
# al: $00C0; // 16-bit Directory Allocation Pattern
# cks: $0020; // Directory Check Sum = catalog size (in logical blocks)
# off: $0000; // system tracks
Получится, что где-то ошибся. но не пойму где.Код:diskdef pro
seclen 1024
tracks 80
sectrk 5
blocksize 2048
maxdir 127
skew 0
boottrk 0
os 2.2
end
Может кто сможет понять где я ошибся?
Дорожек 160 (2 стороны же)
Это софтовый интерлив по сути. Сектра читаются не по порядку, а правильный порядок лежит где-то на системных дорогах.
- - - Добавлено - - -
http://www.seasip.info/Cpm/format14.html
на забугорных железках часто использовали.
Спасибо! Подправил.
Что-то ещё не так....
При попытке записи "AUTOEXEC.BAT" получает размер файла "96 469 120"
https://imageup.ru/img182/thumb/2020...-153554181.jpg
нашел в интернете такое описание в котором есть две необязательные строки. Но самостоятельно понять, что не так не смог.
Код:diskdef name format definition
seclen n 128,256,512,1024,.. physical Sector length
tracks n 1.. Number of tracks = (Cylinders * Sides)
sectrk n 1.. Sectors per track
blocksize n 1024,2048,4096,8192,16384 Block size = (128*(BLM+1))
maxdir n 1.. Number of directory entries = (DRM+1)
skew n 0.. Logical sector skew
skewtab r1,r2,r3,... skew table
boottrk n Number of system tracks = OFS
offset n | nK | nM | nT n Byte|n Kilobyte|n Megabyte|n Tracks
logicalextents Logical extents per physical extent
os 2.2 | 3 | isx | p2dos | zsys
libdsk:format name pcw720, cpcsys
end
Berechnungen:
size := (secLength*sectrk*(tracks-boottrk))/blksiz;
if (extents==0) extents := ((size>=256 ? 8 : 16)*blksiz)/16384; if (extents==0) extents := 1;
Allocatabledatablocks := size-(maxdir*32+blksiz-1)/blksiz);
posix:
physical pos := ((sector+track*sectrk)*secLength)+offset;
win32c:
SetFilePointer := ((sector+track*sectrk)*secLength)+offset;
libdisk:
physical sector := track*sectrk + sector + offset/secLength;
Я с ней никогда не связывался, только параметры тырил. Вроде все правильно. Не знаю, почему так.
Black Cat / Era CG, остаётся одна надежда на то, что бы ты добавил функционал работы из командной строки у себя. :)
- - - Добавлено - - -
Я тут посчитал 96 469 120/127=759 599,37
Можно округлить да 760 000, и что-то мне кажется это подозрительным.... Но вот пока не пойму причину.
Хотя тут я скорее всего притягиваю за уши. Но это уже от безвыходности.