Войти
ФлеймФорумПроЭкты

Spectrum style по-современному [исследовательский проект] (19 стр)

Страницы: 118 19 20 21 22 Следующая »
#270
22:28, 17 мая 2018

Собрaл в таблицу коллекцию обфускаторов:

+ Выявленные неявные переходы

В смысле, вместо громоздкого «USR 52424» можно набрать короче - «USR 621»…
Тем самым, когда вздумаю писать свою подпрограммы, буду учитывать это…

gamedevfor
> Такое и на бейсике в текстовом режиме быстрее отработает.
Бейсик выводит стандартно 32x24 и дамп получается по 8 байт на строку. Итого, имеем всего 192 байт дампа.
Наверное, не так поняли смысл вывода.

А вот в РЛК обычно 384 байта - норма (наберите там «D,17F») и легче охватывать крупные фрагменты кода и изучать их…
И у меня опыт удался.
Полноценный стройный дамп 16x24 на экране ZX | Spectrum style по-современному [исследовательский проект]
Правильный дамп" в стиле РЛК - маленькое DEMO с автораном в TAP

P.S.: Завтра займусь развитием «библиотеки»…
Спасибо за тест!


#271
1:18, 18 мая 2018

Вывод символов размером 6x8 (или 6x6) обычно обеспечивают функциями, работающими с двухпиксельным смещением. Формат называют "42 символа в строке". То есть 4 варианта функции печати символа (0, +2,+4, -2).
Быстрее всего нестандартный по плотности текст с размером 4x8. Несмотря на то, что у него совсем неидеальная читабельность. Ускоряет вывод ещё то, что символьный набор хранят не в плотном виде (два символа на 8байт), а в удвоенном. То есть в каждом символе он дважды повторяется, в левой половине и в правой. И при выводе он просто берётся с and f0 или 0f. При этом вроде не так сложно печатать сразу по два символа, чтобы не перечитывать с экрана и не применять маску (хотя для крайних символов она нужна).

+ Gif

https://hood.speccy.cz/dwnld/rom64_info.htm
#272
4:32, 18 мая 2018

0iStalker
> Z8000 и Z80000

...и оба несовместимые с Z80, так что про них и не стоило вспоминать.
Так, а кто у нас был с ним совместим, посмотрим...
Так, так, это у нас был вот он: Z800 - вот он, 16-битный преемник Z80 и...

However, Zilog essentially ignored the Z800 in favour of their 32-bit Z80000 and the Z800 never entered mass production.

Вот и все дела. Не было у 8-биток на Zilog будущего.
Можно еще вспомнить огромный зоопарк на альтернативной восьмибитке - MOS 6501 - там был вполне реальный 16-битный наследник в виде WDC 65816, который даже использовался на практике - в SNES и Apple II GS, если не ошибаюсь. Однако эту архитектуру, думаю, сгубила её архитектура. Два с половиной регистра и постоянный цикл аккумулятор-память думаю никого уже привлекать не могли даже ради обратной совместимости.

#273
6:17, 18 мая 2018

Dexus
> Быстрее всего нестандартный по плотности текст с размером 4x8.
Такoй редактор на одной из кассет у меня был. Знаю, пользовался экспериментально: Изучил изображения всех «вырви глаз» символов…

> http://hood.speccy.cz/dwnld/rom64_info.htm
Попытка «взять на слабо»? ;)
Типа, «rom40» состряпать

> То есть в каждом символе он дважды повторяется, в левой половине и в правой
Так я тоже делал для вывода хекс :)

Так как у меня был «любимый РЛК», я в нём набивал порою свою «лирику» прямо на экране и тут же этот экран (2340 байт) сохранял в единственном экземпляре… Если считывалось потом с ошибками - совсем не страшно, так как друзья - не с «цифровым мозгом»… Так «оцифровывались» вырезки из справочников, включая схемы…

