Блог страдающего Лиса
Lorem ipsum hello dolor sit world amet

06 фев 2023 Пн Пишу небольшой биос

Как и обычно, в течении некоторого времени я пишу программы, потом закрываю эти проекты, потом снова открываю и так далее. Сегодня сделал и проверил, чтобы в вериляторе работал мой проект с 86-м процессором (16 битным), и еще чтобы запускался на DE0. Как ни удивительно, но места занимает этот процессор не так много, около 3700 ALM из 18к всего доступных, что лишь только приблизительно 21% от кристалла. Это вообще-то, хорошо.
Контроллер прерываний работает вроде неплохо, я решил, что сделаю по-хорошему клавиатуру, через IRQ#1, с записью принятых данных в кольцевой буфер в оперативной памяти, кстати, которой довольно немало, 288 Кб, это только про кеш, а я потом обязательно сделаю DRAM, чтобы можно было адресовать до 1Мб и даже выводить видео 320x200. Единственное что могу сказать, это мне пока что вряд ли нужно в данный момент.
Этот биос не должен быть очень большим, уметь разбирать данные с клавиатуры, выводить на экран и работать с SD-картой, как минимум. Прямо минимальная функциональность должна быть какая-то, чтобы начать более-менее писать небольшие программы. Как-то еще думал, сделать ли игру на ASCII, но чего-то, мне кажется, плоховато получится, наверняка, так что это вряд ли в данный момент.
Код у меня так разбросан по всем углам, не могу никак один проект в одном месте держать и вообще, создать один проект и чтобы он работал нормально, обязательно по разным проектам одно и тоже понаписано, прямо не знаю, такое у меня дурацкое свойство есть, так делать.
Теги: Процессор

05 фев 2023 Вс Просто переделал свой процессор

Не смог я выдержать и все же, переделал код процессора с утра с 32-х битного в 16-битный, для того, чтобы он влез в Марсоход2. Синтезировал процессор этот на циклоне и вышло около 6.8 тыс элементов. Ниже привел отчет по завершении компиляции. И это лишь только процессор. Пока что вмещается.

Помимо самого процессора, на кристалле должна быть также и вся остальная периферия, это например, контроллер прерываний, клавиатура, как минимум и еще бы хорошо туда поместить карточку SD, без нее сложно будет. Хотя, как я ранее и говорил, я не собирался делать программы большими (если я вообще их буду делать, вот в чем вопрос).
Snimok_ekrana_ot_2023-02-05_11-25-58.png
Вот так выглядит запущенная простая программочка:
        org     0
        mov     ax, $b800
        mov     es, ax
        mov     ax, cs
        mov     ds, ax
        mov     si, hello
        mov     di, 0
        mov     ah, $30
@@:     lodsb
        and     al, al
        je      $
        stosw
        jmp     @b
hello:  db      "Operational sistemcher. Award Modularo. Contest mecha!",0
Эта программа сделана только для теста, она пока что отображается лишь в вериляторе.
Теги: Процессор

04 фев 2023 Сб Река Жизни

