Просмотр полной версии : Как отследить LOAD ""...
ILoveSpeccy
01.09.2007, 20:25
Тема однако...
как можно отследить (через ZX-Bus) состояние спека, когда он ждет сигнала с Tape_IN???
Чтобы например источник сигнала (CD- или MP3-Player) включался автоматически...
Может есть какой-нить порт или что-то другое...
Black_Cat
01.09.2007, 21:44
Задай вопрос в "программирование" - мож подскажут идею.
ILoveSpeccy
01.09.2007, 21:47
Задай вопрос в "программирование" - мож подскажут идею.
Я имею в виду отследить именно железом...
Black_Cat
01.09.2007, 21:55
Времена релюшек для пуска двигла магнитофона прошли, и тем более на плеерах врядли есть стандартный интерфейс для такого подключения, а ориентироваться на самопальный плеер нет смысла. Скорее всего это можно сделать только модификацией процедуры в бейсике и задействованием какого-то порта на вывод, но целесообразность мне непонятна.
как можно отследить (через ZX-Bus) состояние спека, когда он ждет сигнала с Tape_IN???
Чтобы например источник сигнала (CD- или MP3-Player) включался автоматически...
Ну, например...
"Пищим" (всегда) пилот-тоном в tape-in (port #fe in), "смотрим" на бордюр (port #fe out), если мигает в такт с пилот-тоном значит...
Минус: не сработает если подзагрузка с нестандартным лоадером (с немигающим бордюром).
Black_Cat
01.09.2007, 22:15
"Пищим" (всегда) пилот-тоном в tape-in он как раз спрашивает как плеер узнает, что надо пилот-тон давать, т.е. "ещё не пищим".
он как раз спрашивает как плеер узнает, что надо пилот-тон давать, т.е. "ещё не пищим".
Что за плейер с ZX-BUS интерфейсом ?!!! :v2_laugh:
Я так предполагаю - в ZX-BUS воткнута некая железка, которая является последником между плейером и компом. Вот она и "пищит".
Black_Cat
01.09.2007, 22:50
Я так предполагаю - в ZX-BUS воткнута некая железка, которая является последником между плейером и компом. Вот она и "пищит".когда она пищит?
KingOfEvil
01.09.2007, 23:30
Ну вы загнули. Если есть ZX-BUS, то можно вместо магнитофона грузить с флеш-карты через ZX-BUS.
Именно LOAD"", а точнее запуск процедуры TAPE_LOAD можно отследить по выборке команды из основного ПЗУ по адресу 1366 десятичное. Существующие импортные разработки (DivIDE и пр.) именно так и делают. В более общем случае (нестандартные загрузчики и пр,) - никак.
ram_scan
03.09.2007, 13:18
А нестандартный загрузчик все равно загружается стандартной процедурой. главное "виртуальную ленту" запустить, а там нехай грузится чем хочет.
Хм логично. А останавливать как будешь? Или фиг с ней?
Кстати можно еще и сделать автоматическое позиционирование на заданный файл, путем перехвата именно команды LOAD"..." и просмотра указанного имени файла.
Еще надо подумать как быть с дозагружаемыми уровнями. В этом случае надо ленту запускать, останавливать, да еще и позиционировать.
Lethargeek
03.09.2007, 14:08
А нестандартный загрузчик все равно загружается стандартной процедурой. главное "виртуальную ленту" запустить, а там нехай грузится чем хочет.
Не, так нельзя, остановки же могут быть, менюшки промежуточные, дозагрузки...
Именно LOAD"", а точнее запуск процедуры TAPE_LOAD можно отследить по выборке команды из основного ПЗУ по адресу 1366 десятичное. Существующие импортные разработки (DivIDE и пр.) именно так и делают. В более общем случае (нестандартные загрузчики и пр,) - никак.
А как же эмуляторы правильно обеспечивают автостарт/автостоп нестандартных загрузчиков? Имхо явно отлавливать "IN 254" по ZX-BUS, если порт начал опрашиваться подозрительно часто и периодично - врубать мафон, перестал опрашиваться - вырубать.
Перехват LOAD"" фтопку.
Я думаю нужен еще более совершенный способ, который будет 100% совместим с любыми программами обращающими по out 254, чтобы небыло ложных срабатываний...(если не ошибаюсь) нужно отлавливать комплексно ловя несколько стандартных подобращений к процедуре еще до ее запуска....
Lethargeek
03.09.2007, 15:39
нужно отлавливать комплексно ловя несколько стандартных подобращений к процедуре еще до ее запуска....
Зачем же такие сложности? Главное - не остановить раньше времени. ;)
Если запоздали на пилоттон следующего блока, ничего страшного, потом дадим его сначала.
Хотя могут быть сильно извратные защиты с замеряемыми паузами - с ними эмуляторы справляются только в режиме "без ускорения и без автостарта/стопа", и то если tzx корректный.
А лучше напишите автору SPIN-а, он походу главный гуру и первопроходец в этой области.
ram_scan
04.09.2007, 07:34
Не, так нельзя, остановки же могут быть, менюшки промежуточные, дозагрузки...
А как с живого магнитофона делается ? Все вручную. Форматы типа tzx допускают паузы, плюс там как правило дозагрузки идут моноблоком, то есть один файл - гейма целиком. С этим никаких проблем не возникает. А tap файлы - так с ними и в эмуляторах не все шоколадно.
Lethargeek
04.09.2007, 07:52
А как с живого магнитофона делается ? Все вручную. Форматы типа tzx допускают паузы, плюс там как правило дозагрузки идут моноблоком, то есть один файл - гейма целиком. С этим никаких проблем не возникает. А tap файлы - так с ними и в эмуляторах не все шоколадно.
Фигня какая. Навскидку даже и не вспомню, чтобы в каких-то играх с догружаемыми уровнями возникали проблемы с автостартом/стопом, на сколько бы мелких блочков ни был разит один догружаемый уровень (потому что загрузчики уровней как правило не наворачивались, вот для хитрых загрузчиков основного блока или просто целиком загружаемых игрушек изредка приходилось автостоп отключать), вручную - только на начало приходилось перематывать после GAME OVER. А tap-файлы "по определению" наименее проблемные из всех.
ram_scan
05.09.2007, 09:21
TAP файлы наименее проблемные только потому что они наиболее стандартные. Если грузить tap файл нестандартной процедурой, но загружающей стандартный формат, то тут как раз в эмуляторах и возникают основные грабли и с автостартом, и с остановкой виртуальной ленты.
Через стандартную точку входа то все на ура эмулируется.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot