How to get the current PC value from code?

ZXNet echo conference «code.zx»

From goodboy To All 25 May 2006

Hello fk0 fk0> And for this you generally tear off your hands, be sure to slowly and be sure to fk0> painful. Why such cruelty, only if the rom changes?

From Dmitry Demyanenko To All 25 May 2006

Hello, goodboy goo> why such cruelty, only if the rom changes? With such antics you put the iron workers into a big dead end :)

From TomCaT To All 25 May 2006

Hello hero Can code 201 be found in a character generator? it’s unlikely to go anywhere or will change... By the way, the Call 82 command cannot be replaced by the HALT command? If so the interrupt corrupts the stack below the SP, then the address of the procedure interrupted by it is still the same put it there.

From Robus To All 26 May 2006

Hello TomCaT Tom> Yes, by the way, the Call 82 command cannot be replaced by the HALT command? If so Tom> this interrupt corrupts the stack below the SP, then the address of the procedure interrupted by it Tom> it will be put there anyway. Super!!! Great solution!!! And to solve the problem with IM 2 and so on similar can be done CALL 56!!! I hope I remembered the address correctly BASIC interrupt ??? ...

From Yuri Potapov To All 26 May 2006

Hello Robus ehh young man ld hl,#e9e1 ; pop hl : jp (hl) ; ld de,(#4000) ld (#4000),hl call #4000 ;ld (#4000),de in hl - return address if you suddenly suddenly need to save the contents of memory then you can add what is after the semicolon

From jim To All 27 May 2006

Hello Jerry Oh, this is it! Thanks everyone. Where could this be applied?

From Yuri Potapov To All 27 May 2006

Hello jim Kiso... why did you ask for that? Finally, as a result, I can configure the program... to a specific address

From jim To All 27 May 2006

Hello Jerry gakkon...how do you do it? do you put down the addresses of transitions?

From Andrey Bogdanovich To All 27 May 2006

Hello jim In general, this is actively used in RC plugins; all plugins are configured to work with download addresses. Off the top of my head I can still remember Laser Compact - unpacker self-adjusted.

From jim To All 28 May 2006

Hello Specter Spe> In general, this is actively used in RC plugins, all plugins are configured Spe> to work from the download address. Off the top of my head I can still remember Laser Compact Spe> - the unpacker was self-configuring. But in gens, for example, isn’t it the same principle? Loads to any address. Then works only from this address.

From TomCaT To All 31 May 2006

Hello fk0 fk0> There are no guarantees, however, that it will not be removed, for example, from the register or something fk0> will not dirty the stack yet. That is will the interrupt procedure return from itself not via the stack? Then perhaps there is no guarantee. But if you find out immediately after a call from Vasik, then the call address via USR gets in BC.

From deathsoft To All 1 June 2006

Hello TomCaT Why such complexity, everything is done the same as on x86 call to pop call label1 label1; pop; hl in hl we get the value label1

From Andrey Alexandrovich Titov To All 1 June 2006

Hello deathsoft dea> Why such complexity, everything is done the same as on x86 dea> call to pop dea> dea> call label1 dea> label1; pop; hl dea> in hl we get the value label1 Firstly, call is an absolute jump command, and we do not use absolute addresses we know. :v2_tong:

From deathsoft To All 1 June 2006

Hello Titus Tit> First, call is an absolute jump command Yes, I already realized that I wrote nonsense. I haven’t written anything under the z80 for a long time, so I forgot that the absolute address is written in call. Get used to x86, where all addresses are in jump commands are relative.

From Andrey Bogdanovich To All 1 June 2006

Hello Titus Just for fun, I imagined an interrupt handler that is not on the stack leaves an address. EX (SP),HL LD(WHERE+1),HL POP HL WHERE JP 0 Looks a little unrealistic... but why not?