User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 18

Тема: ОРИОН-128: Монитор М3 и ROM-BIOS F800

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    17.07.2013
    Адрес
    г. Курган
    Сообщений
    2,035
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    123
    Спасибо Благодарностей получено 
    171
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ОРИОН-128: Монитор М3 и ROM-BIOS F800

    В Радио 1996-2 была статья "Из опыта работы с "Орионом-128"", там был опубликован драйвер для МС7007 по "Ленинградской" схеме для МОНИТОРа-2, отсканированный текст и оригинал тут: https://yadi.sk/d/jM1-1Z6H32PKUg
    Я вроде все вычитал, особенно коды, но бывает и на старуху проруха!
    Может кто сделает МОНИТОР-3 под ВМ80 и МС7007? Или какой там самый ходовой МОНИТОР?
    Под Z80 и МС7007 всяких МОНИТОРов как грязи, а под ВМ80 только один подкинули
    С уважением, Дмитрий.
    Karabas-Go
    Pentagon-128 вер.2023+Turbo Sound+ZXM-GeneralSound
    ZXM-Phoenix 2048+Turbo Sound+ZXM-GeneralSound+ZXM-SoundCard Lite
    ZXM-Phoenix в Телеграмм

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Монитор под ВМ80 - это М2 из "Радио". Всё имеющееся Орионовское ПО прекрасно работает с ним. Как я понимаю вариант под клаву MS7007 был на базе него.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  4. #3

    Регистрация
    17.07.2013
    Адрес
    г. Курган
    Сообщений
    2,035
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    123
    Спасибо Благодарностей получено 
    171
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, получается что мониторы 3 и выше только под Z80?
    Не помню откуда М3 появился, видимо прийдется опять по всем публикациям рыться, и не факт что он публиковался!

    Пы.Сы. перечитываю тему с самого начала - столько интересного и полезного нашел уже Но почти 170 страниц не просто осилить осмысленно!
    С уважением, Дмитрий.
    Karabas-Go
    Pentagon-128 вер.2023+Turbo Sound+ZXM-GeneralSound
    ZXM-Phoenix 2048+Turbo Sound+ZXM-GeneralSound+ZXM-SoundCard Lite
    ZXM-Phoenix в Телеграмм

  5. #4

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gdv2002 Посмотреть сообщение
    Denn, получается что мониторы 3 и выше только под Z80?
    Под РК'шную клаву есть для ВМ80, но смысла упираться в М3 не вижу вообще. М2 вполне достаточно. Не работать же в этом Мониторе, в конце концов, это просто набор стандартных подпрограмм, который практически не изменился со времён РК86

    П.С. у меня в коллекции есть файл "M41MS.ori" Но чесслово даже пробовать его в Орионе желания нет.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #5

    Регистрация
    17.07.2013
    Адрес
    г. Курган
    Сообщений
    2,035
    Записей в дневнике
    2
    Спасибо Благодарностей отдано 
    123
    Спасибо Благодарностей получено 
    171
    Поблагодарили
    121 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Denn, просто я очень отстал, и не понимаю уже в этой суете, что к чему! Как дособираю Ориона - склею монитор и выложу.
    С уважением, Дмитрий.
    Karabas-Go
    Pentagon-128 вер.2023+Turbo Sound+ZXM-GeneralSound
    ZXM-Phoenix 2048+Turbo Sound+ZXM-GeneralSound+ZXM-SoundCard Lite
    ZXM-Phoenix в Телеграмм

  7. #6

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от gdv2002
    А какой это монитор, 1,2,3 ?
    Это M3-MS7007 самой древней версии (04.1991) для КР580. В нём вообще нет фонта русских букв. Скиньте мне на личку Ваш E-mail и я пришлю Вам точно такой-же M3 для MS7007 и КР580, но с полным фонтом. Причём с исходником.

    МОНИТОРЫ-3 перепутать невозможно. У всех у них без исключения, по адресу 0F842H есть текстовая строка с номером версии.

    Код:
    AF842:	defb	'V3.xx'
    Программы, которым необходим M3, а это M3-EXT, драйверы и расширители М3 проверяют монитор так :

    Код:
    	LD	HL,(0F842H)
    	LD	DE,'3' shl 8 + 'V' 	; можно LD DE,'3V' но не во всех ассемблерах
    	XOR	A
    	SBC	HL,DE			; для КР580: CALL CMPDH
    	JP	NZ,WRONG_MON
    OK:
    К сожалению, для КР580 после 1991 никто серъёзных доработок ROM-BIOS не делал. Если для Z80 есть десятки версий (других, чем в Вашем архиве), то для КР580 альтернативных версий почти нет. Могу прислать Вам МОНИТОР-4 (КР580, МС7007, В.Воронин, Новочеркасск, 1996) и МОНИТОР-2/TDA (КР580, МС7007, Дм.Тупицын, 1992). В обоих подключение клавиатур правильное, т.е совместимое с играми для клавиатур РК.

    Цитата Сообщение от Denn
    смысла упираться в М3 не вижу вообще
    М3 был сделан легендарным программистом В.Ивинских (разработан сказать нельзя, это оптимизация чужого, хотя 30% кода изменено) в январе 1991, одновременно с выходом М2.

    Скрытый текст


    В.Ивинских первым в стране адаптировал ВСЕ игры КООП SP-580 для стандартного СПЕЦИАЛИСТА (в т.числе Jet-Set) и сделал кучу системных программ. За пару дней, даже не имея НГМД, адаптировал для КР580 Manic-Miner от ZX-48. 80% игр сезона 1991-92 составляли игры СПЕЦИАЛИСТА, что были адаптированы им для ОРИОНА. Но самое смешное, что для ОРИОНА он делал программы всего 1 месяц, причём даже не имея личного ОРИОНА. Если бы с такой же эффективностью работали остальные программисты ОРИОНА, то сейчас для него было бы 50 тысяч программ.

    М3 стал известен раньше, чем был опубликован М2. Монитор М2 мы имели на месяц раньше, чем он был опубликован в ж.РАДИО 01.1991. Т.к М3 делал грамотный программист, то за счет более умелого программирования с'экономлено 150 байт (!) при одновременном улучшении параметров подпрограмм. В освободившееся место встроена подпрограмма ввода строки, CCP резидентного монитора и векторизация). К сожалению, не добавлена п/программа инициализации (это сделано в 1995, когда уже не было смысла).

    Что касается версии М3 для МС7007, то она использует совместимую схему включения (что снимает проблему несовместимости с играми для РК-клавиатуры).

    МОНИТОРЫ-3 работают по нажатию клавиш, а не по отпусканию (что в М2 - просто идиотизм, это единственный случай в мире, другого такого нет). Процедура сканирования клавиш в М3 - в 3 раза быстрее (а если бы не было диодов, то было бы в 15 раз быстрее, два считывания - и результат).

    В М3 есть векторизация клавиатурных подпрограмм. Можно загрузить свой драйвер, любой своей клавиатуры (что я и делал загружая драйвер аппаратной клавиатуры APPLE-II, дающей готовый ASCII-код, т.к моя клавиатура от РК86 была низкого качества на кнопках МП16).

    Вывод символов происходит быстрее. Причём выводится символ 6*9, а не 6*8 (отчего маркировка строки инверсией в М2 выглядит глупо, т.к текст не по центру инверсии).

    Смысл М3 был в М3-EXT, т.к тогда почти ни у кого еще не было ROM-дисков, а слово ORDOS считалось матерным. Т.е это даёт возможности МОНИТОРА-1, при сохранении подпрограмм ROM-BIOS от МОНИТОРА-2. Причём набор команд монитора может оперативно меняться - команды подгружаются. Например в 1991 были догружаемые команды HELP (выдает справочник по командам М3-EXT) и два мини-дизассемблера (для КР80 и Z80 запускаемые командой точка '.АДРЕС'). А после загрузки RAMDOS для ЭД, команды монитора также меняются - теперь часть команд для ОЗУ работает иначе: D-DIR, W-SAVE, X-EXE...

    МОНИТОРЫ-3 для Z80 отличаются тем, что у них большой сплошной курсор, не перепутаешь.

    МОНИТОРЫ-3 для Z80 имеют средства для автовозврата по сбросу. Достаточно заменить пару байтов и по сбросу ни в какую ORDOS Вы уже никогда не вернётесь. Будет стартовать тот код, что должен. Например программа "взломщика" или снимок экрана.
    Код:
    COLDST:	LD	HL, (0F3C1H)		; обслуживание автостарта
    	LD	SP, 0F3BFH
    	POP	BC
    	PUSH	HL
    	SCF
    	ADC	HL, BC
    	RET	Z
    Но главное, во всех МОНИТОРАХ-3 есть вектор INTA 0F3DFH, на который загружаются клавиатурные прерывания. Что позволяет иметь в драйверах управление сочетанием клавиш УС+СС + клавиша (удерживая УС и СС нажать клавишу). Тогда драйвер получается универсальным для МС и РК клавиатур, т.е драйверу не надо лезть в матрицу клавиш, чтобы реализовать управление (не занимая кодов клавиатуры). Драйверу и любой программе не надо знать какой конкретно тип клавиатуры у пользователя. От этого CP/M-драйвер получается универсальным. Сочетание УС+СС при М3 работает как одна доп.клавиша АЛЬТ в PC. Например, часто по УС+СС+K переключаются кодировки в драйверах КОИ-8 -> АЛЬТ -> КОИ-7.

    Это даёт как бы кучу дополнительных клавиш, используемых в программах. В некоторых драйверах для банки 2, а впоследствии для ACP/M 1.6x встроен резидентный SHELL. Его работа выглядит так. В абсолютно любой программе (что пользуется для ввода клавиатурой) по нажатию УС+СС + М, в середине экрана открывается окно (объёмом в пол-экрана), включается цвет и Вы оказываетесь в RAM-мониторе с помощью которого можете "шариться" по всем банкам ОЗУ, менять байты. Закончив работу командой 'Q' Вы возвращаетесь в прерванную программу в ту же точку и продолжаете её использовать.

    SHELL имеет оверлеи, которые может загрузить сам пользователь. В частности так грузится справочник по входам ROM-BIOS, по функциям BDOS CP/M, таблица ASCII и вообще любые справочные данные, которые Вам оперативно нужны в ходе работы. Шлите Ваш E-mail адрес - скину скрин-шоты, чтобы увидели как это выглядит.

    SHELL полезен когда дохнет каталог. Без SHELL - ценному листингу в 100 кило на Вашей дискете при дохлоте каталога - "кранты". Все данные пропали.

    Но с SHELL, Вы копируете дисковый буфер 2 Кб, содержащий каталог, ставите новую дискету, ^C, затем 'SAVE 8 DIR.DAT' Затем грузите DU, читаете уцелевшие сектора каталога, пишете их в файл. Из уцелевших секторов и считанного блока в 2К с помощью отладчика компонуете новый каталог. Теперь этот полностью восстановленный каталог можно записать как на обычное место каталога, так и на любой недохлый трек.

    Для начала пробуем восстановить каталог на родном месте. Делаем быстрый формат, чтобы отформатировать каталог. Если это получилось, то с помощью DU.COM просто заносим восстановленный каталог туда, где он и был. И копируем нужный файл на хорошую дискету, а эту дискету сразу выбрасываем.

    Но если трек каталога сдох насмерть, то и это не беда. C помощью DU.COM можно записать каталог в начало любого ненужного трека (например трек 2 (физически это трек 1 сторона 0). Если у Вас нет варианта CP/M не настраивающего формат дискеты по DPB из BOOT-сектора, то надо откорректировать DPB-диска, что находится в байтах 3...1F BOOT-сектора. Надо изменить число системных треков. При этом придётся пересчитать и контр.сумму (это арифм.сумма байтов DPB плюс 66H). Если у Вас нет калькулятора с HEX-режимом, то вручную складывать HEX-числа Вам будет сложно - но простенькая программка в 10 байт сделает это за миг. После изменения DPB любая CP/M ОРИОНА будет читать каталог уже не с 4-го трека, а со 2-го, где Вы и разместили восстановленный каталог.

    Но это не всё. Каталог на новом месте надо откорректировать. Так как номера блоков увеличатся на 2*5/2=5. То есть, во всех экстентах всех файлов надо увеличить номера блоков на 5. Если Вам нужен только один Ваш ценный файл исходника, над которым Вы работали 2 месяца, то достаточно откорректировать только его экстенты с помощью DU.COM. Это делается за 30 секунд труда. После этого Ваш ценный файл можно копировать. Ценные данные спасены.

    Все вышеперечисленные работы, при некотором опыте, выполняются не более, чем за 5 минут. Это небольшая цена, чтобы спасти труд 2-х месяцев работы. Впрочем, преимущества М3 может оценить только тот, кто тратил 10 часов, чтобы из кучи фрагментов на диске восстановить погибший исходник (и это не всегда удавалось целиком).

    Код:
    Отрывки реального кода: 
    
    TXT:    defb    13,10
    defb    'SHELL-EXTENT vers 1.02 loaded at B0: B800..C3FF.',10,24H
    
    BADDRV: RST     18H
    	defb    13,10
    	defb    'RAM conflict with current DRIVER !',13,10
    	defb    'Need free RAM B800...CFFF in Bank 0',13,10,0
    	RET
    
    M80, если строка начинается с цифры или апострофа понимает строку как DEFB, 
    так что DEFB не обязателен. Т.е ниже это реально транслируемый кусок.
    
    TXHELP:	defb    0CH
    
     ' * Резидентный SHELL-MONITOR  V1.03 (12.1990) *',13,10
     
     ' G<адрес> - старт (под)-программы (вып-ся CALL)',13,10
     ' D<нач.адр>,<кон.адр>,<банк> -  дамп памяти ЭВМ',13,10
     ' M<нач.адрес>,<банк> -    модификация ячеек ОЗУ',13,10
     ' F<нач.адр>,<кон.адр>,<байт> -   заполнение ОЗУ',13,10
     ' T<нач.а>,<кон.а>,<адр.цели>,<банк> - пересылка',13,10
     ' P<н.а>,<к.а>,<исх.банк>,<пр.банк>  копир.банок',13,10
     ' X<нач.а>,<кон.а>,<байт>,<банк> -  поиск  байта',13,10
     ' C<нач.а1>,<кон.а1>,<нач.а2> -  сравнение ячеек',13,10
     ' K<нач.адр>,<кон.адр> - подсчет контрольн.суммы',13,10
     ' N<нач.адр>,<кон.адр> -   подсчет  RARITY-байта',13,10
     ' H<число1>,<число2> - выч. HEX-суммы и разности',13,10
     ' Y0/1 - цвет SHELL. E<F> - вызов функц.экстента',13,10
     ' V<мл.нбл:фон,ст.нбл:сим> - цвет в CP/M (или 0)',13,10
     ' ? - вывод этого HLP текста. Q - возврат в CP/M',0
    
    Текст из одного загружаемого экстента справочника.
    
     '        Служебные ячейки ACP/M 1.6X',13,10,10
     
     'RUSLAT  0F30EH   а RUSLAT монитора (F3E5) это LOCK',13,10
     'C_MODE  0F30FH   COLOR FLAG (0-mono, FF-color)',13,10
     'STRLEN  0F310H   длина строки терминала',13,10
     'TKODIR  0F311H   кодировка: К7=0, К8=1, АЛЬТ=2',13,10
     'DUBLFA  0F312H   дубль порта FA',13,10
     'DUBLF8  0F313H   дубль порта F8',13,10
     'IDENT   0F314H   номер др-ра. Ст.нибл: шир.симв',13,10
     'SYSTIM  0F315H   3 байта инкрементa пo STATUS',13,10  ; RANDOMIZE и программный счёт времени
     '@ARDK   0F318H   исходная копия яч. F3C7',13,10
     '@ACOUT  0F31AH   исходная копия яч. F3CD',13,10
     '@AINT   0F31CH   исходная копия яч. F3DF',13,10
     'CHK     0F31EH   к.сумма F318...F31D (+1)',13,10
     'ACPM_F  0DCB7H   опознаватели ACP/M (06,19,92)',0
    [свернуть]


    Резюме. МОНИТОР-3 по качеству и по числу реализованных в нём простейшими средствами идей превосходит МОНИТОР-2 на порядок. Немного утрируя можно утверждать, что по сравнению с М3, М2 - просто "детский лепет".
    Последний раз редактировалось barsik; 08.12.2016 в 04:56.

  8. #7

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    А что не так с сохранением значения RamTOP в системной переменной? "Так" - это как?
    План вполне конкретный и очевидный, имхо. Т.к. ОЗУ для программ пользователя и всяких драйверов в общем-то одно - нулевая страница, то для защиты этих самых драйверов нужен механизм. Собственно он и был придуман: простой и логичный.
    Просто эти механизмы должны быть Ордосе (или другой ОС). Не монитора это дело - знать про то как я буду использовать ОЗУ, которым он сам ну никак не управляет. Соответственно ОС отличающийся от Ордоса (с другой концепцией, хотя и работающей через что-то мониторовское), помощи от этих п.п. никакой, только трата байтов в ценных 2к Монитора. Ну это тоже самое как например Монитор будет "иметь свое оригинальное представление" о том как мне под Юзиксом размещать процессы, ну не его же это дело.

    Собственно, подход "стека", уровней "нарезки" ПО от простого к сложному, от физики/аппаратуры к математическим абстракциям (как например вируализация памяти) - основа разработки всех ОС. Я это подсмотрел еще в детстве (ДВК с ее RT11) в школьном классе с БК-хами, задолго до Ориона, и наблюдаю до сих пор во всех промышленных и бытовых ОС, что имел дело. Когда возникает "смесь" процедур с разных уровней в некоем блоке, это вызывает дискомфорт (приспособиться можно, но зачем?).

    Цитата Сообщение от Denn Посмотреть сообщение
    С Монитором Ориона-ПРО есть одно, но большое счастье - он в природе один единственный! Слава богу, что руки рационализаторов до него не добрались. Хоть тут какая-то стабильность, и при написании софта можно быть уверенным, что не всплывёт какой-то "сюрприз" при обращении к стандартной п/п из-за того, что у пользователя экзотический Монитор.
    Я так понимаю, что он сделан на базе какого-то М3. Так что не удивительно.
    Не, он оригинальный, совместимости с M3 там еще меньше чем с М2. RAMTop они выпилили думаю потому, что набрались практики, изучили "соседние" ОС и пришли к аналогичному выводу о нелогичности этой подпрограммы, при этом искали канлдидатуру на выпиливание (хотя правильно было бы оствить как есть для совместимости, а новое дописывать после "штатных" п\п).
    В M3 кстати не стали писать отсебятину вместо RAMTOP как в ПРО, точка входа есть на своем месте, просто там для экономии места и хоть какой-то совместимости get_RAMTOP возвращает константу, а set_RAMTOP ничего не делает, что дает возможность это обойти при известной ловкости (проверить через get_RAMTOP записалось ли новое значение при set_RAMTOP) - если знать что такое бывает.



    Цитата Сообщение от Denn Посмотреть сообщение
    Я плевался трижды!

    1). Пресловутый RamTOP, причём ладно бы подменили на что-то безобидное, так нет, поставли запись чего-то в произвольную страницу ОЗУ!

    2). Опрос клавиатуры F81Bh работает по-другому. Другие времянки реакции, соответственно при реализации на базе этой п/п своего ввода, курсор мигает по-другому. Зачем?! Потом из-за перехвата невозможно пользоваться комбинацией УС+НР+F4... "Спасибо".

    3). Область непереключаемого ОЗУ: F300..F3FFh. М2 использовал некоторые документированные участки под системные переменные и стек. М3 "решил" оккупировать другие участки, оптом. "Фича" недокументированная, разумеется. ПО, которое использует это бесценное непереключаемое ОЗУ, вдруг "внезапно" портит мониторный опрос клавиатуры!

    Конечно всё решаемо (жопочасами с дизассемблером наперевес), но "за что?" и ради чего, спрашивается...
    Да, я тоже на это же самое наступил. Что говорит о том, что любой прогер боль-менее лезущий в системное, на это наткнется, т.к. опять же хромает идеология построения системного ПО (Монитора).
    Причем что забавно - эта п.п. записи байта из-за того что page_in + page_out кодируются в одном байте (по нибблам) позволяет адресовать через нее максимум 512кб ОЗУ (я могу понять когда аппаратно что-то не реализовано, но когда на ровном месте таки урезки по части ПО, мне не понятно - обычно наооборот "на будущее" оставляют для входных параметров подпрограмм резерв по битам/адресам/страницам).

    И я долго искал как в Режиме-128 опросить отдельно статус CTRL и/или SHITF. В доке есть несколько вариантов через разные новые п.п, в коде - нет ни одного (те п.п. есть, но дико сырые или урезанные). Может конечно плохо искал, но то что описано даже прошагал в эмуляторе (насколько терпения хватило).
    Последний раз редактировалось Error404; 08.12.2016 в 12:27.
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  9. #8

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Arrow

    Цитата Сообщение от Error404 Посмотреть сообщение
    Просто эти механизмы должны быть Ордосе (или другой ОС). Не монитора это дело - знать про то как я буду использовать ОЗУ, которым он сам ну никак не управляет.
    Идейно согласен. Но изначально Орион начинался с М1 и работы с стиле РК86. Драйвера уже появились тогда, и конфликты нужно было как-то разруливать.
    Кстати, этот самый RamTOP не с РК86/Спеца ли присутствует в Мониторе?


    Цитата Сообщение от Error404 Посмотреть сообщение
    Соответственно ОС отличающийся от Ордоса (с другой концепцией, хотя и работающей через что-то мониторовское), помощи от этих п.п. никакой, только трата байтов в ценных 2к Монитора.
    Авторы выбрали концепцию "запихивания" ОС в 2 Кб. При таких жёстких условиях на счету каждый божий байт А в Мониторе как раз дофига свободного места... )))


    Цитата Сообщение от Error404 Посмотреть сообщение
    Собственно, подход "стека", уровней "нарезки" ПО от простого к сложному, от физики/аппаратуры к математическим абстракциям (как например вируализация памяти) - основа разработки всех ОС. Я это подсмотрел еще в детстве (ДВК с ее RT11)
    Это всё прекрасно, но в случае Ориона избыточно, имхо. Универсализация и глобализация - это здорово, но они требуют ресурсов, а Орион это не писи. Собственно, как и Синклер (там вообще в ПЗУ Бейсик! Лол )
    Тут важно вовремя остановиться с наворотами, чтобы они не убили весь смысл ОС на Орионе.
    Разнообразия основного железа (ввод/вывод) не планировалось. "Навески" всякой экзотики всё равно не в BIOS'е поддержаны, а в соотв. ПО пользователя, так что аппаратные абстракции особо и не нужны. Любая универсализация/глобализация отрицательно сказывается на объёме кода и скорости, а это крайне важный момент с ресурсами Ориона, имхо.


    Цитата Сообщение от Error404 Посмотреть сообщение
    Не, он оригинальный.
    Ковырял без малого год назад, с тех пор много байт утекло, в голове уже подробности не вспомню... Но помню, что сперва сексился с М3 на О-128, а потом все те же грабли увидел в Мониторе на ПРО'шке, из чего сделал для себя нехитрый вывод.
    Кстати, мы говорим об одном и том же Мониторе "ПРО" - который появляется в F800..FFFFh в режиме "Orion-128" ?


    Цитата Сообщение от Error404 Посмотреть сообщение
    хотя правильно было бы оствить как есть для совместимости, а новое дописывать после "штатных" п\п).
    Да!


    Цитата Сообщение от Error404 Посмотреть сообщение
    В M3 кстати не стали писать отсебятину вместо RAMTOP как в ПРО, точка входа есть на своем месте, просто там для экономии места и хоть какой-то совместимости get_RAMTOP возвращает константу, а set_RAMTOP ничего не делает, что дает возможность это обойти при известной ловкости (проверить через get_RAMTOP записалось ли новое значение при set_RAMTOP).
    Опять же, видимо в разных версиях по-разному. Или у меня уже перепутались Мониторы М3 от О-128 и ПРО'шный...


    Цитата Сообщение от Error404 Посмотреть сообщение
    Причем что забавно - эта п.п. записи байта из-за того что page_in + page_out кодируются в одном байте (по нибблам) позволяет адресовать через нее максимум 512кб ОЗУ (я могу понять когда аппаратно что-то не реализовано, но когда на ровном месте таки урезки по части ПО, мне не понятно - обычно наооборот "на будущее" оставляют для входных параметров подпрограмм резерв по битам/адресам/страницам).
    Так вроде более 512 Кб ОЗУ и не планировалось. В любом случае, сабж явно для работы с графикой, а она в 0-ой и 1-ой страницах. А в случае с "ПРО" можно втыкать ОЗУ окнами - там вообще без разницы..

    ЗЫ кстати ниббл кодирует 16 страниц, т.е. "метр" ОЗУ


    Цитата Сообщение от Error404 Посмотреть сообщение
    И я долго искал как в Режиме-128 опросить отдельно статус CTRL и/или SHITF. В доке есть несколько вариантов через разные новые п.п, в коде - нет ни одного (те п.п. есть, но дико сырые или урезанные). Может конечно плохо искал, но то что описано даже прошагал в эмуляторе (насколько терпения хватило).
    На "ПРО" я делаю так:

    Код:
    IN 1AH
    ANI 40H
    JZ ...нажат CTRL
    Код:
    IN 1AH
    ANI 20H
    JZ ...нажат SHIFT
    На О-128 "IN 1AH" заменить на "LDA 0F402H" (кстати, на ПРО так тоже прокатит, но на целый байт длиннее ).
    Последний раз редактировалось Denn; 08.12.2016 в 13:27.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #9

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Идейно согласен. Но изначально Орион начинался с М1 и работы с стиле РК86. Драйвера уже появились тогда, и конфликты нужно было как-то разруливать.
    Кстати, этот самый RamTOP не с РК86/Спеца ли присутствует в Мониторе?
    Не знаю, возможно (скорее РК, по требованию редакции Радио ), я под РК86/Спец не программировал, слабо их знаю. А вообще по работам Орион-Софт (авторского коллектива и примкнувших кодеров) заметно что уровень рос, и менялись взгляды на какие-то вещи. Ну это наверное у каждого разработчика так.

    Цитата Сообщение от Denn Посмотреть сообщение
    На "ПРО" я делаю так:

    Код:
    IN 1AH
    ANI 40H
    JZ ...нажат CTRL
    Код:
    IN 1AH
    ANI 20H
    JZ ...нажат SHIFT
    На О-128 "IN 1AH" заменить на "LDA 0F402H" (кстати, на ПРО так тоже прокатит).
    Да, я в итоге тоже пришел к выводу, что "за неимением гербовой пишем на простой" и оставив попытки сделать через монитор, сделал по портам в версии для ПРО, а для О-128 рассчитываю на наличие М3. Ну если нет его, не заработает часть спецкнопок (чрез комбинации клавишь): досадно но не смертельно.

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

    Цитата Сообщение от VladimirS Посмотреть сообщение
    Попрошу без перехода на личности
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  11. #10

    Регистрация
    28.03.2009
    Адрес
    г. Березовский КО
    Сообщений
    98
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    barsik, спасибо за увлекательный материал. Единственный момент - при чтении очень раздражают подобные вещи:

    "что в М2 просто идиотизм"
    "отчего маркировка строки инверсией в М2 выглядит глупо"

    Эти маркеры указывают на посыл автора: "я - Дартаньян, а вы все...".

    Лично я больше, чем уверен, что авторы Ориона делали по-максимуму что могли, на что хватало имеющихся сред разработки и знаний на тот момент.




    Из прочитанного я увидел, что некто поставил себе задачу переписать код Монитора "покруче", совместив примитивный командный интерфейс М1 с некоторыми расширенными возможностями стандарных подпрограмм М2, плюс добавив свои "плюшки", посчитав их архиважными. Ну, что ж, похвально. Только Орион придумали другие люди, и у них было своё видение, которое было нацелено не на работу пользователя с Монитором (в архаичном стиле РК86), а концепт был поинтереснее: ROM-диск + ОС, о чём было ясно сказано в статье про М2.

    Если посмотреть с точки зрения простого пользователя, то ему вообще без разницы какой Монитор стоит в его Орионе, для него главное чтобы работало игровое и прикладное ПО. Если ПО будет требовать для запуска какой-то нестандартный Монитор, то вряд ли юзер будет пользоваться таким ПО - это и есть правда жизни.
    Я хоть и не могу причислить себя к простому юзеру (мне интересно программировать под Орион), но встать на его место вполне способен: так вот, как у пользователя, у меня нужды в мониторе отличном от М2 с 1992-го и до сего года не возникало. Более того, всё орионовское ПО, которое мне попадалось, прекрасно работает с М2, а вот с М3 - увы, есть проблемы совместимости (авторы М3 посчитали ненужными некоторые стандартные подпрограммы и вместо них воткнули свои, с совершенно иным функционалом).

    Скрытый текст


    "что в М2 просто идиотизм"
    "отчего маркировка строки инверсией в М2 выглядит глупо"
    {ворчание удалено Error404}
    [свернуть]
    Последний раз редактировалось Error404; 08.12.2016 в 13:29.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Орион-128: BASIC
    от ivagor в разделе Орион
    Ответов: 34
    Последнее: 05.12.2025, 05:31
  2. Ответов: 506
    Последнее: 15.09.2023, 02:34
  3. Service rom + 128 basic rom
    от VELESOFT в разделе Оси
    Ответов: 1
    Последнее: 24.03.2013, 04:48
  4. ОРИОН 128-продам
    от Nordic в разделе Барахолка (архив)
    Ответов: 23
    Последнее: 23.03.2009, 07:54
  5. Орион-128
    от AlexBel в разделе Барахолка (архив)
    Ответов: 1
    Последнее: 25.09.2007, 20:40

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •