Заметки неумелого программиста.
Заметки неумелого программиста.
21 дек 2015
Месяц работаю над специфическим визуализатором электрических схем.
Открыл отдельную страницу и несколько дней списывал схему АОНа из журнала РАДИО.
В зависимости от размера схемы, её отрисовка занимает значительное время (от считанных секунд до минуты) и следует терпеливо дождаться отображения.
Скрипт имеет каталог ТТЛ-микросхем (распиновку) и несколько примеров описания различных узлов (от аналоговых до цифровых)
Это вторая моя сложная работа, после ремейка музыкальной системы
Подгонял под сервис, чтобы была возможность вставлять изображения схем в любые форумы, но неудачно (требуется платная услуга задержки снятия скриншота)
14 апр 2015
Христос Воскрес!
Купил монитор. Первый ЖК против моих четырёх CRT...
Демонстрация процессора практически готова. Включает в себя:
1. Генератор визуальной таблицы команд;
2. Простейщий дизассемблер;
3. Средства пошаговой и автоматической эмуляции;
4. Простейщий ассемблер.
Некогда, лет эдак 5 назад, я писал свой ассемблер под i8080 и расписал его в 3700 строк.
На данный же момент разрабатываемая среда включает всё сразу, но имеет всего 1066 строк.
27 мар 2015
80x80 ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔═══╗ ╔════╦═╝ x0╚═╤═╝ x1╚═╤═╝ x2╚═╤═╝ x3╚═╤═╝ x4╚═╤═╝ x5╚═╤═╝ x6╚═╤═╝ x7╚═╤═╝ x8╚═╤═╝ x9╚═╤═╝ xA╚═╤═╝ xB╚═╤═╝ xC╚═╤═╝ xD╚═╤═╝ xE╚═╤═╝ xF╚═╗ ║ 0x ║PREFIX │MOV │MOV │MOV │MOV │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║SS |HLT│BH,[BX]│CH,[BX]│DH,[BX]│AL,[BX]│BL,[BX]│CL,[BX]│DL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]│AL,[BX]║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 1x ║MOV │PREFIX │MOV │MOV │MOV │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],BH│BH / BP│CH,BH │DH,BH │AL,BH │BL,BH │CL,BH │DL,BH │AL,BH │AL,BH │AL,BH │AL,BH │AL,BH │AL,BH │AL,BH │AL,BH ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 2x ║MOV │MOV │PREFIX │MOV │MOV │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],CH│BH,CH │CH / SI│DH,CH │AL,CH │BL,CH │CL,CH │DL,CH │AL,CH │AL,CH │AL,CH │AL,CH │AL,CH │AL,CH │AL,CH │AL,CH ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 3x ║MOV │MOV │MOV │PREFIX │MOV │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],DH│BH,DH │CH,DH │DH / DI│AL,DH │BL,DH │CL,DH │DL,DH │AL,DH │AL,DH │AL,DH │AL,DH │AL,DH │AL,DH │AL,DH │AL,DH ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 4x ║MOV │MOV │MOV │MOV │PREFIX │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],AL│BH,AL │CH,AL │DH,AL │AL / SP│BL,AL │CL,AL │DL,AL │AL,AL │AL,AL │AL,AL │AL,AL │AL,AL │AL,AL │AL,AL │AL,AL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 5x ║MOV │MOV │MOV │MOV │MOV │PREFIX │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],BL│BH,BL │CH,BL │DH,BL │AL,BL │BL / BX│CL,BL │DL,BL │AL,BL │AL,BL │AL,BL │AL,BL │AL,BL │AL,BL │AL,BL │AL,BL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 6x ║MOV │MOV │MOV │MOV │MOV │MOV │PREFIX │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],CL│BH,CL │CH,CL │DH,CL │AL,CL │BL,CL │CL / CX│DL,CL │AL,CL │AL,CL │AL,CL │AL,CL │AL,CL │AL,CL │AL,CL │AL,CL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 7x ║MOV │MOV │MOV │MOV │MOV │MOV │MOV │PREFIX │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],DL│BH,DL │CH,DL │DH,DL │AL,DL │BL,DL │CL,DL │DL / DX│AL,DL │AL,DL │AL,DL │AL,DL │AL,DL │AL,DL │AL,DL │AL,DL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ 9x ║CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL │CALL ║ ║ ║0xXX00 │0xXX10 │0xXX20 │0xXX30 │0xXX40 │0xXX50 │0xXX60 │0xXX70 │0xXX80 │0xXX90 │0xXXA0 │0xXXB0 │0xXXC0 │0xXXD0 │0xXXE0 │0xXXF0 ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Ax ║MOV │MOV │MOV │MOV │MOV │MOV │MOV │MOV │ADC │SBB │ADD │SUB │AND │OR │XOR │CMP ║ ║ ║[BX],IB│BH,IB │CH,IB │DH,IB │AL,IB │BL,IB │CL,IB │DL,IB │AL,IB │AL,IB │AL,IB │AL,IB │AL,IB │AL,IB │AL,IB │AL,IB ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Bx ║JZ │JNZ │JC │JNC │JPE │JPO │JS │JNS │CZ │CNZ │CC │CNC │CPE │CPO │CS │CNS ║ ║ ║IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB │IB ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Cx ║INC │INC │INC │INC │INC │INC │INC │INC │INC │INC │INC │INC │CMC │ROR │RCL │RCR ║ ║ ║[BX] │BH │CH │DH │AL │BL │CL │DL │SP │BX │CX │DX │ │AL │AL │AL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Dx ║DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │DEC │NOT │ │RAL │RAR ║ ║ ║[BX] │BH │CH │DH │AL │BL │CL │DL │SP │BX │CX │DX │AL │ │AL │AL ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Ex ║ │ │ │ │ │ │ │ │XCHG │PUSH │PUSH │PUSH │PUSH │PUSH │PUSH │PUSH ║ ║ ║ │ │ │ │ │ │ │ │BX,[SP]│BX │CX │DX │AX │[BX] │[IW] │IW ║ ╟────╫───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────╢ ║ Fx ║INT │INT │INT │INT │INT │INT │INT │INT │XCHG │POP │POP │POP │POP │POP │POP │RET ║ ║ ║0 │1 │2 │3 │4 │5 │6 │7 │IP,[SP]│BX │CX │DX │AX │[BX] │[IW] │ ║ ╚════╩═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╧═══════╝ 77 44 |XCHG AL,DL 66 55 |XCHG BL,CL 55 66 |XCHG CX,BX 44 77 |XCHG DX,SP 55 73 |LEA BX,[DH<<8+DL] ... EE 34 12 FF |JMP [0x1234] EF 34 12 FF |JMP 0x1234 EF 34 12 F8 |CALL 0x1234 EE 34 12 F9 |MOV BX,[0x1234] E9 FE 34 12 |MOV [0x1234],BX EF 34 12 E8 04 F9|MOV AL,[0x1234]|PUSH 0x1234+XCHG BX,[SP]+MOV AL,[BX]+POP BX EF 34 12 E8 40 F9|MOV [0x1234],AL|PUSH 0x1234+XCHG BX,[SP]+MOV [BX],AL+POP BX 7F AC 3C |AND DL,0x3C 66 83 |MOV [DX],CL 88 B2 FD |CLC 88 B3 FD |STC B0 FE -- |REP Z B0 FF -- |RET Z B1 FE -- |REP NZ B1 FF -- |RET NZ B2 FE -- |REP C B2 FF -- |RET C B3 FE -- |REP NC B3 FF -- |RET NC B4 FE -- |REP PE B4 FF -- |RET PE B5 FE -- |REP PO B5 FF -- |RET PO B6 FE -- |REP S B6 FF -- |RET S B7 FE -- |REP NS B7 FF -- |RET NS B8 FE -<DEBUG#1>-| B8 FF -<PROG#01>-|DAA B9 FE -<DEBUG#2>-| B9 FF -<PROG#02>-|DAS BA FE -<DEBUG#3>-| BA FF -<PROG#03>-| BB FE -<DEBUG#4>-| BB FF -<PROG#04>-| BC FE -<DEBUG#5>-| BC FF -<PROG#05>-|MUL BD FE -<DEBUG#6>-| BD FF -<PROG#06>-|DIV BE FE -<DEBUG#7>-| BE FF -<PROG#07>-| BF FE -<DEBUG#8>-| BF FF -<PROG#08>-|
7 янв 2015
С Праздником Рождества Христова!
Странный сон: Улица, площадь, много народа. Похоже, мои родственники. Все ожидают какого-то события.
В каком-то высоком здании со стеклянными окнами я и представитель духовенства ждём это событие, он молится.
Вечереет, фонари выключены, все замерли в ожидании, тишина.
Осознаю, что должна появиться вторая пуля, а человек должен мне помочь увернуться от неё.
Тут она появилась, повисла среди площади, вращается, ищет цель. Я на улице, а духовник не выдержал, бросился прочь и исчез. Мне страшно.
Тут понимаю, если и я убегу, кто-то из людей может пострадать. Смотрю на пулю. Она разворачивается в мою сторону. Готова понестись!
Беру себя в руки и ударяю по ней. Пуля летить прочь, попадает между двух зданий, происходит взрыв!
Все расслабились. Всё кончено!
16 дек 2014
Итоги кода?
Только сейчас вспомнил, что мой парсер лабиринтов напоминает Befunge... Это надо же, что этот раздел эзотерического поиска наконец-то оправдал себя!
Жаль, что пока не хватает опыта, чтобы делать обратное и из слов генерировать лабиринты.
Лабиринты свободно встраиваются в QR-коды, незначительно разрушая информацию. И легко выделяются на фоне общего бинарного хаоса. Правда, есть некоторые варианты другого дизайна стартового ключа. Над чем стоит и поработать в грядущем году.
30 ноя 2014
Скачал VAC. Стало удобнее.
С месяц уже или чуть более, как у сестры полетел южный мост. До этого были проблемы с памятью и частые синяки. Пару недель назад подключил её монитор к своему системнику, установил в vmWare Windows'8.1 и выделил отдельно клавиатуру с мышью. А вчера - установил и VAC. Теперь у неё и звук тоже свой.