Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
RiscOS
Sources
Kernel
Commits
618ed7a8
Commit
618ed7a8
authored
13 years ago
by
Robert Sprowson
Browse files
Options
Download
Email Patches
Plain Diff
Spec for international module removed from Kernel sources.
parent
97f47c50
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
0 additions
and
250 deletions
+0
-250
s/PMF/Internat
s/PMF/Internat
+0
-250
No files found.
s/PMF/Internat
deleted
100644 → 0
View file @
97f47c50
; Copyright 1996 Acorn Computers Ltd
;
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
;
; http://www.apache.org/licenses/LICENSE-2.0
;
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;
; > Internat
The
International
module
========================
Author
:
Tim
Dobson
Name
:
International
Version
:
0.01
Circulation
:
Acorn
History
:
0.01:
17
-
Mar
-
89
to
03
-
Apr
-
89
:
First
draft
.
This
document
describes
the
International
module
version
1
.13
,
as
found
in
RISC
OS
2
.00.
It
also
describes
the
differences
between
this
version
and
version
1.05
(
the
version
in
Arthur
1
.20
)
.
The
International
module
allows
the
user
to
tailor
his
machine
for
use
in
different
countries
by
setting
:
-
a
)
the
mapping
of
keys
to
character
codes
(
the
*
keyboard
*),
and
b
)
the
mapping
from
character
codes
to
characters
(
the
*
alphabet
*),
or
c
)
both
mappings
a
)
and
b
)
at
once
(
the
*
country
*)
.
This
module
,
in
conjunction
with
the
MOS
,
controls
the
selection
of
these
mappings
,
but
the
interface
allows
the
actual
mappings
to
be
implemented
in
one
or
more
separate
relocatable
modules
,
via
the
service
mechanism
.
Explanation
of
terms
--------------------
Each
country
has
a
*
country
name
*
and
an
associated
*
country
number
*
.
Each
alphabet
has
an
*
alphabet
name
*
and
an
associated
*
alphabet
number
*
.
Each
country
has
an
associated
alphabet
,
but
a
given
alphabet
may
be
associated
with
more
than
one
country
.
Each
country
also
has
an
associated
keyboard
,
but
keyboards
do
not
have
their
own
names
or
numbers
; keyboards are specified by country name or country
number
.
Country
numbers
are
in
the
range
0
to
99
,
alphabet
numbers
are
in
the
range
100
to
126
.
Modules
can
provide
new
country
/
alphabet
names
/
numbers
by
responding
to
various
sub
-
reason
codes
of
service
call
Service_International
(
&43
)
.
Operating
system
interface
--------------------------
The
operating
system
maintains
the
following
variables
:
-
1
)
The
current
alphabet
number
,
ie
the
alphabet
number
of
the
currently
selected
alphabet
.
2
)
The
current
keyboard
number
,
ie
the
country
number
of
the
currently
selected
keyboard
.
3
)
The
current
country
number
,
ie
the
country
number
of
the
currently
selected
country
.
NB
This
may
not
be
relevant
if
the
alphabet
and
/
or
keyboard
have
been
set
separately
.
These
variables
are
controlled
by
a
number
of
OS_Byte
calls
:
-
OS_Byte
&46
-
Read
/
set
country
------------------------------
in
:
R1
<>
127
:
Select
country
whose
country
number
is
R1
.
out
:
R1
=
old
country
number
,
if
R1
on
entry
was
valid
.
R1
=
0
=>
R1
on
entry
did
not
correspond
to
a
known
country
(
checked
for
by
issuing
the
service
to
convert
the
country
number
into
an
alphabet
number
)
.
in
:
R1
=
127
:
Read
country
number
.
out
:
R1
=
current
country
number
.
OS_Byte
&47
-
Read
/
set
alphabet
/
keyboard
----------------------------------------
in
:
R1
in
range
0
..126
:
Select
alphabet
from
alphabet
number
or
country
number
specified
by
R1
.
out
:
R1
=
old
alphabet
number
,
if
R1
on
entry
was
valid
.
R1
=
0
=>
R1
on
entry
did
not
correspond
to
a
known
country
or
alphabet
.
in
:
R1
=
127
:
Read
alphabet
number
.
out
:
R1
=
current
alphabet
number
.
in
:
R1
in
range
128
..254
:
Select
keyboard
from
country
number
specified
by
(
R1
-
128
)
.
out
:
R1
=
old
keyboard
number
,
if
R1
on
entry
was
valid
.
R1
=
0
=>
R1
on
entry
did
not
correspond
to
a
known
country
.
in
:
R1
=
255
:
Read
keyboard
number
.
out
:
R1
=
current
keyboard
number
.
OS_Byte
&
F0
-
Read
country
number
---------------------------------
in
:
R1
=
0
R2
=
&FF
out
:
R1
=
current
country
number
This
call
is
provided
for
backwards
compatibility
with
international
versions
of
the
Master
Compact
.
Service
calls
-------------
The
service
call
Service_International
(
R1
=
&43
)
is
issued
at
various
times
by
the
operating
system
and
by
the
International
module
.
The
reason
for
the
call
is
specified
by
the
contents
of
R2
,
as
follows
:
-
R2
=
&00
:
Convert
country
name
to
country
number
in
:
R3
->
null
-
terminated
country
name
string
(
may
be
abbreviated
with
'.'
)
out
:
All
registers
preserved
if
country
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
R4
=
country
number
R2
=
&01
:
Convert
alphabet
name
to
alphabet
number
in
:
R3
->
null
-
terminated
alphabet
name
string
(
may
be
abbreviated
with
'.'
)
out
:
All
registers
preserved
if
alphabet
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
R4
=
alphabet
number
R2
=
&02
:
Convert
country
number
to
country
name
in
:
R3
=
country
number
R4
->
buffer
for
name
R5
=
buffer
length
out
:
All
registers
preserved
if
country
number
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
Buffer
holds
country
name
(
no
terminator
)
truncated
to
buffer
length
R5
=
number
of
characters
put
into
buffer
R2
=
&03
:
Convert
alphabet
number
to
alphabet
name
in
:
R3
=
alphabet
number
R4
->
buffer
for
name
R5
=
buffer
length
out
:
All
registers
preserved
if
alphabet
number
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
Buffer
holds
alphabet
name
(
no
terminator
)
truncated
to
buffer
length
R5
=
number
of
characters
put
into
buffer
R2
=
&04
:
Convert
country
number
to
alphabet
number
in
:
R3
=
country
number
out
:
All
registers
preserved
if
country
number
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
R4
=
alphabet
number
R2
=
&05
:
Define
a
range
of
characters
from
a
given
alphabet
in
:
R3
=
alphabet
number
R4
=
ASCII
code
of
first
character
in
range
R5
=
ASCII
code
of
last
character
in
range
out
:
All
registers
preserved
if
alphabet
number
not
recognised
,
otherwise
:
-
R1
=
0
(
call
claimed
)
If
the
alphabet
number
is
recognised
by
the
module
,
it
should
define
all
characters
in
the
range
R4
to
R5
inclusive
with
the
appropriate
character
shapes
(
using
VDU
23
,
code
,
...
)
.
Any
characters
which
do
not
have
defined
shapes
in
the
specified
alphabet
(
eg
codes
&80
-
&9F
in
Latin1
)
should
be
left
unchanged
.
R2
=
&06
:
Notification
that
the
keyboard
number
has
changed
.
in
:
R3
=
new
keyboard
number
R4
=
alphabet
number
associated
with
the
keyboard
number
(
not
necessarily
the
same
as
the
current
alphabet
number
)
out
:
All
registers
preserved
(
call
should
never
be
claimed
)
.
This
call
is
issued
so
that
modules
providing
keyboard
handlers
.
OS_CLI
commands
provided
------------------------
*
Alphabet
[<
country
name
>
|
<
alphabet
name
>]
*
Alphabet
sets
an
alphabet
from
a
country
or
alphabet
name
.
*
Alphabet
with
no
parameter
displays
the
currently
selected
alphabet
.
*
Country
[<
country
name
>]
*
Country
sets
the
appropriate
alphabet
and
keyboard
driver
for
a
particular
country
.
*
Country
with
no
parameter
displays
the
currently
selected
country
.
*
Keyboard
[<
country
name
>]
*
Keyboard
sets
the
keyboard
driver
for
a
particular
country
.
*
Keyboard
with
no
parameter
displays
the
currently
selected
keyboard
.
*
Alphabets
*
Alphabets
lists
the
names
of
the
available
alphabets
.
*
Countries
*
Countries
lists
the
names
of
known
countries
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment