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

User Tag List

Страница 4 из 7 ПерваяПервая 1234567 ПоследняяПоследняя
Показано с 31 по 40 из 61

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

  1. #31
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx
    Можно сделать setup при старте коммандера, чтобы в нём выбирался цвет курсора, заодно и Pentagon 1024.
    Про всех пользователей сказать не берусь, но лично у меня не вызвало бы трудностей простая замена зарезервированного байта в первом секторе. Тем более, что сделать это можно средствами самого TFC.


    Цитата Сообщение от CPLx
    На счет звука не знаю. ... Думаю можно сделать, должно поместиться. А сетапом вырубать, чтобы не раздражал.
    Конечно. Самый лучший вариант - это когда имеется возможность звук отключить. Однако, как я и писал: не настаиваю.
    А в своих программах я обычно использую такую процедуру (она написана по мотивам аналогичной из игры ACADEMY):
    Код:
    SOUND	PUSH	AF
    	PUSH	HL
    	PUSH	DE
    	PUSH	BC
    	LD	DE,2565
    	LD	HL,1000
    	XOR	A
    	OUT	(254),A	;$-13
    	XOR	#10
    	EX	AF,AF'
    	LD	A,(HL)
    	INC	HL
    	ADD	A,E
    	LD	B,A
    	DJNZ	$-0
    	EX	AF,AF'
    	DEC	D
    	JR	NZ,$-13
    	POP	BC
    	POP	DE
    	POP	HL
    	POP	AF
    	RET

    Цитата Сообщение от CPLx
    А какие это страницы с номером 8 и 15? Значения в портах какие? Их надо не использовать?
    Для страницы 8: (#1FFD) = #10 и (#7FFD) = #10.
    Для страницы 15: (#1FFD) = #10 и (#7FFD) = #17.

    Однако, похоже, что системой MagOS пользуюсь я один. Поэтому не стойт ради этого терять целых 16К памяти. Лучше уж на Скорпионе не использовать только одну 8-ю страницу, и написать об этом в Руководстве, а пользователь пусть сам решает: отключать ему MagOS при работе с TFC или нет.


    Цитата Сообщение от CPLx
    Так что здесь дело может быть не в дисководе, а не в неправильной работе с памятью, например. Зависимость от типа компьютера есть при появлении глюка?
    Я все-таки думаю, что проблема именно в дисководе: может быть он не успевает получить команду спозиционироваться? На МС5305 проявляется чаще, на МС5350 - реже. От типа компьютера не зависит.


    Цитата Сообщение от CPLx
    Хотя, если это только в версии 0.2, то либо от выключения дисковода, либо за односторонний принимает, что вряд ли. Проверка на односторонность происходит при загрузке каталога.
    А если вернуть как было в версии 0.1? Там-то всё в порядке...


    Цитата Сообщение от CPLx
    То есть вызов двух раз подряд view as text должен приводить к одинаковому результату.
    Сам очень поразился, что этого не происходит. :O Всё выглядит именно так, как я описл в предыдущем сообщении.


    Цитата Сообщение от alone
    Лучший SetUp - в исходнике (условная компиляция и т.п.).
    А как тогда программу настраивать взависимости от клона, на котором она должна запускаться???


    Вчера обратил внимание, что TFC не проверяет при чтении каталога TR-DOS-ли диск вставлен. Забавный получается результат, если вставить MS-DOS-диск 720K. Это конечно мелочь: я всего лишь тестировал TFC и подсовывал ему всё, что под руку попадалось, но пользователь может вставить диск не той системы по ошибке. TR-DOS, например, проверяет свои диски по значению #10 в байте +231 системного сектора (правда, там это работает, если сектор вставленного диска длиной меньше, либо равен 256 байтов). И еще: TR-DOS проверяет тип своего диска по байту +227 системного сектора: если бит 0 равен 0 - то 80 дорожек, если бит 3 равен 0 - то две стороны.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

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

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

  3. #32
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    108
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Grand Посмотреть сообщение
    Я все-таки думаю, что проблема именно в дисководе: может быть он не успевает получить команду спозиционироваться? На МС5305 проявляется чаще, на МС5350 - реже. От типа компьютера не зависит.

    А если вернуть как было в версии 0.1? Там-то всё в порядке...
    В этом посте я прикреплю версию 0.3, она точно такая же как 0.2, с той лишь разницей, что удалена процедура останова дисковода. Потестите её, будут ли такие же глюки. Если нет - значит причина в выключении дисковода, и тогда надо будет думать как это сделать без глюков.

    Для выключения дисковода используется такая процедура:

    Код:
            LD   A,#D8
            LD   DE,#2FC3     ;OUT (1F),A:RET
            CALL DOS
            CALL WAIT
            LD   A,%01100000
            LD   DE,#2FC3     ;OUT (1F),A:RET
            CALL DOS
            LD   B,0
            DJNZ $
            LD   A,#D8
            CALL DOS
    WAIT    LD   DE,#3FCA  ;IN A,(FF): AND C0: JR Z,3FCA: RET M: OUTI: JR 3FCA
    DOS     PUSH DE
            JP   #3D2F
    Как она работает - понятия не имею. Я её еще в 1997 написал, и почему она такая я не помню. Тогда она у меня работала без глюков.

    Цитата Сообщение от Grand Посмотреть сообщение
    Вчера обратил внимание, что TFC не проверяет при чтении каталога TR-DOS-ли диск вставлен. Забавный получается результат, если вставить MS-DOS-диск 720K. Это конечно мелочь: я всего лишь тестировал TFC и подсовывал ему всё, что под руку попадалось, но пользователь может вставить диск не той системы по ошибке. TR-DOS, например, проверяет свои диски по значению #10 в байте +231 системного сектора (правда, там это работает, если сектор вставленного диска длиной меньше, либо равен 256 байтов). И еще: TR-DOS проверяет тип своего диска по байту +227 системного сектора: если бит 0 равен 0 - то 80 дорожек, если бит 3 равен 0 - то две стороны.
    Вот этого не предполагал. Но тут возникает вопрос: что делать, когда, например, есть каталог, но поврежден 9-й сектор? TR-DOS в таких случаях пишет "Disk error" и отказывается показывать существующий на диске каталог. Меня раньше это сильно парило, и приходилось смотреть этот каталог доктором. Поэтому никаких проверок там нет, и я думаю делать их не нужно. Просто считается что диск всегда TR-DOS. Это позволяет смотреть даже поврежденные TR-DOS диски, а не отказываться от этого сходу из-за потери одного байта.
    А что там за эффект появляется? Какой-то мусор вместо списка файлов?
    Вложения Вложения
    • Тип файла: rar TFC03.rar (16.0 Кб, Просмотров: 145)

  4. #33
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CPLx
    В этом посте я прикреплю версию 0.3, она точно такая же как 0.2, с той лишь разницей, что удалена процедура останова дисковода. Потестите её, будут ли такие же глюки.
    Глюка нет. Всё надёжно работает, как в версии 0.1. Значит виновата процедура останова дисковода. Как я уже сообщал, достаточно останавливать дисковод только в ситуации No disk; можно также и после запроса на смену дисков при копировании.

    Цитата Сообщение от CPLx
    Для выключения дисковода используется такая процедура: ...
    Признаться, так толком и не понял, как она работает. Сначала прерывается контроллер, потом дается команда шаг назад без загрузки головки, потом опять прерывается... Всё это "не по науке".
    Вообще, существует два эффективных способа останова дисковода: программный сброс микроконтроллера, и эмуляция индексных импульсов. В первом случае обнуляются все регистры микроконтроллера, и значения в них надо заносить заново. Второй способ - штатный, используемый авторами TR-DOS; я считаю его самым лучшим. Именно процедура, действующая по второму принципу, и представлена мной здесь: http://www.zx.pk.ru/showpost.php?p=96820&postcount=12

    Цитата Сообщение от CPLx
    Цитата Сообщение от Grand
    Вчера обратил внимание, что TFC не проверяет при чтении каталога TR-DOS-ли диск ...
    Вот этого не предполагал. Но тут возникает вопрос: что делать, когда, например, есть каталог, но поврежден 9-й сектор? ... А что там за эффект появляется? Какой-то мусор вместо списка файлов?
    Ну, как я и написал, мелочь это. Но можно было бы, например, проверять на диск TR-DOS только при чтении каталога, и после сообщения, что диск не TR-DOS, выходить на пустую панель. А в докторе ничего не проверять.
    Эффект сейчас такой: данные из считанного сектора командер пытается интерпретировать как названия файлов TR-DOS, и иногда пишет "осмысленные" фразы: "MS-DOS 5".
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

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

  5. #34
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    108
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Grand, во-первых, с днем рождения!

    Во-вторых, вопрос появился. Драйвер памяти у Scorpion256 и KAY256 одинаковый. То есть если я выключу 8-ю страницу, то она не будет задействована также и в KAY256. Это правильно? KAY256 похож в этом на Scorpion? (есть ли там "монитор" и т.п.) Если нет, то как отличить KAY256 от Scorpion256?

  6. #35
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Про определение Скорпиона напишу немного позже.

    А пока немного о другом.


    Как теперь известно, TFC работает с версией TR-DOS 5.03. Делается ли при старте командера проверка на номер версии?
    Такую проверку далать надо, поскольку, опять-таки, неизвестно на какой версии пользователь запустит командер.
    Если версия не соответствует, то надо выдавать об этом сообщение, а потом - DI \ HALT.
    В книге А.Ларченко и Н.Родионова "ZX Spectrum и TR-DOS для пользователей и программистов" предлагается способ определения версии, который я реализовал так:
    Код:
    ;Определение версии TR-DOS
    	LD	HL,19
    	LD	C,L
    	CALL	15635
    	LD	A,(23779)
    ;Если в аккумуляторе #BD, то V5.01,
    ;если - 7, то V5.03, иначе - неизвестная версия.
    Возможно, кто-то может с этим не согласиться, но я не вижу препятствий для использования такого алгоритма.
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

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

  7. #36
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    108
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Проверки на версию TR-DOS нет.
    Но теперь есть.
    Версии 5.04х - принимает за 5.03?

  8. #37
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Как определить Скорпион

    С точки зрения архитектуры, Кай-256 - это Скорпион-256 без теневого монитора. Поэтому по наличию этого самого монитора и можно отличить Скорпион.
    Надо сказать, что, для простоты, можно ничего не определять, а сделать так, как уже сделано в TFC для Pentagon 1024 - т.е., взависимости от значения какого-то зарезервированного байта в первом секторе командера, использовать или не использовать 8-ю страницу.

    Авторы Скорпиона рекомендуют делать проверку так, - и я придерживаюсь этого мнения (А.Ларченко, "Краткое описание функций Профессионального Расширения Теневого сервис Монитора компьютера "Scorpion ZS 256 Turbo"", стр.15).
    1. Переустановить системную переменную (ERR_SP).
    2. Вызвать какую-либо функцию RST 8.
    3. Если управление перешло по адресу из (ERR_SP), то компьютер со стандартным ПЗУ, иначе - Скорпион

    Ну, а какую функцию лучше вызвать? Можно "отключение сервис монитора". Но я это не рекомендую: того, кто хочет покопаться в программе это не остановит, а тому, кто хочет с этой программой нормально работать, - доставит неудобства. Лучше вызвать функцию "установка адреса рабочего буфера", которая с V3.0a возвращает код версии теневого монитора.
    Код:
    	LD	SP,(23613);Сохраняем прежний адрес процедуры
    	POP	HL	;обработки ошибок на дне стека,
    	LD	(L2+1),HL;и устанавливаем новый.
    	LD	HL,L1	;
    	PUSH	HL		;
    	LD	HL,23296	;Функция "Установка адреса рабочего буфера",
    	LD	C,9	;не изменяет регистры DE и BC, а с V3.0a
    	RST	8	;возвращает в D код версии (для V3.0a - код 68), в E, B
    	DEFB	#81	;и C - дату компиляции.
    ;Сюда переходит управление, если Скорпион.
    	.	.	.
    	JP	L3
    ;Сюда переходит управление, если компьютер со стандартным ПЗУ.
    L1	.	.	.
    L3	LD	SP,(23613);Восстанавливаем прежний адрес процедуры
    	POP	HL	;обработки ошибок.
    L2	LD	HL,00000	;
    	PUSH	HL		;
    	.	.	.


    Цитата Сообщение от CPLx
    Версии 5.04х - принимает за 5.03?
    Да. Так как по стандартным процедурам они соответствуют. Я, в своё время, изучал версию 5.04T; там даже есть сообщение, что она переделана из 5.03 (добавлено "турбо-форматирование").
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

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

  9. #38
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    108
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал версию 0.4


    - Поставил процедуру выключения дисковода от Grand (можно отключить в настройках).
    - Дисковод должен выключаться при сообщении о смене диска во время копирования.
    - Сделан звук (можно отключить в сетапе в первом секторе коммандера).
    - Некоторые настройки (цвета, использование памяти и т.п.) вынесены в setup в первый сектор коммандера (описаны в Руководстве).
    - В настройках можно запретить использование страниц 8 и 15 в SCORPION.

    Цветовую схему вернул от версии 0.1. Можно менять в настройках цвет курсора, файлов, маркированных файлов, курсора на маркированном файле, запретить останавливать дисковод, включить звук (по умолчанию по-моему выключен). Файл выложил в первый пост ветки.

    Со звуком, как и ожидалось, возникло торможение при скроллировании файлов.
    По умолчанию страница 8 Скорпиона не используется. Можно выключить еще и страницу 15.

    Добавлено через 55 секунд
    Еще определение версии TR-DOS сделал. Не знаю насколько это полезно.

    Добавлено через 2 часа 7 минут
    Пока никто не скачал, удалил 0.4, исправил глюк, и опять выложил.
    Последний раз редактировалось CPLx; 14.04.2008 в 20:07. Причина: Добавлено сообщение

  10. #39
    Veteran Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    1,152
    Спасибо Благодарностей отдано 
    214
    Спасибо Благодарностей получено 
    331
    Поблагодарили
    146 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Exclamation Проблема

    К сожалению, опять обнаружилась серьёзная проблема.
    Не работает ни одна дисковая операция! Нет обращения к дисководу, и он, естественно, не крутится. Если выбрать перечтение каталога (клавиша "1"), то выдается NO DISK (для всех устройств, кроме E). Если в меню файловых операций выбрать просмотр текста (или другое, где требуется работа дисковода), - то зависание.
    Тестировалось на Himac HR 42 и Scorpion ZS 256 - везде результат один. А вот на эмуляторах результат другой: в Real Spectrum при попытке перечтения каталога NO DISK также выдаётся, а операции в файловом меню работают; в R80 абсолютно всё работает, как будто проблемы нет. Проверить на других эмуляторах не могу, но понятно, что ситуация на эмуляторах точно не воспроизводится...
    Если в каком-либо моем посте перестала работать гиперссылка или показываться картинка, напишите мне об этом в личном сообщении,чтобы я смог это исправить.

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

  11. #40
    Member
    Регистрация
    23.11.2007
    Адрес
    Ростов-на-Дону
    Сообщений
    171
    Спасибо Благодарностей отдано 
    37
    Спасибо Благодарностей получено 
    108
    Поблагодарили
    58 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возможно причина опять в процедуре останова дисковода.

    Вопросов два:

    1. Сразу после загрузки коммандера (как только он загружается в память), происходит ли загрузка каталога?
    2. Если отключить процедуру останова дисковода, глюки пропадают?

    Процедура останова дисковода выключается в Setup'е. Первый сектор коммандера, байт со смещением 200 надо сделать нулём.

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

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

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

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

Похожие темы

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

Ваши права

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