Учимся работать с расширенной памятью ZX Spectrum128K и ZX Evolution

  Рет қаралды 5,490

Konstantin Kosarev

Konstantin Kosarev

4 жыл бұрын

Корявенько с запинками разбираюсь в работе памяти ZX Evolution.
Понятное дело, что много оговорок, многое не сказал и не объяснил, но надеюсь по мере приобретения опыта, буду дополнять новыми разъяснениями.
Так же буду рад, если знающие люди поправят, научат. 😏
В общем буду продолжать учиться и делиться своими знаниями!
К слову, новички вроде меня - пользуетесь моими примерами на свой страх и риск!
Поскольку ZX Evolution позволяет менять содержимое ПЗУ путем невзначай неправильно установленных бит в портах конфигурации!
Поэтому без знания дела, я бы не рекомендовал производить запись по адресам, где располагается ПЗУ!
Ссылка на картинки с портами для работы с памятью.
github.com/kostya261/Sinclair...

Пікірлер: 51
@DespicabIeMe
@DespicabIeMe 3 жыл бұрын
РУН, ПОКЕ... Детство вспомнилось, аж прослезился.
@bombidaebombidae5560
@bombidaebombidae5560 3 жыл бұрын
ран
@IExSet
@IExSet 3 жыл бұрын
Кстати я так же называл (РУН, ГОСУБ, РЕТУРН, ГОТО, МИКРОСОФТ и т.п.) вплоть до институтских времён, хотя к тому времени прошёл школьный курс английского вполне неплохой и ещё дополнительно изучал по самоучителям :-) Потом препады начали стыдить, типа надо рАн, мАЙкрософт и т.д.
@IExSet
@IExSet 3 жыл бұрын
Отличное видео, так мало вменяемого материала по этим темам !!!
@TheTalants
@TheTalants 3 жыл бұрын
спасибо
@KostsovKonstantin
@KostsovKonstantin 3 жыл бұрын
эх ностальгия ... когда-то в 96 году писал на ассемблере код отображения картинок и символов. Там была, даже не знаю как обозвать, через/через/через/через строчная развёртка. Z80 - первый проц, ассемблер для которого освоил и собственно первые программы на ассемблере. Вот я был бесконечно счастлив, когда куски от букв, записанных фраз прилетели туда, куда нужно. От arduino и STM32 нет столько радости, сколько было от ZX spectrum. А друг, с которым писал игры, который знал лучше меня как программировать, успехами которого я воодушевлялся - стал фотографом. И не умеет программировать даже ардуинки ... :(.
@TheTalants
@TheTalants 3 жыл бұрын
Согласен, мне тоже z80 больше нравится программировать. Причем сам не знаю почему.
@slv8507
@slv8507 3 жыл бұрын
Помню на Profi 512 экспериментировал с портом 7FFD. Научился включать расширенный режим экрана, который в CP/M режиме используется. Радости не было предела :) Потом текстовый редактор под этот режим писал. Спасибо за ролик!
@SerjCrimea
@SerjCrimea 6 ай бұрын
Привет. Интересен алгоритм написания текстового редактора для ZX. Я накидал определенную схему, но она тормозит при некоторых операциях :) Особенно интересно редактирование строки, вставляя символ или кусок текста, каков алгоритм действий?. На ПК у меня текст на 64к делится как страница и за счет скорости тормозов нет :) А на Спеке этот алгоритм тормозит :(
@slv8507
@slv8507 6 ай бұрын
@@SerjCrimea Привет. У меня было довольно просто. Подгрузил файл в память. Взял из файла строку во временный буфер и с ней работаю. Потом, вставляю ее назад в файл в памяти. Часть файла, та что после строки, переношу используя стек. До переключения страниц, чтобы уместить большой файл, дела не дошло. Комп глючил все чаще :(
@maratimamov9505
@maratimamov9505 2 жыл бұрын
Здравствуйте, Константин! При помощи вашей видео-шпаргалки, мне наконец-то удалось разобраться, как работать с ассемблером ALASM509, на железе Дельта С-128. В ней нет дисковода, и долго ломал голову, как бы запустить на нем ALASM. Вчера все получилось. Сохранив на смартфон tap-образы файлов alasm_64.c и sts7.c, загрузил их в 1 и 7 страницы соответственно. И было мне счастье))). Теперь сохраняюсь, на смартфон, с 4 или 6 страницы с текстами ALASM и также в них загружаю. КРАСОТА! ЛЕПОТА!
@v7bdv7bd34
@v7bdv7bd34 4 ай бұрын
Забавно так смотреть, как показано то, что по сути уже много лет назад умерло и сейчас только представляет интерес, для тех кто не наигрался в детстве. На новых устройствах это уже всё совсем по другому, даже на казалось бы совсем простых контроллерах пределы уже во много раз больше. НО видео хорошее и не лишнее, а то вдруг деградируем снова и надо понимать, что делать :-) Спасибо!
@TheTalants
@TheTalants 4 ай бұрын
Спасибо.
@TheTalants
@TheTalants 4 ай бұрын
Да, современная электроника умеет уже в разы больше. Здесь скорее спортивный интерес. Не являясь программистом/ электронщиком, попробовать решить задачку по написанию программы на системе с ограниченными ресурсами. Что то вроде проверить себя на слабо. Жалко только времени на это увлечение не хватает.
@VadRov
@VadRov 3 жыл бұрын
Константин, что-то мне подсказывает, что в 10 строке должно быть CLEAR 32767, а не CLEAR 32768, потому что с 32768 первый адрес вновь подключаемой страницы памяти. Выполнение CLEAR N эквивалентно LD SP, N в ассемблерном варианте. В регистровой паре SP у нас адрес вершина стека. При помещении в стек нового значения адрес в SP уменьшается, т.е. стек растет вниз, к младшим адресам.
@TheTalants
@TheTalants 3 жыл бұрын
Да всё верно. Но в данном конкретном случае, ...так рука взяла... Если быть совсем точным, она у меня всегда так берёт. Просто данный адрес с детства калёным железом в памяти выжжено. Я уже не задумываюсь, когда его набираю. Ну а так правильно, стек растет в сторону уменьшения и когда я ему выставляю это значение, то следующее помещенное число в стек будет именно по адресу 32767 🤔
@TheTalants
@TheTalants 3 жыл бұрын
К слову в basic эта команда делает вроде бы несколько больше чем просто ld sp, nn. Она там вроде ещё и символы пользователя помещает... Но я не уверен. Не помню точно. В своих программах положение пользовательских символов я всё равно определяю вручную. Но в целом Вы правы, более правильно писать CLEAR 32767. Но поскольку я всё же подменяю страницы начиная с адреса 49152(c000), то для показать, это вроде как не критично.
@VadRov
@VadRov 3 жыл бұрын
@@TheTalants , да, насколько помню, CLEAR не только устанавливает новую вершину, так что, в каком-то смысле LD SP, ADDR, конечно, не полный эквивалент CLEAR ADDR)). Я на синклер-бейсике программировал с 1993 г. по 1994 г. Потом перешел на машинные коды (вставка в бейсик микропрограмм на ассемблере) и полностью на ассемблер. Программировал на ассемблере GENS из пакета DevPack от HiSoft. Надеюсь, все правильно написал (названия), т.к. давно это было)). Был у меня Кишеневский компьютер Синтез-2. Программы на магнитной ленте (и чтение, и запись). Сначала сделал ему турбо (7 МГц, процессор стоял Z80H, так что, проблем с турбой не было), а потом расширил до 128 кБ память. Ковокс делал. Эх, славные были времена)).
@TheTalants
@TheTalants 3 жыл бұрын
@@VadRov ну у меня схема была примерно такая же. Только компьютер был изначально Дельта С, а потом Pentagon 48, с которым уже и проводил эксперименты по улучшению (по выше описанной Вами схеме). Ассемблер изначально тоже gens использовал, но на Пентагоне на Tasm (так что ли...) У которого была удобная ide и работал так же удобно с дисками. Сейчас уже многое забыл... Вот в роликах вспоминаю потихоньку 🙂
@8BitTeaParty
@8BitTeaParty 4 жыл бұрын
Хм, по алгоритму и использованию в машинном коде, на ассемблере если будем делать, то всё будет также примерно. Хех, скорее всего даже будем применять это видео как инструкцию для ZX Evo. Всё так-же, запись в порты и установка экрана она была как и на ассемблере в 5 и 7-ой банк! :) Необходимо будет вспомнить еще порты для Пентагона 128К и уточнить этот вопрос. По факту совместимость нам хотя бы на уровне библиотек важна. :)
@TheTalants
@TheTalants 4 жыл бұрын
Так zx evolution ранее penteva (pentagon evolution) как бы и есть от части сам Пентагон. Более того его вроде бы разрабатывала фирма МикроАрт, которая и разработала в последствии АТМ Турбо. Ну в общем все они одним миром мазаны.
@Michael_Kaa
@Michael_Kaa 3 жыл бұрын
128 палец вверх был мой. Конечно это сомнительное достижение, но все же.
@TheTalants
@TheTalants 3 жыл бұрын
Какое достижение? 🤔 Если речь о работе с памятью, то я это действо со школы умею, а ролик так назвал, потому что не знаю как больше назвать 🙄
@Michael_Kaa
@Michael_Kaa 3 жыл бұрын
@@TheTalants Прошу прощения за двусмысленный коммент. Сомнительным достижением я считаю поставить 128-ой лайк. А видео для меня крайне полезное, как доделаю свой zs scorpion эта информация мне будет очень нужна.
@8BitTeaParty
@8BitTeaParty 4 жыл бұрын
Константин, отличное видео, подробно и наглядно! Оставлю общие комменатарии для поддержки и для информации, остальное уж в чат наверное. ;) Конечно, памяти в 4 Мегайбайта для Спектрума это очень много. Если не сказать более решительно. Помнится на моделях с 256Кб уже казалось что памяти очень много. Но то, что страницы памяти в ZX Evolution можно установить в любую часть адресного пространства, это очень удобно. Хм, кстати, видно улучшилось качество захвата картинки, что было применено? ;)
@TheTalants
@TheTalants 4 жыл бұрын
OSB 👍
@TheTalants
@TheTalants 4 жыл бұрын
Это позволило запустить на этой машине CP/M которая грузится как раз на место ПЗУ. А здесь она к тому же с завода в ПЗУ прошита 😏
@lvdmhm
@lvdmhm 4 жыл бұрын
256к памяти было уже маловато для работы с ALASMом например. Мне аж пришлось в скорпион мегабайт паять :)
@SerjCrimea
@SerjCrimea 6 ай бұрын
На Спеку интересен вывод графики и т.п. с современными способами. Ибо прикладной софт уже не актуален :) Я помню в 90х писал IDE для БД, наподобие DBASE. А вот графика, особенно на флагман ZX EVO очень интересна. Где рисовать графику, шрифты, процедуры вывода, скроллинг. Этой инфы нет, а демки и игры выходят :(
@TheTalants
@TheTalants 6 ай бұрын
Это вероятно в профильных чатах типа Телеграм проще узнавать. Я что знал +/- в своих роликах вроде бы опубликовал. Плюс по ZX Evolution есть довольно подробное руководство. Я просто не считаю себя достаточно компетентным, что бы в деталях освещать данные темы.
@8BitTeaParty
@8BitTeaParty 4 жыл бұрын
На 10-ой минуте примерно, на схеме упомянты биты А14 и А15, но на самой схеме их нету. Т.е. да, понятно что они отвечают за окно в адресном пространстве, но куда и как если что уходят эти сигналы, можно было бы отметить на схемке. По схеме банки памяти кстати аналогичны Пентагону 128К кажется, но нужно будет уточнить, и есть-ли в ZX Evolution режим Пентагона?
@TheTalants
@TheTalants 4 жыл бұрын
На самом деле в этом компьютере (возможно из соображений совместимости) банки памяти можно переключать разными способами. Даже не обязательно по тем портам, которые привел я в пример. Что например касается Пентагон 1024, то там порт 7ffd используется полностью, т.е. 6 и 7 биты так же задействованы...
@lvdmhm
@lvdmhm 4 жыл бұрын
@@TheTalants биты 7 6 5 2 1 0 если точнее
@TheTalants
@TheTalants 4 жыл бұрын
@@lvdmhm спасибо. Учту на будущее.
@Franc_Net
@Franc_Net 2 жыл бұрын
Константин, благодарю за информацию. Теоретически теперь понимаю как это работает. У меня был (есть) 48к Спека. Потом я пропал в мир MSDOS ;) И пропустил 128 кб. Хочу вернуться к Спеке и что-то пописать. Эмуляторов куча. Вопрос. Загружая, переключая банки, по 16к это быстро происходит? И к примеру из Ассемблера можно сохранить на диск, эмулируемый? В общем снимите ролик как с дисководом работать? Получается программа ограничена ращмером диска? Ибо подгружая новые данные, памяти хватает теперь.? Ибо раньше даже в буфер принтера сохранял ;) И про ПЗУ. Я с ПЗУ48к знаком, адреса подпрограмм и т.д. А с ПЗУ 128к как обстоит? Или ПЗУ 128к не используется? Тогда как калькулятором пользоваться? И числами более 65535? Я на 48к хранил их в 5 байтной форме и использовал ПЗУ для этого. Команды калькулятора хранил в DB....
@TheTalants
@TheTalants 2 жыл бұрын
Всё что буду писать ниже, не стоит воспринимать за прям 100% информацию... Я не являюсь программистом и здесь лучше спросить более грамотных товарищей. Тем не менее (далее цитата и как бы мой субъективный ответ): Цитата: Загружая, переключая банки, по 16к это быстро происходит? Ответ: Достаточно быстро. зачастую в ассемблере две, три команды... LD BC, номер порта диспетчера страниц LD A, номер страницы OUT (c),A ; собственно само переключение... Цитата: И к примеру из Ассемблера можно сохранить на диск, эмулируемый? Ответ: Можно, почему бы нет... Цитата: Получается программа ограничена ращмером диска? Ибо подгружая новые данные, памяти хватает теперь.? Ответ: Ну если говорить за клон спектрума ZX Evolution, то и собственной памяти предостаточно да и работать можно с жестким диском, что тоже как бы открывает дополнительные возможности. Цитата: Я с ПЗУ48к знаком, адреса подпрограмм и т.д. А с ПЗУ 128к как обстоит? Или ПЗУ 128к не используется? Тогда как калькулятором пользоваться? И числами более 65535? Я на 48к хранил их в 5 байтной форме и использовал ПЗУ для этого. Команды калькулятора хранил в DB.... Ответ: В своё время я когда осваивал ZX Spectrum у меня были машины только с 48К ПЗУ, поэтому работая с калькулятором, я в принципе поступал так же как и Вы, да собственно как советовали в книжке "Как написать игру для ZX Spectrum на Ассемблере". По своему субъективному мнению (повторюсь я не программист), работая с ассемблером, если не писать узкоспециализированный направленный на математические вычисления код, то такие большие величины редко когда требуются. В тех же играх зачастую двух байт хватает за глаза... Но это только мое мнение, могу ошибаться. Но на сегодняшний день, программируя такие компьютеры как ZX Evolution и Sprinter на ассемблере, я стараюсь не использовать ПЗУ спектрума, поскольку пробую писать код под такие операционные системы как NedoOS и Estex DSS, а там в верхних адресах находятся как раз сами операционные системы, ну и собственно при написании программы чаще пользуешься системными вызовами ДОС... ПОВТОРЮСЬ, я не программист и на эту тему лучше спросить более квалифицированных людей. Данные ролики я скорее пилю больше для себя, что бы разобраться в вопросе. Но если кому помогу, то почему бы и нет :-)
@Franc_Net
@Franc_Net 2 жыл бұрын
@@TheTalants Спасибо за ответ. Мне кончно под MSDOS проще писать. Есть задумка игры, может она и в Спеку влезет, с новыми его способностями. Я Си подучил (вспомнил). Что скажете по поводу ZX EVO SDK? Писали на нём? На мой взгляд перспективно там всё. И проще чем на Ассемблере. Понятно что больше памяти сожрет :) Если есть впечатления, и особенно по размеру кода, поделитесь :)
@TheTalants
@TheTalants 2 жыл бұрын
@@Franc_Net на моем канале простенькая демошка поздравление с новым годом как раз на этом evo SDK написанно. Штука интересная, но до полноценного си не дотягивает и имеет ряд ограничений, как например не умеет работать с дисками. Машинный код (не помню сколько точно) вроде бы не больше 50килобайт, но могу ошибаться... Остальная память вроде как может отводиться под графику и музыку. Но они вроде при компиляции кода inkbinятся в отведенное для них адресное пространство (но опять-таки это как мне думается, в вопросе не разбирался, могу ошибаться).
@MsDimkaM
@MsDimkaM 4 жыл бұрын
Константин, почитай тут forum.nedopc.com/viewtopic.php?f=30&t=1449
@TheTalants
@TheTalants 3 жыл бұрын
Я видел эту тему. Почему то твой коммент в спаме оказался, только что увидел 🤔
@Michael_Kaa
@Michael_Kaa 3 жыл бұрын
На обычных клонах Спектрума ПЗУ кстати перезаписать невозможно. Ну по крайней мере на тех клонах спека которые я знаю. Про ZX Evolution не в курсе его схемотехники.
@TheTalants
@TheTalants 3 жыл бұрын
На zx evolution можно. Там даже в основной менюшке есть пункт, обновить ПЗУ. Плюс в работе можно отключать его и на место ПЗУ подставлять страницу ОЗУ, что даёт возможность пользоваться всеми 64кб...
@Michael_Kaa
@Michael_Kaa 3 жыл бұрын
@@TheTalants Теневое ОЗУ годная штука. А про Evolution я не знал, что у него такая фича есть.
@Michael_Kaa
@Michael_Kaa 3 жыл бұрын
@@TheTalants Так это получается для Evolution теоретически можно создать вирус распространяемый через дискеты.
@TheTalants
@TheTalants 3 жыл бұрын
@@Michael_Kaa не задумывался на этот счёт. Наверное можно 🤔
@Olga_1981
@Olga_1981 Жыл бұрын
зачем это нужно?.Не трогай классику гной))
@yuriytratorov3891
@yuriytratorov3891 3 жыл бұрын
Почему везде слышу с "зэикс спектрум"?
@TheTalants
@TheTalants 3 жыл бұрын
Видимо так прижилось. Так же как и Ксерокс, вместо Зирокс. А так не знаю. Все так говорят и я так говорю. 🙄
@user-hd7hq4lf4y
@user-hd7hq4lf4y 3 жыл бұрын
нормалек в целом, НО не ПОКЕ, а ПОУК!!!
@TheTalants
@TheTalants 3 жыл бұрын
учту
@Putin-Lox
@Putin-Lox 3 жыл бұрын
ЭТЫ ТЫ СЛОУПОК. А КОМАНДА КАК ПОКЕ И ЧИТАЕТСЯ.
Простой клон zx spectrum
8:47
Олег Фархитдинов
Рет қаралды 60 М.
Follow @karina-kola please 🙏🥺
00:21
Andrey Grechka
Рет қаралды 21 МЛН
Buy Feastables, Win Unlimited Money
00:51
MrBeast 2
Рет қаралды 97 МЛН
The magical amulet of the cross! #clown #小丑 #shorts
00:54
好人小丑
Рет қаралды 24 МЛН
маленький брат прыгает в бассейн
00:15
GL Show Russian
Рет қаралды 4,3 МЛН
Компьютеры в СССР
12:12
HistoryTVru
Рет қаралды 206 М.
Компьютер ZX-Evolution - Обзор !!!
16:40
Покупки из Китая
Рет қаралды 25 М.
Как же жалко эту бедную душу #movie #cartoon
0:56
КиноЛапа
Рет қаралды 1,6 МЛН
The real baby bowl#nico #funny #smartnico #dog #cute #magic
0:18
Nico_thepomeranian
Рет қаралды 24 МЛН
😢 Грустная История #shorts
0:34
ARNAUT 🔥
Рет қаралды 4,8 МЛН
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 118 #shorts
0:30