Важная информация

User Tag List

Страница 92 из 120 ПерваяПервая ... 888990919293949596 ... ПоследняяПоследняя
Показано с 911 по 920 из 1199

Тема: Орион-2010. Hard & Soft

  1. #911
    Activist
    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    В Мониторе есть доп. точка входа: 0F834h - загрузка файла по XMODEM, входной параметр - начальный адрес загрузки в регистре HL. Подпрограмма не перепрограммирует порт управления RS-232, т.е. перед ее вызовом можно установить любую скорость порта.
    Примечание (может быть неудобством): подпрограмма рисует "прогрессбар" символами #.
    .
    У меня есть вопросы:
    1. Нет ли ошибки с точкой входа 0F834? В исходниках есть такая справка:

    ;f830 - запрос верхней границы озу пользователя. выход hl=ramtop
    ;f833 - установка верхней границы озу пользователя. вход: hl=адрес верхней границы озу.
    ;f836 - чтение байта из доп. страниц озу. вход: hl - адрес, a - номер доп. страницы
    ;f839 - запись байта в доп.страницу озу. вход: hl - адрес, a - номер доп. страницы

    2.Может все таки расширить количество входных параметров, где можно указывать (помимо адреса) скорость и устанавливать флаг вывода/отключения прогрессбара? Или уже совсем места нет?

    3.
    Код:
     {0..1} 2 байта - адрес передачи управления после загрузки ROM-программы в ОЗУ
     {2..3} 2 байта - адрес начала ROM-программы в ПЗУ (параметр "откуда копировать")
     {4..5} 2 байта - адрес загрузки в ОЗУ (параметр "куда копировать")
     {6..7} 2 байта - количество загружаемых байт (параметр "сколько копировать")
     {с адреса (2..3) и далее} собственно исполняемый/загружаемый код
    - Нововведение с байтами 2..3? Менять его оперативно во флешке все равно не удастся. Тогда зачем? Есть стандартный адрес: 0010Н
    - Последняя строчка. Может быть следует читать: "(16 и далее)-собственно исполняемый/загружаемый код"?

    ---------- Post added at 14:14 ---------- Previous post was at 14:07 ----------

    Цитата Сообщение от pvlad Посмотреть сообщение
    Я об этом еще когда говорил? http://zx.pk.ru/showpost.php?p=277035&postcount=878
    Error404 поддержал! http://zx.pk.ru/showpost.php?p=277168&postcount=881
    А что Евгений? http://zx.pk.ru/showpost.php?p=277093&postcount=879. Чудесно!
    И что оказывается в итоге?
    Так мне никто и не ответил: можем мы загружать в область F800-FFFF что-то другое, или М3.7 припаян будет насмерть! В оригинальном Орионе можно было просто заменить РФ-ку и... "получи партизан гранату"! А здесь как?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  2. #912
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    можем мы загружать в область F800-FFFF что-то другое
    В fullram mode область ПЗУ доступна как обычное ОЗУ, но при этом отключаются все порты, проецируемые на память. Просто отключения ПЗУ не обсуждалось и не предусмотрено.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  3. #913
    Activist
    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    В fullram mode область ПЗУ доступна как обычное ОЗУ, но при этом отключаются все порты, проецируемые на память. Просто отключения ПЗУ не обсуждалось и не предусмотрено.
    Прекрасно! Тогда мы можем реализовать то, что я предлагал в первом абзаце http://zx.pk.ru/showpost.php?p=288642&postcount=900?
    Я процитирую себя, дополнительно, здесь:
    Цитата Сообщение от pvlad Посмотреть сообщение
    Он (Монитор) грузится в F800 и имеет контрольную сумму. Если при последующих Ресетах контрольная сумма подтверждается, то Монитор повторно (при Ресетах) не загружается из ПЛИС, а сохраняется неизменным содержимое в F800-FFFF. Это позволит вместо М3 загрузить свой Монитор со своей контрольной суммой. При этом он не будет перезаписываться М3 из ПЛИС при нажатии кнопки Reset. Чтобы восстановить М3, необходимо будет временно выключить питание-получить сбой по контрольной сумме.
    Так решим проблему приверженности к "своей" версии Монитора. Да и записанный в ПЛИС Монитор не должен быть панацеей на все случаи, а лишь стартовой ступенькой.
    Т.е., если захотеть(?), то мы можем получить следующее, особо не напрягаясь!
    1. При холодном старте грузится то, что делает Error404 - M3 V3.7.
    2. Включаем (не важно кто!) fullram mode и записываем в область F800-FFFF другой код.
    3. Выключаем fullram mode и нажимаем кнопку Reset. Все! Вместо штатного Монитора работает другая программа - сколько бы мы не нажимали кнопку Reset.

    Что для этого надо? В холодный загрузчик Монитора из ПЛИС добавить кусочек кода, который проверяет контрольную сумму области памяти F800-FFFD до загрузки туда Монитора-3 и сравнивает ее с КС в ячейках FFFE-FFFF. Не совпадает (при холодном старте) - загрузить из ПЛИС и передать управление, совпадает - просто передать управление и ничего не грузить.
    Можно не напрягаться и взять за основу (кусочка кода) функцию F82A (CSM) из Монитора.
    Господа Главные конструкторы! Это очень сложно сделать?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

  4. #914
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    107
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    У меня есть вопросы:
    1. Нет ли ошибки с точкой входа 0F834? В исходниках есть такая справка:

    ;f830 - запрос верхней границы озу пользователя. выход hl=ramtop
    ;f833 - установка верхней границы озу пользователя. вход: hl=адрес
    За счет того, что подпрограмма SetRAMTOP (f833) исключена, и RamTop всегда 0BFFFH, сейчас там такой код:
    AF830: LD HL,0BFFFH
    AF833: RET
    XREAD: jr rxfile
    AF836: JP AF968

    Цитата Сообщение от pvlad Посмотреть сообщение
    2.Может все таки расширить количество входных параметров, где можно указывать (помимо адреса) скорость и устанавливать флаг вывода/отключения прогрессбара? Или уже совсем места нет?
    Места нет, подъедаем знакогенератор, пока русские буквы. Попробую в следующем билде.

    Цитата Сообщение от pvlad Посмотреть сообщение
    3.
    Код:
     {0..1} 2 байта - адрес передачи управления после загрузки ROM-программы в ОЗУ
     {2..3} 2 байта - адрес начала ROM-программы в ПЗУ (параметр "откуда копировать")
     {4..5} 2 байта - адрес загрузки в ОЗУ (параметр "куда копировать")
     {6..7} 2 байта - количество загружаемых байт (параметр "сколько копировать")
     {с адреса (2..3) и далее} собственно исполняемый/загружаемый код
    - Нововведение с байтами 2..3? Менять его оперативно во флешке все равно не удастся. Тогда зачем? Есть стандартный адрес: 0010Н
    - Последняя строчка. Может быть следует читать: "(16 и далее)-собственно исполняемый/загружаемый код"?
    Подумалось мне, что иметь возможность настраивать этот параметр не помешает (другие же мы настраиваем). Ничто же не мешает этим вторым параметром указать 0010Н и код размещать по адресу "(16 и далее)".

    Цитата Сообщение от pvlad Посмотреть сообщение
    Так мне никто и не ответил: можем мы загружать в область F800-FFFF что-то другое, или М3.7 припаян будет насмерть! В оригинальном Орионе можно было просто заменить РФ-ку и... "получи партизан гранату"! А здесь как?
    Я точно не знаю как оно реализовано в ПЛИС. Запущу Женин Орион - посмотрю.
    Последний раз редактировалось Error404; 16.06.2010 в 18:35.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  5. #915
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad
    Так мне никто и не ответил: можем мы загружать в область F800-FFFF что-то другое, или М3.7 припаян будет насмерть! В оригинальном Орионе можно было просто заменить РФ-ку и... "получи партизан гранату"! А здесь как?
    Шнур LPT_порт <===>IDC_10_штырьков.
    Заливается цельком весь код ПЛИС. Код ПЗУ находится внутри. Для самостоятельной замены нужен Quartus. Или меня попросить заменить код ПЗУ в прошивке, а вы уже зальете новую.


    Цитата Сообщение от pvlad Посмотреть сообщение
    3. Выключаем fullram mode и нажимаем кнопку Reset. Все! Вместо штатного Монитора работает другая программа - сколько бы мы не нажимали кнопку Reset.
    Неа. Выключаем фуллрам и альтеровское ПЗУ начинает работать "поверх" области памяти ОЗУ, куда вы записывали свой монитор. Результат "подмены" равен нулю.

    Для большей гибкости нужно вводить новый порт, FD. Раскидать биты на системную конфигурацию, типа "отключения ПЗУ only", чегото там еще...
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  6. #916
    Activist
    Регистрация
    18.09.2009
    Адрес
    г.Ногинск, МО
    Сообщений
    246
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    За счет того, что подпрограмма SetRAMTOP (f833) исключена, и RamTop всегда 0BFFFH, сейчас там такой код:
    AF830: LD HL,0BFFFH
    AF833: RET
    XREAD: jr rxfile
    AF836: JP AF968
    Сергей! При моем исключительном уважении к тебе, как профи - это безконтрольная анархия!


    Цитата Сообщение от Error404 Посмотреть сообщение
    Места нет, подъедаем знакогенератор, пока русские буквы. Попробую в следующем билде.
    Пока еще не "обнародован" ни один билд. Все, что ты выкладываешь сейчас - только для ознакомления и обсуждения. Вот когда Евгений прошьет - можно отсчитывать билды. Поэтому надо сделать, как в последний раз! Время еще есть!


    Цитата Сообщение от Error404 Посмотреть сообщение
    Подумалось мне, что иметь возможность настраивать этот параметр не помешает (другие же мы настраиваем). Ничто же не мешает этим вторым параметром указать 0010Н и код размещать по адресу "(16 и далее)".
    Все равно не понимаю логики и практичности. Но, если очень хочется, чтобы был фантик....

    ---------- Post added at 22:45 ---------- Previous post was at 22:12 ----------

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Шнур LPT_порт <===>IDC_10_штырьков.
    Заливается цельком весь код ПЛИС. Код ПЗУ находится внутри. Для самостоятельной замены нужен Quartus. Или меня попросить заменить код ПЗУ в прошивке, а вы уже зальете новую.
    Я это уже знаю. Ты рассказывал раньше.


    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Неа. Выключаем фуллрам и альтеровское ПЗУ начинает работать "поверх" области памяти ОЗУ, куда вы записывали свой монитор. Результат "подмены" равен нулю.
    Фу-ты! Ну, нельзя же так! Я и помереть могу (извините - возраст!) от вскрытия таких тайн. Обидно, когда ты мечтаешь, как дурак, а тут фигак и в остатке... ни-и-и фи-га!

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Для большей гибкости нужно вводить новый порт, FD. Раскидать биты на системную конфигурацию, типа "отключения ПЗУ only", чегото там еще...
    Разумное решение! Сергей, как тебе видится этот порт?
    Евгений, так все таки мы можем ввести порты-дублеры через IN/OUT и решить эту проблему кардинально?
    Если ты чего-то не знаешь, то это не значит, что этого не может быть.

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

  8. #917
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Евгений, так все таки мы можем ввести порты-дублеры через IN/OUT и решить эту проблему кардинально?
    Мыслю на эту тему.
    Совсем несложно снять ограничение "только память" в дешифрации портов F400..F402, F500..F502, F6xx, F76x.
    Порты F800_RAM = xxF8_IO, аналогично F900..FB00. Отключается _RAM -адресация в режиме fullram, остается доступ как IO по упрощенной адресации xxFx.
    Порты FE и FF имеют только IO адресацию.
    Получается примерно так - включение fullram, загрузка монитора, выключение fullram, установка бита порта FD (FD00 ???) для отключения ПЗУ, установка другого бита FD для запрета записи в F800..FFFF
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  9. #918
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    107
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от pvlad Посмотреть сообщение
    Сергей! При моем исключительном уважении к тебе, как профи - это безконтрольная анархия!
    Это решение во всех ленинградских Мониторах-3 уже 19 с гаком лет. И ничего, полет нормальный - все работает как в ORDOS, так и в CP/M. Тогда они на этом что-то съэкономили (предельно упростив п/п Монитора GetRamTop/SetRamTop=F830/F833), а я свои доработки делал на основе их Мониторов-3 (получив исходник дизассемблером, что хорошо заметно по стилю исходного кода), т.к. у них в Мониторах-3 есть предельно удобные фишки (расширения функционала), отказаться от которых я не могу - привык.

    Цитата Сообщение от pvlad Посмотреть сообщение
    Пока еще не "обнародован" ни один билд. Все, что ты выкладываешь сейчас - только для ознакомления и обсуждения. Вот когда Евгений прошьет - можно отсчитывать билды. Поэтому надо сделать, как в последний раз! Время еще есть!
    П/п чтения файла на предмет прогресбара я поправлю. Точку входа для нее придется оставить как есть 0F834 - просто оттого, что таблицу переходов Монитора более уже некуда расширять. Не получится сделать более красиво или логично.

    Цитата Сообщение от pvlad Посмотреть сообщение
    Все равно не понимаю логики и практичности. Но, если очень хочется, чтобы был фантик....
    Очень полезный бантик. Сейчас заранее не известно - достаточно ли будет постоянного оффсета 010h? Не понадобится кому-то разместить код сразу после заголовка (оффсет 08h), или наоборот какой-то информацией расширить заголовок (оффсет более 010h). А то, что изменить ПЗУ F800 сложнее (чтобы исправить этот оффсет 010h в п\п считывания ROM-diska), чем перепрошить FLASH ROM-diska, это мы уже установили.

    Цитата Сообщение от pvlad Посмотреть сообщение
    Разумное решение! Сергей, как тебе видится этот порт?
    Евгений, так все таки мы можем ввести порты-дублеры через IN/OUT и решить эту проблему кардинально?
    В принципе можно, все равно какие там будут биты - Евгению реализовывать, ему виднее. Но у меня вопрос: если берем порт FD - не будет ли проблем с ПО использующим обращения к портам муз. сопроцессора BFFD и FFFD? Тут надо очень аккуратно делать дешифрацию (полную?) и аккуратно программить.
    Последний раз редактировалось Error404; 17.06.2010 в 19:37.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

  10. #919
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Error404 Посмотреть сообщение
    Евгению реализовывать, ему виднее. Но у меня вопрос: если берем порт FD - не будет ли проблем с ПО использующим обращения к портам муз. сопроцессора BFFD и FFFD? Тут надо очень аккуратно делать дешифрацию (полную?) и аккуратно программить.
    Мне это видно как порт FDxx. Тогда конфликтов не будет. Если делать упрощенную xxFD, то косяки пойдут табунами.
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  11. #920
    Moderator
    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,577
    Спасибо Благодарностей отдано 
    61
    Спасибо Благодарностей получено 
    107
    Поблагодарили
    92 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ewgeny7 Посмотреть сообщение
    Мне это видно как порт FDxx. Тогда конфликтов не будет. Если делать упрощенную xxFD, то косяки пойдут табунами.
    Я не догоняю, что ты имеешь в виду.
    FD - это младший байт на ША? Или старший? Если младший, то он дешифрируется одинаково в обоих случаях из команд "OUT 0FBh, a" (формат i8080) и "LD BC, 0xxFDh; OUT (c), reg" (Z80, BC ставится на ША). Причем в первом случае, на ША(8..15) выдается содержимое регистра А. Т.е. комбинации команд

    LD BC, 0BFFDh
    OUT (C), a

    и

    LD A, 0BFh
    OUT (0FDh), a

    дадут одинаковый результат на шине адреса, и приведут к записи в муз. сопроцессор.

    Регистр 0FDh надо в этом случае пользовать очень аккуратно (считать какие битики писать, а какие нет - чтобы не попасть в муз. сопроцессор), либо забыть про муз. сопроцессор. А музыкальные игрушки от ZX, кстати, будут этот регистр сбивать.

    Если это старшая половинка, то к ней не обратиться короткой командой "OUT (0FDh), a" (имеем 2 команды из 5 байт вместо одной двухбайтовой) и почему тогда именно FD? Я подумал было что этот 0FDh, из неиспользуемых портов Орионовского диапазона F8 и выше (уже задействованы 0F8h, 0F9h, 0FAh, 0FBh, ..., 0FEh, 0FFh).
    Последний раз редактировалось Error404; 17.06.2010 в 23:29.
    Лучше сделать и жалеть, чем не сделать и жалеть.

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

Страница 92 из 120 ПерваяПервая ... 888990919293949596 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 22
    Последнее: 06.10.2008, 14:17
  2. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 1
    Последнее: 22.08.2008, 08:56
  3. MAGIC-SOFT
    от White_Hunter в разделе Люди
    Ответов: 2
    Последнее: 21.08.2008, 13:31
  4. soft dt
    от roxx в разделе Софт
    Ответов: 4
    Последнее: 30.01.2008, 18:41

Ваши права

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