For discussions about development of TAPs, patches and other software for the Toppy

Moderator: Technical

Post Reply
EMJB
Frequent contributor
Posts: 3645
Joined: Fri Jul 08, 2005 9:43 am
Location: Maldon Essex

TAP_SystemProc()

Post by EMJB »

Can someone please clarify whether this returns control to the calling TAP:

(a) When the highest level pending task (e.g. keypress processing) is complete

or

(b) When all other pending tasks are complete

or

(c) When all other pending tasks have been completed, and every other TAP has received an idle event

or

(d) Something else I haven't thought of

TIA,

EMJB
R2-D2
Frequent contributor
Posts: 12148
Joined: Mon Dec 18, 2006 11:15 am
Contact:

Re: TAP_SystemProc()

Post by R2-D2 »

It does things in this order:
  • processes a pending serial input (passing to TAPs [EVT_UART] then to the Command Console, if necessary)
  • processes a pending high-level internal event (button press, etc.)
  • processes any low-level message (EIT processing, etc.)
  • terminates any exiting TAPs
  • sends an EVT_IDLE to the next two TAPs that are due one
  • services any TSR timers that are due (sleep timer, current programme update, etc.)
Your TAP may get an EVT_IDLE from this call, so you need to be able to cope sensibly with the re-entrancy.
EMJB
Frequent contributor
Posts: 3645
Joined: Fri Jul 08, 2005 9:43 am
Location: Maldon Essex

Re: TAP_SystemProc()

Post by EMJB »

R2-D2 wrote:It does things in this order:
  • processes a pending serial input (passing to TAPs [EVT_UART] then to the Command Console, if necessary)
  • processes a pending high-level internal event (button press, etc.)
  • processes any low-level message (EIT processing, etc.)
  • terminates any exiting TAPs
  • sends an EVT_IDLE to the next two TAPs that are due one
  • services any TSR timers that are due (sleep timer, current programme update, etc.)
Your TAP may get an EVT_IDLE from this call, so you need to be able to cope sensibly with the re-entrancy.
Thanks for the clarification - seems very odd that only the next two TAPs get idle events as the calling TAP.

EMJB
Geoff Bacon
Frequent contributor
Posts: 4663
Joined: Fri Jan 12, 2007 12:21 am
Location: Bristol
Contact:

Post by Geoff Bacon »

As I read it, the calling tap isn't guaranteed to get an idle event; it only get one if it is in the next two taps waiting for the event.

Geoff
TopManager program
TF5800, TS On, F/W: MS6 Recommended F/W 12/9/2009 -Sy+EvEzPePfUUuZ
TAPs: PcControl B1.4; StopExit v1.01; MHEG On/Off A3; QuickJump 1.72; EIT Sub (Game) v0.6; SecCache (UK) v0.4; EPG2MEI v0.96; Font Manager 1.0d; Extend v1.7; WSSkiller V2.12d; MyInfo B5.6; fsSave 1.1; PruneEPG 1.0; MyStuff 6.6-1;
Sig generated by EMJB's MyInfo.tap on 3/5/21
R2-D2
Frequent contributor
Posts: 12148
Joined: Mon Dec 18, 2006 11:15 am
Contact:

Re: TAP_SystemProc()

Post by R2-D2 »

EMJB wrote:seems very odd that only the next two TAPs get idle events as the calling TAP.
This helps keep things responsive, I suppose, by spreading the TAP load a bit more and allowing more system tasks in between all that TAP processing.
Post Reply