Alexander Makeev, может ты и для спринтера IDE прикрутишь?
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
схема конечно супер , долго сидел ломал голову, в итоге взял список портов из исходника драйвера, хз по какой маске идет адресация портов IDE, сделал #FEFF. ПЗУ увидело что на иде чето висит, но вместо имени показывает пустую строку и сразу переходит к поиску второго ide (кот. сейчас всегда нету).
Хз почему пусто, может так и должно быть? Чем можно затестить пустой винт на спринтере?
прикладываю в аттачменте exe-шник с IDE SPRINTER, попробуй отладить, т.к. я вообще в спринтере ничего не знаю
исходник самого девайса прилагается, для компиляции - добавить в папку Hardware/Sprinter/
Updated: разобрался - поменял маску порта регистра данных на #00FF и пзу-ха увидела имя винта
Сейчас выложу обновление
Последний раз редактировалось ZXMAK; 15.05.2013 в 03:20.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Обновил до версии 2741:
- добавлен девайс IDE SPRINTER (пока не тестился, но биосом определяется)
можно тестить, кто затестит отпишите плиз - как работает
Напомню, чтобы подключить винт, нужно добавить IDE девайс на шину, после применения изменений закрыть эмулятор и отредактировать ZXMAK2.vmide:
Тут test1.hdd - это имя файла (если без пути, то ищет в папке эмулятора). Если указано имя не существующего файла, будет создан новый образ винта в указанном файле.Код:<IdeDiskDescriptor> <Image fileName="test1.hdd" isCdrom="False" isReadOnly="False" /> <Geometry cylinders="20" heads="16" sectors="63" lba="201600" /> </IdeDiskDescriptor>
Не забываем прописать параметры геометрии винта
Последний раз редактировалось ZXMAK; 15.05.2013 в 03:25.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Alexander Makeev, есть образ флешки на 128 метров (скачанный на этом форуме, автор утверждает, что спринтер с него грузился), как для нее расчитать параметры C/H/S и LBA? Поставил 16/255/63 (а какой должен быть LBA-параметр?), но при запуске эмуль ругается в логе:
В итоге загрузка с винта не идетКод:Error 07:45:50.056 *** unknown ATA cmd #00 *** в ZXMAK2.LogAgent.Error(String fmt, Object[] args) в ZXMAK2.Hardware.IC.AtaDevice.exec_ata_cmd(Byte cmd) в ZXMAK2.Hardware.IC.AtaDevice.write(Int32 n_reg, Byte data) в ZXMAK2.Hardware.IC.AtaPort.write(Int32 n_reg, Byte data) в ZXMAK2.Hardware.Sprinter.IdeSprinter.WriteIdeCommand(UInt16 addr, Byte value, Boolean& iorqge) в ZXMAK2.Interfaces.BusWriteIoProc.Invoke(UInt16 addr, Byte value, Boolean& iorqge) в ZXMAK2.Engine.BusManager.WRPORT(UInt16 addr, Byte value) в ZXMAK2.Engine.Z80.Z80CPU.ED_OUTCR(Byte cmd) в ZXMAK2.Engine.Z80.Z80CPU.ExecED(Byte cmd) в ZXMAK2.Engine.Z80.Z80CPU.ExecCycle() в ZXMAK2.Engine.BusManager.ExecCycle() в ZXMAK2.Engine.SpectrumConcrete.ExecuteFrame() в ZXMAK2.Engine.VirtualMachine.runThreadProc() в System.Threading.ThreadHelper.ThreadStart_Context(Object state) в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) в System.Threading.ThreadHelper.ThreadStart()
Образ могу скинуть, куда скажешь для проверки.
Во вложении кинул образ дискеты, на которой есть прога hdtest.exe, она тестирует работу винта. В эмуле надо загрузиться с этой дискеты (в биосе выбрать загрузку с 1й дискеты) и запустить hdtest.exe. В данный момент она у меня ругается - HDD init error. Registers R/W Error
Последний раз редактировалось Дмитрий; 15.05.2013 в 10:17.
а что она должна выводить?
Переделал выборку портов:
теперь вот такое говорит:Код:bmgr.SubscribeReset(BusReset); var dataMask = 0x00E7;//0x00FF; var regMask = 0xC0E7;//0x00E7;//0xFEFF; bmgr.SubscribeRdIo(dataMask, 0x0050 & dataMask, ReadIdeData); bmgr.SubscribeWrIo(dataMask, 0x0050 & dataMask, WriteIdeData); bmgr.SubscribeRdIo(regMask, 0x0051 & regMask, ReadIdeError); bmgr.SubscribeWrIo(regMask, 0x0151 & regMask, WriteIdeError); bmgr.SubscribeRdIo(regMask, 0x0052 & regMask, ReadIdeCounter); bmgr.SubscribeWrIo(regMask, 0x0152 & regMask, WriteIdeCounter); bmgr.SubscribeRdIo(regMask, 0x0053 & regMask, ReadIdeSector); bmgr.SubscribeWrIo(regMask, 0x0153 & regMask, WriteIdeSector); bmgr.SubscribeRdIo(regMask, 0x0055 & regMask, ReadIdeCylHi); bmgr.SubscribeWrIo(regMask, 0x0155 & regMask, WriteIdeCylHi); bmgr.SubscribeRdIo(regMask, 0x0054 & regMask, ReadIdeCylLo); bmgr.SubscribeWrIo(regMask, 0x0154 & regMask, WriteIdeCylLo); bmgr.SubscribeRdIo(regMask, 0x4052 & regMask, ReadIdeControl); bmgr.SubscribeWrIo(regMask, 0x4152 & regMask, WriteIdeControl); bmgr.SubscribeRdIo(regMask, 0x4053 & regMask, ReadIdeCommand); bmgr.SubscribeWrIo(regMask, 0x4153 & regMask, WriteIdeCommand);
это правильно или нет?
Может есть какой-нибудь образ с чем-то наподобие FDISK и FORMAT? (не знаю как они на спринтере назывались)
скинь на какой-нибудь обменник образ, куда я сам толком не знаю, давно не выкладывал крупные файлы
Последний раз редактировалось ZXMAK; 15.05.2013 в 11:23.
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Update: поправил маски, так тоже работает и так вроде-бы правильнее судя по описанию:
EXE с поправленными масками в аттачменте, проверь плизКод:var dataMask = 0x00E7;//0x00FF; var regMask = 0xE1E7;//0x00E7;//0xFEFF;
ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet
Выложил образ, там есть кой-какой софт. должен определиться как диск С и по идее загрузиться ОС с него.
http://rghost.ru/46009536
http://rghost.ru/46009550
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)