about ULA emulation

ZXNet echo conference «zxnet.pc»

From Stanislav Lomakin To All 19 January 2007

Hello, All Many emulators use this approach to emulating a ULA video controller: after the processor executes the next command, the number of clock cycles is taken, spent on this command, and the corresponding amount of ULA drawing is performed. for example: a certain PUSH took 11 clock cycles, therefore (in the case of a direct beam path) ULA draws 22 points. and so on. BUT - after all, if we have a machine with separate memory fields, ULA and Z80 access to the data simultaneously, that is, a situation may arise when PUSH is put on stack located in screen memory, high byte of word, meanwhile ULA counted the byte at the previous address, and then PUSH put the low byte, but ULA has already jumped forward, and thus only the most significant byte of the word appears on the screen, which I put on the stack PUSH. in the emulation algorithm mentioned above this will not be taken into account; both will appear on the screen bytes, that is, strictly speaking, such emulation is incorrect. Am I right?

From Dmitry Malychev To All 19 January 2007

Hello Titus It’s high time to fully emulate not only the percentage “from the inside” and the spinning top, but also bus (clock state). And all sorts of “device plugins” will be easier screw. True, the emulsion will turn out to be slow... but that’s okay, the vintel there's enough stupidity. ;)

From Andrey Alexandrovich Titov To All 19 January 2007

Hello, boo_boo Yes, you're right, this emulation is not entirely correct: v2_tong2:

From Alexey Goncharov To All 19 January 2007

Hello Lethargeek This is of course good on a clockwise basis, and there’s enough nonsense (and with a good emulator architecture maybe it will be better), but information on intimate matters of hardware within teams is needed I'll have to look further...

From Vladimir Kladov To All 19 January 2007

Hello, boo_boo in which ones is it - many? I have in the process of executing the command H ON EVERY CYCLE a video beam is being built, for example. And I'm sure the same is done in everyone emulators that work with ULA (and not with loose powder). Otherwise it’s no longer multicolor, and partial multicolor. There is a sea of ​​information. Go to worldofspectrum, everything is there, and even updated.

From Stanislav Lomakin To All 19 January 2007

Hello Lethargeek Let> It’s high time to fully emulate not only percents “from the inside” yes Let> spinning top, but also the bus (clockwise state). And all sorts of “device plugins” Let> will be easier to screw. True, the emulsion will be slow... but Let> it's okay, Vintel has enough stupidity. ;) I'll try it and see how much dope the vintel has :rolleyes; Nov>; Barwise this is of course good, and there’s enough stupidity (and with good Nov> emulator architecture may be better), but here is information on intimate matters Nov> you will still have to look for hardware inside the commands... for what “matters within teams”? Vla> in which of these - many? I am in the process of executing the command HA EACH Vla> A video beam is built in a CYCLE, for example. And I'm sure the same is done in Vla> all emulators that work with ULA (and not with loose powder). Otherwise it's already Vla> is not multicolor, but partial multicolor. Well, I didn’t look at yours, the sources are closed :rolleyes; V; zemu, in the glitch it works up to the ULA opcode. In the US everything is kosher. How did you implement this? ULA jerks hard at every beat, or as in US -- after recording to video memory/port?

From Alexey Goncharov To All 19 January 2007

Hello, boo_boo Intimacy is, for example, LDIR, conditional transitions and generally something more or less "complex". The order in which registers are changed by these instructions varies across clones. Z80, but on different Z80 manufacturing technologies. For accurate emulation, you need it would be to choose a specific percentage.

From Andrey Alexandrovich Titov To All 20 January 2007

Hello NovaStorm Nov> Intimacy is, for example, LDIR, conditional jumps and something else Nov> more or less “complex”. The order in which these instructions modify registers Nov> varies on Z80 clones, and on Z80 manufacturing technology that differs. Unproven, very unproven... :v2_wink2:

From Sergey Akimov To All 20 January 2007

Hello Titus Tit> Quote: Tit> Message from NovaStorm Tit> Intimacy is, for example, LDIR, conditional jumps and something else Tit> more or less "complex". The order in which these instructions modify registers Tit> varies on Z80 clones, and on Z80 manufacturing technology that differs. Tit> Tit> Tit> Unproven, very unproven... I ran zexall on several z80 emulators - the result was depressing. And he Not the most complete testing is being carried out yet...

From Stanislav Lomakin To All 20 January 2007

Hello NovaStorm Nov> Intimacy is, for example, LDIR, conditional jumps and something else Nov> more or less “complex”. The order in which these instructions modify registers Nov> varies on Z80 clones, and on Z80 manufacturing technology that differs. Nov> For accurate emulation, it would be necessary to select a specific processor. this only concerns the notorious MEMPTR, but with him everything is already clear (http://zx.pk.ru/showpost.php?p=44058&postcount=150). about different technologies and strange clones are rumored, but specific specimens have not yet been identified. if you have it, give it here :v2_smile; Err>; I ran zexall on several z80 emulators - the result Err> depressing. And he is not yet conducting the most complete testing... of course. but, fortunately, with the hard Z80 everything is much more pleasant :) there is a small difference (see link above) but in general it’s one hell of a deal :) so it’s quick an indicator of the unfinished nature of some emulators