Пассивный процессор или ... Контроллер-маршрутизатор?

Тема в разделе "WASM.ELECTRONICS", создана пользователем Paguo_86PK, 13 июн 2009.

  1. k3internal

    k3internal New Member

    Публикаций:
    0
    Регистрация:
    11 янв 2007
    Сообщения:
    607
    Странно, но насколько я знаю всё это было лишь на бумаге. Конечного хоть сколько-нибудь реально работающего продукта думаю никто и не увидел. R500 в расчет не берем. Никаких идей эльбруса в нем не обнаружено, кроме стандартного и к тому же медленного аналога аржитектуры SPARC по заказу военных.
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Paguo_86PK
    Так ты делаешь эмулятор для перспективной архитектуры? или разрабатываешь схему которую можно "спаять на коленке"?
    Использовать в современном процессоре внешние регистры (являющиеся схемами с малой степенью интеграции) это мягко говоря извращение.
     
  3. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Paguo_86PK
    В упомянутой теме (отсюда и ниже) я уже говорил, что при использовании переименования регистров просто так "пропустить одну инструкцию" на стадии планирования\исполнения в общем случае невозможно - ее только можно заменить на теневую операцию + некий спец-аналог cmov, изменяющий регистр и флаги по условию.
    Причина простая - если пропускаемая операция изменяет регистр, например eax, то ее результат помещается в новый регистр RF, например до выполнения команды eax отображался в RF[19], а после в RF[21], и соотв-но последующая команда, берет значение eax именно из RF[21], а не из RF[19]. Соотв-но при "пропуске" команды нужно переписать старое значение из RF[19] в RF[21]
     
  4. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Так-с. Совсем забыл о самом главном...

    Си++, который я, к сожалению, знаю лишь теоритически с его class, public, this и т.д...
    Так вот, Си++ предоставляет различный "классные" механизмы, перегрузку операторов и т.п. MFC программирование, как я понимаю, призвано к абстрагированию от API. Честно говоря, когда я начал знакомиться с Виндовс-средой через VisualBasic, то с этим абстрагированием там я совсем потерял смысл и понимание реальных механизмов, т.е. API...
    Поэтому я принципиально даже не пытаюсь изучить Си++. Но... Когда приходится изучать ++ листинги и переваривать их под Си, то понимаю, что описание классов чем-то похоже на моё "пассивное" программирование!

    Вот вы все ратуете за то, что прошивка ПЛИС на лету - процесс очень медленный. Через классический JTag - Да! Бит по биту - очень медленно...
    Но... Вы играли в Реверси? Меня давно интересовал вопрос, насколько сложно реализовать электронную версию игры на светодиодах посредством чистейщей логики без ЦПУ?
    В 97 году я сутками потел над схемой построения линии на экране растра простым набором сумматоров и счётчиков. Т.е. сделать векторный дисплей на растровом без процессора. Хотел сделать аналоговые часы на экране бытового ТВ и рисовать все три линии "на лету". Т.е. каждый пиксел растра проверять, лежит ли он на линии одной из трёх стрелок? Помните, Телевизионные игры "Хоккей" и "Скачки" Овечкина? Там описаны принципы формирования цифр и фигур на растре простой логикой...

    Так вот... Скажу прямо: Проблема, что ПЛИС программируется очень медленно - чисто "механическая"! Помните? Первый реальный компьютер мог бы появиться ещё в XIX веке. И не тот, для статистики населения. А реально алгоритмически программируемый. Я читал, что его могли бы построить ещё в паровой версии. Проблема была не в механической сложности, а в теории! Лишь во второй четверти XX века, на сколько я помню, один математик чётко сформировал принципы, по которым должна программироваться машина. Т.е. создал саму концепцию ПО, а не ЭВМ...

    Поэтому, то, что ПЛИС - очень медленно программируются и работают с задержками, это ЧИСТО МЕХАНИЧЕСКАЯ ПРОБЛЕМА и рано или поздно её решат. Пожалуйста, давайте поэтому не трогать этот вопрос! ;)

    Если представить, что имеется ПЛИС, работающая быстро как ПЛМ с прожигаемыми перемычками, и прошивается достаточно скоро, как декодируется GIF-кадр, то... Имеется лишь проблема в том, на каком принципе должна строиться "пассивная программа"?

    Я не случайно занимался аппаратными проблемами построения растровых линий и игры в Реверси. Реверси, по сути, клеточный автомат. Игра же напоминает борьбу двух организмов в "раковом" развитии. А значит, конечном...

    Вот тут мы и имеем первую проблему пассивного процессора уже на самом теоритическом уровне: Как его программировать??? VHDL явно не подходит. Тут нужны иные принципы...

    Вот какие? Как в MFC чтоли? Ведь пытаются сделать Ява-процессор. А в моём случае получается некий MFC-процессор. Или его подобие?
     
  5. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Paguo_86PK
    Б-р-р ничего себе главное :)) и ещё удивляешся "странной" реакции форумов на твои темы ;)
    С таким же успехом можно обвинить API в том что они "скрывают истинную суть исполняемого кода" постигнуть которую можно только с уровня ассемблера, а ещё лучше с уровня машинных кодов :))

    Классы в С++ это удобный инструмент структурирования программ, дающий много +. К готовым библиотекам классов (MFC и т.п.) "скрывающим суть" сами классы имеют весьма параллельное отношение :)) разница такая же как между готовыми апи и самостоятельной реализацией тех же функций на асм, С и т.п. ;)
    Параллелей с "твоим пассивным" програмированием не вижу.

    Ты вообще ответы то читаешь? или только выборочно? Тебе же обяъснили с конкретными примерами, что "твоё пассивное" программирование очень даже активно ;) используется в современных процессорах и никакое "торможение ПЛИС" этому не мешает.
     
  6. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Paguo_86PK
    Т.е. в качестве разработчика концепции "пассивного программирования" ты немного опоздал, лет этак на 10-20 если не больше и соответственно предполагаемый выигрыш в быстродействии от твоих идей сопоставляй не с Z80, денди, 8086 и т.п., а с чем нибудь посовременнее ;)

    В #54 leo привёл отличный пример:
    Применение "пассивной концепции":
    Применение "активной концепции":
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Хотя на счёт 8086 я не прав - первые элементы "пассивного программирования" появились уже на нём:
    - все операции с плавающей точкой вынесены в сопроцессор FPU 8087, работающий параллельно с CPU, причём CPU понятия не имеет о командах и форматах данных FPU - для него это "чёрный ящик";
    - целочисленное умножение в CPU хоть и не параллелилось с другими командами, но уже аппаратное по принципу: "дал команду умножить и ждёшь результата".
     
  8. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Опять 0x19! ;)
    Читал я все посты.
    Да, согласен, что инструкции x86 выстраиваются в ряд RISC-команд или даже АЛУ цепочку. Но, это не "пассивизм"! Увы!!! :))

    Помните графику в ПК класса Atari? Там на экране отображалось несколько слоёв. Можно было на экране сочитать слой текста, слой цветной графики высокого разрешения и слой графики низкого разрешения. И скроллить их независимо + z-позиция и прозрачность...
    Вот примерно это и есть "пассивное" сочитание страниц ПЛИС.
    Далее...

    В Си++ перегрузкой операторов можно strcat(str1, str2) записать как в JS: str1 += str2. Можно и посложнее примеры найти.
    А "пассивная" программа-алгоритм имено выглядит примерно как:
    pld2.x = pld1.y; pld76.x5 = pld14.d9 ... и т.д.
    Никакого АЛУ и вычисления. Суммировать можно только так:
    pldSum.in1 = 5; // Вход №1 сумматора
    pldSum.in2 = 3; // Вход №2 сумматора
    pldHexTo7segs.in1 = pldSum.out1; // Выход сумматора на вход дешифратора семисегментного индикатора
    pldLED.in1 = pldHexTo7segs.out1; // Выход дешифратора на вход семисегментного первого разряда

    Здесь пассивная программа требует три страницы прошивки ПЛИС: сумматор, дешифратор и буферный регистр-усилитель светодиодов.
    На первом цикле ПЛИС включает первую прошивку сумматора и подаются два операнда на вход сумматора. На втором цикле снимаются показания и ПЛИС включает вторую прошивку дешифратора и на его вход подаются показания сумматора. На третьем цикле снимаются данные с дешифратора, включается третья прошивка ПЛИС со схемой регистра и на его вход подаются биты дешифратора, затем стробом фиксируются и индикатор вспыхивает.
    Итого, требуется 3 цикла, что примерно 9-12 тактов работы пассивного процессора.
    Конечно, налицо то, что это очень медленно и было проще прошить все три микросхемы на одной ПЛИС странице. Но это мой пример такой. Так как я ранее уже писал примеры сложнее.

    Например, сам Z80. Первая страница - блок АЛУ. Вторая - блок команд. И т.д. Допустим всего требуется страниц 10-15... Вся схема нарисована на бумажных страницах корманной брошюры. И на одной странице вся схема не умещается. Всё разбито на модули и по краям - фишки. На последней странице показана структура - как все 15 модулей сопрягать.
    И мы листаем все 15 страниц, чтобы электрически протрассировать путь от одного модуля к другому.

    Пассивная программа - именно упрощённая структурная схема. А все детали - в отдельных модулях.
    Вот вы же видели структурную схему Pentium-4? Не принципиальную, которую не увидишь ни за какие деньги, а структурную или функциональную! Вот активные программы - это принципиальные. А я говорю о пассивных - структурных.

    Например:
    L1:
    call Func1
    call Func2
    call Func1
    call Func4
    call Func2
    call Func3
    jmp L1
    или так: while(TRUE) Func3( Func2( Func4( Func1( Func2( Func1(...))))));
    И больше ничего! Т.е. имеем 4 функции и последовательность их выполнения. А оп-код их недоступен. Точка! Тайна...

    Вот это и есть "пассивное" программирование.
     
  9. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Кстати. Сегодня в свободное время получился интересные компактный вариант процессора
    Код (Text):
    1.          ╔═════════════╤═════════════╤═════════════╤═════════════╗
    2.  OpCodes:║░░░░░░░░░░░░░│ EXT-prefix  │ DST-prefix  │ SRC-prefix  ║
    3. ╔════════╬═════════════╪═════════════╪═════════════╪═════════════╣
    4. ║00000000║BREAK        │BREAK EXT    │BREAK DST    │BREAK SRC    ║
    5. ║000nnnnn║BIOS -01..-31│"- 0001..1023│-- 1024..2047│-" 2048..3072║
    6. ║001nnnnn║EXT    00..31│░░░░░░░░░░░░░│POP  EXT,DST │PUSH EXT,SRC ║
    7. ║010nnnnn║DST    00..31│MOV DST,[EXT]│░░░░░░░░░░░░░│MOV  DST,SRC ║
    8. ║011nnnnn║SRC    00..31│MOV [EXT],SRC│SWAP SRC,DST │░░░░░░░░░░░░░║
    9. ║100nnnnn║DASH  D13    │CASE  ext,D13│<ALU>DST,D08 │<ALU>reg,SRC ║
    10. ║101nnnnn║DASH  D29    │CASE  ext,D29│<ALU>DST,D24 │             ║
    11. ║1100nnnn║PUSH  D12    │             │POP DST..reg │PUSH SRC..reg║
    12. ║1101nnnn║PUSH  D28    │             │POP DST..reg │PUSH SRC..reg║
    13. ║1110nnnn║             │             │             │             ║
    14. ║11110nnn║             │             │             │             ║
    15. ║11111000║             │             │             │             ║
    16. ║11111001║             │             │             │             ║
    17. ║11111010║             │             │             │             ║
    18. ║11111011║             │             │             │             ║
    19. ║11111100║             │             │             │             ║
    20. ║11111101║             │             │             │             ║
    21. ║11111110║             │             │             │             ║
    22. ║11111111║HALT         │HALT  EXT    │HALT  DST    │HALT  SRC    ║
    23. ╚════════╩═════════════╧═════════════╧═════════════╧═════════════╝
    24.      ╔══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╗
    25.  FX: ║  x0  │  x1  │  x2  │  x3  │  x4  │  x5  │  x6  │  x7  │  x8  │  x9  │  xA  │  xB  │  xC  │  xD  │  xE  │  xF  ║
    26. ╔════╬══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╣
    27. ║ 0x ║ZERO  │NCARRY│NPARIT│POSITE│      │      │      │      │      │      │      │      │      │      │      │      ║
    28. ╟────╫──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────╢
    29. ║ 1x ║NZERO │CARRY │PARITY│NEGATE│      │      │      │      │      │      │      │      │      │      │      │      ║
    30. ╚════╩══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╝
    31.      ╔══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╤══════╗
    32.  ALU:║  x0  │  x1  │  x2  │  x3  │  x4  │  x5  │  x6  │  x7  │  x8  │  x9  │  xA  │  xB  │  xC  │  xD  │  xE  │  xF  ║
    33. ╔════╬══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╪══════╣
    34. ║ 0x ║BREAK │AND   │XOR   │OR    │ADD   │SUB   │ADC   │SBB   │SHL   │SAL   │ROL   │RCL   │NOT   │MUL   │MULS  │      ║
    35. ╟────╫──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────╢
    36. ║ 1x ║MOV   │TAND  │TXOR  │TOR   │TADD  │TSUB  │INC   │DEC   │SHR   │SAR   │ROR   │RCR   │NEG   │DIV   │DIVS  │      ║
    37. ╟────╫──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────╢
    38. ║ 2x ║      │      │      │      │      │      │      │      │      │      │      │      │      │      │      │      ║
    39. ╟────╫─.............................................................................................................─╢
    40. ║ Fx ║      │      │      │      │      │      │      │      │      │      │      │      │      │      │      │HALT  ║
    41. ╚════╩══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╧══════╝
    42. Принципы программирования:
    43. 1) Коды инструкций максимально компактные. 1-, 2- или 4-байтные;
    44. 2) Подпрограмма сама обязана заботиться о сохранение точки возврата;
    45. 3) Команды, используемые редко, занимают значительное число байт/инструкций;
    46. Система команд достаточно проста и прозрачна для составления простых программ,
    47. машинный код которых можно набрать легко вручную. Однако, особую позицию здесь
    48. занимает инструкция DASH, в которой кроме адреса перехода может задаваться код
    49. внешней операции или АЛУ.
    50. Заметки:
    51. 89 13         |DASH  $+2323
    52. 9A 14         |DASH  $-1516
    53. 41 89 13      |SAL   R01, 0x13     ; DST 01 ; DASH ALU(dst R01, src 0x13, cmd 0x09)
    54. 42 9A 14      |ROR   R02, 0x14     ; DST 02 ; DASH ALU(dst R02, src 0x14, cmd 0x1A)
    55. 61 89 13      |TOR   R09, R01      ; SRC 01 ; DASH ALU(dst R09, src R01,  cmd 0x13)
    56. 62 9A 14      |TADD  R26, R02      ; SRC 02 ; DASH ALU(dst R26, src R02,  cmd 0x14)
    57. Пример отчищения памяти:
    58. 0000 41 90 00      |MOV   R01,0    ; DST 01; DASH ALU(dst R01, src 0, cmd 0x10)
    59. 0003 42 90 40      |MOV   R02,64   ; DST 02; DASH ALU(dst R01, src 64, cmd 0x10)
    60. 0006 43 90 FF      |MOV   R03,-1   ; DST 03; DASH ALU(dst R01, src -1, cmd 0x10)
    61. 0009 21 63         |MOV   [R01],R03
    62. 000B 41 96 01      |INC   R01,1    ; DST 01; DASH ALU(dst R01, src 1, cmd 0x16)
    63. 000E 42 97 01      |DEC   R02,1    ; DST 02; DASH ALU(dst R02, src 1, cmd 0x17)
    64. 0011 30 9F F5      |CASE NZ,$0x0009; EXT 00; DASH $-11
    65. 0014 FF            |HALT
    :)
     
  10. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Эм-ммм...
    В общем, так-с...
    Удалось раскрутить тут один интересный вариант процессора.
    Написал дизассемблер кода в html-js. До эмулятора ещё не довёл дело, так-как с регистрами имею некоторые сложности.
    Коротко:
    Регистров - 64: 32 РОН и 32 управляющих. Здесь и есть проблема. Не могу придумать, чем и как будут управлять аж 32 регистра!? x86-архитектура не предлагается;
    Система команд: Чуть доработанная представленная выше;
    АЛУ: Унарные операции, стандартные и комплексные. В комплексных используются только половина РОН и половина операций;
    Типов адресации тоже несколько...

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

    Так вот. Стоит ли задуманное выносить в отдельную тему или так-сяк флудить этим здесь? ;)
     
  11. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Эх, братцы!
    Люблю я программировать на низком уровне.
    Но, система команд x86 всё больше и больше меня раздражает своей адсурдностью!

    Известно, в алгоритмах сжатия изображения, наиболее частые цепочки кодируются наименьшем количеством бит. А наиболее редкие - бОльшим числом бит. Это правильно.

    Что мы имеем в x86?
    Команды, используемые редко, занимают целые байты! Из них:
    SAHF/LAHF - покажите фрагмент алгоритма, где они интесивно используются?
    CLI/CLD/STI/STD - покажите фрагмент алгоритма, где они интесивно используются?
    AAA/AAD/AAM/AAS - верно их исключили в IA-64...
    INTO - вообще маразм...
    RET - (извиняюсь) анальная инструкция любой подпрограммы. Используется лишь на выходе :)
    WAIT - тоже дебилизм!
    PUSHF/POPF - ну не может код ими изобиловать!!!
    LODS/STOS/MOVS/SCAS - могли бы отвести для них отдельную префикс-группу. Всё равно с префиксами REP/REPNE нефига больше ничего не используется!
    И т.д. и т.п.
    И это уже 19 оп-кодов при грубом подсчёте, которые заняты зря!

    В процесе эволюции в мусорку превратили префикс 0x0F и коды 0x60..0x6F. Когда и оп-коды, как 0xFE/0xFF и другие и так засрались с самого начала... :dntknw:(
     
  12. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Эм... Тут наткнулся на одну инфу и удивился: Чем только люди не занимаются...

    Вот я подумал. Или на этом форуме люди слишком серъёзные, либо я черезчур вульгарный. Но вот подумалось мне, а что если моя задумка может справедливо назваться Эзотерическим процессором!?

    Странно, но в сети подобно слово сочитание не выгуглил...
     
  13. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Компьютеры с реконфигурируемой архитектурой
    http://fpga.parallel.ru/

    однодумцы
     
  14. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Хм. Не открывает у меня.
    Однако, если это то, о чём я думаю, зря вы так мою тему с грязью смешали...

    Спасибо за ссылку!
     
  15. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    На днях, кстати, на досуге я нашёл способ программирования своего процессора пассивного и принципы машинного кода для него.
    Сейчас сравню с ведущей технологией того сайта...
     
  16. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    альтеровское апликайшен ноте.
    8051 МК конфигурирует фпга.
    http://www.altera.com/literature/an/an111.pdf
     
  17. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
  18. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Хм. Спасибо!

    Кстати. Я тут взял эмулятор РАДИО-86РК в JS и попробовал процессор i8080 наворотить.
    Интересная вещь, однако, получилась!

    1) Арифметико-логические операции над всеми регистрами (а было лишь над аккумулятором);
    2) Восемь индексных регистров (X0, X1, X2, X3, SP, BP, XP, IP);
    3) Два флага: трассировка и кольцо #0 / #1 защищённого режима;
    4) Куча других инструкций: XCHG reg,reg/mem | аналог SETcc | LEA r16,(индекс+смещение)...

    В общем, наворотил так, что похлеще Z80 получилось. Правда Z80-инструкций ещё нету. Но сам по себе он уже довольно мощный. Программы и игры - работают. Правда не все тестил.

    Защищённый режим очень простой: Если инструкция плохая, просто происходит обмен IP с XP. Тем самым XP хранит или адрес исключения, или точку входа в ядро OS. Приложения к этому регистру никакого доступа не имеют: Единственный привелегированный регистр! :)

    А теперь самое интересное:
    1) Ни одного пустого оп-кода я не тронул (08 10 18 20 28 30 38 CB D9 DD ED FD - так и пустуют);
    2) Нововведения относительно простые и можно при возможности в ПЛИС этот вариант процессора легко прошить;
    3) Сама программа МОНИТОР работает в защищённом режиме :)

    Думаю, из восьми битных процессоров тоже можно слепить настоящие многозадачные мозги! :)

    Сейчас доделываю дизассемблер...
     
  19. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    Paguo_86PK
    http://radiokot.ru/start/mcu_fpga/xilinx/

    а эмулятор синклера на жс слабо? чтоб онлайн в бровзере гамать можно было? скам заходит к вам на сайт чел. видит список из Nк (сколько их там под синклер) выбирает и гамается. ну и рекламки, рекламки погуще
     
  20. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    911
    Адрес:
    Ташкент
    Дык, эмуляторов синклера полным полно под любую платформу. Тем более он на Z80.
    А я сейчас занимаюсь доработкой именно i8080. У него система команд проще. Я не говорю, что Z80-команды для меня очень сложные. Просто я на i8080 тренеруюсь, так-как там легче сообразить, как конкретную команду расширить...

    Кстати, вопрос знатокам!
    У i8080 и его потомков в системе команд имеется 7-8 инструкций, теоритически не встречающияся нигде в программах. Назовите их.
    (Если ответ уже где-то виделся, просьба не подглядывать, а поработать головой)

    И ещё. У Z80 индекс-расширенные инструкции имеют изменения в размере. Я же стараюсь длину каждой инструкции сохранить. Но вот логика может меняться сильно.