Exit after NMI
ZXNet echo conference «real.speccy»
From Eugene Palenock → To All 4 March 2001
Hello, All!
I'm redoing TRDOS here... I decided to use the Magic button as a pause
(just don't bother me about /WAIT, that's not the point).
And now I'm thinking - through which address is it better to return control?
For now, I'm thinking of recording at 4000h - EDh, 45h and after JP 4000h.
But what doesn't the software like more?
- damage to two bytes on the screen (and the screen can be 7)
- use of resp. sis. lane TRDOS (and the program can kill TRDOS)
- use the address before the stack (and the stack can be calculated byte by byte)
* Original written in CODE.ZX
* Copied in ZX.SPECTRUM
* Copied in REAL.SPECCY
Regards, Evgeniy.
From Alexey Kravchenko → To All 4 March 2001
04-Mar-01 07:01:33, Eugene Palenock wrote to All
on the topic: Exit after NMI
EP> Hello, All! I'm redoing TRDOS here... I decided to use the Magic button as a pause
EP> (just don't bother me about /WAIT, that's not the point). And
EP> I’m thinking - through which address is it better to return control? For now, I'm thinking of recording an EP at 4000h - EDh, 45h and after JP 4000h. But why doesn't the
EP> software like it anymore? - damage to two bytes on the screen (and the screen can
EP> be 7) - use of the corresponding. sis. lane TRDOS (and the program can
EP> kill TRDOS) - use the address before the stack (and the stack can
EP> be calculated byte-by-byte)
Indeed, in my opinion it’s better to use the screen, but why use a 2-byte
RETN command, you can just RET - on Spec it doesn’t
matter what variation of RET to exit interrupts ;-).
From Kirill Frolov → To All 4 March 2001
04 Mar 01 07:01, Eugene Palenock wrote to All:
EP> I'm redoing TRDOS here... I decided to use the Magic button as a pause
EP> (but I don't need to talk about /WAIT, that's not the point).
EP> And now I'm thinking - through which address is it better to return control?
I didn't understand anything. Explain more specifically. Look how it was done in tr-dos 5.12/13
.
EP> For now, I’m thinking of recording in 4000h - EDh, 45h and after JP 4000h.
RETN
JP 0x4000
WHY? :-/
This RETN can’t be put into ROM anymore??? The return address will be in RAM anyway.
EP> But what doesn’t the software like anymore?
EP> - damage to two bytes on the screen (and the screen can be 7)
For some software it’s fatal.
EP> - use of the corresponding. sis. lane TRDOS (and the program can kill TRDOS)
Likewise.
EP> - use the address before the stack (and the stack can be calculated byte-by-byte
EP>)
No matter how it is calculated, you will already waste at least 4 bytes in it.
I think that a dozen more are possible. Because programs calculated by
bytes
will no longer work.
From Kirill Frolov → To All 4 March 2001
04 Mar 01 16:02, Alexey Kravchenko wrote to Eugene Palenock:
AK> Indeed, in my opinion it’s better to use the screen,
No.
AK> why use the 2-byte RETN command, you can just RET - on
AK> Speca has no meaning, for what reason variations of RET to come out of
AK> interrupts ;-)
And in the Spectrum they install nothing other than pure-Spek zetniks...
In a normal Z80 RETN also restores the interrupt flag.
From Eugene Palenock → To All 4 March 2001
AK> Indeed, in my opinion it’s better to use the screen, why use a 2-byte
AK> RETN command, you can just RET - on the Spec it doesn’t
AK> have any meaning, by what variation of RET to exit interrupts ;-)
It does. Because interruptions are non-maskable. With /NMI, interrupts are prohibited, but by
RETN their status is restored.
AK> ps: what is the purpose of remaking the hole-dos, just
AK> interesting???
Well, the basic 5.04T plus various routines for direct access to ports
(#3CC0,#3CC3,#3FF0,#3FF3) and the Magic menu - cancel/magic/enter jar and addresses
for JP there (you can place STS there) But in general there is no goal, just
a good mood ;)
Sincerely, Evgeniy.
From Kirill Frolov → To All 5 March 2001
EP> Well, the basic 5.04T plus various routines for direct access to ports
EP> (#3CC0, #3CC3, #3FF0, #3FF3) and the Magic menu - cancel/magic/enter a jar and
EP> addresses for JP there (you can place STS there)
5.04 is a bad option. IMHO.
I would suggest making a program like this (in ROM): so that the memory image
128kb
(Z80, SNA, etc.) is written to the ram-disk and runs a clean tr-dos or
loads
another image. Well, I hope you saw MagOS on Scorpio? Pseudo-multi-tasking
is like this
. And no need to say that it is useless. A very useful thing, I played so much in
"Stalker"...
(they killed people there all the time).
EP> In general there is no goal, just a good mood ;)
Don't waste time...
From Sergey Selev → To All 6 March 2001
March 5, 2001 Kirill Frolov and Eugene Palenock talked about Exit after NMI
KF> I would suggest making the following program there (in ROM):
KF> so that a 128kb
KF> memory image (Z80, SNA, etc.) is written to the RAM disk and runs
KF> clean tr-dos or loaded
KF> another image. Well, I hope you saw MagOS on Scorpio?
I have had this for a long time, although it transfers control to the cache. Work with
.ram is carried out using the magic service, which I pasted into
commander for convenience. KF> Pseudo-multitasking is like this
KF> here. And no need to say that it is useless. A very useful
KF> thing, I played "Stalker" like that...
Or you're sitting in the CV and you're cutting yourself off, but the point is bursting...
Well, till next time...
██▓▓▓▒▒▒░░░ ╔══ Sergey aka Cyber from Cobra Software ══╗
█▓▓▓▒▒▒░░░ ╚══════ 500:322/62 ════ 2:462/167.62 ══════╝
... [I ZX] [Beer] [Storm] [No RAR allowed] [ZXNet] [FidoNet] [Offspring]
From Pawel Kislyak → To All 7 March 2001
Eugene Palenock ==========> All:
EP> I'm redoing TRDOS here... I decided to use the Magic button as a pause
EP> (just don't tell me about /WAIT, that's not the point).
EP> And now I'm thinking - through which address is it better to return control?
EP> For now, I'm thinking of writing to 4000h - EDh, 45h and after JP 4000h.
EP> But what doesn’t the software like more?
EP> - damage to two bytes on the screen (and the screen can be 7)
EP> - use of the corresponding. sis. lane TRDOS (and the program can kill TRDOS)
EP> - use the address before the stack (and the stack can be calculated byte-by-byte
EP>)
Whatever you say, the stack will still be corrupted, the return address
and the registers used in the handler will fall on it. At a minimum,
8 bytes will be corrupted (return address, AF, HL registers and the RETN command), and there may
be sprites... You can do it to corrupt 4 bytes:
EX (SP),HL
PUSH AF
LD A,H
CP #40
JR C,STACKRET
POP AF
EX (SP),HL
RETN
STACKRET; if the return address is in ROM, then there are clearly not sprites under the stack,
; and you can use it for RETN with a clear conscience.
Bye!
Pa...@nm.ru realsoft.nm.ru [RC 2.0 47%] [ZX] [Real Software]
From Kirill Frolov → To All 8 March 2001
06 Mar 01 16:51, Sergey Selev wrote to Kirill Frolov:
KF>> launched a clean tr-dos or loaded another image. Well, have you seen MagOS on
KF>> Scorpio, I hope?
[...]
SS> Or you’re sitting in the CV, cutting yourself off, and the point is bursting...
An idea has arisen. If we could add another spec to the spec... Well, like an expansion
board with a Z80, 128kb memory, 7ffd port, ROM... Well, it should have a common memory with the
main
processor. And video memory, tr-dos, etc. he doesn't need it. It would be possible
to launch a bbs/terminal in this microspectrum and at the same time use
the computer as you want. Just
you need to figure out the disk drives and modems - who will manage them and how.
From Sergey Selev → To All 8 March 2001
KF> A thought arose. If we were to put another
KF> spec into the spec... Well, like an expansion board
KF> with a Z80, 128kb memory, 7ffd port, ROM... Well, the memory should be
It would be better to install a meter right away, I would be broke to install 8 RUSHES.
I once had such an idea, but for this I need another mother.