(бухай): программируй
148 subscribers
465 photos
96 videos
3 files
65 links
Мысли, дегустация и код
Download Telegram
Немного про случайные числа.

Как известно, компьютеры по большей части не генерируют истинно случайные числа. Для генерации обычно пишут специальную функцию, которая берет за основу либо текущее время, либо какие-то другие непредсказуемые для пользователя значения из регистров памяти.

Вот и я столкнулся с такой проблемой. В Commodore Basic есть встроенная функция, которая генерирует случайные значения. Но проблема в том, что бейсик я отключил, чтобы осталось больше памяти для программы на ассемблере.

Поэтому на помощь, как ни странно, пришел звуковой чип 🎚
Я не очень разбираюсь в звуке и музыке, поэтому напишу своими словами )

В звуковом чипе есть 3 дорожки, в каждую из которых можно записать последовательность нот. При этом можно изменить форму сигнала. Одна из форм сигнала - шум, и SID его генерирует случайным образом.

В общем, суть ясна. Мы включаем третью дорожку, дабы две другие остались для звуков и музыки. Накидываем на дорожку шум с максимальной частотой. А потом из специального регистра считываем случайное значение от 0 до 255.
Потом полученное число можно модифицировать (например, если надо получить число от 0 до 31, то просто отсекаем 6-8 биты случайного числа побитовым И).
This media is not supported in your browser
VIEW IN TELEGRAM
И главный экран игры готов. На два вида машин ушло 8 изображений, так как они состоят из двух спрайтов (всего 64*8=512 байт), и разнонаправленные машины - это тоже разные изображения, а не отражения. При появлении новой машины меняется ее цвет на случайный (всего 7 цветов). Ну и направление движения тоже выбирается случайным образом.
👍2
Подошел только что ко мне коллега, которому уже лет под 70 наверное. Но он очень активный, активнее меня в 29. Тоже программист.

Говорит: нашел твою статью на DTF, классно пишешь)

Речь про это: https://dtf.ru/u/34713-aleksandr-logachev/1917240-commodore-64-issledovanie-dolin-pamyati.

Я, конечно, немного офигел от такого поворота событий, но было приятно☺️

Возникает вопрос: стоит ли поменять имя канала, прежде, чем на работе узнают, как он называется?)
👍1
Ладно, что-то я совсем отошел от названия. Вторая половина уже давно перевесила первую. Так что тут два варианта:
- менять название;
- выпить наконец-то пивка и написать про него.

Так что на выходных будет обзор на какое-нибудь пиво 🍺
2
А вот блин и без пива =(
Но зато сделал уже довольно много для игры.

Теперь можно остановить машину и проверить права, которые могут быть фальшивыми (всего доступно 32 легальных документа. Можно и больше, но пока берегу память).

Для проверки документов надо зайти в базу данных, в которой уже можно пролистать все 32 документа и сравнить поля.

Но, документов для проверки будет два: права и регистрация. Пока что готовы только права.

Ну и пока что не готовы основные функции: отпустить, выписать штраф и попросить взятку.
👍2
И на все это ушло больше 1500 строк кода (а в ассемблере такие длинные программы - это норма) и 4,36 Кб памяти. Основной объём памяти занимают текст и код программы. Графика же в сравнении практически ничего не весит.
🤯1
С тех пор, как я приобрел себе Commodore 64, на моем телефоне внезапно начали появляться эмуляторы разного старого железа.
Конечно, это вообще нельзя сравнивать с реальным компьютером, и даже эмулятор под Windows будет более удобным.

Но если нужно что-то быстро проверить, то мобильный эмулятор справляется очень неплохо
А вот еще один эмулятор. Он воспроизводит работу советского компьютера Электроника БК 0010, который я тоже очень хочу в свою пенсионерскую коллекцию
Но ни один компьютер я не хочу купить так сильно, как Apple II. Никогда не был яблочником, но тут уж сам боженька велел им стал.

Проблема в цене и доставке. Продаются они только в Штатах (может и в Европе найдутся), и только от 1000 долларов за нормальные экземпляры😭
Конечно, есть и более доступные варианты. Вот это, например Texas Instruments TI-99/4A. И он дешевый. Но в России тоже найти нельзя
А вот знаменитый ZX Spectrum наоборот, в России имеется, да в таких количествах...
Но в основном - это советские клоны оригинального компьютера, которые собирались вручную в гараже.

Оригинальный Спектрум, да в нормальном состоянии, найти довольно сложно
👍1
Решил тут разобрать джойстик, почистить и посмотреть вообще, как он устроен. Ну такие вайбы из детства, когда ради интереса разбирались все механические игрушки в доме
Так вот, на джойстике 4 кнопки: две на корпусе и две на ручке. Вот здесь две пластины на плате - это кнопки. Они подключены параллельно и выходят к одному и тому же контакту. То есть делают одно и тоже действие )
А вот две пластины на ручке: верхняя кнопка замыкает правую пластину с левой, а левая кнопка замыкает левую пластину с правой. То есть они тоже идентичны.
А потом сигнал идет от пластин к тому же самому контакту, что и от кнопок на корпусе. То есть все 4 кнопки делают одно и тоже:)