Просмотр полной версии : Вопрос: неполная адресация
Изучая возможности ZX Evo, обнаружил порты, записанные как #xx77 (например). Попробовал поменять с их помощью через Бейсик частоту процессора и видеорежим - не вышло (при этом с "полными" портами все работает). Пробовал и в эмуляторе, и на реале. Что я делаю не так, и как тогда правильно? Возможно ли вообще это делать через Бейсик?
Что я делаю не так, и как тогда правильно?
а в какой порт ты пишешь на бейсике ?
а в какой порт ты пишешь на бейсике ?
119, если в десятичной.
ну в принципе правильно, именно в бейсике число пишется в #0077,
но (если я правильно понял) скорость и экран задаются записью в два? порта,
причём есть и `теневые` порты (доступные при определённых? условиях)
ну в принципе правильно, именно в бейсике число пишется в #0077,
но (если я правильно понял) скорость и экран задаются записью в два? порта,
причём есть и `теневые` порты (доступные при определённых? условиях)
Так в один из портов уже записано что-то. Например, для 14 МГц неважно, что записано в #EFF7, насколько я понял. И написано, что теневые порты доступны всегда.
NEO SPECTRUMAN
28.05.2020, 11:52
И написано, что теневые порты доступны всегда.
с какого они доступны?
их сначала нужно включить
для эво нужно заслать 1 в порт BF
написано как самый приоритетный способ включения теневых портов
BF всегда доступен
xx77 теневой порт
а xx тоже имеет значение
a9 = 0 - насильное включение трдос
если из бейсика будет вывод в $0077
то бейсик это певесит нахрен
тк вместо пзу бейсика подключитсо пзу трдоса
ну и там еще будет включение записи в палитру
отключения диспетчера памятии
да и как бы еще не включился атмовский 320х200 вдобавок
не знаю выводит ли бейсик в 16 битные порты
с какого они доступны?
их сначала нужно включить
для эво нужно заслать 1 в порт BF
написано как самый приоритетный способ включения теневых портов
Упс, спасибо.
а xx тоже имеет значение
a9 = 0 - насильное включение трдос
если из бейсика будет вывод в $0077
то бейсик это певесит нахрен
тк вместо пзу бейсика подключитсо пзу трдоса
Тогда какие старшие байты можно безопасно подставлять?
да и как бы еще не включился атмовский 320х200 вдобавок
Ну, именно это я и пытался осуществить хоть как-то (по сути, чтоб убедиться, что делаю все правильно).
не знаю выводит ли бейсик в 16 битные порты
В плане? Почему он может не выводить?
NEO SPECTRUMAN
28.05.2020, 14:18
Тогда какие старшие байты можно безопасно подставлять?
бери мануал
и рисуй 16 бит адрес порта и 8 бит данных
и по мануалу ставь нулиединицы
ADDR_H ADDR_L DATA
FEDCBA98 76543210 76543210
$BF 00000001 ;включение теневых портов
.1....11 $77 ....1000 ;14MHz + 320x200
$EF $F7 ..00...0
разбавляем неиспользуемое
$BF 00000001 ;включение теневых портов
11111111 $77 00001000 ;14MHz + 320x200
;тут нам в мануале рекомендуют заполнять пустые A15...A8 1-ми
;(даны примеры валидных значений)
;чем заполнять не используемые D7..D0 яхз
$EF $F7 00000000
переводим
$BF 1
$FF77 8
$EFF7 0
переводим в бейсик
out 191,1
out 65399,8
out 61431,0
- - - Добавлено - - -
В плане? Почему он может не выводить?
пушо последний раз я кодил на этом бейсике году в 2004
- - - Добавлено - - -
Ну, именно это я и пытался осуществить хоть как-то
ну 320х200 асм с трудом тянет в турбе
кодить под оно на бейсике
это не лучшая идея
Barmaley_m
30.05.2020, 22:00
не знаю выводит ли бейсик в 16 битные порты
Выводит, однозначно. Бейсик-команда OUT реализована через OUT (C),A, при этом в регистре BC находится 16-битное число из первого аргумента.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot