Обсуждение В ESP32 обнаружен BASIC интерпретатор

Victor

Administrator
Команда форума
Полный текст новости опубликован на Hackaday

Для тех, кто не любит читать на английском - кратко:

Пытливые исследователи ESP32 обнаружили "пасхальное яйцо".
Если на ESP32 притянуть GPIO12 к питанию и перезапустить модуль - модуль уходит в бесконечный boot loop, затем в терминале отправить <CR> (перевод строки) между перезагрузками, то модуль перестает перезагружаться и выдает приглашение BASIC интерпретатора.
 

pvvx

Активный участник сообщества
Полный текст новости опубликован на Hackaday

Для тех, кто не любит читать на английском - кратко:

Пытливые исследователи ESP32 обнаружили "пасхальное яйцо".
Если на ESP32 притянуть GPIO12 к питанию и перезапустить модуль - модуль уходит в бесконечный boot loop, затем в терминале отправить <CR> (перевод строки) между перезагрузками, то модуль перестает перезагружаться и выдает приглашение BASIC интерпретатора.
Напоминает ZX Spectrum — Википедия :) но код наверно длиннее, а команд меньше...
Sinclair BASIC — Википедия : В версии для компьютера ZX Spectrum существует 86 операторов Sinclair BASIC, включая команды (50), функции (31), и другие ключевые слова(5):
 

Сергей_Ф

Moderator
Команда форума
Удивительно, что на еэспишки еще никто эмулятор Спектрума не сделал. По ресурсам, вроде должно хватить. Неплохая игровая консоль получилась бы. А уж игр в сети тыщи три наберется.
 

pvvx

Активный участник сообщества
Удивительно, что на еэспишки еще никто эмулятор Спектрума не сделал. По ресурсам, вроде должно хватить. Неплохая игровая консоль получилась бы. А уж игр в сети тыщи три наберется.
Энти Спектрумы ещё при начале надоели, пока несколько ошибок не исправил в разных платах, толко тогда они пошли валом... последние изменения и дополнения так и не ввели в платах, из-за этого приходилось вырезать "фирменную защиту проверяющую подделку" на играх... тысчи полторы вырезал и на рынок, про них вы и говорите... ;) Ни один из эмуляторов это не поддерживает. Там идут только вскрытые варианты игр. Об этом большинство до сих пор не знает... На ютубе так и распинаются - типа вторая часть игры не грузится и т.д. :)
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
@pvvx снимаю шляпу. Спасибо, Вам. Я на Спектруме (самодельном, естественно) только играл и программировал в Бейсики с небольшими вставками на Асм.
 

pvvx

Активный участник сообщества
@pvvx снимаю шляпу. Спасибо, Вам. Я на Спектруме (самодельном, естественно) только играл и программировал в Бейсики с небольшими вставками на Асм.
А я не буду говорить про все "народные темы", где довелось участвовать... а то сожрут... живьем.
 

Atom

New member
Энти Спектрумы ещё при начале надоели, пока несколько ошибок не исправил в разных платах, толко тогда они пошли валом... последние изменения и дополнения так и не ввели в платах, из-за этого приходилось вырезать "фирменную защиту проверяющую подделку" на играх... тысчи полторы вырезал и на рынок, про них вы и говорите... ;) Ни один из эмуляторов это не поддерживает. Там идут только вскрытые варианты игр. Об этом большинство до сих пор не знает... На ютубе так и распинаются - типа вторая часть игры не грузится и т.д. :)

Что то верится с трудом. Если можно, то пруф пожалуйста напишите. Сам ковырял в молодости загрузчики программ. Не встречал ни одной игры, которую не возможно было вскрыть. Сокурсники выскрывали даже на этапе загрузки: когда грузится первый блок "фирменного загрузчика" разработчиков, в котором и были всяческие проверки, настройки и прочие махинации.
 

Сергей_Ф

Moderator
Команда форума
@Atom на этапе загрузки было только изменение скорости загрузчика. Это не защита, имхо.
 

Atom

