На главную
--------------------------------------------------------------------------------
nedoPC.org
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
MCU/MPU • Re: RISC-V
Нашел интересную статью Юрия Панчула о том, что один из создателей-инженеров z80 стал фанатом риск пять:
https://habr.com/en/articles/595933/
Также нашел книгу на русском по схемотехнике риск пять:
https://www.dmkpress.com/catalog/electr ... 700-282-2/Statistics: Posted by Yuri — 22 Aug 2026 21:11
--------------------------------------------------------------------------------
Аппаратное обеспечение • Re: PDP-11/20, но на более современных TTL, без...
Ни где не видел упоминания о применении интересной, на мой взгляд, для "процессоров на рассыпухе" микросхемы 531ВГ1(74S482).
Если Воронеж не копировал просто так, на всякий случай, то надо искать, в каких воронежских изделиях применялось или планировалось к применению.Statistics: Posted by Mixa64 — 22 Aug 2026 07:46
--------------------------------------------------------------------------------
Проект nedoPC • Re: Детектор из лезвия и карандаша
Вы не одиноки: http://www.sparkbangbuzz.com/
...хотя у товарища более основательный подход 
Statistics: Posted by Black_Cat — 21 Aug 2026 15:56
--------------------------------------------------------------------------------
Orion • Re: Доработки схемы Орион
Небольшая доработка схемы ПК Орион.
Изменено:
Полностью переработан синхрогенератор.
- на горизонтальную развертку установлены синхронные счетчики 74ALS161
- на вертикальную развертку установлен счетчик 74HC4040
- добавлен сдвиг растра по вертикали (DSW1 на схеме). Верхний включенный дип переключатель соответствует наибольшему смещению растра вниз
- реализована поддержка 3-х разрешений экрана с настройками. 384*256, 480*256, 512*256. Возможна некорректная симуляция отображения картинки из-за несовершенной модели RGBIOUT.DLL. На дешифраторах U5, U6 реализованы формирователи сдвига сигналов гашения и строчного синхроимпульса. Начало импульса гашения выбирается переключением входов 6,5,4,3 мультиплексора U40 к выходам дешифраторов. Синхроимпульс двигается переключением диодов D13,D14; D15,D16; D17,D18.
- упрощена схема управления регистрами сдвига 74198, формирующими изображение
- заменены прозрачные летчи 74LS373 на защелки 74ALS574
- изменено управление буфером шины данных процессора
- арбитр памяти и эмуляторы сигналов i8080 (на инверторах) пришлось оставить "медленными" серии 74xx.
Statistics: Posted by FizikS — 21 Aug 2026 09:41
--------------------------------------------------------------------------------
Программное обеспечение • Re: Модели цифровых микросхем серий 74ALSxx, 74ASxx, 74Sxx, 74Fxx для Proteus Pro
Небольшое обновление библиотек моделей Proteus.
Добавлено:
74ALS21, 74ALS21.DM , 74ALS21.IEC , 74ALS166 , 74ALS166.IEC , 74ALS193 , 74ALS193.IEC , 74ALS241 , 74ALS241.IEC
74AS21, 74AS21.DM, 74AS21.IEC, 74AS241, 74AS8241,IEC
74S241, 74S241.IEC
74F166, 74F166.IEC, 74FI93, 74F193.IEC
74HCT21, 74HCT121.DM, 74HCT21.IEC, 74HCT166, 74HCT166.IEC, 74HCT393, 74HC93, 74HCT93, 74HCT390, 74HCT193
Установка моделей описана в топике
Statistics: Posted by FizikS — 21 Aug 2026 08:09
--------------------------------------------------------------------------------
Ternary (ENG) • Rusty-penguin OS
Rusty Penguin
https://github.com/rfi-irfos/rusty-penguin
Rusty Penguin — это полноценная операционная система, написанная с нуля на чистом Rust: собственный загрузчик, ядро, драйверы, оконный менеджер и приложения без использования ядра Linux и библиотеки libc. Цель проекта — создать повседневную настольную операционную систему, которую можно установить вместо Ubuntu. Тернарная логика (-1 / 0 / +1) используется на всех уровнях, от планировщика до среды выполнения искусственного интеллекта.
Зачем нужен третий разряд
Биты в аппаратном обеспечении являются двоичными; логика, которую вы выстраиваете на их основе, — это вопрос выбора. Rusty Penguin использует сбалансированную троичную систему счисления — цифры -1 / 0 / +1 — систему счисления, на которой работал советский компьютер «Сетунь» в 1958 году и которую Кнут назвал «возможно, самой красивой системой счисления из всех» (The Art of Computer Programming, том 2, §4.1). Это реальная, хорошо изученная система счисления, а не метафора.
Благодаря третьему разряду мы можем использовать 0 как обозначение состояния «спящий». Не запущен, не остановлен — отдыхает. Процесс, к которому ещё не обращались, — это не то же самое, что процесс, завершившийся с ошибкой. Страница памяти, к которой не обращались, не является мёртвой. Вычисление веса нейронной сети, равного нулю, не должно требовать никаких затрат.Statistics: Posted by askfind — 19 Aug 2026 15:37
--------------------------------------------------------------------------------
Околонедописишности • Re: NIBBLE8
С детства помню что это полубайт. А тут вдруг 8. Или это игра слов?)
Если и игра, то какая-то странная. Анонс на гитхабе (About) больше эмоционален, чем с отражениями технических деталей. Графика 2-битная, т.е. 4 цвета. 8 бит - ширина собственно вычислений. ИИ прокомментировал так, цитата:
"Проект NIBBLE8 назван так из-за связи технических характеристик этой фэнтезийной консоли с компьютерными терминами nibble и 8-bit. В информатике ниббл (nibble) равен 4 битам или половине байта, а название консоли отражает её 4-цветную палитру и ретро-эстетику 8-битной эпохи."
Т.е., 2 бита это 4 цвета, а 4 у нас nibble, поэтому называем так и радуемся.Statistics: Posted by Mixa64 — 19 Aug 2026 10:19
--------------------------------------------------------------------------------
INTEL • Re: Ассемблер 8080/8085/Z80 с компилятором на JS
порция обновлений.- реализовал-таки для Z80 поддержку AF' (со штрихом). пришлось в лексере прям гвоздями прибить обработку этого случая, получилось некрасиво, но что поделать...
- добавил компилятор. теперь можно создавать блоки циклов и условий как в языках высокого уровня, где выражения в условиях записываются обычными операторами.
видимо, никто не читает помощь и обратной связи не получено, поэтому составлю краткий список всех возможностей моего транслятора ассемблера.
АССЕМБЛЕР 86РК
ПОДДЕРЖКА СИНТАКСИСА ПРОЦЕССОРОВ 8080, 8085 и Z80
директивы:- .8080 -- устанавливает синтаксис команд процессора i8080;
- .8085 -- устанавливает синтаксис команд процессора i8085;
- .z80 -- устанавливает синтаксис команд процессора Z80;
- .z80compat -- устанавливает синтаксис команд процессора Z80, но ограничивает набор командами процессора i8080.
имеются алиасы к этим директивам:- .cpu 8080 = .8080
- .cpu 8085 = .8085
- .cpu z80 = .z80
- .cpu z80compat = .z80compat
по умолчанию используется трансляция команд i8080.
КОДОВАЯ ТАБЛИЦА
кодовая таблица определяет, как символы юникода будут преобразовываться в числа. это избавляет от необходимости пользоваться сторонними утилитами для преобразования русских текстов в кракозябры, типа таких: "priwet mir!".
директивы:- .charset koi7n0 -- устанавливает кодовую таблицу КОИ-7 Н0;
- .charset koi7n1 -- устанавливает кодовую таблицу КОИ-7 Н1;
- .charset koi7n2 -- устанавливает кодовую таблицу КОИ-7 Н2;
- .charset koi8r -- устанавливает кодовую таблицу KOI8-R.
по умолчанию используется кодовая таблица КОИ-7 Н2 (как в "Радио-86РК").
ВЫВОД СООБЩЕНИЯ
директива:- .print text -- выводит диагностическое сообщение text, кавычки не требуются.
в сообщении можно выводить значения переменных, меток и параметров макроса, для этого в тексте надо указать их имена, а перед именем поставить символ амперсанда ("&"), все числовые значения выводятся в десятичном формате.
ВЫВОД ОШИБКИ
директива:- .error text -- выводит сообщение text как сообщение об ошибке, кавычки не требуются.
директива .error прерывает трансляцию кода.
УСЛОВНАЯ ТРАНСЛЯЦИЯ
директивы:- .ifdef var_name -- истинно, если имя var_name определено;
- .ifndef var_name -- истинно, если имя var_name не определено;
- .if expr -- истинно, если результат выражения expr отличен от нуля;
- .elif expr -- альтернативная ветка условия с проверкой истинности выражения expr;
- .else -- альтернативная ветка, блок кода транслируется, если выражение в условии в .if/.elif было ложно;
- .ifb arg -- истинно, если строка arg пустая;
- .ifnb arg -- истинно, если строка arg не пустая;
- .endif -- завершает блок условной трансляции.
ПОВТОР
директивы:- .rept expr[, var_name] -- создаёт блок кода, который повторяется вычисленное в expr количество раз. дополнительно через запятую в директиве можно объявить локальную переменную, используемую как параметр цикла. значение переменной начинается с нуля и увеличивается на 1;
- .irp arg, { arg_list } -- создаёт блок кода, который повторяется для каждого элемента списка arg_list, значение элемента подставляется в arg;
- .irpc arg, "string" -- создаёт блок кода, который повторяется для каждого символа строки string, текущий символ подставляется в arg;
- .endm -- завершает блок повтора.
ЦИКЛ
директивы:- .while expr -- создаёт блок кода, который повторяется, пока вычисленное значение выражения expr имеет ненулевое значение;
- .endm -- завершает блок цикла.
МАКРОС
директивы:- .macro name [params] -- создаёт макрос с именем name и необязательными параметрами params;
- .endm -- завершает блок макроса.
имя макроса может быть указано перед директивой .macro.
дополнительно для каждого параметра можно указать тип или значение по умолчанию. тип указывается после имени параметра через двоеточие, значение по умолчанию -- через символ "равно" ("=").
имеются два типа параметров:- req -- обязательный параметр. будет сгенерирована ошибка, если макрос будет вызван без указания этого параметра;
- rest -- вся оставшаяся часть строки параметров, включая запятые, заносится в этот параметр, этот тип может иметь только последний параметр.
типы параметров были заимствованы из турбо-ассемблера.
вычисление выражений в аргументах макроса.
все аргументы при вызове макроса передаются как набор токенов, выражения не вычисляются автоматически, что может привести к неожиданным результатам в некоторых случаях. пример:
Code:
.macro calc expr.print calc=&expr.endmcalc 2+2
будет выведено "calc=2 + 2".
если необходимо вычислить выражение и результат передать в макрос, то перед выражением нужно поставить символ "=". пример:Code:
.macro calc expr.print calc=&expr.endmcalc =2+2
будет выведено "calc=4".
ВЫХОД ИЗ МАКРОСА
директива:- .exitm -- завершает трансляцию текущего макроса и прерывает циклы; применима к: .rept, .while, .irp, .irpc, .macro.
УСТАНОВКА АДРЕСА ТРАНСЛЯЦИИ
директива:- .org expr -- устанавливает текущий адрес трансляции равным значению выражения expr.
ВЫРАВНИВАНИЕ
директива:- .align expr[, fill] -- выравнивает текущий адрес трансляции по границе, заданной значением expr, результат выражения expr должен быть степенью двойки. необязательный параметр fill указывает, каким значением требуется заполнять пустоты. по умолчанию для заполнения используется нулевое значение.
ОБЪЯВЛЕНИЕ ИМЁН
директивы:- name .equ expr -- задаёт имени name постоянное значение, вычисленное из expr, значение не может быть изменено;
- name .set expr -- задаёт имени name значение, вычисленное из expr, значение может быть изменено последующим .set.
для директивы .set имеется два синонима: .defl и запись через символ "равно" ("="), пример:
ОБЪЯВЛЕНИЕ ДАННЫХ
директивы:- .db expr[, expr, ...] -- размещает в выходном файле последовательность байтов, значения выражений должны находиться в диапазоне -128..255, строковые литералы автоматически разворачиваются в последовательность байтов;
- .dw expr[, expr, ...] -- размещает в выходном файле последовательность 16-разрядных слов, значения выражений должны находиться в диапазоне -32768..65535;
- .ds expr -- резервирует область адресного пространства, значение выражения expr определяет, сколько байт необходимо зарезервировать.
имеются алиасы к этим директивам:- .defb = .db
- .defw = .dw
- .defs = .ds
ПОДКЛЮЧЕНИЕ ФАЙЛОВ
директива:- .include file -- подключает файл file исходного кода, имя файла можно указывать без кавычек.
транслятор не умеет работать с файлами напрямую, транслятор обращается к файлам через интерфейс, который предоставляет окружение, из которого транслятор запускается, интерфейс передаётся в конструктор при создании транслятора. в браузере -- это виртуальная файловая система, хранение файлов в которой производится в localStorage.
КОНЕЦ
директива:- .end -- завершает трансляцию исходного файла.
директиву .end использовать необязательно.
ДИРЕКТИВЫ БЕЗ ТОЧКИ
большинство директив можно записывать без лидирующей точки; к директивам, для которых точка является обязательной, относятся:- .8080, .8085, .z80, .z80compat, .cpu, .charset, .print, .error
ОПРЕДЕЛЕНИЕ МЕТОК
метка представляет собой именованный адрес программы.
синтаксис:где label -- идентификатор, который не был определён ранее в тексте программы. метки можно размещать на одной строке вместе с инструкцией, директивой или другим содержимым строки, в этом случае символ двоеточия (":") после имени метки необязателен. если же в строке определена только метка, то символ двоеточия обязателен. имена меток должны быть уникальными, переопределение меток не допускается. в качестве имени метки не могут быть использованы имена инструкций и директив.
символ "$" является предопределённым идентификатором, который обозначает текущий адрес. имена меток и символ "$" могут использоваться в командах jmp, call, а также в арифметических выражениях.
ЛОКАЛЬНЫЕ МЕТКИ И ПЕРЕМЕННЫЕ
локальные метки и переменные -- это метки и переменные, которые ограничены локальной областью действия. для определения локальной метки или переменной к её имени необходимо добавить префикс "точка" ("."). локальная область действия создаётся автоматически в трёх случаях:- при определении глобальной метки;
- при установке нового адреса трансляции директивой .org;
- внутри макроса, объявленного директивой .macro.
ВЫРАЖЕНИЯ, АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ОПЕРАТОРЫ
транслятор вычисляет выражения любой сложности с неограниченной вложенностью скобок, поддерживаются все стандартные арифметические и логические операторы, для некоторых операторов имеются символьные синонимы:- MOD -- взятие остатка от деления;
- AND -- побитовая "И";
- OR -- побитовая "ИЛИ";
- XOR -- побитовая "исключающее ИЛИ";
- SHR -- сдвиг вправо;
- SHL -- сдвиг влево;
- LT -- "меньше";
- GT -- "больше";
- LE -- "меньше или равно";
- GE -- "больше или равно";
- EQ -- "равно";
- NE -- "не равно";
- NOT -- унарный оператор логического отрицания;
- LOW -- унарный оператор взятия младшего байта 16-разрядного числа;
- HIGH -- унарный оператор взятия старшего байта 16-разрядного числа;
- ABS -- унарный оператор взятия абсолютного значения.
приоритеты операторов в основном совпадают с приоритетами операторов из СИ за исключением побитовых операторов "И", "ИЛИ" и "исключающее ИЛИ" -- их приоритеты выше операторов сравнения. это сделано намеренно, чтобы в выражениях минимизировать использование круглых скобок. например, можно записывать так:Code:
.if varA & 0x80 == varB & 0x80....endif
в языке СИ, чтобы условие корректно сработало, необходимо левую и правую часть выражения заключить в скобки.
имеются три дополнительных оператора, отсутствующие в языке СИ:- ** -- возведение в степень, имеет приоритет выше умножения и деления;
- <? -- оператор нахождения минимума;
- >? -- оператор нахождения максимума.
в выражениях можно указывать только целые числа, однако, внутренние вычисления выполняются с использованием чисел с плавающей точкой.
КОНСТАНТЫ В ВЫРАЖЕНИЯХ
транслятор поддерживает несколько стилей записи констант в выражениях.
СИ-стиль:- 0b01010101 -- двоичное число;
- 0o377 или 0q377 -- восьмеричное число;
- 0xAA55 -- шестнадцатеричное число.
Intel-стиль для ассемблеров:- 01010101b -- двоичное число;
- 377o или 377q -- восьмеричное число;
- 0AA55h -- шестнадцатеричное число.
Мотороловский стиль только для шестнадцатеричных чисел:
ПРЕДОПРЕДЕЛЁННЫЕ КОНСТАНТЫ
в выражениях можно использовать следующие предопределённые константы:- M_E -- значение числа e;
- M_PI -- значение числа π.
ФУНКЦИИ
в выражениях можно использовать следующие математические функции:- SIN, COS, TAN, SQRT, LN, LG, LOG2, ROUND, FLOOR, CEIL
ПРОДОЛЖЕНИЕ СТРОКИ
при записи выражения или в иных случаях может возникнуть ситуация, когда текст программы не помещается целиком в видимую область экрана. чтобы целиком разместить длинный текст на экране, можно использовать символ продолжения строки — обратный слэш ("\"). применять этот символ необходимо в конце строки, т.к. все символы после него будут проигнорированы.
пример:Code:
a = 123b = 456c = 789result = \((((a + b) * c) XOR (a SHL 4)) \+ (sqrt (a * b) * 100) \- (log2 (c) * 50)) \AND 65535
РАСШИРЕННЫЕ ИНСТРУКЦИИ ДЛЯ Z80
для Z80 имеются несколько фиктивных расширенных инструкций -- это инструкции, которых нет в реальной системе команд, но транслятор умеет разворачивать их в последовательность реальных инструкций.
неполный перечень фиктивных инструкций и команд, в которые они транслируются:Code:
ld bc, de ; ld b, d : ld c, e ld bc, hl ; ld b, h : ld c, l ld de, bc ; ld d, b : ld e, c ld de, hl ; ld d, h : ld e, l ld hl, bc ; ld h, b : ld l, c ld hl, de ; ld h, d : ld l, e ld hl, sp ; ld h, 0 : add hl, sp ex af', af ; ex af, af' ex hl, de ; ex de, hl ex hl, (sp) ; ex (sp), hl ex ix, (sp) ; ex (sp), ix ex iy, (sp) ; ex (sp), iy add de, bc ; ex de, hl : add hl, bc : ex de, hl add de, de ; ex de, hl : add hl, hl : ex de, hl add de, hl ; ex de, hl : add hl, de : ex de, hl add de, sp ; ex de, hl : add hl, sp : ex de, hl adc de, bc ; ex de, hl : adc hl, bc : ex de, hl adc de, de ; ex de, hl : adc hl, hl : ex de, hl adc de, hl ; ex de, hl : adc hl, de : ex de, hl adc de, sp ; ex de, hl : adc hl, sp : ex de, hl sbc de, bc ; ex de, hl : sbc hl, bc : ex de, hl sbc de, de ; ex de, hl : sbc hl, hl : ex de, hl sbc de, hl ; ex de, hl : sbc hl, de : ex de, hl sbc de, sp ; ex de, hl : sbc hl, sp : ex de, hl rl bc ; rl c : rl b rl de ; rl e : rl d rl hl ; rl l : rl h rr bc ; rr b : rr c rr de ; rr d : rr e rr hl ; rr h : rr l sla bc ; sla c : rl b sla de ; sla e : rl d sla hl ; add hl, hl sll bc ; sli c : rl b sll de ; sli e : rl d sll hl ; sli l : rl h sli bc ; sli c : rl b sli de ; sli e : rl d sli hl ; sli l : rl h sra bc ; sra b : rr c sra de ; sra d : rr e sra hl ; sra h : rr l srl bc ; srl b : rr c srl de ; srl d : rr e srl hl ; srl h : rr l
отдельно нужно рассмотреть фиктивные расширенные инструкции, в которых используются 16-битные регистры для косвенной или индексной адресации (регистровые пары BC, DE, HL или индексные регистры IX и IY). во всех подобных инструкциях можно использовать оператор инкремента (++) или декремента (--) для пары или индексного регистра. поддерживаются как префиксные, так и постифинсные инкремент и декремент. примеры:Code:
ld a, (++bc) ; inc bc : ld a, (bc) ld (--de), a ; dec de : ld (de), a ld (hl++), imm8 ; ld (hl), imm8 : inc hl ld (++iy + d), imm8 ; inc iy : ld (iy + d), imm8 and (--ix) ; dec ix : and (ix + 0) bit 3, (hl--) ; bit 3, (hl) : dec hl
в командах условных переходов, условных вызовов подпрограмм и условных возвратов можно инвертировать условие с помощью оператора отрицания (!).
перечень команд:Code:
jr !nz, label ; jr z, label jr !nc, label ; jr c, label jr !z, label ; jr nz, label jr !c, label ; jr nc, label jp !nz, label ; jp z, label jp !nc, label ; jp c, label jp !po, label ; jp pe, label jp !p, label ; jp m, label jp !z, label ; jp nz, label jp !c, label ; jp nc, label jp !pe, label ; jp po, label jp !m, label ; jp p, label call !nz, label ; call z, label call !nc, label ; call c, label call !po, label ; call pe, label call !p, label ; call m, label call !z, label ; call nz, label call !c, label ; call nc, label call !pe, label ; call po, label call !m, label ; call p, label ret !nz ; ret z ret !nc ; ret c ret !po ; ret pe ret !p ; ret m ret !z ; ret nz ret !c ; ret nc ret !pe ; ret po ret !m ; ret p
все эти фиктивные команды были навеяны ассемблером Sjasm от Sjoerd Mastijn.
в отличие от Sjasm, мой транслятор позволяет произвольную запись инкремента и декремента для регистровых пар и индексных регистров (допускаются пробелы между оператором и именем регистра), кроме того, в выражениях с индексной адресацией позволяется записывать индексный регистр в середине выражения, главное, чтобы он не был с отрицательным знаком. всё это достигается благодаря тому, что выражение в скобках рассматривается и парсится именно как выражение, а не как отдельная специальная конструкция команды, а выражению всё равно, в каком порядке записаны его операнды. вот такая запись транслируется без ошибок:Code:
ld (123 + iy ++ - offset), c
КОМПИЛЯТОР
транслятор умеет компилировать условные выражения, записанные обычной инфиксной записью, как в языках высокого уровня. это позволяет упростить исходный код программ и делать его более понятным. таким образом, условия и циклы можно выделить в отдельные блоки для которых имеются следующие директивы:- @if/@elif/@else/@endif -- условия;
- @while/@endw -- циклы с предусловием;
- @repeat/@until -- циклы с постусловием;
- @break -- безусловный выход из цикла;
- @break_if -- условный выход из цикла;
- @continue -- безусловный переход на условие цикла;
- @continue_if -- условный переход на условие цикла.
выражения могут быть любой сложности, условия могут быть объединены логическим "И" (&&) или "ИЛИ" (||). условия и циклы можно вкладывать друг в друга без ограничений. операнды в условиях сравниваются как беззнаковые, кроме случая, когда сравнение производится непосредственно с нулём: "A < 0", "A <= 0", "A > 0", "A >= 0".
допустимо также применять к регистрам операторы инкремента и декремента, но есть ряд ограничений, которые всегда надо иметь в виду:- в выражениях можно использовать только регистры, регистровые пары, числа, именованные константы и метки, переменные в памяти использовать в выражениях нельзя;
- смешивать 8-разрядные и 16-разрядные регистры в выражения нельзя;
- операторы умножения, деления и взятия остатка не могут быть применены к регистрам;
- если выражение требует вычислений или проверка условия выполняется не с аккумулятором, то содержимое аккумулятора будет потеряно, для 16-разрядных вычислений в роли аккумулятора используется пара HL.
примеры.
ветвистое условие:Code:
@if a < 0x10lxih, 0x1111@elif a < 0x20lxih, 0x2222@elif a < 0x30lxih, 0x3333@elif a < 0x40lxih, 0x4444@elselxih, 0x5555@endif
компилируется в код:Code:
ORG00000:FE 10CPI10h0002:D2 0B 00JNCLBL10005:21 11 11LXIH, 1111h0008:C3 2F 00JMPLBL5000B:FE 20LBL1:CPI20h000D:D2 16 00JNCLBL20010:21 22 22LXIH, 2222h0013:C3 2F 00JMPLBL50016:FE 30LBL2:CPI30h0018:D2 21 00JNCLBL3001B:21 33 33LXIH, 3333h001E:C3 2F 00JMPLBL50021:FE 40LBL3:CPI40h0023:D2 2C 00JNCLBL40026:21 44 44LXIH, 4444h0029:C3 2F 00JMPLBL5002C:21 55 55LBL4:LXIH, 5555h002F:LBL5:
цикл с предусловием:Code:
mvia, 123@while --acall 0x1111@endw
компилируется в код:Code:
ORG00000:3E 7BMVIA, 7Bh0002:C3 08 00JMPLBL20005:CD 11 11LBL1:CALL1111h0008:3DLBL2:DCRA0009:C2 05 00JNZLBL1
цикл с постусловием:Code:
mvia, 123@repeatcall 0x1111@until !--a
компилируется в код:Code:
ORG00000:3E 7BMVIA, 7Bh0002:CD 11 11LBL1:CALL1111h0005:3DDCRA0006:C2 02 00JNZLBL1
Statistics: Posted by vital72 — 18 Aug 2026 22:55
--------------------------------------------------------------------------------
Программное обеспечение • Re: Модели цифровых микросхем серий 74ALSxx, 74ASxx, 74Sxx, 74Fxx для Proteus Pro
Пожалуйста. Мне, как и многим другим радиолюбителям больше нравятся УГО элементов по ГОСТ, вместо безликих прямоугольников. Отсутствие симуляции микросхем в Proteus, думаю бесит многих. Пришло время исправлять недоработки...Statistics: Posted by FizikS — 18 Aug 2026 20:31
--------------------------------------------------------------------------------
Программное обеспечение • Re: Модели цифровых микросхем серий 74ALSxx, 74ASxx, 74Sxx, 74Fxx для Proteus Pro
Ух ты! Красиво.
Всегда приятно когда сделано по уму.) Респект!Statistics: Posted by Mondx — 18 Aug 2026 18:19
--------------------------------------------------------------------------------
Программное обеспечение • Re: Модели цифровых микросхем серий 74ALSxx, 74ASxx, 74Sxx, 74Fxx для Proteus Pro
А в чём отличие от 74хх? Не уж то скорость учитывается?
Ограничусь демонстрацией симуляции инверторов и триггеров:Остальные работают так, как завещали великие Datasheet-ы.
Орион-128 на этих моделях работает корректно.Statistics: Posted by FizikS — 18 Aug 2026 16:43
--------------------------------------------------------------------------------
Околонедописишности • Re: NIBBLE8
С детства помню что это полубайт. А тут вдруг 8. Или это игра слов?)Statistics: Posted by Mondx — 18 Aug 2026 15:04
--------------------------------------------------------------------------------
Программное обеспечение • Re: Модели цифровых микросхем серий 74ALSxx, 74ASxx, 74Sxx, 74Fxx для Proteus Pro
Начал клепать модельки...
А в чём отличие от 74хх? Не уж то скорость учитывается?Statistics: Posted by Mondx — 18 Aug 2026 14:38
--------------------------------------------------------------------------------
Аппаратное обеспечение • Re: PDP-11/20, но на более современных TTL, без...
нет, это другой проект, гораздо интереснее. Сравните.Statistics: Posted by ra3qdp — 18 Aug 2026 14:10