-
- ? Manwe
- 20.09.2018 18:37
> Вышел синий смайлик...
¤
Отлично, значит как минимум до адреса 4214 демка не виснет.
Теперь восстанови GoodApple.EXE из резервной копии и поставь 137,5252 по адресам 5012 и 5014.
Чтобы позиционироваться на адрес 5012, смотри на Adr: вверху экрана. Перед этим, как и раньше, надо нажать ВС, O и ввести оффсет 4000.
¤
По адресу 5012 находится процедура переброски данных в верхнюю память (на адрес 140000). Если до этого места дошло (показался Макинтош) - прекрасно.
Тогда можно перейти к следующему этапу: поставить 137,5252 по адресу 5022. Если и тогда покажется Макинтош, значит переброска в верхнюю память прошла успешно и мы двинемся дальше.
- ? Manwe
- 19.09.2018 22:07
Нашёл где в GoodApple.EXE подпрограмма грустного Макинтоша. По адресу 5252.
Стало быть, в произвольных местах файла GoodApple.EXE можно писать 137, 5252 и потом запускать этот файл прямо из MKDOS, без перезагрузки.
- ? Manwe
- 19.09.2018 21:31
Только надо не запускать GoodApple.exe, а опять грузиться удерживая клавишу C
- ? Manwe
- 19.09.2018 21:29
Попробуем начать с адреса 4214. В левой колонке DESS это в строке пронумерованной как 204. Там лежат значения 12702 и следом 50000. Вот их надо заменить на 137 и 1144.
- ? Manwe
- 19.09.2018 20:03
Значит, с загрузчиком всё нормально. Сейчас будем копать саму демку :)
1. скопировать GoodApple.exe в безопасное место! Чтобы потом оттуда восстанавливать после порчи оригинала
2. запустить DESS, выбрать диск C
3. нажать клавишу ВС и потом F - поиск файла. Ввести GoodApple.exe
4. нажать клавишу ВС и потом O - задать смещение (offset). Ввести 4000
Теперь верху экрана будет написано Addr: и реальный адрес памяти, на который указывает курсор.
5. Я чуть попозже напишу по каким адресам ставить 137, 1144.
6. сохранить изменения, выйти из DESS, запустить GoodApple.exe
7. если показался грустный Макинтош, то восстановить GoodApple.exe из копии и перейти к шагу 2.
¤
Список адресов напишу через час.
- ? Manwe
- 19.09.2018 11:50
Тогда совсем другое дело!
Если процедура по адресу 1144 работает, то будем использовать её как признак успешности выполнения других участков кода.
Сейчас всё отладим :)
Последовательность действий такая:
1. запускаешь BootApple и перезаписываешь загрузчик чтобы вернуть его к оригиналу
2. запускаешь DESS и открываешь нулевую дорожку диска C:
3. прописываешь значение 137 в некий адрес (об этом ниже) и значение 1144 следом за ним
4. сохраняешься, перезапускаешь БК удерживая C
5. если картинка показалась, возвращаешься к шагу 1, только в шаге 3 выбираешь следующий адрес из списка (смотри ниже)
6. если картинка не показалась - ура, мы нашли адрес зависания!
¤
Список адресов, по которым надо записывать значение 137 (и следом 1144). Только не по всем сразу :) А по одному из списка:
¤
000010
000034
000060
000104
000264
000110
000232
000254
¤
На каком адресе картинка перестанет показываться - пиши
- ? Manwe
- 18.09.2018 23:04
Вспомнил, у Lasoft'a было:
- если в начале демки нажать СТОП, то показываются титры - всё правильно, так и задумано;
- если в конце демки нажать СТОП или дождаться пока она закончится - титры подгружаются, но при попытке показать их БК виснет.
Выяснилось, что глюк происходит из-за перегрева. Если БК холодная и в доме прохладно, то в конце титры показываются. Если БК долго работает и жарко - не показываются. Каким-то образом регистр сдвига перестаёт работать в перегревшемся контроллере экрана.
- ? Manwe
- 18.09.2018 21:45
Хотя, всё это очень странно, если Credits.exe работает (там тот же регистр сдвига экрана используется).
Но иного объяснения я не вижу почему JMP @#1144 виснет, а JMP @#1164 работает.
- ? Manwe
- 18.09.2018 21:35
S_V_B в коде GoodApple.exe такое же обращение к регистру 1777664, как и в начальном загрузчике. Если в загрузчике виснет, то и в демке повиснет.
Стало быть, если в загрузчике JMP @#1144 не работает, в JMP @#1164 работает, то мы нашли в чём дело. Дело в записи в регистр скроллинга экрана.
Интересно, что у этого регистра старшие 6 бит никак не используются. Но я пишу нули в эти биты. Вдруг это на что-то влияет на некоторых БКшках? Хардварный глюк или поломка какая...
¤
Давай попробуем вот что:
1. Отключи контроллер HDD
2. БК после включения выйдет в монитор (напишется значок @). Либо в Бейсик (тогда для выхода в монитор нужно набрать MO и нажать Ввод)
3. Для проверки работоспособности набери 1000/
4. Покажется содержимое ячейки по адресу 1000
5. Набери 177664/
6. Покажется содержимое регистра сдвига экрана (скорее всего 1330)
7. Введи новое значение, ненамного отличающееся (например, 1325) и нажми Ввод
8. Экран должен немного сдвинуться по вертикали
9. Можно проверить несколько раз, изменяя значения от 1000 до 1377
¤
Если всё работает, значит проблема не в регистре сдвига экрана, а в использовании его совместно с контроллером HDD.
- ? Manwe
- 18.09.2018 20:18
JMP @#1144 вёл на очистку экрана и команду записи в порт 177664, следом должно было начаться рисование грустной картинки.
JMP @#1164 в обход этих действий ведёт сразу на рисование грустной картинки.
¤
Вряд ли проблема в очистке экрана. Скорее всего, дело в записи в порт. Я ещё посмотрю какие биты там за что отвечают - может, испортил чего. Но проверка на нескольких БК показывает, что всё работает. Возможно, именно у твоей БК какая-то проблема с портом.
¤
P.S. С давних времён демки - лучшие тесты для проверки корректности работы компьютеров :) В 90-ые мы тестировали все IBM PC демками "Second Reality" и "Drift".
- ? Manwe
- 18.09.2018 18:47
Это же БК, у неё все команды и данные 16-битные.
NOP занимает 2 байта.
JMP занимает 2 байта.
1164 занимает 2 байта.
- ? Manwe
- 18.09.2018 17:29
Что можно сделать:
в загрузочном секторе диска C после команды 240 (NOP) по адресам 000002 и 000004 поместить 137 и 1164 (JMP @#1164). Таким образом обходим команду MOV #1330,@#177664 и сразу рисуем картинку грустного Макинтоша. Узнаем, в этой ли команде дело.
- ? Manwe
- 18.09.2018 17:17
Могу предположить, что это реакция на команду MOV #1330,@#177664 – запись в системный регистр для установки положения скроллинга. Значит, у самой БК что-то поломалось (или конфликт с контроллером SMK по этому адресу).
Больше в коде загрузчика ничего особенного нет. Аналогичный код и в начале GoodApple.exe
- ? Manwe
- 18.09.2018 09:05
S_V_B, запусти Е:\Utils\DESS и отредактируй им загрузочный сектор диска C: там на нулевой дорожке первое слово 240 (NOP) и вот после него по адресу 000002 запиши число 137, а по адресу 000004 число 1144 (получится JMP @#1144). Перезапусти БК, удерживая клавишу C. Проверим, видит ли вообще контроллер этот загрузочный сектор. Должна показаться картинка с грустным Макинтошем.
Чтобы вернуть загрузочный сектор диска C в прежнее состояние, запусти BootApple.exe и нажми Ввод.
- ? Manwe
- 16.09.2018 16:18
Видимо, сектор «битый» с точки зрения новой БК. Почему – не знаю.
- ? Manwe
- 16.09.2018 09:11
S_V_B а запусти программку BootApple. Она предложет сделать диск C загрузочным. Тогда при удержании клавиши C bios АльтПро точно должен грузиться. Если этого не происходит - вижу только одно объяснени: соответствующий сектор флешки битый.
- ? Manwe
- 15.09.2018 22:07
BD, спасибо за тест!
S_V_B, у Ласофта его БК перегревалась и не показывала титры. Может, у тебя что-то из этой серии?
- ? Manwe
- 14.09.2018 18:57
А титры в конце у всех показываются на реальной БК?
Особенно интересует случай когда грузишься прямо с диска с демкой (удерживая клавишу с буквой диска при включении компьютера).
- ? Manwe
- 14.09.2018 18:55
Может быть это была какая-то левая модификация Flasse? Или графика из Flasse вставлена в другую игру.
- ? Manwe
- 13.09.2018 22:12
Надо Назима просить
- ? Manwe
- 13.09.2018 19:56
тогда так: запускаешь BootApple.exe - он выводит список файлов и пишет всё ли хорошо с ними. Если всё хорошо, то нажимаешь ВВОД и на этот диск пишется наш загрузчик. Перезапускаешь БК, удерживая букву диска.
- ? Manwe
- 13.09.2018 19:40
S_V_B: а как вокал пропиликать на AY? :) Там же песня со словами.
Не работает на новодельной БК? Интересно, чем она отличается? Мы проверяли на трёх классических – всё работало.
А попробуй при загрузке удерживать клавишу C. Хотя бы начальный загрузчик пойдёт. Если ошибка – нарисуется грустный Макинтош. Причём разного цвета при разных ошибках. Скажи, пожалуйста, каким цветом у тебя нарисуется.
- ? Manwe
- 12.09.2018 23:45
Надо же, в прошивке контроллера АльтПро какой косяк: если грузить данные по номеру блока с дисковода (процедура @#160004), то в блок параметров (на который указывает регистр R3)записывается адрес и длина. А если с винчестера, то на то же место записыааются какие-то левые значения.
- ? Manwe
- 12.09.2018 19:29
Dark Fusion 2 https://youtu.be/oQ2zqgA1wsw
Flasse https://youtu.be/3yoeXx75Lkw
Bilateral Stamp (никогда её раньше не видел, где бы скачать?) https://youtu.be/zItfTs9pcpU
Cave Rescuer https://youtu.be/cV58xevdcEE
- ? Manwe
- 12.09.2018 12:42
Scent? https://youtu.be/jwmkF1kzul4
¤
Plane? https://youtu.be/PMVGax6PtfY (надоедливые тарелочки :)
- ? Manwe
- 12.09.2018 09:40
Grizzly Shuttle?
Chronos?
- ? Manwe
- 12.09.2018 00:50
Тогда Xenon: https://youtu.be/OmR_vR_kEO8
- ? Manwe
- 04.09.2018 09:06
Bomber
- ? Manwe
- 04.09.2018 09:05
Ой, нет, гнуть контакты – это экстрим :)
DIN и СНП не подходят друг к другу?
- ? Manwe
- 03.09.2018 18:34
Вот такой разъём подойдёт? DIN 2x32 64FR:
https://www.danomsk.ru/shop/7-kommutatsiya/121-razemy/306-soediniteli-pryamougolnye/102293-din-2x32-64fr-2-54mm-auk/
Или для БК нужно что-то более специфическое, советское?
- ? Manwe
- 03.09.2018 17:52
Kisser, svinka – можно поподробней про угловые разъёмы и метрический шаг?
Бывают вообще гнёзда («мама»)с угловыми контактами? Я пока что нашёл только такое: http://www.quartz1.com/price/model.php?group=1152&mark=D21-32FR1D#1 – 64 отверстия, но 32 контакта. Замкнуты что ли между собой попарно как в блоке нагрузок (loopback)?
- ? Manwe
- 14.08.2018 17:22
BD – переделывать, нужно!
¤
И да – Excess Team делали всё по принципу «одна демка = одна флешка», посекторное чтение со строго заданных секторов (сама демка начинается с 32-го блока, вроде). Геометрия флешки фиксированная.
- ? Manwe
- 14.08.2018 17:12
Очень крутая штука!
Её бы еще совместить с контроллером HDD СМК-512...
¤
А подскажите заодно как нумерауются контакты УП? Хочу спаять Covox, схема есть, но какой контакт как именуется на разъёме – не понял.
- ? Manwe
- 11.08.2018 22:59
gid: видимо, использует не все головки и сектора. Сейчас уже вряд ли найдёшь HDD с числом голрвок меньше 16 и секторов меньше 63. Поэтому у меня всё получается :) Кажется, и CF-карты с такой конфигурацией (16/63). Различается только число цилиндров.
- ? Manwe
- 11.08.2018 22:49
Сеачать здесь: http://demoscene.ru/demo/demo1b.php3?2018
- ? Manwe
- 11.08.2018 16:50
BD, да гуглил я всё :) Виртуальные же головки есть у более поздних IDE-винчестеров. PC BIOS понимает.
- ? Manwe
- 11.08.2018 16:45
Будут ли работать команды START и STEP на БК0011М с контроллером SMK-512 в Halt-режиме этого контроллера?
- ? Manwe
- 11.08.2018 13:06
BD, пробовал - USB Image Tool не видит HDD, подключенный через переходник IDE-USB.
gid: мы тут экспериментируем с записью образов hdi на флешки и винчестеры неподходящей конфигурации. SMK и прошивка АльтПро справляется с этим несоответствием, всё работает. Главное у hdi не задавать больше 16 головок и 63 секторов. А меньше - работает.
¤
P.S. мне тут советуют копировать утилитой DD под DOS. Disk Director, наверное. Или Norton Disk Doktor. Пока не понял :)
- ? Manwe
- 10.08.2018 22:53
Чем бы образ БК-шного винчестера переписать с PC (DOS, Windows) на старый добрый IDE HDD?
- ? Manwe
- 07.08.2018 11:41
10 PRINT CHR$(47+INT(RND(2)*2)*45);
20 GOTO 10
- ? Manwe
- 07.08.2018 11:05
Не знаю в какую тему написать, но раз уж тут зашла речь...
Есть такая идея для MK-DOS 3.18 и Micro Commander beta:
https://cdn1.savepice.ru/uploads/2018/8/7/e2f98b7f0e9db0dd3a833e0d5ee0779c-full.png
- ? Manwe
- 04.08.2018 00:48
Проверил трассировкой.
Первичная загрузка (с любого логического диска при удержании клавиши с буквой диска) – в память по адресу 20000 читается 7 блоков и если первая команда NOP, делается CALL на неё. При этом блок параметров винчестера не перетирается и его адрес (2000) хранится в R3.
Затем идет вторичная загрузка – в память по адресу 1000 читается один блок и если он начинается с NOP, делается CALL @#1000. При этом не только R3 хранит адрес блока параметров винчестера, но ещё и в R0 помещён номер логического диска, с которого совершена загрузка.
Так что есть способ программно определить с какого логического диска была загружена система или демка! Можно в коде первичного или вторичного загрузчика проверять байт 34(R3).
- ? Manwe
- 03.08.2018 11:07
У меня нет реальной БК :(
На эмуляторе GID в системе MKDOS 3.17 не было проблем с TWO_HDD.
Может быть в коде MC что-то поменялось, что мешает выбрать диск «c:» (строчная буква)?
- ? Manwe
- 03.08.2018 10:25
В MKDOS 3.18 не работает TWO_HDD :( Выбрать букву master-диска можно (долгое удержание буквы), а букву slave-диска нельзя (долгое удержание буквы с шифтом). Печаль!
Может быть тогда в MKDOS 3.18 добавить нативную поддержку двух HDD? Чтобы после всех букв (разделов) master-диска шли буквы (разделы) slave-диска?
- ? Manwe
- 03.08.2018 10:18
BD, я понимаю, что демка читает посекторно сама. Вопрос в другом: если демка говорит контроллеру «читай сектор 3 с цилиндра 5 головкой 1» – какой блок выдаёт контроллер АльтПро? Реальный физический 3/5/1 с самого начала диска или со смещением (с учётом того, что мы запустились с логического диска и у него уже своя нумерация блоков)?
- ? Manwe
- 03.08.2018 06:25
Идея хорошая
- ? Manwe
- 03.08.2018 06:19
S_V_B, не масштабирует. Можно любого размера. Например, спрайт 32x41
- ? Manwe
- 03.08.2018 06:17
Да, надёжней всего – перекачать заново образ с pouet.net и записать COPDEV’ом на отдельный раздел HDD (например Z:). Включить БК, удерживая z
- ? Manwe
- 02.08.2018 23:13
E-bun здесь брали? http://www.pouet.net/prod.php?which=68705
Должен быть загрузочным.
- ? Manwe
- 02.08.2018 21:31
Наш конвертер графики:
http://thesands.ru/bk0010/image-converter/
-
«
1 | 2 | 3 | 4 | 5 | »
?