New member
@Atom на этапе загрузки было только изменение скорости загрузчика. Это не защита, имхо.
там много чего было. Например изменение бордюра при загрузке. В некоторых играх он не полосатый был, а однотипный фон менял яркость. Вспоминаю кусок одного загрузчика, там действительно когда то была видимо защита. Там после начала загрузки основного кода проверялся определенный байт. Видимо разработчики сделали какую то уловку с записью на кассете, что при перезаписи с касетника на касетник, уровень этого сигнала не мог переписаться правильно.
Но этот кусок уже был взломан до нас: в месте условного перехода стояли нопы.
 

idxi

New member
Припоминаю, действительно были "красивые загрузчики" с кассет, там еще картинка с #4000 в виде мозайки "пятнашек" грузилась - эффектное зрелище было) ну и как защита ессесно применялась от копирований (скорости в бодах были выше после стандартного загрузчика).. чтобы закопирить с мафона на мафон такую гейму - нужно было иметь качественную ленту и мафон) ех.. времена :/ современной молодежке непонять..
 

pvvx

Активный участник сообщества
@Atom на этапе загрузки было только изменение скорости загрузчика. Это не защита, имхо.
Стояла проверка - при прерывании Z80 выводит код на шину и при разном коде читаются разные данные из программируемой матрицы в оф. версии - т.е. не составляло труда определить клон и защита часто использовалась при второстепенных подгрузках уровней. Так-же и с чтением пустой шины - это обращение в некоторых вариантах использовалось для задания начальной последовательности random и на играх в клонах последовательность random всегда была одинакова - итог = одна и то-же последовательность в игре... Вроде ещё что-то было в порту джойстика. На большинстве клонов небыли подключены все биты... Итогом стало распространение в основном примитивных игр, а многие интересные игры содержащие защиты толпой были выкинуты, как нерабочие...
Переход на TR-DOS (дискеты) тоже требовал адаптации многих игр. В итоге всякие начальные картинки и прочее было из них удалено...
 
Последнее редактирование:

Сергей_Ф

Moderator
Команда форума
Ну я, 99% только взломанные игры только и видел. Ничего подобного, там уже не было. Тем более, плата у меня была самая простая - Ленинград. Там точно, никакой защиты не было :)
Но после РК-86 и это был прорыв.
 

Юрий Ботов

Moderator
Команда форума
Первым делом когда получил демо-боард попробовал запустить встроенный basic :)

>about
ESP32 ROM Basic (c) 2016 Espressif Shanghai
Derived from TinyBasic Plus by Mike Field and Scott Lawrence
>
>mem
32543 bytes free.
>
>help
A very Basic ROM console. Available commands/functions:
LIST
NEW
RUN
NEXT
LET
IF
GOTO
GOSUB
RETURN
REM
FOR
INPUT
PRINT
PHEX
POKE
STOP
BYE
MEM
?
'
DELAY
END
RSEED
HELP
ABOUT
IOSET
IODIR
PEEK
ABS
RND
IOGET
USR
>
 

Юрий Ботов

Moderator
Команда форума
Ну ... не единственное. Он работает - я попробовал. Просто нафига он нужен? :)
 

dadigor

New member
Не могу повторить опыт - далеко от дома... А в каком пространстве работают Peek и Poke?
 

Юрий Ботов

Moderator
Команда форума
Во всем описанном в ESP32 Technical Reference Manual V1.5 Table 1. Address Mapping за исключением того что указано там ка Reserved. C резервированным ведет себя по разному - иногда выдает пустую строку иногда вопрос what?
Код:
>phex peek(&HFF)
What?
>
>phex peek(&H3FF4403C)
DEAB
>
>phex peek(&H3f400000)
FFFFFFFF
>
>phex peek(&H3f800000)
BAD00BAD
>
>phex peek(&H3ff80000)
A88EDB7D
>
>phex peek(&H40000000)
1049C500
>
>phex peek(&H400C0000)
A88EDB7D
>
>phex peek(&H40c00000)
E501C500
>
>phex peek(&H50000000)
BE12695C
>
>phex peek(&H50002000)

>
 
Сверху Снизу