I worked on an iTV (Interactive Television) project from '96 to mid '98 for Astro (Measat), a Malaysian satellite DBS company (spending nine months in Kuala Lumpur).
Philips was the primary vendor and supplied the head-end video and compression equipment and the set top box (STB).
The company I work for, HD+ Associates was responsible for the entire DBS project. This included project management, systems integration, creating RFPs, selecting vendors, Alpha and Beta testing, business, marketing and contract management. Yes, pretty much everything (including site selection and the design and architecture of the facility itself)
The DBS system went live at the end of '96. The five initial applications were to be part of an interactive package that was to eventually include an Internet over satellite service. All services were designed to run on consumer level STBs (set top boxes) running circa '96 hardware.
The initial interactive applications were: Horse Racing (betting), Home Banking, ETS General, Stock Trading (stock market) and a Lottery application.
I specified and developed the Lottery and the Stock Trading applications. I was also involved in the definition of requirements and the creation of functional specifications for the the Horse Racing and Home Banking applications, which were developed by Philips.
The applications were developed in MHEG5, an authoring environment designed for creating interactive applications for TV.
All applications were multi-screen. The Home Banking application was huge, my Stock Trading application ended up being around 10 or so screens when development finally ended. A PPro 200 took several minutes just to compile and prepare the source files for the simulator. The code itself for one of the more complicated screens in the Stock Trading application was almost 90KB - without any data, logos, bitmaps or icons.
We used the MHEG engine developed by GMD Fokus to debug and test the applications on a PC. All development was done in Windows Notepad. Philips provided an MHEG simulator, that simulated the interactive environment on the G+2 (the generation of STB that Astro was using at the time of launch). This allowed us to use the same remote control as was used by the consumer STBs to run additional tests.
At the time, using MHEG to develop anything more than a simple one or two screen application was extremely slow going. The only authoring tool available was a plugin to xxxx that was being developed by GMD Fokus. Within a couple of months I had to move to Windows Notepad as the plugin did not allow me to implement any of the complicated logic required by the applications (Token Groups spring immediately to mind).
The only reference material available was the MHEG5 specification document. Learning the language involved flipping between the MHEG syntax definition and the appendix describing the ASN.1 notation.
What does MHEG5 code look like? Here is an an extract of a TokenGroup from my Stocks application.
// 6.1 Tokengroup for Controlling the loading
// of text into the lists -------------------//
{:TokenGroup @tkgAFillControl
:InitiallyActive false
:MovementTable (( 1 2 3 )( 1 2 3 )) // Control display of the three Lists
:TokenGroupItems (
( @tAzGeneralFill :ActionSlots(
(
// Set the active stock line to 10010 (first)
:SetVariable( @iAStockLineIndex :GInteger 10010 )
:SetVariable( @iAItemIndex :GInteger 1 )
// Loop through the text objects (happens to be 5 objects)
:Activate( @lAAssignContent )
:TestVariable( @iAItemIndex 5 :GInteger 5 )
:Deactivate( @lAAssignContent )
:SetVariable( @iACurrentStart :GInteger :IndirectRef @iACurrentIndex )
)
)