Лис сидел на большом камне, погрузив лапы в прохладную воду реки, иногда бултыхал ими в воде. Рябь небольших волн бежала по воде, а солнце искрами отражалось в них. Летний солнечный день, сочная синева необъятных небес и ни одного облачка. Легкий ветерок ласково и приятно шевелил шерсть на теле, воздух был свеж и слегка мокрый от воды. Песчаный берег далеко уходил вперед, однако на его поверхности лежали булыжники разного размера. Видимо, специально для таких, как Лис, сидящий на теплом камне и беззаботно смотрящий на протекающую мимо реку.
Мысли его текли так же, как и река, медленно и неторопливо, куда-то вдаль по течению, в неизвестные пространства. Часто реку сравнивают с жизненным течением, якобы жизнь является рекой, которая течет только вперед, делая изгибы и развороты, иногда образуя водовороты, впадая в безбрежный Океан. Жизнь, как таковая, течет вперед, увлекая за собой все с собой. Всё идет вперед и нет смысла сопротивляться этому Великому Течению, как и плыть против него. Сколько бы кто не старался этого сделать, всеобъемлющая сила течения великой реки отнесет его вперед, заставит сдаться даже самого ловкого, умелого и сильного, ибо ничто не сможет преодолеть это движение...
Лис закрыл глаза... ощущения... он чувствовал эту всемогущую и бесконечную силу самого Космоса. Время, которое течет вперед, все изменяя и видоизменяя, проходя эволюцию. Пульс жизни ощущался во всём — от самого маленького атома до самой Вселенной. Ритмы космической симфонии пришли в его сознание и захватили, подняли ввысь. Перед внутренним взором предстали огромные пространства, наполненные бесконечно разнообразной жизнью на разных уровнях своего развития, от самой низшей и примитивной до разумной и даже более чем разумной, с высшими формами сознания, организации материи и самого времени. Мир необъятен... он не смог бы вместить даже самую малость его величия в своем разуме.
До чего же небольшой, крохотной, даже ничтожной показалась его скудная жизнь на этой планете. Он один, как крохотная песчинка в колоссальном объеме, но несмотря на это, он часть этого объема, ведь из таких небольших песчинок и составляются большие пляжи с песком. Малое в большом, ничтожное в великом, количество в качество. Это объединение микрокосма с макрокосмосме как неотъемлемое состояние всего вокруг, как единого целого.
Величественное зрелище настолько захватывало, что когда он вновь открыл глаза, то некоторое время не мог понять, где он находится, что делает и почему именно он тут. Это чувство космического единения... и все вокруг, оно хоть и было достойно, но казалось слишком скучным и обыденным. Лис понимал, что дело вовсе не в природе самих вещей, а именно в нем самом. Просто Лис однажды утратил в себе способности к познанию этого мира, слишком сильно углубился в самого себя и забыл обо всем, кроме узкой полоски неясного света, исчезающей где-то впереди.
Теги: Рассказ

04 фев 2023 Сб Разобрался почему падает сайт

Короче, сел я утром и посмотрел по логам, что происходит и вижу что, вижу то, что падает то потому что памяти для mysqld не хватает, процесс уничтожается экстренно. Памяти на хостинге у меня мало, всего 1 Гб. Я бы мог увеличить VPS тариф, но это дорого!
У меня есть 2 пути. Либо увеличить ресурсы сервера и соответственно, увеличить оплату, либо оптимизировать сайт. Пока что я пошел по второму пути, но если все будет плохо, то придется увеличивать ресурсы. Как же это грустно и печально выходит. Программное обеспечение постоянно раздувается до неимоверных пределов и мне это не нравится. Вот бы еще понять, почему так происходит, ведь раньше ничего не падало и все было нормально.
С утра разметил второе видео по разработке 8088. Как и обычно, так лениво этим всем заниматься, но я хочу все же, завершить это дело, и посмотреть, сколько реально времени у меня тратится на разработку такого процессора, все-таки.
Теги: Дневник

03 фев 2023 Пт Еще один 2.5 часовой ролик

Как я рассказывал раньше, я занимаюсь тем, что записываю видео о том, как делаю процессор 8088. Первое видео я уже сделал, там оказалось 3.5 часа, а второе видео я собирал почти неделю, и всего лишь получилось 2.5 часа. До чего же я тормознутый слоупок...
Неясно для чего все делается, ради чего, и вообще, я не понимаю что мне от всего этого надо, десу.
Сегодня падал сайт чего-то очень часто, аж два раза упал mysql, очень подозрительно, что могло произойти. По логам я ничего не понял, что произошло, но вот что подумал, что надо бы мне файловый кеш намутить на проде, ибо так не дело, если опять упадет, у меня тут появится надпись connection error и это отстой. Такое допустить нельзя. Пусть хоть какой-то кеш будет. Кеш не ускорит работу сайта, у меня он и так быстро работает и без него (потому что уже есть кеш, но в mysql), но зато увеличит надежность при падениях базы. А с этим надо еще разобраться, по какой причине. Я видел в логах только что то, что там были побиты таблицы, а значит, mysql завершился очень экстренно — возможно, по нехватке памяти, не знаю. Очень сложно это сказать.
По-быстрому внедрил этот кеш, но мне кажется, это будет на самом деле, не очень хорошей идеей, потому что его надо же обновлять постоянно. А если коннект упадет опять... мда, посмотрим. Может еще и откажусь от этого кеша вообще. Или сделаю иначе. Пока что пусть будет, пособираю инфу, которая у меня там есть.
А вообще лучше было бы сделать чтобы при падениях базы мне об этом оповещение приходило куда-нибудь или скрипт автоматически подымал бы ее, что еще лучше. Но самый смак был бы в том, чтобы понять, почему так происходит и предотвратить в будущем.
Теги: Дневник

02 фев 2023 Чт Симулятор станка ЧПУ на OpenGL

Вчера что-то музыку слушал разную, и подумал, как же ее лучше визуализировать. Закрыл глаза и перед моим внутренним взором поплыли разные неясные образы (абстрактно), в котором участвовали разные поршни, шестеренки, прессы и прочий стимпанк, и за этот образ я и ухватился. Ведь где-то я видел уже такое! Точно, это производственные процессы же.
И тут далее, развивая мысль, думал о том, а как и где я это собираюсь сделать? Возможно, можно применить OpenGL для этого, как один из вариантов. Есть еще один вариант, это собственно, рейтрейсинг, чтобы лучше и красивее все это было. Единственное, что рейтрейсинг придется самому делать, да и не очень то он быстро работает. Очень много открытых вопросов вообще, потому что я даже не начал это делать, а уже почти сдался, ибо задача крайне сложна.
Мне бы хотелось сделать так, чтобы эти станки работали под музыку и делали вид, что производят что-то. Это лишь только анимация их работы, не более того. И выложить все это на ютуб и смотреть, залипать на них. То есть, сделать только для того, чтобы смотреть как на демки какие-то. Да и вообще, почему бы мне просто не отточить работу с трехмерной графикой, а такого рода роботпроцессы как раз идеально подходят под эту задачу.
Еще надо заняться дальше трехмерной графикой, к примеру, процедурно сгенерировать какие-то предметы сложнее чем куб или сфера, потому что более ничего сложнее этого я не делал, а это очень плохо. Сколько уже думаю про трехмерную графику, а ничего не делаю, полный отстой... Так что вот так, надо собраться, и сделать уже, наконец. Хватит откладывать великому прокрастинатору.
Теги: Дневник

30 янв 2023 Пн Двадцатая попытка создания процессора 8088

Не секрет, что мне нравится писать процессоры снова и снова. Даже я принял это как данность, что процесс написания процессора (какой ироничный каламбур!) мне просто нравится. Несмотря на это, необходима, все равно, цель, иначе процесс то процессом, а что в итоге делаю, сам не пойму, неизвестно. Недавно выложил на ютубе 3.5 часа видео, с того момента записал еще 1 час работы, в котором в целом, прилично было сделано инструкции, но они все так сказать, несложные, однотипные. Например, инструкции mov r, imm или условный короткий переход, все эти инструкции не особо сложные, потому я справился с ними суммарно за 35 минут, а остальные 25 минут делал встраивание процессора в девборду Марсохода2, там где Циклон 3.
Теперь к самому главному. Как ранее я говорил, цель моего всего действия в том, чтобы, когда я сделаю процессор, запихнуть его в какой-нибудь ретро-корпус и запускать очень простые программы. Мне конечно, несколько жалко, что нет диска, чтобы сохраняться, но ничего, не страшно, для этой цели вообще-то, у меня будет процессор AVR. Так вот, что я буду запускать на процессоре? Например, создам экран загрузки BIOS, для сохранения ощущения аутентичности. Второе, что сделаю, это сам Биос, с разными опциями, которые правда, сохранять нельзя... да, вот все упирается в сохранение. Потом я сделаю микробейсик, где можно будет писать и выполнять очень простые программы. За основу возьму 512 байтный бейсик с бутсектора.
Еще у меня есть в планах делать микропрограммы и даже микроигры. Единственное только, что они не поместятся в 32кб и надо диск... да что же такое, везде диск нужен! Эх, видимо, без диска компьютер не может никогда считаться полноценным, поэтому какой-то диск, но прицепить придется. Мне только не хочется делать проводками, а как-то по-хорошему сделать надо, все-таки.
Snimok_ekrana_ot_2023-01-30_09-55-04.png
На шилде расширения есть 2 usb разъема, которые я могу применить не совсем так как надо, а прицепить туда sd-карту. Так что без диска никак вообще. Надо думать как его сделать правильно. Конечно, на шилде еще есть место для дополнительных пинов, их тоже можно использовать. Надо проверить, надо все проверить и сделать — без диска никак, как я сейчас только что выяснил.
Теги: 8088

28 янв 2023 Сб Почти три с половиной часа кодинга

Не буду я делать по 8 часов видосы, сделал пока что 3 с половиной часа, и вот что я успел сделать за это время:
instr.png
Моя любимая табличка с выполненными опкодами. Для 8088 интересная ситуация получается, там некоторые опкоды работают не так, как на обычном 86-м процессоре, например, все 60-6F отведены под алиасы. Так как я решил что не буду отклоняться именно от 8088, то там будут алиасы. Более новые программы уже не запустить на этом процессоре... А я и не собираюсь, вообще-то. Максимум HELLO WORLD будет на нем запущен, а для этого даже простейшего процессора хватит.
Проще говоря, хочу создавать простые программы для процессора этого, например, те же сортировки. Ресурсов Циклона 3 хватит. Там много не надо, 38 Кб для программ и данных, 8 Кб для видеопамяти, в итоге и получается 46 Кб. Программы для этого процессора будут предельно простые, вообще. Это важно, прямо вообще важно, потому что когда делаешь такие вещи, хочется сделать что-то большее, чем вывод HELLO WORLD на экране, а что-то такое, сверх-космическое.
Как и обычно, после того как сделаю процессор (если сделаю), то на нём захочется запустить или создать операционную систему. Вот этого делать не надо! Все потому, что для того, чтобы запустить ОС, нужен диск, которого я подключить не могу к Марсоходу. Даже если бы и мог, толку от нее ноль.
Микро-операционная система может быть только для того, чтобы запускать разные мелкие программки из памяти. Например, можно сделать интерпретатор бейсика, который будет запускать заранее загруженные программы. Все должно быть максимально, предельно просто. Вот в чем суть всего того, что я хочу сделать и всегда делал.
Простота программ должна быть обязательно.

27 янв 2023 Пт Создание 8088 процессора под видеозапись

Короче, вот что начал я делать, стал писать процессор на верилоге, но не просто так, а записывая абсолютно все. Процессор с нуля. Единственное что могу смотреть — это доки и какой-нибудь си-код, например, из PCem эмулятора, ну и на сайте у себя тоже. Копипаста запрещается, все должно быть написано руками без копипасты из своих других процессоров. Делаю это для того, чтобы оценить то время, за которое реально создам процессор с нуля. И это должен быть процессор 8088, чтобы он вмещался также в Циклон 3 для Марсохода2.
I8088.jpg
Все отлично знают, что у меня просто мания создавать процессоры, особенно архитектуры 86-го. Много создавал уже разных эмуляторов, и мне очень хочется именно зафиксировать на видео. Оно получится видимо, больше чем 8 часов, но это нормально. Все эти видео специально не буду ускорять, прямо так склейку сделаю и выложу на ютуб себе, сохраню как есть. Ну, может быть, музыку наложу, чтобы совсем не скучно было. Никто смотреть не будет все равно это дело.
На данный момент я работал над процессором 2 часа и 5 минут и за это время смог сделать, но не отладить:
  • Чтение опкода и префикса
  • Сделал АЛУ на 8 операции
  • Чтение байта modrm и считывание опкода из памяти и регистров
  • Запись в память или регистр
На самом деле, это довольно значительно, но поскольку я уже ранее все это делал, то не так сложно. Отладки не выполнял, просто пока что написал по памяти. Посмотрим потом, как это работать будет.
Далее надо сделать исполнение инструкции, и вот тут самая большая проблема. Инструкции выполняются минимум за 2Т, но я принципиально решил, что не буду ничего ускорять. Процессор 8088 и так медленный был и выполнялся на низких частотах (от 5 до 16 Мгц), так что я ровным счетом ничего не потеряю от того, что запущу на 25 Мгц.

26 янв 2023 Чт Немного о спектруме и то, как он у меня появился

