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:
- Archimedes archive » Micro User » MU 1992-08.adf » ArcFSExtra » Documents/NewSWIs
- Archimedes archive » Micro User » MU 1992-09.adf » ArcFSExtra » Documents/NewSWIs
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