Timeline for ZX Spectrum interrupt handling: maskable and NMI
Current License: CC BY-SA 4.0
17 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Feb 27 at 14:09 | comment | added | TonyM | (c) In 1984, I designed and built an EPROM programmer to handled about every part on the market (6.5/12/25/etcV) as our firm had a surplus of them. They scrapped 75,000 once-progd EPROMs a year, had a big programming facility. So I do understand programming/erasing EPROMs very well indeed and my NOP comment shows that, so I don't get your comment there. I'd also been low-level programming the Spectrum in assembly for years by then. (d) If you'd like to comment further, please do so in chat instead, thanks. | |
Feb 27 at 14:09 | comment | added | TonyM | @RuiFRibeiro (a) Please let's stay away from personal/angry comments and stick with Be Nice, thanks. (b) Asking for a claim to be somehow substantiated seems reasonable in engineering, nothing personal. I'm keen to find out the reason for the NMI handler. You said you weren't going to look into but I did put the time into looking for your idea and found absolutely nothing on it. It sounds like you're unable to find anything also and I'm afraid talk from decades ago can't be passed on as "fact", which you had. | |
Feb 27 at 0:16 | comment | added | Rui F Ribeiro | @TonyM Demanding proof of something someone read probably back in the day comes across as arrogant. So much more when you show you dont understand how EPROMs are programmed or erased. For those who know, and still lived those 80s wild west times, the story seems plausible enough. | |
Feb 26 at 11:12 | comment | added | TonyM | @RuiFRibeiro, sorry, "facts" then "known folklore" says it. I'm very open to a substantiated explanation, and would like to find one, but you'd have to put forward actual docs or interviews from someone at Sinclair etc to do so. Searches inc. five Spectrum forums found a flat nothing on this. I can get someone once looked at JR xx opcodes and imagination ran. But just as easy and much simpler for Sinclair to NOP (00h) out the JP (HL) in programmed EPROM than play around with JR xx. (Don't get the "entertain your reasoning" bit, I'm afraid, assuming it's just friendly phrasing unusual to me.) | |
Feb 23 at 22:08 | comment | added | Rui F Ribeiro | @TonyM Not "an ideia", facts. A large batch of (E)PROMs was already burnt, and they just changed a single bit for saving time/money, from JR Z to JR NZ, look at the Z80 instruction table. Typical of Sinclair cheap ideas and quick/clever thinking. It has been known folklore for ages, I honestly dont have the time to entertain your reasoning these days, please search for it yourself. I might have read about it two decades ago. | |
Feb 23 at 19:41 | comment | added | TonyM | @RuiFRibeiro, can you substantiate that idea with any evidence? That sounds very implausible because if Sinclair wanted to disable it, it'd be much better to replace it with a RETN or some NOPs and RETN, rather than what was done. | |
Aug 1, 2023 at 11:15 | comment | added | Rui F Ribeiro | @TonyM It is not a mistake, software houses that were given Speccy prototypes asked Sinclair to render the NMI routine useless giving as a reason it could be used to hack software titles. | |
Jun 22, 2023 at 17:53 | comment | added | Alan Cox | True but nobody ever needed the 128K ROM paged in for a game or the magic rst8 ball | |
Jun 21, 2023 at 16:09 | comment | added | matja | @AlanCox pointing I into ROM will work to get an FFFF vector on the 48k ROM but not when the 128k ROM is paged-in (and with external hardware connected which may drive the data bus during INT-asserted) which doesn't have a 257-byte span of FF bytes, in that case I think the answer's method would be most portable between different Spectrum models and hardware, and even other Z80-based systems. | |
Apr 15, 2023 at 23:58 | comment | added | Alan Cox | This answer is slightly wrong. There are circumstances where the value on the bus from the im2 int ack cycle will be random (it's also FF not FE) and your software will crash. Instead you point I at one of the page sized blocks of FF in the ROM, set FFFF to a JR, and put your code from FFF4. | |
Apr 10, 2023 at 20:06 | history | edited | TonyM | CC BY-SA 4.0 |
Correction.
|
Apr 10, 2023 at 9:04 | vote | accept | ozw1z5rd | ||
Apr 10, 2023 at 0:15 | vote | accept | ozw1z5rd | ||
Apr 10, 2023 at 0:15 | |||||
Apr 9, 2023 at 23:39 | comment | added | TonyM | @tofro, when you say 'fiddling with hardware' though, adding an overlay EPROM and programming it is far more work and cost than connecting a single wire up, it's not just a little extra. I know because I've built both for the Spectrum. Do it in software, nice and easy and that's what software's flexibility is for. I did this a load of times, too. | |
Apr 9, 2023 at 23:25 | comment | added | tofro | Well, when you're fiddling with hardware anyways, you could do what the IF1 does - replace the Spectrum ROM entirely as reaction to RST8 - While the shadow ROM is paged in, you own he RST and interrupt vectors. Obviously, that could be a bit of a limitation. | |
Apr 9, 2023 at 23:01 | history | edited | TonyM | CC BY-SA 4.0 |
Typo' fix.
|
Apr 9, 2023 at 22:35 | history | answered | TonyM | CC BY-SA 4.0 |