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

User Tag List

Показано с 1 по 3 из 3

Тема: Нужна помощь в загрузке с ленты(эмуль)

  1. #1
    Member Аватар для Dwa83
    Регистрация
    31.12.2017
    Адрес
    г. Реж
    Сообщений
    155
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Нужна помощь в загрузке с ленты(эмуль)

    Решил немного изменить стандартную процедуру загрузки, находящейся по адресу 1366. Многое прочитал, скопипастил процедуру загрузки с книжки. Не работает. Пилот-тон не хочет видеть. Изменив временнЫе значения - все фронта видит, но считывает неправильно. На последний момент пробы было изменено всего две строчки(приведены устоявшиеся названия подпрограмм):
    Код:
    LD_LEADER	LD	B,#9C		;7
    		CALL	LD_EDGE_2	;17
    		
    		JR	NC,LD_BREAK	;12,7
    		
    		LD	A,#C2  ;вместо C6		;7
    и

    Код:
    LD_8_BITS	CALL	LD_EDGE_2	;17
    		RET	NC		;11,5
    
    		LD	A,#C6       ;было CB		;7
    После изменения времени сравнения и пилот-тон и байты(синхроимпульс считывает без ошибок) стали хотя бы работать, и даже после загрузки байт маркер(который до этого считывался с рандомным значением при каждой пробе загрузки от 01111111 до 00000011 и даже 00000000) стал правильным. Первые несколько байт совпадали с теми, что в тайп-менеджере показывалось в блоке загружаемого кода(дальше пока не проверял). При запуске программы - всё равно сброс(видимо не всё до конца считалось правильно).

    Вопрос проcтой: почему так?

    Вызывал из ПЗУ - норм работает.

    Погрешил на ошибки в книге. Посмотрел несколько источников - одинаково. Посмотрел ПЗУ дизассемблером - одинаково. (За исключением отсутствия куска кода VERIFY. Добавил и его, там три строчки)

    Слышал, что первая банка памяти работает быстрее, чем остальные.. А я помещаю загрузчик в 25000 для пробы. Может из за этого временнЫе интервалы в константах менять приходится? А почему тогда синхроимпульс без проблем?
    Кто что подскажет?

    На всякий:

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


    сам кусок кода
    Код:
    		ORG	25000
    
    		LD	DE,15315
    		LD	IX,32768
    		LD	A,255
    		SCF
    
    
    ;		DI
    ;NXT		LD	B,0
    ;		CALL	LD_EDGE_1
    ;		JR	NXT
    
    
    
    
    LD_BYTES	INC	D		;4	УСТАНОВИМ ФЛАГ Z В 0
    		EX	AF,AF'		;4	И СОХРАНИМ В РЕЗЕРВЕ
    		DEC	D		;4
    		DI			;4
    		LD	A,#0F		;7	БЕЛЫЙ ЦВЕТ БОРДЮРА
    		OUT	(#FE),A		;11
    		LD	HL,#053F	;10
    		PUSH	HL
    
    		;-------------------------------
    		IN	A,(254)		;11	ЗАПОМИНАЕМ ПЕРВОЕ ЗНАЧЕНИЕ ПОРТА
    		RRA			;4	СМЕЩАЕМ С 6 НА 5 БИТ ВХОДА
    		AND	32		;7	ВЫДЕЛЯЕМ ТОЛЬКО 5 БИТ
    		OR	2		;7	ПРИБАВИМ КРАСНЫЙ ЦВЕТ
    		LD	C,A             ;4	ХРАНИТ ЗНАЧЕНИЕ ПОРТА И КРАСНОГО БОРДЮРА
    		CP	A		;4	УСТАНОВИМ ФЛАГ Z В 1 ЧТОБ НЕ ВЫЙТИ НА СЛЕДУЮЩЕЙ СТРОКЕ
    
    LD_BREAK	RET	NZ		;11,7
    LD_START	CALL	LD_EDGE_1	;17
    		JR	NC,LD_BREAK	;12,7
    		
    		;ПРОИЗОШЛО ИЗМЕНЕНИЕ БИТА - ПОШЁЛ СИГНАЛ
    
    		LD	HL,#0415	;10	 /  2 698 195 ТАКТОВ
    LD_WAIT		DJNZ	LD_WAIT		;10,6	|
    		DEC	HL		;6	|
    		LD	A,H		;4	|
    		OR	L		;4	|
    		JR	NZ,LD_WAIT	;12,7	 \
    		
    
    		CALL	LD_EDGE_2	;17
    		JR	NC,LD_BREAK	;12,7
    	
    LD_LEADER	LD	B,#9C		;7
    		CALL	LD_EDGE_2	;17
    		
    		JR	NC,LD_BREAK	;12,7
    		
    		LD	A,#C2		;7
    		CP	B		;4	ПРОВЕРЯЕМ ВРЕМЯ
    		
    		JR	NC,LD_START	;12,7
    		
    		INC	H		;4	256 ПАР ИМПУЛЬСОВ
    		JR	NZ,LD_LEADER	;12,7
    
    LD_SYNC		LD	B,#C9		;7
    		CALL	LD_EDGE_1	;17
    		
    		JR	NC,LD_BREAK	;12,7
    		LD	A,B		;4
    		CP	#D4		;7
    		JR	NC,LD_SYNC	;12,7
    
    		CALL	LD_EDGE_1	;17	ОЖИДАЕМ КОНЕЧНЫЙ ФРОНТ СИНХРОИМПУЛЬСА
    		RET	NC		;11,5	НЕ ДОЖДАЛИСЬ
    
    		LD	A,C		;4
    		XOR	#03		;7	МЕНЯЕМ ЦВЕТ БОРДЮРА НА СИНИЙ
    		LD	C,A		;4
    
    		LD	H,#00           ;7
    		LD	B,#B0           ;7
    
    		JR	LD_MARKER       ;12
    
    
    LD_LOOP		
    		EX	AF,AF'		;4
    		JR	NZ,LD_FLAG	;12,7
    		JR	NC,LD_VERIFY	;12,7
    		LD	A,255
    		LD	(65500),A
    		LD	(IX+0),L	;19
    		JR	LD_NEXT		;12
    LD_FLAG		
    		
    		RL	C		;4
    		XOR	L		;4
    		
    		RET	NZ		;11,5
    		;CALL    DEB
    		LD	A,C		;4
    		RRA			;4
    		LD	C,A		;4
    		INC	DE		;4
    		JR	LD_DEC		;12
    LD_VERIFY	LD	A,(IX+0)
    		XOR	L
    		RET	NZ
    LD_NEXT		INC	IX		;10
    LD_DEC		DEC	DE		;6
    		EX	AF,AF'		;4
    		LD	B,#B1		;7
    LD_MARKER	
    		LD	L,01		;7
    LD_8_BITS	CALL	LD_EDGE_2	;17
    		RET	NC		;11,5
    
    		LD	A,#C6;CB		;7
    		CP	B		;4
    		RL	L		;4
    		LD	B,#B0		;7
    		JP	NC,LD_8_BITS	;10
    		
    		LD	A,H		;4
    		XOR	L		;4
    		LD	H,A		;4
    		
    		LD	A,D		;4
    		OR	E		;4
    		JR	NZ,LD_LOOP	;12,7
    		
    		LD	A,H		;4
    		CP	#01		;7
    		RET			;10
    
    LD_EDGE_2	CALL	LD_EDGE_1	;17
    		RET	NC		;11,5	ВЫХОД ПО BREAK
    
    LD_EDGE_1
    		;-----------------------------------------------
    		LD	A,22		;7	/ЗАДЕРЖКА 358 ТАКТОВ
    LD_DELAY	DEC	A		;4
    		JR	NZ,LD_DELAY	;12,7
    		AND	A		;4	\
    		;-----------------------------------------------
    
    LD_SAMPLE	INC	B		;4	ПРОВЕРКА СЧЁТЧИКА ВРЕМЕНИ
    		RET	Z		;11,7	Z-ЕСЛИ ВРЕМЯ ИСТЕКЛО
    
    		;-----------------------------------------------
    		LD	A,#7F		;7	ПРОВЕРКА КЛАВИШИ BREAK
    		IN	A,(254)		;11	И СЧИТЫВАНИЕ ЗНАЧЕНИЯ ВХОДА
    		RRA			;4
    		RET	NC		;11,7
    		;-----------------------------------------------
    
    		XOR	C		;4
    		AND	32		;7
    		JR	Z,LD_SAMPLE	;12,7	ЗНАЧЕНИЕ БИТА НЕ ИЗМЕНИЛОСЬ
    
    
    		LD	A,C		;4	ИНВЕРТИРУЕМ БИТ И ЦВЕТ ФОНА
    		CPL			;4
    		LD	C,A		;4	СОХРАНИМ ОБРАТНО В С
    
    		AND	#07		;7	ВЫДЕЛИМ ТОЛЬКО ЦВЕТ
    		OR	#08		;7	УСТАНОВИМ БИТ ДИНАМИКА
    		OUT	(254),A		;11	ОТПРАВИМ В ПОРТ
    		SCF			;4
    		RET          
    
    
    ;--------------------ПОКА НЕ ЗАДЕЙСТВОВАНО
    COLOR		;364 
    	LD	HL,22893	;10
    	LD	C,(HL)		;7
    	LD	B,7		;7
    C4	INC	HL		;6	323
    	LD	A,(HL)		;7
    	DEC	HL		;6
    	LD	(HL),A		;7
    	INC	HL		;6
    	DJNZ	C4		;13,8
    	LD	(HL),C		;7
    	RET			;10
    ;--------------------
    DEB	;ОТЛАДОЧНАЯ-ИНДИКАЦИОННАЯ
    	PUSH	HL
    	PUSH	BC
    DB0	LD	HL,16384
    	LD	B,8
    DB1	LD	A,255
    	XOR	(HL)
    	LD	(HL),A
    	INC	H	
    	DJNZ	DB1
    
    
    	LD	A,#7F		;7	ПРОВЕРКА КЛАВИШИ BREAK
    	IN	A,(254)		;11	И СЧИТЫВАНИЕ ЗНАЧЕНИЯ ВХОДА
    	RRA			;4
    	JR	C,DB0		;11,7
    
    	POP	BC
    	POP	HL
    	RET


    [свернуть]

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

  3. #2
    Member Аватар для Dwa83
    Регистрация
    31.12.2017
    Адрес
    г. Реж
    Сообщений
    155
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Попробую до #BFFF и после #BBD3, так как с #8000 по #BBD3 сама программа. Посмотрю что получится.

  4. #3
    Member Аватар для Dwa83
    Регистрация
    31.12.2017
    Адрес
    г. Реж
    Сообщений
    155
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    17 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вау, работает! Поместил загрузчик в #BBE0. И считало без заковык и запустилось. Спасибо за инфу про медленную #4000-#7FFF, буду знать.
    А напоследок вопрос. Я так понимаю, что эти нежелательные задержки работы с памятью вызваны аппаратным сетом. Неужели разрабы эмулей програмно эмулируют полностью физическую работу чипов?

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

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

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

Похожие темы

  1. Нужна помощь!!!!
    от Biozoom в разделе ZXEvo
    Ответов: 6
    Последнее: 21.10.2010, 18:18
  2. Нужна помощь
    от sevol в разделе Для начинающих
    Ответов: 2
    Последнее: 03.08.2010, 08:26
  3. Нужна помощь!!!!
    от Biozoom в разделе Барахолка (архив)
    Ответов: 30
    Последнее: 28.06.2010, 13:00
  4. Нужна помощь!!!!!
    от Alegator в разделе Несортированное железо
    Ответов: 2
    Последнее: 30.05.2010, 15:44
  5. Нужна помощь
    от Sonic в разделе Несортированное железо
    Ответов: 0
    Последнее: 06.02.2007, 12:12

Ваши права

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