deathsoft: OK, сделай
deathsoft: OK, сделай
В 92-м и даже 93-м информация распространялась не так быстро как сейчас. Начало производства «ZS Scorpion» вовсе не означало то, что о нем все сразу узнавали. Как правило, известность приходила с началом массовых продаж на рынках или в магазинах. На рынках в Тушино (1992-93), Митино (1993) и Царицио активных продаж указанного клона не было.Сообщение от deathsoft
Виталий, я не сужу, плохи фокусы с #FDили хороши (хотя адресовать нужно именно #7FFD– IMHO). Лаптев проверял свои программы не только на фирменной машине, но и на «Пентагоне». Был бы тогда массовым «ZSScorpion», думаю, проверял бы и на нем, потому как с пользователями он общался лично на радиорынке, почти каждые выходные. Кстати, большинство хакеров того времени вообще не тестировало свои программы на компьютерах отличных от своего собственного.Сообщение от deathsoft
Почему в эмуляторе при нажатии сброс (F12) происходит окрашивание бордюра в черный цвет (сброс всех разрядов порта FE)? Смотрел схемы реальных машин (Scorpion, Ленинград, Композит), там вывод сброса TM9 отвечающего за порт FE напаян на +5В, а значит бордюр красится в черный (или произвольный, в зависимости от состояния регистра) цвет только при включении питания компьютера. При перезагрузке по Reset должен сохраняться предыдущий цвет бордюра (до первой записи в порт FE).
Не берусь судить, поскольку уже прошло много лет, но я помню, что версии программ адаптированых Лаптевым, а также нашим Питерским товарищем Васильевым Антоном работали криво (в играх не хватало уровней, программы сбрасывались после загрузки) и мы с братом постоянно переделывали такие программы (у меня они до сих пор валяются на дискетах). Обычно глючили программы содержащие в загрузчиках всякие "извраты", после переделки под стандартные процедуры загрузки через #3d13 никаких проблем небыло (тестировали на разных компьютерах). А Васильев Антон обычно еще в программах вставлял бегущую строку "Vasiliev Anton is The BEST" и поливал грязью всех остальных (включая Лаптева, Скоробогатова и прочих), хотя сам мало от них чем отличался. Мы никогда не распространяли версии собственной адаптации, только делились с друзьями и знакомыми. Вся адаптация была исключительно бесплатной. Поэтому и делали качественно, и игры проверяли полным прохождением, т.к. никакой комерческой выгоды не приследовали.Сообщение от Conan
Правда все вышесказаное к данному топику никакого отношения не имеет (видимо это сообщение нужно перенести в соответствующий раздел)
Выяснил почему при подключенном SMUC бордюр окрашивается при перезагрузке в розовый цвет:
в недрах ПЗУ есть вывод в порт #7BFE (видимо порт SMUC), который к бордюру не имеет никакого отношения, а результат попадает и в порт #FE.
В своей версии однозначно буду исправлять, чтобы в #FE мусор не писался (сделаю приоритет портов, если #7BFE, значит это не #FE, а то могут найтись проги, которые к порту FE еще через какой нибудь адрес обращаются).
В дебагере анреала неверно дизассемблируется команда JR nn, значение nn показывается на 1 больше чем надо. Например код команды #18 #00 должен делать переход на следующую команду, а печатается адрес на 1 больший. Выполнение команды происходит правильно (глюк только в дизассемблере).
а у меня правильно дизасмится
Как оказалось глюк возникает только при компиляции интеловским компилятором.Сообщение от SMT
Глюк возникает на строке
disasm_address(ln, current+cm-st + *(signed char*)cm++ + 1, labels);
из за использования cm++
(вообще таких выражений следует избегать, чтобы глюков не было, но это дело вкуса)
При изменении на
disasm_address(ln, current+cm-st + *(signed char*)cm + 1, labels); cm++;
все работает как надо
Собственно несколько строками ниже сделана аналогичная конструкция с cm+=2
Еще при компиляции интеловским компилятором выводится куча предупреждений типа:
dxr_atm0.cpp(3): warning #880: omission of explicit type is nonstandard ("int" assumed)
const ega1_ofs = 0;
^^^^^^^^^^^^^^
Нужно явно тип указывать int или unsigned
vars.cpp(97): warning #68: integer conversion resulted in a change of sign
unsigned dbg_stophere = -1, dbg_stopsp = -1;
А тут, если уж хочется присвоить -1 вместо UINT_MAX, то нужно явно тип приводить unsigned dbg_stophere = (unsifned)-1;
gsz80.cpp(110): warning #1461: null (zero) character in input line ignored
case 0x05: gsstat &= 0xFE; return;
^
Откуда взялся символ с кодом 0 внутри файа вообще непонятно
tape.cpp(174): warning #167: argument of type "const char *" is incompatible with parameter of type "void *"
named_cell("CSW tape image");
^
Тут нужен параметр const void*, а не void*
dxrend.cpp(234): (col. 7)warning #997: function uses MMX(TM) instructions, but contains no EMMS instruction
В конце функции нет EMMS, если после этого будут вызваны функции работающие с плавающей точкой, то будут глюки
dbgoth.cpp(95): warning #268: the format string ends before this argument
sprintf(ln, "?????", i);
^
Забыт символ печати параметра
В форуме глюки с форматированием, т.ч. стрелочки могут указывать не туда куда нужно (удаляются ведущие пробелы)
Последний раз редактировалось deathsoft; 10.07.2005 в 14:24.
Кстати, к анреалу можно сделать поддержку реальных дисководов, я разобрался с программированием драйвера, который используется в реалспектруме.
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)