Пиииии... тшик. Пииии.... Короче, это была имитация звука загрузки спектрума. Что я могу сказать про него? Вообще я раньше уже рассказывал о моем знакомстве с этим компьютером, возможно, вскользь. Впервые спектрум я увидел, когда попал в город К., перед этим я приехал из города В., и начал активно искать, где бы посидеть за компом. Когда я приехал в город К. в 1999 году, я поступил в 5-й класс, сначала в школу номер 2. Город был мне незнаком и мы несколько раз переезжали, прежде чем оформились в каком-то определенном месте в некоторой квартире. Переездов было довольно много, сначала возле детского сада и школы, потом поближе к школе, потом еще в одном доме на той же все улице. Мы ездили и ездили каждый месяц с места на место и никак не могли найти долговременное жилье, все потому, что у нас не было никаких денег — совсем не было ничего.
Еще одним промежуточным перевалом было месячное проживание в бараке у папиного друга. Странно он к нему относился почему-то. Оба алкаши. А ладно, не буду вспоминать. После барака мы переехали еще в один, еще худший вариант в совсем уж дурной дом. В то время как раз я нашел компьютерный кружок, который только-только открывался и у меня была наконец-то возможность найти свое занятие по душе — программировать. Преподавателем этого кружка был С.Ю., человек достаточно странный и интересный с какой-то стороны. Я уже не могу точно сказать ни как он выглядел, ни какой он был человек. Память постепенно стирается...
Когда я туда пришел, там было довольно много учеников, с некоторыми я даже подружился. Помню одного, с которым мы много чего обсуждали — его имя Макс Ч. И вот как раз в этом кружке узнал, что у него был спектрум, причем очень навороченный — 128k с AY-чипом и дисководом. Скорее всего это был Pentagon, судя по всему, или Scorpion, этого я сказать уже не могу, не помню. Помню только то, что этот компьютер меня заинтересовал тем, что на нем была очумительная музыка, диск и там шли графические демки. Они меня по-настоящему очаровали и заворожили. Мне потом все время хотелось нарисовать демки разные и работать с трехмерной графикой.
Помимо спектрума, я также сидел на УКНЦ — именно той, у которой тоже был дисковод и где можно было сохранять и загружать программы. Хотел для нее сделать Norton Commander для бейсика, но так и не смог, и потом уже было бесполезно этим заниматься. Программу я сохранил на будущее, и до сих пор ее держу и дорожу как зеницей ока.
В 2000 году мы переехали в другой дом, который я называю "желтый дом", потому что он был каменный и покрыт желтой краской. В этом доме мы прожили примерно с 2000 по 2007, вроде как, если не ошибаюсь. В то время это была самое длительное время, когда мы жили в каком-то одном месте — аж целых 7 лет! До этого мы постоянно куда-то переезжали, не имея своего жилья и не имея возможности его как-то купить.
И вот в 2000 году мне пришлось устроиться в другую школу, потому что до той школы стало очень и очень далеко ходить, я тратил примерно около часа, только чтобы дойти до той школы. Вроде как я смог закончить 5-й класс и поступить уже в 6-й класс в новой школе, где наконец-то смог доучиться до конца.
Очень интересный рассказ выходит — не о спектруме. Да, в 2000 году у меня этот спектрум как раз и появился на столе. Это был наш первый компьютер, но он был не совсем наш, а того самого Макса М. Появился он еще немного ранее, мне в конце 1999 года дали компьютер домой погонять, я сидел и в том страшном доме пытался что-то программировать. Плохо то, что компьютер этот был без дисковода и пришлось каждый раз программу набирать снова. И вот потом, когда уже мы переехали в желтый дом, там мне дали приличный спектрум, где я и набирал программы до посинения. Только вроде как сохранить так и не мог их, не знаю, почему. Наверное потому, что все равно их надо было сохранять на ленту, а пользоваться TRDOS-ом я не мог, не знал как это делается. Сейчас вроде как знаю, но все равно не пользовался. Так вот и пришлось постоянно набивать программы снова.
Совершенно не помню, что я там пытался делать, на этом спектруме. Я выучил ассемблер тогда на вполне приличном уровне, пытался декодировать ROM, писал на ассемблере и на Бейсике программы до появления 386 в моей жизни. Но то уже другая история, которую я, кстати говоря, уже рассказывал.
На этом, пожалуй, мои странные воспоминания можно завершать.
Теги: Истории