На главную
--------------------------------------------------------------------------------
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.

Orion_ALS_161.PNG

Orion_ALS_161.zip

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

Установка моделей описана в топике

Models2.PNG

DATA.zip

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 как обозначение состояния «спящий». Не запущен, не остановлен — отдыхает. Процесс, к которому ещё не обращались, — это не то же самое, что процесс, завершившийся с ошибкой. Страница памяти, к которой не обращались, не является мёртвой. Вычисление веса нейронной сети, равного нулю, не должно требовать никаких затрат.

YeWsBTuXZKWdHp6Q9YeM_UnxUIo4PGf2_9_YpBg-uY79FXhyLl64VGlFxAdO24_ynDkd4wNnhlUlEXNhB5dxN0lj.jpg

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


порция обновлений.видимо, никто не читает помощь и обратной связи не получено, поэтому составлю краткий список всех возможностей моего транслятора ассемблера.


АССЕМБЛЕР 86РК

ПОДДЕРЖКА СИНТАКСИСА ПРОЦЕССОРОВ 8080, 8085 и Z80
директивы:имеются алиасы к этим директивам:по умолчанию используется трансляция команд i8080.

КОДОВАЯ ТАБЛИЦА
кодовая таблица определяет, как символы юникода будут преобразовываться в числа. это избавляет от необходимости пользоваться сторонними утилитами для преобразования русских текстов в кракозябры, типа таких: "priwet mir!".
директивы:по умолчанию используется кодовая таблица КОИ-7 Н2 (как в "Радио-86РК").

ВЫВОД СООБЩЕНИЯ
директива:в сообщении можно выводить значения переменных, меток и параметров макроса, для этого в тексте надо указать их имена, а перед именем поставить символ амперсанда ("&"), все числовые значения выводятся в десятичном формате.

ВЫВОД ОШИБКИ
директива:директива .error прерывает трансляцию кода.

УСЛОВНАЯ ТРАНСЛЯЦИЯ
директивы:
ПОВТОР
директивы:
ЦИКЛ
директивы:
МАКРОС
директивы:имя макроса может быть указано перед директивой .macro.
дополнительно для каждого параметра можно указать тип или значение по умолчанию. тип указывается после имени параметра через двоеточие, значение по умолчанию -- через символ "равно" ("=").
имеются два типа параметров:типы параметров были заимствованы из турбо-ассемблера.

вычисление выражений в аргументах макроса.

все аргументы при вызове макроса передаются как набор токенов, выражения не вычисляются автоматически, что может привести к неожиданным результатам в некоторых случаях. пример:

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".

ВЫХОД ИЗ МАКРОСА
директива:
УСТАНОВКА АДРЕСА ТРАНСЛЯЦИИ
директива:
ВЫРАВНИВАНИЕ
директива:
ОБЪЯВЛЕНИЕ ИМЁН
директивы:для директивы .set имеется два синонима: .defl и запись через символ "равно" ("="), пример:

Code:

var2 = 123

ОБЪЯВЛЕНИЕ ДАННЫХ
директивы:имеются алиасы к этим директивам:
ПОДКЛЮЧЕНИЕ ФАЙЛОВ
директива:транслятор не умеет работать с файлами напрямую, транслятор обращается к файлам через интерфейс, который предоставляет окружение, из которого транслятор запускается, интерфейс передаётся в конструктор при создании транслятора. в браузере -- это виртуальная файловая система, хранение файлов в которой производится в localStorage.

КОНЕЦ
директива:директиву .end использовать необязательно.

ДИРЕКТИВЫ БЕЗ ТОЧКИ
большинство директив можно записывать без лидирующей точки; к директивам, для которых точка является обязательной, относятся:
ОПРЕДЕЛЕНИЕ МЕТОК
метка представляет собой именованный адрес программы.
синтаксис:

Code:

label:
где label -- идентификатор, который не был определён ранее в тексте программы. метки можно размещать на одной строке вместе с инструкцией, директивой или другим содержимым строки, в этом случае символ двоеточия (":") после имени метки необязателен. если же в строке определена только метка, то символ двоеточия обязателен. имена меток должны быть уникальными, переопределение меток не допускается. в качестве имени метки не могут быть использованы имена инструкций и директив.
символ "$" является предопределённым идентификатором, который обозначает текущий адрес. имена меток и символ "$" могут использоваться в командах jmp, call, а также в арифметических выражениях.

ЛОКАЛЬНЫЕ МЕТКИ И ПЕРЕМЕННЫЕ
локальные метки и переменные -- это метки и переменные, которые ограничены локальной областью действия. для определения локальной метки или переменной к её имени необходимо добавить префикс "точка" ("."). локальная область действия создаётся автоматически в трёх случаях:
ВЫРАЖЕНИЯ, АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ ОПЕРАТОРЫ
транслятор вычисляет выражения любой сложности с неограниченной вложенностью скобок, поддерживаются все стандартные арифметические и логические операторы, для некоторых операторов имеются символьные синонимы:приоритеты операторов в основном совпадают с приоритетами операторов из СИ за исключением побитовых операторов "И", "ИЛИ" и "исключающее ИЛИ" -- их приоритеты выше операторов сравнения. это сделано намеренно, чтобы в выражениях минимизировать использование круглых скобок. например, можно записывать так:

Code:

.if varA & 0x80 == varB & 0x80....endif
в языке СИ, чтобы условие корректно сработало, необходимо левую и правую часть выражения заключить в скобки.

имеются три дополнительных оператора, отсутствующие в языке СИ:в выражениях можно указывать только целые числа, однако, внутренние вычисления выполняются с использованием чисел с плавающей точкой.

КОНСТАНТЫ В ВЫРАЖЕНИЯХ
транслятор поддерживает несколько стилей записи констант в выражениях.
СИ-стиль:Intel-стиль для ассемблеров:Мотороловский стиль только для шестнадцатеричных чисел:
ПРЕДОПРЕДЕЛЁННЫЕ КОНСТАНТЫ
в выражениях можно использовать следующие предопределённые константы:
ФУНКЦИИ
в выражениях можно использовать следующие математические функции:
ПРОДОЛЖЕНИЕ СТРОКИ
при записи выражения или в иных случаях может возникнуть ситуация, когда текст программы не помещается целиком в видимую область экрана. чтобы целиком разместить длинный текст на экране, можно использовать символ продолжения строки — обратный слэш ("\"). применять этот символ необходимо в конце строки, т.к. все символы после него будут проигнорированы.
пример:

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

КОМПИЛЯТОР
транслятор умеет компилировать условные выражения, записанные обычной инфиксной записью, как в языках высокого уровня. это позволяет упростить исходный код программ и делать его более понятным. таким образом, условия и циклы можно выделить в отдельные блоки для которых имеются следующие директивы:выражения могут быть любой сложности, условия могут быть объединены логическим "И" (&&) или "ИЛИ" (||). условия и циклы можно вкладывать друг в друга без ограничений. операнды в условиях сравниваются как беззнаковые, кроме случая, когда сравнение производится непосредственно с нулём: "A < 0", "A <= 0", "A > 0", "A >= 0".
допустимо также применять к регистрам операторы инкремента и декремента, но есть ряд ограничений, которые всегда надо иметь в виду:примеры.
ветвистое условие:

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хх? Не уж то скорость учитывается?
Ограничусь демонстрацией симуляции инверторов и триггеров:

SIM0.png

SIM1.png

Остальные работают так, как завещали великие 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