Просмотр полной версии : Вопросы о "сеговском" Z80.
Господа, колитесь кто знает на чем можно программировать Z80, но именно в привязке к сеговскому варианту Z80. Хотелось бы понять можно ли будет сделать звуковой драйвер для приставки, который мог бы играть wav сэмплы. Есть замечательный старый и изученный GEMS, но там полотолок 10.4khz. Хотелось бы что-то, с чуть большим качеством - 14-15khz. Организация FM части побоку, так-же как и PSG. Нужна только часть про сэмплы - 6 канал ym2612 и его регистр $2A, куда надо по байту спамить содержимое wav файла. Пока пытаюсь вникнуть как из под 68K писать в память Z80... и читать. Тоже не понятно. Вроде 8 килобайт оперативки, но почему-то в дебаг окошке эмулятора 16. Так-же не понятно - вроде 8 килобайт заливаю нулями, а в этом самом окошке в начале все равно остается какой-то код. Что-то типа служебная часть? Хорошо думаю раз она "служебная" какая-то, то буду писать ниже, скажем начиная со $100 байта. Но дебаг окошко не видит мою писанину... однако если потом попытаться прочитать из памяти Z80 и вписать в память 68K - то дебаг 68 видит что я писал. Эмулятор глючный видимо. Или я пишу не туда, и читаю потом не оттуда. Или пишу и читаю не тем методом. Пока ничего не понятно :)
Итак... пока-что остановился на Pasmo - вроде он что-то там компилирует. 68K сторона собирается на ASM68K.exe. И на данном этапе поныкались мы тут с одним силиконовым дипсиком пару дней и вроде как шмогли из под 68K начать писать в память Z80 и запускать проигрывание (благо код GEMS из загажников очень подошел в качестве примера для дипсика). Дальше по мотивам GEMS попытались сделать двухбуферную систему... и пока затык. Что-то он там намудрил :) начальный код в Z80 грузится, а потом все затирается. Надо вникать...
CityAceE
01.12.2025, 15:47
кто знает на чем можно программировать Z80, но именно в привязке к сеговскому варианту Z80.
Так там же стоит стандартный Z80. Значит, можно любым Z80-ассемблером пользоваться. Спектрумисты любят SJAsmPlus (https://github.com/z00m128/sjasmplus). Я на нём даже код для Intel 8080 пишу.
В общем полный швах...
Не хотит он писать в Z80 и все тут. Первоначальная запись работает, если после захвата шины еще бахнуть move.w #$0100,(IO_Z80RES).l "; Удерживать Z80 в сбросе (бит 8 = 1)"
И как бы весь код проигрывателя влетает в память. И должен код запустится, и потом Z80 начинает висеть в бесконечном лупе, читая свою переменную. 68К же, когда ему надо - должен взять и вписать в эту переменную в памяти Z80 - единичку. Дать так сказать добро на начало проигрывания. Но без move.w #$0100,(IO_Z80RES).l не дает писать. А если его все-таки указать move.w #$0100,(IO_Z80RES).l - то позиция Z80 в коде опять сбрасывается на начало. А мне то надо чтоб она так и висело там где она и было - на том бесконечном лупе ожидания единички.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot