The Interactive Engineer
Volume 4, Number 1, 1995
| In This Issue: | CD-i Developers Conference |
| Homestead: Balboa enhanced |
Table of Contents
| CD-i Developers meet in Düsseldorf | 1 |
| Using the serial port of a CD-i player | 1 |
| PIMC Support | 3 |
| Limitations to Media Mogul Plugins | 5 |
| Programming with Balboa the MS Windows way | 5 |
| 605 TCP/IP Software Configuration | 7 |
| System Error reset with Media Mogul | 9 |
| Griffin Tools | 9 |
| Recent Product Releases | 9 |
| New Media Mogul Features | 9 |
| CD-i Training Courses | 10 |
| About Interactive Engineer | 10 |
| Training Courses Schedule | 10 |
| How to connect to Email | 11 |
CD-i Developers meet in Düsseldorf
Jan Pillaerds
Philips Interactive Media Centre
A major CD-i Conference was recently held in Düsseldorf on 4-7 December 1994.
On Monday December 5th a special developers day was scheduled. This day was dedicated to the technical issues involved in the CD-i title development process. The day was directed towards developers, designers and producers, where the programme was split up in a novice and a an advanced session.
To give you an impression of the issues that were presented, you can find an overview of the programme on page 3.
From several speeches we learned that many developers are making their own tool sets. Michael Jšhnk from Flux Multimedia developed the FluxLib library, consisting of 20 modules and 250 functions for items like pop-up menus and visual effects such as sprites. Several operating system related functions were available but also external device interfaces for a magnetic card reader, as well as general purpose functions like random number generators and math functions. We will describe the development tools used by SPC and Trip Media in more detail later in this article.
The Games Session was very interesting from a technical viewpoint. 'Lazy Dog' Benny Notarianni revealed us how music keeps playing continuously, even though the user may choose several paths through the rooms of 'the seventh guest'. This interaction causes seek times on CD where the audio part may not be interrupted as a result of this delay. He showed us a truly multimedia approach to explaining a technical issue. He used a life-like model of buffered audio play using a looped list of PCL's. The approach to this problem was choosing a buffer large enough to keep on playing while the CD is in use retrieving video data and filling the buffer in time.
From SPC -the vision factory- we learned that they had developed a set of tools and libraries that allows them to quickly construct a fully working model for a game and streamline production to smoothly integrate the efforts of graphics artists, musicians and programmers. Typically the programmer constructs a make-driven environment where the entire building of the disc image is controlled. Conversion and grabbing of graphics, generation of sprite code, creating sound map archives, compiling data files and constructing real-time files is all done automatically.
For example when a graphics artists finalises some sprite frames, all the programmer has to do is to copy the picture file(s) to the appropriate directory, type 'make' and the process is started, ultimately resulting in an updated disc image.
Four man-years of research and development have been put into the creation of a library of routines used when writing performance-driven applications on CD-i. Everything from initializing the system to real-time sound-mixing to video interrupt synchronising is handled by this library. This means that the programmer can concentrate on the actual game code, and doesn't have to worry about the technical details of handling the CD-i system.
Ex-TripMedia technical director Graham Deane supervised the technical development of the basecase title Burn:Cycle, one of the hotshot cyberpunk video adventures now available. He explained the intricacies of how this title was developed. Prototyping and design of the title was done on the Macintosh platform, using Supercard, an easy-to-use graphical development tool. Supercard utilises a scripting language. For this language, he developed a Supertalk script compiler. This approach resulted in a title with full motion video, having no need for a MPEG adapter. Part of this achievement was accomplished by the fact that the separately recorded background is made up of still images, suggesting action and movement by lots of shot changes. The moving video consists of two plane RL movies.
Interesting was the contradiction that seemed to exist between the SPC and the TripMedia speeches. Where the first was eager to strip all data bare-to-the-bone, and program in assembler, the latter chose the approach to develop a compiler for a scripting language, and used C functionality. It is obvious that both ways lead to impressive results.
Another presentation that covered an up-to-date issue was given by Pierre Crookes from Infogrames. He informed us about the caveats and pitfalls that a developer is confronted with when converting a title between different platforms. The example he gave was the International Tennis Open title, created on CD-i and converted for PC CD-ROM and Macintosh CD-ROM afterwards.
The most important advice that he gave us was anticipation. If you anticipate the conversion of your title you will avoid troubling platform dependencies. It is of course important to have a good overview over the ways in which platforms differ, for instance: screen resolutions and colours, audio capabilities, memory availability, layout, and of course CD transfer rate. Be sure to store all original assets in the highest possible definition. Do all foreseeable conversions and translations at one and the same time, when everything is still operational and clear in all minds. The speaker referred to the FPD (Final Product Delivery) Specification that is available from PIMC and which gives guidelines to deliver titles in a way that conversions are facilitated.
NOVICE SESSION
Developers world: size, type of people: Gail Wellington, OptImage
CD standards: Jan Pillaerds, PIMC
General overview Video CD and FMV: Gail Wellington, OptImage
Production process of CD-i: Michael Jšhnk, Michael Tonn, Flux Multimedia
Example of projects: Jürgen Flemming, CD One
FPD: Kris Aelterman, PIMC
ADVANCED SESSION
Tools
GNU: Philips Media
SNASM: Cross Products
NIRD: Jon Piesing, PRL
Interactive titles using DV
Seamless Jump: Simon Blanchard, PRL
Interactive titles using DV
Examples: Bruno Rahir, ICDI
Cross Platform: Charles Golvin, Philips Media; Pierre Crookes,
InfoGrames
GAMES SESSION
7th Guest: Benny Notarianni, Lazy Dogs Studio
Burn:Cycle: Graham Deane, Philips Media
Stefan Posthuma, SPC/CODIM
PROF. APPLICATIONS SESSION
Melrose: Nigel Ward, F.I.G
Bose: Berend Daan, Lost Boys
Tele CD-i: Luc Stakenborg, CD-MATICS
GENERAL SESSION
Developer Services: Willy Smeulders, PIMC
Compatibility and Testing: Marc De Krock/ Frans Penders, PIMC
Video CD 2.0, Gerard Smelt, Philips Media
Tools Overview
Optimage products: Gail Wellington, OptImage
CE2 products: H. Kittel, CeQuadrat
I2m products: Vincent Le Chevalier, I2m
Hal90: Mario Fumagalli, CD Italy
CD-i status and Future: John Hawkins, Philips Media
I only discussed some of the more technically inclined presentations. For the sake of completeness, you can find the whole Developers day program listed above.
All in all the conference was a success in the way in which developers could share their experiences and learn from each other. We're looking forward to future editions!
PIMC Support
Philips Interactive Media Centre (PIMC) offers support to European CD-i developers. The newsletter you are reading right now is part of this Support Program. Other Support channels are Email, telephone and fax.
All European developers entitled to get support from PIMC can use these different channels.
For information about support contracts, please contact your local sales organisation or PIMC support.
Please note the new support fax number: +32 11 242273.
PIMC SUPPORT EMAIL (Internet):
support@pimc.be
PIMC SUPPORT EMAIL (CompuServe):
INTERNET:support@pimc.be
PIMC SUPPORT PHONE:
+32 11 242546
PIMC SUPPORT FAX:
+32 11 242273
PIMC SUPPORT MAILING ADDRESS:
Philips Interactive Media Centre
Support
Maastrichterstraat 63
3500 Hasselt
Belgium
Using the serial port of a CD-i player
Tom Tabruyn
Philips Interactive Media Centre
Many people would like to connect something to the serial port of a CD-i player. They would like to know how to open, use and close the serial port.
The main problem is that an OPEN of a serial port will always work - whether or not there is something (e.g. a terminal) connected to it. But when you start writing to it, it will put the entire application to sleep if the characters waiting to be fetched are not processed.
So I wrote 2 programs: a parent that launches a child. I will first present the child and then the parent.
The child will test the terminal connection by writing a series of test characters to the port, and will:
a. go to sleep (and remain alive) when the characters are not fetched
b. execute and exit (die) if the characters do get fetched correctly.
/*************
* PORT_CTRL *
*************/
#include <stdio.h>
#include <modes.h>
#include <signal.h>
#include "port.h"
main()
{
int terminal_path;
int son_pid;
/* open output path */
if ((terminal_path = open(PORT_NAME, S_IWRITE)) == -1)
fprintf(stderr, "Unable to open path\n");
/* write a test */
write(terminal_path, "Test it", 7);
/* close path */
if (close(terminal_path) == SYSERR)
fprintf(stderr, "close failed\n");
else
fprintf(stderr, "close worked\n");
/* exit son */
fprintf(stderr, "Son exits\n");
exit(0);
}
The parent will - after a small time-out - try to kill his child.
a. If he's able to kill it, this means that the child was alive. So there's nothing attached to the port.
b. If he's not able to kill it, it means that the child already exited. So there is a terminal.
/*************
* PROC_CHECK *
*************/
#include <stdio.h>
#include <modes.h>
#include <signal.h>
#include "port.h"
main()
{
int my_pid;
int son_pid;
long j;
char command_string[128];
char *attached_path;
int dummy;
/* get the correct PID's and launch the son */
my_pid = getpid();
if ((son_pid = os9fork(SON_NAME, 0, 0, 0, 0, 0, 0)) == SYSERR)
fprintf(stderr, "Os9fork [%s] failed\n", SON_NAME);
else
fprintf(stderr, "Parent PID = [%d] --- Son PID = [%d]\n",
my_pid, son_pid);
/* time out */
j=0;
while (j<TIME_OUT)
{
fprintf(stderr, "Waiting ");
j++;
}
/* determine connection upon success of the kill */
if (kill(son_pid, SIGKILL) == SYSERR)
fprintf(stderr, "\nTERMINAL CONNECTED \n");
else
fprintf(stderr, "\nNO TERMINAL CONNECTED \n");
/* deinitialize the port (replacing the OS9 call to "deiniz") */
/* attach the port -- we need the correct handle for the detach call*/
if ( (dummy = attach(PORT_NAME, S_IWRITE)) == -1 )
fprintf(stderr, "Unable to attach\n");
else
{
attached_path = (char *) dummy;
fprintf(stderr, "Attach worked [%p]\n", attached_path);
}
/* detach the port */
if (detach(attached_path) == SYSERR)
{
fprintf(stderr, "detach failed\n");
}
else
fprintf(stderr, "detach worked\n");
/* exit parent */
fprintf(stderr, "Parent exits\n");
exit(0);
}
port.h:
*******
#define SYSERR -1
#define TIME_OUT 30
#define PORT_NAME "/t2"
#define SON_NAME "port_ctrl"
These source files are available through email from PIMC. Please contact support@pimc.be.
Limitations to Media Mogul plug-ins
Robert van Lieshout
Philips Interactive Media Centre
The functionality of Media Mogul can be extended by using some of the plug-ins available. These allow Digital Video playback, use of sound maps on hotspot entry, popup menu's and much more. But these plug-ins need to work within the environment that is set up by Media Mogul and Script to Disc. In some cases, this results in severe restrictions on the assets.
One example of this is the Run length Plug-in Pack. This plug-in contains subroutines to create linked hotspots, animated hotspots, and hotspots that scroll vertically.
Let's have a look at the animated hotspots. This plugin allows you to link full-screen run length animations to hotspots on a Media Mogul menu. Each animation starts when the associated hotspot is entered, and stops after the hotspot is exited. The assets (run length animpack files) can be converted with the anim_maker tool. There is however one severe restriction on the assets: the total length of the animpack files for 1 menu may not exceed the size of a full-screen image (approx. 107 KB for PAL images). This restriction is due to the way plug-ins must interface with Media Mogul: they cannot disregard the way Media Mogul has set up its video environment. Unfortunately, it means that Graphic Designers must take great care to ensure that the animations they make can be sufficiently compressed to fit the available memory.
If you exceed this restriction, anim_maker will return a somewhat cryptic message, that would look like this:
Reading frame 15 This frame is 7696 bytes, and the animation buffer only had 852 bytes of room left.
Couldn't read in frame 15 of 749
So remember to keep your animations simple and short.
Programming with Balboa the MS Windows way
Cees Rooijackers and Hein Zegers
Philips Interactive Media Centre
Balboa developers often have the following problems:
-The only available controls are buttons and sliders
-All resources (such as button size and position) have to be hard coded in 'C'. Hardcoding in C also means that the loadable will grow with the resources.
-There is no equivalent of a Dialogue box. The program flow always has to be hard coded, what makes it difficult to change and maintain in larger titles.
All developers working with Balboa for a longer time tend to make their own libraries on top of Balboa.
In an Esprit project called HOMESTEAD, some libraries were developed, that make CD-i programming just as easy as Windows/PM programming. This set of libraries and tools is called "The Homestead Extended Control Manager" (ECM).
Most of the existing libraries are not documented, what makes them only useful for the person who made them. The ECM libraries, however, come with good documentation and samples of use.
The libraries are normal 'C' libraries, but they were designed with Object Orientation in mind. Therefore, it is quite easy to build C++ classes on top of them.
Buttons and Sliders
The libraries incorporate the following features:
1) Buttons
Apart from the functionality Balboa offers, these buttons can communicate with each other. This eases e.g. making a set of mutually exclusive buttons where only one button can be selected at the same time ("radio buttons").
2) List boxes
A list box or scrolling list consists of a number of selection boxes grouped together in a window, and one or more buttons to allow scrolling them up and down/right and left.
3) Sliders and Gauges
the ECM provides horizontal, vertical and user defined sliders. Each of these has two parts: and indicator and a background, along which the indicator move.
A gauge is identical to a slider, except that its indicator is not interactive i.e. has no hotspot associated with it.
Resource files
User interface elements like buttons, sliders and groups are quite complicated and need a comprehensive set of parameters to define them. If there are many controls in a title then a lot of memory can be used up in storing the control definitions. The ECM libraries use resources, i.e. separate files from the main program, that contain the control definitions. This means that only the controls that are required need to be loaded into memory.
A resource is a structure that contains data representing all the elements of an interactive item or Generic Button. Examples of resources are one-shot buttons, list boxes sliders and dials. The kinds of data that resources typically contain, are hotspots, graphics, text and animation.
Resources can be combined together to make more complex resources - for example, a dial contains two one-shot buttons and a control resource.
Making Resources
Resources files can be made in two ways:
1) By coding the resource in a 'C' module, compile this and convert the object file by means of the PIMA resource compiler.
2) Using CD-i ResTalk
The CD-i ResTalk Language compiler can convert ASCII scripts into resource descriptions. The ResTalk compiler produces 'C' source code from an easy script language. To give an example:
graphic GrObj
filename: "ICONS/gr1.h"
removeColour: 0
end graphic
cursor MyCursor
Colour: VividGreen
end cursor
button MyOneShot
size: 50, 50
location: 200, 100
state active
useGraphic GrObj
end state
state pointed
text: "Help", 20, 20 buffered
useCursor: MyCursor
BufferWrite: true
end state
state selected
audio: Clicksound
end state
state inactive
graphicRemove: GrObj colourRemove
end state
end button
Module Manager
The Module Manager is a methodology, supported by software libraries and tools, for building HOMESTEAD applications in an object-oriented way.
An application is divided into several modules. A Module is a self-contained object within the application. A module may exist stand-alone or with other modules.
By dividing the application into separate modules, it becomes possible to represent the entire application as a series of inter-connected modules, called a map. Each module may then be developed separately and re-used in many different places in the same application. Modules are co-ordinated by the resident Module Manager software. Hence, HOMESTEAD applications can re-use existing modules as well as develop special purpose modules as required.
The Module Manager offers the following key benefits:
• Efficient access to the CD device
• Memory Management functions
• A data-driven design approach
• Seamless transitions between modules
• Fast traversal through applications
One of the key approaches of the Module Manager is its use of a single real-time file (RTF) to store all module data. Each module will use its own real-time file to store its data. When a Module Manager-based application is developed all the separate real-time files are combined and the Module Manager will ensure that the RTF is correctly positioned before each module is executed.
In the following example (see figure), the map comprises four modules. If module B is executing then if it exits with exit code 1 the Module Manager will prepare module C and then execute it. Exit code 2 will prepare and execute module A. When developing modules the exit codes are normally associated with a user function e.g. if modules A, B and C were capable of displaying static pictures then to create a slideshow with code 1 might be associated with scan-forwards and exit code 2 with scan back.
Conclusion
With the help of the ECM libraries it is possible to develop a title much faster than only with Balboa. Since ECM is a 'C' library, one still has a lot of freedom, e.g. to call a database without having to resort to plugin modules.
For more information, you can contact PIMC (support@pimc.be) or: Richard Soppelsa (technical) and Tony Scott (Sales/marketing), tel. +44 (0)71 9113000, fax +44 (0)71 9113040.
605 TCP/IP software configuration
Bob Deblier
Philips Interactive Media Centre
This article explains how you can connect a CD-i 605 player to your TCP/IP network. It is intended for people who have a bit of experience with TCP/IP networking. In order to operate the network software mentioned below, you will probably need the OS-9 professional package from your local Philips Distributor (order number 22SW1675).
Standard Network
We will first describe case 1: The Standard Network (No Subnetting)
Consider the following Sun network:
# hosts file
192.9.200.1 bigserver mailhost nismaster
192.9.200.2 sun_1
192.9.200.3 sun_2
192.9.200.4 sun_3
192.9.200.33 ibm_pc_1
192.9.200.34 ibm_pc_2
192.9.200.65 cdi_605_1
Suppose you have just added this cdi_605_1, and you want to configure it so that you can FTP files to and from the network. To do this, you would have to take the following steps:
1) Open your 605, and remove the board on which the SCSI port is located. Assuming that you stand in front of the machine and thus slide the board out backwards, you will see eight dip switches. From this position, the left dipswitch is the MSB, the right dipswitch is the LSB. A dipswitch set in a position away from you is a logical '1'. A 605 comes with a factory setting of 00000001.The settings on these dipswitches will determine the last byte of both the physical ethernet address and the IP address of your 605 player.
Make sure that you change the dipswitch settings of your 605 before connecting it to your network and turning it on. 605's come from the factory with the dipswitches set to a decimal value of 1. In the case of this example, connecting the 605 straight to the network and powering it on would cause machine 'bigserver' to experience serious problems. IP packets intended for this server will be answered by two machines. This will effectively freeze the whole network, since the connection with the server is down. Even turning off the 605's power may not be sufficient to restore a good network operation. You may even have to reboot the server and its clients.
2) You need an le0 driver module. Furthermore, you need the OS9 program ispconfig to change the settings of this le0 driver (this step is not mandatory, but recommended).
Example:
$ chd /h0/ETC
$ ispconfig -?
ispconfig: Usage: ispconfig [-] [] [-]
Function: Modify the Enet, Inet, and broadcast addresses from
le0 in NVRAM
Where:
default: '/nvr/le0'
? this display
$ ispconfig le0
Old internet address: 192.9.200.1
Change to: 192.9.200.65
New internet address: 192.9.200.65
OK? (Y/N): Y
Write? (Y/N):Y
Module: le0
3) Make an inetdb module. For this module you require certain files, viz. 'hosts', 'hosts.equiv', 'networks', and 'services'. Normally you should have these files somewhere on your OS9 system disk. The file to be adapted is the 'hosts' file. (Note: For Sun network users, a good strategy is to put only the name of the NIS server in here. Later on, you can FTP the hosts file from your Sun NIS server to your 605).
After these files are set up, run 'idbgen.'This OS9 module is in the ROM of your 605, and generates the inetdb module.(Note: Some older 605's have an le0 and inetdb module in ROM. Be sure to set the revision number of modules le0 and inetdb on your system disk higher than these of the modules in ROM. If you don't, you will be stuck with the old module, no matter how many times you load "new" modules.
4) Make a batch file 'startnet', or add the following instructions to your 'startup.prf' file, which is located in NVRAM:
---- Start of File ----
load -d etc/le0 etc/inetdb
ispmode /le0 add=192.9.200.65
mbinstall
telnetd <>>>/nil&
ftpd <>>>/nil&
---- End of File ----
Then, either run this startnet script, or restart your 605 and double-click the system button.
Network with Subnets
We will now look at Case 2: The Network with Subnets
Let us consider the following situation. A company uses class B IP addresses, but due to speed considerations for the network, it has installed several subnets. The machines called gateway_1 and gateway_2 both have two network interfaces, each with its own IP address and name, one in the main net, one in the subnet. These machines function as network routers.
# hosts file
130.144.100.1 bigserver mailserver nismaster
130.144.100.2 sun_1
130.144.100.3 sun_2
130.144.100.4 sun_3
134.144.100.129 gateway_1
130.144.100.130 gateway_2
#
130.144.101.1 gateway_1_net101
130.144.101.2 sun_4
130.144.101.33 ibm_pc_1
130.144.101.34 ibm_pc_2
130.144.101.65 cdi_605_1
#
130.144.102.1 gateway_2_net102
130.144.102.2 sun_5
# etcetera
The netmask for this network has been set like this:
# netmasks file
130.144 255.255.255.0
The networks have been named like this:
# networks file
130.144.100 main_net
130.144.101 subnet_one
130.144.102 subnet_two
If you want to FTP from your 605 to other computers with the installation as described in case 1, you will find that is only possible to reach the computers in your own subnet! If you want to go outside of this subnet, you much use the ipstat command. Tell the 605 that machine gateway1_101 is capable of communicating with the main net:
$ ipstat -a -n main_net gateway1_101
In the same fashion, tell the 605 about subnet two, which is also reached through gateway1_101:
$ ipstat -a -n subnet_two gateway1_101
You could add these statement either to a startnet script, or to you startup.prf file.
System reset error
with Media Mogul
Jaap van Zoest
Philips Interactive Media Centre
A bug has recently been discovered in the new Media Mogul version. When using Media Mogul 2.1 and playing audio, a 605 player may crash unexpectedly with "system reset error".
This can be avoided when you take some precautions while installing Media Mogul for the first time. You should follow these steps:
1. Add the following lines in the mm_customize file on the hard disk. You can use UMACS, VI or another text editor for this:
chx /cd/cmds
chd /cd
date
2. Enter the following command line at a CD-RTOS prompt to check your mm_customize file modification:
list /h0 /mm_customize
3. Press reset on the player
4. Start Media Mogul
Griffin Tools
Graham Trott
Backs Electronic Publishing Ltd
Backs Electronic Publishing Ltd (BEPL) would like to announce Griffin Tools, a medium-to-high level scripting system for CD-i applications, using a Macintosh/MPW and CD-RTOS development environment. This toolset enables fast development and a high degree of flexibility combined with performance close to that obtained using regular 'C' code. A Windows version of the tools is under development and is expected to be available around Easter 1995.
A free sample version can be downloaded from Section 17 of the CompuServe Multimedia Forum library; full documentation and a tutorial with assets are included. If you do not have a CompuServe account but would like a copy on Mac floppy disk, please send your name and address with outline details of your company's CD-i activities to:
Graham Trott
Backs Electronic Publishing Ltd.
Fax: (+44) 1692 500524
email: 100115.1075@compuserve.com
Recent Product Releases
Erik Beerten
Philips Interactive Media Centre
The following new products are now available through your local Philips Authoring Tools Distributor (call us for the list):
• Delta Vx 1.0: MPEG encoding on Mac for D1 & Betacam
• Delta Vc 1.0: MPEG encoding on PC for composite or S-VHS
• MediaMogul 2.1 (see below)
• MediaMogul Studio Package 2.1 for I2M-board in Mac; with I2M board, MediaMogul 2.1, Plugins & Conversion Utilities
• Migration for MediaMogul from CDI605 to Mac
• Script2disc for MediaMogul 2.1 (Mac, OS/9, Sun)
• MediaMogul Mac Pack 2.1
• All MediaMogul plugins have been updated to work with MediaMogul 2.1
• Video CD Toolkit 1.0.2 with Master 4.3 (special discount for owners of Discbuild/Emulate including Master) (PC, Sun, Mac)
• Pink 1.12 multiplexer (PC, Sun, Mac)
• CD-IT!ALL 2.5.1. for writing CD-i, Video CD, CDROM, CDROM-XA & CD-DA discs on CDD521 and CDD522 recorder (Mac, PC)
New Features of Media Mogul
David Ward
Philips UK
The latest version of Media Mogul is now available (Media Mogul 2.1). The following features have been added:
• Analysis
An improvement has been made in the speed of execution of the analysis program.
• Preferences
Alias path names may be used when running a script and analysis.
• Media Mogul Subroutines
Call and Call_bg commands have been rewritten to make performance more consistent when using real-time standard and compacted files
• Cursor Editor
The editor saves changed hit points and activates them when the cursor is over the preview area.
The extra pixel bug has been fixed.
About Interactive Engineer
If you have any comments or ideas about this newsletter, please do not hesitate to contact:
Hein Zegers
Philips Interactive Media Centre
tel. +32 11 242546
fax +32 11 242273
Email: hein@pimc.be
We will warmly welcome any contribution or suggestion!
CD-i Training Courses
PIMC organises special courses for CD-i developers. All courses will be held in Hasselt, Belgium. Training courses can be cancelled when there are less than 4 participants. PIMC reserves the right to reschedule courses.
For prices in your country please contact local Philips representative.
For registration and more information please contact :
PIMC Training
Maastrichterstraat 63
3500 Hasselt - Belgium
tel.: +32 11 242546
fax: +32 11 242273
CD-i Training Courses Planning
Jan. 16-19 1995 (C02)
CD-i Programming With MediaMogul
Jan. 23 - 26 1995 (C03)
CD-i Programming With Balboa
Feb. 01 - 03 1995 (C01)
CD-i Design Principles
Feb. 07 1995 (C04)
Digital Video Principles
Feb. 08 1995 (C05)
Digital Video Hands-On Delta Vx
Feb. 13 - 16 1995 (C02)
CD-i Programming With MediaMogul
Feb. 20 - 24 1995 (C03)
CD-i Programming With Balboa
Mar. 09 1995 (C04)
Digital Video Principles
Mar. 10 1995 (C05)
Digital Video Hands-On Delta Vx
Mar. 13 - 16 1995 (C02)
CD-i Programming With MediaMogul
Mar. 20 - 23 1995 (C03)
CD-i Programming With Balboa
How to connect to Email
There are still CD-i Developers who are not connected to Email. However, electronic communication is almost indispensable for any developer.
CompuServe is one of the several electronic networks. It entails a lively forum about CD-i (Multimedia Forum, section 17: "CD-i"). CompuServe is also one of the easiest ways to communicate with the Support at Philips Interactive Media Centre.
To connect to CompuServe you just need a modem and a Mac or PC. Simply order subscription software at one of the phone numbers:
US: +1 614 457 0802/ 800 848 8199 (toll-free)
UK: +44 272 760680/ 0800289378 (toll-free)
Germany: +49 89 66550 111/ 01303732 (toll-free)
Switzerland: 155 3179 (toll-free)
Israel: +972 3 290466
The Interactive Engineer
| Editor | Hein Zegers |
|
| Contributors | Erik Beerten | |
| Bob Deblier |
| Marc De Krock |
| Jan Pillaerds |
| Cees Rooijackers |
| Tom Tabruyn |
| Graham Trott |
| Robert van Lieshout |
| Jaap van Zoest |
| David Ward |
The Interactive Engineer
is a publication of Philips Interactive Media. Its purpose is to provide up-to-date information on CD-i technology to all supported developers and PIM software engineers
11050 Santa Monica Boulevard
Los Angeles, CA 90025
Copyright © 1995 Philips Interactive Media, Inc.
All rights reserved.
Not to be reproduced without the express written permission of
Philips Interactive Media.