Eugene
Есть кто демосценой интересуется, кстати? Или пишет, может.
Dmitrij
https://yandex.ru/museum/yrgb-2019_mobile?utm_source=habr&utm_content=post020719 вроде это
афигеть! даже на 8битном железе можно вполне себе ничегошные шедевры клепать !
Eugene
Чувак, кстати, неплохой движок сделал для игр под спектрум. На примере Марио демонстрировал. https://www.pouet.net/prod.php?which=83620
Dmitrij
640 KB should be enough for everyone 🙂
who its said: Gates or Carmack or ?
Dan
640 KB should be enough for everyone 🙂
640K is more memory than anyone will ever need.
Dan
Так точнее цитата
Aiwan \ (•◡•) / _bot
#book ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР ZX-SPECTRUM Программирование в машинных кодах и на языке ассемблера (1993)
Aiwan \ (•◡•) / _bot
fasm в руки и настальгировать
Eugene
Вопрос. Если нет разметки в MBR, как ведёт себя BIOS? Это как-то документировано? У меня к примеру, глючит мой загрузочный код — исполняется код из середины почему-то.
Eugene
Очень странное явление.
­
Или 0xAA 0x55... не помню порядок байт...
Eugene
55,АА. У меня вообще-то стоит автоматический выбор UEFI и легаси. Может, из-за этого глючит, ща попробую. Но кто-то говорил, что должна быть разметка, иначе бывают проблемы.
­
А мне говорили, что кур доят... Видел же «птичье молоко»?
Eugene
Факт такой, что когда я очищаю Patron Table, начинается странное поведение. Сейчас включил Legacy only — то же самое. Когда PT в порядке, то и код работает нормально. Не принимаю в чём проблема, сейчас попробую поисследовать...
Eugene
а откуда выполняется твой код если мбр нету? с биоса?
Как это мбр нету? Сектор есть, а разметки в нём нет.
Ask
а, разделы не нарисованы.., а отладить в боче/куему? может биос игнорит косяк и думает что в пт правильные адреса и читает разделы, а там старт с 0х0 получается оно и ...
Eugene
а, разделы не нарисованы.., а отладить в боче/куему? может биос игнорит косяк и думает что в пт правильные адреса и читает разделы, а там старт с 0х0 получается оно и ...
Я ща попробую ещё что-нибудь. Код запускается из этого сектора явно (там видны специализированные сообщения), но работает явно не как надо.
Ask
твой код точно правильно работает при затертости? он же парсить должен эти записи
Eugene
Да там просто мини-игрушка. Это не загрузчик фактически.
Eugene
Короче, без ПТ стартует у меня со смешения 28h..30h (точно не скажу, но в этом диапазоне). Трэш какой-то! Лол!
Vladimir
Легаси пофиг на разметку, он выполняет код из lba 0 при наличии в конце сектора 0x55 0xAA.
Теоретически да, и сигнатура даже не нужна. Но на практике поведение биосов совершенно непредсказуемо, в том числе для int 13h может быть открыт доступ к единственному разделу, при попытке обращения за его пределы возвращается ошибка.
Vladimir
Сигнатура нужна, иначе сектор считается не bootable.
Она нужна загрузчикам. Биосу положено считать сектор 0 по адресу 7C00 и прыгнуть туда, пофиг что там. Если биос что-то там парсит - это неправильный биос и грузит неправильные ОС.
Eugene
Она нужна загрузчикам. Биосу положено считать сектор 0 по адресу 7C00 и прыгнуть туда, пофиг что там. Если биос что-то там парсит - это неправильный биос и грузит неправильные ОС.
Если биос не будет проверять сигнатуру, как он поймёт, что это корректный сектор? А не просто чистый (заполненный нулями или ещё чем-то), как и весь диск, например.
Eugene
Короче... это пипец! При загрузке с флешки, на которой нет Partition Table, перед передачей управления по адресу 0:7C00 обнуляются байты по смещениям 1C..1F и 24 (hex) 🤦🏻‍♂️
Eugene
У меня. Сейчас поищу обновление BIOS'а...
­
Мамка не гнилобайт, случаем?
Eugene
Она самая :)
­
Ясно. Главный забиватель хуёв на стандарты это.
Eugene
Перепрошиваю на версию чуть посвежее (провода, тот же 12-й год). Напишу о результатах.
Eugene
Заставка стала аскетичнее, но вместе с тем немного красивее 🤣
Eugene
Но, сука, теперь вообще не запускает код с флехи, падла. И ничего не выводит 🤦‍♂
Eugene
А через 10 сек перезагрузка. Любопытно.
Eugene
Не, по теме та же херня. Не помогло.
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
Тестовый код скинь посмотреть
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
Или в qemu прогони. Или в борще
Dan
#book ПЕРСОНАЛЬНЫЙ КОМПЬЮТЕР ZX-SPECTRUM Программирование в машинных кодах и на языке ассемблера (1993)
Это очень хорошая книга. Я когда-то её держал в руках, но давно уже потерял из виду. Рад, что снова её вижу, уже в электронном виде :)
Dan
Спасибо
Eugene
Или в qemu прогони. Или в борще
Там всё норм. И в VMware тоже.
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
Eugene
Ох уж этот медленный режим...
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
Вот попробуй :)
Ты исходник скинь. Не у компа увы сейчас
Eugene
Vladimir
Если биос не будет проверять сигнатуру, как он поймёт, что это корректный сектор? А не просто чистый (заполненный нулями или ещё чем-то), как и весь диск, например.
Ему и не надо это понимать. В правильно установленной системе там всегда загрузчик. Сигнатура AA55 появилась вообще с DOS 3, ЕМНИП, до этого в бутсекторе не было bpb, а тип фс определялся по первому байту FAT
­
Там всё норм. И в VMware тоже.
Что говорит о кривости гнилобайта.
Eugene
Чудеса)
Это не чудеса, это глюк биоса.
Eugene
Зависнет все к чертям собачьим и всë
А со второго диска не должен грузиться?
­
И вообще, прочитай как происходит загрузка в legacy системе.
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
А выхлоп есть какой?
Eugene
Вот такая мысль интересная появилась: https://t.me/pro_osdev/9757
Eugene
А выхлоп есть какой?
В смысле выхлоп?
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
Вывод на экран
Vladimir
А со второго диска не должен грузиться?
Для этого есть сетап, не? И потом - сигнатура AA55 - выдумка мелкомягких, кто сказал, что все файловые системы должны следовать этому соглашению?
Vladimir
То, что биосы парсят нулевой сектор - это чистейшая отсебятина
Eugene
Вывод на экран
Конечно. Везде есть.
Eugene
Вот такая мысль интересная появилась: https://t.me/pro_osdev/9757
Гляньте вот тут объяснение сему факту.
𝐦𝐚𝐤𝐟𝐥𝐨𝐲
uefi не такой 😁
­
uefi не такой 😁
Тихо! А то сейчас выясниться какая нибудь ещё ересь!
Vladimir
Да причём тут фс! Это. Блять. Метка. На. Секторе. Диска!
А файловая система состоит не из секторов? То, что в FAT и ее наследниках это так, необязательнл везде так.
Vladimir
Сетап — это понятно. Но защита от дурака же должна быть хоть какая-то.
В 1981 компьютеры не предназначались для дураков
Vladimir
ФС — логика. Legacy БИОС работает с физическими, сырыми секторами.
Вот именно. Задача биоса - читать и писать сектора, не вникая в их содержимое. Содержимое - часть логической структуры ФС. Что было в нулевом секторе у CP/M? Я не помню, но уж точно ничего FAT-подобного.