User Tag List

Страница 8 из 81 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя
Показано с 71 по 80 из 803

Тема: Реверс-инжиниринг Z80

  1. #71

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    ну почему же.
    есть тесты CCF\SCF
    Не видел такого теста. Впрочем, он о другом, позже его рассмотрю.

    Меня интересует поведение именно документированных флагов.

    Боюсь, реальщика долго придется искать) Все ленятся)

    Этот пользователь поблагодарил Titus за это полезное сообщение:

    Barmaley_m(21.08.2024)

  2. #72

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А можно, пользуясь случаем, задать тебе пару уточняющих вопросов:
    Цитата Сообщение от Titus Посмотреть сообщение
    [*]Многие блоки в процессоре конвейеризированы, из-за чего команды выполняются быстрее, чем без конвейера. Например, простейшая команда вида LD r1,r2 в реальности выполняется за 6 тактов, а с конвейером за 4 такта. А команды работы с АЛУ вида ALU A,r в реальности выполняются за 7 тактов, а с конвейером за 4 такта.
    А тут можно подробнее? Если конвейер на уровне команд - то значит, пока одна команда выполняется, следующая одновременно с этим считывается из памяти и подготовляется к исполнению. Но если бы в Z80 был такой конвейер - то были бы либо дополнительные задержки, когда одна команда нуждается в результатах исполнения предыдущей, и тогда приходится "сбрасывать" конвейер; либо неожиданные логические эффекты от отсутствия сброса конвейера там, где он нужен. Всякие глюки при исполнении самомодифицирующегося кода и т.д. Но, посколько подобных эффектов на Z80 нет, его исполнение детерминировано - значит ли это, что конвейеры, которые там имеются - они не на уровне команд, а на уровне операций, составляющих команды?

    Ну, например, для команды ALU A,r требуется 7 тактов работы соответствующих блоков; но за счет дублирования некоторых из них и конвейеризации удалось сократить время исполнения до 4 тактов? Я правильно понял? А какие блоки дублируются, если не секрет?
    Цитата Сообщение от Titus Посмотреть сообщение
    читает его с шины HBUS/LBUS одновременно с записью предыдущей командой регистра F в регистровый файл.
    А что это за шины там такие HBUS, LBUS? Как происходит обмен данными по ним? Откуда именно берется информация для записи F в регистровый файл? Это выходы АЛУ или других блоков?
    Цитата Сообщение от Titus Посмотреть сообщение
    [*] Абсолютно любая команда в начале своего выполнения читает в 3-м такте регистр AF из регистрового файла, не зависимо от того, понадобится этот регистр или нет.
    Ок, а куда она его считывает, где он хранится потом после считывания? На другом, временном, регистре?
    Цитата Сообщение от Titus Посмотреть сообщение
    [*] Дополнительный блок быстрого инкремента/декремента 16-битного числа, позволяет делать инкремент/декремент всего за один такт. Во время выполнения самой короткой однобайтовой команды (4 такта) этот блок используется два раза - первый раз для инкремента регистра PC, второй для инкремента регистра IR (младшие 7 бит). Следует заметить, что было бы совсем не сложно используя этот блок, добавить дополнительные команды адресации с автоинкрементом типа (HL)+. Но авторы почему-то этого не сделали.
    Вообще печально, что такой хороший блок транжирится на никому не нужную "регенерацию". Там ведь и 16 бит не надо, 7 достаточно. И вообще, регистр R можно было реализовать на 7-разрядном двоичном счетчике. По затратам ресурсов вышло бы, скорее всего, не больше, чем сам регистр, в котором оно хранится, и схемы коммутации этого регистра на 16-разрядный реверсивный счетчик и обратно.
    Цитата Сообщение от Titus Посмотреть сообщение
    [*] Процессор построен как конечный автомат без каких-либо микропрограмм.
    Строго говоря, наличие упоминаемых тобою ниже "динамических кэшей" и использование прочих аналоговых эффектов выводит процессор из категории конечных автоматов.
    Цитата Сообщение от Titus Посмотреть сообщение
    [*] Процессор спроектирован достаточно оптимизировано. Говоря языком программирования, хорошо скомпилирован. Однако, в некоторых местах встречаются избыточные цепи, а в некоторых местах видно, как обьединялись несколько модулей, каждый из которых оптимизирован, но суммарная оптимизация после обьединения не производилась.
    Как всегда, практические факторы. Спешка, начальство подгоняет. Отсутствие автоматизации проектирования. Страх, что все сломается, если переделывать слишком сильно.
    Цитата Сообщение от Titus Посмотреть сообщение
    [*] И, конечно, внутренняя структура мало соответствуют тем блок-схемам, которые описывают Z80 в различных документациях.[/LIST]
    Ну да, искусство документации: как сказать много, но при этом ничего не сказать! Должно быть, была специальная стратегия, как написать документацию, чтобы раскрыть минимум информации о фактической структуре процессора.

  3. #73

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Ну, например, для команды ALU A,r требуется 7 тактов работы соответствующих блоков; но за счет дублирования некоторых из них и конвейеризации удалось сократить время исполнения до 4 тактов? Я правильно понял? А какие блоки дублируются, если не секрет?
    Нет, никакие блоки не дублируются) Откуда такая роскошь? )
    Просто пока выбирается код следующей команды (это 2 такта), выполняется завершение предыдущей команды.
    Таким образом, перекрытие может составлять до 2-х тактов. А учитывая то, что AF читается из регистрового файла независимо от того, какой код команды, а так же регистр AF от предыдущей команды может сохраняться в регистровом файле одновременно с чтением AF следующей командой, то перекрытие составляет до 3-х тактов.
    Вообще, проще всего это изобразить на диаграммах, когда они будут.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    А что это за шины там такие HBUS, LBUS? Как происходит обмен данными по ним? Откуда именно берется информация для записи F в регистровый файл? Это выходы АЛУ или других блоков?
    Это одна из внутренних шин, коих дофига. Для понимания назначения шин нужно большое описание, схема и диаграммы работы.
    HBUS/LBUS используются как получатели-приемники данных из регистрового файла. На LBUS формируется новый регистр флагов, перед записью его в F. На LBUS выдаются данные с шины DBUS (которая является шиной данных для обмена с внешними устройствами). На LBUS формируется дополнительное число для двоично-десятичной коррекции. HBUS используется в сдвигах. HBUS является приемником значения ALU, и т.д.

    А еще есть шины 8-битные шины ALUA, ALUB, ALUBUS, ALUOUT, DBUS.
    И 16-битные REGBIT, PCBIT.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Ок, а куда она его считывает, где он хранится потом после считывания? На другом, временном, регистре?
    AF считывается из регистрового файла на шины REGBIT, затем HBUS/LBUS, затем с старшая часть (регистр A) с HBUS на ALUBUS, затем на ALUA, затем на ARGA, затем в два захода на 4-х битное ALU - 4-битную шину OP_A, и т.д.
    Это нет смысла описывать текстом, надо смотреть на схеме и графиках.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Вообще печально, что такой хороший блок транжирится на никому не нужную "регенерацию". Там ведь и 16 бит не надо, 7 достаточно. И вообще, регистр R можно было реализовать на 7-разрядном двоичном счетчике. По затратам ресурсов вышло бы, скорее всего, не больше, чем сам регистр, в котором оно хранится, и схемы коммутации этого регистра на 16-разрядный реверсивный счетчик и обратно.
    С этим абсолютно согласен. Тоже так подумал - зачем такие ценные ресурсы процессора тратить на схему регенерации.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Строго говоря, наличие упоминаемых тобою ниже "динамических кэшей" и использование прочих аналоговых эффектов выводит процессор из категории конечных автоматов.
    Ну это я не совсем точно употребил. Тут скорее имеется в виду, что никаких микропрограмм нет, все работает тупо по условиям)

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Ну да, искусство документации: как сказать много, но при этом ничего не сказать! Должно быть, была специальная стратегия, как написать документацию, чтобы раскрыть минимум информации о фактической структуре процессора.
    Вряд ли была цель скрыть структуру процессора. Скорее просто хотели более упрощенно описать, выкидывая то, что для конечного пользователя практически не имеет значения.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Barmaley_m(22.08.2024), Reobne(23.08.2024)

  4. #74

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо за разъяснения, Titus! Проект начинает выглядеть очень интересно. Постоянно возникает зуд - на основе изученного, добавить собственные знания и опыт и запилить на той же технологии (NMOS сколько-то мкм) более хороший и эффективный Z80 Но это так, конечно, чисто полет мысли. Вряд ли сегодня это кому-нибудь так нужно, чтобы имели желание заплатить. Да и технологии производства Z80 - есть ли сегодня в России хотя бы такие?
    Цитата Сообщение от Titus Посмотреть сообщение
    А учитывая то, что AF читается из регистрового файла...
    А что, там читается именно AF, не просто F? А при записи - тоже? Там 16-битная шина считывания из регистрового файла? А по записи - тоже 16 бит?
    Цитата Сообщение от Titus Посмотреть сообщение
    регистр AF от предыдущей команды может сохраняться в регистровом файле одновременно с чтением AF следующей командой
    А там возможно одновременное чтение и запись в регистровый файл? Или только по очереди, чтение либо запись?
    Цитата Сообщение от Titus Посмотреть сообщение
    А еще есть шины 8-битные шины ALUA, ALUB, ALUBUS, ALUOUT, DBUS.
    И 16-битные REGBIT, PCBIT.
    А кто присвоил шинам эти названия, это ты сам в ходе анализа? Или есть где-то отсылка к "оригинальным" названиям?
    Цитата Сообщение от Titus Посмотреть сообщение
    затем на ARGA, затем в два захода на 4-х битное ALU - 4-битную шину OP_A, и т.д.
    Кстати, вот еще интересный вопрос. АЛУ 4-битное, значит, не может принять весь операнд за один заход. Где хранится та часть операнда, которая ждет обработки в следующем такте? Она держится на шине, которая все это время прокоммутирована к источнику информации (регистровому файлу и т.д.)? Или там есть промежуточные регистры хранения?

    Аналогично по результатам АЛУ. Вот вычислились 4 бит от 8-битного результата. Где они хранятся во время того, как вычисляется второй полубайт? Временный регистр хранения есть?
    Цитата Сообщение от Titus Посмотреть сообщение
    С этим абсолютно согласен. Тоже так подумал - зачем такие ценные ресурсы процессора тратить на схему регенерации.
    Учитывая реалии бизнеса, могу предположить, что у Zilog был какой-то крупный клиент на эти процессоры, которому нужна была регенерация ОЗУ. И процессор разрабатывался изначально под этого клиента.

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

    Скажи, а ты что, сам занимаешься анализом Z80? Это же какая охренительная должна быть квалификация! Ты что заканчивал?
    Последний раз редактировалось Barmaley_m; 22.08.2024 в 11:58.

    Этот пользователь поблагодарил Barmaley_m за это полезное сообщение:

    Reobne(23.08.2024)

  5. #75

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    А что, там читается именно AF, не просто F? А при записи - тоже? Там 16-битная шина считывания из регистрового файла? А по записи - тоже 16 бит?
    AF читается всегда целиком 16 бит. А записываться может по частям..
    Там две 8-битных шины, каждая из которых может работать отдельно друг от друга. Кроме того, обе эти шины могут обьединяться (пробрасывается мост с HBUS на LBUS). Причем, практически все операции как раз и проходят в режиме обьедененных шин, т.к. работа идет с 8 битами.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    А там возможно одновременное чтение и запись в регистровый файл? Или только по очереди, чтение либо запись?
    Есть возможность одновременного чтения/записи в старшую/младшую часть регистров. Единственное ограничение, это должен быть один и тот же регистр. Допустим, A читаем, F пишем. Другой вопрос, используется ли это, я еще не проверял.

    Что касается всего регистрового файла, то, как я уже писал выше, он состоит из двух матриц. В одной из них почти все регистры, в другой PC и IR. И между ними тоже может образовываться мост. Вот в эти две части регистрового файла можно писать и читать одновременно разные регистры. Например, PC читается, и в это же время какой-то другой регистр тоже читается или записывается.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    А кто присвоил шинам эти названия, это ты сам в ходе анализа? Или есть где-то отсылка к "оригинальным" названиям?
    Несколько названий сохранились от проекта Z80 Explorer, другие же я обозвал сам по их назначению. Впрочем, пришлось переименовать шины, названные в Z80 Explorer VBUS и UBUS в LBUS и HBUS, т.к. это лучше соответствовало их назначению.

    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Кстати, вот еще интересный вопрос. АЛУ 4-битное, значит, не может принять весь операнд за один заход. Где хранится та часть операнда, которая ждет обработки в следующем такте? Она держится на шине, которая все это время прокоммутирована к источнику информации (регистровому файлу и т.д.)? Или там есть промежуточные регистры хранения?
    Там много промежуточных защелок, в которых все это хранится. Как на входе АЛУ, так и на выходе.

    Вот кусочки схемы:

    Выход


    Вход


    - - - Добавлено - - -

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    Скажи, а ты что, сам занимаешься анализом Z80? Это же какая охренительная должна быть квалификация! Ты что заканчивал?
    Я занимаюсь для того, чтобы понять нюансы его работы) Без этого точный эмулятор не напишешь. А я же эмуляторщик)
    Ничего не заканчивал связанного с электроникой. Я программист.
    Но я уже столько отреверсил чипов (для УКНЦ), что для меня это уже не особо сложная задача, просто кропотливая. Что делать, если никто не сделал, а хочется)

    Многие реверсят до транзисторного вида, иногда даже не причесывая, и либо засовывают в FPGA, либо симулируют, как в Z80 Explorer. Но это не дает информации о нюансах работы. Да и плавающие состояния тут можно упустить. Единственный вариант, на мой взгляд, познать всю суть работы процессора - это построение причесанной и понятой транзисторной схемы, а по ней логической.

    - - - Добавлено - - -

    Вот чего мне менее всего интересно, это сидеть перерисовывать слои с кристалла.

    Идеально, если уже есть потранзисторная схема, пусть даже просто в виде списка транзисторов и соединений. С чего я и начал реверс Z80, собственно.

    - - - Добавлено - - -

    Цитата Сообщение от zebest Посмотреть сообщение
    ну почему же.
    есть тесты CCF\SCF, причем в зависимости от производителя\мануфактуры - аж три различных варианта поведения этих самых недокументированных флагов.
    На счет этого теста.
    Думаю, что причина в том же - обилие динамических защелок в блоке формирования флагов.
    Впрочем, их много в принципе в этом микропроцессоре. Но большинство из них тактируются CLK, и на частоте работы процессора работают как статические. А вот в блоке формирования флагов много наворотов, в том числе и с динамическими защелками, тактируемыми как придется. Так что вполне возможно, что утечки можно добиться. Надо проанализировать их работу на досуге, просто пока до них не дошел, только до флага S, о котором рассказывал выше.

    Замечу, никто еще не вызвался проверить мое предположение на NMOS реале.

    - - - Добавлено - - -

    Немного о блоке формирования флагов:

    S - флаг знака самый простой, в него просто копируется 7-бит результата работы АЛУ.
    Z - флаг нуля почти такой же простой, формируется, если результат работы АЛУ равен 0. Однако там есть дополнительная цепь установки, сброса, обратной связи. Зачем она нужна, еще не разбирался.
    N - флаг сложения/вычитания. Именно по этому флагу АЛУ знает, что нужно делать, складывать или вычитать (то же сложение, но второй аргумент инвертируется). Крайне интересно, что команды относительного условного перехода (и не только), использующие АЛУ для получения эффективного адреса, кешируют во нутренний кеш этого флага предыдущее состояние флага S(!). С чего бы это? Еще не разбирался. Должно быть, чтобы понять, вычитать смещение или прибавлять, в зависимости от знака смещения.
    C - флаг переноса. Работает в целом весьма документированно, за исключением того, что для команд AND, CCF, SCF в него копируется инвертированное значение флага H(!) (полупереноса). Видимо, таким образом команда CCF инвертирует флаг C, пропуская его через полуперенос.
    H - флаг полупереноса один из самых навороченных. Единственное, что пока могу сказать, он всегда изменяется для всех команд, которые влиют хотя бы на какие-то флаги. Т.е. у него нет кеша предыдущего его значения.
    PV - флаг четности/переполнения - пока не разбирался.
    Последний раз редактировалось Titus; 22.08.2024 в 14:09.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Barmaley_m(22.08.2024), Reobne(23.08.2024)

  6. #76

    Регистрация
    16.05.2021
    Адрес
    г. Харьков, Украина
    Сообщений
    133
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Причем, практически все операции как раз и проходят в режиме обьедененных шин, т.к. работа идет с 8 битами.
    И вот этот момент не воспроизвести в FPGA, как и висящее на зарядах затвора значения.
    У меня есть подключенный к DE1 z80, могу провести разного рода эксперименты, при условии понятного мне условия теста и тестового кода

    Этот пользователь поблагодарил Кря Кря за это полезное сообщение:

    Barmaley_m(23.08.2024)

  7. #76
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #77

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    N - флаг сложения/вычитания. Именно по этому флагу АЛУ знает, что нужно делать, складывать или вычитать (то же сложение, но второй аргумент инвертируется)
    шта? по всем докам ровно наоборот - по сложению или вычитанию значение флага определяется
    Прихожу без разрешения, сею смерть и разрушение...

  9. #78

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,374
    Спасибо Благодарностей отдано 
    1,695
    Спасибо Благодарностей получено 
    2,214
    Поблагодарили
    868 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Кря Кря Посмотреть сообщение
    И вот этот момент не воспроизвести в FPGA, как и висящее на зарядах затвора значения.
    У меня есть подключенный к DE1 z80, могу провести разного рода эксперименты, при условии понятного мне условия теста и тестового кода
    Да, в таком виде не воспроизвести. Но если перевести в логическую схему, и выявить именно проблемные места, то можно их в той или иной мере и на FPGA повторить. Счетчик ввести специальный о потери заряда, и т.д.)

    Если процессор NMOS, то обязательно надо сделать тест. На других архитектурах не надо, т.к. от них нет реверса.

    - - - Добавлено - - -

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    шта? по всем докам ровно наоборот - по сложению или вычитанию значение флага определяется
    Доки врут)
    Я смотрю на схему и она гласит об обратном) Сначала выставляется флаг, потом АЛУ смотрит на флаг и говорит - о, флаг вычитания стоит, значит инвертирую второй аргумент.

    Эти 2 пользователя(ей) поблагодарили Titus за это полезное сообщение:

    Barmaley_m(23.08.2024), Reobne(23.08.2024)

  10. #79

    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,963
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    319
    Спасибо Благодарностей получено 
    312
    Поблагодарили
    236 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Доки врут)
    Я смотрю на схему и она гласит об обратном) Сначала выставляется флаг,
    а теперь внимание, вопрос: выставляется на основании чего?

    Цитата Сообщение от Titus Посмотреть сообщение
    потом АЛУ смотрит на флаг
    лишним выглядит, операция уже после декодирования известна

    Цитата Сообщение от Titus Посмотреть сообщение
    и говорит - о, флаг вычитания стоит, значит инвертирую второй аргумент.
    инверсия - НЕ унарный минус! (в дополнительном коде)
    Прихожу без разрешения, сею смерть и разрушение...

  11. #80

    Регистрация
    16.05.2021
    Адрес
    г. Харьков, Украина
    Сообщений
    133
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    22
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Если процессор NMOS, то обязательно надо сделать тест. На других архитектурах не надо, т.к. от них нет реверса.
    Нужен конкретно zilog или nmos от других производителей тоже подойдут?

Страница 8 из 81 ПерваяПервая ... 456789101112 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1739
    Последнее: 09.01.2025, 10:55
  2. Ответов: 32
    Последнее: 18.12.2024, 18:19
  3. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  4. Реверс МК-92
    от Случайность в разделе Программируемые калькуляторы
    Ответов: 55
    Последнее: 24.04.2021, 23:47
  5. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •