This is a rough guide missing the pictures. It's for quick search and reference as basically I am tired of having to answer so many questions :icon_bigg. ---------------------------------------------------------------------------------------- CD Emulator Manual The Development System Tool to which this manual relates is supplied pursuant to and subject to the terms of the Sony PlayStation Licensed Developer Agreement. This manual is intended for distribution to and use only by Sony PlayStation Licensed Developers in accordance with the Sony PlayStation Licensed Developer Agreement. The information in this manual is subject to change without notice. Unauthorised reproduction, distribution, lending, rental or disclosure to any third party of the whole or any part of this manual is expressly prohibited by law and by the terms of the Sony PlayStation Licensed Developer Agreement. The content of this manual is Confidential Information of Sony for the purposes of the Sony PlayStation Licensed Developer Agreement and otherwise. PlayStation and Sony Computer Entertainment names and logos are trade names and/or trademarks and/or copyright artwork of Sony Corporation (or its subsidiaries). © 1994 Sony Electronic Publishing Limited/Sony Computer Entertainment Inc. Ownership of the physical property of this manual is retained by and reserved to Sony Electronic Publishing Limited. Alteration to or deletion from all or any part of this manual, its presentation or its contents are prohibited. Published Feburary 1995. Sony Computer Entertainment America 919 East Hillsdale Blvd. Foster City, CA 94404 Emissions information. The PC ISA card supplied with this manual has been tested for, and complies with, the following emission regulation standards. For Europe - EN 55 022 Class A Information Technology Equipment. For Germany - VDE 0871/6.78 Class A GERMAN RFI DECLARATION FOR CLASS B SELF-CERTIFICATION Hermit wird bescheinigt daß der Psy-Q CD Emulator PSYQ/PSX04 in Übereinstimmung mit den Bestimmungen der Vfg 243/1991 funk-entstort ist. Der Deutschen Bundespost wurde das inverkehrbringen dieses Gerates angezeigt und die Berechtigung zur Uberprüfung der Serie auf Einhaltung der Bestimmungen eingeraumt. Psygnosis Ltd, South Harrington Building, Sefton Street, Liverpool England L3 4BQ We hereby certify that the Psy-Q CD Emulator PSYQ/PSX04 complies with the RFI suppression requirements of the Vfg 243/1991. The German Postal Service was notified that equipment is being marketed. The German Postal Service has the right to re-test the equipment and verify compliance. Also this device was tested and complies with the CFR Title 47, FCC Rules, part 15, subpart B, Class A (Digital Devices). Awaiting certification. VCCI Class 1 Information Technology Equipment. This equipment is Type 1 Data Processing Equipment and is intended for used in commercial and industrial districts. When used in residential districts, or their peripheral areas, radio and TV receiver units may be subject to radio interference. VCCI-1 Information in this document is subject to change without notice. No part of this document may be transmitted in any form or by any means, electronic or mechanical, for any purpose, without the express permission of Psygnosis Ltd. © 1993,1994 Psygnosis Ltd. All rights reserved. Psygnosis Ltd. South Harrington Building, Sefton Street, Liverpool L34BQ Introduction I N T R O D U C T I O N This CD Emulator has been designed for use exclusively with the Sony Playstation Development tool DTL-H2000. If you incorrectly install this equipment or attempt to connect it to devices other than described herein, you may destroy this emulator and the equipment it is connected to. We recommend that you install the DTL-H2000, libraries and Psy-Q development software first, and take time to familiarise yourself with how it functions prior to installing the CD-emulator. Please take a few minutes to read the following chapter describing the emulators design and function. An understanding of the system components and how they function will lead to a quicker and easier installation. As part of our commitment to you the developer, we have designed this system with flexibility and upgradability in mind. We have tried to include all the functions we think you may require in the development of CD based products. However, if there are functions that you feel are missing, the Playstation development support group for your territory will be happy to forward your suggestions to us. We cannot guarantee that all suggestions will be included in future updates but we will do our best to try. System Overview SYSTEM OVERVIEW Once installed, the emulator will provide you, the user, with a device that mimics the functions of a real CD-Rom drive. Normally the command signals generated by the DTL-H2000 would go directly to a CD- Rom drive, which would respond and retrieve data from a CD. However, the DTL-H2000 can be configured (under software control) to switch these command signals so that they are sent to the CD emulator. The emulator then responds as if it were a CD-Rom drive, but in this case retrieving data from a hard drive connected to the emulator. This emulator consists of three (logically) different sub sections:- the emulation hard drive(s) an interface to the PC an interface to the ‘CD command channel’ Within the electronics of the emulator we have implemented a SCSI bus which connects each of the above sections in the following way:- DTL-H2000 CD PC Command/Data Channel Command/Data Channel (ISA Bus) SCSI BUS Fig 1. Up to eight ‘devices’ can be connected to a SCSI bus. In this design we have used two of the eight ‘devices’ to implement command channels to and from the PC and the DTL-H2000, leaving six free for connection to emulation hard drives. We do not anticipate many users will need more that one hard drive (HD). However, if you do wish to connect more than one HD then please refer to chapter 7. The emulator has been designed so that either external or internal HDs can be connected. Internally using the 50 -50 ribbon connector and/or externally using the 1 m cable. External connection is very simple using the cable provided, however, internal connection requires a little more work in mounting the HD in a free drive bay and routing of the cable. System Overview To be able to emulate a double speed CD Drive a certain data transfer rate needs to be maintained between the emulation HD and the DTL-H2000 CD command channel. We have found that some hard drives cannot maintain this data transfer rate. The manufacturer’s specifications for HDs declare an average rate which may seem enough to satisfy the emulators requirements. However, most drives need to re-calibrate themselves periodically to account for thermal changes. During this period the data rate on some drives fall off and lead to stalls in the emulation data flow. This is observed as glitches in film playback or interruptions in sound replay. Currently the only ones we have tested and found reliable are :- Micropolis 411 0AV *IBM Spitfire (0662) *IBM Pegasus *Please ensure that the auto start jumper is set prior to use of any IBM drive or it will not appear to work. Drive manufacturers are constantly updating their range of drives; please contact Sony Technical Support for a list of currently available drives. (Initially we recommended the Digital DSP31 07L hard drive. However during extended testing we have found that after resetting, the drive occasionally re-calibrates after 30 seconds. This causes a once only stall in the data flow, after this the drive operates within specifications.) Now you have a basic understanding of the system the next thing to do is get it installed and working. The following chapter describes the following installation steps:- i how to configure your emulator card. ii plugging the card into the PC iii connecting the emulation HD iv connecting the emulator to the DTL-H2000 v installing the software vi setting up the emulation HD ready for image building and emulation vii building and testing the example program. and once complete the CD emulator is ready for use. Installing the System INSTALLING THE SYSTEM The Psy-Q CD emulator board should be fitted into an empty 16 bit slot in the host PC. CAUTION: This board is sensitive to static electricity; hold by the metal support bracket when handling it. The Connectors C1 external SCSI connector C2 CD command channel (connects to DTL-H2000) C3 internal SCSI connector J1 & J2 DMA channel select ( both must be set the same ) Possible settings are (from left to right) 7,6 or 5 J3 Interrupt request setting. Possible settings are (from left to right) 15,12,11,10,7 and 5 J4 I/O base address select. Possible settings are (from left to right) 300,308,310,318,380,390,398 J5 SCSI ID device number (also software selectable) Possible settings are from 7-0. This is a 3 bit binary selection so with the top two jumpers closed the ID will be 6 [ J5 is set to 7 (all three jumpers connected). This is the PC command channel device number. See Fig 1. Note: this is also configurable from the command line.] The default settings have been chosen so that the possibility of contention with other internal boards is minimised. Nevertheless, care should be taken that settings on the Psy-Q CD emulator board do not conflict with any other cards in your system. Turn off your PC and disconnect from the supply. Remove the cover and check all the cards in your system noting down their base addresses, irq settings and dma channel usage. Determine which channels/addresses are free and set the jumpers on the emulator card appropriately. Install the emulator board in an ISA slot adjacent to the PIO board of the DTL-H2000. Referring to Fig 2. connect between C2 and the similar socket on the top edge of the PIO board using the small ribbon cable provided. To External Emulation Hard Drive CD Emulator Board PIO Board} DTL-H 2000 CPU Board Fig 3. If you intend to use an internal HD with the emulator, then now is the time to mount it in a free bay. Connect it to the emulator board using the large ribbon cable provided (connector C3). Normally there is a free power connector for extra drives within the PC, connect this to the power socket of the HD. Note down the SCSI ID setting of the drive you will need this later (refer to manufacturer’s instructions on how to set this). Replace the cover on the PC. If you are using an external drive then connect this now. Note NEVER connect or disconnect any hard drives without first removing ALL sources of power. 3.1 Installing the software You will have already created a PSYQ directory into which you have copied the assemblers etc. Copy all the files from the CD-Emulator disk into this directory. e.g. COPY A:*.* C:\PSYQ DEXBIOS.COM is a driver which you will be familiar with. It allows the code development system to communicate with the DTL-H2000. Similarly, we have provided CDBIOS.COM to provide communication services to the CD emulator (in addition to DEXBIOS.COM, not as a replacement). You will probably have installed DEXBIOS.COM by adding a line to your AUTOEXEC.BAT file which automatically loads DEXBIOS.COM. The addition for CDBIOS is of the form:- CDBIOS /aADDR /dDMA /iIRQ, where ADDR is the I/O address, DMA is the dma channel and IRQ is the interrupt request number of the board. (Refer to Fig 2.) For Example:-. CDBIOS /a308 /d7 /i15 will install the driver to use the emulator board with its factory settings. Preparing for Emulation PREPARING FOR EMULATION How to use CDDISK. 4.1 CDDISK Introduction CDDisk is the general emulation disk manager program, performing these functions - Initialisation of the HD Installation of the emulator card ‘emulation program’ Partitioning of the HD(s) into pseudo ‘CDs’ Setting the ‘active’ partition. It operates in one of two modes, direct command line actions or menu mode and takes the general command line form - CDDISK [option] [disk SCSI ID] Valid options are -a<part_id> - b<filename> - n and set the active partition (No menus) (Re) Install the emulation program (No menus) Disk is new, initialises the partition sector ‘disk SCSI ID’ is the ID number set on the emulation HD. Generally HDs are shipped with an ID of zero and can be plugged without change into the emulator card. However, when using more than one HD then special installation instructions need to be followed (see chapter 7) and its ID must be different from each of the ‘devices’ on the local SCSI bus. ( Free IDs are 1,2,3,4,5) For the following examples it will be assumed that the Hd has an ID of 0. So when the system is first installed, or a new HD is added, then it must be initialised with the following- CDDISK -n 0 This places the disk into a known state ready to accept emulation images. The user will then be asked to confirm this action because ALL information previously written will be destroyed. 4.1.1 Installing the emulator ‘ boot’ data The ‘cd command/data device’ will, upon reset, make contact with each device on the bus in turn from device 0 -7. It is looking to identify an emulation HD and once found it then looks for a ‘boot’ partition on that device. Data in this (small) partition is then loaded into the emulation card. This is the emulation program that interprets the signals coming from the DTL-H2000. Booting in this way allows for future upgrades to the emulation system should it be necessary. Only one of these ‘boot’ partitions needs to exist in multiple HD configurations and it is recommend that it be placed onto the HD with the lowest SCSI ID. NOTE: without this ‘boot’ partition in place the emulator CANNOT function. Assuming the emulator software was installed as described above then... To install the ‘boot’ program directly - CDDISK -bC:\PSYQ\CDBOOT.BIN 0 If this command was completed successfully then it will return without errors. To install the boot program using the menu system - CDDISK 0 Please select the ‘Load Boot Program’ option from the menu. Type in the full pathname to the file CDBOOT.BIN e.g. C:\PSYQ\CDBOOT.BIN Providing all is well no errors will be reported. 4.1.2 Creating partitions A partition on the emulation HD is effectively a pseudo CD. It is not limited to being a standard CD size of 72 Minutes for example but can be any size. This provides flexibility for the developer who may only require an effective 10 minute CD but wishes to have 5 versions or one CD of up to 99 mins. ( there is little point in defining a partition larger than this because the CD directory structure does not cater for this.) Partitions can be defined in units of either MBytes, Frames (CD frames) or Sectors. One Frame is 5 sectors (allowing for extra information needed for emulation), there are 75 frames per second. From this information you can calculate the size of partition you require. For Example - a 60 Min CD will require a partition size of 270,000 frames or 1,350,000 sectors or 660 Mb. So to create the first partition on disk 0, use- CDDISK 0 Please select the ‘Create Partition’ option from the menu. Select the size type you wish to define this partition in. 1 for sectors 2 for Mbytes and 3 for frames. We will define this one in frames so enter 3 and then type in the size. For this example we will define a 60 min CD needing 270000 frames. To allow for easy identification you will now need to provide a partition name. e.g. 60 Min CD. You will now see this added to the list. Partition 0 being the boot partition and partition 1 being 60 Min CD. 4.1.3 Setting the active partition The act of creating this partition (above) has made this the currently active partition. this means that when the DTL- H2000 issues CD commands it is from currently active partition that the data is read. Only one partition on each HD can be marked active at any one time and can be viewed as being equivalent to inserting a real CD into a drive. If you have more than one HD then the active partition on the HD with the lowest number ID will be considered as the current partition. Activating partition 0 (the boot one) effectively de-selects all partitions on that HD. To set an active partition - e.g. Disk 0 partition 1 CDDISK -a1 0 or CDDISK 0 select the ‘Select active partition’ option from the menu and type 1 You will notice that the currently active partition is indicated in red. 4.1.4 Modifying partition sizes This can only be achieved through the option menus. Select the partition you wish to resize and enter the new size (only in sectors!). NOTE re-sizing a non-active partition will NOT set it as the active partition. 4.1.5 Deleting a partition Select the partition number of the partition you wish to delete and confirm the action. Generating Emulation Images GENERATING EMULATION IMAGES - How to use B U I L D C D 5.1 Buil dCD Introduction BuildCD is a program to create PsyQ CD emulator images and ISO9660 files. It takes source files at various levels, automatically generates directory and marker information and generates the relevant subcode information. The program requires users to have a reasonably good idea of the structure of a CD as the control language is quite low- level. The command set is structured to force users to work in a manner consistent with CD structure. Central to the running of the BuildCD program is the concept of the control file. This defines the order and structure of the intended Compact Disc and directs the program as to the outputs it should produce. 5.1.1 The structure of a CD A CD is arranged as a continuous anti-clockwise spiral of data leading out from the centre of the Compact Disc. The smallest logical division of this spiral is a frame, this being the amount of data that an audio data requires for 1/75th of a second’s playback. A frame contains 2352 bytes of data and 98 bytes of subcode. The CD spiral is divided logically into Tracks. The track nearest to the centre is called the leadin track, it is then followed by a number of data tracks (up to 99) and the they are then followed by a leadout track. The leadin contains the CD’s table of contents stored in the subcode (which is what a CD player spins up and reads when a new CD is put in). The table of contents details the positions of all the tracks on the disc in terms of time offset from the start of the disc, BuildCD automatically generates this. The last track is another dedicated track called the leadout track, this is just a marker to flag the end of the disc. Neither the leadin or leadout tracks should have any data in them. All tracks other than the leadin and leadout can be used freely for holding data. These can either be standard Audio tracks or can hold Data in a variety of Modes. Mode0 sectors can only hold empty records. Mode1 frames can hold up to 2048 bytes of data and automatically include cyclic redundancy checks and error correction. For critical data (such as executable programs) where data integrity has to be maintained, Mode1 should always be used. Mode2 frames can hold up to 2336 bytes of data but afford no cyclic redundancy checks or error correction. For non- critical data (such as graphics) where data integrity needed not be worried about too much, Mode2 frames can be used. XA frames are a modification to the mode2 frame standard and allow two types of data record that can be freely interleaved. Form1 mirrors mode1 in that it can hold up to 2048 bytes of data and also automatically includes cyclic redundancy checks and error correction. Form2 mirrors mode2 in that it can hold 2324 bytes of data but again has no error correction. 5.1.2 Buil dCD’ s output The BuildCD takes a control file as primary input, pulling all specified files as and when required. The Outputs from this program are all for specific purposes detailed below. None of the outputs will be produced without the correct command line switch being present when the executable is invoked. The inputs and outputs for the BuildCD program can be viewed as: Control File Fig1. BuildCD program I/O. Image File - Scsi Device Image - Track File - Text Map File - Binary Map File - Part Files - Sony CD Generator- Save File - Interleaved Output File - An image file is a complete representation of all CD data. This is the final output of the BuildCD program and can be used for future cutting onto disc via a CD writer. An image file can be written automatically to the Scsi drive resident in the CD emulator. Written here it can be used by the CD emulator directly. A track file is a representation of an ISO9660 volume. This type of file output can be written directly into a data track however if any of it’s contents were to change then it would have to be recreated. A text map file is a textual representation of what has gone into the image file. This can be used by the UpdateCD program to check the source file datetimes and sizes to ensure that the image is up to date, and on finding any out-of-date sections automatically updating the relevant files. A text map file will only be written if an entire image is being created. The binary map file is a binary representation of the image specifying where the source files and part files of the image can be found. This file is for use by the Software and Hardware emulators to build images on the fly. The Part Files are automatically generated sections of track files that have to be created (rather than the source files which are already resident on disk). In fact these are binary representations of the CD Directories, PathTables and Volume headers. These Part files for use in conjunction with the Binary Map File. Flagging the output of the Binary Map File will automatically cause the creation of the Part Files. The CD generator save files can be used by Sony's CD Generator program to import the CD specification creation of CD's prior to direct writing from within the BuildCD program. Interleaved output files are in the same format as those files imported using an XASource command within the control file command language. Interleave files are produced only when a -g command line argument is used and the output filename is specified in the XAInterleavedFile control file command. 5.1.3 Buil dCD parameters BuildCD has the following parameter structure: BuildCD [options] [[[d:]path]control_filename.ext] As is normal for DOS, Options are distinguished from normal parameters by being preceded by either a “-†or “/†character. The Options available to the BuildCD program are detailed on the help screen which is displayed whenever the program is invoked without any parameters. The valid parameters are: -1 -2 - b[<FileName>] - d<var>=<var> - e<num> - g[<FileName>] output. - i[<FileName>] - m[<FileName>] - p[<dir>] -s<s_id>:<p_id> -t[<FileName>] - w Ensur es that all file and directo ry names on the CD are check ed for being ISO level 1. Ensur es that all file and directo ry names on the CD are check ed for being ISO level 2. Enabl es the output of any Binary Map File specifi ed within the Contr ol File. Prede fines a string substit ution to be used upon the Contr ol File. Restricts the number of error messages output. Enables the output of Sony CDGenerator save files and enables output of InterleavedFile file Enables the output of the Image File. Enables the output of any Text Map File specified within the Control File. Causes output of Part Files, if a directory is specified then they will be output there. The Part Files will be automatically output if Binary Map File output is enabled. Causes output of the image to a SCSI device. s_id is the SCSI id and the p_id is the partition id. Enables the output of Track Files. Suppresses all warning messages. Writing Buil dCD control files It should be noted that the structure of the control file is dependent on the level at which the command is being specified. There is a hierarchy of levels into which the program descends and from which it then rises. The easiest way to see how a control file has to be specified is to look at the Examples in Appendix A. These examples show all the allowable commands at least once and also show the two entry points to the command sets. It should be noted that all commands are case insensitive, i.e. the case of the command is ignored although error messages do echo the case of characters within the control file faithfully. BuildCD has been written to run in conjunction with UpdateCD, a program that works from the Text Map File to ensure that the contents of the image and all other output files are still up to date. UpdateCD cannot move internal image file structures around, if it had to do this then the increase in size of a source file at the start of the image would cause a ripple effect that would take longer than writing the image from scratch. UpdateCD will simply inform the user that the source file has outgrown it’s allotted area and stop before writing anything. An image can however be written with extra space to allow for this eventuality using the MinLength and AddLength commands at the File Command level. If a file is likely to grow then it is suggested that these commands are used. Another ‘trick’ that has been used by developers is when they know in advance that more files than exist at the moment are going to be required. The incorrect solution adopted has been to build an image with the ‘vapour’ files being sourced from existing files, in the hope that the source for these files can be later swapped. Unfortunately this would cause an inconsistency with the existing control file and therefore is not allowed. The correct way to prepare for the future source files is to create dummy files, potentially even empty files, and again use the MinLength and AddLength functions to ensure that there is enough space for the eventual files to reside. When the files have been created they need only be copied over the dummy files for the UpdateCD program to correctly load them. 5.2 GLOBAL COMMANDS Global commands are valid at any point in the control file. They fall into the following categories. * Defining of default values and substitution strings. Define, GreenwichOffset * Status message output during program execution. Echo, ShowDefines * File inclusion. Include D e f i n e Function Defines substitution variables for replacement within the control file(s) Syntax Define <var> <value> [<var> <value> [...]] Default BuildCD has the following predefined variables: program executing program name version current program version number edition current program edition number second present DOS second of minute minute present DOS minute of hour hour present DOS hour of day (24hr clock) day present DOS day of month month present DOS month of year year present DOS year weekday present DOS day of the week (Monday = 1 , ... , Sunday = 7) yearday present DOS day of the year Remarks All strings enclosed within square braces in the control file will be substituted for the values previously defined. If a substitution is attempted for a variable that is undefined then an error will be output. Substitutions are not recursive, nor can they be nested. When the program encounters a replacement string it looks for the first closing square brace and then attempts to match all characters between. Matches are case in-sensitive. Once matched, the string and the square braces are replaced by the defined replacement string. There is no limit (barring memory limitations) to the number of strings that can be defined or the number of substitutions allowable in a single line. Substitution strings can also be defined in the command line using the -d option. Substitution strings can be redefined at any point, to effectively undefine a string it has to be redefined to a null string. i.e. Define PsyQ “†See also Page 5-3 - Command line arguments Example Define PsyQ c:\psyq\bin E c h o Function Outputs all arguments to the Echo window of the output screen Syntax Echo <argument1> [...] Remarks All arguments are echoed to the appropriate output window. Output is not buffered. All substitutions will have been performed before output. All comments are ignored. Example Define PsyQ c:\psyq\bin Echo PsyQ var = [PsyQ] would output the string : PsyQ var = c:\psyq\bin G r e e n w i c h O f f s e t Function Sets the default Greenwich offset which is to be used whenever a date is specified without an explicit value. Syntax GreenwichOffset <OffsetValue> Default The greenwich offset defaults to a value of 0. Remarks The greenwich offset is a value defined within the ISO9660 document. Basically it is a time offset from Greenwich Mean Time based on the number of 15 minute intervals that the author’s time zone is from London. Greenwich offsets range from -48 (west) to 52 (east). Typical examples are : New York -20 Tokyo 32 Example GreenwichOffset -15 I n c l u d e Function Includes the contents of the specified file into the control file at the specified point. Syntax Include <FileName> Remarks Include files can be nested. There is no imposed limit to the number of nested include files, stack space and memory allowing. Example Include psyqgame.cti S h o w D e f i n e s Function Outputs details of all defined substitution strings to the Echo window of the output screen. Syntax ShowDefines Remarks All defined substitution strings are output to the window whether they are defined in the control file, defined in the invocation arguments or predefined within the program. Output is not buffered. See also Define Example Define PsyQ c:\psyq\bin ShowDefi nes would result in a typical output of: versi on 1.00 edi tion 1.00 prog ram C:\PSYQ\BIN\BUILDCD.EXE second 23 minute 02 hour 15 day 27 month 07 year 1994 weekday 03 yea rday 208 PsyQ c: \psyq\bi n 5.3 OUTERMOST LEVEL COMMANDS Outermost level commands are the highest level of command for a control file, only global commands can be recognised before an outermost level command. There are two outermost level commands Disc and Volume. The Volume command at this level is identical to the Volume command at the Track level of a disc definition. D i s c Function Marks the start of the definition of a disc and defines the primary output file for the program. Syntax Disc <DiscType> [<ImageFileName>] Remarks Valid disc types are: CDDA, CDAUDIO or AUDIO - audio discs CDROM or ROM - data and audio discs CDROMXA or XA - CDROM XA discs CDROMXA_PSX or XA_PSX - Standard XA discs with PSX restrictions and extensions The Disc statement specifies the default image output file name. No image file will be written unless the -i command line parameter is used when the program is invoked. Any image file name specified in the command line will override this image file name if specified. For a PSX_XA disc there are certain restrictions on the general XA format. Most notably: - the hierarchy path tables must all appear and be in a fixed order. - volume descriptors can only be written once - only primary and termination volume descriptors can be defined. - system identifier must be PLAYSTATION. - SubSource definitions cannot be made. - no mode 1 track can appear within the image. The Disc statement enables the Disc commands until an EndDisc statement is encountered. Example Disc CDROM state.qmu Outermost Level Commands V o l u m e Function Marks the start of the definition of a track volume and defines the primary output file for the program. Syntax Volume <VolumeType> [<TrackFileName>] Remarks The Volume statement specifies the default track output file name. No track file will be written unless the -t command line parameter is used when the program is invoked. Any track file name specified in the command line will override this track file name if specified. The only valid volume type is ISO9660. The Volume statement enables the Volume commands until an EndVolume statement is encountered. Example Volume ISO9660 psyqtrk.trk 5.4 DISC COMMANDS Disc commands define the highest level of disc structure. They fall into the following categories. * Defining the position of tracks within the disc. LeadIn, Track, LeadOut * Disc specific definitions. CatalogNumber, MapFile, CDGeneratorFile * Disc specific checks. CDSize * Disc definition termination. EndDisc C a t a l o g N u m b e r Function Allows for the definition of the CD catalog number that describes the disc and appears in the Q subcode channel. Syntax CatalogNumber <Number> Remarks If no catalog number is defined then it will not be included within the disc’s Q subcode channel. The catalog number can be up to 13 digits long, if it is less than this the leading digits will be padded with zeros. Example CatalogNumber 622345 C D G e n e r a t o r F i l e Function Specifies the name of the default Sony CDGenerator output save file. Syntax CDGeneratorFile <FileName> Remarks The CDGeneratorFile statement specifies the default save file name. No file will be written unless the -g command line parameter is used when the program is invoked. Any CDGenerator file name specified in the command line will override this filename. Example CDGeneratorFile c:\devel\outcdg.ccs C D S i z e Function Specifies the size of the target CD in minutes. Syntax CDSize <NumMinutes> Default The CDSize defaults to the standard CD length of 74 minutes. Remarks The value specified by this command is used to test for CD overflow. This command can be used to adjust the checked length of the CD. The input value is not checked against any specific criteria except for being a valid positive integer. Example CDSize 20 E n d D i s c Function Marks the end of the disc definition. Syntax EndDisc Remarks The End Disc statement should be the last statement in any control file. Only at the end of the control file will the image be built. Example EndDisc L e a d I n Function Marks the start of a LeadIn track definition. Syntax LeadIn <TrackType> Remarks The LeadIn statement specifies the start of the leadin track definition. Valid track types are: CDDA, CDAUDIO or AUDIO Mode0, Data0, ROM0 or CDROM0 Mode1, Data1, ROM1 or CDROM1 Mode2, Data2, ROM2 or CDROM2 - audio track - Mode0 data track - Mode1 data track - Mode2 data track Each disc has one LeadIn track that must be the first track defined. The LeadIn track contains the disc’s table of contents (TOC) in the Q subcode channel. It is generally expected that the data portion of the sector contains nothing but zeros. A minimum of length of 150 frames is allowable although 500 is recommended as a minimum and upwards of 1500 is usual. The LeadIn statement enables Track commands until an EndTrack statement is encountered. See also EndTrack, Empty Example LeadIn Mode0 L e a d O u t Function Marks the start of a LeadOut track definition. Syntax LeadOut <TrackType> Remarks The LeadOut statement specifies the start of the leadout track definition. Valid track types are: CDDA, CDAUDIO or AUDIO - audio track Mode0, Data0, ROM0 or CDROM0 - Mode0 data track Mode1, Data1, ROM1 or CDROM1 - Mode1 data track Mode2, Data2, ROM2 or CDROM2 - Mode2 data track Each disc has one LeadOut track that must be the last track defined. The LeadOut track contains a disc end marker in the Q subcode channel. It is generally expected that the data portion of the sector contains nothing but zeros. A minimum of length of 150 frames is allowable although 500 is recommended as a minimum. The LeadOut statement enables Track commands until an EndTrack statement is encountered. See also EndTrack, Empty Example LeadOut Mode0 M a p F i l e Function Specifies the name of the default text map file. Syntax MapFile <FileName> Remarks The MapFile statement specifies the default text map file name. No map file will be written unless the -m command line parameter is used when the program is invoked. Any text map file name specified in the command line will override this map filename. See also Chapter Example MapFile c:\devel\outmap.txt T r a c k Function Marks the start of a standard track definition. Syntax Track <TrackType> Remarks The Track statement specifies the start of a standard track definition. Valid track types are: CDDA, CDAUDIO or AUDIO - audio track Mode0, Data0, ROM0 or CDROM0 - Mode0 data track Mode1, Data1, ROM1 or CDROM1 - Mode1 data track Mode2, Data2, ROM2 or CDROM2 - Mode2 data track Up to 99 standard tracks can defined on a disc. The Track statement enables Track commands until an EndTrack statement is encountered. See also EndTrack Example Track Mode0 5.5 TRACK COMMANDS Track commands define the highest level of track structure. They fall into the following categories. • Defining the component blocks of a track. • Track label definitions. • Subcode source file specification. • Audio track specific definitions. • Track definition termination. Empty, Pause, PostGap, PreGap, Source, Volume, XASource Index, ISRC SubcEmpty, SubcSource Channels, Copy, PreEmphasis EndTrack C h a n n e l s Function Specifies the number of Audio channels for an audio track. Syntax Channels <NumberOfChannels> Default The number of channels defaults to 2. Remarks This command is only valid within an audio track and specifies the number of audio channels that the data has been recorded for. This information is included in the Q subcode channel. Valid numbers of channels are: 2 or 4 THIS COMMAND IS RECOGNISED BUT HAS NOT BEEN IMPLEMENTED. Example Channels 4 C o p y Function Specifies the state of the copy protection flag on an audio track. Syntax Copy <Boolean> Default The copy protection flag defaults to FALSE. Remarks This command is only valid within an audio track and specifies the state of the track’s copy protection flag. Valid boolean values are: true, on, yes or 1 false, off, no or 0 Example Copy On E m p t y Function Specifies a section of track to contain empty frames. Syntax Empty <NumFrames> Remarks This command specifies that the next <NumFrames> frames of data will be zero filled. A frame is 1/75th of a second of data. This command is particularly useful for defining the length of LeadIn and LeadOut tracks that shouldn’t technically contain any data. Example Empty 150 E n d T r a c k Function Marks the end of the track definition. Syntax EndTrack Remarks The EndTrack statement closes the definition of a track and returns control to the previous command level. Example EndTrack I n d e x Function Places an index point into the track at this point. Syntax Index Remarks The Index statement positions an index point within the track. Each index point increments the index count by 1, the index count is automatically set to 1 at the start of the track. The index count can have a maximum value of 99. Indices must be separated by at least 1 frame of data. Indices can only be defined in Audio tracks that are not LeadIn or LeadOut tracks. Example Index I S R C Function Allows for the definition of a track ISRC number to be placed in the Q subcode channel. Syntax ISRC <IsrcNumber> Remarks If no ISRC number is defined then it will not be included within the disc’s Q subcode channel. The ISRC number is 12 digits long, made up of the following fields : Country code 2 uppercase letters or digits Owner code 3 uppercase letters or digits Recording Year 2 digits Serial Number 5 digits An ISRC cannot be defined in LeadIn or LeadOut tracks. Example ISRC US2PD9443001 P a u s e Function Specifies a Pause section for the track. Syntax Pause <NumFrames> Remarks This command specifies that this track will be preceded by a pause of <NumFrames> frames of data. Pause frames are always zero filled and will always be placed at the start of the track. A frame is 1/75th of a second of data. A Pause cannot be defined in LeadIn or LeadOut tracks. A Pause must always be defined in the first standard track of the disc and in any track where the preceding track is of a different data type. A Pause must be a minimum of 150 frames, and it is recommended that Pauses are greater than 1000 frames. Example Pause 1500 P o s t G a p Function Specifies a PostGap section for the track. Syntax PostGap <NumFrames> Remarks This command specifies that this track will be followed by a gap of <NumFrames> frames of data. PostGap frames are always zero filled and will always be placed at the end of the track. A frame is 1/75th of a second of data. A PostGap cannot be defined in audio tracks. A PostGap must be a minimum of 150 frames. Example PostGap 150 P r e E m p h a s i s Function Specifies the state of the pre-emphasis flag on an audio track. Syntax PreEmphasis <Boolean> Default The pre-emphasis defaults to FALSE. Remarks This command is only valid within an audio track and specifies the state of the track’s pre-emphasis flag. Valid boolean values are: true, on, yes or 1 false, off, no or 0 Example PreEmphasis On P r e G a p Function Specifies a PreGap section for the track. Syntax PreGap <NumFrames> Remarks This command specifies that this track will be started by a gap of <Num Frames> frames of data. PreGap frames are always zero filled and will always be placed at the end of the track. A frame is 1/75th of a second of data. A PreGap cannot be defined in LeadIn, Leadout or audio tracks. A PreGap must be a minimum of 150 frames. Example PreGap 150 S o u r c e Function Specifies that the data from the specified file should be placed in the disc image at this point. Syntax Source <FileName> Remarks This indicates that contents of the specified file should be placed into the image. Any incomplete frame of data at the end of the file will be padded with zeros. There are 3 data types for which a Source command is allowable, these are : Audio each frame of data is 2352 bytes long Mode1 each frame of data is 2048 bytes long Mode2 each frame of data is 2336 bytes long This command is not allowed in an XA track at this level. See also XASource Example Sou rce c : \deve lop\da ta \psyqa ce.bin V o l u m e Function Marks the start of the definition of a track volume and defines a primary output file for the volume. Syntax Volume <VolumeType> [<TrackFileName>] Remarks The Volume statement specifies a track output file name. No track file will be written unless the -t command line parameter is used when the program is invoked and the track file name has been specified within this definition. No track file name can be specified in the command line to override this track file name. The only valid volume type is ISO9660. The Volume statement enables the Volume commands until an EndVolume statement is encountered. Example Volume ISO9660 X A S o u r c e Function Specifies that the data from the specified file should be placed in the disc image at this point and treated as XA data. Syntax XASource <FileName> Remarks This indicates that contents of the specified file should be placed into the image. The contents of the file are 2336 byte fixed length records of any combination of either Form 1 or Form2 records. The records consist of the following fields: Form 1 - Submode+Data+ECC+EDC Form2 - Submode+Data+EDC This command is only valid in an XA track. See also Source Example XASource c:\develop\data\psyqace.mxa 5.6 VOLUME COMMANDS Volume commands define the highest level of ISO9660 track volume structure. They fall into the following categories. * Volume descriptor definitions. PrimaryVolume * System Area Definition. SystemArea * Volume definition termination. EndVolume E n d V o l u m e Function Marks the end of the volume definition. Syntax EndVolume Remarks The EndVolume statement closes the definition of a volume and returns control to the previous command level. Example EndVolume P r i m a r y V o l u m e Function Marks the start of a primary volume definition. Syntax PrimaryVolume Remarks The PrimaryVolume statement specifies the start of a primary volume definition. An ISO volume must contain one and only primary volume definition. The PrimaryVolume statement enables the Primary Volume commands until an EndPrimaryVolume statement is encountered. See also EndPrimaryVolume Example PrimaryVolume Volume Commands S y s t e m A r e a Function Specifies that the data from the specified file should be placed in the ISO9660 system area. Syntax SystemArea <FileName> Default This area will be zero filled if no input file is specified. Remarks This command indicates that contents of the specified file should be placed into the ISO9660 system area. The system area is the first 16 logical sectors of the volume. If the specified file is to long then it’s contents will be truncated, if it is too short then it will be zero padded. The ISO standard does not specify what data should be placed in this area it is up to System designers to choose what they wish to be placed here. Example SystemArea c:\psyq\boot.bin 5.7 PRIMARY VOLUME COMMANDS PrimaryVolume commands define the structure of the content of an ISO9660 Primary Volume descriptor. They fall into the following categories. A b s t r a c t F i l e I d e n t i f i e r Function Fills the abstract file identifier field with the specified root file name. Syntax AbstractFileIdentifier <CdRootFileName> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the name of the abstract file identifier. This file name must be specified in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. Example AbstractFileIdentifier ABSTRACT.DOC A p p l i c a t i o n I d e n t i f i e r Function Fills the application identifier field with the specified string. Syntax ApplicationIdentifier <String> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the application identifier within the volume descriptor. The field holds a maximum of 128 characters. If the string’s first character is an underscore (‘_’ - 0x5F) the remainder of the string is taken to be the name of a file in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. The string, if not a file name is made up of 128 ‘a’ characters. For a list of valid ‘a’ characters see Appendix B - ISO character sets. Example Appli cationIdenti fier _APP_ID.DOC ApplicationIdentifier PSYQ APPLET A p p l i c a t i o n U s e Function Fills the application use field with the contents of the specified file. Syntax ApplicationUse <FileName> Default If no command is encountered then the field will be zero filled. Remarks This statement specifies the name of a file, the contents of which will be loaded into the application use field of the volume descriptor. The field is 512 bytes long, if the input file is too long then the contents will be truncated, if the file is too short then the field will be padded with zeros. Example ApplicationUse c:\devel\psyq\appuse.bin B i b l i o g r a p h i c F i l e I d e n t i f i e r Function Fills the bibliographic file identifier field with the specified root file name. Syntax BibliographicFileIdentifier <CdRootFileName> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the name of the bibliographic file identifier. This file name must be specified in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. Example BibliographicFi leIdentifier BIB.DOC C o p y r i g h t F i l e I d e n t i f i e r Function Fills the copyright file identifier field with the specified root file name. Syntax CopyrightFileIdentifier <CdRootFileName> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the name of the copyright file identifier. This file name must be specified in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. Example CopyrightFileIdentifier COPYR.DOC D a t a P r e p a r e r I d e n t i f i e r Function Fills the data preparer identifier field with the specified string. Syntax DataPreparerIdentifier <String> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the data preparer identifier within the volume descriptor. The field holds a maximum of 128 characters. If the string’s first character is an underscore (‘_’ - 0x5F) the remainder of the string is taken to be the name of a file in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. The string, if not a file name is made up of 128 ‘a’ characters. For a list of valid ‘a’ characters see Appendix B - ISO character sets. Example DataPreparerIdenti fier _DATID.DOC DataPreparerIdenti fi er SNSYSTEMS D e s c r i p t o r W r i t e s Function Specifies the number of times that the volume descriptor is to be written to the output. Syntax DescriptorWrites <Number> Default If no command is encountered then the descriptor will be written once. Remarks This statement specifies the number of times that the volume descriptor is to be written out. The ISO standard allows for the descriptor to be written out as many times as required. Each descriptor record takes up one sector of disc space. PSX Restriction: With PSX volume descriptors can only be written once (ie. DescriptorWrites can only be set to a value of 1). Example DescriptorWrites 1 E n d P r i m a r y V o l u m e Function Marks the end of the primary volume definition. Syntax EndPrimaryVolume Remarks The EndPrimaryVolume statement closes the definition of a primary volume and returns control to the previous command level. Example EndPrimaryVolume H i e r a r c h y Function Marks the start of a directory hierarchy. Syntax Hierarchy Remarks The Hierarchy statement specifies the start of a directory hierarchy within a primary volume definition. The must be one and only one hierarchy definition within each primary volume definition. The Hierarchy statement enables the hierarchy commands until an EndHierarchy statement is encountered. See also EndHierarchy Example Hi erarchy L o g i c a l B l o c k S i z e Function Specifies the logical block size of the volume descriptor. Syntax LogicalBlockSize <BlockSize> Default The logical block size defaults to 2048. Remarks This statement specifies the size of the volume set logical block size. Valid block size values are: 512, 1024 and 2048 THIS COMMAND IS RECOGNISED BUT HAS NOT BEEN IMPLEMENTED. Example LogicalBlockSize 2048 L P a t h Function Specifies the position of an L type path table. Syntax LPath Remarks This statement specifies the position of an L type path table. A path table is a directory quick reference to allow an executing program to find a particular directory record without having to recurse all the way down the directory structure. There are 2 types of path tables; L & M. An L path table is set out least significant byte first, while an M path table is set out most significant byte first. The must be one and only one LPath definition within each primary volume definition. Within a PSX disc definition the LPath will be automatically placed correctly. See also MPath Example Lpath M P a t h Function Specifies the position of an M type path table. Syntax MPath Remarks This statement specifies the position of an M type path table. A path table is a directory quick reference to allow an executing program to find a particular directory record without having to recurse all the way down the directory structure. There are 2 types of path tables; L & M. An L path table is set out least significant byte first, while an M path table is set out most significant byte first. The must be one and only one MPath definition within each primary volume definition. Within a PSX disc definition the MPath will be automatically placed correctly. See also LPath Example MPath O p t i o n a l L P a t h Function Specifies the position of an optional additional L type path table. Syntax OptionalLPath Default No additional L path table will be written into the image if this command is not encountered. Remarks This statement specifies the position of an additional L type path table. The additional path table is identical in all respects to the original. A path table is a directory quick reference to allow an executing program to find a particular directory record without having to recurse all the way down the directory structure. There are 2 types of path tables; L & M. An L path table is set out least significant byte first, while an M path table is set out most significant byte first. The can be at most only one Optional LPath definition within each primary volume definition. Within a PSX disc definition the OptionalLPath will be automatically placed correctly. See also LPath, OptionalMPath Example OptionalLpath O p t i o n a l M P a t h Function Specifies the position of an optional additional M type path table. Syntax OptionalMPath Default No additional M path table will be written into the image if this command is not encountered. Remarks This statement specifies the position of an additional M type path table. The additional path table is identical in all respects to the original. A path table is a directory quick reference to allow an executing program to find a particular directory record without having to recurse all the way down the directory structure. There are 2 types of path tables; L & M. An L path table is set out least significant byte first, while an M path table is set out most significant byte first. The can be at most only one OptionalM Path definition within each primary volume definition. Within a PSX disc definition the OptionalMPath will be automatically placed correctly. See also MPath, OptionalLPath Example OptionalMpath P u b l i s h e r I d e n t i f i e r Function Fills the publisher identifier field with the specified string. Syntax PublisherIdentifier <String> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the publisher identifier within the volume descriptor. The field holds a maximum of 128 characters. If the string’s first character is an underscore (‘_’ - 0x5F) the remainder of the string is taken to be the name of a file in the root directory of the volume’s hierarchy definition. The filename must conform to ISO level1 standards, that is it must have no more than 8 file name characters and 3 file extension characters. The string, if not a file name is made up of 128 ‘a’ characters. For a list of valid ‘a’ characters see Appendix B - ISO character sets. Example PublisherIdenti fier _PUBID. DOC PublisherIdenti fier SNSYSTEMS S y s t e m I d e n t i f i e r Function Fills the system identifier field with the specified system name string. Syntax SystemIdentifier <SystemNameString> Remarks This statement specifies the name of the system identifier with the string specified. This field specifies the system identifiers that can act upon the contents of the System Area contents. The must be one and only one SystemIdentifier definition within each primary volume definition. The string is made up of 32 ‘a’ characters. For a list of valid ‘a’ characters see Appendix B - ISO character sets. For a PSX disc the system identifier must be defined as PLAYSTATION. Example SystemIdentifier DOS V o l u m e C r e a t i o n D a t e Function Fills the volume creation field with the specified date and time. Syntax VolumeCreationDate <Date> <Time> [<Offset>] Default If no creation date and time is given then the date and time of creation of the volume descriptor will be used with the default Greenwich Offset. Remarks This statement specifies the date, time and specific greenwich offset of the volume descriptor creation. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. If no offset is specified then the default greenwich offset will be used. See also GreenwichOffset Example VolumeCreationDate 01/26/1963 06:45:00:00 0 V o l u m e E f f e c t i v e D a t e Function Fills the volume effective field with the specified date and time. Syntax VolumeEffectiveDate <Date> <Time> [<Offset>] Default If no effective date and time is given then the field in the volume descriptor will be set to: 00/00/0000 00:00:00:00 0 Remarks This statement specifies the date, time and specific greenwich offset of the volume descriptor becoming effective. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. If no offset is specified then the default greenwich offset will be used. See also GreenwichOffset Example VolumeEffectiveDate 01/26/1963 06:45:00:00 0 V o l u m e E x p i r a t i o n D a t e Function Fills the volume expiration field with the specified date and time. Syntax VolumeExpirationDate <Date> <Time> [<Offset>] Default If no expiry date and time is given then the field in the volume descriptor will be set to: 00/00/0000 00:00:00:00 0 Remarks This statement specifies the date, time and specific greenwich offset of the volume descriptor expiring. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. If no offset is specified then the default greenwich offset will be used. V o l u m e I d e n t i f i e r Function Fills the volume identifier field with the specified string. Syntax VolumeIdentifier <String> Remarks This statement specifies the name of the volume identifier with the string specified. The must be one and only one VolumeIdentifier definition within each primary volume definition. The string is made up of 32 ‘d’ characters. For a list of valid ‘d’ characters see Appendix B - ISO character sets. Example VolumeIdentifier MEGAGAME1 V o l u m e M o d i f i c a t i o n D a t e Function Fills the volume modification field with the specified date and time. Syntax VolumeModificationDate <Date> <Time> [<Offset>] Default If no modification date and time is given then the date and time of creation of the volume descriptor will be used with the default Greenwich Offset. Remarks This statement specifies the date, time and specific greenwich offset of the last volume descriptor modification. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. If no offset is specified then the default greenwich offset will be used. V o l u m e S e t I d e n t i f i e r Function Fills the volume set identifier field with the specified string. Syntax VolumeSetIdentifier <String> Default If no command is encountered then the field will be blank filled. Remarks This statement specifies the name of the volume set identifier with the string specified. The string is made up of 128 ‘d’ characters. For a list of valid ‘d’ characters see Appendix B - ISO character sets. Example VolumeSetIdenti fi er MEGAGAME1 X A S t a r t D i r e c t o r y Function Fills the start directory field with the specified CD directory name. Syntax XAStartDirectory <String> Default If no command is encountered then the field will be zero filled. Remarks This statement specifies the name of the XA disc’s startup directory to be placed in the Primary Volume descriptor. The string is made up of 8 ‘d’ characters and must be a valid subdirectory of the CD root directory hierarchy. This statement is only valid within an XA track. For a list of valid ‘d’ characters see Appendix B - ISO character sets. Example XAStartDirectory STARTUP Generating Emulation Images 5.8 DIRECTORY HIERARCHY COMMANDS Directory hierarchy commands define the structure of the root directory of an ISO9660 Primary or Supplementary volume. The commands fall into the following categories. • Directory space allocation definitions. • Directory attribute definitions. • XA Specific directory attribute definitions. • Directory object definitions. • Volume definition termination. AddLength, MinLength, Gap Attributes, RecordingDate XAAudioAttributes, XAFileAttributes, XAFilePermissions, XAOwnerGroup, XAOwnerUser, XAVideoAttributes Directory, File, SourceDirectory, XAInterleavedFile EndHierarchy A d d L e n g t h Function Specifies the number of bytes to be added to the length of the generated directory record. Syntax AddLength <Length> Default If no command is encountered then AddLength defaults to zero. Remarks This statement specifies a number of zero filled bytes to be added onto the end of the directory structure. This directory record may then be further zero filled to take it to a frame boundary. Add Length will always be performed before MinLength. Therefore a directory of say 10 files will produce a directory structure of about 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final directory structure will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also MinLength Example AddLength 512 A t t r i b u t e s Function Specifies the directory attribute flags. Syntax Attributes <Attribute> Default If no command is encountered then the Attributes default to NotHidden. Remarks This statement specifies the directory attributes. The valid attributes are: Hidden or NotHidden If the Hidden attribute is defined then the directory will not be made known to the user. Example Attributes Hidden D i r e c t o r y Function Marks the start of a directory definition. Syntax Directory <DirectoryName> Remarks The Directory statement specifies the start of a directory definition with the name specified. See also EndDirectory Example Directory PSYQSRC E n d H i e r a r c h y Function Marks the end of a hierarchy definition. Syntax EndHierarchy Remarks The EndHierarchy statement closes the definition of a hierarchy record and returns control to the previous command level. Example EndHierarchy F i l e Function Marks the start of a file definition. Syntax File <ISOFileName> [<Version>] Default If the version number is not specified then it defaults to 1. Remarks The File statement specifies the start of a ISO file definition with the name specified. The File statement enables the File commands until an EndFile statement is encountered. For an XA disc the version must be 1. See also EndFile Example File MONSTERS.GPH 2 G a p Function Places empty sectors within the hierarchy definition. Syntax Gap <Num Empty Sectors> Remarks The Gap statement places an empty area within the hierarchy definition of length NumEmptySectors. This can be used to position files explicitly within the image. Example Gap 20 M i n L e n g t h Function Specifies the minimum number of bytes of the directory record. Syntax MinLength <Length> Default If no command is encountered then MinLength defaults to zero. Remarks This statement specifies a minimum size of directory structure that the actual record will be blank filled to. This directory record may then be further zero filled to take it to a frame boundary. Add Length will always be performed before MinLength. Therefore a directory of say 10 files will produce a directory structure of about 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final directory structure will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also AddLength Example MinLength 512 R e c o r d i n g D a t e Function Logs the recording date of the directory with the specified date and time. Syntax RecordingDate <Date> <Time> [<Offset>] Default If no recording date and time is given then the date and time of creation of the directory record will be used. If no offset is specified then the default greenwich offset will be used. Remarks This statement specifies the date, time and specific greenwich offset of the directory record. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. See also GreenwichOffset Example RecordingDate 01/26/1963 06:45:00:00 0 S o u r c e D i r e c t o r y Function Searches the specified directory and files within it to recreate the structure and contents in the image. Syntax SourceDirectory <DOSDirectory> [<Att1>] [<Att2>] [...] Default The command has the following defaults: Subroutines will not be recursed. All files will be included. No additional spare space will be generated. Remarks This statement can be used to copy whole directory hierarchies directly into the present directory. If the keyword ‘SubDirectories’ appears as one of the attributes then all subdirectories of the named DOS directory will be searched recursively copying all the valid filenames to the image. If the keyword ‘IncludeWilds’ appears then the command will only retrieve files from the directory and sub-directories complying to the format(s) of those attributes that are wildcard definitions. If the keyword ‘ExcludeWilds’ appears then the command will only retrieve files from the directory and sub-directories not complying to the format(s) of those attributes that are wildcard definitions. If the keyword ‘SpareSpace’ appears then the command will add in extra zeros at the end of the files’ contents. The attribute must be followed by an equals sign and then a number specifying a percentage of additional space to be added. This value can be from 0 to 400. The % sign is optional. Example SourceDirectory c:\tmp SubDirectories SourceDi rectory c:\tmp ExcludeWilds *.prj *.td SourceDirectory c:\tmp *.c SpareSpace=25% X A A u d i o A t t r i b u t e s Function Specifies the default audio attribute flags. Syntax XAAudioAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the Attributes default to Emphasis Off, ADPCM Level B, Mono. Remarks This statement specifies the default XA audio attributes. The valid attributes are: Emphasis_On and Emphasis_Off ADPCM_B and ADPCM_C Mono and Stereo Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAAudi oAt tributes Emphasi s_On Stereo X A F i l e A t t r i b u t e s Function Specifies the default file attribute flags. Syntax XAFileAttributes <Attribute> [<Attribute>] Remarks This statement specifies the default XA file attributes. The valid attributes are: Form1 or 1 and Form2 or 2 Audio, Video and Data Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAFileAttributes Form1 Data X A F i l e P e r m i s s i o n s Function Specifies the default file permission flags. Syntax XAFilePermissions <Attribute> [<Attribute>] [...] Remarks This statement specifies the default XA file permissions. The valid attributes are: Owner_Read Owner_Execute Group_Read Group_Execute World_Read World_Execute Any combination of attributes is allowed. This statement is only valid within an XA track. Example XAFilePermissions Owner_Read X A I n t e r l e a v e d F i l e Function Marks the start of an XA interleaved file definition. Syntax XAInterleavedFile <ISOFileName> [<Filename>] Remarks The File statement specifies the start of the definition of an XA file with interleaved channels. The XAInterleavedFile statement enables the Interleaved File commands until an XAEndInterleaveFile statement is encountered. See also XAEndInterleavedFile Example XAInterleavedFile MONSTERS.GPH c:\games\output.str X A O w n e r G r o u p Function Specifies the default file Owner Group Identifier. Syntax XAOwnerGroup <GroupIdentifier> Default The owner group defaults to zero. Remarks This statement specifies the default XA owner group identifier. The owner group identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerGroup 27 X A O w n e r U s e r Function Specifies the default file Owner User Identifier. Syntax XAOwnerUser <UserIdentifier> Default The owner user defaults to zero. Remarks This statement specifies the default XA owner user identifier. The owner user identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerUser 15 X A V i d e o A t t r i b u t e s Function Specifies the default video attribute flags. Syntax XAVideoAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the Attributes default to Application Specific. Remarks This statement specifies the default XA video attributes. The valid attributes are: ApplicationSpecific or a combination of 640x480 and 320x200 Clut1, Clut2, Clut4 and Clut8 Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAVideoAttributes Appli cationSpecifi c XAVideoAttributes 640x480 Clut2 5.9 DIRECTORY COMMANDS Directory commands define the structure of a sub-directory of an ISO9660 Primary or Supplementary volume. The commands fall into the following categories. * Directory space allocation definitions. AddLength, MinLength * Directory attribute definitions. Attributes, RecordingDate * XA Specific directory attribute definitions. XAAudioAttributes, XAFileAttributes, XAFilePermissions, XAOwnerGroup, XAOwnerUser, XAVideoAttributes * Directory object definitions. Directory, File, SourceDirectory, XAInterleavedFile * Command definition termination. EndDirectory A d d L e n g t h Function Specifies the number of bytes to be added to the length of the generated directory record. Syntax AddLength <Length> Default If no command is encountered then AddLength defaults to zero. Remarks This statement specifies a number of zero filled bytes to be added onto the end of the directory structure. This directory record may then be further zero filled to take it to a frame boundary. Add Length will always be performed before MinLength. Therefore a directory of say 10 files will produce a directory structure of about 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final directory structure will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also MinLength Example AddLength 512 A t t r i b u t e s Function Specifies the directory attribute flags. Syntax Attributes <Attribute> Default If no command is encountered then the Attributes default to NotHidden. Remarks This statement specifies the directory attributes. The valid attributes are: Hidden or NotHidden If the Hidden attribute is defined then the directory will not be made known to the user. Example Attributes Hidden D i r e c t o r y Function Marks the start of a directory definition. Syntax Directory <DirectoryName> Remarks The Directory statement specifies the start of a directory definition with the name specified. The Directory statement enables the Directory commands an EndDirectory statement is encountered. See also EndDirectory Example Directory PSYQSRC E n d D i r e c t o r y Function Marks the end of a directory definition. Syntax EndDirectory Remarks The EndDirectory statement closes the definition of a directory record and returns control to the previous command level. Example EndDirectory F i l e Function Marks the start of a file definition. Syntax File <ISOFileName> [<Version>] Default If the version number is not specified then it defaults to 1. Remarks The File statement specifies the start of a ISO file definition with the name specified. The File statement enables the File commands until an EndFile statement is encountered. For an XA disc the version must be 1. See also EndFile Example File MONSTERS.GPH 2 G a p Function Places empty sectors within the hierarchy definition. Syntax Gap <Num Empty Sectors> Remarks The Gap statement places an empty area within the hierarchy definition of length NumEmptySectors. This can be used to position files explicitly within the image. Example Gap 20 M i n L e n g t h Function Specifies the minimum number of bytes of the directory record. Syntax MinLength <Length> Default If no command is encountered then MinLength defaults to zero. Remarks This statement specifies a minimum size of directory structure that the actual record will be blank filled to. This directory record may then be further zero filled to take it to a frame boundary. Add Length will always be performed before MinLength. Therefore a directory of say 10 files will produce a directory structure of about 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final directory structure will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also AddLength Example MinLength 512 R e c o r d i n g D a t e Function Logs the recording date of the directory with the specified date and time. Syntax RecordingDate <Date> <Time> [<Offset>] Default If no recording date and time is given then the date and time of creation of the directory record will be used. If no offset is specified then the default greenwich offset will be used. Remarks This statement specifies the date, time and specific greenwich offset of the directory record. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. See also GreenwichOffset Example RecordingDate 01/26/1963 06:45:00:00 0 S o u r c e D i r e c t o r y Function Searches the specified directory and files within it to recreate the structure and contents in the image. Syntax SourceDirectory <DOSDirectory> [<Att1>] [<Att2>] [...] Default The command has the following defaults: Subroutines will not be recursed. All files will be included. No additional spare space will be generated. Remarks This statement can be used to copy whole directory hierarchies directly into the present directory. If the keyword ‘SubDirectories’ appears as one of the attributes then all subdirectories of the named DOS directory will be searched recursively copying all the valid filenames to the image. If the keyword ‘IncludeWilds’ appears then the command will only retrieve files from the directory and sub-directories complying to the format(s) of those attributes that are wildcard definitions. If the keyword ‘ExcludeWilds’ appears then the command will only retrieve files from the directory and sub-directories not complying to the format(s) of those attributes that are wildcard definitions. If the keyword ‘SpareSpace’ appears then the command will add in extra zeros at the end of the files’ contents. The attribute must be followed by an equals sign and then a number specifying a percentage of additional space to be added. This value can be from 0 to 400. The % sign is optional. Example SourceDi rectory c: \tmp SubDi rectories SourceDirectory c:\tmp ExcludeWilds *.prj *.td SourceDi rectory c:\tmp *.c SpareSpace=25% X A A u d i o A t t r i b u t e s Function Specifies the default audio attribute flags. Syntax XAAudioAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the default XA audio attributes. The valid attributes are: Emphasis_On and Emphasis_Off ADPCM_B and ADPCM_C Mono and Stereo Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAAudi oAt tributes Emphasi s_On Ste reo X A F i l e A t t r i b u t e s Function Specifies the default file attribute flags. Syntax XAFileAttributes <Attribute> [<Attribute>] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the default XA file attributes. The valid attributes are: Form 1 or 1 and Form2 or 2 Audio, Video and Data Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAFileAttributes Form1 Data X A F i l e P e r m i s s i o n s Function Specifies the default file permission flags. Syntax XAFilePermissions <Attribute> [<Attribute>] [...] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the default XA file permissions. The valid attributes are: Owner_Read Owner_Execute Group_Read Group_Execute World_Read World_Execute Any combination of attributes is allowed. This statement is only valid within an XA track. Example XAFilePermissions Owner_Read X A I n t e r l e a v e d F i l e Function Marks the start of an XA interleaved file definition. Syntax XAInterleavedFile <ISOFileName> [<Interleaved Output File>] Remarks The File statement specifies the start of the definition of an XA file with interleaved channels. The XAInterleavedFile statement enables the Interleaved File commands until an XAEndInterleaveFile statement is encountered. The Interleaved Output File will be output only if the -g is specified on the command line. The contents of each of the interleaved channels are amalgamated into a single interleaved output file with all parity and CRC values set to zero. This file output can then be used as input to an XAF source command. See also XAEndInterleavedFile Example XAInterleavedFile MONSTERS.GPH X A O w n e r G r o u p Function Specifies the default file Owner Group Identifier. Syntax XAOwnerGroup <GroupIdentifier> Default If no command is encountered then the owner group defaults to the parent directory default. Remarks This statement specifies the default XA owner group identifier. The owner group identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerGroup 27 X A O w n e r U s e r Function Specifies the default file Owner User Identifier. Syntax XAOwnerUser <UserIdentifier> Default If no command is encountered then the user identifier defaults to the parent directory default. Remarks This statement specifies the default XA owner user identifier. The owner user identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerUser 15 X A V i d e o A t t r i b u t e s Function Specifies the default video attribute flags. Syntax XAVideoAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the default XA video attributes. The valid attributes are: ApplicationSpecific or a combination of 640x480 and 320x200 Clut1, Clut2, Clut4 and Clut8 Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAVideoAttributes Appli cationSpecifi c XAVideoAttributes 640x480 Clut2 5.10 FILE COMMANDS File commands define the contents of an ISO9660 File. The commands fall into the following categories. * File space allocation definitions. AddLength, MinLength * File attribute definitions. Attributes, RecordingDate * XA file attribute definitions. XAAudioAttributes, XAEOR, XAFileAttributes, XAFilePermissions, XAOwnerGroup, XAOwnerUser, XATrigger, XAVideoAttributes * File object definitions. Source, XASource * Command definition termination. EndFile A d d L e n g t h Function Specifies the number of bytes to be added to the length of the file contents. Syntax AddLength <Length> Default If no command is encountered then AddLength defaults to zero. Remarks This statement specifies a number of zero filled bytes to be added onto the end of the file contents. This file may then be further zero filled to take it to a frame boundary. AddLength will always be performed before MinLength. Therefore if we had a file of say 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final record will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also MinLength Example AddLength 512 A t t r i b u t e s Function Specifies the file attribute flags. Syntax Attributes <Attribute> [<Attribute>] Default If no command is encountered then the Attributes default to NotHidden. Remarks This statement specifies the directory attributes. The valid attributes are: Hidden or NotHidden Record or NotRecord If the Hidden attribute is defined then the file will not be made known to the user. If the Record attribute is defined then the file will be flagged as a record. Example Attributes Hidden Not Record E n d F i l e Function Marks the end of a file definition. Syntax EndFile Remarks The EndFile statement closes the definition of a file record and returns control to the previous command level. Example EndFile M i n L e n g t h Function Specifies the minimum number of bytes of a file record. Syntax MinLength <Length> Default If no command is encountered then MinLength defaults to zero. Remarks This statement specifies a minimum size of file record, if the file is smaller than this then it will be blank filled to the specified size. The file may then be further zero filled to take it to a frame boundary. AddLength will always be performed before MinLength. Therefore if we had a file of say 400 bytes. An Add Length of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final record will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also AddLength Example MinLength 512 R e c o r d i n g D a t e Function Logs the recording date of the file with the specified date and time. Syntax RecordingDate <Date> <Time> [<Offset>] Default If no recording date and time is given then the DOS date and time of creation of the source file will be used. If no offset is specified then the default greenwich offset will be used. Remarks This statement specifies the date, time and specific greenwich offset of the file. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. See also GreenwichOffset Example RecordingDate 01/26/1963 06:45:00:00 0 S o u r c e Function Specifies that the contents of the file are to be copied from the file specified. Syntax Source <FileName> Remarks This indicates that contents of the specified file should be used as the contents of the ISO file. Any incomplete frame of data at the end of the file will be padded with zeros. Example Source c:\develop\data\psyqace.bin X A A u d i o A t t r i b u t e s Function Specifies the file’s audio attribute flags. Syntax XAAudioAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the XA audio attributes. The valid attributes are: Emphasis_On and Emphasis_Off ADPCM_B and ADPCM_C Mono and Stereo Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track for a file defined as being Audio. Example XAAudi oAt tributes Emphasi s_On Stereo X A E n d O f R e c o r d Function Specifies the position of End Of Record flags within the file. Syntax XAEndOfRecord <TrigOffset> [<TrigOffset>] [...] [EndOfFile] Remarks This statement specifies the position of end of record flags within the file. This command can be called more than once for a file. The EndOf Record Offset is the number of frames into the file that the end-of-record marker is to be set at. The EndOf File parameter allows the End Of Record flag to be placed at the end of the file (after adjustment by Add & MinLength!) without precalculation of position. This statement is only valid within an XA track. Example XAEndOfRecord 15 30 45 90 X A F i l e A t t r i b u t e s Function Specifies the file attribute flags. Syntax XAFileAttributes <Attribute> [<Attribute>] Remarks This statement specifies the default XA file attributes. The valid attributes are: Form1 or 1 and Form2 or 2 Audio, Video and Data Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAFileAttributes Form1 Data X A F i l e P e r m i s s i o n s Function Specifies the default file permission flags. Syntax XAFilePermissions <Attribute> [<Attribute>] [...] Remarks This statement specifies the default XA file permissions. The valid attributes are: Owner_Read Owner_Execute Group_Read Group_Execute World_Read World_Execute Any combination of attributes is allowed. This statement is only valid within an XA track. Example XAFilePermissions Owner_Read X A O w n e r G r o u p Function Specifies the default file Owner Group Identifier. Syntax XAOwnerGroup <GroupIdentifier> Default The owner group defaults to zero. Remarks This statement specifies the default XA owner group identifier. The owner group identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerGroup 27 X A O w n e r U s e r Function Specifies the default file Owner User Identifier. Syntax XAOwnerUser <UserIdentifier> Default The owner user defaults to zero. Remarks This statement specifies the default XA owner user identifier. The owner user identifier is a number between 0 and 65535. This statement is only valid within an XA track. Example XAOwnerUser 15 X A S o u r c e Function Specifies that the data from the specified file is to be copied from the specified file. Syntax XASource <FileName> Remarks This indicates that contents of the specified file should be used as the contents of the CD file within the XA track. The contents of the file are 2336 byte fixed length records of any combination of either Form 1 or Form2 records. The records consist of the following fields: Form1 - Submode+Data+ECC+EDC Form2 - Submode+Data+EDC Because the input files already have all the submode data setup within them this command cannot appear within a File specification with the following XA commands: XAAudioAttributes, XAEOR, XAFileAttributes, XATrigger, XAVideoAttributes This command is only valid in an XA track. See also Source Example XASource c:\develop\data\psyqace.mxa X A T r i g g e r Function Specifies the position of Trigger flags within the file. Syntax XATrigger <TrigOffset> [<TrigOffset>] [...] [EndOfFile] Remarks This statement specifies the position of trigger flags within the file. This command can be called more than once for a file. The Trigger Offset is the number of frames into the file that the trigger marker is to be set at. The EndOf File parameter allows a Trigger to be placed at the end of the file (after adjustment by Add & MinLength!) without precalculation of position. This statement is only valid within an XA track. Example XATrigger 15 30 45 90 X A V i d e o A t t r i b u t e s Function Specifies the default video attribute flags. Syntax XAVideoAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the Attributes default to Application Specific. Remarks This statement specifies the default XA video attributes. The valid attributes are: ApplicationSpecific or a combination of 640x480 and 320x200 Clut1, Clut2, Clut4 and Clut8 Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track. Example XAVideoAttributes Appli cationSpecifi c XAVideoAttributes 640x480 Clut2 5.11 XA INTERLEAVED FILE COMMANDS XA Interleaved File commands define the contents of an XA File with interleaved channels. The commands fall into the following categories. • File attribute definitions. Attributes, RecordingDate * XA file attribute definitions. XAFilePermissions, XAOwnerGroup, XAOwnerUser * File object definitions. XAChannel * Interleave definitions. XAChannelInterleave * Command definition termination. XAEndInterleavedFile A t t r i b u t e s Function Specifies the file attribute flags. Syntax Attributes <Attribute> [<Attribute>] Default If no command is encountered then the Attributes default to NotHidden. Remarks This statement specifies the directory attributes. The valid attributes are: Hidden or NotHidden Record or NotRecord If the Hidden attribute is defined then the file will not be made known to the user. If the Record attribute is defined then the file will be flagged as a record. Example Attributes Hidden Not Record R e c o r d i n g D a t e Function Logs the recording date of the file with the specified date and time. Syntax RecordingDate <Date> <Time> [<Offset>] Default If no recording date and time is given then the DOS date and time of creation of the source file will be used. If no offset is specified then the default greenwich offset will be used. Remarks This statement specifies the date, time and specific greenwich offset of the file. Any valid date time can be input. Dates must be specified in the following format: MM/DD/YYYY Times must be specified in the following format: HH:MM:SS:hh The specific greenwich offset must be specified in exactly the same format as for the GreenwichOffset command. See also GreenwichOffset Example RecordingDate 01/26/1963 06:45:00:00 0 X A C h a n n e l Function Marks the start of an XA channel definition. Syntax XAChannel <ChannelNumber> Remarks The XAChannel statement specifies the start of the definition of an XA channel within an XA Interleaved file. The Channel Number must be a number between 1 and 32 inclusive. Only one channel definition for each channel number is allowed. The XAChannel statement enables the Channel commands until an XAEndChannel statement is encountered. See also XAEndChannel Example XAChannel 3 X A C h a n n e l I n t e r l e a v e Function Defines the format of the XA channel interleave. Syntax XAChannelInterleave <I’type> [<arg>] [<I’type> [<arg>]] Remarks The XAChannelInterleave statement specifies how the channels within the XA file are to be interleaved. The valid Interleave types are: TimeCritical Explicit Proportional Even PaddedEven TimeCritical & Explicit These two interleave types are for the most part the same as they must be both followed by an argument string that define the order in which key channels are to be interleaved. The only difference between the two types is that all explicitly defined channels within a TimeCritical argument string will be marked as Real Time. The argument string is a list of channels separated by a hyphen. Gaps can be defined by including Xs into the definition to be filled by a further interleave definition. Padding blanks can be specified by including Bs in the string. The string will be used repeatedly until all channels have been fully output. Only 2 levels of interleave definition are allowed, and only TimeCritical and Explicit interleaves allow for a further level of definition. TimeCritical interleaves can only appear as the first interleave and no Xs can appear in a secondary Explicit definition. Proportional A proportional interleave uses the length of the data within each channel to calculate the order of sectors. Channels with more data will be added to the image more regularly than channels with less. In this way all channels will start and end at approximately the same point within the image. Even An even interleave outputs one sector from each channel in sequence until all channels have been fully output. PaddedEven A padded-even interleave outputs one sector from each channel in sequence until all channels have been fully output, just like an even interleave. However it will intersperse the packets of data for each channel with blank sectors to ensure that like the proportional interleave all channels start and end at approximately the same point. There must be one and only one XAChannelInterleave statement within XAInterleavedFile definition. Example XAChannelInterleave Even XAChannelInterleave TimeCri ti cal 1-2-X-X PaddedEven X A E n d I n t e r l e a v e d F i l e Function Marks the end of an XA interleaved file definition. Syntax XAEndInterleavedFile Remarks The XAEndInterleavedFile statement closes the definition of an XA interleaved file record and returns control to the previous command level. Example XAEndInterleavedFile X A F i l e P e r m i s s i o n s Function Specifies the default file permission flags. Syntax XAFilePermissions <Attribute> [<Attribute>] [...] Remarks This statement specifies the default XA file permissions. The valid attributes are: Owner_Read Owner_Execute Group_Read Group_Execute World_Read World_Execute Any combination of attributes is allowed. Example XAFilePermissions Owner_Read X A O w n e r G r o u p Function Specifies the default file Owner Group Identifier. Syntax XAOwnerGroup <GroupIdentifier> Default The owner group defaults to zero. Remarks This statement specifies the default XA owner group identifier. The owner group identifier is a number between 0 and 65535. Example XAOwnerGroup 27 X A O w n e r U s e r Function Specifies the default file Owner User Identifier. Syntax XAOwnerUser <UserIdentifier> Default The owner user defaults to zero. Remarks This statement specifies the default XA owner user identifier. The owner user identifier is a number between 0 and 65535. Example XAOwnerUser 15 5.12 XA INTERLEAVED CHANNEL COMMANDS XA Interleaved Channel commands define the contents of a channel within an XA File. The commands fall into the following categories. * File space allocation definitions. AddLength, MinLength * XA file attribute definitions. XAAudioAttributes, XAEOR, XAFileAttributes, XATrigger, XAVideoAttributes • File object definitions. Source * Command definition termination. XAEndChannel A d d L e n g t h Function Specifies the number of bytes to be added to the length of the channel contents. Syntax AddLength <Length> Default If no command is encountered then AddLength defaults to zero. Remarks This statement specifies a number of zero filled bytes to be added onto the end of the channel contents. This channel may then be further zero filled to take it to a frame boundary. AddLength will always be performed before MinLength. Therefore if we had a channel of say 400 bytes. An AddLength of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final record will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also MinLength Example AddLength 512 M i n L e n g t h Function Specifies the minimum number of bytes of a file record. Syntax MinLength <Length> Default If no command is encountered then MinLength defaults to zero. Remarks This statement specifies a minimum size of channel record, if the channel is smaller than this then it will be blank filled to the specified size. The channel may then be further zero filled to take it to a frame boundary. AddLength will always be performed before MinLength. Therefore if we had a channel of say 400 bytes. An AddLength of 1800 bytes will increase this size to 2200 bytes. A MinLength of 2048 will have no effect but the final record will be written in 2 x 2048 bytes blocks (i.e. 2 frames). See also AddLength Example MinLength 512 S o u r c e Function Specifies that the contents of the channel are to be copied from the file specified. Syntax Source <FileName> Remarks This indicates that contents of the specified file should be used as the contents of the Channel. Any incomplete frame of data at the end of the channel will be padded with zeros. There can be one and only one sourced file within a Channel definition Example Source c:\develop\data\psyqace.bin X A A u d i o A t t r i b u t e s Function Specifies the channel’s audio attribute flags. Syntax XAAudioAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the attributes default to the parent directory default. Remarks This statement specifies the XA audio attributes. The valid attributes are: Emphasis_On and Emphasis_Off ADPCM_B and ADPCM_C Mono and Stereo Any combination of the non-mutually exclusive attributes is allowed. This statement is only valid within an XA track for a channel defined as being Audio. Example XAAudioAtt ri butes Emphasi s_On Ste reo X A E n d C h a n n e l Function Marks the end of a channel definition. Syntax XAEndChannel Remarks The XAEndChannel statement closes the definition of an XAChannel record and returns control to the previous command level. Example XAEndChannel X A E n d O f R e c o r d Function Specifies the position of End Of Record flags within the channel. Syntax XAEndOfRecord <TrigOffset> [<TrigOffset>] [...] Remarks This statement specifies the position of end of record flags within the channel. This command can be called more than once for a channel. The EndOfRecord Offset is the number of frames into the channel (not the record) that the end-of-record marker is to be set at. Example XAEndOfRecord 15 30 45 90 X A F i l e A t t r i b u t e s Function Specifies the file attribute flags. Syntax XAFileAttributes <Attribute> [<Attribute>] Remarks This statement specifies the default XA channel attributes. The valid attributes are: Form 1 or 1 and Form2 or 2 Audio, Video and Data Any combination of the non-mutually exclusive attributes is allowed. Each Channel must have from and data types defined explicitly within the Channel definition. Example XAFileAttributes Form1 Data X A T r i g g e r Function Specifies the position of Trigger flags within the channel. Syntax XATrigger <TrigOffset> [<TrigOffset>] [...] Remarks This statement specifies the position of trigger flags within the channel. This command can be called more than once for a channel. The Trigger Offset is the number of frames into the file that the trigger marker is to be set at. Example XATrigger 15 30 45 90 X A V i d e o A t t r i b u t e s Function Specifies the default video attribute flags. Syntax XAVideoAttributes <Attribute> [<Attribute>] [...] Default If no command is encountered then the Attributes default to Application Specific. Remarks This statement specifies the default XA video attributes. The valid attributes are: ApplicationSpecific or a combination of 640x480 and 320x200 Clut1, Clut2, Clut4 and Clut8 Any combination of the non-mutually exclusive attributes is allowed. Example XAVideoAttributes ApplicationSpecific XAVideoAttributes 640x480 Clut2 Modifying the Emulation Image MODIFYING THE EMULATION IMAGE - How to use UpdateCD BuildCD will generate the whole CD image each time it is run, however, if only one file has changed then this can be a very lengthy process. UpdateCD, however, will determine which files has changed since the last creation/modification took place and only write those to the HD. It requires name of the map file that was generated by BuildCD as its parameter. If BuildCD was run using the following command line:- BUILDCD -mexample.map -s0:1 example.cti then the file example.map will contain all the relevant information to allow UpdateCD to write only files that changed since last time. So if immediately after the above example the following was run UPDATECD example.map then nothing will be updated. If however one of the files written by BuildCD was modified then UpdateCD will detail the consequences of the change and ask the user if this modification should be made. There will be cases where a file increases in length so much that it will affect following files then the user will need to modify the space allocation in the original control file and re-build using BuildCD. UpdateCD takes the following command line form - UPDATECD [options] [map filename] Available options are- -e<num> to restrict the number of warnings messages given. -w to suppress all warnings. The mapfile contains ALL information needed to do its updating including the ID and partition number of the disk that the original image was created on. Connection of Multiple Emulation Hard Drives CONNECTION OF MULTIPLE EMULATION HARD DRIVES As you know, this emulator system is based upon its local implementation of a SCSI bus. This electronics standard allows for up to 8 devices to share a common data pathway. However to avoid reflection of signals from the ends of the bus, each end needs to be terminated. This simply being a resistor connection between each of the signal lines on the bus and ground. Hard drives usually have a configurable termination, and are generally shipped with this active. The emulator card also has this termination fitted and can be considered as ‘one end’ of the bus. Therefore with only one internal drive fitted ‘both ends’ of the bus are terminated. This also applies if an external drive is fitted. However, if you wish to use more than one hard drive then you need to determine which device is ‘on the end’ and remove the termination from the ones ‘between’ Refer to the manual supplied with your internal hard drive to determine how to remove the termination. External hard drives generally have two connectors, one to which is connected the SCSI cable and to the other is connect a termination pack. So with an internal hard drive, schematically the system is - Internal External HD Emulator T Card with both ends terminated (T). With an external hard drive- Internal External Emulator Card T HD T Again, both ends are terminated. If the requirement was for an internal and an external drive then - Internal External is how the chain should be configured. Note the termination is missing from the emulator card (see later for how to remove the termination from the card). Or, for two internal drives - HD HD T Note that the termination has now been disabled from the middle device (instructions to disable the termination from a hard drive will be in the manual supplied with it). Or, for two external hard drives - Internal External Emulator Card T For configurations which need more than two hard drives (either internal, external or a mixture of both) the above still applies, it is only the devices that are on each end of the bus that need to have termination. 7.1 Removal of the Termination Resistors from the CD Emulator Card In some of the above examples the emulator card did not require termination, however it is supplied with termination resistors fitted. Each of the resistor packs are fitted into sockets to allow for easy removal, however not all the packs are of the same value. Mark and note the position and orientation of each of the packs prior to removal, this will facilitate their easy replacement . Be very careful not to bend the pins of these packs during removal. Appendix A SAMPLE CONTROL FILES An example of a high level disc defining control file. Note how it includes the example file 2 and therefore processes it. Echo “Building Image†Define PsyQ c:\psyQ\dev\ ShowDefi nes Disc CDROM state.img Cata logNumber MapFi le BInaryFi leOutput LeadIn AUDIO Empty 150 EndT rack 47646 [PsyQ]state.map [PsyQ]state. cdb Track Pause SubcSource Include Subc Empty EndT rack MODE1 150 [PsyQ]subc\subc1. sbc state. ct l ; Volume Definition Track SubcSou rce Source Subc Empty PostGap 150 EndTrack Track Pause Source EndTrack MOD E1 [PsyQ]subc\ dsubcs .sll [PsyQ]state . t rk Audio 150 [PsyQ]state 1.trk LeadOut AUDIO Empty 150 EndTrack EndDi sc An example of a volume defining control file. Note that although this can be included in file 1 above it can also be used on it’s own. Echo Control file test for directory structures Volume ISO9660 state.trk SystemArea Prima ryVolume [PsyQ]share.exe AbstractFileIdentifier ApplicationIdentifier Appli cationUse BibliographicFileIdentifier CopyrightFileIdentifier DataPreparerIdentifier DescriptorWri tes AUTOEXEC.BAT “_AUTOEXEC. BAT†[PsyQ]appuse.txt AARON. PTT CONFIG.SYS _AU TO EXEC . BAT; 1 1 PublisherIdentifier SystemIdentifier VolumeCreationDate “SN S YST EMS†CD 10/17/1989 08:12:00:00 00 VolumeEffectiveDate 09/18/1990 09:13:00:00 00 VolumeExpi rationDate 10/04/1991 07:15:22:00 -12 VolumeIdenti fi er VolumeModificationDate TOME 12/25/1993 00:00:00:00 00 VolumeSetIdentifier Hierarchy TICTACTOE File AUTOEXEC.BAT;1 Source \autoexec.bat EndFi le File CONFIG.SYS;1 Source \config.sys EndFi le Directory CHKDEMO SourceDirectory \chkdemo SubDirectories SpareSpace=100% EndDi rectory Directory GRAPHICS File FRED.PTT 3 Source \setni l.bat EndFi le File GINGER.PTT 4 Source \setmap. bat EndFi le Directory MONGEESE File ARNIE.PTT 5 Source \setnml.bat EndFi le EndDi rectory File AARDVARK.PTT 6 Source \config.nil EndFi le EndDi rectory Directory GRAPHICS1 MinLength 2045 AddLength 200 File FRED.PTT 3 Source \config.nml EndFi le File GINGER.PTT 4 Source \confi g .ptt EndFi le Di rectory MONGEESE File ARNIE.PTT 5 Source \setmap.ptt AddLength 2048 EndFi le EndDi rectory File AARDVARK.PTT 6 Source \setmap.blr EndFi le EndDi rectory File AARON.PTT Source \setmap.blt EndFi le Appendix A EndHierarchy LPath MPath EndPrimaryVolume VolumeParti tion Descri ptorWri tes SystemIdenti fi er SystemUse VolumeParti tionData 3 CD \setmap.crd \snlpt .ddt VolumeParti tionIdenti fi er PARTITION1 EndVolumeParti tion Boot Record BootIdenti fi er Descri ptorWri tes SystemIdenti fi er SystemUse EndBoot Record EndVo lume Example XA Control File demo.cti Define PsyQ c:\psyQ\ ShowDefines Disc CDROMXA demo.img CatalogNumber 47646 MapFile demo.map BInaryFileOutput demo.cdb LeadIn XA Empty 1000 Post Ga p 150 EndT rack Appendix A Track ISRC SubcSource Source SubcEmpty EndTrack Track Copy PreEmphasi Sou rce EndT rack LeadOut Empty EndTrack Audio U KS N S94 00001 bcdmap.o bj \dev\trk\ state1.tr k Audio On s On \dev\trk\ state1.tr k A U D I O 1 5 0 EndDi sc demo.ctl Volume ISO9660 demo.trk SystemArea [psyq]sysarea.exe Prima ry Volume AbstractFileIdentifier ApplicationIdentifier Appli cationUse BibliographicFileIdentifier Copyright FileIdentif ier DataPreparerIdentifier Descri ptorWri tes PublisherIdentifier SystemIdentifier VolumeCreationDate VolumeEffectiveDate VolumeExpi rationDate VolumeIdentifier Vol_Id VolumeModificationDate 12/25/1993 00:00:00:00 00 VolumeSetIdentifier Vol_Set_One Hi erarchy XAFileAttributes Form1 Data XAVideoAttributes 640x480 Clut4 XAAudioAttributes Emphasis_On ADPCM_B Mono XAFi lePermissions World_Read World_Execute XAOwnerGroup 56 XAOwnerUser 1 File ABS.TXT Source [psyQ]txt\abstract .txt EndFi le File APP.TXT Source [psyQ]txt\app_id.txt EndFi le File BIB.TXT Source [psyQ]txt\biblio. txt EndFi le File CPY.TXT Source [psyQ]txt\cpyright .txt EndFi le File DTP.TXT Source [psyQ]txt\dataprep. txt EndFi le ; File with channels interleaved within the BuildCD program ; XAInterleavedFile autoexec.bat;1 XAChannelInterleave TimeCritical 2-X-2-X Even XAChannel 1 Source C:\dev\buildcd\bcdmain.c XAFileAttributes Form1 Data AddLength 2332 XAEndChanne l XAChannel 2 Source C: \dev\bui ldcd\bcdbasi c.c XAFileAttributes Form2 Audio XAEndOfRecord 1 8 EndOfFile XAAudioAttri butes Emphasis_Off XAEndChanne l XAChannel 3 Source C:\dev\buildcd\bcdfront.c XAFileAttributes Form1 Video XAEndChannel XAEndInterleavedFile ; File defined within XA with no interleaves ; File CONFIG.SYS;1 XAFileAttributes Form2 Audio XATrigger 0 2 4 XAEndOfRecord EndOfFile 1 Source \config.sys MinLength 10000 EndFi le AddLength 2048 MinLength 8192 Directory CHKDEMO SourceDirectory \chkdemo SubDirectories SpareSpace=100% EndDi rectory Directory GRAPHICS ; File with channel interleaving already performed ; File FRED.PTT 3 XASource \setnil.bat EndFi le File GINGER.PTT 4 Source \setmap.bat EndFi le Appendix A Directory MONGEESE File ARNIE.PTT 5 Source \setnml.bat EndFi le EndDi rectory EndDi rectory EndHierarchy LPath MPath EndPrimaryVolume VolumeParti tion Descri ptorWri tes SystemIdenti fier SystemUse VolumePartitionData VolumePartitionIdent EndVo lumePa rt it ion Boot Record 3 CD \ se tma p . bat \dev\bui ldcd\bui ldcd .exe ifier PARTITION1 BootIdenti fi er DescriptorWri tes SystemIdenti fi er SystemUse End Boot Re co rd End Volume Appendix A The following is a sample map file. ======================================================================================= = Generated Map File C:\DEV\BUILDCD\STATE1.MAP for Image File C:\DEV\BUILDCD\STATE1.IMG = ======================================================================================= Image C:\DEV\BUILDCD\STATE1.IMG 03/10/1994 14:31:48 2967552 (CAT: 0000000047646) ======================================================================================= = Command Fr Time Len LBN Additional ======================================================================================= LeadIn 0 Empty PostGap Track 1 Pause TrackDef 00:00:00 150 00:02:00 150 00:04:00 150 XA XA SystemArea 00:06:00 16 Form1 C: \SHARE.EXE PrimVol 00:06:16 1 TermVol 00:06:17 1 Lpa t h OptLpath Mpath OptMpath Di r( ) Di r(GRAPHICS) File( FRED. PTT) 00:06:18 1 00:06:19 1 00:06:20 1 00:06:21 1 00:06:22 1 00:06:23 1 00:06:24 1 Form1 C:\SETNIL.BAT File(GINGER.PTT) 00:06:25 1 Form1 C:\SETMAP.BAT File(AARDVARK.PTT) 00:06:26 1 Form1 C: \CONFIG.NIL Dir(MONGEESE) 00:06:27 1 File(ARNIE.PTT) 00:06:28 1 Form1 C:\SETNML.BAT EndTrackDef PostGap 00:06:29 150 Track 2 Audio (COPY:OFF PRE_EMPH:OFF) Pause 00:08:29 150 Source 00:10:29 73 02/10/1994 18:00:12 170563 C: \DEV\BUILDCD\BCD WRITE. C