Re: "Partner 128" by Timeworks Inc.

From: groepaz_at_gmx.net
Date: Wed, 05 Oct 2022 19:00:16 +0200
Message-ID: <9572999.nssfa2V6d4_at_rakete>
Am Mittwoch, 5. Oktober 2022, 18:41:15 CEST schrieb smf:
> NMI is edge triggered, IRQ is level triggered.
>
> If IRQ stays low then it will fire again when you RTI out of the
> interrupt handler.
>
> NMI has no mask, so it only fires when it transitions from high to low &
> there is nothing to stop another NMI from being triggered while the
> handler is still running.
>
> In fact it might be why it's looking for the keyboard scan, if the
> computer is scanning the keyboard then you know that the NMI handler has
> finished.

What strikes me as odd is that they have ALSO the common register bit to
"disarm" the NMI logic. The implementation now only uses that one - and it
works, the register write ACKs the freeze.

One thing i can imagine is that they somehow had bad problems with contact
bounce on that cheap push button - so this cable gives them a cheap way to
wait ~15ms before re-enabling the button to prevent it from firing again right
after the NMI was re-enabled.

BTW, thanks to Raj, i could also implement partner 64 emulation. Purely based
on guesswork this time, so the implementation does probably not exactly show
how the cartridge works :) But the software runs. Also this one does NOT have
that cable, which makes me wonder which cartridge was released first. Another
interesting point is how the software looks very similar - but the code is
totally different - The C64 one uses a lot of subroutine calls using
BRK+databytes, the C128 one instead uses a JSR+databytes mechanism. Both do
not look like handwritten assembler to me, especially the C128 one has
subroutines in it hat imply some sort of stack based high level thing.

--

http://hitmen.eu                 http://ar.pokefinder.org
http://vice-emu.sourceforge.net  http://magicdisk.untergrund.net

why should the assembler know how memory looks like ? I dont get it
<Oswald/Resource>
Received on 2022-10-05 19:05:30

Archive generated by hypermail 2.3.0.