Home » Archimedes archive » Micro User » MU 1992-09.adf » ArcFSExtra » Documents/NewSWIs

Documents/NewSWIs

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Micro User » MU 1992-09.adf » ArcFSExtra
Filename: Documents/NewSWIs
Read OK:
File size: 3274 bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
ArcFS 0.50/2.00 Documentation
-----------------------------

New Software Interrupts
-----------------------

The following Software Interrupts are not supported on read only versions
before 0.50 or read/write versions before 2.00. Most of them are equivalent
to older SWIs, but with different (more logical) register use. There are
also additional SWIs to support the additional functions provided by
0.50/2.00 onwards. All software written to work with ArcFS 0.50/2.00 or
later must use these SWIs, rather than the old ones.

You should not use a mixture of SWIs from both sets in an application (the
only exception being if you wish your application to be compatible with all
versions of ArcFS, but want to allow use of the 0.50/2.00 improvements if
the user has these versions or later).

The pointer to an archive pathname is always passed to / from a SWI in R1.
The pointer to an archive name is always passed in R6 (to tie in with
FileSwitch's use of R6 as a pointer to a special field).

The allocated SWI chunk base is &437C0.

*****************************************************************************

SWI "ArcFS_ReadOptions"                                         &437C8
-----------------------                                         ------

On entry: -

On exit : R0=option flags (&ee)
          R1=version number*100 (i.e. 50 or 200)
          R2=compression type as described for "ArcFS_SetCompression"
          R3=no. of bits for crunch or compress (or 0) 

This returns the current status of ArcFS.

Bit 0 of ee is set if file garble is set or clear otherwise.
Bit 7 is set if autocompaction is enabled.
Bit 6 is set if ArcFS is to display the hourglass during operations.
Bit 5 is set if the Re-Arrangement Buffer size is to be auto-calculated.
The other bits of ee are reserved for future expansion.

*****************************************************************************

SWI "ArcFS_HourglassOn"                                         &437C9
-----------------------                                         ------

On entry: -

On exit : -

This SWI enables use of the hourglass during ArcFS operations.

*****************************************************************************

SWI "ArcFS_HourglassOff"                                        &437CA
------------------------                                        ------

On entry: -

On exit : -

This SWI disables use of the hourglass during ArcFS operations.

*****************************************************************************

SWI "ArcFS_SetEncryption"                                       &437CB
-------------------------                                       ------

On entry: R0=encryption method (none=0, garble=1)
          R1=pointer to password (control termainated, up to 32 bytes)

On exit : R0 & R1 preserved

This SWI sets the encryption method and password used. (It is exactly the
same as the old SWI "ArcFS_Encryption".)
Note that, for security reasons, you cannot read the currently set password,
only whether or not a password has been set.

*****************************************************************************

SWI "ArcFS_SetCompression"        r/w version only               &437CC
--------------------------        ----------------               ------

On entry: R2=compression format (&82,&83,&88 or &FF)
          R3=no. bits for &88 and &FF

On exit : R2 & R3 preserved

This SWI sets the data compression format to be used:
  &82 Store
  &83 Pack
  &88 Crunch
  &FF Compress
Possible errors are 'Bits range error' and 'Unknown compression format'

*****************************************************************************

SWI "ArcFS_AutoCompOn"            r/w version only               &437CD
----------------------            ----------------               ------

On entry: -

On exit : -

This SWI switches auto compact on.

*****************************************************************************

SWI "ArcFS_AutoCompOff"           r/w version only               &437CE
-----------------------           ----------------               ------

On entry: -

On exit : -

This SWI switches auto compact off.

*****************************************************************************

SWI "ArcFS_ArcInfo"                                              &437CF
-------------------                                              ------

On entry: R3=archive number

On exit : R1=pointer to archive pathname (null terminated)
          R2=pointer to archive headers (internal use only)
          R3=next archive number (i.e. increased by 1) or -1 if this is last.
          R6=pointer to archive name (null terminated)

This SWI gives the name and pathname of the archive whose number is given by
R3 on entry.The first archive has number zero. If R6 is zero on exit then
there are not this many open archives.
Unlike previous versions of ArcFS there is no limit to the number of open
archives.
In order to construct a list of open archives, e.g. for a Wimp menu, you
should set R3 to zero and call this SWI repeatedly, until it returns with
R3=-1.

*****************************************************************************

SWI "ArcFS_OpenArc"                                              &437D0
-------------------                                              ------

On entry: R1=pointer to pathname (control terminated)
          R6=pointer to name (control terminated) or 0.

On exit : R1 preserved
          R6=pointer to name (preserved unless it was 0 on entry.)

This SWI opens an archive. Possible errors are 'This archive is already open
with a different name' or 'An archive with this name is already open'. If
the archive is already open with the same name then this SWI will return
without doing anything.

If R6 is 0 on entry then ArcFS will attempt to open the archive using its
leafname as the archive name.

*****************************************************************************

SWI "ArcFS_CloseArc"                                             &437D1
--------------------                                             ------

On entry: R6=pointer to name (control terminated)

On exit : R6 preserved

This SWI closes an archive. Possible error is 'No archive with this name is
open'.

*****************************************************************************

SWI "ArcFS_CreateArc"             r/w version only               &437D2
---------------------             ----------------               ------

On entry: R1=pointer to pathname for new archive

On exit : R1 is preserved

This SWI creates (but does not open) a new archive.

*****************************************************************************

SWI "ArcFS_CompactArc"            r/w version only               &437D3
----------------------            ----------------               ------

On entry: R6=pointer to archive name or 0

On exit : R6 is preserved

This SWI compacts the named archive (or that containing the CSD) to removed
gaps left by deletions and file overwrites.

*****************************************************************************

SWI "ArcFS_ObjectInfo"                                           &437D4
----------------------                                           ------

On entry: R1=pointer to object name
          R6=pointer to archive name (or 0 for archive containing CSD)

On exit : R0=object type
          R1=compression type
          R2=load address
          R3=exec address
          R4=uncompressed length
          R5=object attributes (inc. CRC and no. bits)
          R6=compressed length
          R7=offset of compressed data within archive (if object is a file)

This SWI returns full information on an archived object. It returns all the
information that OS_File 17 does, plus the compression type, compressed
length and offset to start of data (for a file).

On exit, R0 contains the object type:

          R0    Type
          --    ----
          0     Not found
          1     File found
          2     Directory found

If a directory is found then the uncompressed and compressed lengths are
totals of all the files contained within those directories and sub-
directories (whereas OS_File 17 will just return &FFFFFFFF as the length for
an ArcFS directory).

The attributes consist of the file CRC in the top 16 bits, the number of
bits if the file was crunched or compressed in bits 8-16 and the access
rights (as for other filing systems) in the bottom 8 bits.

If R6 is zero on entry the object name pointed to by R1 is from the ArcFS CSD
If R6 is a pointer to an archive name then the object name is from the root
directory of that archive.

You must not include a filing system name or archive name in the object name.
E.g. infomation on arcfs#Archive:$.Object would be found entering this SWI
with R1 pointing to the text '$.Object' or 'Object' and R6 pointing to
'Archive'.

*****************************************************************************

SWI "ArcFS_ReadBufferSizes"                                      &437D5
---------------------------                                      ------

On entry: -

On exit : R1=size of Raw Data Buffer in bytes.
          R2=size of Re-Arrangement (Compact / More headers) Buffer in bytes.
          R3=no. of header gaps created at once.

This SWI returns information about the size of buffers being used and the
number of header gaps created at once when ArcFS needs more room for headers
in an archive.

*****************************************************************************

SWI "ArcFS_SetRDBSize"                                           &437D6
----------------------                                           ------

On entry: R1=new size of Raw Data Buffer in bytes or 0.

On exit : R1=new size of Raw Data Buffer (Preserved unless R1<16 on entry).

This SWI sets the size of the Raw Data Buffer.
If it is zero then the default of 8K will be used.
If it is between 1 and 15 then the min. size of 16 bytes will be used.

*****************************************************************************

SWI "ArcFS_SetRABSize"            r/w version only               &437D7
----------------------            ----------------               ------

On entry: R2=new size of Re-Arrangement buffer in bytes or 0.

On exit : R2=new size of RAB (Preserved unless R2=0 on entry).

This SWI sets the size of the archive Re-Arrangement Buffer.
If R2 is 0 on entry then RAB auto-calculation mode will be set and ArcFS
will use as much memory as is required anyway to save a file with the
selected compression format and RDB size. This is subject to a minimum of
48k.
If R2 is non-zero then RAB auto-calculation mode will be cleared.

*****************************************************************************

SWI "ArcFS_SetHeaderGaps"         r/w version only               &437D8
-------------------------         ----------------               ------

On entry: R3=no. of gaps

On exit : R3 preserved

This SWI sets the number of header gaps to be created at once.

*****************************************************************************

SWI "ArcFS_NamedArcInfo"                                         &437D9
------------------------                                         ------

On entry: R6=pointer to archive name.

On exit : R1=pointer to archive pathname.
          R2=pointer to archive headers (internal use only).
          R6 preserved

This SWI returns the pathname of an archive. It is used by !ArcFSInfo to
obtain archive pathnames.

*****************************************************************************

SWI "ArcFS_GetArcName"                                           &437DA
----------------------                                           ------

On entry: R1=pointer to archive pathname.

On exit : R1 preserved
          R6=pointer to archive name.

          If the archive is not open then the SWI will return with R6=0 and
          the carry flag set.

This SWI returns the name (which should be used in the special field) of an
archive. If it is not open, then it will return with R6=0 and the carry flag
set (no error is returned). It should be used by desktop applications when
opening archives as follows:

\ ARM code example of opening archives in desktop applications.
\ R1 contains pointer to arc pathname.
SWI   "ArcFS_GetArcName"
SWICS "ArcFS_OpenArc"
BVS   forgetold


.forgetold
\ This will be called when there is already an archive open with the
  leafname of the archive that you are trying to open.
\ You should ask the user if they wish to forget the old one.
\ If they reply yes, then you should close the archive with the name pointed   to by R6 (this will have been set up by ArcFS_OpenArc), close any filer
  windows on that archive by using *Filer_CloseDir arcfs#<name>, and try to
  open the archive again.

*****************************************************************************

00000000  41 72 63 46 53 20 30 2e  35 30 2f 32 2e 30 30 20  |ArcFS 0.50/2.00 |
00000010  44 6f 63 75 6d 65 6e 74  61 74 69 6f 6e 0a 2d 2d  |Documentation.--|
00000020  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000030  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 4e 65 77  |-----------..New|
00000040  20 53 6f 66 74 77 61 72  65 20 49 6e 74 65 72 72  | Software Interr|
00000050  75 70 74 73 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |upts.-----------|
00000060  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 54 68  |------------..Th|
00000070  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 53 6f 66 74  |e following Soft|
00000080  77 61 72 65 20 49 6e 74  65 72 72 75 70 74 73 20  |ware Interrupts |
00000090  61 72 65 20 6e 6f 74 20  73 75 70 70 6f 72 74 65  |are not supporte|
000000a0  64 20 6f 6e 20 72 65 61  64 20 6f 6e 6c 79 20 76  |d on read only v|
000000b0  65 72 73 69 6f 6e 73 0a  62 65 66 6f 72 65 20 30  |ersions.before 0|
000000c0  2e 35 30 20 6f 72 20 72  65 61 64 2f 77 72 69 74  |.50 or read/writ|
000000d0  65 20 76 65 72 73 69 6f  6e 73 20 62 65 66 6f 72  |e versions befor|
000000e0  65 20 32 2e 30 30 2e 20  4d 6f 73 74 20 6f 66 20  |e 2.00. Most of |
000000f0  74 68 65 6d 20 61 72 65  20 65 71 75 69 76 61 6c  |them are equival|
00000100  65 6e 74 0a 74 6f 20 6f  6c 64 65 72 20 53 57 49  |ent.to older SWI|
00000110  73 2c 20 62 75 74 20 77  69 74 68 20 64 69 66 66  |s, but with diff|
00000120  65 72 65 6e 74 20 28 6d  6f 72 65 20 6c 6f 67 69  |erent (more logi|
00000130  63 61 6c 29 20 72 65 67  69 73 74 65 72 20 75 73  |cal) register us|
00000140  65 2e 20 54 68 65 72 65  20 61 72 65 0a 61 6c 73  |e. There are.als|
00000150  6f 20 61 64 64 69 74 69  6f 6e 61 6c 20 53 57 49  |o additional SWI|
00000160  73 20 74 6f 20 73 75 70  70 6f 72 74 20 74 68 65  |s to support the|
00000170  20 61 64 64 69 74 69 6f  6e 61 6c 20 66 75 6e 63  | additional func|
00000180  74 69 6f 6e 73 20 70 72  6f 76 69 64 65 64 20 62  |tions provided b|
00000190  79 0a 30 2e 35 30 2f 32  2e 30 30 20 6f 6e 77 61  |y.0.50/2.00 onwa|
000001a0  72 64 73 2e 20 41 6c 6c  20 73 6f 66 74 77 61 72  |rds. All softwar|
000001b0  65 20 77 72 69 74 74 65  6e 20 74 6f 20 77 6f 72  |e written to wor|
000001c0  6b 20 77 69 74 68 20 41  72 63 46 53 20 30 2e 35  |k with ArcFS 0.5|
000001d0  30 2f 32 2e 30 30 20 6f  72 0a 6c 61 74 65 72 20  |0/2.00 or.later |
000001e0  6d 75 73 74 20 75 73 65  20 74 68 65 73 65 20 53  |must use these S|
000001f0  57 49 73 2c 20 72 61 74  68 65 72 20 74 68 61 6e  |WIs, rather than|
00000200  20 74 68 65 20 6f 6c 64  20 6f 6e 65 73 2e 0a 0a  | the old ones...|
00000210  59 6f 75 20 73 68 6f 75  6c 64 20 6e 6f 74 20 75  |You should not u|
00000220  73 65 20 61 20 6d 69 78  74 75 72 65 20 6f 66 20  |se a mixture of |
00000230  53 57 49 73 20 66 72 6f  6d 20 62 6f 74 68 20 73  |SWIs from both s|
00000240  65 74 73 20 69 6e 20 61  6e 20 61 70 70 6c 69 63  |ets in an applic|
00000250  61 74 69 6f 6e 20 28 74  68 65 0a 6f 6e 6c 79 20  |ation (the.only |
00000260  65 78 63 65 70 74 69 6f  6e 20 62 65 69 6e 67 20  |exception being |
00000270  69 66 20 79 6f 75 20 77  69 73 68 20 79 6f 75 72  |if you wish your|
00000280  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 74 6f 20  | application to |
00000290  62 65 20 63 6f 6d 70 61  74 69 62 6c 65 20 77 69  |be compatible wi|
000002a0  74 68 20 61 6c 6c 0a 76  65 72 73 69 6f 6e 73 20  |th all.versions |
000002b0  6f 66 20 41 72 63 46 53  2c 20 62 75 74 20 77 61  |of ArcFS, but wa|
000002c0  6e 74 20 74 6f 20 61 6c  6c 6f 77 20 75 73 65 20  |nt to allow use |
000002d0  6f 66 20 74 68 65 20 30  2e 35 30 2f 32 2e 30 30  |of the 0.50/2.00|
000002e0  20 69 6d 70 72 6f 76 65  6d 65 6e 74 73 20 69 66  | improvements if|
000002f0  0a 74 68 65 20 75 73 65  72 20 68 61 73 20 74 68  |.the user has th|
00000300  65 73 65 20 76 65 72 73  69 6f 6e 73 20 6f 72 20  |ese versions or |
00000310  6c 61 74 65 72 29 2e 0a  0a 54 68 65 20 70 6f 69  |later)...The poi|
00000320  6e 74 65 72 20 74 6f 20  61 6e 20 61 72 63 68 69  |nter to an archi|
00000330  76 65 20 70 61 74 68 6e  61 6d 65 20 69 73 20 61  |ve pathname is a|
00000340  6c 77 61 79 73 20 70 61  73 73 65 64 20 74 6f 20  |lways passed to |
00000350  2f 20 66 72 6f 6d 20 61  20 53 57 49 20 69 6e 20  |/ from a SWI in |
00000360  52 31 2e 0a 54 68 65 20  70 6f 69 6e 74 65 72 20  |R1..The pointer |
00000370  74 6f 20 61 6e 20 61 72  63 68 69 76 65 20 6e 61  |to an archive na|
00000380  6d 65 20 69 73 20 61 6c  77 61 79 73 20 70 61 73  |me is always pas|
00000390  73 65 64 20 69 6e 20 52  36 20 28 74 6f 20 74 69  |sed in R6 (to ti|
000003a0  65 20 69 6e 20 77 69 74  68 0a 46 69 6c 65 53 77  |e in with.FileSw|
000003b0  69 74 63 68 27 73 20 75  73 65 20 6f 66 20 52 36  |itch's use of R6|
000003c0  20 61 73 20 61 20 70 6f  69 6e 74 65 72 20 74 6f  | as a pointer to|
000003d0  20 61 20 73 70 65 63 69  61 6c 20 66 69 65 6c 64  | a special field|
000003e0  29 2e 0a 0a 54 68 65 20  61 6c 6c 6f 63 61 74 65  |)...The allocate|
000003f0  64 20 53 57 49 20 63 68  75 6e 6b 20 62 61 73 65  |d SWI chunk base|
00000400  20 69 73 20 26 34 33 37  43 30 2e 0a 0a 2a 2a 2a  | is &437C0...***|
00000410  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000450  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 0a 0a 53 57 49 20  |**********..SWI |
00000460  22 41 72 63 46 53 5f 52  65 61 64 4f 70 74 69 6f  |"ArcFS_ReadOptio|
00000470  6e 73 22 20 20 20 20 20  20 20 20 20 20 20 20 20  |ns"             |
00000480  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000490  20 20 20 20 20 20 20 20  20 20 20 20 26 34 33 37  |            &437|
000004a0  43 38 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |C8.-------------|
000004b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 20 20 20 20 20 20  |----------      |
000004c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000004e0  20 20 20 2d 2d 2d 2d 2d  2d 0a 0a 4f 6e 20 65 6e  |   ------..On en|
000004f0  74 72 79 3a 20 2d 0a 0a  4f 6e 20 65 78 69 74 20  |try: -..On exit |
00000500  3a 20 52 30 3d 6f 70 74  69 6f 6e 20 66 6c 61 67  |: R0=option flag|
00000510  73 20 28 26 65 65 29 0a  20 20 20 20 20 20 20 20  |s (&ee).        |
00000520  20 20 52 31 3d 76 65 72  73 69 6f 6e 20 6e 75 6d  |  R1=version num|
00000530  62 65 72 2a 31 30 30 20  28 69 2e 65 2e 20 35 30  |ber*100 (i.e. 50|
00000540  20 6f 72 20 32 30 30 29  0a 20 20 20 20 20 20 20  | or 200).       |
00000550  20 20 20 52 32 3d 63 6f  6d 70 72 65 73 73 69 6f  |   R2=compressio|
00000560  6e 20 74 79 70 65 20 61  73 20 64 65 73 63 72 69  |n type as descri|
00000570  62 65 64 20 66 6f 72 20  22 41 72 63 46 53 5f 53  |bed for "ArcFS_S|
00000580  65 74 43 6f 6d 70 72 65  73 73 69 6f 6e 22 0a 20  |etCompression". |
00000590  20 20 20 20 20 20 20 20  20 52 33 3d 6e 6f 2e 20  |         R3=no. |
000005a0  6f 66 20 62 69 74 73 20  66 6f 72 20 63 72 75 6e  |of bits for crun|
000005b0  63 68 20 6f 72 20 63 6f  6d 70 72 65 73 73 20 28  |ch or compress (|
000005c0  6f 72 20 30 29 20 0a 0a  54 68 69 73 20 72 65 74  |or 0) ..This ret|
000005d0  75 72 6e 73 20 74 68 65  20 63 75 72 72 65 6e 74  |urns the current|
000005e0  20 73 74 61 74 75 73 20  6f 66 20 41 72 63 46 53  | status of ArcFS|
000005f0  2e 0a 0a 42 69 74 20 30  20 6f 66 20 65 65 20 69  |...Bit 0 of ee i|
00000600  73 20 73 65 74 20 69 66  20 66 69 6c 65 20 67 61  |s set if file ga|
00000610  72 62 6c 65 20 69 73 20  73 65 74 20 6f 72 20 63  |rble is set or c|
00000620  6c 65 61 72 20 6f 74 68  65 72 77 69 73 65 2e 0a  |lear otherwise..|
00000630  42 69 74 20 37 20 69 73  20 73 65 74 20 69 66 20  |Bit 7 is set if |
00000640  61 75 74 6f 63 6f 6d 70  61 63 74 69 6f 6e 20 69  |autocompaction i|
00000650  73 20 65 6e 61 62 6c 65  64 2e 0a 42 69 74 20 36  |s enabled..Bit 6|
00000660  20 69 73 20 73 65 74 20  69 66 20 41 72 63 46 53  | is set if ArcFS|
00000670  20 69 73 20 74 6f 20 64  69 73 70 6c 61 79 20 74  | is to display t|
00000680  68 65 20 68 6f 75 72 67  6c 61 73 73 20 64 75 72  |he hourglass dur|
00000690  69 6e 67 20 6f 70 65 72  61 74 69 6f 6e 73 2e 0a  |ing operations..|
000006a0  42 69 74 20 35 20 69 73  20 73 65 74 20 69 66 20  |Bit 5 is set if |
000006b0  74 68 65 20 52 65 2d 41  72 72 61 6e 67 65 6d 65  |the Re-Arrangeme|
000006c0  6e 74 20 42 75 66 66 65  72 20 73 69 7a 65 20 69  |nt Buffer size i|
000006d0  73 20 74 6f 20 62 65 20  61 75 74 6f 2d 63 61 6c  |s to be auto-cal|
000006e0  63 75 6c 61 74 65 64 2e  0a 54 68 65 20 6f 74 68  |culated..The oth|
000006f0  65 72 20 62 69 74 73 20  6f 66 20 65 65 20 61 72  |er bits of ee ar|
00000700  65 20 72 65 73 65 72 76  65 64 20 66 6f 72 20 66  |e reserved for f|
00000710  75 74 75 72 65 20 65 78  70 61 6e 73 69 6f 6e 2e  |uture expansion.|
00000720  0a 0a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..**************|
00000730  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000760  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0a  |***************.|
00000770  0a 53 57 49 20 22 41 72  63 46 53 5f 48 6f 75 72  |.SWI "ArcFS_Hour|
00000780  67 6c 61 73 73 4f 6e 22  20 20 20 20 20 20 20 20  |glassOn"        |
00000790  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000007b0  20 26 34 33 37 43 39 0a  2d 2d 2d 2d 2d 2d 2d 2d  | &437C9.--------|
000007c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 20  |--------------- |
000007d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000007f0  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 0a 0a  |        ------..|
00000800  4f 6e 20 65 6e 74 72 79  3a 20 2d 0a 0a 4f 6e 20  |On entry: -..On |
00000810  65 78 69 74 20 3a 20 2d  0a 0a 54 68 69 73 20 53  |exit : -..This S|
00000820  57 49 20 65 6e 61 62 6c  65 73 20 75 73 65 20 6f  |WI enables use o|
00000830  66 20 74 68 65 20 68 6f  75 72 67 6c 61 73 73 20  |f the hourglass |
00000840  64 75 72 69 6e 67 20 41  72 63 46 53 20 6f 70 65  |during ArcFS ope|
00000850  72 61 74 69 6f 6e 73 2e  0a 0a 2a 2a 2a 2a 2a 2a  |rations...******|
00000860  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000008a0  2a 2a 2a 2a 2a 2a 2a 0a  0a 53 57 49 20 22 41 72  |*******..SWI "Ar|
000008b0  63 46 53 5f 48 6f 75 72  67 6c 61 73 73 4f 66 66  |cFS_HourglassOff|
000008c0  22 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |"               |
000008d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000008e0  20 20 20 20 20 20 20 20  20 26 34 33 37 43 41 0a  |         &437CA.|
000008f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000900  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
00000910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000930  2d 2d 2d 2d 2d 2d 0a 0a  4f 6e 20 65 6e 74 72 79  |------..On entry|
00000940  3a 20 2d 0a 0a 4f 6e 20  65 78 69 74 20 3a 20 2d  |: -..On exit : -|
00000950  0a 0a 54 68 69 73 20 53  57 49 20 64 69 73 61 62  |..This SWI disab|
00000960  6c 65 73 20 75 73 65 20  6f 66 20 74 68 65 20 68  |les use of the h|
00000970  6f 75 72 67 6c 61 73 73  20 64 75 72 69 6e 67 20  |ourglass during |
00000980  41 72 63 46 53 20 6f 70  65 72 61 74 69 6f 6e 73  |ArcFS operations|
00000990  2e 0a 0a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |...*************|
000009a0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000009e0  0a 0a 53 57 49 20 22 41  72 63 46 53 5f 53 65 74  |..SWI "ArcFS_Set|
000009f0  45 6e 63 72 79 70 74 69  6f 6e 22 20 20 20 20 20  |Encryption"     |
00000a00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000a20  20 20 26 34 33 37 43 42  0a 2d 2d 2d 2d 2d 2d 2d  |  &437CB.-------|
00000a30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000a40  2d 2d 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |--              |
00000a50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000a60  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 0a  |         ------.|
00000a70  0a 4f 6e 20 65 6e 74 72  79 3a 20 52 30 3d 65 6e  |.On entry: R0=en|
00000a80  63 72 79 70 74 69 6f 6e  20 6d 65 74 68 6f 64 20  |cryption method |
00000a90  28 6e 6f 6e 65 3d 30 2c  20 67 61 72 62 6c 65 3d  |(none=0, garble=|
00000aa0  31 29 0a 20 20 20 20 20  20 20 20 20 20 52 31 3d  |1).          R1=|
00000ab0  70 6f 69 6e 74 65 72 20  74 6f 20 70 61 73 73 77  |pointer to passw|
00000ac0  6f 72 64 20 28 63 6f 6e  74 72 6f 6c 20 74 65 72  |ord (control ter|
00000ad0  6d 61 69 6e 61 74 65 64  2c 20 75 70 20 74 6f 20  |mainated, up to |
00000ae0  33 32 20 62 79 74 65 73  29 0a 0a 4f 6e 20 65 78  |32 bytes)..On ex|
00000af0  69 74 20 3a 20 52 30 20  26 20 52 31 20 70 72 65  |it : R0 & R1 pre|
00000b00  73 65 72 76 65 64 0a 0a  54 68 69 73 20 53 57 49  |served..This SWI|
00000b10  20 73 65 74 73 20 74 68  65 20 65 6e 63 72 79 70  | sets the encryp|
00000b20  74 69 6f 6e 20 6d 65 74  68 6f 64 20 61 6e 64 20  |tion method and |
00000b30  70 61 73 73 77 6f 72 64  20 75 73 65 64 2e 20 28  |password used. (|
00000b40  49 74 20 69 73 20 65 78  61 63 74 6c 79 20 74 68  |It is exactly th|
00000b50  65 0a 73 61 6d 65 20 61  73 20 74 68 65 20 6f 6c  |e.same as the ol|
00000b60  64 20 53 57 49 20 22 41  72 63 46 53 5f 45 6e 63  |d SWI "ArcFS_Enc|
00000b70  72 79 70 74 69 6f 6e 22  2e 29 0a 4e 6f 74 65 20  |ryption".).Note |
00000b80  74 68 61 74 2c 20 66 6f  72 20 73 65 63 75 72 69  |that, for securi|
00000b90  74 79 20 72 65 61 73 6f  6e 73 2c 20 79 6f 75 20  |ty reasons, you |
00000ba0  63 61 6e 6e 6f 74 20 72  65 61 64 20 74 68 65 20  |cannot read the |
00000bb0  63 75 72 72 65 6e 74 6c  79 20 73 65 74 20 70 61  |currently set pa|
00000bc0  73 73 77 6f 72 64 2c 0a  6f 6e 6c 79 20 77 68 65  |ssword,.only whe|
00000bd0  74 68 65 72 20 6f 72 20  6e 6f 74 20 61 20 70 61  |ther or not a pa|
00000be0  73 73 77 6f 72 64 20 68  61 73 20 62 65 65 6e 20  |ssword has been |
00000bf0  73 65 74 2e 0a 0a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |set...**********|
00000c00  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000c40  2a 2a 2a 0a 0a 53 57 49  20 22 41 72 63 46 53 5f  |***..SWI "ArcFS_|
00000c50  53 65 74 43 6f 6d 70 72  65 73 73 69 6f 6e 22 20  |SetCompression" |
00000c60  20 20 20 20 20 20 20 72  2f 77 20 76 65 72 73 69  |       r/w versi|
00000c70  6f 6e 20 6f 6e 6c 79 20  20 20 20 20 20 20 20 20  |on only         |
00000c80  20 20 20 20 20 20 26 34  33 37 43 43 0a 2d 2d 2d  |      &437CC.---|
00000c90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00000ca0  2d 2d 2d 2d 2d 2d 2d 20  20 20 20 20 20 20 20 2d  |-------        -|
00000cb0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 20  |--------------- |
00000cc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 2d 2d  |              --|
00000cd0  2d 2d 2d 2d 0a 0a 4f 6e  20 65 6e 74 72 79 3a 20  |----..On entry: |
00000ce0  52 32 3d 63 6f 6d 70 72  65 73 73 69 6f 6e 20 66  |R2=compression f|
00000cf0  6f 72 6d 61 74 20 28 26  38 32 2c 26 38 33 2c 26  |ormat (&82,&83,&|
00000d00  38 38 20 6f 72 20 26 46  46 29 0a 20 20 20 20 20  |88 or &FF).     |
00000d10  20 20 20 20 20 52 33 3d  6e 6f 2e 20 62 69 74 73  |     R3=no. bits|
00000d20  20 66 6f 72 20 26 38 38  20 61 6e 64 20 26 46 46  | for &88 and &FF|
00000d30  0a 0a 4f 6e 20 65 78 69  74 20 3a 20 52 32 20 26  |..On exit : R2 &|
00000d40  20 52 33 20 70 72 65 73  65 72 76 65 64 0a 0a 54  | R3 preserved..T|
00000d50  68 69 73 20 53 57 49 20  73 65 74 73 20 74 68 65  |his SWI sets the|
00000d60  20 64 61 74 61 20 63 6f  6d 70 72 65 73 73 69 6f  | data compressio|
00000d70  6e 20 66 6f 72 6d 61 74  20 74 6f 20 62 65 20 75  |n format to be u|
00000d80  73 65 64 3a 0a 20 20 26  38 32 20 53 74 6f 72 65  |sed:.  &82 Store|
00000d90  0a 20 20 26 38 33 20 50  61 63 6b 0a 20 20 26 38  |.  &83 Pack.  &8|
00000da0  38 20 43 72 75 6e 63 68  0a 20 20 26 46 46 20 43  |8 Crunch.  &FF C|
00000db0  6f 6d 70 72 65 73 73 0a  50 6f 73 73 69 62 6c 65  |ompress.Possible|
00000dc0  20 65 72 72 6f 72 73 20  61 72 65 20 27 42 69 74  | errors are 'Bit|
00000dd0  73 20 72 61 6e 67 65 20  65 72 72 6f 72 27 20 61  |s range error' a|
00000de0  6e 64 20 27 55 6e 6b 6e  6f 77 6e 20 63 6f 6d 70  |nd 'Unknown comp|
00000df0  72 65 73 73 69 6f 6e 20  66 6f 72 6d 61 74 27 0a  |ression format'.|
00000e00  0a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.***************|
00000e10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000e40  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0a 0a  |**************..|
00000e50  53 57 49 20 22 41 72 63  46 53 5f 41 75 74 6f 43  |SWI "ArcFS_AutoC|
00000e60  6f 6d 70 4f 6e 22 20 20  20 20 20 20 20 20 20 20  |ompOn"          |
00000e70  20 20 72 2f 77 20 76 65  72 73 69 6f 6e 20 6f 6e  |  r/w version on|
00000e80  6c 79 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |ly              |
00000e90  20 26 34 33 37 43 44 0a  2d 2d 2d 2d 2d 2d 2d 2d  | &437CD.--------|
00000ea0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 20 20  |--------------  |
00000eb0  20 20 20 20 20 20 20 20  20 20 2d 2d 2d 2d 2d 2d  |          ------|
00000ec0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 20 20 20 20 20 20  |----------      |
00000ed0  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 0a  |         ------.|
00000ee0  0a 4f 6e 20 65 6e 74 72  79 3a 20 2d 0a 0a 4f 6e  |.On entry: -..On|
00000ef0  20 65 78 69 74 20 3a 20  2d 0a 0a 54 68 69 73 20  | exit : -..This |
00000f00  53 57 49 20 73 77 69 74  63 68 65 73 20 61 75 74  |SWI switches aut|
00000f10  6f 20 63 6f 6d 70 61 63  74 20 6f 6e 2e 0a 0a 2a  |o compact on...*|
00000f20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000f60  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 0a 0a 53 57  |************..SW|
00000f70  49 20 22 41 72 63 46 53  5f 41 75 74 6f 43 6f 6d  |I "ArcFS_AutoCom|
00000f80  70 4f 66 66 22 20 20 20  20 20 20 20 20 20 20 20  |pOff"           |
00000f90  72 2f 77 20 76 65 72 73  69 6f 6e 20 6f 6e 6c 79  |r/w version only|
00000fa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 26  |               &|
00000fb0  34 33 37 43 45 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |437CE.----------|
00000fc0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 20 20 20  |-------------   |
00000fd0  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 2d 2d  |        --------|
00000fe0  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
00000ff0  20 20 20 20 20 20 20 2d  2d 2d 2d 2d 2d 0a 0a 4f  |       ------..O|
00001000  6e 20 65 6e 74 72 79 3a  20 2d 0a 0a 4f 6e 20 65  |n entry: -..On e|
00001010  78 69 74 20 3a 20 2d 0a  0a 54 68 69 73 20 53 57  |xit : -..This SW|
00001020  49 20 73 77 69 74 63 68  65 73 20 61 75 74 6f 20  |I switches auto |
00001030  63 6f 6d 70 61 63 74 20  6f 66 66 2e 0a 0a 2a 2a  |compact off...**|
00001040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001080  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0a 0a 53 57 49  |***********..SWI|
00001090  20 22 41 72 63 46 53 5f  41 72 63 49 6e 66 6f 22  | "ArcFS_ArcInfo"|
000010a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000010c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 26 34  |              &4|
000010d0  33 37 43 46 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |37CF.-----------|
000010e0  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
000010f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001110  20 20 20 20 20 20 2d 2d  2d 2d 2d 2d 0a 0a 4f 6e  |      ------..On|
00001120  20 65 6e 74 72 79 3a 20  52 33 3d 61 72 63 68 69  | entry: R3=archi|
00001130  76 65 20 6e 75 6d 62 65  72 0a 0a 4f 6e 20 65 78  |ve number..On ex|
00001140  69 74 20 3a 20 52 31 3d  70 6f 69 6e 74 65 72 20  |it : R1=pointer |
00001150  74 6f 20 61 72 63 68 69  76 65 20 70 61 74 68 6e  |to archive pathn|
00001160  61 6d 65 20 28 6e 75 6c  6c 20 74 65 72 6d 69 6e  |ame (null termin|
00001170  61 74 65 64 29 0a 20 20  20 20 20 20 20 20 20 20  |ated).          |
00001180  52 32 3d 70 6f 69 6e 74  65 72 20 74 6f 20 61 72  |R2=pointer to ar|
00001190  63 68 69 76 65 20 68 65  61 64 65 72 73 20 28 69  |chive headers (i|
000011a0  6e 74 65 72 6e 61 6c 20  75 73 65 20 6f 6e 6c 79  |nternal use only|
000011b0  29 0a 20 20 20 20 20 20  20 20 20 20 52 33 3d 6e  |).          R3=n|
000011c0  65 78 74 20 61 72 63 68  69 76 65 20 6e 75 6d 62  |ext archive numb|
000011d0  65 72 20 28 69 2e 65 2e  20 69 6e 63 72 65 61 73  |er (i.e. increas|
000011e0  65 64 20 62 79 20 31 29  20 6f 72 20 2d 31 20 69  |ed by 1) or -1 i|
000011f0  66 20 74 68 69 73 20 69  73 20 6c 61 73 74 2e 0a  |f this is last..|
00001200  20 20 20 20 20 20 20 20  20 20 52 36 3d 70 6f 69  |          R6=poi|
00001210  6e 74 65 72 20 74 6f 20  61 72 63 68 69 76 65 20  |nter to archive |
00001220  6e 61 6d 65 20 28 6e 75  6c 6c 20 74 65 72 6d 69  |name (null termi|
00001230  6e 61 74 65 64 29 0a 0a  54 68 69 73 20 53 57 49  |nated)..This SWI|
00001240  20 67 69 76 65 73 20 74  68 65 20 6e 61 6d 65 20  | gives the name |
00001250  61 6e 64 20 70 61 74 68  6e 61 6d 65 20 6f 66 20  |and pathname of |
00001260  74 68 65 20 61 72 63 68  69 76 65 20 77 68 6f 73  |the archive whos|
00001270  65 20 6e 75 6d 62 65 72  20 69 73 20 67 69 76 65  |e number is give|
00001280  6e 20 62 79 0a 52 33 20  6f 6e 20 65 6e 74 72 79  |n by.R3 on entry|
00001290  2e 54 68 65 20 66 69 72  73 74 20 61 72 63 68 69  |.The first archi|
000012a0  76 65 20 68 61 73 20 6e  75 6d 62 65 72 20 7a 65  |ve has number ze|
000012b0  72 6f 2e 20 49 66 20 52  36 20 69 73 20 7a 65 72  |ro. If R6 is zer|
000012c0  6f 20 6f 6e 20 65 78 69  74 20 74 68 65 6e 0a 74  |o on exit then.t|
000012d0  68 65 72 65 20 61 72 65  20 6e 6f 74 20 74 68 69  |here are not thi|
000012e0  73 20 6d 61 6e 79 20 6f  70 65 6e 20 61 72 63 68  |s many open arch|
000012f0  69 76 65 73 2e 0a 55 6e  6c 69 6b 65 20 70 72 65  |ives..Unlike pre|
00001300  76 69 6f 75 73 20 76 65  72 73 69 6f 6e 73 20 6f  |vious versions o|
00001310  66 20 41 72 63 46 53 20  74 68 65 72 65 20 69 73  |f ArcFS there is|
00001320  20 6e 6f 20 6c 69 6d 69  74 20 74 6f 20 74 68 65  | no limit to the|
00001330  20 6e 75 6d 62 65 72 20  6f 66 20 6f 70 65 6e 0a  | number of open.|
00001340  61 72 63 68 69 76 65 73  2e 0a 49 6e 20 6f 72 64  |archives..In ord|
00001350  65 72 20 74 6f 20 63 6f  6e 73 74 72 75 63 74 20  |er to construct |
00001360  61 20 6c 69 73 74 20 6f  66 20 6f 70 65 6e 20 61  |a list of open a|
00001370  72 63 68 69 76 65 73 2c  20 65 2e 67 2e 20 66 6f  |rchives, e.g. fo|
00001380  72 20 61 20 57 69 6d 70  20 6d 65 6e 75 2c 20 79  |r a Wimp menu, y|
00001390  6f 75 0a 73 68 6f 75 6c  64 20 73 65 74 20 52 33  |ou.should set R3|
000013a0  20 74 6f 20 7a 65 72 6f  20 61 6e 64 20 63 61 6c  | to zero and cal|
000013b0  6c 20 74 68 69 73 20 53  57 49 20 72 65 70 65 61  |l this SWI repea|
000013c0  74 65 64 6c 79 2c 20 75  6e 74 69 6c 20 69 74 20  |tedly, until it |
000013d0  72 65 74 75 72 6e 73 20  77 69 74 68 0a 52 33 3d  |returns with.R3=|
000013e0  2d 31 2e 0a 0a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |-1...***********|
000013f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001430  2a 2a 0a 0a 53 57 49 20  22 41 72 63 46 53 5f 4f  |**..SWI "ArcFS_O|
00001440  70 65 6e 41 72 63 22 20  20 20 20 20 20 20 20 20  |penArc"         |
00001450  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001470  20 20 20 20 20 26 34 33  37 44 30 0a 2d 2d 2d 2d  |     &437D0.----|
00001480  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 20  |--------------- |
00001490  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000014b0  20 20 20 20 20 20 20 20  20 20 20 20 20 2d 2d 2d  |             ---|
000014c0  2d 2d 2d 0a 0a 4f 6e 20  65 6e 74 72 79 3a 20 52  |---..On entry: R|
000014d0  31 3d 70 6f 69 6e 74 65  72 20 74 6f 20 70 61 74  |1=pointer to pat|
000014e0  68 6e 61 6d 65 20 28 63  6f 6e 74 72 6f 6c 20 74  |hname (control t|
000014f0  65 72 6d 69 6e 61 74 65  64 29 0a 20 20 20 20 20  |erminated).     |
00001500  20 20 20 20 20 52 36 3d  70 6f 69 6e 74 65 72 20  |     R6=pointer |
00001510  74 6f 20 6e 61 6d 65 20  28 63 6f 6e 74 72 6f 6c  |to name (control|
00001520  20 74 65 72 6d 69 6e 61  74 65 64 29 20 6f 72 20  | terminated) or |
00001530  30 2e 0a 0a 4f 6e 20 65  78 69 74 20 3a 20 52 31  |0...On exit : R1|
00001540  20 70 72 65 73 65 72 76  65 64 0a 20 20 20 20 20  | preserved.     |
00001550  20 20 20 20 20 52 36 3d  70 6f 69 6e 74 65 72 20  |     R6=pointer |
00001560  74 6f 20 6e 61 6d 65 20  28 70 72 65 73 65 72 76  |to name (preserv|
00001570  65 64 20 75 6e 6c 65 73  73 20 69 74 20 77 61 73  |ed unless it was|
00001580  20 30 20 6f 6e 20 65 6e  74 72 79 2e 29 0a 0a 54  | 0 on entry.)..T|
00001590  68 69 73 20 53 57 49 20  6f 70 65 6e 73 20 61 6e  |his SWI opens an|
000015a0  20 61 72 63 68 69 76 65  2e 20 50 6f 73 73 69 62  | archive. Possib|
000015b0  6c 65 20 65 72 72 6f 72  73 20 61 72 65 20 27 54  |le errors are 'T|
000015c0  68 69 73 20 61 72 63 68  69 76 65 20 69 73 20 61  |his archive is a|
000015d0  6c 72 65 61 64 79 20 6f  70 65 6e 0a 77 69 74 68  |lready open.with|
000015e0  20 61 20 64 69 66 66 65  72 65 6e 74 20 6e 61 6d  | a different nam|
000015f0  65 27 20 6f 72 20 27 41  6e 20 61 72 63 68 69 76  |e' or 'An archiv|
00001600  65 20 77 69 74 68 20 74  68 69 73 20 6e 61 6d 65  |e with this name|
00001610  20 69 73 20 61 6c 72 65  61 64 79 20 6f 70 65 6e  | is already open|
00001620  27 2e 20 49 66 0a 74 68  65 20 61 72 63 68 69 76  |'. If.the archiv|
00001630  65 20 69 73 20 61 6c 72  65 61 64 79 20 6f 70 65  |e is already ope|
00001640  6e 20 77 69 74 68 20 74  68 65 20 73 61 6d 65 20  |n with the same |
00001650  6e 61 6d 65 20 74 68 65  6e 20 74 68 69 73 20 53  |name then this S|
00001660  57 49 20 77 69 6c 6c 20  72 65 74 75 72 6e 0a 77  |WI will return.w|
00001670  69 74 68 6f 75 74 20 64  6f 69 6e 67 20 61 6e 79  |ithout doing any|
00001680  74 68 69 6e 67 2e 0a 0a  49 66 20 52 36 20 69 73  |thing...If R6 is|
00001690  20 30 20 6f 6e 20 65 6e  74 72 79 20 74 68 65 6e  | 0 on entry then|
000016a0  20 41 72 63 46 53 20 77  69 6c 6c 20 61 74 74 65  | ArcFS will atte|
000016b0  6d 70 74 20 74 6f 20 6f  70 65 6e 20 74 68 65 20  |mpt to open the |
000016c0  61 72 63 68 69 76 65 20  75 73 69 6e 67 20 69 74  |archive using it|
000016d0  73 0a 6c 65 61 66 6e 61  6d 65 20 61 73 20 74 68  |s.leafname as th|
000016e0  65 20 61 72 63 68 69 76  65 20 6e 61 6d 65 2e 0a  |e archive name..|
000016f0  0a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.***************|
00001700  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001730  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0a 0a  |**************..|
00001740  53 57 49 20 22 41 72 63  46 53 5f 43 6c 6f 73 65  |SWI "ArcFS_Close|
00001750  41 72 63 22 20 20 20 20  20 20 20 20 20 20 20 20  |Arc"            |
00001760  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001780  20 26 34 33 37 44 31 0a  2d 2d 2d 2d 2d 2d 2d 2d  | &437D1.--------|
00001790  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 20 20 20 20  |------------    |
000017a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000017c0  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 0a  |         ------.|
000017d0  0a 4f 6e 20 65 6e 74 72  79 3a 20 52 36 3d 70 6f  |.On entry: R6=po|
000017e0  69 6e 74 65 72 20 74 6f  20 6e 61 6d 65 20 28 63  |inter to name (c|
000017f0  6f 6e 74 72 6f 6c 20 74  65 72 6d 69 6e 61 74 65  |ontrol terminate|
00001800  64 29 0a 0a 4f 6e 20 65  78 69 74 20 3a 20 52 36  |d)..On exit : R6|
00001810  20 70 72 65 73 65 72 76  65 64 0a 0a 54 68 69 73  | preserved..This|
00001820  20 53 57 49 20 63 6c 6f  73 65 73 20 61 6e 20 61  | SWI closes an a|
00001830  72 63 68 69 76 65 2e 20  50 6f 73 73 69 62 6c 65  |rchive. Possible|
00001840  20 65 72 72 6f 72 20 69  73 20 27 4e 6f 20 61 72  | error is 'No ar|
00001850  63 68 69 76 65 20 77 69  74 68 20 74 68 69 73 20  |chive with this |
00001860  6e 61 6d 65 20 69 73 0a  6f 70 65 6e 27 2e 0a 0a  |name is.open'...|
00001870  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
000018b0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0a 0a 53  |*************..S|
000018c0  57 49 20 22 41 72 63 46  53 5f 43 72 65 61 74 65  |WI "ArcFS_Create|
000018d0  41 72 63 22 20 20 20 20  20 20 20 20 20 20 20 20  |Arc"            |
000018e0  20 72 2f 77 20 76 65 72  73 69 6f 6e 20 6f 6e 6c  | r/w version onl|
000018f0  79 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |y               |
00001900  26 34 33 37 44 32 0a 2d  2d 2d 2d 2d 2d 2d 2d 2d  |&437D2.---------|
00001910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 20 20 20 20  |------------    |
00001920  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 2d  |         -------|
00001930  2d 2d 2d 2d 2d 2d 2d 2d  2d 20 20 20 20 20 20 20  |---------       |
00001940  20 20 20 20 20 20 20 20  2d 2d 2d 2d 2d 2d 0a 0a  |        ------..|
00001950  4f 6e 20 65 6e 74 72 79  3a 20 52 31 3d 70 6f 69  |On entry: R1=poi|
00001960  6e 74 65 72 20 74 6f 20  70 61 74 68 6e 61 6d 65  |nter to pathname|
00001970  20 66 6f 72 20 6e 65 77  20 61 72 63 68 69 76 65  | for new archive|
00001980  0a 0a 4f 6e 20 65 78 69  74 20 3a 20 52 31 20 69  |..On exit : R1 i|
00001990  73 20 70 72 65 73 65 72  76 65 64 0a 0a 54 68 69  |s preserved..Thi|
000019a0  73 20 53 57 49 20 63 72  65 61 74 65 73 20 28 62  |s SWI creates (b|
000019b0  75 74 20 64 6f 65 73 20  6e 6f 74 20 6f 70 65 6e  |ut does not open|
000019c0  29 20 61 20 6e 65 77 20  61 72 63 68 69 76 65 2e  |) a new archive.|
000019d0  0a 0a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..**************|
000019e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001a10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 0a  |***************.|
00001a20  0a 53 57 49 20 22 41 72  63 46 53 5f 43 6f 6d 70  |.SWI "ArcFS_Comp|
00001a30  61 63 74 41 72 63 22 20  20 20 20 20 20 20 20 20  |actArc"         |
00001a40  20 20 20 72 2f 77 20 76  65 72 73 69 6f 6e 20 6f  |   r/w version o|
00001a50  6e 6c 79 20 20 20 20 20  20 20 20 20 20 20 20 20  |nly             |
00001a60  20 20 26 34 33 37 44 33  0a 2d 2d 2d 2d 2d 2d 2d  |  &437D3.-------|
00001a70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 20  |--------------- |
00001a80  20 20 20 20 20 20 20 20  20 20 20 2d 2d 2d 2d 2d  |           -----|
00001a90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 20 20 20 20 20  |-----------     |
00001aa0  20 20 20 20 20 20 20 20  20 20 2d 2d 2d 2d 2d 2d  |          ------|
00001ab0  0a 0a 4f 6e 20 65 6e 74  72 79 3a 20 52 36 3d 70  |..On entry: R6=p|
00001ac0  6f 69 6e 74 65 72 20 74  6f 20 61 72 63 68 69 76  |ointer to archiv|
00001ad0  65 20 6e 61 6d 65 20 6f  72 20 30 0a 0a 4f 6e 20  |e name or 0..On |
00001ae0  65 78 69 74 20 3a 20 52  36 20 69 73 20 70 72 65  |exit : R6 is pre|
00001af0  73 65 72 76 65 64 0a 0a  54 68 69 73 20 53 57 49  |served..This SWI|
00001b00  20 63 6f 6d 70 61 63 74  73 20 74 68 65 20 6e 61  | compacts the na|
00001b10  6d 65 64 20 61 72 63 68  69 76 65 20 28 6f 72 20  |med archive (or |
00001b20  74 68 61 74 20 63 6f 6e  74 61 69 6e 69 6e 67 20  |that containing |
00001b30  74 68 65 20 43 53 44 29  20 74 6f 20 72 65 6d 6f  |the CSD) to remo|
00001b40  76 65 64 0a 67 61 70 73  20 6c 65 66 74 20 62 79  |ved.gaps left by|
00001b50  20 64 65 6c 65 74 69 6f  6e 73 20 61 6e 64 20 66  | deletions and f|
00001b60  69 6c 65 20 6f 76 65 72  77 72 69 74 65 73 2e 0a  |ile overwrites..|
00001b70  0a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.***************|
00001b80  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00001bb0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0a 0a  |**************..|
00001bc0  53 57 49 20 22 41 72 63  46 53 5f 4f 62 6a 65 63  |SWI "ArcFS_Objec|
00001bd0  74 49 6e 66 6f 22 20 20  20 20 20 20 20 20 20 20  |tInfo"          |
00001be0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001c00  20 26 34 33 37 44 34 0a  2d 2d 2d 2d 2d 2d 2d 2d  | &437D4.--------|
00001c10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 20 20  |--------------  |
00001c20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00001c40  20 20 20 20 20 20 20 20  20 2d 2d 2d 2d 2d 2d 0a  |         ------.|
00001c50  0a 4f 6e 20 65 6e 74 72  79 3a 20 52 31 3d 70 6f  |.On entry: R1=po|
00001c60  69 6e 74 65 72 20 74 6f  20 6f 62 6a 65 63 74 20  |inter to object |
00001c70  6e 61 6d 65 0a 20 20 20  20 20 20 20 20 20 20 52  |name.          R|
00001c80  36 3d 70 6f 69 6e 74 65  72 20 74 6f 20 61 72 63  |6=pointer to arc|
00001c90  68 69 76 65 20 6e 61 6d  65 20 28 6f 72 20 30 20  |hive name (or 0 |
00001ca0  66 6f 72 20 61 72 63 68  69 76 65 20 63 6f 6e 74  |for archive cont|
00001cb0  61 69 6e 69 6e 67 20 43  53 44 29 0a 0a 4f 6e 20  |aining CSD)..On |
00001cc0  65 78 69 74 20 3a 20 52  30 3d 6f 62 6a 65 63 74  |exit : R0=object|
00001cd0  20 74 79 70 65 0a 20 20  20 20 20 20 20 20 20 20  | type.          |
00001ce0  52 31 3d 63 6f 6d 70 72  65 73 73 69 6f 6e 20 74  |R1=compression t|
00001cf0  79 70 65 0a 20 20 20 20  20 20 20 20 20 20 52 32  |ype.          R2|
00001d00  3d 6c 6f 61 64 20 61 64  64 72 65 73 73 0a 20 20  |=load address.  |
00001d10  20 20 20 20 20 20 20 20  52 33 3d 65 78 65 63 20  |        R3=exec |
00001d20  61 64 64 72 65 73 73 0a  20 20 20 20 20 20 20 20  |address.        |
00001d30  20 20 52 34 3d 75 6e 63  6f 6d 70 72 65 73 73 65  |  R4=uncompresse|
00001d40  64 20 6c 65 6e 67 74 68  0a 20 20 20 20 20 20 20  |d length.       |
00001d50  20 20 20 52 35 3d 6f 62  6a 65 63 74 20 61 74 74  |   R5=object att|
00001d60  72 69 62 75 74 65 73 20  28 69 6e 63 2e 20 43 52  |ributes (inc. CR|
00001d70  43 20 61 6e 64 20 6e 6f  2e 20 62 69 74 73 29 0a  |C and no. bits).|
00001d80  20 20 20 20 20 20 20 20  20 20 52 36 3d 63 6f 6d  |          R6=com|
00001d90  70 72 65 73 73 65 64 20  6c 65 6e 67 74 68 0a 20  |pressed length. |
00001da0  20 20 20 20 20 20 20 20  20 52 37 3d 6f 66 66 73  |         R7=offs|
00001db0  65 74 20 6f 66 20 63 6f  6d 70 72 65 73 73 65 64  |et of compressed|
00001dc0  20 64 61 74 61 20 77 69  74 68 69 6e 20 61 72 63  | data within arc|
00001dd0  68 69 76 65 20 28 69 66  20 6f 62 6a 65 63 74 20  |hive (if object |
00001de0  69 73 20 61 20 66 69 6c  65 29 0a 0a 54 68 69 73  |is a file)..This|
00001df0  20 53 57 49 20 72 65 74  75 72 6e 73 20 66 75 6c  | SWI returns ful|
00001e00  6c 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 20 6f 6e  |l information on|
00001e10  20 61 6e 20 61 72 63 68  69 76 65 64 20 6f 62 6a  | an archived obj|
00001e20  65 63 74 2e 20 49 74 20  72 65 74 75 72 6e 73 20  |ect. It returns |
00001e30  61 6c 6c 20 74 68 65 0a  69 6e 66 6f 72 6d 61 74  |all the.informat|
00001e40  69 6f 6e 20 74 68 61 74  20 4f 53 5f 46 69 6c 65  |ion that OS_File|
00001e50  20 31 37 20 64 6f 65 73  2c 20 70 6c 75 73 20 74  | 17 does, plus t|
00001e60  68 65 20 63 6f 6d 70 72  65 73 73 69 6f 6e 20 74  |he compression t|
00001e70  79 70 65 2c 20 63 6f 6d  70 72 65 73 73 65 64 0a  |ype, compressed.|
00001e80  6c 65 6e 67 74 68 20 61  6e 64 20 6f 66 66 73 65  |length and offse|
00001e90  74 20 74 6f 20 73 74 61  72 74 20 6f 66 20 64 61  |t to start of da|
00001ea0  74 61 20 28 66 6f 72 20  61 20 66 69 6c 65 29 2e  |ta (for a file).|
00001eb0  0a 0a 4f 6e 20 65 78 69  74 2c 20 52 30 20 63 6f  |..On exit, R0 co|
00001ec0  6e 74 61 69 6e 73 20 74  68 65 20 6f 62 6a 65 63  |ntains the objec|
00001ed0  74 20 74 79 70 65 3a 0a  0a 20 20 20 20 20 20 20  |t type:..       |
00001ee0  20 20 20 52 30 20 20 20  20 54 79 70 65 0a 20 20  |   R0    Type.  |
00001ef0  20 20 20 20 20 20 20 20  2d 2d 20 20 20 20 2d 2d  |        --    --|
00001f00  2d 2d 0a 20 20 20 20 20  20 20 20 20 20 30 20 20  |--.          0  |
00001f10  20 20 20 4e 6f 74 20 66  6f 75 6e 64 0a 20 20 20  |   Not found.   |
00001f20  20 20 20 20 20 20 20 31  20 20 20 20 20 46 69 6c  |       1     Fil|
00001f30  65 20 66 6f 75 6e 64 0a  20 20 20 20 20 20 20 20  |e found.        |
00001f40  20 20 32 20 20 20 20 20  44 69 72 65 63 74 6f 72  |  2     Director|
00001f50  79 20 66 6f 75 6e 64 0a  0a 49 66 20 61 20 64 69  |y found..If a di|
00001f60  72 65 63 74 6f 72 79 20  69 73 20 66 6f 75 6e 64  |rectory is found|
00001f70  20 74 68 65 6e 20 74 68  65 20 75 6e 63 6f 6d 70  | then the uncomp|
00001f80  72 65 73 73 65 64 20 61  6e 64 20 63 6f 6d 70 72  |ressed and compr|
00001f90  65 73 73 65 64 20 6c 65  6e 67 74 68 73 20 61 72  |essed lengths ar|
00001fa0  65 0a 74 6f 74 61 6c 73  20 6f 66 20 61 6c 6c 20  |e.totals of all |
00001fb0  74 68 65 20 66 69 6c 65  73 20 63 6f 6e 74 61 69  |the files contai|
00001fc0  6e 65 64 20 77 69 74 68  69 6e 20 74 68 6f 73 65  |ned within those|
00001fd0  20 64 69 72 65 63 74 6f  72 69 65 73 20 61 6e 64  | directories and|
00001fe0  20 73 75 62 2d 0a 64 69  72 65 63 74 6f 72 69 65  | sub-.directorie|
00001ff0  73 20 28 77 68 65 72 65  61 73 20 4f 53 5f 46 69  |s (whereas OS_Fi|
00002000  6c 65 20 31 37 20 77 69  6c 6c 20 6a 75 73 74 20  |le 17 will just |
00002010  72 65 74 75 72 6e 20 26  46 46 46 46 46 46 46 46  |return &FFFFFFFF|
00002020  20 61 73 20 74 68 65 20  6c 65 6e 67 74 68 20 66  | as the length f|
00002030  6f 72 0a 61 6e 20 41 72  63 46 53 20 64 69 72 65  |or.an ArcFS dire|
00002040  63 74 6f 72 79 29 2e 0a  0a 54 68 65 20 61 74 74  |ctory)...The att|
00002050  72 69 62 75 74 65 73 20  63 6f 6e 73 69 73 74 20  |ributes consist |
00002060  6f 66 20 74 68 65 20 66  69 6c 65 20 43 52 43 20  |of the file CRC |
00002070  69 6e 20 74 68 65 20 74  6f 70 20 31 36 20 62 69  |in the top 16 bi|
00002080  74 73 2c 20 74 68 65 20  6e 75 6d 62 65 72 20 6f  |ts, the number o|
00002090  66 0a 62 69 74 73 20 69  66 20 74 68 65 20 66 69  |f.bits if the fi|
000020a0  6c 65 20 77 61 73 20 63  72 75 6e 63 68 65 64 20  |le was crunched |
000020b0  6f 72 20 63 6f 6d 70 72  65 73 73 65 64 20 69 6e  |or compressed in|
000020c0  20 62 69 74 73 20 38 2d  31 36 20 61 6e 64 20 74  | bits 8-16 and t|
000020d0  68 65 20 61 63 63 65 73  73 0a 72 69 67 68 74 73  |he access.rights|
000020e0  20 28 61 73 20 66 6f 72  20 6f 74 68 65 72 20 66  | (as for other f|
000020f0  69 6c 69 6e 67 20 73 79  73 74 65 6d 73 29 20 69  |iling systems) i|
00002100  6e 20 74 68 65 20 62 6f  74 74 6f 6d 20 38 20 62  |n the bottom 8 b|
00002110  69 74 73 2e 0a 0a 49 66  20 52 36 20 69 73 20 7a  |its...If R6 is z|
00002120  65 72 6f 20 6f 6e 20 65  6e 74 72 79 20 74 68 65  |ero on entry the|
00002130  20 6f 62 6a 65 63 74 20  6e 61 6d 65 20 70 6f 69  | object name poi|
00002140  6e 74 65 64 20 74 6f 20  62 79 20 52 31 20 69 73  |nted to by R1 is|
00002150  20 66 72 6f 6d 20 74 68  65 20 41 72 63 46 53 20  | from the ArcFS |
00002160  43 53 44 0a 49 66 20 52  36 20 69 73 20 61 20 70  |CSD.If R6 is a p|
00002170  6f 69 6e 74 65 72 20 74  6f 20 61 6e 20 61 72 63  |ointer to an arc|
00002180  68 69 76 65 20 6e 61 6d  65 20 74 68 65 6e 20 74  |hive name then t|
00002190  68 65 20 6f 62 6a 65 63  74 20 6e 61 6d 65 20 69  |he object name i|
000021a0  73 20 66 72 6f 6d 20 74  68 65 20 72 6f 6f 74 0a  |s from the root.|
000021b0  64 69 72 65 63 74 6f 72  79 20 6f 66 20 74 68 61  |directory of tha|
000021c0  74 20 61 72 63 68 69 76  65 2e 0a 0a 59 6f 75 20  |t archive...You |
000021d0  6d 75 73 74 20 6e 6f 74  20 69 6e 63 6c 75 64 65  |must not include|
000021e0  20 61 20 66 69 6c 69 6e  67 20 73 79 73 74 65 6d  | a filing system|
000021f0  20 6e 61 6d 65 20 6f 72  20 61 72 63 68 69 76 65  | name or archive|
00002200  20 6e 61 6d 65 20 69 6e  20 74 68 65 20 6f 62 6a  | name in the obj|
00002210  65 63 74 20 6e 61 6d 65  2e 0a 45 2e 67 2e 20 69  |ect name..E.g. i|
00002220  6e 66 6f 6d 61 74 69 6f  6e 20 6f 6e 20 61 72 63  |nfomation on arc|
00002230  66 73 23 41 72 63 68 69  76 65 3a 24 2e 4f 62 6a  |fs#Archive:$.Obj|
00002240  65 63 74 20 77 6f 75 6c  64 20 62 65 20 66 6f 75  |ect would be fou|
00002250  6e 64 20 65 6e 74 65 72  69 6e 67 20 74 68 69 73  |nd entering this|
00002260  20 53 57 49 0a 77 69 74  68 20 52 31 20 70 6f 69  | SWI.with R1 poi|
00002270  6e 74 69 6e 67 20 74 6f  20 74 68 65 20 74 65 78  |nting to the tex|
00002280  74 20 27 24 2e 4f 62 6a  65 63 74 27 20 6f 72 20  |t '$.Object' or |
00002290  27 4f 62 6a 65 63 74 27  20 61 6e 64 20 52 36 20  |'Object' and R6 |
000022a0  70 6f 69 6e 74 69 6e 67  20 74 6f 0a 27 41 72 63  |pointing to.'Arc|
000022b0  68 69 76 65 27 2e 0a 0a  2a 2a 2a 2a 2a 2a 2a 2a  |hive'...********|
000022c0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002300  2a 2a 2a 2a 2a 0a 0a 53  57 49 20 22 41 72 63 46  |*****..SWI "ArcF|
00002310  53 5f 52 65 61 64 42 75  66 66 65 72 53 69 7a 65  |S_ReadBufferSize|
00002320  73 22 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |s"              |
00002330  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002340  20 20 20 20 20 20 20 20  26 34 33 37 44 35 0a 2d  |        &437D5.-|
00002350  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002360  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 20 20 20 20 20 20  |----------      |
00002370  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002390  2d 2d 2d 2d 2d 2d 0a 0a  4f 6e 20 65 6e 74 72 79  |------..On entry|
000023a0  3a 20 2d 0a 0a 4f 6e 20  65 78 69 74 20 3a 20 52  |: -..On exit : R|
000023b0  31 3d 73 69 7a 65 20 6f  66 20 52 61 77 20 44 61  |1=size of Raw Da|
000023c0  74 61 20 42 75 66 66 65  72 20 69 6e 20 62 79 74  |ta Buffer in byt|
000023d0  65 73 2e 0a 20 20 20 20  20 20 20 20 20 20 52 32  |es..          R2|
000023e0  3d 73 69 7a 65 20 6f 66  20 52 65 2d 41 72 72 61  |=size of Re-Arra|
000023f0  6e 67 65 6d 65 6e 74 20  28 43 6f 6d 70 61 63 74  |ngement (Compact|
00002400  20 2f 20 4d 6f 72 65 20  68 65 61 64 65 72 73 29  | / More headers)|
00002410  20 42 75 66 66 65 72 20  69 6e 20 62 79 74 65 73  | Buffer in bytes|
00002420  2e 0a 20 20 20 20 20 20  20 20 20 20 52 33 3d 6e  |..          R3=n|
00002430  6f 2e 20 6f 66 20 68 65  61 64 65 72 20 67 61 70  |o. of header gap|
00002440  73 20 63 72 65 61 74 65  64 20 61 74 20 6f 6e 63  |s created at onc|
00002450  65 2e 0a 0a 54 68 69 73  20 53 57 49 20 72 65 74  |e...This SWI ret|
00002460  75 72 6e 73 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  |urns information|
00002470  20 61 62 6f 75 74 20 74  68 65 20 73 69 7a 65 20  | about the size |
00002480  6f 66 20 62 75 66 66 65  72 73 20 62 65 69 6e 67  |of buffers being|
00002490  20 75 73 65 64 20 61 6e  64 20 74 68 65 0a 6e 75  | used and the.nu|
000024a0  6d 62 65 72 20 6f 66 20  68 65 61 64 65 72 20 67  |mber of header g|
000024b0  61 70 73 20 63 72 65 61  74 65 64 20 61 74 20 6f  |aps created at o|
000024c0  6e 63 65 20 77 68 65 6e  20 41 72 63 46 53 20 6e  |nce when ArcFS n|
000024d0  65 65 64 73 20 6d 6f 72  65 20 72 6f 6f 6d 20 66  |eeds more room f|
000024e0  6f 72 20 68 65 61 64 65  72 73 0a 69 6e 20 61 6e  |or headers.in an|
000024f0  20 61 72 63 68 69 76 65  2e 0a 0a 2a 2a 2a 2a 2a  | archive...*****|
00002500  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002540  2a 2a 2a 2a 2a 2a 2a 2a  0a 0a 53 57 49 20 22 41  |********..SWI "A|
00002550  72 63 46 53 5f 53 65 74  52 44 42 53 69 7a 65 22  |rcFS_SetRDBSize"|
00002560  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002580  20 20 20 20 20 20 20 20  20 20 20 26 34 33 37 44  |           &437D|
00002590  36 0a 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |6.--------------|
000025a0  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
000025b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000025d0  20 20 20 2d 2d 2d 2d 2d  2d 0a 0a 4f 6e 20 65 6e  |   ------..On en|
000025e0  74 72 79 3a 20 52 31 3d  6e 65 77 20 73 69 7a 65  |try: R1=new size|
000025f0  20 6f 66 20 52 61 77 20  44 61 74 61 20 42 75 66  | of Raw Data Buf|
00002600  66 65 72 20 69 6e 20 62  79 74 65 73 20 6f 72 20  |fer in bytes or |
00002610  30 2e 0a 0a 4f 6e 20 65  78 69 74 20 3a 20 52 31  |0...On exit : R1|
00002620  3d 6e 65 77 20 73 69 7a  65 20 6f 66 20 52 61 77  |=new size of Raw|
00002630  20 44 61 74 61 20 42 75  66 66 65 72 20 28 50 72  | Data Buffer (Pr|
00002640  65 73 65 72 76 65 64 20  75 6e 6c 65 73 73 20 52  |eserved unless R|
00002650  31 3c 31 36 20 6f 6e 20  65 6e 74 72 79 29 2e 0a  |1<16 on entry)..|
00002660  0a 54 68 69 73 20 53 57  49 20 73 65 74 73 20 74  |.This SWI sets t|
00002670  68 65 20 73 69 7a 65 20  6f 66 20 74 68 65 20 52  |he size of the R|
00002680  61 77 20 44 61 74 61 20  42 75 66 66 65 72 2e 0a  |aw Data Buffer..|
00002690  49 66 20 69 74 20 69 73  20 7a 65 72 6f 20 74 68  |If it is zero th|
000026a0  65 6e 20 74 68 65 20 64  65 66 61 75 6c 74 20 6f  |en the default o|
000026b0  66 20 38 4b 20 77 69 6c  6c 20 62 65 20 75 73 65  |f 8K will be use|
000026c0  64 2e 0a 49 66 20 69 74  20 69 73 20 62 65 74 77  |d..If it is betw|
000026d0  65 65 6e 20 31 20 61 6e  64 20 31 35 20 74 68 65  |een 1 and 15 the|
000026e0  6e 20 74 68 65 20 6d 69  6e 2e 20 73 69 7a 65 20  |n the min. size |
000026f0  6f 66 20 31 36 20 62 79  74 65 73 20 77 69 6c 6c  |of 16 bytes will|
00002700  20 62 65 20 75 73 65 64  2e 0a 0a 2a 2a 2a 2a 2a  | be used...*****|
00002710  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002750  2a 2a 2a 2a 2a 2a 2a 2a  0a 0a 53 57 49 20 22 41  |********..SWI "A|
00002760  72 63 46 53 5f 53 65 74  52 41 42 53 69 7a 65 22  |rcFS_SetRABSize"|
00002770  20 20 20 20 20 20 20 20  20 20 20 20 72 2f 77 20  |            r/w |
00002780  76 65 72 73 69 6f 6e 20  6f 6e 6c 79 20 20 20 20  |version only    |
00002790  20 20 20 20 20 20 20 20  20 20 20 26 34 33 37 44  |           &437D|
000027a0  37 0a 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |7.--------------|
000027b0  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
000027c0  20 20 20 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |    ------------|
000027d0  2d 2d 2d 2d 20 20 20 20  20 20 20 20 20 20 20 20  |----            |
000027e0  20 20 20 2d 2d 2d 2d 2d  2d 0a 0a 4f 6e 20 65 6e  |   ------..On en|
000027f0  74 72 79 3a 20 52 32 3d  6e 65 77 20 73 69 7a 65  |try: R2=new size|
00002800  20 6f 66 20 52 65 2d 41  72 72 61 6e 67 65 6d 65  | of Re-Arrangeme|
00002810  6e 74 20 62 75 66 66 65  72 20 69 6e 20 62 79 74  |nt buffer in byt|
00002820  65 73 20 6f 72 20 30 2e  0a 0a 4f 6e 20 65 78 69  |es or 0...On exi|
00002830  74 20 3a 20 52 32 3d 6e  65 77 20 73 69 7a 65 20  |t : R2=new size |
00002840  6f 66 20 52 41 42 20 28  50 72 65 73 65 72 76 65  |of RAB (Preserve|
00002850  64 20 75 6e 6c 65 73 73  20 52 32 3d 30 20 6f 6e  |d unless R2=0 on|
00002860  20 65 6e 74 72 79 29 2e  0a 0a 54 68 69 73 20 53  | entry)...This S|
00002870  57 49 20 73 65 74 73 20  74 68 65 20 73 69 7a 65  |WI sets the size|
00002880  20 6f 66 20 74 68 65 20  61 72 63 68 69 76 65 20  | of the archive |
00002890  52 65 2d 41 72 72 61 6e  67 65 6d 65 6e 74 20 42  |Re-Arrangement B|
000028a0  75 66 66 65 72 2e 0a 49  66 20 52 32 20 69 73 20  |uffer..If R2 is |
000028b0  30 20 6f 6e 20 65 6e 74  72 79 20 74 68 65 6e 20  |0 on entry then |
000028c0  52 41 42 20 61 75 74 6f  2d 63 61 6c 63 75 6c 61  |RAB auto-calcula|
000028d0  74 69 6f 6e 20 6d 6f 64  65 20 77 69 6c 6c 20 62  |tion mode will b|
000028e0  65 20 73 65 74 20 61 6e  64 20 41 72 63 46 53 0a  |e set and ArcFS.|
000028f0  77 69 6c 6c 20 75 73 65  20 61 73 20 6d 75 63 68  |will use as much|
00002900  20 6d 65 6d 6f 72 79 20  61 73 20 69 73 20 72 65  | memory as is re|
00002910  71 75 69 72 65 64 20 61  6e 79 77 61 79 20 74 6f  |quired anyway to|
00002920  20 73 61 76 65 20 61 20  66 69 6c 65 20 77 69 74  | save a file wit|
00002930  68 20 74 68 65 0a 73 65  6c 65 63 74 65 64 20 63  |h the.selected c|
00002940  6f 6d 70 72 65 73 73 69  6f 6e 20 66 6f 72 6d 61  |ompression forma|
00002950  74 20 61 6e 64 20 52 44  42 20 73 69 7a 65 2e 20  |t and RDB size. |
00002960  54 68 69 73 20 69 73 20  73 75 62 6a 65 63 74 20  |This is subject |
00002970  74 6f 20 61 20 6d 69 6e  69 6d 75 6d 20 6f 66 0a  |to a minimum of.|
00002980  34 38 6b 2e 0a 49 66 20  52 32 20 69 73 20 6e 6f  |48k..If R2 is no|
00002990  6e 2d 7a 65 72 6f 20 74  68 65 6e 20 52 41 42 20  |n-zero then RAB |
000029a0  61 75 74 6f 2d 63 61 6c  63 75 6c 61 74 69 6f 6e  |auto-calculation|
000029b0  20 6d 6f 64 65 20 77 69  6c 6c 20 62 65 20 63 6c  | mode will be cl|
000029c0  65 61 72 65 64 2e 0a 0a  2a 2a 2a 2a 2a 2a 2a 2a  |eared...********|
000029d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002a10  2a 2a 2a 2a 2a 0a 0a 53  57 49 20 22 41 72 63 46  |*****..SWI "ArcF|
00002a20  53 5f 53 65 74 48 65 61  64 65 72 47 61 70 73 22  |S_SetHeaderGaps"|
00002a30  20 20 20 20 20 20 20 20  20 72 2f 77 20 76 65 72  |         r/w ver|
00002a40  73 69 6f 6e 20 6f 6e 6c  79 20 20 20 20 20 20 20  |sion only       |
00002a50  20 20 20 20 20 20 20 20  26 34 33 37 44 38 0a 2d  |        &437D8.-|
00002a60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002a70  2d 2d 2d 2d 2d 2d 2d 2d  20 20 20 20 20 20 20 20  |--------        |
00002a80  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00002a90  2d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |-               |
00002aa0  2d 2d 2d 2d 2d 2d 0a 0a  4f 6e 20 65 6e 74 72 79  |------..On entry|
00002ab0  3a 20 52 33 3d 6e 6f 2e  20 6f 66 20 67 61 70 73  |: R3=no. of gaps|
00002ac0  0a 0a 4f 6e 20 65 78 69  74 20 3a 20 52 33 20 70  |..On exit : R3 p|
00002ad0  72 65 73 65 72 76 65 64  0a 0a 54 68 69 73 20 53  |reserved..This S|
00002ae0  57 49 20 73 65 74 73 20  74 68 65 20 6e 75 6d 62  |WI sets the numb|
00002af0  65 72 20 6f 66 20 68 65  61 64 65 72 20 67 61 70  |er of header gap|
00002b00  73 20 74 6f 20 62 65 20  63 72 65 61 74 65 64 20  |s to be created |
00002b10  61 74 20 6f 6e 63 65 2e  0a 0a 2a 2a 2a 2a 2a 2a  |at once...******|
00002b20  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002b60  2a 2a 2a 2a 2a 2a 2a 0a  0a 53 57 49 20 22 41 72  |*******..SWI "Ar|
00002b70  63 46 53 5f 4e 61 6d 65  64 41 72 63 49 6e 66 6f  |cFS_NamedArcInfo|
00002b80  22 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |"               |
00002b90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002ba0  20 20 20 20 20 20 20 20  20 20 26 34 33 37 44 39  |          &437D9|
00002bb0  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00002bc0  2d 2d 2d 2d 2d 2d 2d 2d  2d 20 20 20 20 20 20 20  |---------       |
00002bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002bf0  20 20 2d 2d 2d 2d 2d 2d  0a 0a 4f 6e 20 65 6e 74  |  ------..On ent|
00002c00  72 79 3a 20 52 36 3d 70  6f 69 6e 74 65 72 20 74  |ry: R6=pointer t|
00002c10  6f 20 61 72 63 68 69 76  65 20 6e 61 6d 65 2e 0a  |o archive name..|
00002c20  0a 4f 6e 20 65 78 69 74  20 3a 20 52 31 3d 70 6f  |.On exit : R1=po|
00002c30  69 6e 74 65 72 20 74 6f  20 61 72 63 68 69 76 65  |inter to archive|
00002c40  20 70 61 74 68 6e 61 6d  65 2e 0a 20 20 20 20 20  | pathname..     |
00002c50  20 20 20 20 20 52 32 3d  70 6f 69 6e 74 65 72 20  |     R2=pointer |
00002c60  74 6f 20 61 72 63 68 69  76 65 20 68 65 61 64 65  |to archive heade|
00002c70  72 73 20 28 69 6e 74 65  72 6e 61 6c 20 75 73 65  |rs (internal use|
00002c80  20 6f 6e 6c 79 29 2e 0a  20 20 20 20 20 20 20 20  | only)..        |
00002c90  20 20 52 36 20 70 72 65  73 65 72 76 65 64 0a 0a  |  R6 preserved..|
00002ca0  54 68 69 73 20 53 57 49  20 72 65 74 75 72 6e 73  |This SWI returns|
00002cb0  20 74 68 65 20 70 61 74  68 6e 61 6d 65 20 6f 66  | the pathname of|
00002cc0  20 61 6e 20 61 72 63 68  69 76 65 2e 20 49 74 20  | an archive. It |
00002cd0  69 73 20 75 73 65 64 20  62 79 20 21 41 72 63 46  |is used by !ArcF|
00002ce0  53 49 6e 66 6f 20 74 6f  0a 6f 62 74 61 69 6e 20  |SInfo to.obtain |
00002cf0  61 72 63 68 69 76 65 20  70 61 74 68 6e 61 6d 65  |archive pathname|
00002d00  73 2e 0a 0a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |s...************|
00002d10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00002d50  2a 0a 0a 53 57 49 20 22  41 72 63 46 53 5f 47 65  |*..SWI "ArcFS_Ge|
00002d60  74 41 72 63 4e 61 6d 65  22 20 20 20 20 20 20 20  |tArcName"       |
00002d70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00002d90  20 20 20 20 26 34 33 37  44 41 0a 2d 2d 2d 2d 2d  |    &437DA.-----|
00002da0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00002db0  2d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |-               |
00002dc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002dd0  20 20 20 20 20 20 20 20  20 20 20 20 2d 2d 2d 2d  |            ----|
00002de0  2d 2d 0a 0a 4f 6e 20 65  6e 74 72 79 3a 20 52 31  |--..On entry: R1|
00002df0  3d 70 6f 69 6e 74 65 72  20 74 6f 20 61 72 63 68  |=pointer to arch|
00002e00  69 76 65 20 70 61 74 68  6e 61 6d 65 2e 0a 0a 4f  |ive pathname...O|
00002e10  6e 20 65 78 69 74 20 3a  20 52 31 20 70 72 65 73  |n exit : R1 pres|
00002e20  65 72 76 65 64 0a 20 20  20 20 20 20 20 20 20 20  |erved.          |
00002e30  52 36 3d 70 6f 69 6e 74  65 72 20 74 6f 20 61 72  |R6=pointer to ar|
00002e40  63 68 69 76 65 20 6e 61  6d 65 2e 0a 0a 20 20 20  |chive name...   |
00002e50  20 20 20 20 20 20 20 49  66 20 74 68 65 20 61 72  |       If the ar|
00002e60  63 68 69 76 65 20 69 73  20 6e 6f 74 20 6f 70 65  |chive is not ope|
00002e70  6e 20 74 68 65 6e 20 74  68 65 20 53 57 49 20 77  |n then the SWI w|
00002e80  69 6c 6c 20 72 65 74 75  72 6e 20 77 69 74 68 20  |ill return with |
00002e90  52 36 3d 30 20 61 6e 64  0a 20 20 20 20 20 20 20  |R6=0 and.       |
00002ea0  20 20 20 74 68 65 20 63  61 72 72 79 20 66 6c 61  |   the carry fla|
00002eb0  67 20 73 65 74 2e 0a 0a  54 68 69 73 20 53 57 49  |g set...This SWI|
00002ec0  20 72 65 74 75 72 6e 73  20 74 68 65 20 6e 61 6d  | returns the nam|
00002ed0  65 20 28 77 68 69 63 68  20 73 68 6f 75 6c 64 20  |e (which should |
00002ee0  62 65 20 75 73 65 64 20  69 6e 20 74 68 65 20 73  |be used in the s|
00002ef0  70 65 63 69 61 6c 20 66  69 65 6c 64 29 20 6f 66  |pecial field) of|
00002f00  20 61 6e 0a 61 72 63 68  69 76 65 2e 20 49 66 20  | an.archive. If |
00002f10  69 74 20 69 73 20 6e 6f  74 20 6f 70 65 6e 2c 20  |it is not open, |
00002f20  74 68 65 6e 20 69 74 20  77 69 6c 6c 20 72 65 74  |then it will ret|
00002f30  75 72 6e 20 77 69 74 68  20 52 36 3d 30 20 61 6e  |urn with R6=0 an|
00002f40  64 20 74 68 65 20 63 61  72 72 79 20 66 6c 61 67  |d the carry flag|
00002f50  0a 73 65 74 20 28 6e 6f  20 65 72 72 6f 72 20 69  |.set (no error i|
00002f60  73 20 72 65 74 75 72 6e  65 64 29 2e 20 49 74 20  |s returned). It |
00002f70  73 68 6f 75 6c 64 20 62  65 20 75 73 65 64 20 62  |should be used b|
00002f80  79 20 64 65 73 6b 74 6f  70 20 61 70 70 6c 69 63  |y desktop applic|
00002f90  61 74 69 6f 6e 73 20 77  68 65 6e 0a 6f 70 65 6e  |ations when.open|
00002fa0  69 6e 67 20 61 72 63 68  69 76 65 73 20 61 73 20  |ing archives as |
00002fb0  66 6f 6c 6c 6f 77 73 3a  0a 0a 5c 20 41 52 4d 20  |follows:..\ ARM |
00002fc0  63 6f 64 65 20 65 78 61  6d 70 6c 65 20 6f 66 20  |code example of |
00002fd0  6f 70 65 6e 69 6e 67 20  61 72 63 68 69 76 65 73  |opening archives|
00002fe0  20 69 6e 20 64 65 73 6b  74 6f 70 20 61 70 70 6c  | in desktop appl|
00002ff0  69 63 61 74 69 6f 6e 73  2e 0a 5c 20 52 31 20 63  |ications..\ R1 c|
00003000  6f 6e 74 61 69 6e 73 20  70 6f 69 6e 74 65 72 20  |ontains pointer |
00003010  74 6f 20 61 72 63 20 70  61 74 68 6e 61 6d 65 2e  |to arc pathname.|
00003020  0a 53 57 49 20 20 20 22  41 72 63 46 53 5f 47 65  |.SWI   "ArcFS_Ge|
00003030  74 41 72 63 4e 61 6d 65  22 0a 53 57 49 43 53 20  |tArcName".SWICS |
00003040  22 41 72 63 46 53 5f 4f  70 65 6e 41 72 63 22 0a  |"ArcFS_OpenArc".|
00003050  42 56 53 20 20 20 66 6f  72 67 65 74 6f 6c 64 0a  |BVS   forgetold.|
00003060  0a 0a 2e 66 6f 72 67 65  74 6f 6c 64 0a 5c 20 54  |...forgetold.\ T|
00003070  68 69 73 20 77 69 6c 6c  20 62 65 20 63 61 6c 6c  |his will be call|
00003080  65 64 20 77 68 65 6e 20  74 68 65 72 65 20 69 73  |ed when there is|
00003090  20 61 6c 72 65 61 64 79  20 61 6e 20 61 72 63 68  | already an arch|
000030a0  69 76 65 20 6f 70 65 6e  20 77 69 74 68 20 74 68  |ive open with th|
000030b0  65 0a 20 20 6c 65 61 66  6e 61 6d 65 20 6f 66 20  |e.  leafname of |
000030c0  74 68 65 20 61 72 63 68  69 76 65 20 74 68 61 74  |the archive that|
000030d0  20 79 6f 75 20 61 72 65  20 74 72 79 69 6e 67 20  | you are trying |
000030e0  74 6f 20 6f 70 65 6e 2e  0a 5c 20 59 6f 75 20 73  |to open..\ You s|
000030f0  68 6f 75 6c 64 20 61 73  6b 20 74 68 65 20 75 73  |hould ask the us|
00003100  65 72 20 69 66 20 74 68  65 79 20 77 69 73 68 20  |er if they wish |
00003110  74 6f 20 66 6f 72 67 65  74 20 74 68 65 20 6f 6c  |to forget the ol|
00003120  64 20 6f 6e 65 2e 0a 5c  20 49 66 20 74 68 65 79  |d one..\ If they|
00003130  20 72 65 70 6c 79 20 79  65 73 2c 20 74 68 65 6e  | reply yes, then|
00003140  20 79 6f 75 20 73 68 6f  75 6c 64 20 63 6c 6f 73  | you should clos|
00003150  65 20 74 68 65 20 61 72  63 68 69 76 65 20 77 69  |e the archive wi|
00003160  74 68 20 74 68 65 20 6e  61 6d 65 20 70 6f 69 6e  |th the name poin|
00003170  74 65 64 20 20 20 74 6f  20 62 79 20 52 36 20 28  |ted   to by R6 (|
00003180  74 68 69 73 20 77 69 6c  6c 20 68 61 76 65 20 62  |this will have b|
00003190  65 65 6e 20 73 65 74 20  75 70 20 62 79 20 41 72  |een set up by Ar|
000031a0  63 46 53 5f 4f 70 65 6e  41 72 63 29 2c 20 63 6c  |cFS_OpenArc), cl|
000031b0  6f 73 65 20 61 6e 79 20  66 69 6c 65 72 0a 20 20  |ose any filer.  |
000031c0  77 69 6e 64 6f 77 73 20  6f 6e 20 74 68 61 74 20  |windows on that |
000031d0  61 72 63 68 69 76 65 20  62 79 20 75 73 69 6e 67  |archive by using|
000031e0  20 2a 46 69 6c 65 72 5f  43 6c 6f 73 65 44 69 72  | *Filer_CloseDir|
000031f0  20 61 72 63 66 73 23 3c  6e 61 6d 65 3e 2c 20 61  | arcfs#<name>, a|
00003200  6e 64 20 74 72 79 20 74  6f 0a 20 20 6f 70 65 6e  |nd try to.  open|
00003210  20 74 68 65 20 61 72 63  68 69 76 65 20 61 67 61  | the archive aga|
00003220  69 6e 2e 0a 0a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |in...***********|
00003230  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00003270  2a 2a 0a 0a                                       |**..|
00003274