User Tag List

Страница 17 из 37 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 361

Тема: Секреты и трюки программирования (в том числе и игр) для РК-86

  1. #161

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от SegaBoy Посмотреть сообщение
    Сделал тестовую картинку с экраном в таком формате.
    я потом попробую написать тест для проверки...
    ...еще нужно придумать как сделать выравнивание на 1такт...

  2. #162

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Поправил в эмуляторе подсчет тактов. Сейчас такты ПДП считаются точно (по крайней мере в том тесте):

    Скрытый текст

    [свернуть]

    На днях выложу обновленную версию.

  3. #163

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    то есть если мы хотим чтоб кадровый синхроимпульс начинался с первого такта проца
    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    вот эти параметры
    Да нет эти параметры сами по себе не дадаут выравнивание
    они просто сделают так что все фреймы будут идти одинаковыми
    а вот какой будет из 3-х вариантов фрейма...

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

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

    а в Апогее INTE не заведен на бипер???

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

    А кто нибудь может подкинуть сохранялку в RK для sjasm-а??
    дето она проплывала тут по моему...

  4. #164

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    а в Апогее INTE не заведен на бипер???
    Да, в Апогее INTE меняет набор шрифтов. И ещё он выведен наружу, на разъём расширения.
    Последний раз редактировалось SegaBoy; 07.12.2017 в 01:17.

  5. #165

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    По поводу работу ПДП в РК.
    Пересылка байт из ОЗУ в ВГ75 происходит следующим образом. После торможения процессора, контроллер ПДП выставляет адрес на шину адреса и формирует сигнал чтения для ОЗУ через выход /MEMW. Появившиеся данные на шине данных ПДП проталкивает в ВГ75 сигналом /IORD. То есть по факту ВТ57 в себя не загружает эти данные, они просто находятся на шине данных.

    Подробнее можно прочитать в книжке "Домашний компьютер" от авторов РК, на стр. 45.

  6. #166
    HardWareMan
    Гость

    По умолчанию

    SegaBoy, ПДП не только в РК так делает, он это делает @design. Смысл в том, что ПДП при приходе DRQ (будем считать, что канал настроен и прочее) запрашивает шину у ЦП, и как только ЦП подтвердит, что шина свободна, ПДП формирует полный адрес памяти для доступа и активирует шины управления памятью MEMRD/MEMWR а так же подтверждает доступ устройству DACK. Устройство изначально настроено так, чтобы при приходе DACK сразу выдавать данные на шину либо принимать их с нее, в зависимости от направления передачи. У устройства могут быть несколько DACK и, соответственно, несколько DRQ, которые могут быть настроены на разные режимы. К примеру популярная SB16 использует 2 DMA канала, одна для 8ми битной передачи и вторая для 16ти битной. Либо сразу для дуплексного режима (одновременно воспроизведение и запись).

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

    Но особенность работы ПДП 8257 именно в РК заключается в особом подключении выводов MEMRD/MEMWR и IORD/IOWR самого контроллера. Поэтому операция при программировании выглядит не логичной.

    Но это все только из-за упрощения схемы самого РК, логику работы самого ПДП оно не нарушает.
    Последний раз редактировалось HardWareMan; 15.03.2017 в 17:27.

  7. #166
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #167

    Регистрация
    12.11.2009
    Адрес
    Москва
    Сообщений
    403
    Спасибо Благодарностей отдано 
    50
    Спасибо Благодарностей получено 
    90
    Поблагодарили
    66 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    HardWareMan, спасибо!
    Ну да, я это и имел в виду. Полезно иногда проговаривать в слух очевидные для одних вещи, не очевидные для других. На форуме полно тем, где многие нюансы раскрыты не до конца и максимум предлагается пойти и почитать. По-любому интерес к ВГ75 и ВТ57 возникнет не один раз, а читать книжки не всегда получается с пониманием. Даташиты и мануалы же везде разложены, но язык там такой непривычный, что люди постоянно переспрашивают - как это работает = ))

  9. #168

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    402
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от zebest Посмотреть сообщение
    по моемуу не проплывала, а то бы я не мучался. можно двумя путями - длинным, сохраняем чистый bin и внешней утилитой делаем съедобный файл, или коротким - с кривым заголовком, но Emu вполне хватает и такого, зато для быстрой проверки хорошо
    Не понял, что имеется в виду по "кривым" заголовком? Если отсутствие в конце файла контрольной суммы, то просто добавьте в конец что-то типа:
    db 00h, 0e6h, 00h, 00h
    И файл будет грузиться в любом эмуляторе. Пусть даже выдавая ошибку КС.

    А что касается Emu80, я так понял, что желательно убрать проверку наличия КС при загрузке из командной строки?

  10. #169

    Регистрация
    22.05.2011
    Адрес
    г. Дзержинск, Украина
    Сообщений
    6,829
    Спасибо Благодарностей отдано 
    483
    Спасибо Благодарностей получено 
    663
    Поблагодарили
    513 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ладно тогда напишу сам и потом выложу...

  11. #170

    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    810
    Спасибо Благодарностей отдано 
    11
    Спасибо Благодарностей получено 
    77
    Поблагодарили
    59 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Подсчет контрольной суммы я уже выкладывал в составе исходника позавчера, честно говоря не думал что для кого то это может быть проблемой.
    Код:
    cs	= 0
    	lua	pass3
    	mems=_c("binBegin")
    	meme=_c("binEnd")
    	cs=0
    	for i=mems,meme-2 do
    	cs=(cs+sj.get_byte(i)*257)
    	end
    	cs=(cs-cs%256+(cs+sj.get_byte(meme-1))%256)%65536
    	_pl("cs	= "..cs)
    	endlua
    	display cs
    	db	0,0,#e6,cs/#100,cs&#ff
    Раз такое дело положу темплейт полностью

    Скрытый текст

    Код:
    	device	zxspectrum48
    	org	#0000
    rkBegin
    	db	progBegin/#100,progBegin&#ff
    	db	(progEnd-1)/#100,(progEnd-1)&#ff
    binBegin
    	disp	#0000
    progBegin
    ;-------------------------------------------
    ; code here
    	jp	$
    ;-------------------------------------------
    progEnd
    	ent
    binEnd
    cs	= 0
    	lua	pass3
    	mems=_c("binBegin")
    	meme=_c("binEnd")
    	cs=0
    	for i=mems,meme-2 do
    	cs=(cs+sj.get_byte(i)*257)
    	end
    	cs=(cs-cs%256+(cs+sj.get_byte(meme-1))%256)%65536
    	_pl("cs	= "..cs)
    	endlua
    	display cs
    	db	0,0,#e6,cs/#100,cs&#ff
    rkEnd
    	savebin "prog.rk",rkBegin,rkEnd-rkBegin
    [свернуть]
    Последний раз редактировалось krt17; 15.03.2017 в 22:09.

Страница 17 из 37 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 210
    Последнее: 26.07.2019, 11:45
  2. Ответов: 6
    Последнее: 07.02.2016, 11:55
  3. Трюки с контроллером FDD 82077
    от Titus в разделе Утилиты
    Ответов: 4
    Последнее: 10.06.2011, 19:17

Ваши права

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