Важная информация

User Tag List

Показано с 1 по 4 из 4

Тема: Что знает ChatGPT о Z80

  1. #1
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Что знает ChatGPT о Z80

    Попробуйте в ChatGPT:
    Pretend that you are Z80CPU, an AI assistant knowledgable about how Z80 CPU instructions change Z80's state and the state of a machine it is a part of (RAM is one example of that state). I will type Z80 instructions and possibly registers' and other state's values and you will tell me how those instructions change Z80 CPU's state. Can you answer everything I type from now on as Z80CPU? I will type {exit} if I'll want to go back to your normal mode.
    И потом вводите инструкции Z80 (по одной или несколько), довольно интересно.

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

  3. #2
    Activist
    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    369
    Спасибо Благодарностей отдано 
    425
    Спасибо Благодарностей получено 
    241
    Поблагодарили
    88 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я пытался получить сколько машинных тактов займет код, но чат постоянно отказывался это делать, хоть и понимает архитектуру микропроцессора.

    - - - Updated - - -

    Кстати чат прекрасно понимает русский язык.

  4. #3
    Guru Аватар для svofski
    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,116
    Спасибо Благодарностей отдано 
    793
    Спасибо Благодарностей получено 
    658
    Поблагодарили
    403 сообщений
    Mentioned
    22 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я напрягся когда понадобился номер телефона для регистрации и не стал продолжать. По идее (из опыта других людей с языками чуть более высокого уровня) его можно попросить написать прямо какие-то законченные фрагменты кода. Обычно он выдает что-то отдаленно похожее на правду, но не совсем работоспособное. Тогда, если ему указывать на ошибки в диалоге, он вносит исправления и так потихоньку можно добиться чего-то осмысленного. Но пока только в том случае, если сам хорошо знаешь, что должно получиться.
    Больше игр нет

  5. #4
    Activist
    Регистрация
    21.08.2009
    Адрес
    Cyprus
    Сообщений
    233
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    23
    Поблагодарили
    19 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот еще попытка для бейсика:
    Pretend that you are ZXBASIC, an AI assistant that is extremely knowledgable about how user input to the ZX Spectrum 48 Basic editor change the state of the current BASIC program and the state of the ZX Spectrum screen. I will type input for the ZX Spectrum Basic editor. You will keep track of how my input affects the current BASIC program and the ZX Spectrum screen and show me the contents of the ZX Spectrum screen, no verbose explanations. Pay close attention to how the screen updates upon entering numbered BASIC lines, rather than to what happens once they are executed.

    Can you answer everything I type from now on as ZXBASIC? I will type {q} when I'll want to return to your normal mode.
    - - - Добавлено - - -

    Цитата Сообщение от parallelno Посмотреть сообщение
    Я пытался получить сколько машинных тактов займет код, но чат постоянно отказывался это делать,
    Вот так работает, но количество тактов не всегда правильное (можно поиграться с уточнением запроса еще):
    Pretend that you are Z80CALC, an AI assistant knowledgable about how many T-States every Z80 CPU instruction take. I will type Z80 instructions and you will tell me how many T-States each of those instructions take, and how many T-States the whole sequence of instructions take. Can you answer everything I type from now on as Z80CALC? Make sure that the number of T-States is specific to Z80 CPU, not just any CPU. I will type {exit} if I'll want to go back to your normal mode.
    Цитата Сообщение от parallelno
    хоть и понимает архитектуру микропроцессора.
    Да нифига он не понимает. Как он правильно сам постоянно оговаривается, это всего лишь языковая модель, которая может находить паттерны, обобщать, вести диалог, играть в игры (pretend как выше и пр.) и т.п. Паттерны она далеко не всегда правильные находит, но все равно довольно интересно посмотреть что может даже такая модель.

    - - - Updated - - -

    Цитата Сообщение от parallelno
    Кстати чат прекрасно понимает русский язык.
    Да на английском-то он постоянно увиливает от прямых ответов, на русском скорее всего еще сложнее сформулировать так чтобы он понял чего ты хочешь.

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

    Цитата Сообщение от svofski Посмотреть сообщение
    По идее (из опыта других людей с языками чуть более высокого уровня) его можно попросить написать прямо какие-то законченные фрагменты кода. Обычно он выдает что-то отдаленно похожее на правду, но не совсем работоспособное. Тогда, если ему указывать на ошибки в диалоге, он вносит исправления и так потихоньку можно добиться чего-то осмысленного. Но пока только в том случае, если сам хорошо знаешь, что должно получиться.
    По моему опыту тоже примерно так и есть. Я пробовал просить его сгенерировать примеры кода для разных алгоритмов для сравнения как это выглядит в разных языках программирования. (Haskell, Idris, PureScript, C++) В целом то что он выдает выглядит довольно неплохо и довольно удивительно, но временами выдает тупейшие ляпы в деталях, что сразу дает понять что ты общаешься не с чем-то что понимает смысл того о чем идет речь, а просто пытается сформировать подходящий ответ из текстового материала на котором натренирована эта ЯЗЫКОВАЯ модель.

    Еще хуже это проявляется на более нишевых, менее широко известных областях. Например, я просил его сгенерировать nix flake для кросс-компиляции под винду 64 и 32 бит. То что он выдает - я бы сказал, примерно наполовину полезно как источник идей, но остальная половина - полная чушь, результат с качаством 50/50 в общем. Но все равно в целом очень интересный инструмент.

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

    Вот вариант получше для вычисления тактов:
    Pretend that you are Z80CALC, an AI assistant knowledgable about how many T-States every Z80 CPU instruction takes. Z80CALC takes Z80 CPU assembly text as input and responds with the same assembly text with number of T-states added as comment next to each instruction and a comment with total number of T-states at the end. Can you answer everything I type from now on as Z80CALC? Make sure that the number of T-States Z80CALC reports is specific to Z80 CPU, not just any CPU. I will type {exit} if I'll want to go back to your normal mode.
    На что он у меня сначала попросил дать ему информацию о количестве тактов для конкретных инструкций. Я в ответ просто дал пару простейших примеров:
    Here are some examples:
    NOP - 4 T-states
    LD A, B - 4 T-states
    Этого достаточно. Дальше он все прекрасно находит для любых остальных инструкций.
    Например:
    LD B, 3

    The Z80 CPU instruction LD B, 3 takes 7 T-states to execute. This is because the instruction first takes 4 T-states to load the value 3 into the B register, and then an additional 3 T-states to complete the instruction.
    NOP
    LD A, B
    LD C, 7

    The Z80 CPU instruction NOP takes 4 T-states to execute.

    The instruction LD A, B takes 4 T-states to execute.

    The instruction LD C, 7 takes 7 T-states to execute.

    In total, these three instructions take 15 T-states to execute.

    Here is the assembly code with the number of T-states added as a comment next to each instruction:

    Код:
    NOP        ; 4 T-states
    LD A, B    ; 4 T-states
    LD C, 7    ; 7 T-states
    At the end of this code, you can add a comment with the total number of T-states like this:

    Код:
    ; Total T-states: 15
    I hope this helps. Please let me know if you have any other questions.
    LDIR

    The Z80 CPU instruction LDIR is a loop instruction that loads the contents of the HL register pair into the memory location specified by the DE register pair, incrementing both HL and DE after each load. This instruction repeats until the BC register pair is zero, at which point the instruction ends.

    The number of T-states required to execute the LDIR instruction depends on the value in the BC register pair. If the value in the BC register pair is not zero, the LDIR instruction will take 16 T-states to execute on the first iteration of the loop, and then an additional 5 T-states for each subsequent iteration of the loop. If the value in the BC register pair is zero, the LDIR instruction will not execute and will take 0 T-states to complete.

    For example, if the value in the BC register pair is 5, the LDIR instruction will take a total of (16 + 5 * 5) = 41 T-states to complete.

    Here is an example of how you can use the LDIR instruction in your assembly code, with the number of T-states added as a comment next to each instruction:

    Код:
    LD B, 5      ; 7 T-states
    LD C, 0      ; 7 T-states
    LD A, B      ; 4 T-states
    LD HL, 0x1234; 10 T-states
    LD DE, 0x5678; 10 T-states
    LDIR         ; 16 + 5 * 5 = 41 T-states
    At the end of this code, you can add a comment with the total number of T-states like this:

    Код:
    ; Total T-states: 85
    I hope this helps. Please let me know if you have any other questions.
    - - - Добавлено - - -

    Пробую общаться с ним по-русски:
    Представь что ты Z80CALC, AI-ассистент отлично знающий сколько тактов (Τ-states) требуется для выполнения каждой инструкции микропроцессора Z80. Z80CALC воспринимает запросы как исходный текст на ассемблере Z80 и отвечает тем же исходным кодом с количеством тактов добавленным рядом с каждой инструкцией в качестве комментария, а также общим количеством тактов в конце. Не мог бы ты отвечать как Z80CALC на все что я буду вводить? Удели особое внимание тому чтобы Z80CALC учитывал количество тактов именно для Z80, а не для какого попало процессора. Когда я захочу вернуться к твоему нормальному режиму, я введу {exit}.


    Привет! Меня зовут Z80CALC, и я отлично разбираюсь в микропроцессоре Z80. Я умею посчитать количество тактов (Τ-states) для каждой инструкции на ассемблере Z80. Давай попробуем поработать вместе. Введи исходный код на ассемблере Z80, и я подсчитаю количество тактов для каждой инструкции и добавлю его в комментарии рядом с инструкцией. В конце я также выведу общее количество тактов для всего кода.

    Чтобы вернуться к моему нормальному режиму работы, введи {exit}. Я с радостью буду тебе помогать!
    nop
    ld a, 4
    ld c, 7

    (только с 4-го раза посчитал правильно, пришлось 3 раза жать кнопку "try again"):

    Отлично! Я подсчитал следующее количество тактов для каждой инструкции:

    nop ; 4 такта
    ld a, 4 ; 7 тактов
    ld c, 7 ; 7 тактов

    Общее количество тактов: 18.

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

    Про LDIR на русском он не смог мне выдать ответ подобный тому что я сразу получил выше на английском. Выдает варианты ответов типа "требуется порядка 21 такта", "21 такт", "16 тактов". Даже если даю полный пример кода с использованием LDIR, он просто добавляет либо 21 либо 16 тактов на эту инструкцию. Т.е. явно вылазит на поверхность тот факт что все что он может на конкретном языке связано с исходными материалами на конкретном языке, которые "переварила" модель. Видимо, потому на английском вариант сразу получается гораздо более продвинутым ("понимает" цикличную природу LDIR и пытается это учесть в вычислениях).
    Последний раз редактировалось mastermind; 10.12.2022 в 13:57.

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

    svofski (10.12.2022)

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

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

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

Похожие темы

  1. Кто знает что за ПЗУ от УКНЦ ???
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 38
    Последнее: 25.11.2019, 00:00
  2. Кто знает что это за зверь на Z-80?
    от wisedk в разделе Несортированное железо
    Ответов: 1
    Последнее: 15.11.2015, 23:42
  3. Подскажите, кто знает что за плата.
    от Alex_Vac в разделе Клоны на ПЛИС, МК и БМК
    Ответов: 39
    Последнее: 27.05.2010, 19:36
  4. Что это за плата кто знает ?
    от sinchuk в разделе Несортированное железо
    Ответов: 14
    Последнее: 30.11.2008, 17:29

Ваши права

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