From
Andrey Bogdanovich
→
To
SMT
2 October 2005
More wishes:
1. Or I didn’t find it, but how can I edit the Extended port value?
2. I had to switch to STS 6.2 because of the ability to work with Scorpio
memory, and US0.32b2 does not know how to import tags from it. If the author writes like
tags are imported now (in general form), I will write how to change this algorithm
to unlink from STS (or unlink from a specific version).
From
SMT
→
To
Raider
2 October 2005
Spe> how can you edit the Extended port value
if we are talking about #1FFD, then not yet. if necessary, I can do it similarly to #7FFD
Spe> how labels are imported now (in general), I will write how to change this
Spe> algorithm for unbinding from STS
you need to find the address/bank of the beginning of the marks. strange, but AlCo himself doesn’t know where they are
stored in Alasma and advised me to rip them out of the body of the STS, where it stores them
Asm when compiling. therefore, first of all, the STS page is searched for by 4 bytes
signature at address #FE84, which exactly corresponds to the tag driver. to
reduce the likelihood of false positives, not all pages are checked, but
only #07,#47 (common for STS). address/bank are torn out from STS and using them
the label table is read
From
Yuri Potapov
→
To
SMT
3 October 2005
Yesterday I tried to use ACED under Unreal
ex + command doesn't work - what am I doing wrong?
ex-banded on LAlt
--
When will I die?! :mad:
From
Yuri Potapov
→
To
jerri
3 October 2005
2SMT, how can you quickly go to the desired address in a dump?
--
When will I die?! :mad:
From
Dratov Denis
→
To
jerri
3 October 2005
jer> how to quickly go to the desired address in a dump?
Ctrl+G
From
SMT
→
To
Raider
3 October 2005
jer> ex + command doesn't work - what am I doing wrong?
jer> ex-banded on LAlt
altlock=0 in ini?
jer> in the dump, quickly go to the desired address
the button can be registered in the ini in the line mem.goto, the dump window must be active
From
Andrey Bogdanovich
→
To
All
5 October 2005
Hello SMT
SMT> if we are talking about #1FFD, then not yet. if necessary, I can do it similarly to #7FFD
SMT> you need to find the address/bank of the start of the marks. strange, but AlCo himself does not know where
SMT> they are stored in alasma and advised me to tear them out of the STS body, where to put them
SMT> preserves the language when compiled. therefore, first of all, the STS page is searched
SMT> by 4-byte signature at address #FE84, which exactly falls on
SMT> tag driver. to reduce the likelihood of false positives,
SMT> not all pages are checked, but only #07, #47 (usual for STS).
SMT> the address/bank is torn out from the STS and the label table is read from it
With #1FFD it is very necessary!
As promised, I’m writing to you about how you can unlink the import of tags from STS.
I reviewed all the versions of Alasm I have (4.42-4.46 and 5.00). They have
The procedure for transferring the address/bank (with the beginning of the labels) to the STS is common to all versions.
Depending on the version of Alasm and STS, 2 addresses change (see below). This one
procedure for different versions of Alasm:
┌─- CODE ───
ALASM 4.42
B625:
LD HL,(9319) ;\n
LD (FEFE),HL ; this is not for tags
LD (FEE4),HL ;/
LD HL, (931B) ; here is the address you are looking for!
INC HL
LD (FE63),HL ;save it in STS
LD A,(IX+1D) ;page with marksAND 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,...
└── CODE ───
Алгоритм будет следующий:
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).This algorithm will work on Alasm versions 4.43 and higher.
WBR, Andrey Bogdanovich
From
SMT
→
To
All
5 October 2005
Hello SMT
The only thing is that with this method the search is carried out in the lower (128k) memory. yes
As ALASM allocates only 1 cell for the bank, I believe that this is the value,
output to #7FFD. how is scorpio's upper memory used until
figured it out
WBR, Rzhunimagu
From
SMT
→
To
All
5 October 2005
Hello Specter
Spe> As promised, I am writing to you how you can unlink the import of labels from STS [...]
Spe> skipped
will you check?
┌─- CODE ───
version 0.32b3 05 Oct 2005
+ monitor: Alt-M to edit model-specific high memory port [sb Specter]
+ monitor: reading ALASM labels without STS [thanks to Specter]
└── CODE ───
File: ZX.RAR http://zx.pk.ru/attachment.php?attachmentid=1772
WBR, Rzhunimagu
From
Yuri Potapov
→
To
All
5 October 2005
Hello SMT
Any memory is supported, but what is thrown into 1FFD is set by STS
and AlCo rewrote the driver for Alasma and sets the page for scorpion with 1 byte
--
When will I die?! :mad:
WBR, Yuri Potapov
From
Andrey Bogdanovich
→
To
All
10 October 2005
Hello SMT
SMT> will you check?
SMT> ┌─- CODE ───
SMT> version 0.32b3 05 Oct 2005
SMT>
SMT> + monitor: Alt-M to edit model-specific high memory port [sb Specter]
SMT> + monitor: reading ALASM labels without STS [thanks to Specter]
SMT> └── CODE ───
SMT>
I checked. Alasm 4.42,4.45,4.46,5.01 tags are imported normally. Found one
glitch: if the marks are in the ROM area (0..#3fff) they are not displayed. U
my program compiles there using DISP 0 and works there, but there are no labels
visible. :(
Regarding import from memory >128K, AlCo (Dima Bystrov) wrote everything correctly -
The bank number is not exactly the number that is entered in #7FFD. Bits 0,1,2 are entered
in #7FFD, and the 6th and 7th bits must be entered in the Extended port. I understand
the correspondence is as follows (it is better for AlCo to confirm):
#7FFD bits 6.7 - Pentagon
#1FFD bits 4.6 - Scorpion/KAY
#DFFD bits 0.1 - Profi
#FDFD bits 0,1 - ATM1
WBR, Specter aka Andrey Bogdanovich
From
SMT
→
To
All
10 October 2005
Hello Raider
> if the marks are in the ROM area (0..#3fff) they are not displayed
labels are tied not to an address, but to a physical memory cell. this is done so that
different pages had their own labels in the area #C000-#FFFF and so that the labels
basic48/128/trdos did not interfere with each other. if your program is below #4000
physically lies in the cache or ROM, then unreal will not understand it, but if in zero
jar included instead of RAM should work
> AlCo wrote everything correctly about importing from memory >128K
Well, that's what I thought, I was just playing it safe. to unlock searches at the top
memory, you need to write 16 (#10) instead of 8 at address #24BE3 in the unreal.exe file
WBR, SMT aka Rzhunimagu
From
SMT
→
To
All
11 October 2005
Hello Raider
> I don’t see marks in the 0th page substituted instead of the ROM
yes, I looked now, the tags #C000-#FFFF are attached to the zero page,
no matter where it is included, and the tags #0000-#3FFF are ignored. with these
I don’t want to bother with pages, especially since the table of assembler marks
it is impossible to find out which page contains the code associated with the label, otherwise it would
it turned out exactly the same - different pages with different labels
> I understand that this unlocks search only in Pentagon memory?
no, this patch should work in any 256th (if you write not 16, but 32, then in
512th. 1024 is not supported). I couldn’t check - I don’t know where to get ALASM,
climbing into the upper pages of Scorpio
From
Andrey Bogdanovich
→
To
All
11 October 2005
Hello SMT
SMT> Quote:
SMT> if the marks are in the ROM area (0..#3fff) they are not displayed
SMT>
SMT> labels are tied not to an address, but to a physical memory cell. it's done,
SMT> so that different pages have their own labels in the area #C000-#FFFF and so that
SMT> basic48/128/trdos tags did not interfere with each other. if you have the program below
SMT> #4000 is physically in the cache or ROM, then unreal will not understand it, but if in
SMT> zero bank included instead of RAM should work
I do not see marks in the 0th page substituted instead of ROM (when
help OUT (#1FFD),1). Those tags that fall above #4000 are displayed normally.
Moreover, STS 6.2 displays both labels correctly.
SMT> Quote:
SMT> AlCo wrote everything correctly about importing from memory >128K
SMT>
SMT> well, that's what I thought, I was just playing it safe. to unblock searches in
SMT> upper memory, you need to write 16 at address #24BE3 in the file unreal.exe
SMT> (#10) instead of 8
I understand that this unlocks search only in Pentagon memory? VeryI would like to search in the upper memory of the remaining clones. For this purpose only
you need to add a translation (for 1MB of memory):
from:
[page number] bits 5,6,7
in:
- for #7FFD bits 5,6,7
- for #1FFD bits 4,6,7
- for #DFFD bits 0,1,2
- for #FDFD bits 0,1,2
And of course: [page number] bits 0,1,2 in #7FFD bits 0,1,2.
From
Andrey Bogdanovich
→
To
All
11 October 2005
Hello SMT
SMT> Quote:
SMT> if the marks are in the ROM area (0..#3fff) they are not displayed
SMT>
SMT> labels are tied not to an address, but to a physical memory cell. it's done,
SMT> so that different pages have their own labels in the area #C000-#FFFF and so that
SMT> basic48/128/trdos tags did not interfere with each other. if you have the program below
SMT> #4000 is physically in the cache or ROM, then unreal will not understand it, but if in
SMT> zero bank included instead of RAM should work
I do not see marks in the 0th page substituted instead of ROM (when
help OUT (#1FFD),1). Those tags that fall above #4000 are displayed normally.
Moreover, STS 6.2 displays both labels correctly.
SMT> Quote:
SMT> AlCo wrote everything correctly about importing from memory >128K
SMT>
SMT> well, that's what I thought, I was just playing it safe. to unblock searches in
SMT> upper memory, you need to write 16 at address #24BE3 in the file unreal.exe
SMT> (#10) instead of 8
I understand that this unlocks search only in Pentagon memory? VeryI would like to search in the upper memory of the remaining clones. For this purpose only
you need to add a translation (for 1MB of memory):
from:
[page number] bits 5,6,7
in:
- for #7FFD bits 5,6,7
- for #1FFD bits 4,6,7
- for #DFFD bits 0,1,2
- for #FDFD bits 0,1,2
And of course: [page number] bits 0,1,2 in #7FFD bits 0,1,2.
From
Andrey Bogdanovich
→
To
All
11 October 2005
Hello SMT
SMT> yes, I looked now, tags #C000-#FFFF are attached to page zero,
SMT> no matter where it is included, and tags #0000-#3FFF are ignored. with
SMT> I don’t want to bother with these pages, especially since from the tags table
SMT> assembler cannot find out which page contains the code associated with the label
SMT> otherwise the same thing would have happened - different pages with different labels
It’s a shame, this is exactly what I needed the import from Scorpio
memory bypassing STS. Is it possible to make an exception for marks in the area 0..#3FFF,
so that they are displayed regardless of what is enabled in this area? After all
Often, programs are placed in shadow RAM or ROM zero page for debugging.
SMT> no, this patch should work in any 256th (if you write not 16, but 32,
SMT> even in the 512th. 1024 is not supported). I couldn’t check - I don’t know where
SMT> take ALASM climbing into the upper pages of the scorpion
I didn't import it. Here's Alasm 5.01 with all the drivers. Now he
configured for Scorpion 1MB. Page numbers using mask #D7. Change used
Memory pages and driver can be accessed through the config (button "F" in the main menu).File: Alasm501scorp.zip http://zx.pk.ru/attachment.php?attachmentid=1807
From
SMT
→
To
All
11 October 2005
Hello Specter
Spe> It's a shame, this is exactly what I needed to import from
Spe> Scorpio memory bypassing STS
it doesn't matter whether through STS or without it. for tags below #4000 to appear, you need
more patching
Spe> Here's Alasm 5.01 with all the drivers. Now he is tuned to Scorpion
Spe> 1MB
ok, I'll look tomorrow
From
Kpa3
→
To
All
11 October 2005
Hello SMT
SeMeTe, make a cheat console, like in NES emulators.
Well, there, you set the desired value, it is searched. then, after changing this
values found results are eliminated. well, etc.
although, given that a great many Spectrum dins have already been immortalized,
then it would probably be overkill.
Well, I would have written a lot. at least it would be.
and more. where did you get the description of all sorts of formats, like td0, fdi and others
"non-standard"?
--
*****************************************
**Kpa3^dt^gc :: putin[dog]skyseven[dot]ru**
*****************************************
.:: skyseven.net [http://skyseven.net] :: skyseven.ru [http://skyseven.ru] ::
multshow.ru [http://multshow.ru] :: radioprogram.ru [http://radioprogram.ru] ::
radioroliki.ru [http://radioroliki.ru] :: tvshow.ru [http://tvshow.ru] ::.
From
SMT
→
To
All
11 October 2005
Hello, Kpa3
Kpa> cheat console
yes, this is possible...
Kpa> and more. where did you get the description of all sorts of formats, like td0, fdi and others
Kpa> "non-standard"?
anyone who needed support for these formats looked for it and sent it :)
From
Kpa3
→
To
All
12 October 2005
Hello SMT
SMT> whoever needed support for these formats looked for it themselves and sent it
you're just lucky. :) send them to me :)
--
*****************************************
**Kpa3^dt^gc :: putin[dog]skyseven[dot]ru**
*****************************************
.:: skyseven.net [http://skyseven.net] :: skyseven.ru [http://skyseven.ru] ::
multshow.ru [http://multshow.ru] :: radioprogram.ru [http://radioprogram.ru] ::
radioroliki.ru [http://radioroliki.ru] :: tvshow.ru [http://tvshow.ru] ::.
From
SMT
→
To
All
12 October 2005
Hello, Kpa3
Kpa> you're just lucky. :) send them to me :)
Yes, I was in a hurry about the TV disc. I remembered, it turns out I was studying the format using
design of the teledisk itself and utilities, as well as the source code of the plugin for the emulator
Shalaeva. but it’s easier for you now - there are source codes for the headlight plugins and my emulator
(if you make a recording, pay attention to checking and installing all controls
amounts so that the TV disc does not complain about the changed image. not everyone has it
td0-piskov)
File: fdi.rar http://zx.pk.ru/attachment.php?attachmentid=1809
From
SMT
→
To
All
12 October 2005
Hello SMT
about importing tags. doesn't work because significant bits 6.7 are counted
that is, bank #40 is the 256th memory, and ASM considers bits 5,6,7 to be significant, then
There is this bank - in 512. I probably need to get rid of ALM/STS altogether and
search in memory for correctly composed chains of marks. In this regard, a question to
AlCo: what characters can be in the label text?
From
Andrey Bogdanovich
→
To
All
13 October 2005
Hello SMT
SMT> about importing labels. doesn't work because significant bits are counted
SMT> 6.7 that is, bank #40 is the 256th memory, and ASM considers significant bits
SMT> 5,6,7, that is, this bank is in the 512th.
I looked too, it looks like you’re right, that’s the reason. Alasm comes with 9
drivers, of which only 2 satisfy condition #40 = 256th memory:
Scorpion256/KAY1024(only 512): mask #C7 (11000111)
PENTAGON 512: #C7 (11000111)
Another 2 do not fit the problem you described:
SCORPION 1M: mask #D7 (11010111)
PENTAGON 1M: mask #E7 (11100111)
The remaining 5 drivers use flat pagination and are not supported
it won't work:
PROFI
SCORPION
ATM
KAY
Scorpion ZS 512
SMT> you probably need to get rid of ASM/STS altogether and search in memory correctly
SMT> composed chains of labels. In this regard, a question for AlCo: what symbols
SMT> can there be tags in the text?
Good idea. Tag name characters can be in the range #11-#7F, excluding
#22 and #3B.
From
SMT
→
To
All
13 October 2005
Hello Specter
Spe> The remaining 5 drivers use flat pagination and support them
Spe> will not work
the main thing is to know how the banks are numbered, and then write the code for it (although
universal, compatible with the Pentagon, really quite complicated)
Spe> Good idea. Tag name characters can be in the range #11-#7F,
Spe> excluding #22 and #3B
But what about +, -, ?, *, /, (), [], etc... or do you need to separate identifiers from
operators with spaces in arithmetic expressions?
Spe> You probably shouldn’t give up Alasma, you can take the start address from it
Spe> labels, otherwise you can make a mistake
yes, let it be... you can display all the banks where the labels are found in the menu, with the address and
number of tags, and then let the user choose
From
Andrey Bogdanovich
→
To
All
14 October 2005
Hello SMT
SMT> what about +, -, ?, *, /, (), [], etc... or do you need to separate identifiers
SMT> from operators with spaces in arithmetic expressions?
You can’t use them in tags either, I’m just playing it safe. ;) Here's a piece
author's source code of the Alasm>text converter:
(in C the length of the mark)
S2T2
DEC C
JR Z,S2TEND
LD A,(HL)
INC HL
CP#10
JR C,S2T5
JR Z,S2T7
CP#80
JR NC,S2T3
CP #22 ;"
JR Z,S2T9
CP ";"
JR Z,S2T8
LD(DE),A
INC DE
JR S2T2
That is, nothing prevents the next version of Alasma from doing, for example, "!" in
tag names.
SMT> yes, let it be... you can display all the banks where the labels are found in the menu, with the address
SMT> and the number of tags, and then let the user choose
Why not?
From
Ort pressed his cheek to the rou
→
To
All
14 October 2005
Hello Raider
and why codes #11-#1F? Can they be entered into Alasma?
From
SMT
→
To
All
17 October 2005
Hello Raider
> on Pentagon 256 and 512 it shows that tags were not found
is the source the same? just checked on ace0.92, pent-128/256/512/1M -
works. if there is only 1 tag in the chain, I skip them, there are too many of them
banks where the assembler itself is located
From
Andrey Bogdanovich
→
To
All
17 October 2005
Hello SMT
SMT> is the source the same? just checked on ace0.92,
SMT> pent-128/256/512/1M - works. if there is only 1 tag in the chain, I’m like this
SMT> I skip it, there are too many of them in the banks where the assembler itself is located
No, the source is different. Indeed, on the other source of the mark all
were imported correctly. All that remains is to find out why the marks are not located on
source code of Quick Commander (these are 5 Alasmov pages), by what criteria did you use them?
do you define? I'll try to find where it doesn't work.
From
SMT
→
To
All
17 October 2005
Hello Specter
Spe> if there is only one label in the program, it is not imported
I already wrote why. Or is it better to rake through a list of a dozen found chains?
Spe> I have not yet found a pattern for the appearance of this glitch
maybe it's a matter of size (the table doesn't fit on the page?)
From
Andrey Bogdanovich
→
To
All
17 October 2005
Hello SMT
I caught this glitch. The reason is very simple: the beginning is determined incorrectly
label tables. I compile different sources, see what address the alasm sends
in STS, I compare it with what US shows by CTRL+A, sometimes addresses
match, but often differ, then the glitch appears.
From
Andrey Bogdanovich
→
To
All
17 October 2005
Hello SMT
SMT> tag chain ending with #00. the address of the beginning of the alasm is shown by itself
SMT> (if you want to look in memory). characters inside can be
SMT> letters-numbers and @$_. try sequentially wiping the program until
SMT> tags will not be visible. where you erase it, there’s a bug
I haven’t found a pattern for the appearance of this glitch yet, but I found another along the way
glitch: if the program has one label, it is not imported.
From
SMT
→
To
All
17 October 2005
Hello Specter
can you send me the source?
From
SMT
→
To
All
17 October 2005
Hello Raider
> what criteria do you use to determine them
a chain of tags ending with #00. the address of the start of ASAM shows itself (if
you want to look in memory). the characters inside can be letters-numbers and @$_.
try sequentially wiping the program until the marks begin to appear. where
erase it - there's a bug there
From
SMT
→
To
All
20 October 2005
Hello Raider
Spe> ---------------------------------------------------------------------
Spe> -----------
Spe>
Spe> Checked on different memory models (Scorpion and Pentagon), imports
Spe> excellent. A bug just appeared: here and there there are garbage tags
Spe> instead of the name (there should be no labels at all in these places), and in
Spe> in one place there is a JP for such a label, so US falls out in Windows with
Spe> error when trying to print this JP
strange, because the contents of the tags are checked for alphanumeric characters. not
can you send an example file?
From
Andrey Bogdanovich
→
To
All
21 October 2005
Hello SMT
SMT> strange, because the contents of the tags are checked for alphanumeric ones
SMT> signs. can you send an example file?
I'm trying to isolate a piece of the source code on which the glitch is noticeable, but not yet
it turns out. I have a suspicion that this is connected with teams like JR
NZ,$-5, where the label name is not present, but the label is there.
From
SMT
→
To
All
21 October 2005
Hello Specter
Spe> I have a suspicion that this is connected with teams like JR
Spe> NZ,$-5, where the label name is not present, but the label is
I think that such a label is not written to the table, since it is never written anywhere else
will not be needed, and you can always calculate it at the time of assembling this
lines
From
Andrey Bogdanovich
→
To
All
25 October 2005
Hello SMT
2SMT: I'm on vacation now, and at home I have an Athlon, on which betas 4-6 do not work
(swears at the lack of SSE2). I still want to catch the glitch with tags, but you can’t
compile the version for AMD?
From
Dratov Denis
→
To
All
25 October 2005
Hello Specter
Get the version for p1.
From
Andrey Bogdanovich
→
To
All
25 October 2005
Hello, Dexus
Dex> Get the version for p1.
Where? Please note that I am asking for betas 4-6.