www.riscos.com Technical Support: |
|
There are three main purposes in providing the territory manager:
RISC OS 3 addresses all of these aspects.
The territory manager provides a wide range of services and information to help you.
Use the territory manager wherever possible. Don't make assumptions about any of the features it supports and can provide information on.
If you do use the territory manager, you will find it much easier to modify your programs for supply to international markets, and have a much wider potential user base.
The territory manager is a new RISC OS 3 module providing control over the localised aspects of the computer. RISC OS itself only uses one territory for all its functions, but the territory manager can have more than one territory module loaded at any one time, and applications can use these additional territories.
A territory module (such as the UK Territory module present in the RISC OS 3 ROM) is a module providing the territory manager with services and information for a specific territory (such as the UK), amongst which are:
Obviously this is only a summary of what is provided; for full information you should see the section entitled Territory manager SWIs and the Territory module SWIs, especially the latter.
Each computer running RISC OS has a configured value for the current territory, set using *Configure Territory, and stored in its CMOS RAM. On a reset or a power-on, RISC OS will try to load this territory as follows:
At the end of this process:
RISC OS then selects as the current territory either the configured territory, or - if it is not present - a default territory from ROM.
The current territory is used by RISC OS for all operating system functions that may change from territory to territory. This includes such things as the language used to display menus, and the default time offset from UTC. As we saw above, the current territory will normally be the configured territory; but if that can't be found, a default ROM territory is used instead.
There can only be one current territory for any one computer. This is because the current territory controls such things as the language used for menus. It would be very confusing to have, for example, some of the menus appear in one language and some in another language. In the UK, even if you are editing a German document, you would normally still want the menus to appear in English.
Once the current territory has been set, you can't change it in mid-session. To change the current territory, you should change the configured territory, and ensure that the new current territory you wish to use is available (either in ROM, or in $.!Territory on the default device). You then need to reboot your computer.
Whilst RISC OS itself only makes use of the computer's one current territory, the territory manager can have more than one territory module loaded. Applications can then make use of these extra territory modules. For example, you may wish to provide an application that can include text in two different languages in the same document. It is useful for such an application to be able to read the information relating to both languages at the same time.
When the territory manager starts, it issues a service call (Service_TerritoryManagerLoaded) to announce its presence to territory modules. Whenever a territory module receives this service call, it must issue the SWI Territory_Register to add itself to the territory manager's list of active territories. A territory module must also issue this SWI whenever its initialisation entry point is called, thus ensuring that if it is initialised after the territory manager, it still registers itself.
This SWI also registers with the territory manager the entry points to the routines that the territory module uses to provide its information and services. These entry points are called by issuing SWIs to the territory manager, which specify the territory module that is to be used to service the SWI. The territory manager then calls the appropriate entry point in the specified territory module.
Once the territory manager has started, and any loaded territory modules have registered themselves, it then sets up the current territory. To do so, it:
A territory need not correspond to a country. Rather, a territory is a region for which a single territory module correctly provides all the services and information. As soon as one or more of the services or information differ, you should provide a different territory (but see below). Sometimes you may need to provide more than one territory for a single country. For example, to properly support the whole of Switzerland you would need a separate territory for each of the languages used.
Sometimes it might appear that a region needs to be split into several territories because of a single minor difference. In such cases you may consider supplying a single generic territory with an extra configuration option.
For example, to support the whole of the USA you might think you would need five territories identical in every respect, except for their use of time zones. Instead, you can provide a single USA territory that uses a command to configure the correct time zone. Because supporting different time zones is so common a requirement, the Territory module supplies the *Configure TimeZone command to do so.
For other such minor differences, you can provide your own configuration commands with your territory. For example, an Irish territory might have a configuration command to choose the currency symbol used ('£' for Northern Ireland, or 'Ir£' for Éire).
Remember that if you wish to store this configuration option in CMOS RAM, you must apply for an allocation from Acorn. See the chapter entitled CMOS RAM bytes.
Territory numbers and names must be allocated by Acorn; see the chapter entitled Territory, country and alphabet numbers and names.
R1 = &64 (reason code)
All registers preserved
This call is issued by the territory manager when it has started, announcing its presence to territory modules. Whenever a territory module receives this service call, it must issue the SWI Territory_Register to add itself to the territory manager's list of active territories.
R1 = &75 (reason code)
This service call should not be claimed.
All registers preserved
This is issued by the territory manager when a new territory has been selected as the machine territory.
This is used by the ROM modules to re-open their messages files. RAM resident modules do not need to take notice of this service call.
--
R0 = current territory's number
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns the territory number of the current territory (see the chapter entitled Loading and setting the current territory, and *Configure Territory).
None
R0 = territory number
R1 = pointer to table containing list of entry points for SWIs
R2 = value of R12 on entry to territory
R0 - R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call adds the given territory to the list of active territories, making it available for application programs. A territory module must issue this call from its initialisation entry point when it is initialised, and whenever it receives the service call Service_TerritoryManagerLoaded.
The table pointed to by R1 should contain 43 entries, each of which is a pointer to code to handle one of the SWIs that - although in the territory manager SWI chunk - are actually handled by a territory module. The first entry corresponds to the SWI &4304A, the second to SWI &4304B, and so on through to the last entry which is for SWI &43074. The entry and exit conditions for the SWI handler are as follows:
R0 - R9 | preserved from original entry to the SWI |
R11 | SWI handler number (0 - 42: ie offset within table) |
R12 | value of R2 passed to Territory_Register |
R13 | pointer to supervisor stack |
R0 - R9 | return values for the SWI |
For a full description of the SWIs themselves, see the chapter entitled Territory module SWIs.
Some of these SWI numbers (currently from &43062 upwards) are reserved for future expansion, and so you obviously cannot implement them. The code for such SWIs must return an error, not just return directly. The error number must be &43040 (for all territories), and the text should be 'Unknown Territory SWI' (or a translation to your territory's language and alphabet).
Removes the given territory from the list of active territories
R0 = territory number
R0 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call removes the given territory from the list of active territories. A territory module must issue this call from its finalisation entry point when it is killed.
None
R0 = territory number
R1 = pointer to buffer to contain name of territory in current territory
R2 = length of buffer
R1 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns the name of the given territory in the current territory's language and alphabet.
None
Checks if the given territory is currently present in the machine
R0 = territory number
R0 preserved
Z flag set if territory is currently loaded
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call checks if the given territory is currently present in the machine, and can be used by applications.
None
None
R0 = alphabet number
R1 = pointer to buffer to hold name of alphabet in current territory
R2 = length of buffer
R0 - R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns the name of the given alphabet in the current territory's language and alphabet.
None
None
R0 = territory number, or -1 to use current territory
R0 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call selects the correct alphabet for the given territory, and defines the system font appropriately.
None
R0 = pointer to 5 byte UTC time
R0 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call sets the clock to a given 5 byte UTC time.
None
None
--
R0 = pointer to name of current time zone (null terminated)
R1 = offset from UTC to current time zone, in centiseconds (signed 32-bit)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns information on the current time zone, giving its name in the current territory's language and alphabet, and its offset in centiseconds from UTC time.
None
R1 = pointer to 5 byte UTC time
R2 = pointer to word aligned buffer to hold ordinals
R1, R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time to UTC time ordinals. The word-aligned buffer pointed to by R2 holds the following:
Offset | Value |
---|---|
0 | centiseconds |
4 | seconds |
8 | minutes |
12 | hours (out of 24) |
16 | day number in month |
20 | month number in year |
24 | year number |
28 | day of week |
32 | day of year |
Not yet implemented
--
All registers preserved
Interrupt status is unaltered
Fast interrupts are enabled
Processor is in SVC mode
SWI is re-entrant
This call is not yet implemented, and returns immediately to the caller, with all registers preserved.
None
None
The following SWIs are provided by individual territory modules. The territory manager calls these SWIs using the entry points that a territory module passes by calling Territory_Register when it starts, or when the territory manager restarts. If you are writing your own territory module, you should see the documentation of Territory_Register on Territory_Register.
For all of the following SWIs, on entry R0 is used to specify to the territory manager the number of the territory module which will handle the call. A value of -1 means that the current territory (see the chapter entitled Loading and setting the current territory, and *Configure Territory) will handle the call.
Returns information on the time zones for the given territory
R0 = territory number, or -1 to use current territory
R0 = pointer to name of standard time zone for given territory
R1 = pointer to name of daylight saving (or summer) time for given territory
R2 = offset from UTC to standard time, in centiseconds (signed 32-bit)
R3 = offset from UTC to daylight saving time, in centiseconds (signed 32-bit)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns information on the time zones for the given territory, giving the names of the territory's standard time zone and daylight saving time, and their offsets from UTC time.
None
Converts a 5 byte UTC time into a string, giving the date and time
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to buffer for resulting string
R3 = size of buffer
R4 = pointer to null terminated format string
R0 = pointer to buffer (R2 on entry)
R1 = pointer to terminating 0 in buffer
R2 = number of bytes free in buffer
R3 = pointer to format string (R4 on entry)
R4 = preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time into a string, giving the date and time in a territory specific format given by the supplied format string.
The format string is copied directly into the result buffer, except when a '%' character appears. In this case the next two characters are treated as a special field name which is replaced by a component of the current time.
For details of the format field names see the chapter entitled Format field names.
This call is equivalent to the SWI OS_ConvertDateAndTime. You should use it in preference to that call, which just calls this SWI. The resulting string for both calls is in local time for the given territory, and in the local language and alphabet.
Territory_ConvertStandardDateAndTime, Territory_ConvertStandardDate, Territory_ConvertStandardTime
None
Converts a 5 byte UTC time into a string, giving the time and date
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to buffer for resulting string
R3 = size of buffer
R0 = pointer to buffer (R2 on entry)
R1 = pointer to terminating 0 in buffer
R2 = number of bytes free in buffer
R3 preserved.
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time into a string, giving the date and time in a standard territory specific format.
This call is equivalent to the SWI OS_ConvertStandardDateAndTime. You should use it in preference to that call, which just calls this SWI. The resulting string for both calls is in local time for the given territory, and in the local language and alphabet.
Territory_ConvertDateAndTime, Territory_ConvertStandardDate, Territory_ConvertStandardTime
None
Converts a 5 byte UTC time into a string, giving the date only
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to buffer for resulting string
R3 = size of buffer
R0 = pointer to buffer (R2 on entry)
R1 = pointer to terminating 0 in buffer
R2 = number of bytes free in buffer
R3 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time into a string, giving the date only in a standard territory specific format. The resulting string is in local time for the given territory, and in the local language and alphabet.
Territory_ConvertDateAndTime, Territory_ConvertStandardDateAndTime, Territory_ConvertStandardTime
None
Converts a 5 byte UTC time into a string, giving the time only
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to buffer for resulting string
R3 = size of buffer
R0 = pointer to buffer (R2 on entry)
R1 = pointer to terminating 0 in buffer
R2 = number of bytes free in buffer
R3 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time into a string, giving the time only in a standard territory specific format. The resulting string is in local time for the given territory, and in the local language and alphabet.
Territory_ConvertDateAndTime, Territory_ConvertStandardDateAndTime, Territory_ConvertStandardDate
Converts a 5 byte UTC time to local time ordinals for the given territory
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to word aligned buffer to hold ordinals
R1, R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a 5 byte UTC time to local time ordinals for the given territory. The word-aligned buffer pointed to by R2 holds the following:
Offset | Value |
---|---|
0 | centiseconds |
4 | seconds |
8 | minutes |
12 | hours (out of 24) |
16 | day number in month |
20 | month number in year |
24 | year number |
28 | day of week |
32 | day of year |
R0 = territory number, or -1 to use current territory
R1 = reason code:
R1 - R3 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts a time string to time ordinals. The time string is expected to be in the local language and alphabet for the given territory - as obtained from Territory_ConvertDateAndTime - with the appropriate format string. The word-aligned buffer pointed to by R3 holds the following:
Offset | Value |
---|---|
0 | centiseconds |
4 | seconds |
8 | minutes |
12 | hours (out of 24) |
16 | day number in month |
20 | month number in year |
24 | year number |
Values that are not present in the string are set to -1.
Converts local time ordinals for the given territory to a 5 byte UTC time
R0 = territory number, or -1 to use current territory
R1 = pointer to block to hold 5 byte UTC time
R2 = pointer to block containing ordinals
R1, R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call converts local time ordinals for the given territory to a 5 byte UTC time. The word-aligned buffer pointed to by R2 holds the following:
Offset | Value |
---|---|
0 | centiseconds |
4 | seconds |
8 | minutes |
12 | hours (out of 24) |
16 | day number in month |
20 | month number in year |
24 | year number |
Territory_ConvertTimeToUTCOrdinals, Territory_ConvertTimeToOrdinals
Returns the alphabet number that should be selected for the given territory
R0 = territory number, or -1 to use current territory
R0 = alphabet number used by the given territory (eg 101 = Latin1)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns the alphabet number that will be selected if Territory_SelectAlphabet is issued for the given territory.
None
Returns an identifier string for the alphabet that should be used for the given territory
R0 = territory number, or -1 to use current territory
R0 = pointer to identifier string for the alphabet used by the given territory
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns an identifier string for the alphabet that will be selected if Territory_SelectAlphabet is issued for the given territory (eg 'Latin1' for the Latin 1 alphabet).
The identifier of each alphabet is guaranteed to be the same no matter which territory returns it, and to consist of ASCII characters only (ie 7 bit characters).
Territory_AlphabetNumberToName, Territory_SelectAlphabet, Territory_Alphabet
R0 = territory number, or -1 to use current territory
--
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call selects the keyboard handler for the given territory.
None
None
Returns the direction of writing used in the given territory
R0 = territory number, or -1 to use current territory
R0 = bit field giving write direction
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns the direction of writing used in the given territory, as a bit field in R0:
Bit | Value | Meaning |
---|---|---|
0 | 0 | Writing goes from left to right |
1 | Writing goes from right to left | |
1 | 0 | Writing goes from top to bottom |
1 | Writing goes from bottom to top | |
2 | 0 | Lines of text are horizontal |
1 | Lines of text are vertical |
Bits 3 - 31 are reserved, and are returned as 0.
None
R0 = territory number, or -1 to use current territory
R1 = code for required character property table pointer
R0 = pointer to character property table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to a character property table, which is a 256 bit table indicating whether or not each character in the given territory's alphabet has a particular property. If a bit is set, the corresponding character has that property. Current property tables are:
Code | Meaning when bit set |
---|---|
0 | character is a control code |
1 | character is uppercase |
2 | character is lowercase |
3 | character is alphabetic character |
4 | character is a punctuation character |
5 | character is a white space character |
6 | character is a digit |
7 | character is a hex digit |
8 | character has an accent |
9 | character flows in the same direction as the territory's write direction |
10 | character flows in the reverse direction from the territory's write |
direction |
A character which doesn't have properties 9 or 10 is a natural character which flows in the same direction as the surrounding text. A character can't have both property 9 and property 10.
The C library uses this SWI to build tables for the isalnum, isalpha, iscntrl, isgraph, islower, isprint, ispunct, isspace and isupper functions/macros. If you're programming in C you can instead use these functions/macros to test a character's properties, provided you have previously called the setlocale function.
None
R0 = territory number, or -1 to use current territory
R0 = pointer to lower case table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to a lower case table, which is a 256 byte table giving the lower case version of each character in the given territory's alphabet. Characters that do not have a lower case version (eg numbers, punctuation) appear unchanged in the table.
The C library uses this SWI to build tables for the tolower function/macro. If you're programming in C you can instead use tolower to perform lower case conversion, provided you have previously called the setlocale function.
None
None
R0 = territory number, or -1 to use current territory
R0 = pointer to upper case table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to an upper case table, which is a 256 byte table giving the upper case version of each character in the given territory's alphabet. Characters that do not have a lower case version (eg numbers, punctuation) appear unchanged in the table.
The C library uses this SWI to build tables for the toupper function/macro. If you're programming in C you can instead use toupper to perform upper case conversion, provided you have previously called the setlocale function.
None
None
R0 = territory number, or -1 to use current territory
R0 = pointer to control character table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to a control character table, which is a 256 byte table giving the value of each character in the given territory's alphabet if it is typed while the Ctrl key is depressed. Characters that do not have a corresponding control character appear unchanged in the table.
None
None
R0 = territory number, or -1 to use current territory
R0 = pointer to unaccented character table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to an unaccented character table, which is a 256 byte table giving the unaccented version of each character in the given territory's alphabet. Characters that are normally unaccented appear unchanged in the table.
None
None
R0 = territory number, or -1 to use current territory
R0 = pointer to numeric value table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to a numeric value table, which is a 256 byte table giving the numeric value of each character in the given territory's alphabet when used as a digit. This includes non-decimal numbers: for example, in English '9' has the numeric value 9, and both 'A' and 'a' have the numeric value 10 (as in the hexadecimal number &9A). Characters that do not have a numeric value have the value 0 in the table.
None
None
R0 = territory number, or -1 to use current territory
R0 = pointer to numeric representation table
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns a pointer to a numeric representation table, which is a 16 byte table giving the 16 characters in the given territory's alphabet which should be used to represent the values 0 - 15. This includes non-decimal numbers: for example, in English the value 9 is represented by '9', and the value 10 by 'A' (as in the hexadecimal number &9A).
None
None
R0 = territory number, or -1 to use current territory
R1 = pointer to string1 (null terminated)
R2 = pointer to string2 (null terminated)
R3 = flags:
N set and V clear if string1 < string2 (LT)
Z set if string1 = string2 (EQ).
C set and Z clear if string1 > string2 (HI)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call compares two strings in the given territory's alphabet. It sets the same flags in the Processor Status Register (part of R15, the program counter) as the ARM's numeric comparison instructions do. You should always use this call to compare strings.
The C library function srtrcoll calls this SWI. If you're programming in C you can instead use srtrcoll to compare two strings, provided you have previously called the setlocale function.
None
Returns various information telling you how to format numbers
R0 = territory number, or -1 to use current territory
R1 = reason code (see below)
R0 = requested value
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call returns various information telling you how to format numbers, in particular monetary quantities. Current reason codes are:
The C library function localeconv calls this SWI. If you're programming in C you can instead use localeconv to return formatting information, provided you have previously called the setlocale function.
None
Returns various information about the given territory's calendar
R0 = territory number, or -1 to use current territory
R1 = pointer to 5 byte UTC time
R2 = pointer to 12 word buffer
R0 - R2 preserved
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call takes the 5 byte UTC time passed to it, and returns various information about the given territory's calendar in the buffer pointed to by R2:
Offset | Value |
---|---|
0 | number of first working day in the week |
4 | number of last working day in the week |
8 | number of months in the current year |
(current = one in which given time falls) | |
12 | number of days in the current month |
16 | maximum length of AM/PM string |
20 | maximum length of WE string |
24 | maximum length of W3 string |
28 | maximum length of DY string |
32 | maximum length of ST string (may be zero) |
36 | maximum length of MO string |
40 | maximum length of M3 string |
44 | maximum length of TZ string |
None
R0 = territory number, or -1 to use current territory
R1 = pointer to territory name in the alphabet of the territory pointed to by R0
(null terminated)
R0 = territory number for given territory (0 if territory unknown)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call accepts the name of one territory in the language of another territory (probably - but not necessarily - different). It returns the number of the named territory.
None
None
Transforms a string to allow direct territory independent string comparison
R0 = territory number, or -1 to use current territory
R1 = pointer to buffer to hold transformed string
R2 = pointer to source string (null terminated)
R3 = length of buffer to hold transformed string
R0 = length of transformed string (excluding terminating null)
Interrupt status is undefined
Fast interrupts are enabled
Processor is in SVC mode
Not defined
This call transforms the string pointed to by R2 and places the resulting string into the buffer pointed to by R1. The transformation is such that if a byte by byte comparison is applied to two transformed strings, then the strings will compare less than, equal to or greater than (as though Territory_Collate had been applied to the original strings).
If you call this SWI with R3 set to 0 on entry, R1 may be a null pointer. On exit R0 will contain the length of the transformed string, without altering the buffer. You may then set up a buffer of the required size (remembering to allow for the terminating null) before again calling this SWI to place the string in the buffer.
If R0 on exit is R3 on entry (ie the string was too long to fit in the buffer) the contents of the buffer are undefined, but writing will not have occurred beyond the bounds of the buffer, since this call never writes more than R3 bytes.
If copying takes place between strings that overlap the behaviour is undefined.
The C library function strxfrm calls this SWI. If you're programming in C you can instead use strxfrm to transform strings, provided you have previously called the setlocale function.
This call is not available in RISC OS 3 (version 3.00), and leaves the string unaltered in RISC OS 3 (version 3.10).
None
*Configure DST
None
*Configure DST sets the configured value for daylight saving time to ON.
The time zone is set when you configure the computer's territory, rather than by this command.
For each territory module that is registered, the territory manager uses the name of that territory's daylight saving time to supply an alternative name for this command. For example, if the UK territory module is registered, the command *Configure BST (short for British Summer Time) has the same effect as *Configure DST. This alternative name is also used by the *Status command (see *Status).
*Configure DST
*Configure NoDST, *Configure TimeZone
None
None
Sets the configured value for daylight saving time to OFF
*Configure NoDST
None
*Configure NoDST sets the configured value for daylight saving time to OFF.
The time zone is set when you configure the computer's territory, rather than by this command.
For each territory module that is registered, the territory manager uses the name of that territory's standard time to supply an alternative name for this command. For example, if the UK territory module is registered, the command *Configure GMT (short for Greenwich Mean Time) has the same effect as *Configure NoDST. This alternative name is also used by the *Status command (see *Status).
*Configure NoDST
*Configure DST, *Configure TimeZone
None
*Configure Territory territory
territory - The name or number of the territory to use. A list of parameters can be obtained with the *Territories command.
*Configure Territory sets the configured default territory for the machine. Use this command with caution; if you set a territory that is unavailable your computer will not start, and so you will have to reset your CMOS RAM.
*Configure Territory UK
*Territories
None
None
*Configure TimeZone [+|-]hours[:minutes]
hours - offset from UTC in hours
minutes - offset from UTC in minutes
*Configure TimeZone sets the configured local time offset from UTC. You should use this command to configure the local time on your machine rather than changing the system clock as was necessary for RISC OS 2. Using the *Configure TimeZone command will ensure that (since the system clock on all machines will represent UTC) timestamps on files will be valid across machines, networks will work correctly across time zones and electronic mail will be correctly timestamped.
The time offset must be in the range -13:45 to +13:45, and must be an exact multiple of 15 minutes.
*Configure TimeZone 9:30 - Northern Territory, Australia
*Configure TimeZone -5 - Eastern USA
*Configure DST, *Configure NoDST
None
*Territories
None
*Territories lists the currently loaded territory modules.
*Territories 1 UK
*Configure Territory
None