TDL is in use at various vintage computing festivals and conventions. To better understand the needs of the public using TDL at these settings, TDL should be able to provide an audit report after the event. Auditing would collect the following information:
timestamp of when a program was launched
timestamp of when a program returned to TDL, including:
Confirmed (program exited normally and returned to TDL)
Unconfirmed (system was rebooted, TDL crashed)
Each minute the program was actively in use
(Program activity is not possible to collect reliably, but one possible implementation could involve hooking the system timer 18Hz interrupt to wake up once a minute to check keyboard buffer contents and mouse X/Y location, and if either are changed from the last sample, note it as active. Joystick activity collection is not possible because joystick port reads are done with interrupts disabled, although button presses could be monitored.)
An audit report can then be generated after the session is over, and would display the following:
All programs launched, sorted by launch frequency (ie. # of times launched)
All programs launched, sorted by program duration in minutes
A human-readable log of the entire session (program, start time, end time, active minutes)
Note: It is implied that TDL will be in the system's C:\AUTOEXEC.BAT for this to provide meaningful results. Also, if the system date and time are not set properly at every system boot from a battery-backed clock, only the launch counts and activity duration will be accurate.
Implementation:
Auditing will be enabled via AUDITING=ON in TDL.INI
AUDIT.DAT with titleID, titleHash, start time, end time, number of minutes active, confirmed
New entry added as a game is launched, and updated upon return or a new start of TDL
An end time equal to the start time means the end time was never recorded and must be adjusted; this would be the case if the user rebooted the computer instead of exiting a program cleanly.
A number of minutes equal to $FFFF means program activity could not be determined
C:\ACTIVITY.DAT with the activity log, one byte per minute
Is recreated on every new program launch
0=not active, 1=active, FF=start of collection, any other value is ignored
Does nothing if INDOS is set, to prevent crashes
TDL -s to generate a summary report of whatever is in the AUDIT.DAT
All interrupt hooking must be performed by a TSR loaded before TDL, because otherwise TDL's swapping mechanism would swap out the interrupt procedure(s). The TSR will be controlled (init, start, stop) via multiplex messages sent to it via normal int 2f multiplex calls.
TDL is in use at various vintage computing festivals and conventions. To better understand the needs of the public using TDL at these settings, TDL should be able to provide an audit report after the event. Auditing would collect the following information:
(Program activity is not possible to collect reliably, but one possible implementation could involve hooking the system timer 18Hz interrupt to wake up once a minute to check keyboard buffer contents and mouse X/Y location, and if either are changed from the last sample, note it as active. Joystick activity collection is not possible because joystick port reads are done with interrupts disabled, although button presses could be monitored.)
An audit report can then be generated after the session is over, and would display the following:
Note: It is implied that TDL will be in the system's C:\AUTOEXEC.BAT for this to provide meaningful results. Also, if the system date and time are not set properly at every system boot from a battery-backed clock, only the launch counts and activity duration will be accurate.
Implementation: