У ПРО на 5 МГц на каждое обращение к памяти (но не к портам) добавляется один такт ожидания. Подробные растактовки здесь
Вид для печати
У ПРО на 5 МГц на каждое обращение к памяти (но не к портам) добавляется один такт ожидания. Подробные растактовки здесь
Это очень странно. По логике и истории орионостроения должно бы быть наоборот (т.е. вейтить тормозные порты ВВ55 из которых на 5М не работало процентов 30-40, а не РУ7 - рекомендованные для ПРО серии в этом не нуждаются, после отбора они и в ТурбоXT работали {over 8MHz}, в редких случаях ОЗУ нужна "стабилизирующая" сдвигающая цепочка как в доработке ПРО). Даже РУ5 на 5МГц работают (не все буквы конечно, но те буквы уже по сути отбраковки), 5М без wait в 90-х было немало Орионов, грелись правда как утюги (из-за зачастую двойной выборки ВГ), но то такое.
Могу только предположить, что это связано с тем, что у z80 в циклах обращения к портам и так уже есть дополнительный такт (по сравнению с обращением к памяти). Наверно посчитали, что этого достаточно для 5 МГц.
Заменил эксолон на доработанную версию.
Всем привет. Собрал контроллер HDD (плата IDE-RTC) для "Орион-Про". Тестирование проходит, при выборе в меню "Орион-Про" считывается начало диска в область с 0xB000. Нужен образ HDD (простой бинарный дамп с диска), который можно записать на диск и загружиться. Если у кого-нибудь есть такой образ - поделитесь, пожалуйста.
Есть вот такой образ:
https://drive.google.com/file/d/0B3S...ew?usp=sharing
в эмуляторе работает. Я даже загрузил бессмертную Nether Earth и чутка погонял :)
пробовал с BIOS ROMx-321
Огромное спасибо! Залил образ на CF - сразу без проблем загрузился и определились часы, которые не определялись при загрузке с дискеты. Altair DOS заинтересовал, есть ли по нему информация для пользователей и программистов?
Игры не работают, но у меня ещё сам компьютер нужно исправлять.
Кстати, то, что сам DOS пишет текст красным цветом на чёрном фоне - нормально? Сперва, при загрузке, SELECT BOOT PARTITION пишется белым по синему, а потом счётчик памяти и всё, что дальше - красным по чёрному. Трудно читать, хотя, подозреваю, у меня проблемы с видеосистемой...
Описания есть тут, кое-что есть по системным вызовам (как базовой CP/M так и Альтаир-Дос):
https://github.com/serge-404/AltairDOS/tree/master/man
Сама ветка ОС:
https://github.com/serge-404/AltairDOS/
там если смотреть от начала ветки - лежат исходники ОС, а уже в подкаталогах драйвер (через него ОС делает вывод на экран, ввод с клавиатуры, часы, обработку прерываний), приложения, описания. Большая часть приложений с исходниками, которые могут быть использованы как пример прогрммирования.
Нет, цвета несовсем правильные.
Загрузка ОС (выбор загрузочного раздела где может быть до 4 primary MBR разделов) должен выводиться "белым по синему" если загрузка из режима ПРО и "зеленым по черному" если загрузка из режима Орион-128(из MBOOT$). Т.к. начальный загрузчик MBR (в котором меню партиций) и загрузчик из bootsector-а ОС (в котором счетчик секторов) настройку порта цветности никак не меняют - работают тем что уже было установлено.
Счетчик памяти всегда "зеленым по черному", т.к. первое что делает вторичный загрузчик это сброс регистров номера экрана и режима цветности (в монохром):
XOR A
OUT (PF8),A
OUT (PFA),A
После загрузки ОС в конце config.sys командой "COLOR 0 0" тоже ставится режим цветности "монохром" и всё должно отображаться "зеленым по черному". Команда NC (коммандер) должна нарисовать бело-синие панели с зелено-черной строкой подсказки и строкой команд. Можно поэкспериментировать в ОС с командой
color цвет фон
color 4 15 ; красным по белому
color ; обратно в монохром
Скрытый текст
Код:Код цвета Цвет
0 черный black
1 голубой blue
2 зеленый green
3 синий cyan
4 красный red
5 малиновый magenta
6 коричневый ?? brown
7 белый white
8 серый gray
9 светло-голубой lightblue
10 светло-зеленый lightgreen
11 светло-синий lightcyan
12 светло-красный lightred
13 светло-малиновый lightmagenta
14 желтый ?? yellow
15 интенсивно-белый brightwhite
[свернуть]
Может кто подскажет, под Орион-ПРО драйвера для принтера существуют в природе? от Ориона-128 они я так понимаю не подойдут на прошку, схемы подключения принтера ведь разные...
А что, натурально будет принтер подключен? Они еще встречаются живые? :) А какой?
К разным принтерам теоретически драйвера разные. Если порт принтера известен и использоваться принтер будет в CP/M, то драйвер принтера можно сделать легко самому - там ведь всего-то задача взять с вектора CP/M байт и кинуть в порт, и в обратку через другой вектор транслировать статус BUSY. К примеру в Альтаир-дос это можно сделать из драйвера из примера в описании (в конце статьи) - в примере он подзвучивает вывод символа в консоль сидя на векторе CONOUT, и надо пересадить его на LPTOUT (константу поправить), добавить по аналогии LPTSTATUS и поправить целевую подпрограмму на IN/OUT с соответствующим портом. Если нужна перекодировка, то тут уже надо добавлять таблицы.
Да, хочу принтер подключить:) Попался мне в руки наш струйник MS6312 https://red-innovations.su/index/photos_c/6312.html
Восстановил его. Пришлось микруху заменит 580ГФ24 и кондеры по питанию высохли, пульсации дикие были. Доработал для установки печатающих головок от HP 51604A. Вроде завелся, в автономном режиме тестовую страницу печатает. Принтер прикольный, такой компактный и печатает прилично, я думал будет хуже.
Подключил его к прошке как рекомендуют, интерфейс типа CENTRONIX (ИРПР-М) Нашел к ORDOS программку Print Master с драйверами принтера (описана в журнале Радио №10-11 1993г.) Попробовал что-нибудь распечатать и тишина..
В прошке известны:
01H - данные принтера, инверсные (запись);
02H - управляющие сигналы принтера (чтение, запись);
03H - регистр управления для портов 00H..02H;
А в драйверах к программе Print Master используются порты F601, F602, F603. По идее должно работать на Орионе-ПРО ?
Сначала бы убедиться, что сам принтер полностью рабочий, может в нем еще что-то полетело… Видимо придется разбираться с логикой работы и тестовую программку какую-то писать и отслеживать сигналы на разъеме принтера. Это уже сложней )))
Дима, привет. Нет, не будет работать. В ПРОшке адресация портов по IN/OUT, а порты F60x в О-128 адресуются, как память (LDA/STA).
Можно попробовать дизассемблировать драйвер и переделать под ПРО. Только ещё надо бы как-то понять, так ли устроен порт на битовом уровне, и что за "инверсные данные" в описании порта 01h ?
Что за ПринтМастер? Если это что-то самодельное радиолюбительское из Ордос, то к такому понятие "драйвер" обычно малоприменимо - там все обычно шарашит прямо по железу. В лучшем случае как драйвер может быть отдельно выделенный/подгружаемый кусок кода, для разных принтеров отличающийся, но такое обычно авторами не документировалось и если не лень и надо сделать аналогичное для неподдерживаемого принтера (и не дай бог с графикой), то дизассемблер в помощь (чтобы узнать чего оно делает в своем оригинальном "драйвере") и датащиты на принтер (чтобы понять к какому виду надо приводить оригинальный протокол). Это в общем виде. Что до конкретного принтера, то он достаточно древний чтобы быть поддержанным "искаропки" если повезет. :)
Привет! Плохо, что придется переделывать… По идее порт принтера Орион-ПРО должны были сделать совместим, с портом принтера Орион-128. Тем более уже существовал софт от Орионсофт.
По поводу инверсии, я думаю это связано с инверторами на выходах 580ВВ55, у принтера в моем случае на входе также установлены инверторы посмотри схему в архиве по ссылке, которую я приложил ниже для kovdry. Тут видимо придется экспериментировать с драйвером, может придется данные инвертировать, надо разбираться.
Нашел описание подпрограммы PRINT, надо попробовать хоть один символ вывести на печать. Если заработает, придется разбираться и адаптировать имеющийся софт для работы с принтером.
Подпрограмма PRINT (0F821H) предназначена для обслуживания печатающего устройства и выполняет две функции.
Если входное значение регистра A=0, то подпрограмма PRINT выводит символ с кодом, указанным в регистре C, на печать. В регистре A на выходе возвращается байт состояния печатающего устройства со следующими значениями битов:
D0 – отсутствие бумаги в принтере,
D1 – признак ошибки ERROR,
D2 – признак отсутствия готовности BUSY,
D3..D7 – нули.
Таким образом, признаком готовности принтера является выходное значение A=0.
При входном значении регистра A=1 подпрограмма PRINT выдает байт состояния принтера (как и при печати символа).
Print Master под ORDOS с драйверами принтера в виде отдельных файлов под названием LPT (описана в журнале Радио №10-11 1993г.) Разработана фирмой «ОРИОНСОФТ» программку приложил в архив к сообщению в папке USER2.
Там ничего сложного, для головки от HP надо повысить напряжение. Кто-то пишет необходимо увеличить напряжение до 24V, в брошюрах в архиве написано до 23V. Не стал рисковать, у себя пока сделал 23V. Дополнительный стабилитрон между точек 1 и 2 по описанию в листках не стал устанавливать. Заменил стабилитрон на Д814Д, и подрегулировал напряжение подстроечным резистором. В инете есть информация.
Ссылка на архив https://dropmefiles.com/dotwS
На днях обзавелся матричным EPSON LQ-630, работает, имеет параллельный порт. Прям даже интересно его куда-нибудь присобачить. Вот только Far Cry 6 и Elite Legend всё время свободное отнимают :)
https://i.ibb.co/C2SGHGn/Orion-PRO-Print.png
В принципе, в выводе байта на принтер нет ничего сложного, на сколько помню, если без анализа всех сигналов от принтера:
1) Ждем пока BUSY упадет в "0"
2) Выставляем байт данных
3) Формируем Strobe
4) Ждем от принтера ASK
5) Убираем strobe
6) Повторяем, пока есть, что слать.
Помню, что можно было упростить и вместо п 3,4,5 просто сформировать Strobe определенной длительности ( 100 мкс, например)
Что меня смущает, это то, что в Орионе на выходе порта стоит инветор с ОК, это нормально, но отсутсвтуют резисторы подляжки к +5. Я могу и ошибаться, но когда я разбирал плату мультикарты (были такие с портами COM|LPT|IDE для PC) я там видел и резисторы подтяжки и маленькие емкости, типа 1n на землю на каждом выводе данных, видимо, для гашения выбросов.
Имхо, всё не так сложно, как кажется.
Не знаю почему, но мне кажется, что если просто выводить на принтер ASCII-коды, то он будет их распечатывать в текстовом виде, безо всяких драйверов.
По крайней мере было бы странно, если это не так, кмк.
Надо попробовать на живом принтере)
Ну да, @Denn, должен. Я посмотрел, похоже он и по камандам обычный Epson совместимый принтер. Единственное, на что нужно обратить внимание, что он может работать как в режиме ИРПР, так и ИРПР-М (Centronics), в инструкции написано где перемычку поставить, ну @Дмитрий2012 и так это уже сделал. Подтягивающие резисторы на стороне принтера установлены. То что у принтера на входе инверторы, думаю не важно, раз он Centronics совместим, значит софт принтера учитывает эту инверсию. На стороне Ориона, надо учитывать наличие инверторов и перед выводом данных в порт ВВ55, инвертировать байт данных.
А вот код для печати на принтере, как вы думаете, где я его взял?
Код:PORT_01_PRNT_DAT EQU 0x01
PORT_02_PRNT_CTL EQU 0x02
PORT_03_CTL EQU 0x03
; Программирование портов ВВ55
LD A,0x98
OUT (PORT_03_CTL),A ; DIP SW, PRINTER
; ----------------------------------------------
; Печать
; Вход:
; 1. A !=0 - чтение статуса PRINT
; 2. A = 0 - печать символ
; C = символ для печати
; Выход:
; A = 0 - символ принят
; A != 0 - принтер не готов
; D0=1 - неисправность (ERROR)
; D1=1 - занят (BYSY)
; ----------------------------------------------
AND A
JR Z,WPRT1
STATU
PUSH BC
LD B,0x5
NOP
IN A,(PORT_02_PRNT_CTL)
RLCA
RLCA
RLCA
XOR B
AND 0x7
POP BC
RET
; ----------------------------------------------
; Печать символа из регистра С
; ----------------------------------------------
WPRT1 PUSH BC
PUSH DE
PUSH HL
WPRT2
CALL STATU
JR NZ,WPEND
LD A,C
CPL
OUT (PORT_01_PRNT_DAT),A
LD A,1 ; STROBE -\_
OUT (PORT_02_PRNT_CTL),A
NOP
NOP
XOR A
OUT (PORT_02_PRNT_CTL),A ; STROBE _/-
CALL STATU
WPEND
POP HL
POP DE
POP BC
RET
Скрытый текст
Ну да, это код той самой подпрограммы BIOS Ориона 0xF821 (PRINT), ничего сложного и необычного.[свернуть]
Romych, команда CPL как бы намекает на пред-коррекцию в виде инверсии данных. Но с другой стороны, Дима писал про то, что внутри принтера также есть инверсия сигналов ШД, стало быть в итоге до мозгов принтера данные доходят в прямом виде. Не понятно.
В любом случае, вышеприведённый код показывает, что "драйвер" просто закидывает байты в интерфейс, и никаких преобразований кроме инверсии там нет.
В общем, сваять такой драйвер на ассме под конкретную ситуацию (платформу, ОС и т.п.) - дело пяти минут :)
Скорее всего любой принтер с печатью под DOS должен подойти ,HP 5L 6L и подобные ,не только матричники и струйники .
Дмитрий2012 поднял интересный вопрос - отличия околоотечественных (российских/украинских/белорусских) клонов z80 от оригинала. Набросал тестик, Дмитрий проверил на реале (за что ему большое спасибо!) и оказалось, что есть отличия во флагах после outi. У Дмитрия Thesys Z80H, если у кого-то есть другие наши клоны z80 или U880 (которые скорее всего совпадают по флагам), а также возможность и желание проверить на реале, то я выложу тест. Тест для практически любого варианта cp/m, в принципе подойдет не только про, но если другой комп, то надо уточнить какой, чтобы out не попал во что-нибудь жизненно-важное.
Оставлю здесь, может кому пригодится. Просмоторщик картинок с ZX Spectrum и AY Player с поддержкой файлов формата .pt2, .pt3 и .pt3 Turbo Sound. Работают только в SDOS c поддержкой HDD.
https://youtu.be/vam6301AQxc
Может кому пригодится. Нашел все-таки софт и драйвер принтера для Орион-ПРО. Программа находится на диске в USER1 и называется PM (Print Master V1.0). Как написано в описании работает только в OSDOS не ниже V2.6Х в первой странице ОЗУ.
Теперь имея нормальный драйвер, думаю и к ORDOS-совскому софту получится его прикрутить.
Добавил программу PRINT MASTER под ORDOS c исходниками драйверов принтера для Орион-ПРО. Проверено в работе с принтером MS6312.
а где можно посмотреть как подключен TURBO SOUND ?
Насколько я знаю для Ориона никто карты с Turbo Sound не разрабатывал, видимо никому не интересно. Поэтому приходиться подключать внешние карты вместо AY.
Я попробовал 2 варианта, и оба вроде работают, но никакой гарантии не дам, что у других заработает.
1 - карта AYX-32 https://zx-pk.ru/threads/24285-orion...l=1#post915982
2 - карта Turbo Sound FM PRO http://www.nedopc.com/TURBOSOUND/ts-fm-pro.php
https://pic.maxiol.com/thumbs2/16769...20.turbofm.jpg
т.е. надо просто взять turbo sound и воткнуть вместо ay. AY Player уже учитывает порты по которым идет обращение ко второму Ay или надо еще какието железные правки вносить ?
автор этого треда выкладывал исходники в этом сообщении https://zx-pk.ru/threads/24285-orion...l=1#post755286
как водится, за давностью времени, по ссылке ничего не открывается.
остался ли у кого-нибудь архив, выложенный автором? поделитесь пож.
Видимо, вот это:
https://disk.yandex.ru/d/8Ku_jZqWreTDtw
ссылка на "orion_soft.7z":
https://disk.yandex.ru/d/qJqMrG0WZHVZaw
ссылка на архив cd-rom Вячеслава Сугоняко:
https://disk.yandex.ru/d/HbwS4X600h1FbQ