[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Test: the cycle
On Feb 17, 7:22 am, "ict@ccess" <gids...@sasktel.net> wrote:
> On Feb 17, 2:36 am, Vladimir Ivanov <vlad...@XXXyahooXXX.com> wrote:
>
>
>
>
>
>
>
>
>
> > On Thu, 16 Feb 2012, ict@ccess wrote:
> > > On Feb 16, 7:29 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:
> > >> If there's a one-instruction way, I'd like to know.
>
> > > Have you tried
>
> > > CLC
> > > ROR $C036
>
> > > the rest of the bits are not being used in $C036 and this has no
> > > effect on non IIGS computers
>
> > As I just mentioned, TSB/TRB for 65C02, 65802 and 65816.
>
> > $C036 is full of other bits - there's the slot 4/5/6/7 disk-on control,
> > there's the global shadowing bit, the ROM3 motherboard power-on bit, and
> > even one reserved bit. Usually only slot 6 is set for compatibility and
> > the bank shadowing is zero.
>
> > Modifying with rotate seems catastrophical to me, even if it doesn't bite
> > you at the instant.
>
> > Also, ROR $C036 on non-IIgs computers will toggle the speaker few times.
> > :-) Just as any other access to $C030 .. $C03F.
>
> My Apple IIGS technical reference manual does not even list $C036, but
> even if all these bits are used on startup as you say, then they can
> be preserved since they don't have any immediate effect on any
> hardware, other than possibly the shadow bit. But I notice that
> shadowing does not take effect until something is stored in shadowed
> memory, but turning of shadowing of any screen, text or graphics, ,
> then immediately back on should not show any effects on the screen.
> To preserve the $C036 register without using the accumulator, you can
> do it this way
>
> CLC
> ASL C036
> ROR C036
Missed a CLC
should be
CLC
ASL C036
CLC
ROR C036
So, yes this works
Type in this program and you can hear the difference
300:A2 10 20 20 03 CA D0 FA A0 00 88 D0 FD 18 0E 36
310:C0 18 6E 36 C0 A2 10 20 20 03 CA D0 FA 60 00 00
320:A9 20 85 A4 A9 02 20 A8 FC 8D 30 C0 A9 24 20 A8
330:FC 8D 30 C0 C6 A4 D0 EC 60 D0 EC 60 00 00 00 00
Nothing else is affected and probably only works on a real IIGS
Rob