про унриал я и сам знаю
это мой основной эмулятор для дебага...
мануал от X-Trade был самый нормальный. если ты его не понял, это печально, конечно.Цитата:
GS OUT назван GS OUT-ом а не GSDAT-ом как в говенных документациях
GSDAT потому, что вывод в ГСку данных.
GSCOM потому, что вывод в ГС команд. эти же порты на чтение статуса. поэтому говённый как раз GS OUT у тебя, ничего не обозначающий (бессмысленный).
интересно, когда дойдёшь до программирования всяких ATA/ide и SD карт тоже будешь обзывать IDE OUT или SD OUT и задержки ставить командами процессора?))) ну так, поржать чисто)))
потому что
у них зачем то
Код:GS ZX
ZXCMD <--- GSCOM
ZXDATRD <--- GSDAT
ZXDATWR ---> GSDAT
когда логичней
в придачу если GS запишет в ZXOUTКод:GS ZX
ZXCOM <--- GSCOM
ZXDAT <--- GSDAT
ZXOUT ---> GSOUT
содержиое GSDAT по моему так и остается не тронутым
тк это разные регистры (или я путаю?)
а их обозвали одинаково
только потому что на чтение и запись одинаковый номер порта
- - - Добавлено - - -
а если тебе негрософт скажет хранить настройки в реестре и прыгать с окна
ты тоже будешь хранить настройки в реестре и прыгать с окна?
NEO SPECTRUMAN, http://scorpion.ru/spectrum/hard/plata_gs.htm
RTFM как говорится. ни каких ZXCOM тут и рядом нет. читай оригинальный мануал, а не отсебятину всякую левую (включая ЧРВшную).
- - - Добавлено - - -
что-то я не понял это тут причём? ты там как всегда, на своей волне... грибочков бы хоть отсыпал чтоли, чё один там всё скуриваешь))
отличный мануал
описывает все 15 портов со стороны ГСне описывает вообще
Sayman могу тебя только послать
в тему с БК-шниками
если так хочется поболтать
в оригинальной документации нихрена нет (мало того еще и порты десятичные :v2_dizzy_facepalm:)
только высокоуровневые команды для мод плеера который никому не нужен
в сторонней документации где все есть
все через Ж
и разные порты названы одинаково
- - - Добавлено - - -
какой бы Sayman говорил
ААХАХАХААааахахаа))))))
какие 15 портов, очнись, грибоед.
порта всего 2, два, ДВА, ДВА!
полностью вся логика работы девайса расписана. ты когда-нибудь с блок-схемами работал? видимо нет, потому и не увидел. покажи мне 15 портов ГСа (именно классического ГС, а не ЧРВГС).Код:GSCOM EQU 187
GSDAT EQU 179
ахахаха с моей стороны
порты с ГС стороны
- - - Добавлено - - -Цитата:
порт 0 "расширенная память"
разряды D0 - D3 переключают страници по 32Kb
страница 0 - ПЗУ
разряды D4 - D7 не используются
порты 1 - 5 "обеспечивают связь с SPECTRUM'ом"
порт 1
чтение команды General Sound'ом
D0 - D7 - код команды
порт 2
чтение данных General Sound'ом
D0 - D7 - данные
порт 3
запись данных General Sound'ом для SPECTRUM'a
D0 - D7 - данные
порт 4
чтение слова состояния General Sound'ом
D0 - флаг команд
D7 - флаг данных
порт 5
сбрасывает бит D0 (флаг команд) слова состояния
порты 6 - 9 "регулировка громкости"
соответственно в каналах 1 - 4
D0 - D5 - громкость
D6,D7 - не используются
порт А
устанавливает бит D7 слова состояния не равным биту D0 порта 0
порт B
устанавливает бит D0 слова состояния равным биту D5 порта 6
а еще в классическом ГС есть портызамапленные на память
даже не знаю как правильно это назвать
тк это какаято дичь :)
В НГС-е оно уже как fifo буфер с автоматическим выплевыванием в ЦАП-ы
- - - Добавлено - - -
это порты со стороны ЗХ
http://micklab.ru/My%20Soundcard/ZXMGeneralSound.htm
Цитата:
Программирование карты:
Программирование карты осуществляется как и в оригинальном General Sound, т.е. через порты xxB3h и xxBBh.
Sayman, если не владеешь темой не лезь вообще
ну или перечитай на что отвечаешь
чтоб уловить смысл
- - - Добавлено - - -
2 номера порта
а GSDAT на запись и чтение
при том пишется и читается по разным регистрам
это 3 три ТРИ ТРИ! порта
- - - Добавлено - - -Код:GS ZX
ZXCOM <--- GSCOM
ZXDAT <--- GSDAT
ZXOUT ---> GSOUT(GSDAT)
Цитата:
Порт ZXDATWR (write-only) – запись байта данных, предназначенного для прочтения
спектрумом из порта GSDAT. Примечание: байты, читаемые из порта ZXDATRD, с одной
стороны, и из порта GSDAT, с другой, являются физически независимыми байтами. При
записи байта в ZXDATWR байт, читаемый из ZXDATRD не меняется, равно как и не меняется
читаемый из GSDAT байт при записи другого байта в тот же GSDAT.
NEO SPECTRUMAN, ты просто уже явно там перегрелся или переохладился.
портов для работы с ГС (классической ГС) всего 2, всё больше никаких нет. порты внутри самой ГС к работе с картой со стороны "хоста" не имеют никакого отношения.
во2х,
это всё не просто *****код, это ГОВНОКОДИЩЕ!Цитата:
простой загрузчик своего кода в General Sound
gs_hard_reset ;$F4 cold restart
ld a,$F4 : out (gs_zxsd_com_reg_w),a : call gs_zxsd_wait_cb0
;------------------------------------------------------------------------------
;на всякий случай еще подождем
call zx_wait
gs_zxsd_send_code_loop
ld a,(hl) : out (gs_zxsd_data_reg_w),a : call gs_zxsd_wait_db0
inc hl
dec bc
ld a,b
or c
jp nz,gs_zxsd_send_code_loop
;------------------------------------------------------------------------------
;на всякий случай еще подождем
call zx_wait
2.1. на медленных компах ты будешь вечность ждать отправки кода/данных в ГС.
2.2. на быстрых машинах с овер9000мгц+конвеера твои zxwait_чегототам пролетят со свистом, а гс не успеет отработать. если хочешь ввести задержку, то нужно выяснить длительность работы с точностью до миллисекунд и делать задержку в миллисекундах. и процедура ожидания должна подстраиваться под растактовку проца, чтобы на разных машинах таймер в ms не сбивался. ты даже этого не учёл.
2.3. в озу ГСа не требуется отдельный загрузчик пользовательского кода, т.к. он там уже есть. в 2008м году я тоже по не знаю пилил всякое, пока Мучкин не подсказал, что всё там есть и дал исходник своего старого reloop`ера для чиптюновых модов (на которых моя тогдашняя ГСа хрипела). релупер спокойно загружался и отрабатывал на загрузке каждого мода (вызывался после загрузки мода).
однако согласен с тем, что там так же используются внутренние порты самой гс (со стороны ГС), например порт 0 для щёлкания памятью.
опять таки, чуть выше я тебе предложил пообщаться с Евгением Мучкиным. он расскажет более детально про все эти порты и что там и как. а ты продолжаешь гнать пургу.
- - - Добавлено - - -
2 двунаправленных порта, чё не так то? оба на чтение и на запись. ты пахоже даже левые мануалы плохо читал или эти мануалы не полные.