Взлом карманного компьютера "Электроника МК-85"

Электроника МК-85 это советский карманный компьютер. Не калькулятор, не записная книжка, не бейсик машина. На нам можно программировать в машинных кодах. В компьютере установлен 16 битный процессор с системой команд PDP-11, процессор работает на частоте 2 МГц. В компьютере установлено ОЗУ объемом 2 или 6 килобайт, жидкокристаллический экран 60x7 точек, в ПЗУ объемом 32 Килобайта записан Бейсик, калькулятор и какие то неинтересные нам программы. Компьютер может работать в режимах: экономии и турбо. В режиме экономии компьютер потребляет до 20 мВт и может работать от аккумулятора от 80 до 220 часов.

Всё это очень здорово. Расстраивает только одна мелочь. Подключить МК-85 к компьютеру или каким либо внешним устройствам невозможно, так как у компьютера нет ни одного внешнего информационного разъёма. Проблема не в электронике, как раз в схеме компьютера предусмотрен внешний разъем, просто разъем не был установлен и разъем не был поддержан программно. Все (первые) программы и данные вводятся с клавиатуры и хранятся в памяти компьютера, пока не разрядится аккумулятор.

С одной стороны, работать на таком маленьком экране 60x7 точек неудобно, с другой стороны, это был самый доступный карманный компьютер в СССР. Он поступил в продажу в 1986 году и стоил всего 145 рублей. Это было дешевле любого компьютера.

Компьютер выполняет программы на Бейсике и хоть это было не предусмотрено разработчиками, но еще и в машинном коде. Запуск собственного машинного кода стал возможен благодаря ошибке в подпрограмме обработки нажатия кнопки [AC]. Если во время выполнения команды INPUT нажать клавишу [AC], а затем клавишу [EXE], то интерпретатор Бейсика сделает JMP на символ Бейсик программы следующий за выполнявшейся командой INPUT.
Воздержаться
  • avatar

Преобразователь RGB в VGA на STM32F405

Уже десять или двадцать лет назад программисты научились формировать видеосигнал на микроконтроллере. Обычно для этого использовали SPI контроллер. Это такая штука, которая равномерно бит за битом передает данные из оперативной памяти на вывод микроконтроллера. Данные для отправки по SPI подготавливаются блоком и пока этот блок отправляется, процессор может заняться другими делами.

STM32F103


Я подумал, а можно ли использовать два SPI контроллера, по одному данные загружать со скоростью обычного телевизора, а по другому выгружать со скоростью VGA? Т.е. записать в память микроконтроллера STM32 поток данных (видеовыход) с тактовой частотой 10 МГц (для Ориона 128, там разрешение 384x256 50 Гц), а затем выдать его с частотой 18 МГц (VGA 800x600 56 Гц).

Я попробовал. Я использовал самый дешевый и массовый МК STM32F103 стоимостью 35 рублей (в Китае и давно). На STM32F405 я перешел позже.
Воздержаться
  • avatar

Суперспектрум ALF

Однажды в Беларуси разработали суперспектрум ALF TV GAME, это гибрид Спектрума и Денди. У ZX Spectrum 48K было 4 основных недостатка, которые авторы решили в своём суперспектруме. Какие это недостатки?

1) Что бы загрузить игру, пользователю надо было каждый раз вводить сложную команду LOAD "". Даже современные пользователи не сразу понимают, куда нажимать на клавиатуре ZX Spectrum, что бы добиться результата. Нажимаешь L, O, A, D и… и что то не то.

2) Играть на клавиатуре было не удобно. Особенно, когда клавиши не нажимались, скрипели. Хочешь одну кавычку? Получи 3!

Поэтому авторы Эльфа заменили клавиатуру на геймпады.

3) Любая игра долго, нудно и не всегда загружалась с кассеты. 5 минут в детстве длились очень долго. Ватка со спиртом и расплющенная с одного конца спица от велосипедного колеса всегда была под рукой.

4) Любой мог скопировать игру и тем самым задушить зарождавшийся рынок программного обеспечения.

Поэтому авторы заменили кассеты на картриджи с ПЗУ.
Воздержаться
  • avatar

Making of Lo-Fi Motion

Приветствую всех читателей хайпа!



Я планировал написать making of про демку ещё в феврале, но только сейчас звёзды сошлись. Ну ничего, лучше поздно, чем никогда. Началось всё в декабре 2019-го, когда мне внезапно по телефону позвонил fatalsnipe, и спросил, не хочу ли я сделать хоть какое демо на DiHalt 2020 Lite. Хотя до пати оставалось меньше месяца, я согласился, т.к. первоначальный планом было порыться в старых загашниках, взять пару эффектов и склепать что-нибудь абы было.
Воздержаться
  • avatar

Заброшенная идея для игры UGH на ZX Spectrum

Сначала я хотел написать аналог UGH.


(Арт не мой).

А вот набросок кода да Java Script мой. Можно кликнуть по картинке и играть стрелками.
Кликаете, а потом сразу жмете стрелки. Человечек будет летать.

Графика максимально подогнана под ZX.
Воздержаться
  • avatar

Наброски Жу-Жу на AY8910

Эта мелодия долго не выходила из головы, а тут подвернулись ноты.
Ну и я вчера набросал за 15 минут, а сегодня еще подправил.

Воздержаться
  • avatar

Экспериментальный ассемблер Z80 с синтаксисом Си.

Однажды я подумал. А почему бы не попробовать в ассемблер не добавить условия if (flag_z) {… } else {… }, не добавить циклы do {… } while(--b). Это бы сократило количество меток в программе, сделало бы программу более наглядной. Сделало бы для меня. Я для себя всё это затеял. Помимо этих if, while, так же можно заменить команды ADD на символ +, команду LD на символ =. Таким образом появился компилятор cmm, на котором я уже написал несколько программ.

Вот, например, кусочек кода из игры, который выводит звуковые эффекты:

alemorf.ru/pi/4/index.html
Воздержаться
  • avatar

Очередная мелодия для игры ПИ 8 бит

Последнее Испытание 8 бит
Мелодия: Игра с огнем
Компьютер: ZX Spectrum 128K / AY8910
Музыкальный редактор: Vortex Tracker II

Автор музыки: Антон Круглов (не ищите, он к ZX сцене отношения не имеет, это композитор sarumanrecords.ru)
Автор текста: Елена Ханпира
8 битная версия: Алексей Морозов

Тут я не старался что то добавить от себя, например ударные, просто аккуратно переписывал ноты с партитуры.
Поэтому получилось менее интересно, чем прошлые мелодии.

Воздержаться
  • avatar