From
Stanislav Lomakin
→
To
All
18 February 2006
Hello, All
Does anyone know what ends up in the 3rd and 5th bits of the flag register after
performance of the subject? Sean Young in his "z80 documented" refers to some
internal Z80 register associated with 16-bit addition, where, they say, these
bits are taken, but - no specifics :(
From
Vladimir Kladov
→
To
All
19 February 2006
Hello, boo_boo
I implemented it exactly as they said. This internal register receives
as the value the result of the most significant byte of any internal double-byte
operations, including operations to calculate the jump address in JR/DJNZ, not
ADD/SBC HL/IX/IY,rp only.
From
Stanislav Lomakin
→
To
All
19 February 2006
Hello, Vladimir Kladov
Vla> I implemented it this way
By the way, does EmuzWin pass ZEXALL?
From
Stanislav Lomakin
→
To
All
19 February 2006
Hello, Vladimir Kladov
I implemented Vla> exactly as they said. This internal register
Vla> receives the result of the high byte of any as its value
Vla> internal two-byte operation, including calculation operation
Vla> transition addresses to JR/DJNZ, and not just ADD/SBC HL/IX/IY,rp.
hmm...
I found something in more detail: http://www.work.de/nocash/zxdocs.htm
here, for example, it is said that any instruction with the operand (HL) MEMPTR is not
changes :o
From
goodboy
→
To
All
19 February 2006
Hello, boo_boo
boo> by the way, does EmuzWin pass ZEXALL?
what is this - zexall??? program - test???
From
Andrey Alexandrovich Titov
→
To
All
19 February 2006
Hello, Vladimir Kladov
Vla> It is possible to completely achieve 100% accuracy if you have it at hand
Vla> iron, but not interesting except for sporting purposes.
For me, an emulator is not a full-fledged emulator if it does not emulate a computer on
100% ;)
From
Andrey Alexandrovich Titov
→
To
All
19 February 2006
Hello, Vladimir Kladov
Vla> in this case, there are no full-fledged emulators. Enough for
Vla> website http://www.mdfs.net/Software/Z80/Exerciser/Spectrum/ view
Vla> and make sure that this test gives incorrect results on real hardware
Vla> results, hehe.
Vla>
Vla> But there are also differences between Z80 chips from different manufacturers...
If it gives incorrect results on real hardware, then what is it written for? ;)
As for the different Z80 chips, this is highly doubtful. At one time there was
there are a lot of debates on this topic, and as a result no one has been able to provide
chip different from the 'original'. I even remember MacBuster (formerly SAV-Soft)
I bought a bunch of samples from different manufacturers in order to find the differences, and,
Naturally, I found nothing.
p.s.: Naturally, we mean the Z80, and not its various 'continuations',','... Titus aka Andrey Aleksandrovich Titov
From
Vladimir Kladov
→
To
All
19 February 2006
Hello Titus
in this case, there are no full-fledged emulators. Enough on the site
http://www.mdfs.net/Software/Z80/Exerciser/Spectrum/ look and make sure
that this test also gives incorrect results on real hardware, hehe.
But there are also differences between Z80 chips from different manufacturers...
From
Vladimir Kladov
→
To
All
19 February 2006
Hello, boo_boo
No, it does not pass, and glory to the Almighty. Not a single emulator and not a single real one
iron does not pass it. Want the most reliable test? Turn on support
RZX files, download ready-made RZX records, make your own RZX records in others
emulators and drive until you are stupefied. That's when 99% of these recordings will work
(which run on at least 2 more emulators - there are records
“wrong” ones, which only work on the emulator on which they were
written down), then you can safely assume that everything is in order and is being done
almost 100% accurate for emulation purposes.
It is completely possible to achieve 100% accuracy if you have hardware at hand, but
not interesting except for sporting purposes. There is such a feature, it’s called ULA.
To account for delays and not slow down too much, most emulators work
according to the tables, and only take into account which bank the team starts in. A
if a 4-byte command, for example, starts in a slow bank and continues
in a fast bank of RAM, the cycles will be counted incorrectly. This also applies
the performer, and reel the spec (I did it right at home, but in order for this
show, you need to specially make a multi-color demo, but it’s a bummer for me).
From
Stanislav Lomakin
→
To
All
19 February 2006
Hello, Vladimir Kladov
Well, I don’t look at the letters OK, but at the results: I compare mine with those that
in real life they come out... everything matches, but this bit doesn’t... okay, what the hell with it - but
In the course of perversions, I “achieved” once that the ROM was buggy, but the test was fine
showed.. hehe :rolleyes:
From
SMT
→
To
All
20 February 2006
Hello, Vladimir Kladov
funny test. Only I was never able to emulate the subject command.
True, I ran the test on different emuls, here
File: emuls-z80test.rar http://zx.pk.ru/attachment.php?attachmentid=2634
From
Vladimir Kladov
→
To
All
20 February 2006
Hello Titus
There are differences, but no one will tell us what they are. However, John Needle
in my Spectator, I made an option to select the version of the crystal, and from this
At least 1 multicolor demo works differently. There is a choice of chips
would and RS.
From
Andrey Alexandrovich Titov
→
To
All
20 February 2006
Hello SMT
SMT> fun test. only I was never able to emulate the subject
SMT> command. True, I ran the test on different emuls, here
Not bad :) You can immediately see how much it costs ;)
Vla> there are differences, but no one will tell us what they are. However, John
Vla> Needle in his Spectacler made an option to select the version of the crystal, and
Vla> this makes at least 1 multicolor demo work differently.
Vla> There is a choice of chips, like RS.
While no one has seen these 'different' crystals, there is no point in saying that
they are out there somewhere. The most important thing in all this is that not one, at least more
less mass-produced ZX clone, no Z80 with crystal seen yet
different from the original. If anyone has met you, please come to the studio! ;)
From
Stanislav Lomakin
→
To
All
20 February 2006
Hello Titus
Tit> If it gives incorrect results on real hardware, then what is it written for? ;)
God knows. By the way, the author of yaze (and the test, respectively) is impudent for any BIT
does F=A&28h. and everything “fits together” for him. I scored these test "OK" and
I’m just comparing the CRC for my kernel with the CRCs that come out in real life.
about “100% emulation”: obviously, no one has really figured out what it is
for the "internal register", and what opcodes influence it - judging by
results that SMT posted...
moral: if you don’t want the program to run under emulators, just clog it
its flag register after bit n,(hl) ;)
From
Vladimir Kladov
→
To
All
20 February 2006
Hello Titus
I wouldn't trust the results that much. And precisely because of the presence of that same
internal register. And what else could affect the result? No wonder on
on real hardware the test breaks down: its result for some commands may
depend on the result of completely different commands, which were executed in a completely different
moment in time. And if also from jump commands (internal register), by
It turns out that how and with what I compiled the program itself is what I got.
What if you run the test on real life once, and then another time, and compare
result? What if on 2 different realities?
And it also seems to me that this test works with interrupts enabled, i.e. everything
time intervenes (when it pleases) int38, and again spoils this
internal register No, that's not how tests are done.
From
Vladimir Kladov
→
To
All
20 February 2006
Hello, boo_boo
something about disabling interrupts - I didn’t notice (when I started it,
stopped several times in the debugger, for some reason it is often at address 38
stopped. I'll have to take another look). But in an amicable way, in the test for bit it would be necessary already before
with each command do something like ADD HL,DE (and put zeros there).
From
Witch Doctor
→
To
All
20 February 2006
Hello, boo_boo
Well! Well! so what's next? Is the author of the test an idiot or not?
Who has a real one - ran the test several times, as suggested?
SMT, what are the results of running on other emulators?
From
Stanislav Lomakin
→
To
All
20 February 2006
Hello, Vladimir Kladov
Vla> No wonder the test fails on real hardware: its result for
Vla> of some commands may depend on the result of completely other commands
Vla> which were executed at a completely different point in time. And if also from
Vla> jump commands
the author of the zexall port on spec thinks that he screwed up somewhere, so crc is not
converge. regarding bit n,(hl) this is definitely true, the assembly address is
changed.
Vla> And it also seems to me that this test works within the permitted limits
Vla> interrupts, i.e. interferes all the time (whenever he pleases)
Vla> int38
No, the author of the test is not an idiot - he disables interrupts.
From
Stanislav Lomakin
→
To
All
20 February 2006
Hello, Vladimir Kladov
Vla> something about disabling interrupts - I didn’t notice (I when
Vla> launched, stopped several times in the debugger, for some reason it
Vla> often stopped at address 38.
and it is immediately before the initialization of registers and execution of the test
instructions disables interrupts. however, in the case of the subject this is not so special
saves -- between call nz, test (which initializes the "esoteric register"
jump address) and di can skip the interrupt.
From
SMT
→
To
All
20 February 2006
Hello, Witch Doctor
> Well... It can't be emulated on unreal - so, which one can it be emulated on? And what is this
> means ?
I didn’t understand the question, especially the last one. to understand what this means, read
accompanying document and texts from the person who ported it to the Spectrum.
it is clear that if the compilation address has changed, the flags that came from the address
registers too
From
SMT
→
To
All
20 February 2006
Hello, Witch Doctor
> SMT, what are the results of running on other emulators?
Which ones are you interested in? I don’t have DOS, Linux or commercial ones
From
Vladimir Kladov
→
To
All
20 February 2006
Hello, boo_boo
Hmm. How does call nz initialize the hidden register? I understand this one
the register gets the value after internal additions, for call and jp addition
it seems like it has nothing to do with it.
From
Witch Doctor
→
To
All
20 February 2006
Hello SMT
Well... It can’t be emulated on unreal - so, but which one can it be emulated on? And what does this mean?
From
Stanislav Lomakin
→
To
All
20 February 2006
Hello, Vladimir Kladov
Vla> Hmm. How does call nz initialize the hidden register? I am so
Vla> understood, this register gets the value after internal additions, for
Vla> call and jp addition seems to have nothing to do with it.
The most detailed piece of information I found:
┌─- CODE ───
Internal MEMPTR Register
This is an internal Z80 register, modified by some instructions, and usually
completely hidden to the user, except that Bit 11 and Bit 13 can be read out at
a later time by BIT N,(HL) instructions.
The following list specifies the resulting content of the MEMPTR register
caused by the respective instructions.
Content Instructions
A*100h LD (xx),A ;xx=BC,DE,nn
xx+1 LD A,(xx) ;xx=BC,DE,nn
nn+1 LD (nn),rr; LD rr,(nn) ;rr=BC,DE,HL,IX,IY
rr EX (SP),rr ;rr=HL,IX,IY (MEMPTR=new value of rr)
rr+1 ADD/ADC/SBC rr,xx ;rr=HL,IX,IY (MEMPTR=old value of rr+1)
HL+1 RLD and RRD
dest JP nn; CALL nn; JR nn ;dest=nn
dest JP f,nn; CALL f,nn ;regardless of condition true/false
dest RET; RETI; RETN ;dest=value read from (sp)
dest RET f; JR f,nn; DJNZ nn ;only if condition=true
00XX RST n
adr+1 IN A,(n) ;adr=A*100h+n, memptr=A*100h+n+1
bc+1 IN r,(BC); OUT (BC),r ;adr=bc ii+d All instructions with operand (ii+d)
Also the following might or might not affect MEMPTR, not tested yet:
OUT (N),A and block commands LDXX, CPXX, INXX, OUTXX
and probably interrupts in IM 0, 1, 2
All other commands do not affect the MEMPTR register - this includes all
instructions with operand (HL), all PUSH and POP instructions, not executed
conditionals JR f,d, DJNZ d, RET f (ie. with with condition=false), and the JP
HL/IX/IY jump instructions.
└── CODE ───
From
Stanislav Lomakin
→
To
All
21 February 2006
Hello, boo_boo
I made a test on my knee for bit (hl)...
plz, whoever has real money at hand, run this thing there, and post the scr with
the chaos that formed on the screen.
let's compare ;)
File: btst.zip http://zx.pk.ru/attachment.php?attachmentid=2640
From
SMT
→
To
All
21 February 2006
Hello, boo_boo
It was the author of the port who sent it to Spectrum. this lies in the same place where boo_boo took the text about
memptr. and the link was here somewhere. so scroll up the topic and you will see everything
From
Vladimir Kladov
→
To
All
21 February 2006
Hello, boo_boo
very interesting info, bo-bo. By the way, SMT, your first column is yourself
did you drive real? (And when I only had time, perhaps only on turbo...)
From
Stanislav Lomakin
→
To
All
22 February 2006
Hello SMT
SMT> this is in the same place where boo_boo got the text about memptr.
Nope, here's the link: http://www.work.de/nocash/zxdocs.htm#z80garbageinflagregiste
From
Vladimir Kladov
→
To
All
22 February 2006
Hello SMT
SMT, what port? Is this this one: http://www.work.de/nocash/zxdocs.htm
up... this is up for you, and down for me (my settings are as follows: well, I’m the original,
I do everything differently than others :) ).
I understand about the first column. I suggest (again) someone else to drive on
in real life Preferably 2 times and/or 2 reals. If there is a turbo, you can go turbo
(there may be some difference, though, due to the same int). I really want to do it again
make sure.
From
SMT
→
To
All
22 February 2006
Hello, boo_boo
> port of what?
I understand, they ported from cp/m - bdos is mentioned in the source code, and the old address
compilation - #0100
From
Vladimir Kladov
→
To
All
24 February 2006
Hello SMT
Here's the thing. I started looking at what was wrong with the CPD[r] commands in my test.
CPI[r]. I found a mistake and corrected it. It started to coincide. But on the way I downloaded the source
US 0.34b, and looked, he does the same as I do with these commands. It turned out that
not at all like that. In SMT's code for CP, for example:
void __fastcall ope_A9(Z80 *cpu) { // cpd
cpu->t += 8;
unsigned char cf = cpu->f & CF;
cp8(cpu, rm(cpu->hl--));
cpu->f = (cpu->f & ~(CF|PV)) | cf;
if (--cpu->bc16) cpu->f |= PV;
}
flags XF and YF are constructed based on the result of the comparison A-(HL). And I have
Yang: YF=bit1 of n, XF=bit3 of n, where n=A-(HL)-HF. The result of "comprehensive"
The test is nevertheless the same in both cases. What is it then?
"comprehensive" test?
Understanding how the Spectaculator executes the command bit 0,b (the first one in this
test, I came across this thing. [...cut: LD SP,(addr) not in the list
affecting memptr, we still need to find which command installed memptr before
hitting 9C09h, hmm] Fact, however: zexall test on the command bit n, (HL)
Spectaculator passes, i.e. its checksum matches the results
Z80(real) speakers for this command (note: the only one of all emulators.
True, he has other mistakes, but last week was truly the most
accurate among all :) ).
Now I’m also trying to “drive away” Spin. Yep, there are results. Here is the updated oneplate [http://bonanzas.rinet.ru/zx/emuls-z80test.zip].
(I haven’t updated my EmuZWin yet, I want to watch something else, and I need to
case fast CPIR/CPDR code correct).
By the way, if you have Linux at hand, don’t worry about replenishing information for the people there.
emulators? Personally, I’m especially interested in Fuse, you can also drive away the glitch (so,
seems to be called an alternative on that platform?).
From
Stanislav Lomakin
→
To
All
24 February 2006
Hello, Vladimir Kladov
Vla> By the way, if you have Linux at hand, don’t worry about replenishing information for
Vla> local emulators? Personally, I'm particularly interested in Fuse, you can also
Vla> drive away the glitch (that’s what the alternative on that one is called, I think
Vla> platform?).
There is no point in messing with the glitch - bits 5 and 3 of F are not emulated AT ALL.
Fuse is better, ~80% of the test points pass. My kernel (libz80ex) goes through everything,
except bit n, (due to bit n,(hl), which nobody knows how
emulate, and not a single radish has been able to run _my_ test in real life
:mad: )
From
SMT
→
To
All
24 February 2006
Hello, Vladimir Kladov
Vla> downloaded source US 0.34b
I haven’t posted 34b2 yet, but it’s different there
From
SMT
→
To
All
24 February 2006
Hello, Vladimir Kladov
Is it really possible to download the description of the z80 in some VHDL thread? will such a model lead
yourself as a brand. or kernel writers are in the same position and might have missed it
undocumented features
From
Vladimir Kladov
→
To
All
24 February 2006
Hello, Vladimir Kladov
Maybe real people just don’t see us, because the “Emulators” section is not
are they stopping by? You need to post a request to the hardware section to look here. And then how in
We live in a modern high-rise building, what the neighbors on the site look like and how they breathe - not
we know...
From
Vladimir Kladov
→
To
All
24 February 2006
Hello, Vladimir Kladov
Ha! In order for the bit n,(hl) test to pass and coincide with the Z80(real) column, you need to do
pen to Yang, and simply reset XF and YF after this command...
Either Young had the wrong processor on his hands, or one of two things. But that's exactly it
Spectaculator works. And apparently no matter what processor
selected. Hmm here. But even in some formats snapshots are saved now
the value of this register, with a comment that they say it affects the flags in
the result of the command is exactly bit n,(hl)
And with bit n,(ix+n) the trick is this. Young may be right here. But I tried
make a couple of feints. For example, nullify them. And the test still passes! (I,
Of course, I understand, maybe IX always points itself to such an address that
((IX+1)/256)&28h=0. But then such a test is worthless!).
In general, people. If there are no real people willing to cooperate in order
confirm or, on the contrary, dispel rumors about the MemPtr register, then we have nothing to do here
we will achieve it. At the moment, the results show: the very existence of this
register, perhaps the result of working with a specific (burnt? left?) Z80. Or
that test was not run on a real branded Z80, but on some fake
(from China?). It doesn’t even seem to affect the CPDr and CPIr commands. What other
teams supposedly take flags from it? (Now it turns out that the rumors about memptr are not
more than a myth, like Raksla in the Spek elite... ;) )I'll go and see where my shifts aren't working so well.
From
Stanislav Lomakin
→
To
All
24 February 2006
Hello SMT
SMT> is it really possible to download the description of the z80 in some VHDL thread? will there be one
SMT> model behaves like a proprietary one. or core writers in the same
SMT> position, and could have missed undocumented features
download for real, with opencores - t80/tv80... only Zilog sources z80 with
I didn’t share it with people, so the authors of these nuclei also worked according to the descriptions.
From
Andrey Alexandrovich Titov
→
To
All
25 February 2006
Hello, boo_boo
boo> what is written in * is either half crap or was checked for
boo> another crystal. Young has practically nothing written, but what he has
boo> matches...
boo> in general, no one knows anything. to figure it out, you need to drive a LOT
boo> tests, in real life, preferably on several reals O__o
Well, this myth about the presence of DIFFERENT crystals among the population is not true.
Maybe (and even then, deep hypothetically) there was some other crystal, but
there was no documentary evidence of this, and in Spectrums there was no such
There was no crystal noticed either! :|
From
Stanislav Lomakin
→
To
All
25 February 2006
Hello, boo_boo
thanks to Wlodek (here [http://zx.pk.ru/showthread.php?t=2586]) my undertest
bit 0, (hl) bore fruit. very strange fruits...
in each cell in the picture -- 3 and 5 bits F after clearing the flags, executing
specific command, and subsequent bit 0,(hl)
(hereinafter the asterisk denotes this
[http://work.de/nocash/zxdocs.htm#z80garbageinflagregister] document)
cells 1-3: LD A,(FFXX) -- flags are set. it looks like it really goes to memptr
the address (or address+1, as they say in *?), needs to be checked in more detail.
4-6: LD (FFXX),A for A=0,FF,AA -- empty. (that is * lying). or this command
does not affect anything at all, or simply resets memptr (by the way, it is LD
(addr),A at A=0 I do when clearing the flags, hoping that it is, as stated in
*, will make MEMPTR=A*0x100, that is, it will reset it to zero. seems to be one way or the other
this way it resets to zero O__o)
7-12: ld (FFFE),rp for BC,SP,DE,HL,IX,IY - installed, again it looks like
memptr goes to address or address+1.
13-18: ld rp,(FFFE) for the same registers - apparently the address is set again.
19: ex (SP),IX with SP=BFE6, (SP)=IX=FFFE -- enabled, who knows, or the address,
or (SP)
20: ADD HL,BC with HL=FF00,BC=1 -- enabled.
21: ADD HL,BC with HL=FFFF,BC=1 -- disabled. apparently for ADD HL,BC in memptr
the result of the operation is received.
22-23: similar for ADC, same result.24-25: similar for SBC, same result! wow, where do the zeros at 3 and 5 come from?
bits after subtracting 1 from FFFF?
26 -- rld for HL=FFFE, bits enabled
27 -- rld for HL=FFFF, disabled
28, 29 -- the same for rrd
30,31,32: JP, JR, CALL C3XX -- off, but this doesn’t mean much, since
I chose a stupid address -__-
33,34: JP z,FFFF and CALL Z,FFFF with reset Z. enabled. indeed for JP and
CALL memptr changes even if the condition is not met.
35,36: in A,(F0) and in A,(FF) at A=0. off.
37: in A,(C) at BC=FFF0. included.
38: in A,(C) with BC=FFFF. off. looks like memptr=bc+1 as in *
39-40: OUT (FF),A with A=FE and A=FF. off.
41: OUT (C),A at BC=FFF0. included
42: OUT (C),A at BC=FFFF. off. situation similar to in A,(C)
43-62: ldi,ldd,ldir,lddr,cpi,cpd,cpir,cpdr in several versions. empty.
63-70: ini,ind -- empty.
71-78: outi,outd -- empty.
79-86: inir,indr -- empty.
87-94: otir,otdr -- empty.
95: IM2, EI, HALT with I=FC -- __only__ 5 bits are set!
96: nonsense, I wanted to check JP IX, but forgot to do JP %)
97: inc (hl) -- empty
98: rlc (ix+1) with ix=FFFE. installed.
99,100: RLC (HL) for HL=40xx and FFFF. empty.
-+-----------------
conclusion: what is written in * is either half crap or was tested on another
crystal. Young has practically nothing written, but what is there coincides...In general, no one knows anything. to figure it out, you need to run a LOT of tests, on
in real life, preferably in several reals O__o
From
SMT
→
To
All
25 February 2006
Hello, Vladimir Kladov
What's the point of running ALL tests? When I was debugging us, I ran it selectively. the most
long test - arithmetic-logical commands with an accumulator, it is difficult
does not cause any emulator. I think the bit n,(hl) test will take several
minutes in real life
From
Wladimir Bulchukey
→
To
All
25 February 2006
Hello, Vladimir Kladov
Vla> And also, to understand how these tests correlate with zexall, you need to
Vla> run zexall on your computer (at Wlodek's).
Vla> and all this time regularly come up and write down the results from the screen
Vla> and press Enter when it’s time to scroll
Vla> AU! Wladek! especially with you.
I downloaded it and launched it. But I can guarantee that within 11 hours I can regularly
I'm afraid to control his condition :). Now, if it would be possible just for the night
leave...
From
Vladimir Kladov
→
To
All
25 February 2006
Hello Titus
in fact, a “different” crystal could easily be obtained after its breakdown
soldering iron with poor grounding. It’s easy: everything (almost) works, but
sometimes behaves strangely. Since it works, people think it's "the same." A
glitches are attributed to lack of sleep or accident.
In addition, it is clearly known that the crystal was produced in different
manufacturers, and not just Zilog itself. Did they get the full
technical documentation? Why then can crystals alone only
3.5-4 MHz work, others at 12 MHz, and others chase right up to 20 MHz. And all of them -
identical? I kind of doubt it.
From
Vladimir Kladov
→
To
All
25 February 2006
Hello, Wlodek
The point is to make a correlation with the run that the author did. It
you can do a separate test for bit n,(hl), no problem, that’s what I’m doing
adapted to my assembler to be able to skip only
necessary tests. But, in my opinion, the dog is buried deeper here. It is necessary at least
run on _several_ reals once in order to detect the difference, if it (not
God bless) there is.
From
Vladimir Kladov
→
To
All
25 February 2006
Hello, boo_boo
Also, to understand how these tests correlate with zexall, you need to be on the same computer
(at Wlodek) drive away the zexall itself. If he agrees, of course, wait 11 hours
(with a turbo it can be faster, if you have one, but still 6.5 hours, and all this time
come up regularly and write down the results from the screen, and press Enter when
it's time to scroll). Here I made it in the form of TRD, if it’s more convenient in real life
drive (Sorry, I recompiled with some corrections in my
ZXAsm, but I hope everything matches: at least the results of running on emulators
seems to be the same as .z80).
The first time we got a test, which on the Pentagon reaches the first request for
Scrolling no longer responds to the start. I added EI in two places, before
calling 10h (pr-char), and ran the entire test again. Should go for real.
I'd really like to see the results of the live run... Someone, AU! Wladek!
especially you.
File: zexall1-trd.rar http://zx.pk.ru/attachment.php?attachmentid=2668
From
Andrey Alexandrovich Titov
→
To
All
25 February 2006
Hello, Vladimir Kladov
Vla> in fact, a “different” crystal could easily be obtained after
Vla> breakdown by a soldering iron with poor grounding. It's easy: that's all
Vla> (almost) works, but sometimes behaves strangely. It works, people
Vla> they think that he is “the same”. And glitches are attributed to lack of sleep or
Vla> randomness.
Vla>
Vla> In addition, it is clearly known that the crystal was produced in different
Vla> by manufacturers, and not just by Zilog itself. What did they get
Vla> complete technical documentation? Why then can only crystals
Vla> work only at 3.5-4 MHz, others at 12 MHz, and others chase right up to
Vla> 20 MHz. And are they all identical? I doubt it.
With the so-called 'breakdown with a soldering iron', in 99.99% either the entire crystal will die, or
any of the I/O gates...
As for the different manufacturers, it is natural that they did not agree
crystal yourself, but took a ready-made template, or simply packaged it
crystal obtained from Zilog. It’s unlikely that anyone would come up with a brilliant idea
the idea to design the crystal ALL AGAIN :D Yes, even if it came, then they would “float” in itnot only the undocumented bit x,(hl) flags ;)
From
Andrey Alexandrovich Titov
→
To
All
25 February 2006
Hello, boo_boo
boo> someone came up with this idea - see t80, r800, Soviet analogue... and u
boo> any hypotheses about the mismatch of bit (hl) emulation for 2x
boo> tested processors?
Once I had to test undocumented T80 flags - it turned out
one to one. I think there was a Zilog crystal inside. Although some are inclined
to the opinion that it was simply erased, reshot and reproduced again ;)
By the way, perhaps in Turbo processors released by Zilog later something
it was different if they touched the crystal topology.
Yes, and as for undocumented flags, 10 years ago I thought that
I know them all ;)
From
Vladimir Kladov
→
To
All
25 February 2006
Hello, boo_boo
Excellent, 100%. To hell with DAA, he still doesn’t depend on XF, YF, and he couldn’t
it won’t match if everything else matches up to the number. But that person (who
adapted the test for the Spectrum) probably ran it on the branded Spectrum, and not on
Pentagon, so I understand?
The most remarkable thing is that this test was passed and gave absolutely the same result on
the same computer on which an equally remarkable test from boo-boo was carried out. Those.
we can say with certainty about the bit n,(hl) command that the test of this command is
this big test converges at all not because its flags are not affected
the desired memptr (because it cannot but influence, and this is proven by a small test
from boo boo). Conclusion: either the CRC in a large test is built using a stupid algorithm, and
different results can easily give the same CRC with a large
probability, or in a large test somehow it always ended up in
memptr is such a value that XF and YF are always zero.
As for the first one (stupid CRC) - this needs to be checked (I’ll look now, there’s
test bit n,(ix+1), so this is what makes me suspicious. If ix happens in
this test is very different, then it is not clear why the elementary flags are cleared
XF, YF leads to the same CRC. If IX is the same, then the author of the test (or the one who
adapted it) and really is an idiot (or simply didn’t know anything about memptr).But about zeroing (point 2 of my reasoning in the paragraph above) the flags in front
executing bit n,(hl). I found out that the closest team that could (and
should in any case) affect changing memptr before calling the test,
this is call nz,9BEFh at 99FEh. According to the source *, then in memptr
hits 9Bh&28h = 08h, i.e. at least XF=1, YF=0. Everything along the way, it seems
memptr should not be touched, according to *.
And now a very interesting picture emerges. Of all the emulators it wins
(ugh, passes) test bit n, (hl) only a showman who didn’t give a damn about memptr
at least for bit n,(hl) and always writes zeros to the YF and XF flags. And how
then would you like to be?
Boo-boo, I want to hear: have you figured out how to emulate bit n,(hl) correctly?
From
Stanislav Lomakin
→
To
All
25 February 2006
Hello Titus
Tit> It is unlikely that anyone would have come up with the brilliant idea to design
Tit> crystal AGAIN :D Yes, even if she came, they wouldn’t ‘float’ in it
Tit> only undocumented flags bit x,(hl) ;)
someone came up with this idea - see t80, r800, Soviet equivalent... and what do you have?
hypotheses about the mismatch of bit (hl) emulation for the 2 tested processors?
From
Stanislav Lomakin
→
To
All
25 February 2006
Hello, Vladimir Kladov
Vla> Boo-boo, I want to hear: you figured out how to bit n,(hl)
Vla> emulate?
(btw, boo_boo is read boo-boo ;) ) I think, but there’s not enough data :(
it’s especially muddy with interruptions and ld(nnnn),a for which the results differ by
different computers. Now I’m finishing the test in more detail/volume, based on the boot results
visible :o
From
Wladimir Bulchukey
→
To
All
27 February 2006
Hello, boo_boo
boo> took part in testing:
boo> Wlodek's pentagon with an unknown crystal
boo>
I think it says "Z80A GoldStar" on it. It is unlikely that it will be possible to clarify, because
a radiator has been glued onto it for a long time.
From
Andreas Kaiser
→
To
All
27 February 2006
Hello, boo_boo
boo> I am attaching an archive with the test results and the test itself (source for
boo> sjasmplus, quickly and on the knee, I apologize ,)
If you give me a test in TAP or TZX format, I’ll test it on the original ZX Spectrum+.
If necessary, I can see what the stone is worth in it.
From
Andreas Kaiser
→
To
All
27 February 2006
Hello, boo_boo
boo> download for real, with opencores -- t80/tv80... only Zilog sources
boo> z80 was not shared with the people, so the authors of these kernels also worked on
boo> descriptions.
There can be no "source" Z80. By the way, this was discussed recently (about two months ago)
in comp.arch.fpga, I already gave the “link” here.
From
Vladimir Kladov
→
To
All
27 February 2006
Hello icebear
With CPI/CPD/CPIR/CDPR it is clear:
the first 2 do not affect, the second affect if the command is executed more than 1 time,
the action is the same as for JP at the beginning of the command after each execution.
Boo-boo, confirm. I'll take a look at the 3rd test for now.
(Although of course, why is it different in LD[r]. Although, with logic in general
there may not be a connection. They did it as they had to).
From
Vladimir Kladov
→
To
All
27 February 2006
Hello icebear
or the wrong register is in the CPI/CPD. Options: A, DE+1 (what if), BC-1 (then
otkel 1 took), (HL) - looked?, A-(HL). For CPIR/CPDR (and maybe CPI/CPD -
why not) maybe PC (the address of the CPIR/CPDR command itself), and also look
What byte is needed, high or low. I think these are the options
consider, do a thorough test for them, other versions are unlikely to fit
It makes sense to exaggerate now.
(Hmm, what if there is more than one MemPtr, and in several such registers in 1 clock cycle
several increments of several registers are performed, and getting to xy in
bit command can be from any, and not always the same)
From
Vladimir Kladov
→
To
All
27 February 2006
Hello, boo_boo
If you look at test 3, then CPI/CPD does not reset anything. If it's correct of course
I realized that in the second pass @set@ means that before the test memptr is installed, and
The check also includes whether the team “resets” it altogether.
By the way, I was tired of looking at test 3. It’s inconvenient to compare. Would you like a memory
initialized somehow before the test, or something. Otherwise, run the test again
becomes uninteresting, + and - cease to coincide at all. Differ by + and -
even iron tests. The text file comparison simply considers everything to be a match
(when I want to compare my results), and I have to stare for a long time.
Horrible!
From
Stanislav Lomakin
→
To
All
27 February 2006
Hello, Vladimir Kladov
Vla> If you look at test 3, then CPI/CPD does not reset anything. Unless of course
Vla> correctly understood that in the second pass @set@ means that before the test
Vla> memptr is installed, and the check is also made to ensure that the command
Vla> generally “resets” it.
I look at the result of the last test, on the 1st pass, with memptr reset,
all cpi give 00, all cpd also give 00, on the second, with memptr installed, cpi
again they give 00, and cpd 11. Those cpi are reset to zero, but cpd doesn’t care.
initialize memory? O__o.... ok, I'll do it :rolleyes:
From
Stanislav Lomakin
→
To
All
27 February 2006
Hello, Vladimir Kladov
Vla> It’s clear with CPI/CPD/CPIR/CDPR:
Vla> the first 2 do not affect, the second affect if the command is executed more than
Vla> 1 time, the action is the same as for JP at the beginning of the command after each
Vla> execution.
Vla> Boo-boo, confirm.
about "how is jp" it seems
however, in the previous version of the test, CPI gave a similar result (I don’t remember
under what conditions, there is no source, it needs to be dissembled)...
I’m clarifying the hypothesis - CPI and CPIR reset memptr at BC=1 and initialize it
your address (?or address +1?) in other cases. CPD and CPDR are not touched
memptr when BC=1 and initialize it with the address in other cases.
Tomorrow I'll upload another version of the test - we'll check CP*, at the same time other block ones
teams under similar conditions (what if?), and a bunch of other things.
From
Stanislav Lomakin
→
To
All
27 February 2006
Hello icebear
ice> If you give me a test in TAP or TZX format, I’ll test it on the original ZX
ice> Spectrum+. If necessary, I can see what the stone is worth in it.
oh great, I'll do it tomorrow, along with a new version of the test :)
From
Andreas Kaiser
→
To
All
28 February 2006
Hello, Vladimir Kladov
Vla> Comparison of text files simply considers everything to be a match (when I
Vla> I want to compare my results), and I have to stare for a long time.
Vla> Creepy!
I recommend the CompareIt utility! shows exactly the inconsistencies line by line, highlighting
their color. more convenient.
From
Alexander Shabarshin
→
To
All
28 February 2006
Hello Sinus
Sin> diff will help the fathers of Russian democracy?
Sin> or if under the name, then the total commander also compares well
Sin>
Take out the small and soft evil offtopics that still have WinDiff - everything is beautiful
colors, showing what has been moved where, etc.
From
Slavik Tretiak
→
To
All
28 February 2006
Hello icebear
#ifdef OFFTOPIC
diff will help the fathers of Russian democracy?
or if you’re looking for something, then the total commander also compares well
#endif // OFFTOPIC
From
Vladimir Kladov
→
To
All
28 February 2006
Hello Shaos
there are a lot of utilities (I prefer WinMerge), but the trick is that they all come across
to lines with different +/-, even if there were the same 0/1 in the flags. Inconvenient.
So initialize it. Pliz.
(of course it takes 10 minutes maximum to write a utility so that in all files
replaced all + with - in the first column, but it’s also interesting with these flags
look). And, by the way, there is little information in the comments on CPI / CDP (again in the debugger
climb). Well, I was daydreaming. So you say CPI resets to zero. Just resets it to zero, or
Still, does it come from somewhere else? Will there be a disassembly in the next test?
By the way, it seems to me that you can leave those commands that have already been clarified, and
deal only with CPxx, INxx, OTxx (or at least put them at the beginning so that
Is it easier to look at it with a debugger) Or is something else not joining up?
From
Stanislav Lomakin
→
To
All
1 March 2006
Hello, Vladimir Kladov
Vla> everyone comes across lines with different +/-, even if they are identical
Vla> 0/1 in checkboxes. Inconvenient. So initialize it. Please.
no need to initialize :) there is no need to output bits other than 5 and 3 at all - this is
the same flags after bit (hl), with which everything is clear, and from the previous command only C
remains. if you are interested in C, I can leave pluses, and in front of bit (hl)
set hl, otherwise this hl jumps around everywhere, it’s not surprising that the flags
always different :rolleyes:
iron theme in a couple of minutes
From
Stanislav Lomakin
→
To
All
1 March 2006
Hello, CHRV
CHR> I have a feeling we'll get a CPUid test soon ;).
oh, I was just thinking about this recently - add a fortune to the sum to be sure
flags _before_ bit (hl), also a DAA test, and as a result a good CPUid
it will work :rolleyes:
From
Stanislav Lomakin
→
To
All
1 March 2006
Hello icebear
ice> If you give me a test in TAP or TZX format, I’ll test it on the original ZX
ice> Spectrum+. If necessary, I can see what the stone is worth in it.
here it is :)
File: btest4_tap.zip http://zx.pk.ru/attachment.php?attachmentid=2704
From
Chunin Roman
→
To
All
1 March 2006
Hello, boo_boo
boo> ...added detailed tests for block commands.... I'll post another one
boo> hardware test in a couple of minutes
I have a feeling we'll get a CPUid test soon ;).
From
goodboy
→
To
All
1 March 2006
Hello, boo_boo
a little about bits 3 and 5 is in the article 'system' spectrophone 11
From
Andreas Kaiser
→
To
All
1 March 2006
Hello, boo_boo
boo> here :)
OK, I'll do it. Does this test store any results? I'll have to somehow
drive it back to TAP, but I don’t know how to do it yet. Therefore immediately
there will be no result, but I will try as quickly as possible, I’m interested myself :)
From
Stanislav Lomakin
→
To
All
1 March 2006
Hello, goodboy
goo> a little about bits 3 and 5 is in the article 'system' spectrophone 11
Young also has all this (and more and more detail). with 3 and 5 bits F that's all for a long time
understandable for all instructions... except bit n,(hl):rolleyes:
From
Stanislav Lomakin
→
To
All
1 March 2006
Hello icebear
ice> OK, I'll do it. Does this test store any results? I'll have to
ice> somehow drive them back into TAP, but I don’t know how to do this yet.
ice> Therefore, there will be no results right away, but I will try as quickly as possible
ice> I’m interested myself :)
yeah, writes a log at the end, the usual save -- the address/block length is indicated in
Vasike.
From
Andreas Kaiser
→
To
All
2 March 2006
Hello, boo_boo
boo> z84 there? interesting... this is how trd is read/written on a sprinter like
boo> Will it all take a couple of minutes?
Z84C15. The sprinter is working, it will be possible to test it quickly. By the way, on turbo
or not? I'll take the latest version of the test (5), from which I have already made a WAV, so that
upload to ZX Spectrum+ :) Yesterday it didn’t work :(
From
Andreas Kaiser
→
To
All
2 March 2006
Hello, boo_boo
boo> not bad! :) ...people, who has real money? maybe so?
By the way, I can check on the Sprinter which is Sp97. But it all comes down to time :(
From
Stanislav Lomakin
→
To
All
2 March 2006
Hello RamTop
Ram> Guys, do you need the Z80H for the test? It’s at home, now marked
Ram> I can’t look at it. True, I don’t have any real money left.
not bad! :) ...people, who has real money? maybe so?
From
Stanislav Lomakin
→
To
All
2 March 2006
Hello icebear
ice> By the way, I can check on Sprinter which is Sp97. But everything depends
ice> during :(
z84 there? interesting... that’s how they read/write on a sprinter like TRD, at most
Will it take a couple of minutes?
From
Stanislav Lomakin
→
To
All
2 March 2006
Hello icebear
ice> By the way, is it on turbo or not?
in theory, it doesn't matter. run this way and that, look at the amount - is it the same?
From
Andrey Alexandrovich Titov
→
To
All
3 March 2006
Hello, boo_boo
boo> By the way, I’m curious how the clones were designed? for example,
boo> I doubt that KR1858VM3 was made under the ZiLOG license, but memptr is there
boo> is there, and it behaves in the same way as on branded processes (although differently
boo> things like DAA, this die is different from the Z80).
In the docks describing bourgeois/Russian analogues - VM3 is the only one
a processor about which it is indicated that it is not an exact copy, but only 'functional'
analogue of Z80' :o
How is it different in terms of DAA?
From
Stanislav Lomakin
→
To
All
3 March 2006
Hello Titus
Tit> In the docks describing bourgeois/Russian analogues - VM3 -
Tit> is the only processor about which it is indicated that it is not an exact copy
Tit> but only 'functional analogue of Z80' :o
Tit>
Tit> How is it different in terms of DAA?
It’s strange why the developers of the “functional analogue” accurately imitated
an undocumented and incomprehensible feature (actually bit(hl)), leaving behind
there are more important things on board.
according to DAA - in general some kind of nonsense, not only undocumented flags, even S and H
don’t understand how they behave.
From
Stanislav Lomakin
→
To
All
3 March 2006
Hello, boo_boo
By the way, I looked at the t80 vhdl sources [http://www.opencores.org/cvsweb.shtml/t80/],
Something is wrong with 5 and 3 bits F for bit (HL) and bit (i+d). just not
I understand that - to understand, you need to understand vhdl :o
From
Stanislav Lomakin
→
To
All
3 March 2006
Hello, boo_boo
according to the results from CHRV [http://zx.pk.ru/showthread.php?p=40720#post40720]:
- LDIR/LDDR
does not affect memptr with BC=1 (those with a single execution)
when BC<>1 memptr=instruction address+1
-CPI
memptr=0 (?)
- CPIR
with BC=1 or A=(HL) as CPI,
in other cases it is unclear... (for this test both bits are 1, maybe
memptr=HL?)
- CPDR
when BC=1 or A=(HL) has no effect (like CPD)
in other cases memptr=instruction address
-INI
memptr=BC+1
- IND
memptr=BC
INIR/INDR
memptr=0 (?)
OUTI/OUTD
memptr=f(BC), what kind of f is unclear. the first thing that comes to mind, and with what
the result matches: memptr=BC >> 2, but somehow it’s wild O__o
OTIR/OTDR
memptr=0 (?)
By the way, I’m curious how the clones were designed? for example, I doubt
that KR1858VM3 was made under the ZiLOG license, but memptr is there, and it behaves
just like on branded processors (although for other things, like DAA, this crystal
different from Z80).
From
Andrey Alexandrovich Titov
→
To
All
3 March 2006
Hello, boo_boo
boo> it’s strange, why do the developers of a “functional analogue” exactly
boo> simulated an undocumented and incomprehensible feature (properly
boo> bit(hl)), leaving behind more important things.
boo>
boo> according to DAA - generally some kind of nonsense, not only undocumented flags
boo> Even S and H don’t understand how they behave.
So far, my opinion is this - either inside the VM3 there is again a bourgeois crystal
any modification of the Z80, or when grinding the crystal, followed by
reproducing it again, our craftsmen of something
changed/lost/overlooked ;)
From
Vladimir Kladov
→
To
All
3 March 2006
Hello Titus
As for the difference between CPI/CPIR CPD/CPDR, this is somehow very suspicious to me.
How does the processor suddenly know that the previous executed command also
was CPIR or CPDR, and not some other one. (In the sense that he, after all,
does it alone) Or he keeps such a flag somewhere. Or how it turns out
that it resets only for CPIR which only works once, but takes
from HL (permissible) in other cases. After all, during repeated execution, if not
I knew that before this there was also a CPIR and would have reset it again. Everything with the CPDR team
It’s clearer if CPD doesn’t touch anything.
We should also add “double” tests when after a “reset” or “installation”
The checkboxes are filled in first with CPI, and then again with CPI or CPIR. In general, you need
see all combinations:
CPI: CPI
CPI: CPD
CPI : CPIR (BC=1)
CPI : CPIR (BC=2)
CPI : CPDR (BC=1)
CPI : CPDR (BC=2)
CPD:CPI
CPD: CPD
CPD : CPIR (BC=1)
CPD : CPIR (BC=2)
CPD : CPDR (BC=1)
CPD : CPDR (BC=2)
CPIR (BC=1) : CPI
CPIR (BC=1) : CPD
CPIR (BC=1) : CPIR (BC=1)
CPIR (BC=1) : CPIR (BC=2)
CPIR (BC=1) : CPDR (BC=1)
CPIR (BC=1) : CPDR (BC=2)
CPIR (BC=2) : CPI
CPIR (BC=2) : CPD
CPIR (BC=2) : CPIR (BC=1)
CPIR (BC=2) : CPIR (BC=2)
CPIR (BC=2) : CPDR (BC=1)
CPIR (BC=2) : CPDR (BC=2)
CPDR (BC=1) : CPI
CPDR (BC=1) : CPD
CPDR (BC=1) : CPIR (BC=1)
CPDR (BC=1) : CPIR (BC=2)
CPDR (BC=1) : CPDR (BC=1)
CPDR (BC=1) : CPDR (BC=2)CPDR (BC=2) : CPI
CPDR (BC=2) : CPD
CPDR (BC=2) : CPIR (BC=1)
CPDR (BC=2) : CPIR (BC=2)
CPDR (BC=2) : CPDR (BC=1)
CPDR (BC=2) : CPDR (BC=2)
Of course HL should point somewhere where A <> (HL) for all
comparisons (we can already assume that this case is equivalent to the last
execution). These tests include:
1) get confirmation that the processor has such memory of the previous command
there is;
2) find out if it distinguishes between 2 commands CPIR: CPIR, CPI: CPI, etc. or thinks
their continuation of the chain. By the way, you could also just plug it in just for fun
something neutral between and look at these triple tests:
CPI: NOP: CPI
CPIR (BC=1) : NOP : CPIR (BC=1)
CPIR (BC=2) : NOP : CPIR (BC=1)
CPIR (BC=2) : NOP : CPIR (BC=2)
3) does this hypothetical flag take into account two different LDIR commands
indeed to different addresses as one long LDIR command.
INI/IND/OUTI/OUTD together with R are not so interesting anymore. But CPI/CPIR is not very good
satisfied. At the same time, we should pull HL to different places in memory, let it show
Are the flags really taken from HL (from HL+1 in the sense?).
From
Vladimir Kladov
→
To
All
4 March 2006
Hello, Vladimir Kladov
oops. Probably such a flag for the processor is PF. Those. he looks at PF,
and not on some other flag, assuming that PF = 0 is a sign of “beginning”
sequences, and then resets to CPIR memptr. And after LDIR in which
BC <> 0, PF=1, and then it doesn't reset. But PF can be = 1 not only after
CPIR. We also need to expand the tests in this direction: flags to the command too
try and reset and install. At least this needs to be repeated and
for CPD/CPDR and for LDI/LDD/LDIR/LDDR. Warmer? :)
From
Valery Grigoriev
→
To
All
4 March 2006
Hello, Vladimir Kladov
Vla> About the installation time, a microsecond later, a microsecond earlier -
Vla> on the drum
Still, there is a difference, maybe you didn’t read it very carefully, most likely yourself
the memptr register is transferred to the flags register... how to say... by accident
or something, i.e. in general, the authors of the Z80 did not expect this to happen and therefore
This is how it turns out that this data gives a different CRC from series to series of CPUs.
As for the tests, I understand that you can only check whether it is an emulsion or not (or
maybe this is a completely defective version of the Z80), and the older the emulsion, as I understand it, the
it is less likely that this register is loaded there (((-:
And also, sports achievement or not, the work was done well ((((-:
P.S. Sorry, I slightly missed the question about Speck+ - here it is, I looked - to
unfortunately CRCs are unique http://zx.pk.ru/showpost.php?p=40776&postcount=50
P.P.S. I propose to award a gold medal to Boo-Boo and Vladimir Kladov for his unprecedented
Stakhanov's work to establish the true face of the glitch named memptr ((((-:
P.P.P.S. I don’t claim silver, but I wouldn’t refuse bronze ((((-:
From
Valery Grigoriev
→
To
All
4 March 2006
Hello, Vladimir Kladov
Regarding taking into account the type of modification - they have already pulled it out for the original Speck+
computer test, so as I understand it, we need to focus on it. So how?
option to provide for a change of stone - well, so that there are the same results as for
of the specified CHRV percents, in other words, use a table to work with these
teams.
Possible variant of different operation of commands and influence on the memptr register and how
consequence on the flag register - maybe this is the problem. Register actually
There is a set of triggers that are assembled on the processor substrate in a single cycle. Before
setting a new value usually always uses a register reset and
respectively, reset triggers (asynchronous RS triggers and those based on them
asynchronous registers). The idea is this: it can be in different types
processors differs (can be nanoseconds) in the time the reset signal arrives at
memptr register? Those. in some cases it comes before its meaning
partially went into the flag register and in others - after that. Or - maybe it
varies? Those. even for one stone there can be either “0” or the notorious
"high_byte and 28"? And if you run the program in a loop, check these:
controversial (on different hardware) points, then you can get (on the same stone) different
results? And one more assumption in the same vein - the time of arrival of the signalreset differs for different revisions of processors in different ways, so most likely
In total, a series of processors will show the same results, while another series
will the same processors show different results using the same examples?
And immediately a question of this kind - what is the difference for existing programs (except
test ones) does it take the memptr register into account in emulators? Is it possible somehow
use this register while writing programs? What does it look like (except
test) use this knowledge about the memptr register?
From
Valery Grigoriev
→
To
All
4 March 2006
Hello, Vladimir Kladov
Guys (boo-boo and Vladimir Kladov)
There is such a request - maybe make a clearly structured document
(file-text) with a description of the register and the influence of commands on it?
To be honest, there was a description a little higher there (from Vladimir Kladov), only this
greatly abbreviated.
From
Vladimir Kladov
→
To
All
4 March 2006
Hello,GriV
where can I get more details? Boo-boo wrote everything that is known at the moment, and even
more. But with the influence of the HL register on the CPIR result, apparently
miss. Now I’m on my 5th, I’m fighting to get it in Fast mode too.
Everything works - within current limits. We should add a CPU selection. How are they
I don’t know what to name yet, but don’t list all the markings. I have an idea (about
"medals" :wink: ).
I would like it to be run on the “analogue”, which differs in DAA
test that I suggested. (Isn’t there anything else different? zexall test what
yes, also interesting).
From
Vladimir Kladov
→
To
All
4 March 2006
Hello,GriV
what kind of test is this? “it’s already here” where is it, why don’t I know?
here they have already pulled out a test for the original Speck+ computer
If we're talking about zexall, then it doesn't help much, even if it sees
some difference (but he doesn’t see the difference at all with the bit n,(hl) command and won’t be able to
see - he is crooked). If he sees the difference on the command, then further on this
The team needs to do a separate test, its own, and then run it.
As for the installation time, a microsecond later, a microsecond earlier - according to
drum. The memptr value set in one command is used in
subsequent ones (and only in bit n,(hl)), so not a microsecond, much less
We are not interested in nanoseconds. There may be a reset, and there may even be an installation
(sort of like in CPIR). In any case, we can only be in a state
"the hypothesis is close to the truth because there is no disproving result
testing" - we accept it as truth. It's worth showing up for at least one
disproving result - the test has to be expanded and the hypothesis
modify.
I see only one application: you can clog up part of the code or data with flags
after the bit n,(hl) command executed after various commands affecting memptr,
and eventually get a program that will not work on old emulators or
incompatible chip clones. I don’t yet know a single demo or program forspec that would not work because of the bit n,(hl) command, more precisely, because of the flags,
which do not coincide with the iron ones.
So, the work done can be considered an excellent sporting achievement (although
and not the most absolute - there is still a chance to achieve even more accurate results),
but like sports in general, it doesn’t do much good.
From
Vladimir Kladov
→
To
All
4 March 2006
Hello, Vladimir Kladov
oops, oops. My previous post is crap. PF has absolutely nothing to do with it. Checkbox
there is something in the CPU. I tried using the address as a checkbox
previous executed command, if it is the same, then the same command is executed,
and the reset is not done, i.e. the result from the penultimate execution of CPIR remains
(installation).
Now about where the installation comes from. If you take HL or HL-1 (i.e. after and before
command execution), then the pair of results does not converge. It came together when I just
started pushing FF into memptr. The result is strange. I'll try something else now.
Alas. I tried everything that came to mind: A-(HL), A-(HL)-F, A - nothing
fits. Only pure FF. We need to look at different HLs and find out what can
also influence memptr in CPIR. Since HL is not suitable.
Double (and triple) tests are still of interest. I would like to find out if it is enough
analyze the address of the previous command, or do you need to remember the command itself
(opcode) to act as a "continue" flag for CPIR. For
For other teams this is less relevant.
From
Vladimir Kladov
→
To
All
4 March 2006
Hello, boo_boo
already there: I'm posting my EmuZWin 2.7 build 2.7, all the accumulated
material is already included.
There is no chance there, everything follows a clear algorithm. I think when
designing the first crystal or simply mixed up the source for the flag in
bit team, or vice versa, they hoped to get another source
"pseudorandom" numbers, sticking out the "tail" of a completely internal
register for intermediate calculations.
Hmm, ice - he made it for the original spec. I didn't look. But I think that's all there
same thing. Boo boo, if you take a look, tell me. And how will there be more tests (and
results), I will definitely take part. As a person far from reality (according to
there are 2 pieces lying around in the boxes, and my hands are not sharpened for a soldering iron), it has always been
It’s interesting to make the most realistic emulsion possible.
From
Stanislav Lomakin
→
To
All
4 March 2006
Hello,GriV
Gri> And immediately a question of this kind - what is the difference for existing programs
Does Gri> (except for test ones) account for the memptr register in emulators? Is it possible how
Gri> Should I use this register when writing programs? How
Gri> it seems (except for the test) to use this knowledge about the register
Gri> memptr?
as for the difference - we don’t really know :) maybe those few programs
which do not work on this or that emulator, they will suddenly take it and make it work,
was done somewhere LD A,hibyte:[opcode_exposing_undocumented
flags]:PUSH AF : POP IX : JP IX.
You can use it for protection - click on it, and the emulators are out.
to recognize the processor brand together with other tests for
undocumented flags and opcodes...
Well, to be honest, these studies have a by-product - I
I caught a few subtle glitches in the Z80 emulation core, I wouldn’t be surprised if not
I'm alone ;)
From
Stanislav Lomakin
→
To
All
4 March 2006
Hello,GriV
Gri> and therefore it turns out that this data is from series to series of CPU
Gri> give different CRC.
So far it doesn’t seem like anything has changed in the bit flags from series to series of CPUs
n,(hl).
Gri> And as for the tests, I understand that you can only check the emulsion or
Gri> no (or maybe this is a completely defective version of the Z80), and the older it gets
Gri> emulsion, as I understand it, the less likely it is that this register is there
Gri> is registered (((-:
So far there is no emulator at all where this feature is fully implemented.
From
Stanislav Lomakin
→
To
All
4 March 2006
Hello, Vladimir Kladov
Vla> As for the difference between CPI/CPIR CPD/CPDR, this is somehow very important to me
Vla> is suspicious. How does the processor suddenly know that the previous one
Vla> the command being executed was also CPIR or CPDR, and not another
Vla> some.
Vla> (In the sense that he does them one by one) Or he holds
Vla> I have a checkbox like this somewhere.
IMHO it’s very unlikely that the flag is there, as you can’t see any
necessary. CPIR from CPI (and CPDR from CPD) differs only in that PC
changes in case of repetition (after looking at ZF and PF). therefore,
this affects memptr. another thing is that in the case of CPDR everything is clear and
similar to CALL/JP, but CPIR is a bit of a mess. but most likely memptr is also a function
from the address. it could be a shift, but (as with OUTI/OUTD)
this is implausible... option - CPI does not just “zero” memptr, but puts
there is something good that is used later during the transition.
but checking about the flag is a good thing, why not check ;)
From
Stanislav Lomakin
→
To
All
4 March 2006
Hello, Vladimir Kladov
Vla> I would like it to be on “analogue”, which differs in DAA, after all
Vla> ran the test that I suggested. (Isn’t there anything else different there?
Vla> what the zexall test gives is also interesting).
it seems it's time to make a combined z80 test-pack ;)
From
Stanislav Lomakin
→
To
All
5 March 2006
Hello, Vladimir Kladov
Vla> Hmm, ice - he made it for the original spec. I didn't look. But I think
Vla> everything is the same there. Boo boo, if you take a look, tell me. And how will they be
Vla> more tests (and results), I will definitely take part. To me as a person
Vla> far from real (there are 2 pieces lying around in the boxes, but I don’t have hands under them
Vla> soldering iron sharpened), it was always interesting to make the most
Vla> realistic emulsion.
the result from icebear completely coincides with the results for both relatives
percent CHRV (and the sum does not add up due to OUT(0000),0 - obviously the CHRV test is 128
ran it in mode, and 0000 was decrypted in the same way as 7FFd, ROM0 was turned on and something
during this chaos it deteriorated %)
Vladimir Kladov, I’m currently doing the 6th version of the test, come on, as the author of the “flag”
theory", you will select from that pile a few of the most revealing tests
CPI/CPD[R] to confirm/refute this case?
From
Stanislav Lomakin
→
To
All
5 March 2006
Hello, Vladimir Kladov
Vla> already exists: I'm posting my EmuZWin 2.7 build 2.7, all the best
Vla> accumulated material is already included.
Vla>
Vla> There is no randomness there, everything is according to a clear algorithm. I think when
Vla> designing the first crystal or simply mixed up the source for
Vla> flag in the bit command, or vice versa, they expected to get another one
Vla> source of "pseudorandom" numbers, sticking out its "tail"
Vla> is a completely internal register for intermediate calculations.
Vla>
Vla> Hmm, ice - he made it for the original spec. I didn't look. But I think
Vla> everything is the same there. Boo boo, if you take a look, tell me. And how will they be
Vla> more tests (and results), I will definitely take part. To me as a person
Vla> far from real (there are 2 pieces lying around in the boxes, but I don’t have hands under them
Vla> soldering iron sharpened), it was always interesting to make the most
Vla> realistic emulsion.
the result from icebear completely coincides with the results for both relatives
percent CHRV, which is not surprising (and the sum does not converge due to OUT(0000),0 --obviously I ran the CHRV test in 128 mode, and 0000 was decrypted in the same way as 7FFd,
ROM0 turned on and something got spoiled during this chaos %)
Vladimir Kladov, I’m currently doing the 6th version of the test, come on, as the author of the “flag”
theory", you will select from that pile a few of the most revealing tests
CPI/CPD[R] to confirm/refute this case?
From
Chunin Roman
→
To
All
5 March 2006
Hello, boo_boo
boo> the result from icebear completely matches the results for both
boo> native CHRV percentages (and the sum does not converge due to OUT(0000),0 - obviously
boo> I ran the CHRV test in 128 mode, and 0000 was decrypted in the same way
boo> 7FFd, ROM0 turned on and something got spoiled during this chaos %)
YES I confirm the mode was 128.
From
Stanislav Lomakin
→
To
All
5 March 2006
Hello, CHRV
CHR> YES I confirm the mode was 128.
heh, at first I was simply amazed - how are there some flags after OUT)
in the next version I'll switch to 48k out of harm's way :rolleyes:
From
Andreas Kaiser
→
To
All
6 March 2006
Hello Shaos
Sha> But in the dock for ZX-Spectrum+ it is written that there is a Z80 marked there
Sha> NEC D780C-1 is the same Z80 or a clone or an exact license
Sha> copy?
You should ask NEC about this :) As for licensed production, I know
only about the Japanese (thanks to them the HD64180 appeared, and therefore the Z180) and SG. Like
Goldstar made more copies. How accurately did they all repeat the original?
I have no idea how such copies are made.
I haven’t promoted my ZX Spectrum+ yet, I’ll have to take a look. Sprinter
Today I’ll try to check, by the way, you or CHRV could do this too.
From
Vladimir Kladov
→
To
All
18 March 2006
Hello, Vladimir Kladov
Unbelievable, but true! I ran several tests in a row and everything was OK!
The demo is called Blava demo. When moving to part 3 almost always
reset. 1st measure was not enough!
From
Vladimir Kladov
→
To
All
18 March 2006
Hello, Vladimir Kladov
By the way, here [http://www.z80.info/z80architektur.htm] on the functional
In the diagram, the required register seems to be visible as "Temporary Inder Register".
Interestingly, all the inscriptions on the diagram are in German, but this one is in English.
From
Vladimir Kladov
→
To
All
18 March 2006
Hello, Vladimir Kladov
And by the way, I found a document on Z80.info that shows how many cycles
what is done when following instructions. The most interesting thing is that in IM0 mode
the interrupt is done in 12 clock cycles, versus 13 in IM1 and 19 in IM2. (This is if
RST 38 is "substituted", and in the Spectrum, it seems, it is FF on the bus, so it will be
exactly 12 cycles and similar to RST 38. I mean, this information is not available anywhere, and 1
tact can sometimes be decisive. I have one demo... I'll have to
try.
From
Vladimir Kladov
→
To
All
18 March 2006
Hello, boo_boo
boo> not everything turned out to be so simple with these CP*... yes, when executing chains
boo> from 2 commands the result is unexpected - for example CPD:CPD give 11,
boo> CPIR:CPI same result as just CPIR, CPIR : CPD --
boo> memptr=instruction_address_CPIR+1...
boo>
boo> [skip]
boo>
boo> PS, what if it affects some other commands that set memptr
boo> its initial value? :confused:
How about writing a letter to Mr. jw, who maintains z80-documented,
so that he includes the extracted information in the next version of the document (since he
is being updated)? What the hell do you say?
From
Vladimir Kladov
→
To
All
18 March 2006
Hello, boo_boo
Come on, otherwise I thought we’d stop there. There are interesting things on z80.info
things, logical internal structure, there is even a power-point presentation for 4x
instructions on what's going on inside him. But so far it doesn’t clarify much. Like
photo of the process with a magnification of 100 times 8-]
From
Stanislav Lomakin
→
To
All
18 March 2006
Hello, Vladimir Kladov
Vla> How about writing a letter to Mr. jw, who maintains
Vla> z80-documented so that it includes the extracted information in the next version
Vla> of the document (since it is being updated)? What, boo-boo, do you say?
right idea :) ...it would be nice to bring the proceedings with memptr to
logical end, and then write, but CP* me, to tell the truth,
scared, I don’t really believe in the logical ending :rolleyes:
I think I’ll do one more test - to find out what’s wrong with outi and whether it affects
cleverly installed memptr on CP*, and write down what is there.
From
Stanislav Lomakin
→
To
All
19 March 2006
Hello, Vladimir Kladov
Vla> Incredible, but true! I ran several tests in a row and everything was OK!
Vla> The demo is called Blava demo. When moving to part 3 almost always
Vla> was reset. 1st bar was not enough!
maybe it was still missing because of something? very strange - in the official
the manual says that when requesting an interrupt vector, 2 wait-a are added (which
reflected in the diagram), z80undocumented directly states that IM0 with RST is 13
cycles... and according to the document with the scheduled cycles, for CALL - 2 waits,
and for RST, it turns out to be 1? The CPU doesn’t know what will come to it, where it comes from
discrimination? IMHO it looks more like a typo in a document with written
cycles, otherwise it’s generally unclear what’s what O__o
By the way, in my z80ex there are 13 clock cycles on im0-rst, and blava works stably (in
zemu)...
about the temporary index register - interesting.. it looks like someone knows something, but
silent :rolleyes:
By the way, here’s another interesting document:
http://www.funet.fi/pub/msx/mirrors/msx2.com/zaks/z80prg02.htm
it mentions some internal registers w and z used to work with
16-bit values (since the data bus is 8-bit)
From
Vladimir Kladov
→
To
All
20 March 2006
Hello, boo_boo
Why for anyone. In Spectrum, only the RST38 instruction is possible. This area is
the screen is always on, the bus is always FF. Those. for us - for any RST38 instruction.
From
Stanislav Lomakin
→
To
All
20 March 2006
Hello, Vladimir Kladov
Vla> Why for anyone. In Spectrum, only the RST38 instruction is possible. This
Vla> the area behind the screen is always, on the bus is always FF. Those. for us - for
Vla> of any RST38 instruction.
I mean -- in this dock at IM0 the cycle M1 is the same length for RST and for
CALL, why? This is extremely suspicious and looks like a typo. that is, everything
it happens, but IMHO the fact that some demo worked does not prove anything,
You need to check it in real life.
From
Vladimir Kladov
→
To
All
22 March 2006
Hello, boo_boo
again it’s unclear: if they don’t affect anything, then why say something about them?
find out?
From
Stanislav Lomakin
→
To
All
22 March 2006
Hello, Vladimir Kladov
Vla> again it’s unclear: if they don’t affect anything, then why talk about them
Vla> find out something?
by and large there is no need. although it is impossible to say 100% that they do not influence....
ok, 2 bits is a trifle, and so it will be clear what’s what. if this whole thing
it will work (it already works under the emulator, but what will happen in real life?), I wouldn’t be surprised,
if it turns out that after those commands that “zero” memptr, in the low byte
some kind of dregs remain :rolleyes:
From
Vladimir Kladov
→
To
All
22 March 2006
Hello, boo_boo
This is easily verified by CPDR (it seems). 0-1=11111...11111. If after fasting
memptr=memptr-1 gives both bits set, then the least significant one is cleared.
From
Stanislav Lomakin
→
To
All
22 March 2006
Hello, Vladimir Kladov
Vla> this is easily checked by CPDR (it seems). 0-1=11111...11111. If after
Vla> clearing memptr=memptr-1 gives both bits set, then the low one
Vla> is reset to zero.
nothing, nothing, if only the CPD is really a memptr decrement, everything is fine
Let's check, using 14 bits :)
From
Stanislav Lomakin
→
To
All
29 March 2006
Hello, boo_boo
so, the poem about memptr - read it!
On this cheerful note, I propose to consider the case of BIT n, (HL) closed :rolleyes:
Thank you very much to all research participants :)
PS. I should also translate it into English - share it with the bourgeoisie ;) maybe
will anyone take it? I can too, but I don’t want to embarrass myself - it will come out in style
"ay have ze veri good family"...
File: memptr_win.txt http://zx.pk.ru/attachment.php?attachmentid=2984
From
Stanislav Lomakin
→
To
All
29 March 2006
Hello, Vladimir Kladov
Vla> Well, I translated it in general as best I could. And the source text was translated into win from
Vla> unix :) Otherwise you won’t be able to open it in notepad.
Vla>
Vla> Can I send a letter now? Should I send it? jw(@)dds.nl
oh great! fixed a couple of typos (before instead of after for one of the outi,
some other little thing), sent it. :)
At the same time I wrote to him about a bug with XF and YF in the description bit n,reg
From
Vladimir Kladov
→
To
All
30 March 2006
Hello, boo_boo
Post it here too, I’ll remove mine with typos then.
From
Stanislav Lomakin
→
To
All
30 March 2006
Hello, Vladimir Kladov
Vla> post it here too, I’ll remove mine with typos then.
here
File: memptr_eng.txt http://zx.pk.ru/attachment.php?attachmentid=2989
From
Vladimir Kladov
→
To
All
30 March 2006
Hello, boo_boo
I also thought: while he’s there, he’ll “publish” a new version of the book... Maybe on WoS
report to emuls section? At least the Spectaculator writers hang out there,
Spin and Fuse. We must give them credit: they laid out the whole document about timings,
having spent both their time and effort on this, and “broke” them with no less diligence.
From
Stanislav Lomakin
→
To
All
30 March 2006
Hello, Vladimir Kladov
Vla> I also thought: while he’s there he’ll “publish” a new version of the book... Maybe on
Vla> WoS report to emuls section? At least the authors hang out there
Vla> Spectaculator, Spin and Fuse. We must give them credit: about timings
Vla> they laid out the entire document, spending their time and effort on it, and
Vla> “broke” them with no less diligence.
yeah, let me know :) ...what's this about timings?
From
Vladimir Kladov
→
To
All
31 March 2006
Hello, boo_boo
I mean a detailed picture of how delays occur on
contended memory for branded models. This information was also
undocumented and obtained through experimentation. They knew something and used it
demo makers to obtain their multicolor effects, but more often - just
We measured the time for each specific deme. It's a completely different matter to provide
a detailed description of what happens on each machine cycle of each command
processor, depending on whether access to
contended memory or ports or not. This is the only way to triple the emulator, which
will correctly reproduce all multicolors of branded models, with real
ULA.
I'll let you know. I just don’t know how to pin the text to them. I've never seen it there
something was pinned. I'll try to give a link to this thread in our forum.
From
Wladimir Bulchukey
→
To
All
4 April 2006
Hello, Vladimir Kladov
Vla> I no longer have enough Russian or English to express
Vla> your indignation. It turns out that a certain Fraser already 2 years ago is ALL
Vla> KNOWN
Vla>
Is that really all? And about Russian processors?
We probably did a lot of work here after all.
So thank you - well deserved, I think.
From
Andreas Kaiser
→
To
All
4 April 2006
Hello, Vladimir Kladov
Vla> I no longer have enough Russian or English to express
Vla> your indignation. It turns out that a certain Fraser already 2 years ago is ALL
Vla> KNEW and placed the information (or supposedly marked it) inside the archive with his own
Vla> cross-asm - see here:
In comp.sys.sinclair, someone Dunny has already broken it :) Mr. Fraser Ross investigated
behavior of commands from the group of 16-bit arithmetic operations. He was indignant
regarding the fact that he was not included in the text credits written by boo_boo, making
The bias is that you and boo_boo ripped off some of the information from the document he specified. On
which came under distribution from Dunny. So everything is fine.
From
Vladimir Kladov
→
To
All
4 April 2006
Hello icebear
Personally, I haven’t written about this document yet and haven’t even seen it. Boo-boo
didn't mention him either. Besides, what's the point of his document: what he wrote, and
This was known for 16-bit addition-subtraction, at least from Sean
Young, long before his ASMA document was hidden in the wilds.
From
Vladimir Kladov
→
To
All
4 April 2006
Hello, Vladimir Kladov
Boo-boo, remind me: INC rp / DEC rp do not affect MEMPTR? And then Fraser
arises again. Or answer it yourself, otherwise it’s time to sleep, it’s midnight
(after all, +6 GMT).
From
Valery Grigoriev
→
To
All
5 April 2006
Hello, Vladimir Kladov
Guys! Don't pay attention! There will always be some... person...
who will say “they ripped me off” and will wave papers at the same time
proving his involvement. You did a great job - and that's all who
I've been following this thread at least a little bit, they can confirm. Maybe someone is there
and did something similar, only he 1) didn’t share 2) now wants to get on with it
to someone else’s success (cross out what is unnecessary from 1 and 2), so you know, well done.
:v2_tong2:
From
Stanislav Lomakin
→
To
All
5 April 2006
Hello, Wlodek
Wlo> Is that really all? And about Russian processors?
Well, yes, only for *VM1 there are differences in memptr. although if there are any more
Russian processors, you can test them too ;)
From
Slavik Tretiak
→
To
All
5 April 2006
Hello, Vladimir Kladov
Why is it sharpened specifically for the Pentagon?
port #FF? makeshift for multicolors?
It’s just that there’s something here... like neither fish nor fowl (not Pentagon and not Scorpio).
maybe on it?
From
Vladimir Kladov
→
To
All
5 April 2006
Hello,GriV
I was just sitting and finding out the history of the issue with INC/DEC rp. In order to
determine whether these instructions were accidentally forgotten. (Question asked by Fraser,
he thinks they do the same thing as ADD/SBC for rp). I understand that on
in the very first test nothing suspicious was noticed about them, and more in
they did not participate in the tests. But in vain. It wouldn't hurt to stick them (at the beginning)
the last test, and in general make the final test based on it,
which would show the non-involvement of any suspicious teams. After all, even if
some instruction does not set a completely new value in MEMPTR, it may
change it anyway. For example, why not inc rp execute M++, and dec rp
similar to cpd: M--. It is imperative to include ALL instructions with rp in the test, even
innocent LD rp,word. Let them show that they really have nothing to do with it.
Boo-boo?
From
Vladimir Kladov
→
To
All
5 April 2006
Hello, Vladimir Kladov
To be more convincing, you can run this test:
LD A,(0000) ; MemPtr=0
BIT 1,(HL) : PUSH AF
DEC HL
BIT 1,(HL) : PUSH AF
LD A,(FFFF) ; MemPtr = FFFF
BIT 1,(HL) : PUSH AF
INC HL
BIT 1,(HL) : PUSH AF
And I also thought this: does the BIT n,(HL) command itself definitely not affect MemPtr?
(Suddenly she loads HL or HL+1 into it...) The last test proves
the non-involvement of this team, right? (So in a loop you need to check the flags,
and if HL got into MemPtr, then the flags would give the same thing all the time
meaning, in that case. It seems to be proof, as I understand it?).
For some reason I'm becoming suspicious...
From
Vladimir Kladov
→
To
All
5 April 2006
Hello, Vladimir Kladov
Well, my last post is already late. Okay, otherwise I'm not that good at code.
I looked, I just didn’t see this command separately in the list.
Yes, if it had an effect, then in at least one case the test (probably)
would go in cycles - or show that Memptr is 0, or else give something strange.
By the way, I put a test for IM0 this evening
(http://zx.pk.ru/showpost.php?p=44285&postcount=75) - if anyone wants to drive away
Please, only the Pentagon.
From
Stanislav Lomakin
→
To
All
5 April 2006
Hello, Vladimir Kladov
Vla> Boo-boo, remind me: after all, INC rp / DEC rp do not affect MEMPTR? A
Vla> then Fraser appears again. Or answer it yourself, otherwise it’s time to sleep
Vla> midnight has come (after all, +6 GMT).
no, they don’t have an effect. in the MEMPTR decrement cycle I do INC/DEC BC, and
everything is fine :) I'll go take a look at WoS.
From
Stanislav Lomakin
→
To
All
5 April 2006
Hello, Vladimir Kladov
Vla> For some reason I’m becoming suspicious...
DEC/INC and BIT (HL) itself, yeah, they don’t affect it - otherwise the test would fail. but in general,
you can put more instructions there for reinsurance - I suggest drawing up
list...
From
Vladimir Kladov
→
To
All
6 April 2006
Hello, boo_boo
boo> oh well, why check - just put it in the main test so that everything fits
boo> was hand :)
To be convincing. At least inc/dec rp. What if they really do for
memptr ++ or --, at least for some registers. By the way, INC/DEC INDEX
(INDEX=IX/IY) - it wouldn’t really hurt to check in both ways.
From
Vladimir Kladov
→
To
All
6 April 2006
Hello, boo_boo
List - all commands with rp in at least some form:
INC rp:DEC rp
LD r,(HL):LD (HL),r
ADD/ADC/SUB/SBC/AND/OR/XOR/CP A,(HL)
RES n,(HL):SET n,(HL)
They should at least be checked first with the test that I suggested: reset
Memptr, then command, then setting MemPtr, then command. This is to
make sure that at least they don't do ++ or -- for MemPtr. And only then
For added credibility, you can add them to the main test loop.
P.S. I turned off the emoticons, the ASM Z80 is having fun again...
From
Stanislav Lomakin
→
To
All
6 April 2006
Hello, Vladimir Kladov
Vla> They should at least first be checked with the test that I suggested:
Vla> reset Memptr, then command, then set MemPtr, then command.
Vla> This is to make sure that at least they don't do ++ or -- for
Vla> MemPtr. And only then you can use them for greater persuasiveness in the main
Vla> add test cycle.
oh well, why check - just put it in the main test so that everything is at hand
it was :)
From
Stanislav Lomakin
→
To
All
6 April 2006
Hello, Vladimir Kladov
Vla> For credibility. At least inc/dec rp. Suddenly they really are
Vla> is done for memptr ++ or --, at least for some registers. By the way,
Vla> INC/DEC INDEX (INDEX=IX/IY) - it wouldn’t hurt to check with both
Vla> in ways.
The “second method,” that is, through CPD, completely replaces the first. let them at least
what they do with the mempter, we will see. the instruction is executed before the loop
decrement CPD, not in a cycle, so everything is ok.
From
Stanislav Lomakin
→
To
All
7 April 2006
Hello, boo_boo
What’s interesting is the “zeroing” of memptr at IM0, which Luca mentioned
from ramsoft. this would be tested, but then you need a device that INT
sets something harmless for memptr to the bus, for example 0. but who
will climb into his spec with a soldering iron for such garbage... or maybe it’s already in
things like this in nature?