Надо было мне сразу дать ссылку на вариант эмулятора с самопальной реализацией повтора строки. Эта версия у меня для проверки в Opera 12… Да, этот вариант работает, в том числе и у меня на Опера 12.18. Думаю, если открыть отдельную тему о моей концепции процессора (не реализации или идеи - они крайне безобразные) и попытаться в дискуссии обсудить некоторые "тонкие" моменты - не очень плохо?) Открывайте, конечно. Только тут народа мало - постоянных посетителей всего несколько человек. Можете ещё где-нибудь на http://iforum.pro/forum.php , http://phantom.sannata.ru/forum/ , http://nostalgy.net.ru/forum/ попытать счастья, там контингент побольше. По поводу эмулятора... Элементaрную функцию повтора строки n-раз разработчики внедряли в JS более 25 лет! Надо было мне сразу дать ссылку на вариант эмулятора с самопальной реализацией повтора строки. Эта версия у меня для проверки в Opera 12… Здесь всё в порядке, схема рисуется. Правда, чтобы она нарисовалась, нужно, после выбора из выпадающего списка названия схемы, нажать Image или Movie, иначе на картинке показана она же в ASCII. Так и стоит, пока я, например, не введу что-нибудь, хотя бы пробел, в текстовое поле, тогда картинка превращается уже в графическую схему. "Жук" в режиме Movie тоже бегает. Да, проблема наблюдается и в том, что и под Opera 12 не работает. А ведь когда-то проверял - работало! Сейчас - вообще ничего не отображает. P.S.: Спасибо за содействие!
Консоль JavaScript при каждом нажатии на Trace выдаёт:
Uncaught TypeError: Object . has no method 'repeat' (program):440
Зря я решил отказаться от собственной функции в пользу этой repeat…
Вроде как исправил…
(Нажмите на Reset и потом на Start. Область дисплея должна начать очищаться, а таблица команд и дизассемблинг должны отображать активность трассировки. Проверял сейчас специально в Opera 12)
Видимо в GitHub они что-то всё-таки поменяли, раз эмулятор отказал и ascii-схемки.
(Почти всегда проверял в Opera 12: Если в ней работало, значит и в других должно)
Мелочь, но всё же…
(Смотрю вот, за границей у них сейчас мода типа строить компьютеры на транзисторной рассыпухе. У нас на форумах очень часто относятся, если не скептически, то без особого интереса.
Думаю, если открыть отдельную тему о моей концепции процессора (не реализации или идеи - они крайне безобразные) и попытаться в дискуссии обсудить некоторые "тонкие" моменты - не очень плохо?)
Кaк ни крути, а вина - программиста… Выходит, в новых скриптах я что-то не то сделал.
А консоль ошибки какие выдаёт? Напротив, вот как раз на старом Хроме хорошо было бы тоже добиться запуска.
Консоль JavaScript при каждом нажатии на Trace выдаёт:
Uncaught TypeError: Object . has no method 'repeat' (program):440
Но, главное же - это генерируемая в canvas схема! Или, простите, парсер тоже ошибку даёт и ничего, кроме самих ASCII-схем не видно?
Здесь всё в порядке, схема рисуется. Правда, чтобы она нарисовалась, нужно, после выбора из выпадающего списка названия схемы, нажать Image или Movie, иначе на картинке показана она же в ASCII. Так и стоит, пока я, например, не введу что-нибудь, хотя бы пробел, в текстовое поле, тогда картинка превращается уже в графическую схему. "Жук" в режиме Movie тоже бегает.
]]>У меня тоже Chrome, только старый - 24-й. К сожалению, более новые на моём компьютере не работают (нет SSE2).
Старый вариант эмулятора под ним заработал вроде бы нормально, по крайней мере, я вижу трассировку и т.п. А вот новый - ни в какую, ни на какие клавиши не реагирует и т.п.
Чуть позже попробую под более новыми браузерами.
Кaк ни крути, а вина - программиста… Выходит, в новых скриптах я что-то не то сделал.
А консоль ошибки какие выдаёт? Напротив, вот как раз на старом Хроме хорошо было бы тоже добиться запуска. Раньше я старался аккуратно придерживаться правил кроссбраузерности. Но, так как разработки по большей части не покидали просторы моего дискового пространства, я стал "безобразничать".
Ниже - гифка с таблицей системы команд эмулируемого процессора. Очень похожа на ту цветную таблицу из журнала РАДИО тех далёких лет. Да, напоминает ту самую от 580ИК80. Так как там многое - то же самое, но перегруппированно в соответствии с концепцией.
Так, команда останова HLT у процессора i8080 имеет код 076h, а у i8086 - 0F4h. Тогда как здесь верное решение - код 00, как в строчках. К сожалению, у x86 код 00 означает ADD и без средств защиты, как под плоским DOS, прыжок на "нулевую" область зацикливалось сложением.
Короче говоря, что с детства "наболело", то и реализовал в эмуляторе (пока) с амбициями прошить всё в DE1.
Насчёт парсера ASCII-схем - может быть, стоило бы использовать для вертикальных линий "трубопровод" - "|" ?
Мне кажется, они бы так смотрелись лучше, чем из восклицательных знаков, и это не псевдографика, а чистый ASCII.
Знак "!" вместо "|" мною использовался лишь как дань РАДИО-86РК по-привычке. Это не принципиально и можно исправить.
Но, главное же - это генерируемая в canvas схема! Или, простите, парсер тоже ошибку даёт и ничего, кроме самих ASCII-схем не видно? А "жук" с символом параграфа по проводам схемы тоже не бегает? Консоль что пишет? (Старый вариант с псевдографикой работает?)
Например, выбрав схему АОНа, через секунд 20-40 (в зависимости от производительности ПК) должна появиться схема как в прилагаемой выше гифке (radio199309)…
Насчёт парсера ASCII-схем - может быть, стоило бы использовать для вертикальных линий "трубопровод" - "|" ?
Мне кажется, они бы так смотрелись лучше, чем из восклицательных знаков, и это не псевдографика, а чистый ASCII.
В принципе, интересная идея. Только у меня эти схемы больше не с "Радио" ассоциируются, а с FIDO, там часто размещали такие небольшие схемки в эхах.
Вo времена FIDO я только осваивался в Бейсике РК и постигал тайны машинного кода, прогуливая школу
Я так сходу и не пойму, что тут изображено - слишком много разных типов символов. В отличие, например, от вот такого:
Хотя тут не чистый ASCII, но выглядит нагляднее.
Изначально первая версия скрипта обрабатывала схемы с символами псевдографики. Но, на практике требовался специализированный текстовый процессор (как ФОТОН под DOS 3.1) с поддержкой блочного выделения текста и псевдографического рисования. Что выходило за рамки функций встроенных редакторов на форумах и часто превращало схему в груду &#-амперсандов.
Единственное "но" - мне кажется, что Ваши обозначения в ASCII-вариантах схем как-то не совсем наглядны.
Планировалось, для "сторонних" и ленивых сделать редактор с мышью. А ограничение 96 ASCII-кодами диктуют свои правила также. Тем более, для обмена схемами можно пожертвовать визуальной эстетикой исходника, если требуется стабильность парсинга и экспорта в CAD. Искущённые же могут без особого труда освоиться в специфике символики.
А нельзя как-то парсер настроить, чтобы он понимал именно такого рода ASCII-схемы? Возможно, с какими-то небольшими модификациями? Т.е. некий гибрид Вашего варианта и "классического"?
Как я уже сказал, первый вариант так и работал. Но небыло стабильности. И это крайне бы затрудняло бы экспорт, что скрипт из инструмента обмена схемами с перспективой их непосредственного экспорта для запуска симулятором превращает в простую эстетическую и бесполезную игрушку.
Однако, ответ положителен: Если заглянете в исходники, найдёте текстовое представление каждого элемента и его регулярное выражение в шаблонах.
Очень открытый пример (меньше 300 скрипт-строк) - должен работать.
Резистор кодируется так:
01 ..... 0-угол, 1-палитра
... .....
.9. -\\-. 9-очередь прорисовки
... .....
0,1 ..... 0,1-позиция
02 .....
... .....
.9. -//-.
... .....
0,1 .....
11 ..!..
... ..\..
.9. ..\..
... ..!..
1,0 .....
12 ..!..
... ../..
.9. ../..
... ..!..
1,0 .....
И "реагирует" на -\\- или -//-. Если сменить на [//], их и будет парсить.
Насчёт эмулятора 8080, я, если честно, не понял, как он работает - может, расскажете подробнее? Т.е. я открыл ту ссылку, что Вы дали, а дальше? На Start и Trace он у меня почему-то никак не реагирует.
Так как этот скрипт - потомок, написанный с нуля и пока официально не представляемого, в нём есть некоторые интерфейсные недочёты. Например, отсутствует справка.
Так, клавиша F7 - селектор (FPS, IPS, и т.д.), клавиши F6/F8 - инкремент/декремент (для FPS, IPS и т.д.), F1 - один шаг эмуляции, F4 - старт эмуляции.
Возможно, проблема с браузером? Тестирую всё в Chrome, хотя и FF тянет вполне.
Попробуйте старый вариант. Или в этом варианте нажмите F4. Хм… Ничего не работает?
P.S.: В целом, большое спасибо за замечания… И за то, что позволили здесь "помусорить".
Увидел Мегапроцессор и прослезился.
Считаю и уверен, что даже 8-битные процессоры зря забросили из быта (нету планшетов с Андроидом под 8-битным процессором, например). Как я выше писал, мой проект x80 - попытка встряхнуть i8080 хорошенечко так, чтобы и система команд стала визуально в таблице "ровнее", и появилась перспектива на линейку с обратной совместимостью.
С одной стороны, мнемонически несколько x86-совместим, а с другой - для реализации "вживую" на транзисторах тоже достаточно годен…
= +--------------------*---*-----
! ! = = ! ! =
!/ \ ! ! ! R\ !C
C= R\ !/ !/ =C \ =
C ! R ! C= C= ! R ! C
<-:--) +-\\-*-+ ! C ! ! +-\\-*-:-*-+
) C ! ! ! C (-:-) C ! ! ! ! !
)-:-*---/} +-:-( )-:-*-*---/} C= )/+-
! T ! ( ) ! T ! ! )!!
! ! ! ! C= ! ! ) (
! ! ! ! ! ! ! ! !
+--------*-----*---*-----*----*---*-*-*-
C1:2,2 C2:4..15 C3:82 C4:82 C5:4..15 C6:5,1 C7:4..15 C9:10 C8:3,9 C10:15 C11:22 C13:82 C12:0,068
T1:GT329A T2:GT329B
L1 L2 L3 L4 L5
R1:15K R2:2,2K R3:75K R4:2,2K
Я так сходу и не пойму, что тут изображено - слишком много разных типов символов. В отличие, например, от вот такого:
┌────< +U
│
│
┌┴┐10k
│ ├<──┐
└┬┘ │ 1.5 Bольт
│ ┌┴┐▌ M1 0.1
│ │ │▌───┬──┤├──< к усилителю
│ └┬┘▌ ┌┴┐
│ │ │ │ 470 Ом
│ │ └┬┘
└────┴─┬───┘
─┴─
Хотя тут не чистый ASCII, но выглядит нагляднее.
А нельзя как-то парсер настроить, чтобы он понимал именно такого рода ASCII-схемы? Возможно, с какими-то небольшими модификациями? Т.е. некий гибрид Вашего варианта и "классического"?
Насчёт эмулятора 8080, я, если честно, не понял, как он работает - может, расскажете подробнее? Т.е. я открыл ту ссылку, что Вы дали, а дальше? На Start и Trace он у меня почему-то никак не реагирует.
]]>Имея специфическое хобби, занимаюсь разработкой в сфере устаревших технологий.
Парсер принципиальных ASCII-схем является реализацией идеи описания электрической схемы алфавитно-цифровой текстовой комбинацией (пример схемы усилителя и схемы АОНа), несколько раз публиковавшихся на страницах журнала РАДИО (смотрите в прилагаемом файле). В перспективе, расчитывалось добавить функцию трассировки ascii-схемы для составления полноценного списка узлов с экспортом как в svg, так и netlist под spice. На специализированных форумах используются специальные Java-движки для визуального рисования схем и архивирования. Тогда как ascii-схемы можно экранировать особым bb-тэгом для визуализации, подобно математическим формулам.
На многих форумах эта идея активно критикуется как шаг назад в пещерную эпоху алфавитно-цифровых терминалов.
Думаю, на данном форуме идея найдёт своих сторонников. Возможно, поддержку тоже (в частности, консультирования по части экспорта и редактирования)…
Эмулятор i8080 как часть проекта x80.
Особенность скрипта в том, что ядро процессора описывается не switch-case-древом. Передав функции скрипта шаблон, аналогичный в некоторой степени справочным таблицам по конкретному процессору, генерируются специальные структуры, обеспечивающие функционирование комплекса ассемблер+дизассемблер+эмулятор.
Тем самым, в режиме реального времени можно изменять таблицу системы команд процессора через текстовое поле.
Скрипт разрабатывался с расчётом эмуляции как i8080/z80 или 6502, так и более сложные. На данный момент шаблонного описания i8086 пока не разработано, но вполне возможно в перспективе и в принципе…
P.S.: Надеюсь, что не ошибся с выбором форума и тематика найдёт заинтересовавшихся…
]]>