LINUX.ORG.RU
ФорумTalks

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

 , ,


0

4

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ на: комментарий от imul

Ковокс восьмибитный

Да кто его не паял...

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

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

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

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

Мне это очевидно, поскольку в начале 90х занимался оцифровкой и воспроизведением голоса на спектруме.

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

Так изучил бы уже...
https://ru.wikipedia.org/wiki/CGA#.D0.9F.D0.B0.D0.BB.D0.B8.D1.82.D1.80.D0.B0_CGA

Какое это имеет отношение к теме спектрума? На спектруме не было никаких палитр. Втирайте про палитры кому-либо другому.

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

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

Нет там никакой разработки - это тупо несколько резаков. Вот general sound - это была тема.

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

Ну да, 9 резисторов скрутить ума особого не надо. Главное было бы куда их подоткнуть.

На выход параллельного порта, вестимо. В клонах спектрума на ВВ55 цеплялся.

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

Мне это очевидно, поскольку в начале 90х занимался оцифровкой и воспроизведением голоса на спектруме.

Тогда чем спровоцированы наезды по этой теме?

Праздники?

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

GS можно было прикрутить вроде в виде трёхканальной микросхемы сигнал-процессора ямаховской. Но блин, дорого было.

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

Я со спектрумами не возился, ни с оригиналами, ни с клонами. А в орионе 55-тых было три штуки. Но у меня они все были заняты, поэтому приходилось колхозить дополнительно.

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

GS можно было прикрутить вроде в виде трёхканальной микросхемы сигнал-процессора ямаховской. Но блин, дорого было.

Трехканальный звук на AY и GS на Z80 с собственной памятью - это разного класса устройства.

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

Вашими пробелами.

Праздник в разгаре...

Ладно вы там празднуйте.

Потом как вам будет досуг - пообщаемся конструктивно.

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

С праздниками!

Вы с темы не съезжайте. Ваш бредопост - «Хотел даже сделать повышение цветности мерцанием разных палитр» подразумевает несколько переключаемых палитр. А в спектруме был строго ОДИН набор, не переключаемый, не изменяемый. Если вы хотели показать свой уровень, то нужно было бы для начала прочитать, что такое мультиколор на спектруме и каким образом он делался.

Не забудь опохмелится.

Не употребляю.

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

Мне мой соученик в институте позже прикрутил музыкальный сопроцессор.

У него было 4 канала.

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

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

Я только про ямаховскую микруху знаю, потому что её можно было прилепить много куда. У нас в каком-то кабинетике на факультете стояли ямахи кстати когда был на первом курсе. Хотя в потрохах поковыряться там не вышло.

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

Ваш бредопост

Тоесть с оцифровкой звука мы закончили? там бреда нет?

Уважительнее и точнее можете задавать вопросы или вас в детстве не учили?

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

А в орионе 55-тых было три штуки.

Точно, а я и забыл об этом.

Но у меня они все были заняты, поэтому приходилось колхозить дополнительно.

Ну я только за спектрум говорил.

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

Праздник в разгаре...

Ну если у вас праздник в самом разгаре, то тогда понятно откуда столько бреда в ваших постах.

Ладно вы там празднуйте.

Это вы сейчас своим гостям сказали?

Потом как вам будет досуг - пообщаемся конструктивно.

Что конструктивного в сказках про палитры и «повышение цветности мерцанием разных палитр»?

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

Тоесть с оцифровкой звука мы закончили? там бреда нет?

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

Уважительнее и точнее можете задавать вопросы или вас в детстве не учили?

Ок, сделаю пометку к вашему аккаунту - «фантазер и сказочник с очень нежной натурой».

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

Что конструктивного в сказках про палитры и «повышение цветности мерцанием разных палитр»?

Недавно вы позорились непониманием как можно выхватить 10000Гц на проце в 3,5 МГц.

Вы вначале определитесь, что вы тут хотите.

Троллить или узнавать что-то новое.

И просто вежливо спросите как делается то, что вы не понимаете.

А то и ковокс ему не разработка! А что это?

Стандарт и схема были разработаны. Или вы не понимаете, что такое разработка?

