Posts 2 and 3 are correct. I sent in a request strait to the UEFI forum, describing such an interface, but they told me they couldn't make it apart of the UEFI specification simply because it has to remain as vendor-generic as possible. But they were at least open to the idea. They said they'd see what they could do. It is not possible at all for a PC BIOS implementation to have a TTS interface at all. It is simply too abstract for that. The problem that you must understand about this problem is that:
* for the BIOS, your processor is still in real mode (16-bit mode), so only has access to the first 1MB of memory. Loading any other apps into that small of a memory space would be nearly impossible, if not completely so.
* The UEFI specification does require that all implementations run in 64-bit mode (also known as "long mode"); however, a TTS interface would require a sound interface. UEFI does not require an implementation to have such an interface. This would also require a runtime service to be implemented (no, not a boot service). There are some requirements for these services from section 8.1:
All of the Runtime Services may be called with interrupts enabled if desired. The Runtime Service functions will internally disable interrupts when it is required to protect access to hardware resources. The interrupt enable control bit will be returned to its entry state after the access to the critical hardware resources is complete. All callers of Runtime Services are restricted from calling the same or certain other Runtime Service functions prior to the completion and return of a previous Runtime Service call. These restrictions apply to:
Callers are prohibited from using certain other services from another processor or on the same processor following an interrupt as specified in Table 34. For this table ‘Busy’ is defined as the state when a Runtime Service has been entered and has not returned to the caller.
Alternatively, a sound interface could be implemented as a protocol, though I'm not sure how this could be done. Unfortunately, the UEFI specification does not define such a protocol in chapters 9-21 of the specification. Therefore, it is up to the vendor to implement the interface.
"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question." — Charles Babbage.
My Github