Я беру смелость констатировать, что обсуждаемый код на горизонте целого фрейма ОДИНАКОВО медленно работает (по сравнению с Пентагоном), будь он размещен ниже #8000 или выше #8000. Я вижу это визуально и через контроль PC после IM2 на эмуляторах. Я хотел бы подтверждения этому тезису, чтобы навсегда забыть, смириться «и ебашить как в последний раз» не взирая на место в памяти где лежит мой код.
подкалываешь деда… стек в медленной памяти (читай в экране), код LD HL PUSH тоже в медленной памяти, код выполняется весь фрейм, я торможу больше в этой ситуации чем если бы этот код был в быстрой памяти?
«Дорогие мои старики» sqintrospec я все понял про немедленный бордер и другие детали.
Мой код исполняется ВСЕГДА, весь фрейм. Я всегда и бескомпромиссно делаю LD HL,NNNN PUSH HL при SP,#7999
Я пробовал делать это размещая код выше #8000 и ниже #8000, а так же и там и там одновременно. Я вижу что код тормозит по сравнению с Пентагоном, но я не вижу разницы в торможении в зависимости от места нахождения кода (выше или ниже #8000). Все ли я правильно понял про торможение? Если да, я смело размещаю свой код НИЖЕ #8000 так как ничего выиграть в таком сценарии не могу.
Да это код вида ld sp,58000: DUP 100: ld hl,…: push hl: EDUP
Да я вижу, что он выполняется медленнее в целом на slow mem машине, но я не вижу разницы во времени его выполнении будь он #8000 или c #6000. Если этой разницы действительно нет, я просто смирюсь с этим. Если же из куска #8000 этот код при такой структуре и таком параметре SP должен быть чуть быстрее — это меняет мои планы.
Профессор! Специально реплаю на ваш реплай с целью добиться внимания.
Первый пункт — нигде в статье капсом или болдом не написано какая именно память медленная. Понятно, что ниже #8000 медленная, а выше быстрая (+нюансы 128К), но это явно нигде в первых строках не написано.
Второй пункт. Я оперирую сейчас 48K моделью и после прочитанного понял, что пытаясь класть что-либо стеком на экран я точно буду тормозить всегда. Далее я опасался того, что если я буду класть стеком на экран и сам код будет ниже #8000 я буду ЕЩЕ БОЛЕЕ тормозить. Однако, практические эксперименты этого не подтверждают — код LD HL,NNNN PUSH HL тормозит (да тормозит) совершенно одинаково будь он в #8000 или в #7000. Этот момент я верно уловил в практическом эксперименте?
Третий пункт. Нет ли у вас на примете эмуляторов, способных включать и выключать (желательно в реальном времени) эффект торможения? Speculator и SpecEMU способны работать в конфигурации с медленной памятью (и именно на их примере я увидел наглядно торможение), но не способны «на ходу» включать и выключать ее.
Видимо это я в другом исходники подчерпнул, где сейвили BIN
И у меня SAVESNA тоже оказался с двумя параметрами до тех пор, пока я не задался вопросом что значит второй и зачем он ненужен…
Это все приводит нас к продолжению вывода, в main.asm нужны закомментированные примеры всех насущных команд, которые неочевидны (SjAsm). Там же нужен простой и понятный пример кода, который можно легко менять (цвет полос на бордере например), чтобы человек мог после настройки быстро собрать и наглядно убедиться.
записывай дальше под диктовку…
содержимое сампла кода должно обучать юзера мнемонике SjAsm
у тебя сейчас savesna с двумя параметрами, а в реальности там только 1 работает — PC counter
надо все выносить туда в комментах с конкретными примерами, и как savebin сделать и как иное…
— Зарегистрируйтесь на GitHub.com, установите desktop.github.com/ после чего откройте сам репозитарий github.com/kolnogorov/zxboilerplate и по клику на Open in Desktop оный переместится к вам на ПК. После завершения клонирования появляется кнопка Open in VisualStudio Code. Давим на нее. Получаем сообщение Git not Found и… устанавливаем git.
— Каких то 200+ мегабайт инсталляторов и вы уже можете написать первые байты Z80-кода…
А ты вместе скандалов-интриг-расследований сходи на Pouet да проголосуй за ВСЕ работы с пати. Включая те три что никак не доберутся до TOP-месяца. Вот это будет дело.
Да что же вы никак не успокоитесь то? Соберите не 25, а 250 голосующих и будет вам праздник честных выборов. Анализируют то, чего в природе даже нет, погрешность погрешности…
На самом деле и .TAP и поддержка оригинального железа это вопрос религиозный. В момент, когда мы его откидываем, начинается noflic, gigascreen, а там и до ATM2+ недалеко…
Мой код исполняется ВСЕГДА, весь фрейм. Я всегда и бескомпромиссно делаю LD HL,NNNN PUSH HL при SP,#7999
Я пробовал делать это размещая код выше #8000 и ниже #8000, а так же и там и там одновременно. Я вижу что код тормозит по сравнению с Пентагоном, но я не вижу разницы в торможении в зависимости от места нахождения кода (выше или ниже #8000). Все ли я правильно понял про торможение? Если да, я смело размещаю свой код НИЖЕ #8000 так как ничего выиграть в таком сценарии не могу.
Да я вижу, что он выполняется медленнее в целом на slow mem машине, но я не вижу разницы во времени его выполнении будь он #8000 или c #6000. Если этой разницы действительно нет, я просто смирюсь с этим. Если же из куска #8000 этот код при такой структуре и таком параметре SP должен быть чуть быстрее — это меняет мои планы.
Первый пункт — нигде в статье капсом или болдом не написано какая именно память медленная. Понятно, что ниже #8000 медленная, а выше быстрая (+нюансы 128К), но это явно нигде в первых строках не написано.
Второй пункт. Я оперирую сейчас 48K моделью и после прочитанного понял, что пытаясь класть что-либо стеком на экран я точно буду тормозить всегда. Далее я опасался того, что если я буду класть стеком на экран и сам код будет ниже #8000 я буду ЕЩЕ БОЛЕЕ тормозить. Однако, практические эксперименты этого не подтверждают — код LD HL,NNNN PUSH HL тормозит (да тормозит) совершенно одинаково будь он в #8000 или в #7000. Этот момент я верно уловил в практическом эксперименте?
Третий пункт. Нет ли у вас на примете эмуляторов, способных включать и выключать (желательно в реальном времени) эффект торможения? Speculator и SpecEMU способны работать в конфигурации с медленной памятью (и именно на их примере я увидел наглядно торможение), но не способны «на ходу» включать и выключать ее.
И у меня SAVESNA тоже оказался с двумя параметрами до тех пор, пока я не задался вопросом что значит второй и зачем он ненужен…
Это все приводит нас к продолжению вывода, в main.asm нужны закомментированные примеры всех насущных команд, которые неочевидны (SjAsm). Там же нужен простой и понятный пример кода, который можно легко менять (цвет полос на бордере например), чтобы человек мог после настройки быстро собрать и наглядно убедиться.
содержимое сампла кода должно обучать юзера мнемонике SjAsm
у тебя сейчас savesna с двумя параметрами, а в реальности там только 1 работает — PC counter
надо все выносить туда в комментах с конкретными примерами, и как savebin сделать и как иное…
— Зарегистрируйтесь на GitHub.com, установите desktop.github.com/ после чего откройте сам репозитарий github.com/kolnogorov/zxboilerplate и по клику на Open in Desktop оный переместится к вам на ПК. После завершения клонирования появляется кнопка Open in VisualStudio Code. Давим на нее. Получаем сообщение Git not Found и… устанавливаем git.
— Каких то 200+ мегабайт инсталляторов и вы уже можете написать первые байты Z80-кода…
На самом деле и .TAP и поддержка оригинального железа это вопрос религиозный. В момент, когда мы его откидываем, начинается noflic, gigascreen, а там и до ATM2+ недалеко…
Плюсуй по славу Великого Секущего Луча! https://www.pouet.net/prod.php?which=83540