LINUX.ORG.RU

Многопоточность на ZX Spectrum

 , ,


0

4

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

тема собственно вот Интерпретатор языка для МК-61

А это история как извращенец(ТС) немного подрос - заколебал всех своим калькулятором МК-61 и разброссаными книжками и журналами про самосборные компы типа ЮТ-89, схемы которого и код прошивки ПЗУ печатались в Приложении к Юному технику.

И примерно в 14 лет у меня появился клон ZX Spectrum 48.

Это была наколеночносборная, кривоватая коробка с потёками клея, жаль что фоток не сделал тогда... :(

К моему счастью, у папы было несколько сотрудников, которые увлекались «непадецки» такого рода фигнёй как паять всякие микросхемы на платы и подрубать к ним кассетные магнитофоны, а потом клацаться в игры. Цветные! У меня даже джойстик был!

К этой коробке с кривыми, залипающими клавишами и постоянно сползающими наклейками, мне папины друзья вручили ещё пару килограмм литературы по встроенному бейсику, по архитектуре компа и полную распечатку справочника по ассемблеру проца Z-80.

И тут понеслась новая спираль извращений над вычислительной техникой.

Я уже знал, что есть компы с графическими операционными системами типа Виндовс и Мак ОС. И я даже где-то слышал что там можно запускать несколько процессов параллельно.

Извращался я над этой коробкой много и страшно. Практическуи сразу начал писать на ассемблере... потому как встроенный бейсик тормознутая фигня.

Практически самой первой программой на ассемблере была запись и воспроизведение звука через порт по которому передавались игры на/с магнитофона. Звук был однобитный - потому жутко свистящий и скрежещащий но наговариваемые слова вполне можно было различить и при достаточной треннеровке даже узнавать по голосу. записывалось конечно очень мало, несколько секунд с частотой дискретизации 10000 Гц

Так как прогу писал на бамажке и проводил проверку над ошибками там же, то был жутко удивлён что прога заработала с первого раза.

Писал потом игры всякоразные к счастью не всё на ассемблере (нашёл КОМПИЛЯТОР! бейсика) и ещё всякой фигни... Но всё таки, я всё продолжал хотеть «Настоящий компьютер». Потому стал заниматься разработкой многопоточной операционки. И кое что у меня даже получилось.

Вплоть до того, что я запускал 3 программы: одна играла музыку, воторая гоняла по экрану точку, которая отпрыгивала от занятых пикселей и от краёв экрана, а третьей была сама среда программирования бейсик встроенная в ZX. Забавно было наблюдать, как точка отпрыгивала от набираемого мной текста на бейсике.

На бескомпьютерье и лист бумаги - IDE.

а что сказать то хотел?

ну, я тебе завидую, потому что ты явно смекалистее, чем я.

Spoofing ★★★★★ ()

грубо говоря ты в поздние саветские времена делал то, что школота вытворяла во 2й половине 70х.

хотя, тоже ничё так.

Deleted ()

Ну теперь-то все тян точно твои

buddhist ★★★★★ ()
Ответ на: комментарий от Deleted

школота вытворяла во 2й половине 70х.

Ты счаз о чём?

greenman ★★★★★ ()

Афтар, пиши исчо!!!

Заведи персональный тег. Я подпишусь. Поставь еще тег [[жж]], а то видишь народ волнуется.

А еще дублируй в личный бложек. И в нашу вики запили статейки (в моём профиле), мы не потеряем (обрати внимание на лицензию).

mandala ★★★★ ()
Ответ на: Афтар, пиши исчо!!! от mandala

В нынешнем состоянии без описания реализации и примеров скучновато читать:-(

Behem0th ★★★★★ ()
Ответ на: комментарий от Serg_HIS

Мне нечего спросить так как мой уровень ооооочень низок. Я это скорее воспринимаю как худ литературу. И говорю как о худ литературе, без сочных подробностей скучновато. Для развлечения статью я бы почитал, но я понимаю что написать развернутую статью с реализацией, очень времени затратно и писать ее на лор мало толку.

Behem0th ★★★★★ ()

Многозадачность хороша только когда втянешься в её использование. Это сегодня куча вещей переехала в компы и телефоны, а раньше было не так. И в те времена, когда всё по отдельности, а на машине и нет кучи разных процессов, вполне логично было и не задумываться по поводу того, что такое может быть кому-то нужно. Человек же один, и работает с одной задачей. Он же не Цезарь. Смешно. Нужно что-то посчитать - перезагрузился в соответствующую софтину и посчитал. Хочешь что-то почитать - перезагрузился в соответствующую софтину и почитал. А чтобы всё это разом... Понимание полезности этого приходит только с опытом использования. Тем более, что основам работы с однозадачным MS DOS'ом активно обучали и в 2000-м году, хотя уже тогда кругом были первопни с Win 95, местами с Win 98. Но, они больше позиционировались как нечто офисное, а не универсальное и позарез нужное всем и каждому. Раньше же обходились одним MS DOS'ом, и ничего.

saahriktu ★★★★★ ()

самосборные компы типа ЮТ-89, схемы которого и код прошивки ПЗУ печатались в Приложении к Юному технику.

ЮТ-88

andreyu ★★★★★ ()

Забавно, как раз неделю назад искал кит для пайки/сборки спектрума. Хотелось что-нибудь попаять, простые киты надоели, а мои поделки все в стадии раннего дизайна. Вот как раз на спектрум нарвался: http://www.ebay.co.uk/itm/Harlequin-rev-G-Sinclair-ZX-Spectrum-clone-DIY-kit-...

Остановило то что там нет dvi/hdmi, wifi, usb и прочих нормальных интерфейсов. Т.е., собрать-то соберу, а втыкать некуда.

В общем, не у одного у тебя весеннее обострение.

true_admin ★★★★★ ()

несколько секунд с частотой дискретизации 10000 Гц

Это при штатной частоте Z80 в 3.5MГц?

andreyu ★★★★★ ()

круто, ты прошел дальше меня.Скока тебе лет было?

targitaj ★★★★★ ()
Ответ на: комментарий от andreyu

У меня где-то есть исходники (вроде недавно видел когда перебирал старый хлам) высчитывал до такта прогу.

поищу.

Serg_HIS ()
Ответ на: комментарий от andreyu

ЮТ-88

Публиковалось в 1989-м, со второго номера. Может, поэтому спутал?

i-rinat ★★★★★ ()
Ответ на: комментарий от targitaj

Ну наверное уже 16-17 было когда делал многопоточность. Готовился в институт и работал на стройке разнорабочим, копил на Спектрум 1.

Хотел даже сделать повышение цветности мерцанием разных палитр через кадр в придачу к многопоточности (на одном прерывании кадровой развёртки всё можно было повесить).

И даже запись и воспроизведение видео со звуком разрабатывал на кассетный аудио магнитофон.

Но после расчётов понял что ни картинка в 32 на 32 пиксела ни частота кадров порядка 5 кадров в секунду в аднобитном цвете - не торт.

Serg_HIS ()
Ответ на: комментарий от greenman

ПК класса Спектрум появились как раз в конце 70х.
вот тогдашняя школота и наяривала на Альтаир

Deleted ()
Последнее исправление: RTP (всего исправлений: 1)
Ответ на: комментарий от Serg_HIS

У меня где-то есть исходники (вроде недавно видел когда перебирал старый хлам) высчитывал до такта прогу.

На Z80 даже nop занимает 4 такта.
Так что давайте свои расчеты.

andreyu ★★★★★ ()
Ответ на: комментарий от i-rinat

Публиковалось в 1989-м, со второго номера. Может, поэтому спутал?

Я вел речь не годе публикации, а о названии этого компьютера. Почему ТС перепутал название я не знаю, но ваше предположение весьма вероятно.

andreyu ★★★★★ ()
Ответ на: комментарий от Serg_HIS

Хотел даже сделать повышение цветности мерцанием разных палитр

Откуда на спектруме палитры?

Но после расчётов понял что ни картинка в 32 на 32 пиксела ни частота кадров порядка 5 кадров в секунду в аднобитном цвете

А теперь я вообще перестал понимать о чем вы говорите.

andreyu ★★★★★ ()
Ответ на: комментарий от Deleted

ПК класса Спектрум появились как раз в конце 70х

Тот спектрум, о котором идет речь тут и который был распространен на территории СССР всеже вышел в начале 80х.

andreyu ★★★★★ ()
Ответ на: комментарий от Deleted

ПК класса Спектрум появились как раз в конце 70х.

У тебя был комп с монитором и звуком в 1980 году?

У меня небыло.

Впервые я подофигел в 1987 году от, того что я воочию увидел в информационной жопе я живу после похода на Американскую выставку в СССР «Информатика в жизни США»

У меня тогда и начался «бзик» о том чем в натуре нужно заниматься..

До сих пор лежат каталоги и брошюры с выставки. Качество печати лучше чем у многих именитых журналов сейчас.

Там даже фотки ноутов есть (полноценных).

И на выставке я это видел своими глазами и трогал своими руками.

А потом пришёл домой, сел в прострацию и стал мечтать об программируемом калькуляторе.

Serg_HIS ()
Ответ на: комментарий от andreyu

Почему ТС перепутал название я не знаю

Это существенно 88 или 98.

забыл и не посмотрел в нете.

пишу всё по памяти для острастки читающих.

Serg_HIS ()
Ответ на: комментарий от andreyu

в спектруме была хитрая система цветности

экран был разбит на кубики (знакоместа так сказать) по 9 байт

8 байт - битовая картинка квадрата 8х8 и один байт на палитру знакоместа. 9-ый байт: 3 бита на цвет единиц в квадрате и 3 бита на цвет нулей в квадрате, так сказать цвет сивола и цвет фона. Оставшиеся 2 бита определяли яркость и мигание знакоместа.

Serg_HIS ()
Ответ на: комментарий от andreyu

Почему не этот вариант?

Там, похоже, только pcb, детальки не прилагаются. Мне бы кит сразу пригодный для пайки :(. А так надо гемороится с покупкой кучи деталей, причём, некоторые уже устарели (типа PCF8583P) и надо искать аналоги итп (память типа MSM5118160F-JS, например, я сходу не нашёл, как и её аналоги). В принципе, рискнуть можно, но шансы получить кирпич возрастают многократно.

Я написал им, может, у них кит есть...

true_admin ★★★★★ ()
Ответ на: комментарий от Serg_HIS

на это видео я наткнулся недели 2 назад.
не помню, видел ли я его раньше, но таки я две недели назад тоже очень задумчиво почесал затылок.

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

Deleted ()
Последнее исправление: RTP (всего исправлений: 1)
Ответ на: комментарий от Serg_HIS

если не ошибаюсь, то это недавеча описал 8bit guy у себя на канале.
интересная была графика в те времена.

Deleted ()
Ответ на: комментарий от andreyu

На Z80 даже nop занимает 4 такта.
Так что давайте свои расчеты.

Да, я знаю и даже доаолнительно вставлял их для корректировки скорости исполнения..

нашёл пару тетрадок с ассемблерным кодом... я на первых прогах не заботился о подписывании предназнаяения прог... фигово...

буду сейчас перeчитывать коди вспоминать что для чего...

а вообще 350 тактов на команду.... это не сильно меньше 100 команд

для цикла со смещением битов и прибавление адреса байта после каждых 8 смещений и запихивание одного байта в память вполне предостаточно.

Serg_HIS ()
Ответ на: комментарий от Spoofing

ну, я тебе завидую, потому что ты явно смекалистее, чем я.

Голь на выдумки хитра.... :(

Serg_HIS ()
Ответ на: комментарий от Behem0th

Я это скорее воспринимаю как худ литературу

Я описывал факты из своей жизни.

Притом смею тебя уверить, только самые прекрасные, добрые и приятные... ;)

Конечно же не мог я просто сидеть и фапать на компы... Распад совдепии, повсеместное ограбление всего советского народа мудилами и бандюками с помошью так называемой гиперинфляции (когда у человека было накоплено за 30-50 лет работы на СССР несколько тысяч рублей, а их превратили в фантики, которыми обклеивали потом туалеты (буквально).

Убивание промышленности (которой и так особо небыло кроме производства танков и бомб) и всего того что хоть как-то работало.

Да - это фентези я тут пишу :)

Serg_HIS ()
Ответ на: комментарий от Serg_HIS

Это существенно 88 или 98.

Это вопрос или утверждение?

пишу всё по памяти для острастки читающих.

Ок.

andreyu ★★★★★ ()
Ответ на: комментарий от Serg_HIS

в спектруме была хитрая система цветности
экран был разбит на кубики (знакоместа так сказать) по 9 байт

Не нужно рассказывать мне, как был устроен спектрум и его экран в частности.

8 байт - битовая картинка квадрата 8х8 и один байт на палитру знакоместа. 9-ый байт: 3 бита на цвет единиц в квадрате и 3 бита на цвет нулей в квадрате, так сказать цвет сивола и цвет фона. Оставшиеся 2 бита определяли яркость и мигание знакоместа.

Все это не имеет никакого отношения к палитре. Даже к мультиколору это не имеет никакого отношения.

andreyu ★★★★★ ()
Ответ на: комментарий от true_admin

Там, похоже, только pcb, детальки не прилагаются. Мне бы кит сразу пригодный для пайки

Говорят есть киты, но рассылают ли их сейчас я не знаю.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Все это не имеет никакого отношения к палитре

Вы случайно не художник?

Что такое по вашему палитра?

:)

А то как-то уже не смешно.

Serg_HIS ()
Ответ на: комментарий от Serg_HIS

Я все еще жду пояснений, как вы умудрились оцифровывать с частотой в 10КГц на спектруме.

andreyu ★★★★★ ()
Ответ на: комментарий от Serg_HIS

Вы случайно не художник?

Нет, а в данном контексте палитра имеет четкое определение.

Что такое по вашему палитра?

Не важно, что означает палитра в моем понимании, важно что вы вкладываете в это понятие, когда рассказываете о спектруме.

andreyu ★★★★★ ()
Ответ на: комментарий от Serg_HIS

А то как-то уже не смешно.

А так всегда бывает, когда человек говорит о том, чего не понимает.

andreyu ★★★★★ ()
Ответ на: комментарий от Serg_HIS

выставка на ВДНХ компьютерной техники США и чего-то там.

Deleted ()
Ответ на: комментарий от andreyu

350 тактов на один тик дисретезации.

к примеру среднее количество тактов на команду 7 => приблизительно 50 команд.

1. первая команда принимаем из порта значение.

2. вторая команда с помощью ксора выделяем нужный бит идущий с магнитофона.

3. если ноль пишем в буфер (прокручиваем регистр Б на один бит)

4. если не ноль прибавляем (ксорим по желанию нулевой бит и прокручиваем на 1 бит)

5. проверяем сколько прокурток (если меньше чем 8 идём в начало)

6. если больше (пишем байт по адресу буфера записи)

7. увеличиваем счётчик буфера записи на 1

8. если лимит буфера не исчерпан идём в начало

9 исчерпан лимт буфера - выход.

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

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

я сделал даже хитрее насколько помню сделав специально пустой цикл чтобы нопами не занимать память и подгонку сделал просто количеством циклов пустого цикла.

Неужели это и так всё не очевидно?

Serg_HIS ()
Ответ на: комментарий от andreyu

А так всегда бывает, когда человек говорит о том, чего не понимает.

Что тебе не понятно?

Я объясню. Корректно вопросы задавай.

Serg_HIS ()
Ответ на: комментарий от buddhist

Ну теперь-то все тян точно твои

Порой беда даже с этим...

иногда приходится скрываться. :(

Serg_HIS ()

Ну вот я тоже в детстве наяривал орион-128. Паял к нему программатор, дополнительные порты, рам-диск, ром-диск вместо магнитофона, потом Z80 в него (какой-то вариант с очень высокой частотой). Ковокс восьмибитный, цеплял комп через фильтр полосовой к приёмнику и принимал морзянку... Писал всё это в тетрадочке, потом руками же по таблице транслировал и проставлял адресацию. Детали почтой... И шо? Убогость же ужасная. Слез с этого барахла и не жалею уже. Даже фапать на это рука не поднимется.

imul ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.