2SMT а как в дампе быстро перейти на нужный адрес?
2SMT а как в дампе быстро перейти на нужный адрес?
С уважением,
Jerri / Red Triangle.
Ctrl+GСообщение от jerri
altlock=0 в ini?Сообщение от jerri
кнопку можно прописать в ini в строке mem.goto, окно дампа должно быть активноСообщение от jerri
С #1FFD очень надо!Сообщение от SMT
Как и обещал пишу тебе как можно отвязать импорт меток от STS'а.
Пересмотрел я все имеющиеся у меня версии Alasm (4.42-4.46 и 5.00). В них есть общая для всех версий процедура передачи адреса/банка (с началом меток) в STS. В зависимости от версии Alasm и STS меняются 2 адреса (см.ниже). Вот эта процедура для разных версий Alasm:
Алгоритм будет следующий:Код:ALASM 4.42 B625: LD HL,(9319) ;\ LD (FEFE),HL ; это не для меток LD (FEE4),HL ;/ LD HL,(931B) ;тут лежит искомый адрес! INC HL LD (FE63),HL ;сохраняем его в STS LD A,(IX+1D) ;страница с метками AND C7 ;маска для этой страницы LD (FE69),A ;помещаем и ее в STS LD HL,... ALASM 4.43 B5CF: LD HL,(9321) LD (FEFE),HL LD (FEE4),HL LD HL,(9323) INC HL LD (FE63),HL LD A,(IX+1D) AND (IX+32) LD (FE69),A LD HL,... ALASM 4.44 B608: LD HL,(9374) LD (FEFE),HL LD (FEE4),HL LD HL,(9376) INC HL LD (FE63),HL LD A,(IX+1D) AND (IX+32) LD (FE69),A LD HL,... ALASM 4.45 B608: LD HL,(9351) LD (FEFE),HL LD (FEE4),HL LD HL,(9353) INC HL LD (FE7C),HL LD A,(IX+1D) AND (IX+32) LD (FE88),A LD HL,... ALASM 4.46 B56F: LD HL,(934A) LD (FEFE),HL LD (FEE4),HL LD HL,(934C) INC HL LD (FE7C),HL LD A,(IX+1D) AND (IX+32) LD (FE88),A LD HL,... ALASM 5.00 B58E: LD HL,(9362) LD (FEFE),HL LD (FEE4),HL LD HL,(9364) INC HL LD (FE7C),HL LD A,(IX+1D) AND (IX+32) LD (FE88),A LD HL,...
1. Ищем во всех страницах памяти сигнатуру (если откинуть Alasm 4.42)
LD HL,(nn)
LD (FEFE),HL
LD (FEE4),HL
LD HL,(adr)
INC HL
LD (nn),HL
LD A,(IX+1D)
AND (IX+32)
LD (nn),A
LD HL,nn
2. Можно дополнительно проверить что сигнатура лежит в диапазоне #B400..#B7FF и это именно страница с Аласмом (у него есть ряд фиксированных адресов).
3. В найденной странице берем интересующие нас сведения. Искомый адрес начала меток лежит в (adr). Учитывая что во всех версиях IX=80BF, но Alasm переносит себя из С000 в 8000 где и работает, делаем на это поправку: искомая страница: (C0DC) AND (C0F1).
Этот алгоритм будет работать на версиях Alasm'а 4.43 и выше.
Последний раз редактировалось Spectre; 04.10.2005 в 23:17.
проверишь?Сообщение от SpectreКод:version 0.32b3 05 oct 2005 + monitor: Alt-M to edit model-specific high memory port [sb Spectre] + monitor: reading ALASM labels without STS [thanks to Spectre]
единственное, по этому способу поиск осуществляется в нижней (128k) памяти. так как АЛАСМ под банк выделяет только 1 ячейку, я считаю, что это значение, выводимое в #7FFD. как используется верхняя память скорпиона, пока не разбирался
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
память поддерживается любая но то что кидается в 1FFD задается СТСом
а АлКо переписал драйвер для Аласма и задает страницу для скорпиона 1 байтом
С уважением,
Jerri / Red Triangle.
Hello Guest!
05 Oct 05 19:10, Guest from forum zx pk ru wrote to All:
используй драйвер скорповой памяти с пентагоновской нумерацией страницGr> единственное, по этому способу поиск осуществляется в нижней (128k)
Gr> памяти. так как АЛАСМ под банк выделяет только 1 ячейку, я считаю, что
Gr> это значение, выводимое в #7FFD. как используется верхняя память
Gr> скорпиона, пока не разбирался
(ZSKAY512), старый - давить, ибо несовместимость.
Hомера страниц #40..#47 - со включенным 4 битом #1ffd, а номера #00..#07 - с
выключенным.
- A.Coder [Wolf3d2004 InfoGuide7 ACEdit96 ACN42 PT3695 Chip13 HexFill HDDoct6]
[Ansi04 8col12 ZXRar27UnR59 Jpg042 CacVox1 Dbs07 Gluk61R PC21 Alasm50f2 Sts70i]
... ZX Spectrum today
Проверил. Alasm 4.42,4.45,4.46,5.01 метки импортируются нормально. Нашел один глюк: если метки приходятся на область ПЗУ (0..#3fff) они не отображаются. У меня программа при помощи DISP 0 туда компилируется и там работает, а меток не видно.Сообщение от SMT
Насчет импорта из памяти >128К все правильно написал AlCo (Dima Bystrov) - номер банка это не совсем число которое заносится в #7FFD. Биты 0,1,2 заносятся в #7FFD, а 6-ой и 7-ой биты надо занести в Extended port. Я так понимаю соответствие следующее (лучше чтобы AlCo подтвердил):
#7FFD биты 6,7 - Pentagon
#1FFD биты 4,6 - Scorpion/KAY
#DFFD биты 0,1 - Profi
#FDFD биты 0,1 - ATM1
метки привязаны не к адресу, а к физической ячейке памяти. это сделано, чтобы в разных страницах были свои метки в области #C000-#FFFF и чтобы метки basic48/128/trdos не мешали друг другу. если у тебя программа ниже #4000 физически лежит в кеше или ПЗУ, то unreal это не поймёт, а если в нулевой банке, включенной вместо озу, должно работатьесли метки приходятся на область ПЗУ (0..#3fff) они не отображаютсяну я так и думал, просто перестраховался. чтобы разблокировать поиски в верхней памяти, нужно по адресу #24BE3 в файле unreal.exe записать 16 (#10) вместо 8Насчет импорта из памяти >128К все правильно написал AlCo
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)