Спроси вежливо и внятно, что тебе не понятно - я детально объясню. С радостью.

Я даже объясню почему у этого компа было название Spectrum.

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

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

Да, тот самый AY.

У нас в каком-то кабинетике на факультете стояли ямахи кстати когда был на первом курсе. Хотя в потрохах поковыряться там не вышло.

С ямахами познакомился будучи школьником, где-то в середине 80х.

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

В аспирантуре я делал иза-карту с ацп. Вставлялась она внутрь 286-го (с частотой проца 20 мгц в турбо) и софтина самописная на ассемблере тупо по прерыванию получала с шины значение, паковала с коэффициентом 5/8 (ацп был десятибитный) и скидывала на диск. Так вот 10 кгц (20 кгц такт у ацп) был для 286-й практически потолком, когда уже были потери данных. А ведь ничего сложного, тупо прочитать готовое значение из порта. Поэтому как на убогом z80 пусть даже и однобитно удавалось цифровать 10 кгц вопрос остался.

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

Так вот 10 кгц (20 кгц такт у ацп) был для 286-й практически потолком

Тут всё просто.

проблем было одновременно несколько.

скорость доступа к диску тогда небыло ДМА и винт постоянно тоже дёргал проц.

и эта ваша АЦП тоже дёргала прерывание - это отдельный большой вопрос.

если нитересно могу детально рассказать по обоим пунктам.

детально разбирался с этими штуками

изучал архитектуру работы вплоть до 486 проца и чуть больше.

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

Школьником я был до 1991-го. На ямахах можно было посидеть на олимпиадах, но меня сажали за укнц. А в 92-м ямахи демонтировали совсем. И даже не признались куда выкинули. Машинки были распространённые в педах и всяких институтах усовершенствования. Даже экстишки на их фоне смотрелись блёкло, но на интеловщине было си и асм и прочее на выбор. На ямахах только бейсик и можно было выпросить cp/m с паскалем. :/

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

Недавно вы позорились непониманием как можно выхватить 10000Гц на проце в 3,5 МГц.

Ок, пусть будет так.

Троллить или узнавать что-то новое.

Всегда интересно узнать вашу новую сказку.

И просто вежливо спросите как делается то, что вы не понимаете.

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

А то и ковокс ему не разработка! А что это?

Ну да, 9 резаков напаянных на ВВ55 - это великая разработка. Это простейший сумматор, которые изучают чуть ли не на первых занятиях радиокружков.

Стандарт и схема были разработаны.

Какой стандарт, какая схема? Вы совсем не понимаете, что говорите.

Или вы не понимаете, что такое разработка?

Похоже, что вы не понимаете.

Спроси вежливо и внятно, что тебе не понятно - я детально объясню. С радостью.

Давайте про «повышение цветности мерцанием разных палитр» поясняйте, разработчик ковоксов.

Я даже объясню почему у этого компа было название Spectrum.

А заодно и историю про самого Клайва и его компанию почитайте - http://zxnext.narod.ru/hist1982_1.htm

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

Давайте про «повышение цветности мерцанием разных палитр» поясняйте, разработчик ковоксов.

Я не разрабатывал ковокс.

Вы ошиблись адресом.

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

Школьником я был до 1991-го.

Аналогично, похоже мы приблизительно одного года.

На ямахах можно было посидеть на олимпиадах, но меня сажали за укнц.

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

А в 92-м ямахи демонтировали совсем. И даже не признались куда выкинули.

Вот этот вопрос меня тоже долгое время интересовал :)

На ямахах только бейсик и можно было выпросить cp/m с паскалем. :/

Для меня что ямаха, что спектрум - это исключительно ассемблер. Да и на ibm/pc я начал с ассемблера, позже перейдя на си.

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

врожде был вопрос как мог спектрум писать 10000 когда даже 286 еле и с лагами мог 20000?

это я и объяснил бы.

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

Я не разрабатывал ковокс.

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

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

Вы с темы про палитры в спектруме не съезжайте.

Вначале перестаньте поясничать.

Вроде же здоровы вырос, уже наверное и живот есть, А ведёшь как в детском саду.

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

Вначале перестаньте поясничать.

Опять девочку пяти лет включили?

Вроде же здоровы вырос, уже наверное и живот есть,

Нет, веду здоровый образ жизни.

А ведёшь как в детском саду.

Как в детском саду ведете себя вы. Я вам четкий вопрос задал.

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

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

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

Почему 286-й писал по 10 часов 10-битный поток с лагами или без лагов я итак знаю. Видел это своими глазами на многоканальном осциллографе. Про ШИМ (которую ты пытаешься объяснить как реализовывал на спектруме) я тоже в курсе. Вот только частотные оценки мне не совсем понятны. Если ты делал 10 киловыборок на ШИМ это не означает, что ты цифровал звук с той же дискретностью.

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

У нас за ямахи тряслись пуще глаза, никого не пускали. А в классы с айбиэм можно было ходить когда хочешь и делать что хочешь. Вот так открытость победила закрытость. :)

imul ★★★★★
()

многопоточной операционки. И кое что у меня даже получилось.

Под MS-DOS это называлось резидентной программой. Такие программы многие писали, это не считалось чем-то особенным. Хотя вау-эффект был.

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

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

Прикол был в том, что я писал просто напрямую в память и ничего кроме прерывания таймера (оно же прерывание кадровой развёртки) не отвлекало проц. пропуск пары тиков за 1/50 секунды ничего не решало для однобитного звука. притом просто для того чтобы показать друзьям.

286 проц был не такой уж и быстрый

кажется там были вариации около 8 мегагерц и даже 16 (не помню)

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

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

Убрали этот прикол только начиная с 386 процов, в которых наконец и появился настоящий защищённый режим (386 protected mode). Суть проблемы была, что 286 были слишком тормознуты для винтов даже тех времён.

но это часть проблемы.

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

Проц был 20 мгц. В дос есть куча хуков даже во время дисковых операций. Данные в регистре ацп защелкивались и были актуальны до следующего защелкивания. Пилой же прекрасно выясняется где и что лагало даже без осциллографа. Это были девяностые. Денег на науку не было, приходилось самим извращаться.

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

У спектрума nmi к таймеру цеплялось? А то лень схемы искать. Да и емнип там какая-то плиска была на замену рассыпухе, а что у неё было унутре вопрос отдельный.

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

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

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

Нет, не делали. От моей карты приоритет был выше. Обработчик был коротким. Всё остальное делалось вне обработчика. Где и когда были лаги я знаю. Но, вот когда я до этого додумался было уже не актуально.

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

Что-то разговор завял... Расскажи что нить из такого ещё?

Или я могу про свои попытки повышения цветности на спектруме. Идея и применение так себе но всё же работало. примерно как стерео на 50 кадрах в секунду :) работает но глаз режет.

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

Работа железки легко проверялась пилообразным сигналом. Проблема была в том, что мне надо было делать несколько семафоров на заполнение циклического буфера, а не один. И копировать данные порционно в буфер для обработки. Но, тогда я был молод и глуп (а сейчас глуп и стар) и до 20 кгц тактовой частоты работало и с одним семафором, а микруха ацп выше 22 кгц не заводилась уже. Поэтому работали в пределах 10-16 кгц и не заморачивались. С шумом в один младший разряд. Коллеги читали из этой микрухи через LPT и получали максимум ~200 точек в секунду на любой технике и были рады. А уж я с 10 тысячами точек в секунду был просто на седьмом небе.
ШИМ в память можно конечно делать, вот только 10 тысяч однобитных выборок в секунду после интегратора завалят тебе всё что выше килогерца. Можно конечно это некое подобие попукивания считать оцифровкой, если так хочется. Но тут я останусь лучше со своим мнением, мне так удобнее. :)

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

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

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

Можно конечно это некое подобие попукивания считать оцифровкой

Я же писал

Звук был однобитный - потому жутко свистящий и скрежещащий

Но слова и интонацию распознать можно

Вообще я же извращенец, по двум последним темам это видно :).

Сейчас (несколько... 10 наверное лет назад) с более глубокими познаниями в математических и алгоритмических методах, я пошёл гораздо дальше.

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

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

Соврал!

Частоты вытянулись абсолютно точно.

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

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