Просмотр полной версии : Не сбрасываемый порт 254 (Non reset port #FE)
Black_Cat
26.02.2012, 02:26
Господа, использовалась ли где-то в софте фича порта #FE что он в Спектруме не ресетится аппаратно?
Barmaley_m
26.02.2012, 03:49
Я не представляю, как это могло бы использоваться, учитывая, что по сбросу процессор начинает исполнять код бейсика, в котором немедленно в этот порт выводится число 7.
Но даже если сделать свою прошивку ПЗУ - что дает сохранение предыдущего состояния порта #FE? Тем более что на считывание он работает без регистра, а записанный в него цвет бордюра, состояние бита динамика и магнитофона считать невозможно?
Black_Cat
27.02.2012, 00:32
Но даже если сделать свою прошивку ПЗУ - что дает сохранение предыдущего состояния порта #FE? Тем более что на считывание он работает без регистраименно потому что на считывание он недоступен и было сделано так, что бы по ресету он не сбрасывался. К счастью о многих фичах оригинального Спектрума широкой публике известно мало, и это сильно упрощает мне жизнь :) , т.к. я не ставлю в конкретном случае задачу задействовать эти фичи, а скорее наоборот - хотел бы от некоторых избавиться :) . Дык вот, что бы не выплеснуть с водой и ребёнка и был создан этот топик - т.е. чтоб прояснить не использовалась ли эта фича где-то.
Barmaley_m
27.02.2012, 02:00
именно потому что на считывание он недоступен и было сделано так, что бы по ресету он не сбрасывался.
А где здесь причинно-следственная связь? По-моему одно не имеет отношения к другому, а отсутствие сброса обусловлено экономией ресурсов: упрощается разводка платы (не надо вести сигнал сброса) или разводка внутри ULA.
Black_Cat
27.02.2012, 20:26
отсутствие сброса обусловлено экономией ресурсов: упрощается разводка платы (не надо вести сигнал сброса) или разводка внутри ULAРесет по питанию встроить в ULA нет проблем, и не требует дополнительных ресурсов.
А где здесь причинно-следственная связь?ну, жизнь после смерти например :) , т.е. сохранение состояния регистра после сброса.. насамделе этот регистр не совсем нечитаемый, один разряд у него читаемый, но это уже другая фича :)
Barmaley_m
27.02.2012, 22:18
Ресет по питанию встроить в ULA нет проблем, и не требует дополнительных ресурсов.
Это в FPGA не требует дополнительных ресурсов, и то потому что при включении питания загружается конфигурация. А в ULA скорее всего требует. С современными микросхемами и МК все привыкли, что по сбросу или включению питания все регистры имеют определенное состояние, а раньше это было не всегда так. Любой сброс требует ресурсов. И когда эти ресурсы были сильно ограничены - то разработчики старались, где это возможно, реализовывать сброс не аппаратно, а программно.
К тому же речь шла не о включении питания, а сбросе посредством сигнала /RESET.
насамделе этот регистр не совсем нечитаемый, один разряд у него читаемый
Что же это за разряд, бит магнитофона что ли? Думаю, в разных клонах он может быть как читаемый, так и нечитаемый, хотя не исключено, что в фирменном спеке он имеет обратную связь по постоянному току - надо схему смотреть.
Black_Cat
27.02.2012, 22:44
Это в FPGA не требует дополнительных ресурсов, и то потому что при включении питания загружается конфигурация. А в ULA скорее всего требуетповерь, не требует
Что же это за разрядна оригинальном Спектруме начиная с Issue 3, D4 wr#FE читается через D6 rd#FE, но токо когда нет сигнала с магнитофона. А в первых двух версиях Спектрума через D6 rd#FE читается значение функции (D3 or D4) wr#FE. Эта фича юзается в некоторых играх.
К тому же речь шла не о включении питания, а сбросе посредством сигнала /RESETточнее, посредством кнопки RESET, которой на оригинальном Спектруме нет.
А ещё точнее, меня интересовао токо наличие софта, юзающего эту фичу, остальное меня не интересовало :)
Barmaley_m
28.02.2012, 03:59
поверь, не требует
Требует. Состояние триггеров при включении питания не определено. Чтобы их привести в известное состояние, нужно подвести к ним сигнал сброса. Так что, как минимум, тратятся соединительные ресурсы кристалла.
точнее, посредством кнопки RESET, которой на оригинальном Спектруме нет.
Тогда о чем вообще разговор? Ты предполагал использование состояния порта FE не просто после сброса, а после отключения питания? Или ты имел в виду внешние устройства, активирующие сигнал сброса, такие как Beta Disk Interface?
На оригинальном АТМ-Турбо 2+ можно подать сброс на схему программно и потом попасть в программу пользователя. Даже интересно, сбрасываются ли счётчики AY по сбросу? Если да, то можно было бы использовать это в музыке (известная проблема с непредсказуемой фазой).
http://www.worldofspectrum.org/faq/reference/48kreference.htm#Hardware
Black_Cat
28.02.2012, 19:39
Ты предполагал использование состояния порта FE не просто после сброса, а после отключения питания? Или ты имел в виду внешние устройства, активирующие сигнал сброса, такие как Beta Disk Interface?Я всё же имел ввиду - не использовалось ли где-то в софте это свойство порта #FE. А способов сброса может быть три - по питанию, по сигналу RESET, по RST0. При каждом способе состояние компьютера будет разным.
---------- Post added at 20:34 ---------- Previous post was at 20:28 ----------
Даже интересно, сбрасываются ли счётчики AY по сбросу?по аппаратному - обязаны сбрасываться, по программному - ессно нет
---------- Post added at 20:39 ---------- Previous post was at 20:34 ----------
На оригинальном АТМ-Турбо 2+ можно подать сброс на схему программно и потом попасть в программу пользователяподобные решения есть и для Спектрума, но я не слышал чтоб в них использовалось данное свойство порта #FE
null_device
29.02.2012, 00:35
не использовалось ли где-то в софте это свойство порта #FE
Это ведь не регистр R-процессора, а всего лиш порт устройств ввода\вывода, состояние которого определяется подключенными к нему устройствами (т.е. в большей степени "апаратное", чем "программное" устройство - без "извратов").
----
Хотя, пару раз сталкивался с "аномальной" работой игр: после загрузки, при отсоединении магнитофонного провода они "подвисали", до тех пор пока провод не поключали обратно (в другом случае все было с точностью до наоборот).
Black_Cat
29.02.2012, 00:47
порт устройств ввода\вывода, состояние которого определяется подключенными к нему устройствамиздесь речь о порте wr #FE, регистр которого не имеет аппаратного сброса
null_device
29.02.2012, 00:58
не имеет аппаратного сброса
Это разве когда-то являлось проблемой?
А разве он не "сбрасывается" аппаратно программно? (состояние border, tape out, beeper)
Black_Cat
29.02.2012, 01:01
А разве он не "сбрасывается" аппаратно?нет, и это написано в названии темы
null_device
29.02.2012, 01:05
Тьфу, не то написал - имел ввиду "програмный" сброс средствами СОС при включении\ресете.
Black_Cat
29.02.2012, 01:19
имел ввиду "програмный" сброс средствами СОС при включении\ресетеправильно это называется - инициализация, а не сброс
null_device
29.02.2012, 01:25
Значит, определенное его состояние, "устанавливается" еще до того, как его значением можно будет воспользоваться каким-либо образом во внешней программе.
Black_Cat
29.02.2012, 01:36
Значит, определенное его состояние, "устанавливается" еще до того, как его значением можно будет воспользоваться каким-либо образом во внешней программеэто обходится блокировкой внутреннего ПЗУ, и подменой его на внешнее ПЗУ или ОЗУ
null_device
29.02.2012, 01:47
Это можно отнести к экзотическим случаям.. в которых, опять же, трудно найти практическое применение данному порту.
Black_Cat
29.02.2012, 02:27
Это можно отнести к экзотическим случаям..BDI, DivIDE, Spectranet, и т.д. практически в любой западной приблуде, так что скорее это правило, а не "экзотический случай"
null_device
29.02.2012, 04:35
И какая же из этих "приблуд" использует особенности "спектрумовского" порта #FE?
----
Зайдя с другой стороны, задам вопрос: как вообще можно использовать, с практической точки зрения, особенность отсутствия "аппаратного" сброса данного порта?! Мое мнение - чуть более, чем, никак! ;)
Black_Cat
29.02.2012, 09:15
И какая же из этих "приблуд" использует особенности "спектрумовского" порта #FE?знал бы - не спрашивал
Посчитайде идиотом, но не пойму - в чём глобальная проблема? Ну #FE. Ну опрос клавы. Ну засылка цвета бордюра(моё, кстати). Ну и, наконец, вывод биппера.
Для чего вопрос? Сбросить в ноль этот порт? А нафига. Чем этот порт тебе мешает? Лично мне никогда не мешал.
Или так. Для понта?
Black_Cat
29.02.2012, 19:39
Сбросить в ноль этот порт? А нафигаесли бы он ресетился, то был бы очень удобен для реализации одного усовершенствования
если бы он ресетился, то был бы очень удобен для реализации одного усовершенствования
Какого??
Black_Cat
29.02.2012, 22:17
baxter, топик не об этом
null_device
29.02.2012, 22:29
топик не об этом
А стоит ли тогда выяснять свойства этого "сферического коня в вакууме"? Искать проблему, там где ее нет, для устроства, которого никто не видел? :)
Black_Cat
29.02.2012, 22:43
А стоит ли тогда выяснять свойства этого "сферического коня в вакууме"? Искать проблему, там где ее нет, для устроства, которого никто не видел?
что бы не выплеснуть с водой и ребёнка и был создан этот топик - т.е. чтоб прояснить не использовалась ли эта фича где-то.я никому не предлагал выяснять никакие свойства, я их и так знаю, я спрашивал только знает ли кто об использовании данной фичи в каком - либо софте.
Пока что никто ни о каком подобном использовании не написал, из чего можно сделать вывод, что либо топик посещает не та публика благодаря доблестным модерам из Программирования, либо такого софта действительно не существует.
на оригинальном Спектруме начиная с Issue 3, D4 wr#FE читается через D6 rd#FE, но токо когда нет сигнала с магнитофона. А в первых двух версиях Спектрума через D6 rd#FE читается значение функции (D3 or D4) wr#FE. Эта фича юзается в некоторых играх.
игры в студию
Black_Cat
01.03.2012, 01:02
игры в студиювот тебе и игры и доработка для Феникса, реализующая эту фичу: http://zx.clan.su/forum/11-66-525-16-1310241670
Во всех оригинальных моделях ZX48 и ZX128 (в +2 тоже) разряд D4 #FE управлял блокировкой сигнала магнитофонного входа. Т.е. при записи в D4=1 #FE, из D6 #FE всегда будет читаться единица, вместо сигнала магнитофона. На проверке этого построена защита некоторых программ, таких как Abu Simbel Profanation, Rasputin.
посмотрел опрос клавиатуры в проблемной игре Desolator
LD BC,#F7FE
IN A,(C)
CP #BE ;10111110
JP Z,
CP #BD ;10111101
JP Z
CP #BB ;10111011
JP Z
CP #B7 ;10110111
JP Z
CP #AF ;10101111
JP Z
в инфоркомовской книжке написано что 6ой бит указывает на наличие сигнала на магнитофоне.
1 - нет сигнала
0 - есть сигнал
запустил на зелёном скорпе бейсик программу
1 PRINT IN 63486:GO TO 1
63486=#F7FE
хаотично мелькают цифры 255/191 ; 11111111/10111111
игра Abu Simbel Profanation
85год
LD BC,#F7FE
IN A,(C)
LD L,A
LD H,0
EX DE,HL
LD HL,#00FD ; 11111101
XOR A
SBC HL,DE
JP NZ,
87год
LD BC,#F7FE
IN A,(C)
AND #02
JP NZ,
защитой это назвать трудно (да и от кого такая защита ?)
это примерно как опрос kempson joystick`a через порт #DF во многих испанских играх.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot