Важная информация

User Tag List

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 44

Тема: Очередной однобитный велосипед для спектрума

  1. #21
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    потому как два rld подряд дадут полноценный байт записанный в (hl)

    ;hl=start
    ;bc=length

    ld d,#10

    load:
    dup <на сколько байт подряд хватит наглости>
    in a,(#1f)
    rld
    dec bc
    in a,(#1f)
    rld
    inc hl
    edup

    ld e,a

    wait:
    in a,(#1f)
    xor e
    and d
    jp z,wait

    ld a,b
    or c
    jp nz,load

    - - - Добавлено - - -

    а, в смысле так:
    in a,(#1f)
    ld (hl),a
    dec bc
    in a,(#1f)
    rld
    inc hl

    но синхримся же, так что лучше два rld, все же

  2. #22
    Member
    Регистрация
    06.02.2017
    Адрес
    г. Тольятти
    Сообщений
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    одно дело пользователям в старые компьютеры, которые итак еле дышат, лезть с паяльником, и совсем другое дело - просто воткнутся в стандартные пару разъемов - кемпстон и tape
    в общем, куда-то припаиваться - не дело, если можно этого избежать
    Тут у меня есть несколько возражений:

    Первое - совместимость и наличие разъёмов.
    У меня на двух спектрумах в детстве разъёмы Tape не совпадали: пришлось перепаивать чтобы грузится с одним шнурком от магнитофона.
    У оригинального спектрума джеки вроде были, а у тех что с кассетой шли вообще не было разъёма Tape. Кемпстона, кстати на одном моём компе вообще не было.

    Второе - питание и его гальваноразвязка
    Для одной "микросхемы" городить гальваноразвязанное питание - это как-то не по людски.
    Года два назад подключал как-то свой ПК к телеку по HDMI. Не показывает.
    Думаю всё, писец, смертоубийство, спалил материнку или разъём в телеке.
    Оказалось, что в разных розетках у меня разные фазы. На HDMI почему-то не выведена земля, а "земли" на разных фазах у импульсных источников питания получаются разными и более того - ползут относительно друг друга.
    То есть нужно гарантировать чтобы хоть у одного устройства (у спектрума или у нашей схемы) а лучше у обоих сразу будет гальваноразвязка от сети. Иначе маловероятны, но вполне возможны пиротехнические эффекты.

    Третье - конденсаторы в цепях Tape.
    Во первых они нам срежут постоянку, а во вторых сильно понизят скорость. Да и длинные провода в разъём кемпстон могут повлиять на ВЧ.
    Так что разъём Tape превращает проект в бессмыслецу.

    Цитата Сообщение от char Посмотреть сообщение
    можно читать полубайт и ждать следующего, а можно считать несколько полубайтов влет и потом уже синхрануться
    Синхранутся можно когда мы примерно знаем период синхронизации. Почитайте ветку про состязательную и несостязательную оперативу. Я вот с удивлением узнал, что четырёхтактовая инструкция при определённых условиях запросто может до 10 тактов растянутся. Так что первый полубайт мы примем правильно, второй полубайт со смещением до 50% (думаю тут угадать реально), А вот третий приём уже не гарантируется. С четвёртым же - наверняка пролетите.

    PS. И ещё раз напоминаю:
    Устройство задумывается как максимально простое. Не ставится задачи загрузится за полсекунды. Пусть загрузка программы будет происходить не за 5 секунд, а за 8 или даже 10. Зато четыре раза ткнуть паяльником и приклеить термоклеем ардуинку.
    Те кто любит спектрум и впадает в бешенство, если игра грузится дольше полсекунды - тот давно уже сидит на спектруме-мутанте с процом частотой в 20 мегагерц или даже зашитым в ПЛИС и работающим до 100 мегагерц.

  3. #23
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    тогда, если синхрит ардуинка, что-то такое будет?

    load:
    ld a,e
    out (#fe),a ;ардуинка, дай ещщо
    in a,(#1f)
    rld
    dec bc
    ld a,d
    out (#fe),a ;ардуинка, дай ещщо
    in a,(#1f)
    rld
    inc hl
    ld a,b
    or c
    jr nz,load

  4. #24
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,550
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    178 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    но синхримся же, так что лучше два rld, все же
    если непременно с точностью до такта, то можно так:

    in a,(#1f)
    ret m
    inc hl
    ld (hl),a
    in a,(#1f)
    rld

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

  5. #25
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    тогда, если синхрит ардуинка, что-то такое будет?

    load:
    ld a,e
    out (#fe),a ;ардуинка, дай ещщо
    in a,(#1f)
    rld
    dec bc
    ld a,d
    out (#fe),a ;ардуинка, дай ещщо
    in a,(#1f)
    rld
    inc hl
    ld a,b
    or c
    jr nz,load

    load:
    ld a,e
    out (#fe),a ;ардуинка, дай ещщо
    ;тут, возможно, понадобятся паузы
    in a,(#1f)
    rld
    dec bc
    ld a,d
    out (#fe),a ;ардуинка, дай ещщо
    ;тут, возможно, понадобятся паузы
    in a,(#1f)
    rld
    inc hl
    ld a,b
    or c
    jr nz,load

  6. #26
    Member
    Регистрация
    06.02.2017
    Адрес
    г. Тольятти
    Сообщений
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    Код:
    	in a,(#1f)
    	rld
    	dec bc
    	in a,(#1f)
    	rld
    	inc hl
    И сравниваем что предложил krt17

    Цитата Сообщение от krt17 Посмотреть сообщение
    Код:
    	dup	8
    	in	a,(#fe)
    	add	c
    	rl	e
    	edup
    	ld	(hl),e
    	inc	hl
    59 тактов против 191. Разница в 3 раза.
    Добиваем сюда синхронизацию. Добиваем сюда контрольную сумму. Учитываем задержки при чтении с флешки.
    И получаем разницу в полтора-два раза.

    Спрашивается, нафига козе баян?
    В 2 раза усложняем схему, рискуем коротким замыканием через кемпстон-джойстик... и ускоряемся всего ничего.

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

  7. #27
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    устройство же, которое можно тупо воткнуть (или максимум перепаять разъем), - более распространяемо.

  8. #28
    Member
    Регистрация
    06.02.2017
    Адрес
    г. Тольятти
    Сообщений
    36
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от char Посмотреть сообщение
    ld a,e
    out (#fe),a ;ардуинка, дай ещщо
    ;тут, возможно, понадобятся паузы
    in a,(#1f)
    Да, идея "дай ышо" примерно такая.
    кстати "дай ышо" можно через OUT (BC),C: OUT (BC),B делать (экономятся и байты и такты)

    Ну просто не нравится мне кемпстон-порт.
    Радикального ускорения он не добавит.

    Если хочется побыстрее, то вон, на EvgenRU наехать и раскрутить его на тему эмулятора AY-8910 на Atmega8
    Прицепить к этой меге SD-карту и сделать синхронный байтовый обмен (команды INIR/INI OTIR/OTI) Тогда загрузка будет мгновенной.
    Хотя нет. Вру. Чтобы была мгновенной надо вместо меги чип побыстрее ставить, STM какой-нибудь, чтобы через DMA работать с флешкой.

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

    - - - Добавлено - - -

    Цитата Сообщение от char Посмотреть сообщение
    нехер припаиваться внутрь компа, этим будут заниматься единицы

    устройство же, которое можно тупо воткнуть (или максимум перепаять разъем), - более распространяемо.
    Про "более распространяемо" - согласен. Только вот без пайки оно не заработает.
    Без пайки это просто цифровой магнитофон у которого и схему и прошивку выложили, тут действительно повторятся не стоит.
    Так что тут выбор простой - либо паять / либо вообще нах не делать.

  9. #29
    Activist
    Регистрация
    15.01.2005
    Сообщений
    201
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    короче, будет коробочка, из которой два провода на разъемы кемпстона и магнитофона, даже я куплю, шоббыла

    а присобачивание внутрь компа - нафиг не нужно

    - - - Добавлено - - -

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

  10. #30
    Guru Аватар для Lethargeek
    Регистрация
    08.09.2005
    Адрес
    Воронеж
    Сообщений
    4,550
    Записей в дневнике
    3
    Спасибо Благодарностей отдано 
    270
    Спасибо Благодарностей получено 
    224
    Поблагодарили
    178 сообщений
    Mentioned
    11 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    59 тактов против 191. Разница в 3 раза.
    как-то криво такты считаешь, на самом деле 58 (с одним rld) против 197 ~3.4 раза
    (если ниблы отдавать неравномерно - retm не нужна и 53 такта ~3.7 раза)

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    Добиваем сюда синхронизацию
    однократно перед запуском пакета - задаём через сколько тактов начать и на сколько байт развёрнут цикл приёма

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    Добиваем сюда контрольную сумму
    на весь пакет, после передачи, необязательно

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    Учитываем задержки при чтении с флешки.
    буферить

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    И получаем разницу в полтора-два раза.
    в 3+
    Прихожу без разрешения, сею смерть и разрушение...

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. однобитный WAV
    от ALKO в разделе Софт
    Ответов: 26
    Последнее: 28.07.2021, 05:03
  2. Наборы для сборки Орион-128/запчасти для Спектрума.
    от falanger в разделе Барахолка (архив)
    Ответов: 15
    Последнее: 05.09.2007, 19:51
  3. Ответов: 11
    Последнее: 04.08.2006, 15:08
  4. Ответов: 21
    Последнее: 23.02.2005, 20:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •