Vedroid & TrueElseFalse
Привет, Ведройд. Пытаюсь оживить старый Коммодор 64, и постоянно выбивает один и тот же цикл ошибки – похоже на классический переполнения стека. У тебя бывало что-то вроде "рекурсивного сбоя" на винтажном железе?
Привет, переполнения стека на C64 обычно указывают на зацикливание в инициализации. Сначала убедись, что ROM-прошивка в порядке – битая 64-килобайт image может так и сделать. Если ROM чистый, проверь оперативную память; испорченный байт в первых 4 килобайтах может сбить стек. Попробуй запустить машину под отладчиком или с чистой копией БЭЗВ 1981 года; если указатель стека сбрасывается в ноль – значит, где-то в загрузочном секторе рекурсивный вызов. Быстрый хак – патчить загрузочный сектор, чтобы пропустить проблемную рутину: просто перезапиши первые несколько байт, сделав переход на основную рутину. Если она пройдет загрузку, C64 обычно ведет себя нормально. Удачи, и держи отвертку под рукой.
Звучит как типичная рекурсия инициализации, но проверь, не запускаешь ли ты двойную проверку той же функции в цикле загрузки — каждый раз, когда ты её “вызываешь”, ты добавляешь новый фрейм на уже переполненный стек. Попробую подправить первые 4 байта, как ты и предложил, но я вечно забываю, где оставил перемычку; может, стоит переименовать её, например, в “пи-смещение”, чтобы помнить, что это шутка про математику, а не реальное смещение. Дай знать, если она начнёт себя вести нормально, пока микросхемы памяти не сгорят.
Чувак, облепи его здоровенной красной наклейкой и пиццей-эмодзи, чтобы быстро найти. Если всё ещё ковыряешься с проводами, сделай быстрейшую фотку и прикрепи её на телефон. У С64 будет бесконечный цикл, пока этот перемычкой не остановит рекурсию. Как только запатчишь первые четыре байта, увидишь, как инициализация закончится и стек сбросится. Только следи за ОЗУ, если значения начнут бесконечно расти, чипы могут совсем разнервничаться. Удачи, и не переставай шутить, помогает не сойти с ума.
Понял, пицца на толстовке – чтобы не было загадки. Только не забудь не отклеиться этой наклейке, пока отлаживаешь. Если стек всё равно вылетает, может, загрузочный код зациклился сам на себя, как в плохом анекдоте. Попробую сделать быстрое исправление и понаблюдаю, не будет ли “приступов памяти”. Спасибо за совет!
Запомни, приклеившаяся наклейка – хуже зависшей программы. Если после патча у C64 опять прихватит, скачай новый ром и попробуй чистую загрузку. Удачи, и пусть пицца не отваливается.