User Tag List

Страница 3 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 21 по 30 из 61

Тема: Коммандер.

  1. #21

    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,202
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    397
    Поблагодарили
    171 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx
    Там можно BREAK нажать (при выборе дисковода), и попасть в файловую панель.
    Вот оно что, - сказывается отсутствие инструкции.

    Цитата Сообщение от CPLx
    А надо как? Сообщение "нет диска" и возврат в файловую панель?
    Я, конечно, не могу претендавать на истину в последней инстанции, но выход на пустую файловую панель мог бы быть полезен с целью вызова дискового доктора для восстановления позже вставленного поврежденного диска, либо форматтера - для форматирования дискеты. Важнее после ситуации "No disk" снимать выбор дисковода. Помнится, были обсуждения, как это сделать: http://www.zx.pk.ru/showthread.php?t=5884 и http://www.zx.pk.ru/showthread.php?t=5498


    Цитата Сообщение от CPLx
    <C>-файл запускается при CLEAR 65535 командой для TR-DOS: RANDOMIZE USR 15619:REM:RUN "FILENAME"CODE
    Это в корне не верно. Во первых, адрес RAMtop надо выставлять адрес загрузки минус один, а не равный 65535; ещё лучше, как я уже писал, запрашивать его у пользователя. Во вторых, кодовые файлы нельзя запускать командой TR-DOS RUN...CODE, так как она содержит грубую ошибку. И, в третьих, как я уже посмотрел, в TFC производится запуск команды TR-DOS через точку входа 15619 (с подменой адреса системной переменной CH_ADD (23645)), а это не лучший способ. Поэтому и не запускается игра CRIME SANTA CLAUS от FFC & Softstar (там неправильно организованы данные). Гораздо лучше, если в области BASIC-программы сгенерировать такую программу на BASIC и передать ей управление:
    Код:
    Для запуска <C>-файлов:
    
    1 CLEAR VAL "00000" : RANDOMIZE USR VAL "15619" : REM : LOAD "filename"CODE 11111
    2 RANDOMIZE USR VAL "22222"
    
    где вместо 00000, 11111 и 22222 соответственно подставляются: адрес RAMtop, адрес загрузки и адрес запуска.
    
    
    Для запуска <B>-файлов:
    
    1 CLEAR VAL "65367" : RANDOMIZE USR VAL "15619" : REM : RUN "filename"
    Цитата Сообщение от CPLx
    Если делать свой загрузчик, то первый вопрос: где его разместить? А то ведь и прямо на него грузануть можно.
    В описанной выше методике никакого кодового загрузчика нет - всё делает "настоящая" BASIC-программа. Важно только ее правильно сгенерировать и запустить. Кстати, помнится в стареньком буте от Николая Родионова, ничего не генерируется, а используется строчка из BASIC-загрузчика бута.
    Если же хочется использовать кодовый загрузчик, то лучшее место для него в области 23464...23551 (#5BA8...#5BFF). Там он не конфликтует с переменными BASIC 128 и повреждение его невозможно, так как загружаемые системные кодовые программы не должны иметь такой низкий адрес загрузки.

    Цитата Сообщение от CPLx
    Честно говоря, я вообще в этом слаб. ... Если знаете причину, то, пожалуйста, напишите. А то я весь день убью на её поиски.
    2 CPLx:Ну, помочь-то я всегда готов.
    Описанные выше методики мной использовались в GRAND'S BOOT V 2.1 и V2.2DS. Если интересно, могу через некоторое время предоставить комментированные исходники. Кстати, исходники GB V2.2DS уже давно не секрет: они выложены на ZX Open Source.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  2. #22

    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    14,289
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    202
    Спасибо Благодарностей получено 
    1,456
    Поблагодарили
    946 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Во первых, адрес RAMtop надо выставлять адрес загрузки минус один
    меня всегда мучил вопрос ' а зачем -1' ??? а не адрес загрузки ??? стек ведь опускается от указанного адреса. и чем чреват запуск кода через RUN (то есть с адреса загрузки) если возврат в бейсик не планируется ?
    Последний раз редактировалось goodboy; 26.03.2008 в 23:26.

  3. #23

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    193
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Важнее после ситуации "No disk" снимать выбор дисковода. Помнится, были обсуждения, как это сделать: http://www.zx.pk.ru/showthread.php?t=5884 и http://www.zx.pk.ru/showthread.php?t=5498
    То есть надо глушить дисковод? А я специально убрал эту фичу, потому что думал что она во-первых не нужна, во-вторых Спектакалькулятор с ней подглючивал слегка. А так раньше дисковод вырубался почти после каждой операции с диском. Помню каталог читался, и сразу вырубался.

    Про запуск программ позже посмотрю что там. Я ламер в ПЗУ и запускать бейсик программы из кодовых не умею.

  4. #24

    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,202
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    397
    Поблагодарили
    171 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от goodboy
    меня всегда мучил вопрос ' а зачем -1' ??? а не адрес загрузки ???
    По адресу, заданному в команде CLEAR система Spectrum BASIC помещает маркёр "конец системной области", ниже будет размещен стек GOSUB, и еще ниже машинный стек Z80.

    Цитата Сообщение от goodboy
    и чем чреват запуск кода через RUN (то есть с адреса загрузки) если возврат в бейсик не планируется ?
    Мы не знаем, какую программу захочет запустить пользователь, поэтому должны предусмотреть все варианты.

    Цитата Сообщение от CPLx
    То есть надо глушить дисковод?
    Работающий без диска дисковод - совершенно ни к чему. Процедура снятия выбора с дисковода в Beta Disc Interface - одна из важных дисковых процедур.

    Добавлено через 22 часа 46 минут
    Цитата Сообщение от CPLx
    А так раньше дисковод вырубался почти после каждой операции с диском.
    Это нужно делать только в случае No disk. Если диск в дисководе - он сам остановится.
    Последний раз редактировалось Grand; 28.03.2008 в 03:39. Причина: Добавлено сообщение
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  5. #25

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    193
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал некоторые изменения, предложенные Grand'ом.

    - Написал документацию в MS Word.
    - Изменил цвет курсора и файлового окна. Должно быть лучше видно на монохромном мониторе.
    - Вьювер: счетчик процентов переключается в 100% при окончании текста.
    - Вьювер: можно смотреть тексты со строками оканчивающимися на #0A.
    - Сделана поддержка односторонних дисков. Коммандер может (???) запускаться с них (правда в Spectaculator и в EmuZWin не запускается), копировать на них/с них файлы, уплотнять и т.п. НЕ может: форматировать одну сторону, потреково копировать односторонние диски.
    - При завершении некоторых дисковых операций происходит принудительное выключение дисковода.

    Не сделано:
    - Режим 8х8 во вьювере.
    - Во вьювере в конце текста по прежнему отображается мусор.
    - Во вьювере нельзя выбирать кодировки (есть только cp866).
    - Не исправлено сообщение Nonsense in BASIC при старте кодового файла.
    - Не менял процедуры старта файлов.

    Почему не сделано: нет памяти. У меня осталось 86 байт. Посмотрю что можно сделать с запуском файлов, может и поместится (если убрать старую процедуру). А выбор кодировок почти нереально уместить.
    Последний раз редактировалось CPLx; 02.04.2008 в 13:09.

  6. #26

    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    5,213
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    706
    Спасибо Благодарностей получено 
    1,644
    Поблагодарили
    572 сообщений
    Mentioned
    50 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    CPLx, ты бы весь лог (изменения в версиях) и сами новые версии выкладывал в первом посте. Так будет проще искать!
    С уважением, Станислав.

  7. #27

    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,202
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    397
    Поблагодарили
    171 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx
    - Изменил цвет курсора и файлового окна. Должно быть лучше видно на монохромном мониторе.
    Беда с этим курсором. Всё равно его плохо видно на ЧБ - приходится добавлять яркость.
    Может быть выделить в первом секторе командера (подобно тому, как сделано разрешение на Pentagon 1024), специальный байт, куда бы пользователь заносил желаемый атрибут курсора?

    Цитата Сообщение от CPLx
    Почему не сделано: нет памяти. У меня осталось 86 байт.
    Жаль, что не осталось памяти. Я тут подготовил еще пару "советов". Ни на чём не настаиваю - это только моё видение ситуации, и с этим можно не соглашаться, но в своих программах я это реализовывал.
    • выход из командера, на мой взгляд, надо производить не через нулевой адрес ПЗУ (рестарт), а через стандартную процедуру обработки ошибок системы ZX Spectrum, адрес которой на дне машинного стека ещё до запуска командера. Недостаток - если этот адрес был испорчен, то вместо возврата произойдёт неизвесто что; достоинство - если адрес не испорчен, возврат произойдет в ту среду, откуда загружался комадер: из BASIC 48 - в BASIC 48, из BASIC 128 - в BASIC 128 (при условии, конечно, если системные области командером не портятся).
    • командер работает "беззвучно" - не хватает какой-нибудь звуковой процедуры, вызываемой при нажатии на клавиши.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  8. #28

    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,202
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    397
    Поблагодарили
    171 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation Проблемы

    При операциях копирования на Скорпионе может быть испорчена 8-я страница памяти, что приводит к неработоспособности как теневого монитора, так и запускаемых программ, использующие вызовы RST 8. Кроме того, если на Скорпионе используется MagOS, то не должна портится еще и 15-я страница.

    Вторая проблема проявляется только при работе с дисководами 5,25" и только в версии командера 02. Пробовались "Эл-ка МС 5305" и "Эл-ка МС 5350". Попытаюсь описать, как это происходит. При просмотре картинок/текста, обычно если файл записан на второй половине диска, довольно часто при повторном вызове просмотрщика картинок/текста, показывается не то что должно (похоже дисковод не позиционирует правильно и сектора грузятся не от туда). Причем, ситуация может "чередоваться": при первом вызове просмотрщика показывается то что надо, при втором - какие-то случайные сектора, при третьем - опять всё правильно, при четвертом - те же сектора, не имеющие отношения к просматриваему файлу.
    На дисководах 3,5" это не проявляется (пробовались тоже два разных дисковода на двух разных ZX-клонах - Himac HR42 48K и Scorpion ZS 256).
    Может быть это связано со вставкой процедуры останова дисковода, а может быть диск ошибочно принимается за односторонний.
    И еще. Наверно важнее было бы сделать выключение дисковода при копировании, когда выдаётся запрос на смену дисков, а то сейчас приходится дожидаться, когда он сам остановится.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

    Grand's - сайт об электронно-вычислительной технике (зеркало)

  9. #29

    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    193
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    125
    Поблагодарили
    68 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Беда с этим курсором. Всё равно его плохо видно на ЧБ - приходится добавлять яркость.
    Может быть выделить в первом секторе командера (подобно тому, как сделано разрешение на Pentagon 1024), специальный байт, куда бы пользователь заносил желаемый атрибут курсора?
    Можно сделать setup при старте коммандера, чтобы в нём выбирался цвет курсора, заодно и Pentagon 1024.

    Цитата Сообщение от Grand Посмотреть сообщение
    Жаль, что не осталось памяти. Я тут подготовил еще пару "советов". Ни на чём не настаиваю - это только моё видение ситуации, и с этим можно не соглашаться, но в своих программах я это реализовывал.
    • выход из командера, на мой взгляд, надо производить не через нулевой адрес ПЗУ (рестарт), а через стандартную процедуру обработки ошибок системы ZX Spectrum, адрес которой на дне машинного стека ещё до запуска командера. Недостаток - если этот адрес был испорчен, то вместо возврата произойдёт неизвесто что; достоинство - если адрес не испорчен, возврат произойдет в ту среду, откуда загружался комадер: из BASIC 48 - в BASIC 48, из BASIC 128 - в BASIC 128 (при условии, конечно, если системные области командером не портятся).
    • командер работает "беззвучно" - не хватает какой-нибудь звуковой процедуры, вызываемой при нажатии на клавиши.
    Про выход: у меня уничтожается стек BASIC. Переменные вроде не портятся.
    На счет звука не знаю. Там будет подтормаживание при скроллировании файлов скорее всего. Тем более я не люблю звуки. Думаю можно сделать, должно поместиться. А сетапом вырубать, чтобы не раздражал.

    Цитата Сообщение от Grand Посмотреть сообщение
    При операциях копирования на Скорпионе может быть испорчена 8-я страница памяти, что приводит к неработоспособности как теневого монитора, так и запускаемых программ, использующие вызовы RST 8. Кроме того, если на Скорпионе используется MagOS, то не должна портится еще и 15-я страница.
    А какие это страницы с номером 8 и 15? Значения в портах какие? Их надо не использовать?

    Цитата Сообщение от Grand Посмотреть сообщение
    Вторая проблема проявляется только при работе с дисководами 5,25" и только в версии командера 02. Пробовались "Эл-ка МС 5305" и "Эл-ка МС 5350". Попытаюсь описать, как это происходит. При просмотре картинок/текста, обычно если файл записан на второй половине диска, довольно часто при повторном вызове просмотрщика картинок/текста, показывается не то что должно (похоже дисковод не позиционирует правильно и сектора грузятся не от туда). Причем, ситуация может "чередоваться": при первом вызове просмотрщика показывается то что надо, при втором - какие-то случайные сектора, при третьем - опять всё правильно, при четвертом - те же сектора, не имеющие отношения к просматриваему файлу.
    На дисководах 3,5" это не проявляется (пробовались тоже два разных дисковода на двух разных ZX-клонах - Himac HR42 48K и Scorpion ZS 256).
    Может быть это связано со вставкой процедуры останова дисковода, а может быть диск ошибочно принимается за односторонний.
    Это странный глюк, особенно, если зависит от дисковода. Если позиционирование неправильное, то вроде должно быть сообщение Sector not found (ВГ93 по идее должна выдать бит "массив чтения не найден"). Так что здесь дело может быть не в дисководе, а не в неправильной работе с памятью, например. Зависимость от типа компьютера есть при появлении глюка?
    Хотя, если это только в версии 0.2, то либо от выключения дисковода, либо за односторонний принимает, что вряд ли. Проверка на односторонность происходит при загрузке каталога. При выполнении команды view as text такой проверки не производится. То есть вызов двух раз подряд view as text должен приводить к одинаковому результату.


    Цитата Сообщение от Grand Посмотреть сообщение
    И еще. Наверно важнее было бы сделать выключение дисковода при копировании, когда выдаётся запрос на смену дисков, а то сейчас приходится дожидаться, когда он сам остановится.
    Сделаю.
    Последний раз редактировалось CPLx; 02.04.2008 в 08:24.

  10. #30

    Регистрация
    03.01.2006
    Адрес
    Рязань
    Сообщений
    2,935
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Лучший SetUp - в исходнике (условная компиляция и т.п.).

Страница 3 из 7 ПерваяПервая 1234567 ПоследняяПоследняя

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

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

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

Похожие темы

  1. ищу коммандер Luxe Copy 3.0
    от drbars в разделе Софт
    Ответов: 7
    Последнее: 06.03.2008, 22:57
  2. Ответов: 5
    Последнее: 31.03.2007, 23:42

Ваши права

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