Commit 93c7e2e0 authored by Neil Turton's avatar Neil Turton
Browse files

Import from cleaned 360 CD

parents
hdr/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
s/** gitlab-language=armasm linguist-language=armasm linguist-detectable=true
Extra features of FileSwitch, introduced in version 1.70
========================================================
i) Path variables work properly. Whenever <thing>: prefixes a path the
relevant path variable will be used (<thing>$Path). Paths in path variables
will be resolved in the same way. The following new errors may occur:
* Path variable had multiple entries and was used for a write operation
* One of the path variables used refers to itself
ii) FileSwitch manages directories. From now on FileSwitch will process a
path, resolving out wildcards, absolute directory references (%, @, \ and &)
and sorting out parent references (^). There should be minimal impact on how
things work, except for the following:
* All filing systems will get all absolute directories working the same.
* It may be possible to delete current and library directories.
* Paths which go through non-existant directories, but end up at an
existing object will work (eg a.b.c.d.^.^.^.f will end at a.f even
if b, c or d don't exist).
iii) FileSwitch provides support for MultiFS-like filing systems. The
support provided by FileSwitch means that 'seamless' access to MS-DOS hard
disc partition files, or MS-DOS discs, can be implemented. In effect, the
foreign disc format is not noticed by the user when it is accessed from the
desktop. As a consequence of this the object type has been extended:
Object type Meaning
0 Not present
1 File
2 Directory
3 File and Directory - this means this file has been
identified as a MultiFS file, and hence can be treated as a
directory too. Objects of this type may be treated as both
files and directories.
An alternative way to think of the object type is as a bit field:
Bit Meaning when set
0 Object may have file-like operations done to it
1 Object may have directory-like operations done to it
iv) Given a filename, FileSwitch can be asked to process it to produce a
mostly canonical form (mostly in the sense that the case may be different,
and wildcards may not be sorted out if the wildcarded object doesn't
exist!). So
* 'a' may be resolved to 'adfs::HardDisc4.$.current.a' if the current
directory is 'adfs::HardDisc4.$.current'.
* 'a*' may be resolved to the same thing if 'a' exists and is the first
match for 'a*', but, if there is no match for 'a*', then
'adfs::HardDisc4.$.current.a*' will be returned.
* 'A' may be resolved to 'adfs::HardDisc4.$.current.A', which should be
considered the same as 'adfs::HardDisc4.$.current.a'.
OS_FSControl 37 (FSControl_CanonicalisePath)
On entry
r0 = 37
r1 = Pointer to path to be canonicalised
r2 = Pointer to buffer to be filled in
r3 = Pointer to system variable name of path to use, or 0 if none
r4 = Pointer to default path to use if no system variable is specified
or if that variable doesn't exist, or 0 if no path is the default
r5 = Buffer length
On exit
Buffer filled in with 0-terminated canonicalised name, and
r5 = number of spare bytes in the buffer after and including
the 0 terminator. If the buffer would have overflowed,
then this will be taken to negative the overflow, but
the overflow won't actually have happened. This
provides a machanism for finding out how much buffer
is needed.
This may be used as a two-pass process:
Pass 1:
In:
r0 = 37
r1 = Pointer to path
r2 = 0
r5 = 0
Out:
r5 = -(length of canonicalised path)
Pass 2:
Claim buffer of the right size (1-r5, not just -r5 as a space for the terminator is needed)
In:
r0 = 37
r1 = Pointer to path
r2 = Pointer to claimed buffer
r5 = size of claimed buffer
Out:
r5 should be 0, but check to make sure!
v) Given a file handle, fileswitch will return the name of the file.
OS_Args 7 (OSArgs_ReadPath)
On entry
r0 = 7
r1 = file handle
r2 = Pointer to buffer to be filled in
r5 = Buffer length
On exit
Buffer filled in with 0-terminated canonicalised name, and
r5 = number of spare bytes in the buffer after the 0 terminator.
If the buffer would have overflowed, then this will be
taken to negative the overflow, but the overflow won't
actually have happened. This provides a machanism for
finding out how much buffer is needed.
This call can be used in the same way as OS_FSControl 37.
vi) FileSwitch now processes the conversion of file info into filetype
information.
OS_FSControl 38 (FSControl_InfoToFileType)
On entry
r0 = 38
r1 = a pointer to the object's name
r2 = object's load address
r3 = object's execute address
r4 = object's length
r5 = objects's attributes
r6 = object's type (file/directory)
On exit
r2 = object's type:
Special values:
-1 untyped
&1000 directory
&2000 application directory (directory whose name starts with a '!').
OS_File 20-23 (OSFile_ReadWithType, _ReadWithTypePath, _ReadWithTypePathVar
and _ReadWithTypeNoPath)
On Entry
r0 = 20, 21, 22 or 23
r1 = Pointer to name of object
On exit
r0 = object's type
r1 unchanged
r2 = Object's load address or top word of date stamp
r3 = Object's execute address or bottom word of date stamp
r4 = Object's length
r5 = object's attributes
r6 = Object's type:
Special values:
-1 untyped (r2, r3 are load and execute address)
&1000 directory
&2000 application directory (directory whose name starts with a '!').
OS_GBPB 12 (OSGBPB_ReadDirEntriesFileType)
On entry
r0 = 12
r1 = pointer to directory name
r2 = start address of data in memory (word aligned)
r3 = number of names to read from directory
r4 = offset of first item to read from directory (0 for start)
r5 = buffer length
r6 = Pointer to (Wildcarded) name to match
On exit
r0-r2 unchanged
r3 = number of objects read
r4 = offset of next item to read
r5, r6 unchanged
This call is similar in function to OS_GBPB 10, except the buffer is filled
in with entries like this:
Offset Contents
0 Load address or high word of date stamp
4 Execute address of low word of date stamp
8 Length
12 File attributes
16 Object type
20 Object's file type (as for OS_File 20-23)
24 Object's name (null terminated)
This diff is collapsed.
Mike,
A new UpCall_Modifying file reason code:
R0 = 3 (UpCall_ModifyingFile)
R1 = external handle
R2 = size to ensure
R8 = filing system information word
R9 = 512 (upfsfile_EnsureSize)
Called when a file's size is ensured.
--Jonathan
PRM Bugs
FSEntry_Func 11 (page 992)
r6 = 0 (cannot specify a context) is wrong. A context can be specified.
OS_FSControl 1 (page 886)
The default library is typically & (this being the default for FileCore
based filing systems), not $.Library as stated in the PRM.
OS_FSControl 11 (page 897)
r2 0 : old filing system to be selected
should read
r2 > 0 : filing system number specified
The following should be noted about OS_FSControl 11:
r1 in Regs out
blah.blah vlsgf r1=r1 in
r2 = -1
r3 = 0
<FS>:blah r1 past :
r2 = number of <FS>
r3 = 0
<FS>#fred:blah r1 past :
r2 = number of <FS>
r3 past #
<path>:blah r1 = r1 in
r2 = -1
r3 = 0
<path>#fred:blah r1 = r1 in
r2 = -1
r3 past #
#fred:blah r1 = r1 in
r2 = -1
r3 past #
This diff is collapsed.
New service calls specific to or used by FileSwitch:
Service_DiscDismounted
This is used by FileSwitch to Unset directories on eht dismounted disc. For
details of this new service call see FileCore.doc.Services
Service_CloseFile (&68)
Purpose:
To request that any module with a file open which is, or is a child of the
named object, that can also be closed without causing too much hassle should
close it. This would be issued to cause, for example, a DOSFS partition file
to be closed by FileSwitch. This doesn't cause problems as the partition
would be spontaneously reopened when needed later.
To issue this service call:
SWI OS_ServiceCall
Entry
r1 = &68 (Service_CloseFile)
r2 = object needing to be closed
r3 = 0
Exit
r1,r2 preserved
r3 = number of files closed as a result of this service call.
The value in r2 should be a pointer to a nul-terminated string which is a
canonical path of the object to be closed.
To respond to this service call:
Entry
r1 = &68 (Service_CloseFile)
r2 = object needing to be closed
r3 = number of files closed so far this service call
Exit
r1,r2 preserved
r3 incremented by the number of files you closed.
The spec of r2 is as above. This service call should not be claimed. If you,
the receiver of this service call, has any file open which is, or is a child
of the named object which you can close without much bother, then this
should be done. Increment r3 by the number of files you closed before
passing this service on.
I would suggest supporting RISC OS 3.10 properly as it saves you lots of
faff. Although more entry points may be needed, the effort to provide full
functionality (directory setting, processing of ^.s in paths and the such)
is much reduced as it is handled mostly by FileSwitch. I would recommend the
following settings (assuming a network flavour filing system).
Filing system information word:
Bit Setting Meaning
31 ? If set you suport special fields - probably want this clear
30 0 Streams aren't interactive (information bit only)
29 0 Null length file names are not allowed
28 0 Don't allow an open call if the file doesn't exist
27 0 Don't tell the filing system about flush calls (may want 1 instead)
26 0 FSEntry_File 9 (read info, no length) not provided
25 0 FSEntry_Func 20 (*FileInfo) not provided
24 0 FSEntry_Func 18 (set contexts) not provided
23 1 MultiFS extensions supported
22 0 Paths always given to filing system from $. onwards
21 0 FileSwitch stores directory settings (*Dir, *Lib etc) for this filing system
20 1 FileSwitch does *Load with Open, GBPB, close
19 1 FileSwitch does *Save with Open, GBPB, close
18 0 FileSwitch should process *Access strings itself
17 0 No extra info word
16 0 Filing system isn't read only
15-8 ? Limit on number of open files - 0 for no limit
7-0 ? Your filing system's number
The following Filing system entry points will be used:
FSEntry_Open
0 read
2 update
Return when a file is opened with the file information word set to:
Bit Setting Meaning
31 ? Write permitted to file - return as appropriate
30 ? As above, for Read
29 0 Object isn't a directory
28 0 Buffered GBPB only
27 0 Stream isn't interractive
And quote a buffer size which is a power of 2 (256 bytes?) and the
length of the file. If you can get the allocate space too then
return that, otherwise round up the file's size to the next multiple
of the buffer size and return that.
These settings mean the following interfaces will be used:
FSEntry_GetBytes
FSEntry_PutBytes
These will be the multiple byte varieties. You will be asked to read
beyond the file's end - simply read to the file's end and don't
return an error. This happens as FileSwitch thinks it's driving a
disc-based filing system and reads the half-filled block at a
file's end just before modifying it and writing the whole block
back.
FSEntry_Args
3 Write file extent (size) (just before the file is closed
after modification)
6 Notify of flush (happens just before close after modification)
7 Ensure file size - return without error if no appropriate
action.
8 Write zeroes
9 Read file datestamp
10 ImageStampIs. Return without error as this is only
appropriate to removable disc based filing systems (FileCore)
FSEntry_File
1 Write catalogue information
5 Read catalogue information
6 Delete object
7 Create file
8 Create directory
*10 ReadBlockSize - error this if you want
FSEntry_Func
(7 Set filing system options replaced by _Func 28)
8 Rename
*10 Boot filing system - do nothing if booting inappropriate
(11 Read name and boot option of disc replaced by _Func 23 and 27)
14 Read directory entries
15 Read directory entries and information
16 Shutdown
*17 Print start up banner - depends on entry in FS info block being -1
*19 Read diretory entries and information - can error this one
23 CanonicaliseSpecialAndDisc
*24 Resolve wildcard - return with r4=-1 to get FileSwitch to do this
*25 ReadDefectList - error this if you want
*26 AddDefect - error this if you want
27 ReadBootOption - don't error this, return 0 instead
28 WriteBootOption - error this, or do nothing, it's up to you
*29 UsedSpaceMap - error this
30 ReadFreeSpace - this might be useful to support
*31 NameDisc - inappropriate for network - error it?
32 StampImage - don't error this, do an appropriate action, or do nothing
*33 ObjectAtOffset - error this
Those entries in () are for information only - they won't be called. Those
entries with a * can have trivial implementations.
All paths will be fully canonicalised by FileSwitch before the filing system
gets them, that is where appropriate will include special field (optional
as determined by CanonicaliseSpecialAndDisc and FS infor word bit), disc
name (as determined by CanonicaliseSpecialAndDisc), and path from $. The
filing system need not handle any of:
Directory setting - *Dir, *Lib etc
Parsing paths relative to set directories (@.thing.blah or %.doofa)
Performing catalogue listings of any sort (*Cat, *Ex etc)
Parsing *Access strings
^.s in paths
As these are handled by FileSwitch.
I believe writing such a filing system is less work than the RISC OS 2.00
way where the large gaps in calls used are needed to be supported.
Duffnesses:
UnknownFilingSystem:Filing system or path '%0:' not present
International-wise only: UnknownActionType:No %0 action specified for this file type
NoSelectedFilingSystem:No selected filing system
IsADirectory:Object is a directory
FSNotSpecial:Filing system does not support special fields
MultipartPathUsed:Path variable had multiple entries and was used for a write operation
Isn't, but should be used:
WildCards:'%0' contains wild cards
Hard to test:
CantSetLibOrURD:Can't set URD or library on %0
FileSwitchDataLost:Data lost
UnalignedFSEntry:Unaligned filing system entry point
NotEnoughStackForFSEntry:Not enough stack to call filing system
BadBufferSizeForStream:Bad buffer size
UnknownFilingSystem:Unknown filing system
NoRoomForTransient:No room to run transient
CantStartApplication:Unable to start application
NothingToCopy:Nothing to copy
NothingToDelete:Nothing to delete
NotEnoughMemoryForWildcardResolution:Not enough memory for wildcard resolution
NotEnoughStackForWildcardResolution:Not enough stack for wildcard resolution
MultiFSDoesNotSupportGBPB11:The OS_GBPB 11 call is not supported by MultiFS images
FSGAError:%0: FileSwitch GetArea
FSFAError:%0: FileSwitch FreeArea
FSGRError:%0: FileSwitch GetRMA
OnFileHandle:%0 on file handle %1
InvalidErrorBlock:Invalid error block
CantOpenFile:Can't open '%0'
Util_FilesDone (r1=tag for single string with %0=util_nfiles and %1=bytes)
Util_PrintName (r7=1st record (subst into %0), r8=2nd record (subst into %1), r2 = tag)
Util_GetConfirmYN doesn't print anything now
New:
Util_PrintNameNL (r7=1st record (subst into %0), r8=2nd record (subst into %1), r2 = tag)
Util_PrintNameWithSize NL (r7=1st record (subst into %0), r8=2nd record (subst into %1), r9=size (bytes), r2 = tag)
To Do:
------
make sure disc option appears on cat title
International stuff:
1. 8 bit characters in names on *ALL* filing systems !!!
2. Text direction for names.
3. New interfaces for above.
4. Time and date in * commands (info ex fileinfo)
5. Territory_TextToString
6. Uppercasing for UpperCase macro
JC's unusual app$path corrupting linked strings? Maybe caused by memory shortage.
Add namedisc interface
Add 'access level' interface (public/private)
file left open after *load to memory
5069 - daft error message from filer
5140 *OPT 4,n info not handled - Add boot option interface
5148 Moving files to Econet produces error 'File Y not found'
5158 net:!ArmBoot file not found
5159 Heap Full: Fileswitch get area
5163 *Mount interaction - check this
5164 More URD problems with Econet
Ensure don't OS_File 5 on adfs::0.$
New open flag: 'Enable open on disc image' to get adfs::0.$ to open properly
Pending external reponses:
--------------------------
5179 Fileinfo no longer gives hex for file size.
5196 FileInfo does not work as it did before!
Done:
-----
ro-5028 - filecore in use when using task window
5038 - system$path not consistent
5050 - open $ fails
5051 *EX gets dates wrong
5080 - *remove gives error
5082 can't find root
5088 not found error for existing file
5089 !apps not runnable from fileservers
5090 renaming to change case fails
5095 econet dir viewing gives file not found msgs for apps dirs
5096 file can not be loaded from net
1.74:
Add NoDir, NoURD, NoLib swi interfaces & add commands
5094 dir no args changed functionality
5173 *Nolib doesn't work
5139 *EX prints "directory which should be "Directory"
5150 inellegant variable names
5133 FileInfo gives incorrect information
5194 bad handling of * in *copy.
5160 FileSwitch doesn't build full pathnames
1.80:
Fix *Cat/Ex etc to display MultiFS images as directories, not files.
Add defect interface
5097 filer window update failing
5098 more update failure - can't see new files created outside desktop
5142 MultiFS files don't get upcalled properly
The Truncate Feature.
This feature is a scheme whereby filing systems which cannot handle long
filenames for one reason or another can be controlled as to what they do
about it. Under normal circumstances they used to give a 'Bad name' error if
a long filename was passed to them. Under the new scheme this property can
be changed so that when they are given a long filename they truncate it
before using it.
This is controlled by the *configure Truncate command. Two possible
parameters are allowed: Configure Truncate on and Configure Truncate off.
This controls the CMOS byte &1c, bit 0. Bit 0 being 0 means off and 1 means
on. When the Truncate bit is on then filenames will be truncated instead of
errors being generated.
As a filing system this bit should be read (and other bits in that byte
masked off) when the filing system is initialised.
Clarifications of openning a file in the new FileSwitch:
open_nodir on File+Directories should open the object without an error. So,
I suppose the bit has to mean 'Give me an error if this object, when opened
has no data that can be read from it using GBPBs and related calls'.
Access:*Access changes the attributes of all objects matching the wildcarded specification.|MAttributes:|ML(ock)|I|ILock object against deletion|MR(ead)|I|IRead permission|MW(rite)|I|IWrite permission|M/R,/W,/RW|IPublic read and write permission|MSyntax: *Access <object> [<attributes>]
Cat:*Cat lists all the objects in a directory (default is current directory).|MSyntax: *Cat [<directory>]
CDir:*CDir creates a directory of given name (and size on Net only).|MSyntax: *CDir <directory> [<size in entries>]
Copy:*Copy copies one or more objects that match the given wildcarded specification between directories. Options are taken from the system variable Copy$Options and those given to the command.|MOptions: (use ~ to force off,eg. ~C)|MA(ccess)|IForce destination access to same as source {on}|MC(onfirm)|IPrompt for confirmation of each copy {on}|MD(elete)|IDelete the source object after copy {off}|MF(orce)|I|IForce overwriting of existing objects {off}|ML(ook)|I|ILook at destination before loading source file {off}|MN(ewer)|I|ICopy only if source is more recent than destination {off}|MP(rompt)|IPrompt for the disc to be changed as needed in copy {off}|MQ(uick)|I|IUse application workspace to speed file transfer {off}|MR(ecurse)|ICopy subdirectories and contents {off}|MS(tamp)|I|IRestamp datestamped files after copying {off}|MsT(ructure)|ICopy only the directory structure {off}|MV(erbose)|IPrint information on each object copied {on}|MSyntax: *Copy <source spec> <destination spec> [<options>]
Count:*Count adds up the size of one or more files that match the given wildcarded specification. Options are taken from the system variable Count$Options and those given to the command.|MOptions: (use ~ to force off,eg. ~R)|MC(onfirm)|IPrompt for confirmation of each count {off}|MR(ecurse)|ICount subdirectories and contents {on}|MV(erbose)|IPrint information on each file counted {off}|MSyntax: *Count <file spec> [<options>]
Dir:*Dir selects a directory as the current directory (default is user root directory).|MSyntax: *Dir [<directory>]
EnumDir:*EnumDir creates a file of filenames from a directory that match the supplied wildcarded specification (default is *).|MSyntax: *EnumDir <directory> <output file> [<pattern>]
Ex:*Ex lists all the objects in a directory together with their file information (default is current directory).|MSyntax: *Ex [<directory>]
FileInfo:*FileInfo yields the full file information of an object.|MSyntax: *FileInfo <object>
Info:*Info lists the file information of all objects matching the given wildcarded specification.|MSyntax: *Info <object>
LCat:*LCat lists all the objects in a subdirectory relative to the library (default is current library).|MSyntax: *LCat [<directory>]
LEx:*LEx lists all the objects in a subdirectory of the library together with their file information (default is current library).|MSyntax: *LEx [<directory>]
Lib:*Lib selects a directory as the current library (default is filing system dependent).|MSyntax: *Lib [<directory>]
Rename:*Rename changes the name of an object. It cannot be used to move objects between filing systems or between discs on the same filing system; *Copy with the D(elete) option must be used instead.|MSyntax: *Rename <object> <new name>
Run:*Run loads and executes the named file, passing optional parameters to it.|MSyntax: *Run <filename> [<parameters>]
SetType:*SetType sets the file type of the named file to the given textual file type or hexadecimal number. If the file is not already datestamped then it is also stamped with the current time and date.|M"*Show File$Type*" displays currently known file types.|MSyntax: *SetType <filename> <file type>
Shut:*Shut closes all open files on all filing systems.|MSyntax: *Shut
ShutDown:*ShutDown closes all open files on all filing systems, logs off file servers and causes hard discs to be parked.|MSyntax: *ShutDown
Stamp:*Stamp sets the datestamp on a file to the current time and date. If the file is not already datestamped then it is given file type Data (&FFD).|MSyntax: *Stamp <filename>
Up:*Up moves the current directory up the directory structure by the specified number of levels.|MSyntax: *Up [<levels>]
Wipe:*Wipe deletes one or more objects that match the given wildcard specification. Options are taken from the system variable Wipe$Options and those given to the command.|MOptions: (use ~ to force off,eg. ~V)|MC(onfirm)|IPrompt for confirmation of each deletion {on}|MF(orce)|I|IForce deletion of locked objects {off}|MR(ecurse)|IDelete subdirectories and contents {off}|MV(erbose)|IPrint information on each object deleted {on}|MSee also *Delete.|MSyntax: *Wipe <file spec> [<options>]
Back:*Back swaps the current and previous directories.|MSyntax: *Back
URD:*URD selects a directory as the user root directory (default restores the URD to & or $ as appropriate).|MSyntax: *URD [<directory>]
NoDir:*NoDir unsets the currently selected directory on the temporary filing system.|MSyntax: *NoDir
NoURD:*NoURD unsets the user root directory on the temporary filing system.|MSyntax: *NoURD
NoLib:*NoLib unsets the library directory on the temporary filing system.|MSyntax: *NoLib
FileSystem:*Configure FileSystem sets the default filing system.|MSyntax: *Configure FileSystem <fs name>|<fs number>
Truncate:*Configure Truncate sets whether filenames should be truncated when too long.|MSyntax: *Configure Truncate on|off
SUBT > Sources.HelpSrc
[ International_Help <> 0
Access_Help = "HFLSACC",0
Access_Syntax = "SFLSACC",0
Cat_Help = "HFLSCAT",0
Cat_Syntax = "SFLSCAT",0
CDir_Help = "HFLSCDR",0
CDir_Syntax = "SFLSCDR",0
[ hascopy
Copy_Help = "HFLSCPY",0
Copy_Syntax = "SFLSCPY",0
]
[ hascount
Count_Help = "HFLSCNT",0
Count_Syntax = "SFLSCNT",0
]
Dir_Help = "HFLSDIR",0
Dir_Syntax = "SFLSDIR",0
EnumDir_Help = "HFLSEDR",0
EnumDir_Syntax = "SFLSEDR",0
Ex_Help = "HFLSEX",0
Ex_Syntax = "SFLSEX",0
FileInfo_Help = "HFLSFIN",0
FileInfo_Syntax = "SFLSFIN",0
Info_Help = "HFLSINF",0
Info_Syntax = "SFLSINF",0
LCat_Help = "HFLSLCT",0
LCat_Syntax = "SFLSLCT",0
LEx_Help = "HFLSLEX",0
LEx_Syntax = "SFLSLEX",0
Lib_Help = "HFLSLIB",0
Lib_Syntax = "SFLSLIB",0
Rename_Help = "HFLSREN",0
Rename_Syntax = "SFLSREN",0
Run_Help = "HFLSRUN",0
Run_Syntax = "SFLSRUN",0
SetType_Help = "HFLSSTY",0
SetType_Syntax = "SFLSSTY",0
Shut_Help = "HFLSSHT",0
Shut_Syntax = "SFLSSHT",0
ShutDown_Help = "HFLSSHD",0
ShutDown_Syntax = "SFLSSHD",0
Stamp_Help = "HFLSSTM",0
Stamp_Syntax = "SFLSSTM",0
Up_Help = "HFLSUP",0
Up_Syntax = "SFLSUP",0
[ haswipe
Wipe_Help = "HFLSWIP",0
Wipe_Syntax = "SFLSWIP",0
]
[ Version >= 170
Back_Help = "HFLSBCK",0
Back_Syntax = "SFLSBCK",0
URD_Help = "HFLSURD",0
URD_Syntax = "SFLSURD",0
NoDir_Help = "HFLSNDR",0
NoDir_Syntax = "SFLSNDR",0
NoURD_Help = "HFLSNUR",0
NoURD_Syntax = "SFLSNUR",0
NoLib_Help = "HFLSNLB",0
NoLib_Syntax = "SFLSNLB",0
]
FileSystem_Help = "HFLSCFS",0
FileSystem_Syntax = "SFLSCFS",0
Truncate_Help = "HFLSCTR",0
Truncate_Syntax = "SFLSCTR",0
|
Access_Help
= "*"
= TokenEscapeChar,Token0
= " changes the attributes of all objects matching the"
= " wildcarded specification."
= 13,"Attributes:"
= 13,"L(ock)",9,9
= "Lock object against deletion"
= 13,"R(ead)",9,9
= "Read permission"
= 13,"W(rite)",9,9
= "Write permission"
= 13,"/R,/W,/RW",9
= "Public read and write permission"
= 13
Access_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <object> [<attributes>]",0
Cat_Help
= "*"
= TokenEscapeChar,Token0
= " lists all the objects in a directory"
= " (default is current directory)."
= 13
Cat_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
CDir_Help
= "*"
= TokenEscapeChar,Token0
= " creates a directory of given name"
= " (and size on Net only)."
= 13
CDir_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <directory> [<size in entries>]",0
[ hascopy
Copy_Help
= "*"
= TokenEscapeChar,Token0
= " copies one or more objects that match the given"
= " wildcarded specification between directories."
= " Options are taken from the system variable Copy$Options "
= " and those given to the command."
= 13,"Options: (use ~ to force off,eg. ~C)"
= 13,"A(ccess)",9
= "Force destination access to same as source {on}"
= 13,"C(onfirm)",9
= "Prompt for confirmation of each copy {on}"
= 13,"D(elete)",9
= "Delete the source object after copy {off}"
= 13,"F(orce)",9,9
= "Force overwriting of existing objects {off}"
= 13,"L(ook)",9,9
= "Look at destination before loading source file {off}"
= 13,"N(ewer)",9,9
= "Copy only if source is more recent than destination {off}"
= 13,"P(rompt)",9
= "Prompt for the disc to be changed as needed in copy {off}"
= 13,"Q(uick)",9,9
= "Use application workspace to speed file transfer {off}"
= 13,"R(ecurse)",9
= "Copy subdirectories and contents {off}"
= 13,"S(tamp)",9,9
= "Restamp datestamped files after copying {off}"
= 13,"sT(ructure)",9
= "Copy only the directory structure {off}"
= 13,"V(erbose)",9
= "Print information on each object copied {on}"
= 13
Copy_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <source spec> <destination spec> [<options>]",0
]
[ hascount
Count_Help
= "*"
= TokenEscapeChar,Token0
= " adds up the size of one or more files that"
= " match the given wildcarded specification."
= " Options are taken from the system variable Count$Options "
= " and those given to the command."
= 13,"Options: (use ~ to force off,eg. ~R)"
= 13,"C(onfirm)",9
= "Prompt for confirmation of each count {off}"
= 13,"R(ecurse)",9
= "Count subdirectories and contents {on}"
= 13,"V(erbose)",9
= "Print information on each file counted {off}"
= 13
Count_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <file spec> [<options>]",0
]
Dir_Help
= "*"
= TokenEscapeChar,Token0
= " selects a directory as the current directory"
= " (default is user root directory)."
= 13
Dir_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
EnumDir_Help
= "*"
= TokenEscapeChar,Token0
= " creates a file of filenames from a directory that"
= " match the supplied wildcarded specification (default is *)."
= 13
EnumDir_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <directory> <output file> [<pattern>]",0
Ex_Help
= "*"
= TokenEscapeChar,Token0
= " lists all the objects in a directory together"
= " with their file information (default is current directory)."
= 13
Ex_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
FileInfo_Help
= "*"
= TokenEscapeChar,Token0
= " yields the full file information of an object."
= 13
FileInfo_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <object>",0
Info_Help
= "*"
= TokenEscapeChar,Token0
= " lists the file information of all objects matching"
= " the given wildcarded specification."
= 13
Info_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <object>",0
LCat_Help
= "*"
= TokenEscapeChar,Token0
= " lists all the objects in a subdirectory relative to "
= " the library (default is current library)."
= 13
LCat_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
LEx_Help
= "*"
= TokenEscapeChar,Token0
= " lists all the objects in a subdirectory of"
= " the library together with their file information"
= " (default is current library)."
= 13
LEx_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
Lib_Help
= "*"
= TokenEscapeChar,Token0
= " selects a directory as the current library"
= " (default is filing system dependent)."
= 13
Lib_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
Rename_Help
= "*"
= TokenEscapeChar,Token0
= " changes the name of an object."
= " It cannot be used to move objects between filing systems or"
= " between discs on the same filing system;"
= " *Copy with the D(elete) option must be used instead."
= 13
Rename_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <object> <new name>",0
Run_Help
= "*"
= TokenEscapeChar,Token0
= " loads and executes the named file,"
= " passing optional parameters to it."
= 13
Run_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <filename> [<parameters>]",0
SetType_Help
= "*"
= TokenEscapeChar,Token0
= " sets the file type of the named file to the given"
= " textual file type or hexadecimal number. If the file is"
= " not already datestamped then it is also stamped with the"
= " current time and date."
= 13
= """*Show File$Type*"" displays currently known file types."
= 13
SetType_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <filename> <file type>",0
Shut_Help
= "*"
= TokenEscapeChar,Token0
= " closes all open files on all filing systems."
= 13
Shut_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= "",0
ShutDown_Help
= "*"
= TokenEscapeChar,Token0
= " closes all open files on all filing systems,"
= " logs off file servers and causes hard discs to be parked."
= 13
ShutDown_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= "",0
Stamp_Help
= "*"
= TokenEscapeChar,Token0
= " sets the datestamp on a file to the current time and date."
= " If the file is not already datestamped then it is given"
= " file type Data (&FFD)."
= 13
Stamp_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <filename>",0
Up_Help
= "*"
= TokenEscapeChar,Token0
= " moves the current directory up the directory"
= " structure by the specified number of levels."
= 13
Up_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<levels>]",0
[ haswipe
Wipe_Help
= "*"
= TokenEscapeChar,Token0
= " deletes one or more objects that match"
= " the given wildcard specification."
= " Options are taken from the system variable Wipe$Options "
= " and those given to the command."
= 13,"Options: (use ~ to force off,eg. ~V)"
= 13,"C(onfirm)",9
= "Prompt for confirmation of each deletion {on}"
= 13,"F(orce)",9,9
= "Force deletion of locked objects {off}"
= 13,"R(ecurse)",9
= "Delete subdirectories and contents {off}"
= 13,"V(erbose)",9
= "Print information on each object deleted {on}"
= 13
= "See also *Delete."
= 13
Wipe_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " <file spec> [<options>]",0
]
[ Version >= 170
Back_Help
= "*"
= TokenEscapeChar,Token0
= " swaps the current and previous directories."
= 13
Back_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= 0
URD_Help
= "*"
= TokenEscapeChar,Token0
= " selects a directory as the user root directory"
= " (default restores the URD to & or $ as appropriate)."
= 13
URD_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= " [<directory>]",0
NoDir_Help
= "*"
= TokenEscapeChar,Token0
= " unsets the currently selected directory on the temporary filing system."
= 13
NoDir_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= 0
NoURD_Help
= "*"
= TokenEscapeChar,Token0
= " unsets the user root directory on the temporary filing system."
= 13
NoURD_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= 0
NoLib_Help
= "*"
= TokenEscapeChar,Token0
= " unsets the library directory on the temporary filing system."
= 13
NoLib_Syntax
= "Syntax: *"
= TokenEscapeChar,Token0
= 0
]
FileSystem_Help
= "*Configure "
= TokenEscapeChar,Token0
= " sets the default filing system."
= 13
FileSystem_Syntax
= "Syntax: *Configure "
= TokenEscapeChar,Token0
= " <fs name>|<fs number>",0
Truncate_Help
= "*Configure "
= TokenEscapeChar,Token0
= " sets whether filenames should be truncated when too long."
= 13
Truncate_Syntax
= "Syntax: *Configure "
= TokenEscapeChar,Token0
= " on|off",0
]
ALIGN
END
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
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.
# 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.
#
# Makefile for FileSwitch
#
# ***********************************
# *** C h a n g e L i s t ***
# ***********************************
# Date Name Description
# ---- ---- -----------
# 25-May-94 AMcC Created.
#
#
# Paths
#
EXP_HDR = <export$dir>
#
# Generic options:
#
MKDIR = cdir
AS = aasm
CP = copy
RM = remove
CCFLAGS = -c -depend !Depend -IC:
ASFLAGS = -depend !Depend -Stamp -quit -module -To $@ -From
CPFLAGS = ~cfr~v
#
# Program specific options:
#
COMPONENT = FileSwitch
SOURCE = s.FileSwitch
TARGET = rm.FileSwitch
EXPORTS = ${EXP_HDR}.LowFSI \
${EXP_HDR}.HighFSI
#
# Generic rules:
#
rom: ${TARGET}
@echo ${COMPONENT}: rom module built
export: ${EXPORTS}
@echo ${COMPONENT}: export complete
install_rom: ${TARGET}
${CP} ${TARGET} ${INSTDIR}.${COMPONENT} ${CPFLAGS}
@echo ${COMPONENT}: rom module installed
clean:
${RM} ${TARGET}
${RM} s.TokHelpSrc
@echo ${COMPONENT}: cleaned
resources:
${MKDIR} ${RESDIR}.${COMPONENT}
${CP} Resources.${LOCALE}.Messages ${RESDIR}.${COMPONENT}.Messages ${CPFLAGS}
@echo ${COMPONENT}: resource files copied
${TARGET}: ${SOURCE} s.TokHelpSrc
${AS} ${ASFLAGS} ${SOURCE}
s.TokHelpSrc: Hdr:Tokens HelpSrc
tokenise Hdr:Tokens HelpSrc $@
${EXP_HDR}.LowFSI: hdr.LowFSI
${CP} hdr.LowFSI $@ ${CPFLAGS}
${EXP_HDR}.HighFSI: hdr.HighFSI
${CP} hdr.HighFSI $@ ${CPFLAGS}
# Dynamic dependencies:
| 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.
|
Dir <Obey$Dir>
amu_machine clean
| 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.
|
Dir <Obey$Dir>
amu_machine rom
File added
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment