ISCOVE%UTOROCI.bitnet@ugw.utcs.utoronto.ca (09/01/89)
Here is an update to NoClick3.3 that should work with any
680x0 cpu. It adjusts the offset of the pointers to the task
stack if the system is running on a 68010/20/30 cpu. Thanks
to Dwight Blubaugh for identifying the stack frame problem.
The source is included only for the modified section.
begin 644 NoClick3.5
M```#\P`````````!``````````````!1```#Z0```%%(YS\^+'@`!'P!1_D`6
M``$N2?D```#\3J[_B$'N`98B3$ZN_NPFP"!`9O1'Z__\0>X!I%'._^I.KO^"P
M2?D```$N80``L"!K`$:Q_`#X``!C``":0?D```#\<`!R`$/Y```!#DZN_D1F\
M``"")GD```$B0_D```$.3J[^/B)K``J2_``8)!%822!1D,)V`#8(5D,@`W(!`
M3J[_.B)`Y$L@0B+84<O__"I`"&T`!P$%.WP,@!HX>``Z+@$H9P)X!$GY```!K
M+F$N)'-`1I7"V\I.KO^()XU`1DZN_X)A&&<.3J[_B">-0$9.KO^"8.Y,WWS\I
M<`!.=2)<)FD`-B`)3G5T<F%C:V1I<VLN9&5V:6-E`````````````````````
M````````````````````````````````````````````````````3G$```/LN
M````"``````````,````$@```#P```!4````7@```&P```!R````O@``````P
#``/RU
``
end
size 408
*-----------------------------------------------------------------------*
* Fix each task's exit vector to point to ram version *
*-----------------------------------------------------------------------*
checkcpu:
moveq #0,d4 ;d4 = 0, offset for fixptrs
move.w 296(a6),d5 ;AttnFlags = 0 if cpu is 68000, set cond.
beq.s fixptrs ;branch if cpu is 68000
moveq #4,d4 ;d4 = 4 if not 68000
fixptrs:
lea tasks,a4 ;a4 = address of task list
bsr.s nextset ;a3 = tc_SPReg for listed task
move.l $46(a3,d4),a2 ;a2 = finalPC, td code that task exits to
sub.l d2,a2 ;a2 = offset of code from start (d2) in rom
add.l a2,a5 ;a5 = corresponding address in ram copy
jsr _LVODisable(a6)
move.l a5,$46(a3,d4) ;replace corrected finalPC pointer
jsr _LVOEnable(a6)
fixloop:
bsr.s nextset
beq.s exit ;exit on a1 = 0 (address next listed task)
jsr _LVODisable(a6)
move.l a5,$46(a3,d4) ;replace corrected finalPC pointer
jsr _LVOEnable(a6)
bra.s fixloop
Norman Iscove iscove@utoroci (bitnet)