Home » Archimedes archive » Acorn Computing » 1994 08 subscription disc.adf » 9408s » Shareware/Event/Documents/!EShellDoc/!RunImage/Chapter7/Text

Shareware/Event/Documents/!EShellDoc/!RunImage/Chapter7/Text

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 » Acorn Computing » 1994 08 subscription disc.adf » 9408s
Filename: Shareware/Event/Documents/!EShellDoc/!RunImage/Chapter7/Text
Read OK:
File size: 11B8 bytes
Load address: 0000
Exec address: 0000
File contents
X��DBX�7A�������5���Saving Filess�
D%BG��'3�� "�
x�4���� "�This is achieved by a call to PROCshell_AttachDataSave which specifies which filetype the saved x|@.Ǔ����� "�file should be given, the name of a function which will actually perform the save and the window/|�4�[��g��� "�icon handles the drag save event is associated with. It is therefore possible to have different drag �|@G#��'R�� "�save events attached to different icons in the same window. This is useful where it is possible to |%|B`����� "�save the file as more than one type - you can have multiple filetype icons in the save window.   
|%BDz���� "�
td��z��g��� "�The EvntShell library supports RAM file transfer for speed when saving data to consenting t%,BlGB��'q�� "�applications.   
,%B
���8�� "�
%<B�������� "�An example piece of code might be:
<�(B����g�� "�
(�\B	i��'���p�PROCshell_AttachDataSave(h%,9,buff%,&FFF,14,�_do_save�)
\%B)���W�� "�
x����� "�This was taken from the !VBase2 example program. If you examine this application you will see x|\Q����g� "�that this code is called in the 'PreOpen' function for the 'Report' window (FN_PreOpenReport). This |��AG���'��� "�is because the report window is only opened as a dialog box off a menu, or in reponse to a 'hot key' �x,H���v�� "�key press. If the window was defined as a static window then the event could be attached at any xxl�����>�� "�time after creating the window, but in this case the window is dynamic and only created when x|\���g�� "�required, so the event must be attached just before the window opens. This is a general principle |%4B�G���'�� "�concerning event attaching.
4%Bg���� "�
|�S�.���]�� "�The parameters for AttachDataSave are as follows: the window handle and icon handle to attach the |��<����g%�� "�event to, the address of the buffer holding the data, the filetype of the file to save, the handle of the �%pBl0G���'� "�icon holding the filename and lastly the function to call to actually perform the save.
p%B����� "�
|G�M���|�� "�This example assumes that the data is held as one continuous block in a memory buffer, but what if |%hB����gD�� "�it is held in BASIC string arrays for instance? Well we use this form instead:
h�(BG��'�� "�
e (�\B0�׬�����p�PROCshell_AttachDataSave(h%,9,100,&FFF,14,�_do_save�)el
\%0B����l������ "�o_s�������
0|��4��gc�� "�The third parameter is now less than &8000 and is taken to be the estimated size of the file (this |�PG���'+�� "�need not be accurate). In this case the library will not attempt  to save the file for you, merely return ��0;���� "�the full name of the file to save. Your program can then open this file and save the data in any way �%$B�Nj������ "�it likes.
$%B�S��g��� "�
|�!G��'J�� "�Another possibility is to put the data in a heapblock and make the name of the saving function "". |��J���� "�This will cause the library to save the file for you at the end of the drag, but note, however, that this �|t<Ǫ����� "�may cause too much data to be saved as the heapblock is usually a few bytes larger than requested. ||\Z�r��g��� "�Sometimes this does not matter, but for the !VBase2 demo it does. Try changing "_do_save" to "" in ||$PG:��'i�� "�the call to shell_AttachDataSave and drag the icon from the report window to StrongEd2 or similar. |%\BD����0�� "�You should see a few extra unwanted bytes at the end of the file.
\�%B�X�և� "�
%pB|�� �O� "�Examination of the !VBase2 and !WinSave2 demo applications should make things clearer.
pyV4��f�	�hB(?��1<��)�fff�	f�	Saving Fileses�	ff
hyV4�Df�	�hB(?��<��)�fff�	f�	Saving Filesles�	ff
hyV4
00000000  58 10 00 00 01 00 00 00  00 00 00 00 06 08 00 00  |X...............|
00000010  00 08 00 00 01 10 00 00  00 00 00 00 00 00 00 00  |................|
00000020  00 10 00 00 02 18 00 00  10 01 00 00 00 00 00 00  |................|
00000030  01 b6 0c 00 00 00 00 00  00 18 00 00 a5 44 00 00  |.............D..|
00000040  42 58 9a 01 37 41 fe ff  87 87 fe ff dc 35 00 f2  |BX..7A.......5..|
00000050  07 05 05 05 01 b6 0c 00  01 b6 0c 00 00 00 00 00  |................|
00000060  53 61 76 69 6e 67 20 46  69 6c 65 73 08 73 08 05  |Saving Files.s..|
00000070  01 b6 0c 00 00 00 00 00  0d 00 00 00 00 44 00 00  |.............D..|
00000080  25 1c 00 00 42 00 00 00  47 04 fe ff 27 33 fe ff  |%...B...G...'3..|
00000090  20 22 00 f2 0d 00 00 00  00 1c 00 00 05 78 00 00  | "...........x..|
000000a0  00 c4 34 07 07 cc fd ff  e7 fa fd ff 20 22 00 f2  |..4......... "..|
000000b0  54 68 69 73 20 69 73 20  61 63 68 69 65 76 65 64  |This is achieved|
000000c0  20 62 79 20 61 20 63 61  6c 6c 20 74 6f 20 50 52  | by a call to PR|
000000d0  4f 43 73 68 65 6c 6c 5f  41 74 74 61 63 68 44 61  |OCshell_AttachDa|
000000e0  74 61 53 61 76 65 20 77  68 69 63 68 20 73 70 65  |taSave which spe|
000000f0  63 69 66 69 65 73 20 77  68 69 63 68 20 66 69 6c  |cifies which fil|
00000100  65 74 79 70 65 20 74 68  65 20 73 61 76 65 64 20  |etype the saved |
00000110  00 78 00 00 05 7c 00 00  00 40 2e 07 c7 93 fd ff  |.x...|...@......|
00000120  a7 c2 fd ff 20 22 00 f0  66 69 6c 65 20 73 68 6f  |.... "..file sho|
00000130  75 6c 64 20 62 65 20 67  69 76 65 6e 2c 20 74 68  |uld be given, th|
00000140  65 20 6e 61 6d 65 20 6f  66 20 61 20 66 75 6e 63  |e name of a func|
00000150  74 69 6f 6e 20 77 68 69  63 68 20 77 69 6c 6c 20  |tion which will |
00000160  61 63 74 75 61 6c 6c 79  20 70 65 72 66 6f 72 6d  |actually perform|
00000170  20 74 68 65 20 73 61 76  65 20 61 6e 64 20 74 68  | the save and th|
00000180  65 20 77 69 6e 64 6f 77  2f 00 00 00 00 7c 00 00  |e window/....|..|
00000190  05 80 00 00 00 34 10 07  87 5b fd ff 67 8a fd ff  |.....4...[..g...|
000001a0  20 22 00 f0 69 63 6f 6e  20 68 61 6e 64 6c 65 73  | "..icon handles|
000001b0  20 74 68 65 20 64 72 61  67 20 73 61 76 65 20 65  | the drag save e|
000001c0  76 65 6e 74 20 69 73 20  61 73 73 6f 63 69 61 74  |vent is associat|
000001d0  65 64 20 77 69 74 68 2e  20 49 74 20 69 73 20 74  |ed with. It is t|
000001e0  68 65 72 65 66 6f 72 65  20 70 6f 73 73 69 62 6c  |herefore possibl|
000001f0  65 20 74 6f 20 68 61 76  65 20 64 69 66 66 65 72  |e to have differ|
00000200  65 6e 74 20 64 72 61 67  20 00 00 00 00 80 00 00  |ent drag .......|
00000210  05 7c 00 00 00 40 07 07  47 23 fd ff 27 52 fd ff  |.|...@..G#..'R..|
00000220  20 22 00 f0 73 61 76 65  20 65 76 65 6e 74 73 20  | "..save events |
00000230  61 74 74 61 63 68 65 64  20 74 6f 20 64 69 66 66  |attached to diff|
00000240  65 72 65 6e 74 20 69 63  6f 6e 73 20 69 6e 20 74  |erent icons in t|
00000250  68 65 20 73 61 6d 65 20  77 69 6e 64 6f 77 2e 20  |he same window. |
00000260  54 68 69 73 20 69 73 20  75 73 65 66 75 6c 20 77  |This is useful w|
00000270  68 65 72 65 20 69 74 20  69 73 20 70 6f 73 73 69  |here it is possi|
00000280  62 6c 65 20 74 6f 20 00  00 7c 00 00 25 7c 00 00  |ble to ..|..%|..|
00000290  42 60 ff 06 07 eb fc ff  e7 19 fd ff 20 22 00 f0  |B`.......... "..|
000002a0  73 61 76 65 20 74 68 65  20 66 69 6c 65 20 61 73  |save the file as|
000002b0  20 6d 6f 72 65 20 74 68  61 6e 20 6f 6e 65 20 74  | more than one t|
000002c0  79 70 65 20 2d 20 79 6f  75 20 63 61 6e 20 68 61  |ype - you can ha|
000002d0  76 65 20 6d 75 6c 74 69  70 6c 65 20 66 69 6c 65  |ve multiple file|
000002e0  74 79 70 65 20 69 63 6f  6e 73 20 69 6e 20 74 68  |type icons in th|
000002f0  65 20 73 61 76 65 20 77  69 6e 64 6f 77 2e 20 20  |e save window.  |
00000300  20 0d 00 00 00 7c 00 00  25 1c 00 00 42 00 00 00  | ....|..%...B...|
00000310  c7 b2 fc ff a7 e1 fc ff  20 22 00 f2 0d 00 00 00  |........ "......|
00000320  00 1c 00 00 05 74 00 00  00 64 ad 06 87 7a fc ff  |.....t...d...z..|
00000330  67 a9 fc ff 20 22 00 f2  54 68 65 20 45 76 6e 74  |g... "..The Evnt|
00000340  53 68 65 6c 6c 20 6c 69  62 72 61 72 79 20 73 75  |Shell library su|
00000350  70 70 6f 72 74 73 20 52  41 4d 20 66 69 6c 65 20  |pports RAM file |
00000360  74 72 61 6e 73 66 65 72  20 66 6f 72 20 73 70 65  |transfer for spe|
00000370  65 64 20 77 68 65 6e 20  73 61 76 69 6e 67 20 64  |ed when saving d|
00000380  61 74 61 20 74 6f 20 63  6f 6e 73 65 6e 74 69 6e  |ata to consentin|
00000390  67 20 00 00 00 74 00 00  25 2c 00 00 42 6c 11 01  |g ...t..%,..Bl..|
000003a0  47 42 fc ff 27 71 fc ff  20 22 00 f0 61 70 70 6c  |GB..'q.. "..appl|
000003b0  69 63 61 74 69 6f 6e 73  2e 20 20 20 0d 00 00 00  |ications.   ....|
000003c0  00 2c 00 00 25 1c 00 00  42 00 00 00 07 0a fc ff  |.,..%...B.......|
000003d0  e7 38 fc ff 20 22 00 f2  0d 00 00 00 00 1c 00 00  |.8.. "..........|
000003e0  25 3c 00 00 42 8c a7 02  c7 d1 fb ff a7 00 fc ff  |%<..B...........|
000003f0  20 22 00 f2 41 6e 20 65  78 61 6d 70 6c 65 20 70  | "..An example p|
00000400  69 65 63 65 20 6f 66 20  63 6f 64 65 20 6d 69 67  |iece of code mig|
00000410  68 74 20 62 65 3a 0d 00  00 3c 00 00 a5 28 00 00  |ht be:...<...(..|
00000420  42 00 00 00 87 99 fb ff  67 c8 fb ff 20 22 00 f2  |B.......g... "..|
00000430  0d 07 00 00 1c 02 0e 00  1c 02 0e 00 00 00 00 00  |................|
00000440  00 28 00 00 a5 5c 00 00  42 10 09 05 17 69 fb ff  |.(...\..B....i..|
00000450  27 90 fb ff 70 1a 00 f2  50 52 4f 43 73 68 65 6c  |'...p...PROCshel|
00000460  6c 5f 41 74 74 61 63 68  44 61 74 61 53 61 76 65  |l_AttachDataSave|
00000470  28 68 25 2c 39 2c 62 75  66 66 25 2c 26 46 46 46  |(h%,9,buff%,&FFF|
00000480  2c 31 34 2c 94 5f 64 6f  5f 73 61 76 65 95 29 08  |,14,._do_save.).|
00000490  1c 02 0e 00 00 00 00 00  0d 00 00 00 00 5c 00 00  |.............\..|
000004a0  25 1c 00 00 42 00 00 00  07 29 fb ff e7 57 fb ff  |%...B....)...W..|
000004b0  20 22 00 f2 0d 00 00 00  00 1c 00 00 05 78 00 00  | "...........x..|
000004c0  00 d0 16 07 c7 f0 fa ff  a7 1f fb ff 20 22 00 f2  |............ "..|
000004d0  54 68 69 73 20 77 61 73  20 74 61 6b 65 6e 20 66  |This was taken f|
000004e0  72 6f 6d 20 74 68 65 20  21 56 42 61 73 65 32 20  |rom the !VBase2 |
000004f0  65 78 61 6d 70 6c 65 20  70 72 6f 67 72 61 6d 2e  |example program.|
00000500  20 49 66 20 79 6f 75 20  65 78 61 6d 69 6e 65 20  | If you examine |
00000510  74 68 69 73 20 61 70 70  6c 69 63 61 74 69 6f 6e  |this application|
00000520  20 79 6f 75 20 77 69 6c  6c 20 73 65 65 20 00 00  | you will see ..|
00000530  00 78 00 00 05 7c 00 00  00 5c 51 07 87 b8 fa ff  |.x...|...\Q.....|
00000540  67 e7 fa ff 20 22 00 f0  74 68 61 74 20 74 68 69  |g... "..that thi|
00000550  73 20 63 6f 64 65 20 69  73 20 63 61 6c 6c 65 64  |s code is called|
00000560  20 69 6e 20 74 68 65 20  27 50 72 65 4f 70 65 6e  | in the 'PreOpen|
00000570  27 20 66 75 6e 63 74 69  6f 6e 20 66 6f 72 20 74  |' function for t|
00000580  68 65 20 27 52 65 70 6f  72 74 27 20 77 69 6e 64  |he 'Report' wind|
00000590  6f 77 20 28 46 4e 5f 50  72 65 4f 70 65 6e 52 65  |ow (FN_PreOpenRe|
000005a0  70 6f 72 74 29 2e 20 54  68 69 73 20 00 7c 00 00  |port). This .|..|
000005b0  05 80 00 00 00 b4 41 07  47 80 fa ff 27 af fa ff  |......A.G...'...|
000005c0  20 22 00 f0 69 73 20 62  65 63 61 75 73 65 20 74  | "..is because t|
000005d0  68 65 20 72 65 70 6f 72  74 20 77 69 6e 64 6f 77  |he report window|
000005e0  20 69 73 20 6f 6e 6c 79  20 6f 70 65 6e 65 64 20  | is only opened |
000005f0  61 73 20 61 20 64 69 61  6c 6f 67 20 62 6f 78 20  |as a dialog box |
00000600  6f 66 66 20 61 20 6d 65  6e 75 2c 20 6f 72 20 69  |off a menu, or i|
00000610  6e 20 72 65 70 6f 6e 73  65 20 74 6f 20 61 20 27  |n reponse to a '|
00000620  68 6f 74 20 6b 65 79 27  20 00 00 00 00 80 00 00  |hot key' .......|
00000630  05 78 00 00 00 2c 03 07  07 48 fa ff e7 76 fa ff  |.x...,...H...v..|
00000640  20 22 00 f0 6b 65 79 20  70 72 65 73 73 2e 20 49  | "..key press. I|
00000650  66 20 74 68 65 20 77 69  6e 64 6f 77 20 77 61 73  |f the window was|
00000660  20 64 65 66 69 6e 65 64  20 61 73 20 61 20 73 74  | defined as a st|
00000670  61 74 69 63 20 77 69 6e  64 6f 77 20 74 68 65 6e  |atic window then|
00000680  20 74 68 65 20 65 76 65  6e 74 20 63 6f 75 6c 64  | the event could|
00000690  20 62 65 20 61 74 74 61  63 68 65 64 20 61 74 20  | be attached at |
000006a0  61 6e 79 20 00 78 00 00  05 78 00 00 00 6c e1 06  |any .x...x...l..|
000006b0  c7 0f fa ff a7 3e fa ff  20 22 00 f0 74 69 6d 65  |.....>.. "..time|
000006c0  20 61 66 74 65 72 20 63  72 65 61 74 69 6e 67 20  | after creating |
000006d0  74 68 65 20 77 69 6e 64  6f 77 2c 20 62 75 74 20  |the window, but |
000006e0  69 6e 20 74 68 69 73 20  63 61 73 65 20 74 68 65  |in this case the|
000006f0  20 77 69 6e 64 6f 77 20  69 73 20 64 79 6e 61 6d  | window is dynam|
00000700  69 63 20 61 6e 64 20 6f  6e 6c 79 20 63 72 65 61  |ic and only crea|
00000710  74 65 64 20 77 68 65 6e  20 00 00 00 00 78 00 00  |ted when ....x..|
00000720  05 7c 00 00 00 5c 0c 07  87 d7 f9 ff 67 06 fa ff  |.|...\......g...|
00000730  20 22 00 f0 72 65 71 75  69 72 65 64 2c 20 73 6f  | "..required, so|
00000740  20 74 68 65 20 65 76 65  6e 74 20 6d 75 73 74 20  | the event must |
00000750  62 65 20 61 74 74 61 63  68 65 64 20 6a 75 73 74  |be attached just|
00000760  20 62 65 66 6f 72 65 20  74 68 65 20 77 69 6e 64  | before the wind|
00000770  6f 77 20 6f 70 65 6e 73  2e 20 54 68 69 73 20 69  |ow opens. This i|
00000780  73 20 61 20 67 65 6e 65  72 61 6c 20 70 72 69 6e  |s a general prin|
00000790  63 69 70 6c 65 20 00 00  00 7c 00 00 25 34 00 00  |ciple ...|..%4..|
000007a0  42 cc 04 02 47 9f f9 ff  27 ce f9 ff 20 22 00 f0  |B...G...'... "..|
000007b0  63 6f 6e 63 65 72 6e 69  6e 67 20 65 76 65 6e 74  |concerning event|
000007c0  20 61 74 74 61 63 68 69  6e 67 2e 0d 00 34 00 00  | attaching...4..|
000007d0  25 1c 00 00 42 00 00 00  07 67 f9 ff e7 95 f9 ff  |%...B....g......|
000007e0  20 22 00 f2 0d 00 00 00  00 1c 00 00 05 7c 00 00  | "...........|..|
000007f0  00 d8 53 07 c7 2e f9 ff  a7 5d f9 ff 20 22 00 f2  |..S......].. "..|
00000800  54 68 65 20 70 61 72 61  6d 65 74 65 72 73 20 66  |The parameters f|
00000810  6f 72 20 41 74 74 61 63  68 44 61 74 61 53 61 76  |or AttachDataSav|
00000820  65 20 61 72 65 20 61 73  20 66 6f 6c 6c 6f 77 73  |e are as follows|
00000830  3a 20 74 68 65 20 77 69  6e 64 6f 77 20 68 61 6e  |: the window han|
00000840  64 6c 65 20 61 6e 64 20  69 63 6f 6e 20 68 61 6e  |dle and icon han|
00000850  64 6c 65 20 74 6f 20 61  74 74 61 63 68 20 74 68  |dle to attach th|
00000860  65 20 00 00 00 7c 00 00  05 84 00 00 00 80 3c 07  |e ...|........<.|
00000870  87 f6 f8 ff 67 25 f9 ff  20 22 00 f0 65 76 65 6e  |....g%.. "..even|
00000880  74 20 74 6f 2c 20 74 68  65 20 61 64 64 72 65 73  |t to, the addres|
00000890  73 20 6f 66 20 74 68 65  20 62 75 66 66 65 72 20  |s of the buffer |
000008a0  68 6f 6c 64 69 6e 67 20  74 68 65 20 64 61 74 61  |holding the data|
000008b0  2c 20 74 68 65 20 66 69  6c 65 74 79 70 65 20 6f  |, the filetype o|
000008c0  66 20 74 68 65 20 66 69  6c 65 20 74 6f 20 73 61  |f the file to sa|
000008d0  76 65 2c 20 74 68 65 20  68 61 6e 64 6c 65 20 6f  |ve, the handle o|
000008e0  66 20 74 68 65 20 00 00  00 84 00 00 25 70 00 00  |f the ......%p..|
000008f0  42 6c 30 06 47 be f8 ff  27 ed f8 ff 20 22 00 f0  |Bl0.G...'... "..|
00000900  69 63 6f 6e 20 68 6f 6c  64 69 6e 67 20 74 68 65  |icon holding the|
00000910  20 66 69 6c 65 6e 61 6d  65 20 61 6e 64 20 6c 61  | filename and la|
00000920  73 74 6c 79 20 74 68 65  20 66 75 6e 63 74 69 6f  |stly the functio|
00000930  6e 20 74 6f 20 63 61 6c  6c 20 74 6f 20 61 63 74  |n to call to act|
00000940  75 61 6c 6c 79 20 70 65  72 66 6f 72 6d 20 74 68  |ually perform th|
00000950  65 20 73 61 76 65 2e 0d  00 70 00 00 25 1c 00 00  |e save...p..%...|
00000960  42 00 00 00 07 86 f8 ff  e7 b4 f8 ff 20 22 00 f2  |B........... "..|
00000970  0d 00 00 00 00 1c 00 00  05 7c 00 00 00 0c 47 07  |.........|....G.|
00000980  c7 4d f8 ff a7 7c f8 ff  20 22 00 f2 54 68 69 73  |.M...|.. "..This|
00000990  20 65 78 61 6d 70 6c 65  20 61 73 73 75 6d 65 73  | example assumes|
000009a0  20 74 68 61 74 20 74 68  65 20 64 61 74 61 20 69  | that the data i|
000009b0  73 20 68 65 6c 64 20 61  73 20 6f 6e 65 20 63 6f  |s held as one co|
000009c0  6e 74 69 6e 75 6f 75 73  20 62 6c 6f 63 6b 20 69  |ntinuous block i|
000009d0  6e 20 61 20 6d 65 6d 6f  72 79 20 62 75 66 66 65  |n a memory buffe|
000009e0  72 2c 20 62 75 74 20 77  68 61 74 20 69 66 20 00  |r, but what if .|
000009f0  00 7c 00 00 25 68 00 00  42 f4 9f 05 87 15 f8 ff  |.|..%h..B.......|
00000a00  67 44 f8 ff 20 22 00 f0  69 74 20 69 73 20 68 65  |gD.. "..it is he|
00000a10  6c 64 20 69 6e 20 42 41  53 49 43 20 73 74 72 69  |ld in BASIC stri|
00000a20  6e 67 20 61 72 72 61 79  73 20 66 6f 72 20 69 6e  |ng arrays for in|
00000a30  73 74 61 6e 63 65 3f 20  57 65 6c 6c 20 77 65 20  |stance? Well we |
00000a40  75 73 65 20 74 68 69 73  20 66 6f 72 6d 20 69 6e  |use this form in|
00000a50  73 74 65 61 64 3a 0d 00  00 68 00 00 a5 28 00 00  |stead:...h...(..|
00000a60  42 00 00 00 47 dd f7 ff  27 0c f8 ff 20 22 00 f2  |B...G...'... "..|
00000a70  0d 07 65 20 1c 02 0e 00  1c 02 0e 00 00 00 00 00  |..e ............|
00000a80  00 28 00 00 a5 5c 00 00  42 30 da 04 d7 ac f7 ff  |.(...\..B0......|
00000a90  e7 d3 f7 ff 70 1a 00 f2  50 52 4f 43 73 68 65 6c  |....p...PROCshel|
00000aa0  6c 5f 41 74 74 61 63 68  44 61 74 61 53 61 76 65  |l_AttachDataSave|
00000ab0  28 68 25 2c 39 2c 31 30  30 2c 26 46 46 46 2c 31  |(h%,9,100,&FFF,1|
00000ac0  34 2c 94 5f 64 6f 5f 73  61 76 65 95 29 08 65 6c  |4,._do_save.).el|
00000ad0  1c 02 0e 00 00 00 00 00  0d 00 00 00 00 5c 00 00  |.............\..|
00000ae0  25 30 00 00 42 a8 fd ff  c7 6c f7 ff a7 9b f7 ff  |%0..B....l......|
00000af0  20 22 00 f2 1d 6f 5f 73  ce ff ff ff 00 00 00 00  | "...o_s........|
00000b00  a8 fd ff ff 00 00 00 00  0d 00 00 00 00 30 00 00  |.............0..|
00000b10  05 7c 00 00 00 f0 05 07  87 34 f7 ff 67 63 f7 ff  |.|.......4..gc..|
00000b20  20 22 00 f2 54 68 65 20  74 68 69 72 64 20 70 61  | "..The third pa|
00000b30  72 61 6d 65 74 65 72 20  69 73 20 6e 6f 77 20 6c  |rameter is now l|
00000b40  65 73 73 20 74 68 61 6e  20 26 38 30 30 30 20 61  |ess than &8000 a|
00000b50  6e 64 20 69 73 20 74 61  6b 65 6e 20 74 6f 20 62  |nd is taken to b|
00000b60  65 20 74 68 65 20 65 73  74 69 6d 61 74 65 64 20  |e the estimated |
00000b70  73 69 7a 65 20 6f 66 20  74 68 65 20 66 69 6c 65  |size of the file|
00000b80  20 28 74 68 69 73 20 00  00 7c 00 00 05 84 00 00  | (this ..|......|
00000b90  00 00 50 07 47 fc f6 ff  27 2b f7 ff 20 22 00 f0  |..P.G...'+.. "..|
00000ba0  6e 65 65 64 20 6e 6f 74  20 62 65 20 61 63 63 75  |need not be accu|
00000bb0  72 61 74 65 29 2e 20 49  6e 20 74 68 69 73 20 63  |rate). In this c|
00000bc0  61 73 65 20 74 68 65 20  6c 69 62 72 61 72 79 20  |ase the library |
00000bd0  77 69 6c 6c 20 6e 6f 74  20 61 74 74 65 6d 70 74  |will not attempt|
00000be0  20 20 74 6f 20 73 61 76  65 20 74 68 65 20 66 69  |  to save the fi|
00000bf0  6c 65 20 66 6f 72 20 79  6f 75 2c 20 6d 65 72 65  |le for you, mere|
00000c00  6c 79 20 72 65 74 75 72  6e 20 00 00 00 84 00 00  |ly return ......|
00000c10  05 80 00 00 00 30 3b 07  07 c4 f6 ff e7 f2 f6 ff  |.....0;.........|
00000c20  20 22 00 f0 74 68 65 20  66 75 6c 6c 20 6e 61 6d  | "..the full nam|
00000c30  65 20 6f 66 20 74 68 65  20 66 69 6c 65 20 74 6f  |e of the file to|
00000c40  20 73 61 76 65 2e 20 59  6f 75 72 20 70 72 6f 67  | save. Your prog|
00000c50  72 61 6d 20 63 61 6e 20  74 68 65 6e 20 6f 70 65  |ram can then ope|
00000c60  6e 20 74 68 69 73 20 66  69 6c 65 20 61 6e 64 20  |n this file and |
00000c70  73 61 76 65 20 74 68 65  20 64 61 74 61 20 69 6e  |save the data in|
00000c80  20 61 6e 79 20 77 61 79  20 00 00 00 00 80 00 00  | any way .......|
00000c90  25 24 00 00 42 0c 8a 00  c7 8b f6 ff a7 ba f6 ff  |%$..B...........|
00000ca0  20 22 00 f0 69 74 20 6c  69 6b 65 73 2e 0d 00 00  | "..it likes....|
00000cb0  00 24 00 00 25 1c 00 00  42 00 00 00 87 53 f6 ff  |.$..%...B....S..|
00000cc0  67 82 f6 ff 20 22 00 f2  0d 00 00 00 00 1c 00 00  |g... "..........|
00000cd0  05 7c 00 00 00 d4 21 07  47 1b f6 ff 27 4a f6 ff  |.|....!.G...'J..|
00000ce0  20 22 00 f2 41 6e 6f 74  68 65 72 20 70 6f 73 73  | "..Another poss|
00000cf0  69 62 69 6c 69 74 79 20  69 73 20 74 6f 20 70 75  |ibility is to pu|
00000d00  74 20 74 68 65 20 64 61  74 61 20 69 6e 20 61 20  |t the data in a |
00000d10  68 65 61 70 62 6c 6f 63  6b 20 61 6e 64 20 6d 61  |heapblock and ma|
00000d20  6b 65 20 74 68 65 20 6e  61 6d 65 20 6f 66 20 74  |ke the name of t|
00000d30  68 65 20 73 61 76 69 6e  67 20 66 75 6e 63 74 69  |he saving functi|
00000d40  6f 6e 20 22 22 2e 20 00  00 7c 00 00 05 84 00 00  |on "". ..|......|
00000d50  00 e4 4a 07 07 e3 f5 ff  e7 11 f6 ff 20 22 00 f0  |..J......... "..|
00000d60  54 68 69 73 20 77 69 6c  6c 20 63 61 75 73 65 20  |This will cause |
00000d70  74 68 65 20 6c 69 62 72  61 72 79 20 74 6f 20 73  |the library to s|
00000d80  61 76 65 20 74 68 65 20  66 69 6c 65 20 66 6f 72  |ave the file for|
00000d90  20 79 6f 75 20 61 74 20  74 68 65 20 65 6e 64 20  | you at the end |
00000da0  6f 66 20 74 68 65 20 64  72 61 67 2c 20 62 75 74  |of the drag, but|
00000db0  20 6e 6f 74 65 2c 20 68  6f 77 65 76 65 72 2c 20  | note, however, |
00000dc0  74 68 61 74 20 74 68 69  73 20 00 00 00 84 00 00  |that this ......|
00000dd0  05 7c 00 00 00 74 3c 07  c7 aa f5 ff a7 d9 f5 ff  |.|...t<.........|
00000de0  20 22 00 f0 6d 61 79 20  63 61 75 73 65 20 74 6f  | "..may cause to|
00000df0  6f 20 6d 75 63 68 20 64  61 74 61 20 74 6f 20 62  |o much data to b|
00000e00  65 20 73 61 76 65 64 20  61 73 20 74 68 65 20 68  |e saved as the h|
00000e10  65 61 70 62 6c 6f 63 6b  20 69 73 20 75 73 75 61  |eapblock is usua|
00000e20  6c 6c 79 20 61 20 66 65  77 20 62 79 74 65 73 20  |lly a few bytes |
00000e30  6c 61 72 67 65 72 20 74  68 61 6e 20 72 65 71 75  |larger than requ|
00000e40  65 73 74 65 64 2e 20 00  00 7c 00 00 05 7c 00 00  |ested. ..|...|..|
00000e50  00 5c 5a 07 87 72 f5 ff  67 a1 f5 ff 20 22 00 f0  |.\Z..r..g... "..|
00000e60  53 6f 6d 65 74 69 6d 65  73 20 74 68 69 73 20 64  |Sometimes this d|
00000e70  6f 65 73 20 6e 6f 74 20  6d 61 74 74 65 72 2c 20  |oes not matter, |
00000e80  62 75 74 20 66 6f 72 20  74 68 65 20 21 56 42 61  |but for the !VBa|
00000e90  73 65 32 20 64 65 6d 6f  20 69 74 20 64 6f 65 73  |se2 demo it does|
00000ea0  2e 20 54 72 79 20 63 68  61 6e 67 69 6e 67 20 22  |. Try changing "|
00000eb0  5f 64 6f 5f 73 61 76 65  22 20 74 6f 20 22 22 20  |_do_save" to "" |
00000ec0  69 6e 20 00 00 7c 00 00  05 7c 00 00 00 24 50 07  |in ..|...|...$P.|
00000ed0  47 3a f5 ff 27 69 f5 ff  20 22 00 f0 74 68 65 20  |G:..'i.. "..the |
00000ee0  63 61 6c 6c 20 74 6f 20  73 68 65 6c 6c 5f 41 74  |call to shell_At|
00000ef0  74 61 63 68 44 61 74 61  53 61 76 65 20 61 6e 64  |tachDataSave and|
00000f00  20 64 72 61 67 20 74 68  65 20 69 63 6f 6e 20 66  | drag the icon f|
00000f10  72 6f 6d 20 74 68 65 20  72 65 70 6f 72 74 20 77  |rom the report w|
00000f20  69 6e 64 6f 77 20 74 6f  20 53 74 72 6f 6e 67 45  |indow to StrongE|
00000f30  64 32 20 6f 72 20 73 69  6d 69 6c 61 72 2e 20 00  |d2 or similar. .|
00000f40  00 7c 00 00 25 5c 00 00  42 44 bd 04 07 02 f5 ff  |.|..%\..BD......|
00000f50  e7 30 f5 ff 20 22 00 f0  59 6f 75 20 73 68 6f 75  |.0.. "..You shou|
00000f60  6c 64 20 73 65 65 20 61  20 66 65 77 20 65 78 74  |ld see a few ext|
00000f70  72 61 20 75 6e 77 61 6e  74 65 64 20 62 79 74 65  |ra unwanted byte|
00000f80  73 20 61 74 20 74 68 65  20 65 6e 64 20 6f 66 20  |s at the end of |
00000f90  74 68 65 20 66 69 6c 65  2e 0d 00 00 00 5c 00 00  |the file.....\..|
00000fa0  01 10 00 00 00 00 00 00  00 00 00 00 00 10 00 00  |................|
00000fb0  02 14 00 00 f4 02 00 00  00 00 00 00 00 00 00 00  |................|
00000fc0  00 14 00 00 25 1c 00 00  42 00 00 00 f6 58 f1 ff  |....%...B....X..|
00000fd0  d6 87 f1 ff 20 22 00 f2  0d 00 00 00 00 1c 00 00  |.... "..........|
00000fe0  25 70 00 00 42 7c b6 06  b6 20 f1 ff 96 4f f1 ff  |%p..B|... ...O..|
00000ff0  20 22 00 f2 45 78 61 6d  69 6e 61 74 69 6f 6e 20  | "..Examination |
00001000  6f 66 20 74 68 65 20 21  56 42 61 73 65 32 20 61  |of the !VBase2 a|
00001010  6e 64 20 21 57 69 6e 53  61 76 65 32 20 64 65 6d  |nd !WinSave2 dem|
00001020  6f 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 20 73  |o applications s|
00001030  68 6f 75 6c 64 20 6d 61  6b 65 20 74 68 69 6e 67  |hould make thing|
00001040  73 20 63 6c 65 61 72 65  72 2e 0d 00 00 70 00 00  |s clearer....p..|
00001050  06 00 00 00 79 56 34 12  b0 00 00 00 02 00 00 00  |....yV4.........|
00001060  00 00 00 00 06 08 00 00  00 08 00 00 01 10 00 00  |................|
00001070  00 00 00 00 00 00 00 00  00 10 00 00 02 1c 00 00  |................|
00001080  f0 01 00 00 00 00 00 00  18 66 03 00 11 cc 09 00  |.........f......|
00001090  00 00 00 00 00 1c 00 00  a5 68 00 00 42 28 3f 01  |.........h..B(?.|
000010a0  81 05 f4 ff 31 3c f4 ff  e4 29 00 f2 07 66 03 00  |....1<...)...f..|
000010b0  18 66 03 00 18 66 03 00  00 00 00 00 07 05 05 05  |.f...f..........|
000010c0  11 cc 09 00 18 66 03 00  11 cc 09 00 00 00 00 00  |.....f..........|
000010d0  53 61 76 69 6e 67 20 46  69 6c 65 73 08 08 65 73  |Saving Files..es|
000010e0  11 cc 09 00 18 66 03 00  00 00 00 00 08 00 00 00  |.....f..........|
000010f0  18 66 03 00 00 00 00 00  0d 00 00 00 00 68 00 00  |.f...........h..|
00001100  06 00 00 00 79 56 34 12  b0 00 00 00 03 00 00 00  |....yV4.........|
00001110  00 00 00 00 06 08 00 00  00 08 00 00 01 10 00 00  |................|
00001120  00 00 00 00 00 00 00 00  00 10 00 00 02 1c 00 00  |................|
00001130  44 04 00 00 00 00 00 00  18 66 03 00 11 cc 09 00  |D........f......|
00001140  00 00 00 00 00 1c 00 00  a5 68 00 00 42 28 3f 01  |.........h..B(?.|
00001150  d0 05 e7 ff 80 3c e7 ff  e4 29 00 f2 07 66 03 00  |.....<...)...f..|
00001160  18 66 03 00 18 66 03 00  00 00 00 00 07 05 05 05  |.f...f..........|
00001170  11 cc 09 00 18 66 03 00  11 cc 09 00 00 00 00 00  |.....f..........|
00001180  53 61 76 69 6e 67 20 46  69 6c 65 73 08 6c 65 73  |Saving Files.les|
00001190  11 cc 09 00 18 66 03 00  00 00 00 00 08 00 00 00  |.....f..........|
000011a0  18 66 03 00 00 00 00 00  0d 00 00 00 00 68 00 00  |.f...........h..|
000011b0  06 00 00 00 79 56 34 12                           |....yV4.|
000011b8