У «РАДИО-86РК» есть прикол: «МОНИТОР» имеет буфер ввода директивы в 31 символов. Потому использовались разные трюки… Так, при вводе надо было «почти подсознательно» крутить счётчик. Как он достигал 30 символов, аккуратненько жалось «ВНИЗ» и через «ЗАБОЙ» очищался весь буфер. Затем, надо было ещё 30 раз нажать «ВВЕРХ» и «ВНИЗ», чтобы засорить буфер снова и опять его очистить, чтобы курсор провернулся через экран на прошлую строку и достиг её логического прерывания… После чего набор следующих 30 символов лирики продолжался…
Как текст 64x25 был набит, начиналась реальная магия! Ведь экран надо было сохранить директивой, которая пишет логи на этом же экране.
А делалось это через директиву «M7601» (модификация содержимого памяти начиная с 7601h) с доступом к указателю на символ под курсором: Ведь в «РК» при «печати» на экране использовались относительные смещения без вычисления адреса по координатам, что было как недостатком, так и «фишкой»…
Экран РЛК - это 78x30. Тем самым, через «M7601» аккуратненько сбивался указатель прямо на пустую область в памяти, после чего весь вывод производился невесть куда и экран уже не засорялся. Сохранялся через «O77C2,7F5F» вслепую
Понимаете, каким это было мастерство «горячего хака»… Это - не дампы загруженных игрушек ломать! Тут оперативность и точность требовалась ювелирные!!!
А нажатием «HOME» курсор восстанавливал и указатель на буфер экрана… После чего набор следующей страницы продолжался…

Нет, ZX я использовал, но для вычислений. Если в РЛК Бейсик надо было грузить минутами, то ZX - выручал. В основном, «домашние задания» по алгебре я делал с ZX… Но, сутками сидел в РЛК, используя ZX для фоновой музыки: Заставки «Savage 3» или «Beyond The Ice Palace» отлично звучали, пока я «дампил» в РЛК…

В интернете я читал где-то мемуары одного человека, который собирал «двуядерные РЛК»: Несколько собранных плат сцеплял, объединил память…
Он там писал, как сами владельцы ZX местами завидовали ему, так как для редактирования больших текстов имел читабильные символы без тормозов.
Не могу сейчас найти ссылку. Найду - поделюсь.

P.S.: Чему я удивляюсь: Ведь форум - геймеров!

Будем знакомы: Я - инструментальщик… РЛК - мой выбор!
#274
6:41, 18 мая 2018

Посмотрел что за зверь был Z8000 (несовместимый с Z80!). Ну нормально так. Опять таки, как говорили выше - вышел всего на год позже 16-битного Intel 8086 и при этом во многом был на голову выше него.
Шестнадцать 16-битных регистров R0-R15. Можно обращаться как к байтам high-low как R1H или R2L. Несмотря на то, что процессор 16-битный, эти регистры могут быть объединены в 32-битные регистровые пары (например RR7), при этом в паре цифровой суффикс заимствуется у регистра в котором лежит нижнее слово - так RR6 состоит из R6 и R7, нечетные суффиксы недопустимы. Для 32-битных чисел доступны команды пересылки (включая стек) и арифметический набор джентльмена - ADD, SUB, MUL и DIV.
Таким образом как и Z80 этот проц тоже застыл нараскоряку где то между битностями по системе команд, тем не менее АЛУ 16-битное. При этом небольшое число команд типа деления используют еще четыре 64-битных регистра RQ0, RQ4, RQ8, RQ12.
Неудивительно, что его довольно прямолинейно превратили в 32-битный проц с сохранением совместимости собственно в Z80000 (при этом там 32-битных регистров стало тоже 16).
Система команд повышенной ортогональности - выделенного аккумулятора нет, выделен только регистр стека в R15.
Есть поддержка оси (режим ядра), есть команда для поддержки многопроцессорных систем, есть поддержка position independed code за счёт режима адресации (PC+offset). Самые навороченные режимы адресации - (Rx+offset) и (Rx+Ry), где регистры могут быть любыми кроме R0 или RR0, то есть возможны обращения за пределы текущего сегмента.
Сегментация правда довольно простая - сегменты по 64Кб, 23-битный адрес формируется добавлением к ним сверху 7 бит из буквально пары мест - у PC хвостик может быть и нижняя половинка R14 хранит верхние 7 бит стека R15 (есть 64Кб-ый вариант процессора без поддержки сегментов в котором R14 свободен для любого использования).
В общем на момент выхода - вполне себе такой здравый конкурент 8086, но вот не взлетел.

#275
13:42, 18 мая 2018

=A=L=X=
ZiLOG не взлетел потому что ZX уронили: кому нужны процессоры без компьютеров?

#276
13:47, 18 мая 2018

gamedevfor
> ZiLOG не взлетел потому что ZX уронили

Да ну, там после ZX ещё куча консолей, игровых автоматов и ПК была на Z80.  Sega Master System и MSX, яркие представители.  Только не помогло.

#277
13:49, 18 мая 2018

0iStalker
Это было добирание бабла, а не развитие ZX.

#278
14:09, 18 мая 2018

gamedevfor

Ни один 8-битный проц не выжил просто потому что у них в силу особенностей архитектуры эти самые архитектуры были ущербным говном мамонта и попытка их расширить до 32-битности была бы просто маловразумительным натягиванием совы на глобус.
Что получается в результате таких попыток проскакивало уже тут на форуме вот тут: https://gamedev.ru/flame/forum/?id=155416

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

#279
14:22, 18 мая 2018

=A=L=X=
Intel тоже выбирался из кучи дерьма не одно десятилетие, но у него были заказы и деньги чтобы это делать.
Никто не требовал от ZX в середине 80-х мгновенного развития на десятилетия вперед, а могли бы потихоньку вместе с ZiLOG развивать архитектуру и софт. И еще неизвестно чья бы архитектура победила бы: Intel или ZiLOG

#280
14:54, 18 мая 2018

Чтo-то я увлёкся…
Загрузка КОИ-7 на экран, а затем и в буфер | Spectrum style по-современному [исследовательский проект]
Написал загрузчик КОИ-7 прямо на экран, чтобы нагляднее было. Причём, с довеском - кодом, который переносит символы с экрана в постоянный буфер по $F000.
Обратите внимание на «RANDOMIZE USR 224» из «коллекции обфускаторов» - коротко и работает, «прыгая» на $4753…

Решил разбить всё на целую библиотеку отдельных файликов, как это было у ZX… ;)

#281
15:17, 18 мая 2018

gamedevfor
> И еще неизвестно чья бы архитектура победила бы: Intel или ZiLOG

Победила открытая архитектура IBM PC, когда железо мог клепать кто угодно. А ZX Spectrum, по факту, платформа закрытая и обложенная патентами и копирайтами со всех сторон.

#282
15:17, 18 мая 2018

gamedevfor
> могли бы потихоньку вместе с ZiLOG развивать архитектуру и софт.

Да никому не впилось развивать ни одну из 8-битных архитектур и поддерживать с ней совместимость, кроме редких случаях наладонных консолей от нинтендо.
Во первых это просто не нужно - архитектуры убогие, рассчитанные на то чтобы в 1 байт влез весь код инструкции, потому регистровые файлы и маленькие и глубоко неортогональные.
(IBM PC в этом смысле сразу повезло, что там была 16-битная архитектура с ModR/M-байтом, сразу задавшая хороший задел под расширяемость. Не идеальную, правда, регистровый файл маловат по сравнению с конкурентами, однако дальше уже одно цеплялось за другое - популярность машины вытягивала процессор, а популярность процессора подтягивала машину к новым битностям)
Во вторых - спектрум был мало примечательной персоналкой, одной из десятков моделей тусовавшихся на рынке - всякие коммодоры ведь еще были, атари, msx-ы и т.п. и т.д., не меньшей популярности. У нас в стране спектрум выстрелил исключительно из-за своей лютой дешевизны. Но в целом в нём как в компьютере, одном из многих, не было ничего особенно интересного, поэтому смысла переживать о том, что его куда то там не развили, не поддержали я вообще не вижу.
Собственно Скинклер всё это прекрасно понимал и даже Zilog понимали и не вкладывали в 8-битки с определенного момента усилий - это просто было ненужно и заранее провально.
Так сделал и Apple - его макинтош ни на дюйм не было совместим с Apple II. Но Apple - это вообще фантастическая фирма, пережившая три или четыре радикальных смены архитектуры. Единственная в своём роде.

#283
15:20, 18 мая 2018

0iStalker
> Победила открытая архитектура IBM PC,

Кстати то, что IBM PC был какой то уникальный ввиду своей открытости и только потому победил - тоже не совсем верно. Упомянутый тобой же MSX тоже был открыт для всех желающих - консорциум производителей нацеливался именно на всем доступное производство. Так что так или иначе - но факторов определивших победу IBM PC было несколько.

#284
15:32, 18 мая 2018

=A=L=X=
Никто не говорит что ZX должен был бы навечно быть 8-ми битным. При деньгах выпустили бы и 16 и 32 битные версии.
В ZX зато была простая и открытая архитектура для разработки софта из-за чего он и стал народным домашним компьютером.

Страницы: 118 19 20 21 22 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.