home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / c1 / c_impress / Sources / file_io < prev    next >
Unknown  |  1990-12-24  |  9.7 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was not able to be converted.
This format is not currently supported by dexvert.

ConfidenceProgramDetectionMatch TypeSupport
100% file data default
100% xdgMime image/x-tga default



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 0d 00 0a 2b f4 20 20 3e | 3c 42 61 73 69 63 56 24 |...+. >|<BasicV$|
|00000010| 4c 69 62 3e 2e 66 69 6c | 65 5f 69 6f 20 20 3a 20 |Lib>.fil|e_io : |
|00000020| 20 52 45 4d 20 20 76 30 | 2e 30 36 0d 00 14 1b f4 | REM v0|.06.....|
|00000030| 20 20 4d 41 43 48 49 4e | 45 3a 20 20 41 72 63 68 | MACHIN|E: Arch|
|00000040| 69 6d 65 64 65 73 0d 00 | 1e 24 f4 20 20 4c 41 4e |imedes..|.$. LAN|
|00000050| 47 55 41 47 45 3a 20 42 | 42 43 20 42 41 53 49 43 |GUAGE: B|BC BASIC|
|00000060| 20 56 20 28 76 31 2e 30 | 34 29 0d 00 28 1b f4 20 | V (v1.0|4)..(.. |
|00000070| 20 41 55 54 48 4f 52 3a | 20 20 20 43 79 20 42 6f | AUTHOR:| Cy Bo|
|00000080| 6f 6b 65 72 2c 0d 00 32 | 47 f4 20 20 20 20 20 20 |oker,..2|G. |
|00000090| 20 20 20 20 20 20 38 36 | 20 43 68 75 72 63 68 20 | 86| Church |
|000000a0| 56 69 65 77 2c 20 4d 61 | 69 6e 20 52 6f 61 64 2c |View, Ma|in Road,|
|000000b0| 20 43 72 6f 63 6b 65 6e | 68 69 6c 6c 2c 20 53 77 | Crocken|hill, Sw|
|000000c0| 61 6e 6c 65 79 2c 20 4b | 65 6e 74 2e 0d 00 3c 18 |anley, K|ent...<.|
|000000d0| f4 20 20 20 20 20 20 20 | 20 20 20 20 20 42 52 38 |. | BR8|
|000000e0| 20 38 4a 57 0d 00 46 0c | f4 20 20 4e 4f 54 45 3a | 8JW..F.|. NOTE:|
|000000f0| 0d 00 50 49 f4 20 20 20 | 46 6f 72 20 61 6c 6c 20 |..PI. |For all |
|00000100| 72 6f 75 74 69 6e 65 73 | 20 74 68 61 74 20 63 61 |routines| that ca|
|00000110| 6c 6c 20 46 4e 5f 4f 53 | 5f 47 42 50 42 5f 52 65 |ll FN_OS|_GBPB_Re|
|00000120| 61 64 45 6e 74 72 79 2c | 20 74 68 65 79 20 77 69 |adEntry,| they wi|
|00000130| 6c 6c 20 6e 6f 74 20 62 | 65 0d 00 5a 47 f4 20 20 |ll not b|e..ZG. |
|00000140| 20 72 65 63 75 72 73 69 | 76 65 20 75 6e 6c 65 73 | recursi|ve unles|
|00000150| 73 20 72 65 74 75 72 6e | 20 76 61 6c 75 65 28 73 |s return| value(s|
|00000160| 29 20 61 72 65 20 73 74 | 6f 72 65 64 20 61 73 20 |) are st|ored as |
|00000170| 4c 4f 43 41 4c 20 76 61 | 72 69 61 62 6c 65 73 2e |LOCAL va|riables.|
|00000180| 0d 00 64 49 f4 20 20 20 | 54 68 69 73 20 69 73 20 |..dI. |This is |
|00000190| 62 65 63 61 75 73 65 20 | 42 41 53 49 43 20 56 20 |because |BASIC V |
|000001a0| 61 70 70 65 61 72 73 20 | 6e 6f 74 20 74 6f 20 75 |appears |not to u|
|000001b0| 6e 73 74 61 63 6b 20 4c | 4f 43 41 4c 20 44 49 4d |nstack L|OCAL DIM|
|000001c0| 20 62 25 20 6e 25 27 73 | 2e 0d 00 6e 08 f4 20 20 | b% n%'s|...n.. |
|000001d0| 3a 0d 00 78 30 f4 20 20 | 20 44 69 74 74 6f 20 61 |:..x0. | Ditto a|
|000001e0| 62 6f 76 65 20 77 69 74 | 68 20 46 4e 5f 66 69 6c |bove wit|h FN_fil|
|000001f0| 65 5f 74 79 70 65 5f 74 | 6f 5f 73 74 72 69 6e 67 |e_type_t|o_string|
|00000200| 2e 0d 00 82 08 f4 20 20 | 3a 0d 00 8c 11 f4 20 20 |...... |:..... |
|00000210| 46 55 4e 43 54 49 4f 4e | 53 3a 0d 00 96 1a f4 20 |FUNCTION|S:..... |
|00000220| 20 20 5f 4f 53 5f 47 42 | 50 42 5f 52 65 61 64 45 | _OS_GB|PB_ReadE|
|00000230| 6e 74 72 79 0d 00 a0 49 | f4 20 20 20 5f 66 69 6c |ntry...I|. _fil|
|00000240| 65 5f 65 78 69 73 74 73 | 20 20 20 20 20 20 20 20 |e_exists| |
|00000250| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 5b 54 | | [T|
|00000260| 6f 20 74 65 73 74 3a 20 | 62 61 64 20 6e 61 6d 65 |o test: |bad name|
|00000270| 2c 20 64 69 73 63 20 65 | 72 72 6f 72 5d 0d 00 aa |, disc e|rror]...|
|00000280| 49 f4 20 20 20 5f 66 69 | 6c 65 5f 73 69 7a 65 20 |I. _fi|le_size |
|00000290| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000002a0| 20 20 20 20 20 20 20 5b | 54 6f 20 74 65 73 74 3a | [|To test:|
|000002b0| 20 62 61 64 20 6e 61 6d | 65 2c 20 64 69 73 63 20 | bad nam|e, disc |
|000002c0| 65 72 72 6f 72 5d 0d 00 | b4 1d f4 20 20 20 5f 66 |error]..|... _f|
|000002d0| 69 6c 65 5f 69 73 5f 73 | 75 62 64 69 72 65 63 74 |ile_is_s|ubdirect|
|000002e0| 6f 72 79 0d 00 be 1f f4 | 20 20 20 5f 66 69 6c 65 |ory.....| _file|
|000002f0| 5f 6f 62 6a 65 63 74 5f | 61 74 74 72 69 62 75 74 |_object_|attribut|
|00000300| 65 73 0d 00 c8 24 f4 20 | 20 20 5f 66 69 6c 65 5f |es...$. | _file_|
|00000310| 6f 62 6a 65 63 74 5f 65 | 78 65 63 75 74 65 5f 61 |object_e|xecute_a|
|00000320| 64 64 72 65 73 73 0d 00 | d2 1b f4 20 20 20 5f 66 |ddress..|... _f|
|00000330| 69 6c 65 5f 6f 62 6a 65 | 63 74 5f 6c 65 6e 67 74 |ile_obje|ct_lengt|
|00000340| 68 0d 00 dc 21 f4 20 20 | 20 5f 66 69 6c 65 5f 6f |h...!. | _file_o|
|00000350| 62 6a 65 63 74 5f 6c 6f | 61 64 5f 61 64 64 72 65 |bject_lo|ad_addre|
|00000360| 73 73 0d 00 e6 19 f4 20 | 20 20 5f 66 69 6c 65 5f |ss..... | _file_|
|00000370| 6f 62 6a 65 63 74 5f 6e | 61 6d 65 0d 00 f0 19 f4 |object_n|ame.....|
|00000380| 20 20 20 5f 66 69 6c 65 | 5f 6f 62 6a 65 63 74 5f | _file|_object_|
|00000390| 74 79 70 65 0d 00 fa 12 | f4 20 20 20 5f 66 69 6c |type....|. _fil|
|000003a0| 65 5f 74 79 70 65 0d 01 | 04 1c f4 20 20 20 5f 66 |e_type..|... _f|
|000003b0| 69 6c 65 5f 74 79 70 65 | 5f 74 6f 5f 73 74 72 69 |ile_type|_to_stri|
|000003c0| 6e 67 0d 01 0e 12 f4 20 | 20 20 5f 66 69 6c 65 5f |ng..... | _file_|
|000003d0| 74 69 6d 65 0d 01 18 08 | f4 20 20 3a 0d 01 22 12 |time....|. :..".|
|000003e0| f4 20 20 50 52 4f 43 45 | 44 55 52 45 53 3a 0d 01 |. PROCE|DURES:..|
|000003f0| 2c 31 f4 20 20 20 5f 6c | 6f 61 64 5f 62 69 6e 61 |,1. _l|oad_bina|
|00000400| 72 79 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |ry | |
|00000410| 20 20 20 20 20 20 20 20 | 5b 57 6f 72 6b 73 5d 0d | |[Works].|
|00000420| 01 36 08 f4 20 20 3a 0d | 01 40 11 f4 20 20 45 58 |.6.. :.|.@.. EX|
|00000430| 54 45 52 4e 41 4c 53 3a | 0d 01 4a 37 f4 20 20 20 |TERNALS:|..J7. |
|00000440| 43 68 65 63 6b 56 61 72 | 73 20 20 20 20 20 42 41 |CheckVar|s BA|
|00000450| 53 49 43 20 6c 69 62 72 | 61 72 79 20 66 69 6c 65 |SIC libr|ary file|
|00000460| 2c 20 76 65 72 73 69 6f | 6e 20 30 2e 30 32 2e 0d |, versio|n 0.02..|
|00000470| 01 54 37 f4 20 20 20 73 | 74 72 69 6e 67 20 20 20 |.T7. s|tring |
|00000480| 20 20 20 20 20 42 41 53 | 49 43 20 6c 69 62 72 61 | BAS|IC libra|
|00000490| 72 79 20 66 69 6c 65 2c | 20 76 65 72 73 69 6f 6e |ry file,| version|
|000004a0| 20 30 2e 30 36 2e 0d 01 | 5e 08 f4 20 20 3a 0d 01 | 0.06...|^.. :..|
|000004b0| 68 11 f4 20 20 49 4e 54 | 45 52 4e 41 4c 53 3a 0d |h.. INT|ERNALS:.|
|000004c0| 01 72 1a f4 20 20 20 73 | 69 7a 65 6f 66 5f 66 69 |.r.. s|izeof_fi|
|000004d0| 6c 65 5f 62 6c 6f 63 6b | 25 0d 01 7c 13 f4 20 20 |le_block|%..|.. |
|000004e0| 20 66 69 6c 65 5f 62 6c | 6f 63 6b 25 0d 01 86 19 | file_bl|ock%....|
|000004f0| f4 20 20 20 66 69 6c 65 | 5f 74 79 70 65 5f 73 74 |. file|_type_st|
|00000500| 72 69 6e 67 25 0d 01 90 | 08 f4 20 20 3a 0d 01 9a |ring%...|.. :...|
|00000510| 0f f4 20 20 55 50 44 41 | 54 45 53 3a 0d 01 a4 1e |.. UPDA|TES:....|
|00000520| f4 20 20 20 76 30 2e 30 | 32 20 20 2e 20 20 5f 6c |. v0.0|2 . _l|
|00000530| 6f 61 64 5f 62 69 6e 61 | 72 79 0d 01 ae 27 f4 20 |oad_bina|ry...'. |
|00000540| 20 20 76 30 2e 30 33 20 | 20 2e 20 20 5f 66 69 6c | v0.03 | . _fil|
|00000550| 65 5f 69 73 5f 73 75 62 | 64 69 72 65 63 74 6f 72 |e_is_sub|director|
|00000560| 79 0d 01 b8 1e f4 20 20 | 20 76 30 2e 30 34 20 20 |y..... | v0.04 |
|00000570| 2e 20 20 46 4e 5f 66 69 | 6c 65 5f 74 79 70 65 0d |. FN_fi|le_type.|
|00000580| 01 c2 28 f4 20 20 20 20 | 20 20 20 20 20 20 20 20 |..(. | |
|00000590| 20 46 4e 5f 66 69 6c 65 | 5f 74 79 70 65 5f 74 6f | FN_file|_type_to|
|000005a0| 5f 73 74 72 69 6e 67 0d | 01 cc 26 f4 20 20 20 20 |_string.|..&. |
|000005b0| 20 20 20 20 20 20 20 20 | 20 46 4e 5f 66 69 6c 65 | | FN_file|
|000005c0| 5f 6c 61 73 74 5f 77 72 | 69 74 74 65 6e 0d 01 d6 |_last_wr|itten...|
|000005d0| 26 f4 20 20 20 20 20 20 | 20 20 20 20 20 20 20 46 |&. | F|
|000005e0| 4e 5f 4f 53 5f 47 42 50 | 42 5f 52 65 61 64 45 6e |N_OS_GBP|B_ReadEn|
|000005f0| 74 72 79 0d 01 e0 24 f4 | 20 20 20 20 20 20 20 20 |try...$.| |
|00000600| 20 20 20 20 20 46 4e 5f | 66 69 6c 65 5f 6f 62 6a | FN_|file_obj|
|00000610| 65 63 74 5f 58 58 58 0d | 01 ea 24 f4 20 20 20 76 |ect_XXX.|..$. v|
|00000620| 30 2e 30 35 20 20 2e 20 | 20 4e 65 77 20 65 72 72 |0.05 . | New err|
|00000630| 6f 72 20 68 61 6e 64 6c | 65 72 2e 0d 01 f4 27 f4 |or handl|er....'.|
|00000640| 20 20 20 76 30 2e 30 36 | 20 20 2e 20 20 5f 4f 53 | v0.06| . _OS|
|00000650| 5f 46 69 6c 65 5f 52 65 | 61 64 45 6e 74 72 79 28 |_File_Re|adEntry(|
|00000660| 29 2e 0d 01 fe 05 3a 0d | 02 08 21 dd 20 a4 5f 66 |).....:.|..!. ._f|
|00000670| 69 6c 65 5f 69 6f 5f 76 | 65 72 73 69 6f 6e 20 20 |ile_io_v|ersion |
|00000680| 3a 20 20 3d 20 30 30 36 | 0d 02 12 05 3a 0d 02 1c |: = 006|....:...|
|00000690| 1f dd 20 a4 5f 68 61 72 | 64 5f 69 6e 69 74 69 61 |.. ._har|d_initia|
|000006a0| 6c 69 73 65 5f 66 69 6c | 65 5f 69 6f 0d 02 26 07 |lise_fil|e_io..&.|
|000006b0| ea 20 85 0d 02 30 3d ee | 20 85 20 ea 20 f7 20 85 |. ...0=.| . . . .|
|000006c0| 20 20 3a 20 20 f2 5f 65 | 28 20 22 25 2e 66 69 6c | : ._e|( "%.fil|
|000006d0| 65 5f 69 6f 3a 20 68 61 | 72 64 5f 69 6e 69 74 69 |e_io: ha|rd_initi|
|000006e0| 61 6c 69 73 65 5f 66 69 | 6c 65 5f 69 6f 22 20 29 |alise_fi|le_io" )|
|000006f0| 0d 02 3a 36 20 20 20 f2 | 5f 6c 6f 61 64 5f 6c 69 |..:6 .|_load_li|
|00000700| 62 72 61 72 79 28 20 22 | 3c 42 61 73 69 63 56 24 |brary( "|<BasicV$|
|00000710| 4c 69 62 3e 2e 43 68 65 | 63 6b 56 61 72 73 22 2c |Lib>.Che|ckVars",|
|00000720| 20 30 30 32 20 29 0d 02 | 44 36 20 20 20 f2 5f 6c | 002 )..|D6 ._l|
|00000730| 6f 61 64 5f 6c 69 62 72 | 61 72 79 28 20 22 3c 42 |oad_libr|ary( "<B|
|00000740| 61 73 69 63 56 24 4c 69 | 62 3e 2e 73 74 72 69 6e |asicV$Li|b>.strin|
|00000750| 67 22 2c 20 20 20 20 30 | 30 36 20 29 0d 02 4e 08 |g", 0|06 )..N.|
|00000760| 20 20 20 3a 0d 02 58 34 | 20 20 20 f4 20 20 46 6f | :..X4| . Fo|
|00000770| 6c 6c 6f 77 69 6e 67 20 | 66 6f 72 20 46 4e 5f 4f |llowing |for FN_O|
|00000780| 53 5f 7b 47 42 50 42 2f | 46 69 6c 65 7d 5f 52 65 |S_{GBPB/|File}_Re|
|00000790| 61 64 45 6e 74 72 79 2e | 0d 02 62 08 20 20 20 3a |adEntry.|..b. :|
|000007a0| 0d 02 6c 45 20 20 20 73 | 69 7a 65 6f 66 5f 66 69 |..lE s|izeof_fi|
|000007b0| 6c 65 5f 62 6c 6f 63 6b | 25 20 3d 20 32 35 36 20 |le_block|% = 256 |
|000007c0| 2b 20 32 30 20 20 20 20 | 20 20 20 20 3a 20 20 f4 |+ 20 | : .|
|000007d0| 20 20 53 61 76 65 73 20 | 63 68 65 63 6b 73 20 6c | Saves |checks l|
|000007e0| 61 74 65 72 2e 0d 02 76 | 27 20 20 20 de 20 66 69 |ater...v|' . fi|
|000007f0| 6c 65 5f 62 6c 6f 63 6b | 25 20 73 69 7a 65 6f 66 |le_block|% sizeof|
|00000800| 5f 66 69 6c 65 5f 62 6c | 6f 63 6b 25 0d 02 80 08 |_file_bl|ock%....|
|00000810| 20 20 20 3a 0d 02 8a 2e | 20 20 20 f4 20 20 46 6f | :....| . Fo|
|00000820| 6c 6c 6f 77 69 6e 67 20 | 66 6f 72 20 46 4e 5f 66 |llowing |for FN_f|
|00000830| 69 6c 65 5f 74 79 70 65 | 5f 74 6f 5f 73 74 72 69 |ile_type|_to_stri|
|00000840| 6e 67 0d 02 94 08 20 20 | 20 3a 0d 02 9e 1c 20 20 |ng.... | :.... |
|00000850| 20 de 20 66 69 6c 65 5f | 74 79 70 65 5f 73 74 72 | . file_|type_str|
|00000860| 69 6e 67 25 20 39 0d 02 | a8 1f 20 20 20 66 69 6c |ing% 9..|.. fil|
|00000870| 65 5f 74 79 70 65 5f 73 | 74 72 69 6e 67 25 3f 38 |e_type_s|tring%?8|
|00000880| 20 3d 20 31 33 0d 02 b2 | 07 3d 20 30 0d 02 bc 05 | = 13...|.= 0....|
|00000890| 3a 0d 02 c6 4b f4 20 2a | 2a 2a 2a 2a 2a 2a 2a 2a |:...K. *|********|
|000008a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000008b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000008c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000008d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 0d 02 d0 2c |********|****...,|
|000008e0| f4 20 2a 20 51 75 65 72 | 79 20 69 66 20 61 20 67 |. * Quer|y if a g|
|000008f0| 69 76 65 6e 20 66 69 6c | 65 20 65 78 69 73 74 73 |iven fil|e exists|
|00000900| 20 6f 72 20 6e 6f 74 2e | 0d 02 da 28 f4 20 2a 20 | or not.|...(. * |
|00000910| 4f 55 54 3a 20 20 2e 54 | 52 55 45 2e 20 69 66 20 |OUT: .T|RUE. if |
|00000920| 66 69 6c 65 20 64 6f 65 | 73 20 65 78 69 73 74 2c |file doe|s exist,|
|00000930| 0d 02 e4 20 f4 20 2a 20 | 20 20 20 20 20 20 2e 46 |... . * | .F|
|00000940| 41 4c 53 45 2e 20 6f 74 | 68 65 72 77 69 73 65 2e |ALSE. ot|herwise.|
|00000950| 0d 02 ee 21 dd 20 a4 5f | 66 69 6c 65 5f 65 78 69 |...!. ._|file_exi|
|00000960| 73 74 73 28 20 66 69 6c | 65 5f 6e 61 6d 65 24 20 |sts( fil|e_name$ |
|00000970| 29 0d 02 f8 0d ea 20 65 | 78 69 73 74 73 25 0d 03 |)..... e|xists%..|
|00000980| 02 2e 20 20 20 c8 99 20 | 22 4f 53 5f 46 69 6c 65 |.. .. |"OS_File|
|00000990| 22 2c 20 26 30 35 2c 20 | 66 69 6c 65 5f 6e 61 6d |", &05, |file_nam|
|000009a0| 65 24 20 b8 20 65 78 69 | 73 74 73 25 0d 03 0c 11 |e$ . exi|sts%....|
|000009b0| 3d 20 28 65 78 69 73 74 | 73 25 3d 31 29 0d 03 16 |= (exist|s%=1)...|
|000009c0| 05 3a 0d 03 20 4b f4 20 | 2a 2a 2a 2a 2a 2a 2a 2a |.:.. K. |********|
|000009d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000009f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 03 2a |********|*****..*|
|00000a10| 1e f4 20 2a 20 47 65 74 | 20 6e 61 6d 65 64 20 66 |.. * Get| named f|
|00000a20| 69 6c 65 73 27 20 73 69 | 7a 65 2e 0d 03 34 1a f4 |iles' si|ze...4..|
|00000a30| 20 2a 20 4f 55 54 3a 20 | 20 46 69 6c 65 73 27 20 | * OUT: | Files' |
|00000a40| 73 69 7a 65 2e 0d 03 3e | 1f dd 20 a4 5f 66 69 6c |size...>|.. ._fil|
|00000a50| 65 5f 73 69 7a 65 28 20 | 66 69 6c 65 5f 6e 61 6d |e_size( |file_nam|
|00000a60| 65 24 20 29 0d 03 48 0b | ea 20 73 69 7a 65 25 0d |e$ )..H.|. size%.|
|00000a70| 03 52 31 20 20 20 c8 99 | 20 22 4f 53 5f 46 69 6c |.R1 ..| "OS_Fil|
|00000a80| 65 22 2c 20 26 30 35 2c | 20 66 69 6c 65 5f 6e 61 |e", &05,| file_na|
|00000a90| 6d 65 24 20 b8 20 2c 2c | 2c 2c 20 73 69 7a 65 25 |me$ . ,,|,, size%|
|00000aa0| 0d 03 5c 0b 3d 20 73 69 | 7a 65 25 0d 03 66 05 3a |..\.= si|ze%..f.:|
|00000ab0| 0d 03 70 4b f4 20 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |..pK. **|********|
|00000ac0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ad0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000ae0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000af0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 0d 03 7a 20 f4 |********|***..z .|
|00000b00| 20 2a 20 4c 6f 61 64 20 | 61 20 66 69 6c 65 20 69 | * Load |a file i|
|00000b10| 6e 74 6f 20 6d 65 6d 6f | 72 79 2e 0d 03 84 27 f4 |nto memo|ry....'.|
|00000b20| 20 2a 20 4f 55 54 3a 20 | 20 46 69 6c 65 20 6c 6f | * OUT: | File lo|
|00000b30| 61 64 65 64 20 74 6f 20 | 77 68 65 72 65 5f 74 6f |aded to |where_to|
|00000b40| 25 2e 0d 03 8e 2c dd 20 | f2 5f 6c 6f 61 64 5f 62 |%....,. |._load_b|
|00000b50| 69 6e 61 72 79 28 20 66 | 69 6c 65 5f 6e 61 6d 65 |inary( f|ile_name|
|00000b60| 24 2c 20 77 68 65 72 65 | 5f 74 6f 25 20 29 0d 03 |$, where|_to% )..|
|00000b70| 98 2f 20 20 20 c8 99 20 | 22 4f 53 5f 46 69 6c 65 |./ .. |"OS_File|
|00000b80| 22 2c 20 26 46 46 2c 20 | 66 69 6c 65 5f 6e 61 6d |", &FF, |file_nam|
|00000b90| 65 24 2c 20 77 68 65 72 | 65 5f 74 6f 25 0d 03 a2 |e$, wher|e_to%...|
|00000ba0| 05 e1 0d 03 ac 05 3a 0d | 03 b6 4b f4 20 2a 2a 2a |......:.|..K. ***|
|00000bb0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000bc0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000bd0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000be0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000bf0| 2a 2a 0d 03 c0 3d f4 20 | 2a 20 51 75 65 72 79 20 |**...=. |* Query |
|00000c00| 69 66 20 61 20 67 69 76 | 65 6e 20 66 69 6c 65 20 |if a giv|en file |
|00000c10| 6e 61 6d 65 20 73 70 65 | 63 69 66 69 65 73 20 61 |name spe|cifies a|
|00000c20| 20 73 75 62 2d 64 69 72 | 65 63 74 6f 72 79 2e 0d | sub-dir|ectory..|
|00000c30| 03 ca 35 f4 20 2a 20 49 | 4e 3a 20 20 20 57 69 6c |..5. * I|N: Wil|
|00000c40| 64 20 63 61 72 64 73 20 | 77 69 6c 6c 20 77 6f 72 |d cards |will wor|
|00000c50| 6b 2c 20 62 75 74 20 6e | 6f 74 20 6d 75 63 68 20 |k, but n|ot much |
|00000c60| 75 73 65 2e 0d 03 d4 2e | f4 20 2a 20 4f 55 54 3a |use.....|. * OUT:|
|00000c70| 20 20 2e 54 52 55 45 2e | 20 69 66 20 69 74 20 69 | .TRUE.| if it i|
|00000c80| 73 20 61 20 73 75 62 2d | 64 69 72 65 63 74 6f 72 |s a sub-|director|
|00000c90| 79 2c 0d 03 de 20 f4 20 | 2a 20 20 20 20 20 20 20 |y,... . |* |
|00000ca0| 2e 46 41 4c 53 45 2e 20 | 6f 74 68 65 72 77 69 73 |.FALSE. |otherwis|
|00000cb0| 65 2e 0d 03 e8 2a dd 20 | a4 5f 66 69 6c 65 5f 69 |e....*. |._file_i|
|00000cc0| 73 5f 73 75 62 64 69 72 | 65 63 74 6f 72 79 28 20 |s_subdir|ectory( |
|00000cd0| 66 69 6c 65 5f 6e 61 6d | 65 24 20 29 0d 03 f2 0b |file_nam|e$ )....|
|00000ce0| ea 20 74 79 70 65 25 0d | 03 fc 2c 20 20 20 c8 99 |. type%.|.., ..|
|00000cf0| 20 22 4f 53 5f 46 69 6c | 65 22 2c 20 26 30 35 2c | "OS_Fil|e", &05,|
|00000d00| 20 66 69 6c 65 5f 6e 61 | 6d 65 24 20 b8 20 74 79 | file_na|me$ . ty|
|00000d10| 70 65 25 0d 04 06 0f 3d | 20 28 74 79 70 65 25 3d |pe%....=| (type%=|
|00000d20| 32 29 0d 04 10 05 3a 0d | 04 1a 4b f4 20 2a 2a 2a |2)....:.|..K. ***|
|00000d30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d50| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d60| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000d70| 2a 2a 0d 04 24 48 f4 20 | 2a 20 47 69 76 65 6e 20 |**..$H. |* Given |
|00000d80| 61 20 66 69 6c 65 73 27 | 20 74 79 70 65 20 28 33 |a files'| type (3|
|00000d90| 2d 64 69 67 69 74 20 68 | 65 78 20 6e 75 6d 62 65 |-digit h|ex numbe|
|00000da0| 72 29 2c 20 66 69 6e 64 | 20 74 68 65 20 63 6f 72 |r), find| the cor|
|00000db0| 72 65 73 70 6f 6e 64 69 | 6e 67 0d 04 2e 1b f4 20 |respondi|ng..... |
|00000dc0| 2a 20 38 20 63 68 61 72 | 61 63 74 65 72 20 73 74 |* 8 char|acter st|
|00000dd0| 72 69 6e 67 2e 0d 04 38 | 21 f4 20 2a 20 49 4e 20 |ring...8|!. * IN |
|00000de0| 20 20 20 20 74 79 70 65 | 20 3d 3d 20 5b 30 2c 20 | type| == [0, |
|00000df0| 30 78 46 46 46 5d 0d 04 | 42 27 f4 20 2a 20 4f 55 |0xFFF]..|B'. * OU|
|00000e00| 54 20 20 20 20 38 2d 63 | 68 61 72 61 63 74 65 72 |T 8-c|haracter|
|00000e10| 20 42 41 53 49 43 20 73 | 74 72 69 6e 67 0d 04 4c | BASIC s|tring..L|
|00000e20| 2a f4 20 2a 20 4e 42 20 | 20 20 20 20 4e 6f 6e 2d |*. * NB | Non-|
|00000e30| 72 65 63 75 72 73 69 76 | 65 20 6f 72 20 72 65 2d |recursiv|e or re-|
|00000e40| 65 6e 74 72 61 6e 74 0d | 04 56 24 dd 20 a4 5f 66 |entrant.|.V$. ._f|
|00000e50| 69 6c 65 5f 74 79 70 65 | 5f 74 6f 5f 73 74 72 69 |ile_type|_to_stri|
|00000e60| 6e 67 28 20 74 79 70 65 | 25 20 29 0d 04 60 07 ea |ng( type|% )..`..|
|00000e70| 20 85 0d 04 6a 2f ee 20 | 85 20 ea 20 f7 20 85 20 | ...j/. |. . . . |
|00000e80| 20 3a 20 20 f2 5f 65 28 | 20 22 25 2e 66 69 6c 65 | : ._e(| "%.file|
|00000e90| 5f 69 6f 3a 20 66 69 6c | 65 5f 74 79 70 65 22 20 |_io: fil|e_type" |
|00000ea0| 29 0d 04 74 2b 20 20 20 | f2 5f 63 68 65 63 6b 5f |)..t+ |._check_|
|00000eb0| 69 6e 5f 72 61 6e 67 65 | 28 20 22 74 79 70 65 25 |in_range|( "type%|
|00000ec0| 22 2c 20 30 2c 20 26 46 | 46 46 20 29 0d 04 7e 4f |", 0, &F|FF )..~O|
|00000ed0| 20 20 20 c8 99 20 22 4f | 53 5f 46 53 43 6f 6e 74 | .. "O|S_FSCont|
|00000ee0| 72 6f 6c 22 2c 31 38 2c | 2c 74 79 70 65 25 20 b8 |rol",18,|,type% .|
|00000ef0| 20 2c 2c 20 21 66 69 6c | 65 5f 74 79 70 65 5f 73 | ,, !fil|e_type_s|
|00000f00| 74 72 69 6e 67 25 2c 20 | 66 69 6c 65 5f 74 79 70 |tring%, |file_typ|
|00000f10| 65 5f 73 74 72 69 6e 67 | 25 21 34 0d 04 88 18 3d |e_string|%!4....=|
|00000f20| 20 24 66 69 6c 65 5f 74 | 79 70 65 5f 73 74 72 69 | $file_t|ype_stri|
|00000f30| 6e 67 25 0d 04 92 05 3a | 0d 04 9c 4b f4 20 2a 2a |ng%....:|...K. **|
|00000f40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000f50| 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 2a 2a 2a 2a |********|********|
|00000f70| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000f80| 2a 2a 2a 0d 04 a6 4c f4 | 20 2a 20 52 65 61 64 20 |***...L.| * Read |
|00000f90| 66 75 6c 6c 20 69 6e 66 | 6f 72 6d 61 74 69 6f 6e |full inf|ormation|
|00000fa0| 20 61 62 6f 75 74 20 61 | 20 73 70 65 63 69 66 69 | about a| specifi|
|00000fb0| 65 64 20 66 69 6c 65 20 | 69 6e 74 6f 20 61 20 62 |ed file |into a b|
|00000fc0| 6c 6f 63 6b 20 6f 66 20 | 6d 65 6d 6f 72 79 2e 0d |lock of |memory..|
|00000fd0| 04 b0 41 f4 20 2a 20 54 | 68 69 73 20 63 61 6e 20 |..A. * T|his can |
|00000fe0| 62 65 20 63 61 6c 6c 65 | 64 20 72 65 70 65 61 74 |be calle|d repeat|
|00000ff0| 65 64 6c 79 20 69 66 20 | 74 68 65 20 6c 65 61 66 |edly if |the leaf|
|00001000| 20 69 73 20 61 20 77 69 | 6c 64 20 63 61 72 64 2e | is a wi|ld card.|
|00001010| 0d 04 ba 3e f4 20 2a 20 | 54 68 69 73 20 76 65 72 |...>. * |This ver|
|00001020| 73 69 6f 6e 20 77 69 6c | 6c 20 72 65 61 64 20 69 |sion wil|l read i|
|00001030| 6e 20 6f 6e 6c 79 20 31 | 20 28 6f 6e 65 29 20 66 |n only 1| (one) f|
|00001040| 69 6c 65 20 61 74 20 61 | 20 74 69 6d 65 2e 0d 04 |ile at a| time...|
|00001050| c4 47 f4 20 2a 20 41 41 | 41 41 41 41 41 72 72 72 |.G. * AA|AAAAArrr|
|00001060| 72 72 72 72 72 72 72 72 | 72 72 72 67 67 67 67 67 |rrrrrrrr|rrrggggg|
|00001070| 67 67 67 67 67 67 67 67 | 67 67 67 67 67 68 68 68 |gggggggg|ggggghhh|
|00001080| 68 68 68 68 68 68 68 68 | 68 68 68 68 68 68 21 21 |hhhhhhhh|hhhhhh!!|
|00001090| 21 21 21 21 21 0d 04 ce | 41 f4 20 2a 20 2a 2a 2a |!!!!!...|A. * ***|
|000010a0| 2a 20 57 48 59 20 2a 2a | 2a 2a 20 64 6f 65 73 20 |* WHY **|** does |
|000010b0| 69 74 20 2a 2a 20 4f 4e | 4c 59 20 2a 2a 20 61 63 |it ** ON|LY ** ac|
|000010c0| 63 65 70 74 20 77 69 6c | 64 2d 63 61 72 64 73 3f |cept wil|d-cards?|
|000010d0| 3f 3f 3f 3f 3f 3f 0d 04 | d8 4c f4 20 2a 20 53 6f |??????..|.L. * So|
|000010e0| 20 69 66 20 61 20 66 69 | 6c 65 20 22 24 2e 61 22 | if a fi|le "$.a"|
|000010f0| 20 45 58 49 53 54 53 2c | 20 61 6e 64 20 79 6f 75 | EXISTS,| and you|
|00001100| 20 70 61 73 73 20 28 22 | 24 22 2c 20 22 61 22 2c | pass ("|$", "a",|
|00001110| 20 30 29 20 2d 20 69 74 | 20 73 61 79 73 20 74 68 | 0) - it| says th|
|00001120| 61 74 0d 04 e2 3c f4 20 | 2a 20 4e 4f 54 48 49 4e |at...<. |* NOTHIN|
|00001130| 47 20 45 58 49 53 54 53 | 21 21 21 21 21 21 21 21 |G EXISTS|!!!!!!!!|
|00001140| 21 21 21 21 21 21 21 21 | 21 21 21 21 21 21 21 21 |!!!!!!!!|!!!!!!!!|
|00001150| 21 21 21 21 21 21 21 21 | 21 21 21 21 21 21 0d 04 |!!!!!!!!|!!!!!!..|
|00001160| ec 46 f4 20 2a 20 52 69 | 67 68 74 2c 20 66 75 64 |.F. * Ri|ght, fud|
|00001170| 67 65 20 66 61 63 74 6f | 72 79 20 74 69 6d 65 20 |ge facto|ry time |
|00001180| 2d 20 68 61 76 65 20 74 | 6f 20 75 73 65 20 4f 53 |- have t|o use OS|
|00001190| 5f 46 69 6c 65 2c 20 74 | 72 79 20 61 6e 64 20 64 |_File, t|ry and d|
|000011a0| 6f 20 69 74 0d 04 f6 28 | f4 20 2a 20 73 6f 20 63 |o it...(|. * so c|
|000011b0| 61 6e 20 73 74 69 6c 6c | 20 75 73 65 20 74 68 65 |an still| use the|
|000011c0| 73 65 20 72 6f 75 74 69 | 6e 65 73 2e 0d 05 00 07 |se routi|nes.....|
|000011d0| f4 20 2a 0d 05 0a 39 f4 | 20 2a 20 49 4e 20 20 20 |. *...9.| * IN |
|000011e0| 20 64 69 72 24 20 20 20 | 20 20 20 3d 3d 20 28 65 | dir$ | == (e|
|000011f0| 78 70 6c 69 63 69 74 29 | 20 64 69 72 65 63 74 6f |xplicit)| directo|
|00001200| 72 79 20 74 6f 20 73 65 | 61 72 63 68 0d 05 14 39 |ry to se|arch...9|
|00001210| f4 20 2a 20 20 20 20 20 | 20 20 6c 65 61 66 24 20 |. * | leaf$ |
|00001220| 20 20 20 20 3d 3d 20 28 | 77 69 6c 64 29 20 66 69 | == (|wild) fi|
|00001230| 6c 65 20 6e 6f 64 65 20 | 73 70 65 63 69 66 69 63 |le node |specific|
|00001240| 61 74 69 6f 6e 0d 05 1e | 4a f4 20 2a 20 20 20 20 |ation...|J. * |
|00001250| 20 20 20 6e 65 78 74 25 | 20 20 20 20 20 3d 3d 20 | next%| == |
|00001260| 30 20 66 6f 72 20 66 69 | 72 73 74 20 74 69 6d 65 |0 for fi|rst time|
|00001270| 2c 20 6f 74 68 65 72 77 | 69 73 65 20 61 73 20 52 |, otherw|ise as R|
|00001280| 45 54 55 52 4e 65 64 20 | 62 79 20 74 68 69 73 0d |ETURNed |by this.|
|00001290| 05 28 44 f4 20 2a 20 4f | 55 54 20 20 20 3c 2d 2d |.(D. * O|UT <--|
|000012a0| 20 4e 75 6d 62 65 72 20 | 6f 66 20 66 69 6c 65 73 | Number |of files|
|000012b0| 20 66 6f 75 6e 64 20 74 | 68 61 74 20 6d 61 74 63 | found t|hat matc|
|000012c0| 68 20 64 69 72 24 2e 6c | 65 61 66 24 20 5b 30 2c |h dir$.l|eaf$ [0,|
|000012d0| 20 31 5d 0d 05 32 16 f4 | 20 2a 20 20 20 20 20 20 | 1]..2..| * |
|000012e0| 20 69 66 20 3e 20 30 20 | 7b 0d 05 3c 3a f4 20 2a | if > 0 |{..<:. *|
|000012f0| 20 20 20 20 20 20 20 20 | 20 20 5b 66 69 6c 65 5f | | [file_|
|00001300| 62 6c 6f 63 6b 25 5d 20 | 3c 2d 2d 20 46 69 6c 6c |block%] |<-- Fill|
|00001310| 65 64 20 6f 75 74 20 61 | 73 20 66 6f 6c 6c 6f 77 |ed out a|s follow|
|00001320| 73 20 7b 0d 05 46 26 f4 | 20 2a 20 20 20 20 20 20 |s {..F&.| * |
|00001330| 20 20 20 20 20 20 20 62 | 25 21 30 30 20 4c 6f 61 | b|%!00 Loa|
|00001340| 64 20 61 64 64 72 65 73 | 73 0d 05 50 29 f4 20 2a |d addres|s..P). *|
|00001350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 62 25 21 | | b%!|
|00001360| 30 34 20 45 78 65 63 75 | 74 65 20 61 64 64 72 65 |04 Execu|te addre|
|00001370| 73 73 0d 05 5a 20 f4 20 | 2a 20 20 20 20 20 20 20 |ss..Z . |* |
|00001380| 20 20 20 20 20 20 62 25 | 21 30 38 20 4c 65 6e 67 | b%|!08 Leng|
|00001390| 74 68 0d 05 64 2b f4 20 | 2a 20 20 20 20 20 20 20 |th..d+. |* |
|000013a0| 20 20 20 20 20 20 62 25 | 21 30 63 20 41 63 63 65 | b%|!0c Acce|
|000013b0| 73 73 20 61 74 74 72 69 | 62 75 74 65 73 0d 05 6e |ss attri|butes..n|
|000013c0| 25 f4 20 2a 20 20 20 20 | 20 20 20 20 20 20 20 20 |%. * | |
|000013d0| 20 62 25 21 31 30 20 4f | 62 6a 65 63 74 20 74 79 | b%!10 O|bject ty|
|000013e0| 70 65 0d 05 78 30 f4 20 | 2a 20 20 20 20 20 20 20 |pe..x0. |* |
|000013f0| 20 20 20 20 20 20 62 25 | 21 31 34 20 4f 62 6a 65 | b%|!14 Obje|
|00001400| 63 74 20 6e 61 6d 65 20 | 28 43 20 73 74 72 69 6e |ct name |(C strin|
|00001410| 67 29 0d 05 82 42 f4 20 | 2a 20 20 20 20 20 20 20 |g)...B. |* |
|00001420| 20 20 20 20 20 20 69 66 | 20 28 6c 6f 61 64 20 61 | if| (load a|
|00001430| 64 64 72 65 73 73 20 26 | 20 30 78 46 46 46 30 30 |ddress &| 0xFFF00|
|00001440| 30 30 30 29 20 3d 3d 20 | 30 78 46 46 46 30 30 30 |000) == |0xFFF000|
|00001450| 30 30 20 7b 0d 05 8c 35 | f4 20 2a 20 20 20 20 20 |00 {...5|. * |
|00001460| 20 20 20 20 20 20 20 20 | 20 20 20 6c 6f 61 64 20 | | load |
|00001470| 61 64 64 72 65 73 73 20 | 20 20 20 20 3d 3d 20 30 |address | == 0|
|00001480| 78 46 46 46 74 74 74 64 | 64 0d 05 96 35 f4 20 2a |xFFFtttd|d...5. *|
|00001490| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000014a0| 65 78 65 63 75 74 65 20 | 61 64 64 72 65 73 73 20 |execute |address |
|000014b0| 20 3d 3d 20 30 78 64 64 | 64 64 64 64 64 64 0d 05 | == 0xdd|dddddd..|
|000014c0| a0 38 f4 20 2a 20 20 20 | 20 20 20 20 20 20 20 20 |.8. * | |
|000014d0| 20 20 20 20 20 57 68 65 | 72 65 20 74 74 74 20 20 | Whe|re ttt |
|000014e0| 20 20 20 20 20 20 3d 3d | 20 54 59 50 45 20 6f 66 | ==| TYPE of|
|000014f0| 20 66 69 6c 65 2c 0d 05 | aa 46 f4 20 2a 20 20 20 | file,..|.F. * |
|00001500| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 57 68 65 | | Whe|
|00001510| 72 65 20 64 64 64 64 64 | 64 64 64 64 64 20 3d 3d |re ddddd|ddddd ==|
|00001520| 20 54 69 6d 65 2c 20 69 | 6e 20 63 65 6e 74 69 73 | Time, i|n centis|
|00001530| 65 63 6f 6e 64 73 20 73 | 69 6e 63 65 0d 05 b4 47 |econds s|ince...G|
|00001540| f4 20 2a 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |. * | |
|00001550| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001560| 20 20 20 20 20 20 20 30 | 30 3a 30 30 3a 30 30 20 | 0|0:00:00 |
|00001570| 30 31 2e 30 31 2e 31 39 | 30 30 20 6f 66 20 66 69 |01.01.19|00 of fi|
|00001580| 6c 65 2e 0d 05 be 15 f4 | 20 2a 20 20 20 20 20 20 |le......| * |
|00001590| 20 20 20 20 20 20 20 7d | 0d 05 c8 12 f4 20 2a 20 | }|..... * |
|000015a0| 20 20 20 20 20 20 20 20 | 20 7d 0d 05 d2 0f f4 20 | | }..... |
|000015b0| 2a 20 20 20 20 20 20 20 | 7d 0d 05 dc 31 dd 20 a4 |* |}...1. .|
|000015c0| 5f 4f 53 5f 47 42 50 42 | 5f 52 65 61 64 45 6e 74 |_OS_GBPB|_ReadEnt|
|000015d0| 72 79 28 20 64 69 72 24 | 2c 20 6c 65 61 66 24 2c |ry( dir$|, leaf$,|
|000015e0| 20 f8 20 6e 65 78 74 25 | 20 29 0d 05 e6 13 ea 20 | . next%| )..... |
|000015f0| 6e 75 6d 62 65 72 5f 66 | 6f 75 6e 64 25 0d 05 f0 |number_f|ound%...|
|00001600| 07 ea 20 85 0d 05 fa 37 | ee 20 85 20 ea 20 f7 20 |.. ....7|. . . . |
|00001610| 85 20 20 3a 20 20 f2 5f | 65 28 20 22 25 2e 66 69 |. : ._|e( "%.fi|
|00001620| 6c 65 5f 69 6f 3a 20 4f | 53 5f 47 42 50 42 5f 52 |le_io: O|S_GBPB_R|
|00001630| 65 61 64 45 6e 74 72 79 | 22 20 29 0d 06 04 6b 20 |eadEntry|" )...k |
|00001640| 20 20 c8 99 20 22 58 4f | 53 5f 47 42 50 42 22 2c | .. "XO|S_GBPB",|
|00001650| 20 31 30 2c 20 64 69 72 | 24 2c 20 66 69 6c 65 5f | 10, dir|$, file_|
|00001660| 62 6c 6f 63 6b 25 2c 20 | 31 2c 20 6e 65 78 74 25 |block%, |1, next%|
|00001670| 2c 20 73 69 7a 65 6f 66 | 5f 66 69 6c 65 5f 62 6c |, sizeof|_file_bl|
|00001680| 6f 63 6b 25 2c 20 6c 65 | 61 66 24 20 b8 20 2c 2c |ock%, le|af$ . ,,|
|00001690| 2c 20 6e 75 6d 62 65 72 | 5f 66 6f 75 6e 64 25 2c |, number|_found%,|
|000016a0| 20 6e 65 78 74 25 0d 06 | 0e 13 3d 20 6e 75 6d 62 | next%..|..= numb|
|000016b0| 65 72 5f 66 6f 75 6e 64 | 25 0d 06 18 05 3a 0d 06 |er_found|%....:..|
|000016c0| 22 4b f4 20 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |"K. ****|********|
|000016d0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000016e0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000016f0| 2a 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 0d 06 2c 30 f4 20 2a |********|*..,0. *|
|00001710| 20 54 68 69 73 20 63 61 | 6c 6c 20 69 73 20 75 73 | This ca|ll is us|
|00001720| 65 64 20 77 69 74 68 20 | 2a 2a 4e 4f 2a 2a 20 77 |ed with |**NO** w|
|00001730| 69 6c 64 63 61 72 64 73 | 2e 0d 06 36 39 f4 20 2a |ildcards|...69. *|
|00001740| 20 49 4e 20 20 20 20 64 | 69 72 24 20 20 20 20 20 | IN d|ir$ |
|00001750| 20 3d 3d 20 28 65 78 70 | 6c 69 63 69 74 29 20 64 | == (exp|licit) d|
|00001760| 69 72 65 63 74 6f 72 79 | 20 74 6f 20 73 65 61 72 |irectory| to sear|
|00001770| 63 68 0d 06 40 3d f4 20 | 2a 20 20 20 20 20 20 20 |ch..@=. |* |
|00001780| 6c 65 61 66 24 20 20 20 | 20 20 3d 3d 20 28 65 78 |leaf$ | == (ex|
|00001790| 70 6c 69 63 69 74 29 20 | 66 69 6c 65 20 6e 6f 64 |plicit) |file nod|
|000017a0| 65 20 73 70 65 63 69 66 | 69 63 61 74 69 6f 6e 0d |e specif|ication.|
|000017b0| 06 4a 2c f4 20 2a 20 4f | 55 54 20 20 20 54 52 55 |.J,. * O|UT TRU|
|000017c0| 45 20 69 66 20 6f 62 6a | 65 63 74 20 64 6f 65 73 |E if obj|ect does|
|000017d0| 20 4e 4f 54 20 65 78 69 | 73 74 2e 0d 06 54 29 f4 | NOT exi|st...T).|
|000017e0| 20 2a 20 20 20 20 20 20 | 20 46 41 4c 53 45 20 69 | * | FALSE i|
|000017f0| 66 20 6f 62 6a 65 63 74 | 20 64 6f 65 73 20 65 78 |f object| does ex|
|00001800| 69 73 74 2e 0d 06 5e 32 | f4 20 2a 20 20 20 20 20 |ist...^2|. * |
|00001810| 20 20 5b 66 69 6c 65 5f | 62 6c 6f 63 6b 25 5d 20 | [file_|block%] |
|00001820| 63 6f 6d 70 6c 65 74 65 | 6c 79 20 66 69 6c 6c 65 |complete|ly fille|
|00001830| 64 20 6f 75 74 2e 0d 06 | 68 28 dd 20 a4 5f 4f 53 |d out...|h(. ._OS|
|00001840| 5f 46 69 6c 65 5f 52 65 | 61 64 45 6e 74 72 79 28 |_File_Re|adEntry(|
|00001850| 20 64 69 72 24 2c 20 6c | 65 61 66 24 20 29 0d 06 | dir$, l|eaf$ )..|
|00001860| 72 2b ea 20 74 79 70 65 | 25 2c 20 6c 6f 61 64 25 |r+. type|%, load%|
|00001870| 2c 20 65 78 65 63 25 2c | 20 6c 65 6e 67 74 68 25 |, exec%,| length%|
|00001880| 2c 20 61 63 63 65 73 73 | 25 0d 06 7c 07 ea 20 85 |, access|%..|.. .|
|00001890| 0d 06 86 37 ee 20 85 20 | ea 20 f7 20 85 20 20 3a |...7. . |. . . :|
|000018a0| 20 20 f2 5f 65 28 20 22 | 25 2e 66 69 6c 65 5f 69 | ._e( "|%.file_i|
|000018b0| 6f 3a 20 4f 53 5f 46 69 | 6c 65 5f 52 65 61 64 45 |o: OS_Fi|le_ReadE|
|000018c0| 6e 74 72 79 22 20 29 0d | 06 90 54 20 20 20 c8 99 |ntry" ).|..T ..|
|000018d0| 20 22 58 4f 53 5f 46 69 | 6c 65 22 2c 20 35 2c 20 | "XOS_Fi|le", 5, |
|000018e0| 64 69 72 24 20 2b 20 22 | 2e 22 20 2b 20 6c 65 61 |dir$ + "|." + lea|
|000018f0| 66 24 20 b8 20 74 79 70 | 65 25 2c 2c 20 6c 6f 61 |f$ . typ|e%,, loa|
|00001900| 64 25 2c 20 65 78 65 63 | 25 2c 20 6c 65 6e 67 74 |d%, exec|%, lengt|
|00001910| 68 25 2c 20 61 63 63 65 | 73 73 25 0d 06 9a 1d 20 |h%, acce|ss%.... |
|00001920| 20 20 66 69 6c 65 5f 62 | 6c 6f 63 6b 25 21 30 30 | file_b|lock%!00|
|00001930| 20 3d 20 6c 6f 61 64 25 | 0d 06 a4 1d 20 20 20 66 | = load%|.... f|
|00001940| 69 6c 65 5f 62 6c 6f 63 | 6b 25 21 30 34 20 3d 20 |ile_bloc|k%!04 = |
|00001950| 65 78 65 63 25 0d 06 ae | 1f 20 20 20 66 69 6c 65 |exec%...|. file|
|00001960| 5f 62 6c 6f 63 6b 25 21 | 30 38 20 3d 20 6c 65 6e |_block%!|08 = len|
|00001970| 67 74 68 25 0d 06 b8 1f | 20 20 20 66 69 6c 65 5f |gth%....| file_|
|00001980| 62 6c 6f 63 6b 25 21 31 | 32 20 3d 20 61 63 63 65 |block%!1|2 = acce|
|00001990| 73 73 25 0d 06 c2 1d 20 | 20 20 66 69 6c 65 5f 62 |ss%.... | file_b|
|000019a0| 6c 6f 63 6b 25 21 31 36 | 20 3d 20 74 79 70 65 25 |lock%!16| = type%|
|000019b0| 0d 06 cc 43 20 20 20 f2 | 5f 73 74 72 5f 62 61 73 |...C .|_str_bas|
|000019c0| 69 63 5f 74 6f 5f 63 28 | 20 28 64 69 72 24 20 2b |ic_to_c(| (dir$ +|
|000019d0| 20 22 2e 22 20 2b 20 6c | 65 61 66 24 29 2c 20 28 | "." + l|eaf$), (|
|000019e0| 66 69 6c 65 5f 62 6c 6f | 63 6b 25 20 2b 20 32 30 |file_blo|ck% + 20|
|000019f0| 29 20 29 0d 06 d6 0f 3d | 20 28 74 79 70 65 25 3d |) )....=| (type%=|
|00001a00| 30 29 0d 06 e0 05 3a 0d | 06 ea 4b f4 20 2a 2a 2a |0)....:.|..K. ***|
|00001a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a30| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a40| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001a50| 2a 2a 0d 06 f4 43 f4 20 | 2a 20 54 68 65 73 65 20 |**...C. |* These |
|00001a60| 61 72 65 20 72 6f 75 74 | 69 6e 65 73 20 75 73 65 |are rout|ines use|
|00001a70| 64 20 74 6f 20 61 63 63 | 65 73 73 20 74 68 65 20 |d to acc|ess the |
|00001a80| 64 61 74 61 20 73 65 74 | 20 75 70 20 62 79 20 65 |data set| up by e|
|00001a90| 69 74 68 65 72 0d 06 fe | 35 f4 20 2a 20 5f 4f 53 |ither...|5. * _OS|
|00001aa0| 5f 47 42 50 42 5f 52 65 | 61 64 45 6e 74 72 79 28 |_GBPB_Re|adEntry(|
|00001ab0| 29 20 6f 72 20 5f 4f 53 | 5f 46 69 6c 65 5f 52 65 |) or _OS|_File_Re|
|00001ac0| 61 64 45 6e 74 72 79 28 | 29 2e 0d 07 08 45 f4 20 |adEntry(|)....E. |
|00001ad0| 2a 20 4e 6f 74 65 2c 20 | 74 68 65 79 20 75 73 65 |* Note, |they use|
|00001ae0| 20 61 20 73 74 61 74 69 | 63 20 67 6c 6f 62 61 6c | a stati|c global|
|00001af0| 2c 20 73 6f 20 63 61 6e | 20 6e 6f 74 20 62 65 20 |, so can| not be |
|00001b00| 75 73 65 64 20 69 6e 20 | 61 20 74 72 75 6c 79 0d |used in |a truly.|
|00001b10| 07 12 4a f4 20 2a 20 6d | 75 6c 74 69 2d 74 61 73 |..J. * m|ulti-tas|
|00001b20| 6b 69 6e 67 20 65 6e 76 | 69 72 6f 6e 6d 65 6e 74 |king env|ironment|
|00001b30| 20 2d 20 62 75 74 20 61 | 73 20 74 68 65 20 41 72 | - but a|s the Ar|
|00001b40| 63 68 69 6d 65 64 65 73 | 20 69 73 6e 27 74 20 2d |chimedes| isn't -|
|00001b50| 20 73 6f 20 77 68 61 74 | 21 0d 07 1c 07 f4 20 2a | so what|!..... *|
|00001b60| 0d 07 26 20 dd 20 a4 5f | 66 69 6c 65 5f 6f 62 6a |..& . ._|file_obj|
|00001b70| 65 63 74 5f 6c 6f 61 64 | 5f 61 64 64 72 65 73 73 |ect_load|_address|
|00001b80| 0d 07 30 07 ea 20 85 0d | 07 3a 3e ee 20 85 20 ea |..0.. ..|.:>. . .|
|00001b90| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00001ba0| 2e 66 69 6c 65 5f 69 6f | 3a 20 66 69 6c 65 5f 6f |.file_io|: file_o|
|00001bb0| 62 6a 65 63 74 5f 6c 6f | 61 64 5f 61 64 64 72 65 |bject_lo|ad_addre|
|00001bc0| 73 73 22 20 29 0d 07 44 | 12 3d 20 21 66 69 6c 65 |ss" )..D|.= !file|
|00001bd0| 5f 62 6c 6f 63 6b 25 0d | 07 4e 05 3a 0d 07 58 23 |_block%.|.N.:..X#|
|00001be0| dd 20 a4 5f 66 69 6c 65 | 5f 6f 62 6a 65 63 74 5f |. ._file|_object_|
|00001bf0| 65 78 65 63 75 74 65 5f | 61 64 64 72 65 73 73 0d |execute_|address.|
|00001c00| 07 62 07 ea 20 85 0d 07 | 6c 49 ee 20 85 20 ea 20 |.b.. ...|lI. . . |
|00001c10| f7 20 85 20 20 3a 20 20 | f2 5f 65 28 20 22 25 2e |. . : |._e( "%.|
|00001c20| 66 69 6c 65 5f 69 6f 3a | 20 66 69 6c 65 5f 6f 62 |file_io:| file_ob|
|00001c30| 6a 65 63 74 5f 65 78 65 | 63 75 74 65 5f 61 64 64 |ject_exe|cute_add|
|00001c40| 72 65 73 73 3a 20 22 3b | 20 f6 24 20 3a 20 e0 0d |ress: ";| .$ : ..|
|00001c50| 07 76 13 3d 20 66 69 6c | 65 5f 62 6c 6f 63 6b 25 |.v.= fil|e_block%|
|00001c60| 21 34 0d 07 80 05 3a 0d | 07 8a 1a dd 20 a4 5f 66 |!4....:.|.... ._f|
|00001c70| 69 6c 65 5f 6f 62 6a 65 | 63 74 5f 6c 65 6e 67 74 |ile_obje|ct_lengt|
|00001c80| 68 0d 07 94 07 ea 20 85 | 0d 07 9e 38 ee 20 85 20 |h..... .|...8. . |
|00001c90| ea 20 f7 20 85 20 20 3a | 20 20 f2 5f 65 28 20 22 |. . . :| ._e( "|
|00001ca0| 25 2e 66 69 6c 65 5f 69 | 6f 3a 20 66 69 6c 65 5f |%.file_i|o: file_|
|00001cb0| 6f 62 6a 65 63 74 5f 6c | 65 6e 67 74 68 22 20 29 |object_l|ength" )|
|00001cc0| 0d 07 a8 13 3d 20 66 69 | 6c 65 5f 62 6c 6f 63 6b |....= fi|le_block|
|00001cd0| 25 21 38 0d 07 b2 05 3a | 0d 07 bc 1e dd 20 a4 5f |%!8....:|..... ._|
|00001ce0| 66 69 6c 65 5f 6f 62 6a | 65 63 74 5f 61 74 74 72 |file_obj|ect_attr|
|00001cf0| 69 62 75 74 65 73 0d 07 | c6 07 ea 20 85 0d 07 d0 |ibutes..|... ....|
|00001d00| 3c ee 20 85 20 ea 20 f7 | 20 85 20 20 3a 20 20 f2 |<. . . .| . : .|
|00001d10| 5f 65 28 20 22 25 2e 66 | 69 6c 65 5f 69 6f 3a 20 |_e( "%.f|ile_io: |
|00001d20| 66 69 6c 65 5f 6f 62 6a | 65 63 74 5f 61 74 74 72 |file_obj|ect_attr|
|00001d30| 69 62 75 74 65 73 22 20 | 29 0d 07 da 14 3d 20 66 |ibutes" |)....= f|
|00001d40| 69 6c 65 5f 62 6c 6f 63 | 6b 25 21 31 32 0d 07 e4 |ile_bloc|k%!12...|
|00001d50| 05 3a 0d 07 ee 18 dd 20 | a4 5f 66 69 6c 65 5f 6f |.:..... |._file_o|
|00001d60| 62 6a 65 63 74 5f 74 79 | 70 65 0d 07 f8 07 ea 20 |bject_ty|pe..... |
|00001d70| 85 0d 08 02 36 ee 20 85 | 20 ea 20 f7 20 85 20 20 |....6. .| . . . |
|00001d80| 3a 20 20 f2 5f 65 28 20 | 22 25 2e 66 69 6c 65 5f |: ._e( |"%.file_|
|00001d90| 69 6f 3a 20 66 69 6c 65 | 5f 6f 62 6a 65 63 74 5f |io: file|_object_|
|00001da0| 74 79 70 65 22 20 29 0d | 08 0c 14 3d 20 66 69 6c |type" ).|...= fil|
|00001db0| 65 5f 62 6c 6f 63 6b 25 | 21 31 36 0d 08 16 05 3a |e_block%|!16....:|
|00001dc0| 0d 08 20 18 dd 20 a4 5f | 66 69 6c 65 5f 6f 62 6a |.. .. ._|file_obj|
|00001dd0| 65 63 74 5f 6e 61 6d 65 | 0d 08 2a 07 ea 20 85 0d |ect_name|..*.. ..|
|00001de0| 08 34 36 ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |.46. . .| . . : |
|00001df0| 20 f2 5f 65 28 20 22 25 | 2e 66 69 6c 65 5f 69 6f | ._e( "%|.file_io|
|00001e00| 3a 20 66 69 6c 65 5f 6f | 62 6a 65 63 74 5f 6e 61 |: file_o|bject_na|
|00001e10| 6d 65 22 20 29 0d 08 3e | 28 3d 20 a4 5f 73 74 72 |me" )..>|(= ._str|
|00001e20| 5f 63 5f 74 6f 5f 62 61 | 73 69 63 28 20 66 69 6c |_c_to_ba|sic( fil|
|00001e30| 65 5f 62 6c 6f 63 6b 25 | 2b 32 30 20 29 0d 08 48 |e_block%|+20 )..H|
|00001e40| 05 3a 0d 08 52 20 dd 20 | a4 5f 66 69 6c 65 5f 6f |.:..R . |._file_o|
|00001e50| 62 6a 65 63 74 5f 69 73 | 5f 64 69 72 65 63 74 6f |bject_is|_directo|
|00001e60| 72 79 0d 08 5c 07 ea 20 | 85 0d 08 66 3e ee 20 85 |ry..\.. |...f>. .|
|00001e70| 20 ea 20 f7 20 85 20 20 | 3a 20 20 f2 5f 65 28 20 | . . . |: ._e( |
|00001e80| 22 25 2e 66 69 6c 65 5f | 69 6f 3a 20 66 69 6c 65 |"%.file_|io: file|
|00001e90| 5f 6f 62 6a 65 63 74 5f | 69 73 5f 64 69 72 65 63 |_object_|is_direc|
|00001ea0| 74 6f 72 79 22 20 29 0d | 08 70 1a 3d 20 28 28 66 |tory" ).|.p.= ((f|
|00001eb0| 69 6c 65 5f 62 6c 6f 63 | 6b 25 21 31 36 29 3d 32 |ile_bloc|k%!16)=2|
|00001ec0| 29 0d 08 7a 05 3a 0d 08 | 84 4b f4 20 2a 2a 2a 2a |)..z.:..|.K. ****|
|00001ed0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001ee0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001ef0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001f00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00001f10| 2a 0d 08 8e 3a f4 20 2a | 20 47 65 74 20 74 68 65 |*...:. *| Get the|
|00001f20| 20 74 79 70 65 20 6f 66 | 20 61 20 66 69 6c 65 20 | type of| a file |
|00001f30| 2d 20 61 20 74 68 72 65 | 65 2d 64 69 67 69 74 20 |- a thre|e-digit |
|00001f40| 68 65 78 20 6e 75 6d 62 | 65 72 2e 0d 08 98 34 f4 |hex numb|er....4.|
|00001f50| 20 2a 20 4f 55 54 20 20 | 20 2d 31 20 69 66 20 6f | * OUT | -1 if o|
|00001f60| 62 6a 65 63 74 20 64 6f | 65 73 20 6e 6f 74 20 48 |bject do|es not H|
|00001f70| 41 56 45 20 61 20 66 69 | 6c 65 20 74 79 70 65 0d |AVE a fi|le type.|
|00001f80| 08 a2 27 f4 20 2a 20 20 | 20 20 20 20 20 65 6c 73 |..'. * | els|
|00001f90| 65 20 66 69 6c 65 20 74 | 79 70 65 20 5b 30 2c 20 |e file t|ype [0, |
|00001fa0| 26 46 46 46 5d 2e 0d 08 | ac 1d dd 20 a4 5f 66 69 |&FFF]...|... ._fi|
|00001fb0| 6c 65 5f 6f 62 6a 65 63 | 74 5f 66 69 6c 65 5f 74 |le_objec|t_file_t|
|00001fc0| 79 70 65 0d 08 b6 0d ea | 20 72 65 73 75 6c 74 25 |ype.....| result%|
|00001fd0| 0d 08 c0 07 ea 20 85 0d | 08 ca 3b ee 20 85 20 ea |..... ..|..;. . .|
|00001fe0| 20 f7 20 85 20 20 3a 20 | 20 f2 5f 65 28 20 22 25 | . . : | ._e( "%|
|00001ff0| 2e 66 69 6c 65 5f 69 6f | 3a 20 66 69 6c 65 5f 6f |.file_io|: file_o|
|00002000| 62 6a 65 63 74 5f 66 69 | 6c 65 5f 74 79 70 65 22 |bject_fi|le_type"|
|00002010| 20 29 0d 08 d4 2b 20 20 | 20 72 65 73 75 6c 74 25 | )...+ | result%|
|00002020| 20 3d 20 a4 5f 66 69 6c | 65 5f 6f 62 6a 65 63 74 | = ._fil|e_object|
|00002030| 5f 6c 6f 61 64 5f 61 64 | 64 72 65 73 73 0d 08 de |_load_ad|dress...|
|00002040| 28 20 20 20 e7 20 28 72 | 65 73 75 6c 74 25 20 80 |( . (r|esult% .|
|00002050| 20 26 46 46 46 30 30 30 | 30 30 29 3d 26 46 46 46 | &FFF000|00)=&FFF|
|00002060| 30 30 30 30 30 0d 08 e8 | 3d 20 20 20 20 20 20 72 |00000...|= r|
|00002070| 65 73 75 6c 74 25 20 3d | 20 28 72 65 73 75 6c 74 |esult% =| (result|
|00002080| 25 20 80 20 26 30 30 30 | 46 46 46 30 30 29 20 3e |% . &000|FFF00) >|
|00002090| 3e 20 38 20 20 3a 20 20 | f4 20 20 52 65 73 75 6c |> 8 : |. Resul|
|000020a0| 74 2e 0d 08 f2 08 20 20 | 20 cc 0d 08 fc 44 20 20 |t..... | ....D |
|000020b0| 20 20 20 20 72 65 73 75 | 6c 74 25 20 3d 20 2d 31 | resu|lt% = -1|
|000020c0| 20 20 3a 20 20 f4 20 20 | 46 6c 61 67 20 6f 62 6a | : . |Flag obj|
|000020d0| 65 63 74 20 64 6f 65 73 | 20 6e 6f 74 20 48 41 56 |ect does| not HAV|
|000020e0| 45 20 61 20 66 69 6c 65 | 20 74 79 70 65 2e 0d 09 |E a file| type...|
|000020f0| 06 08 20 20 20 cd 0d 09 | 10 0d 3d 20 72 65 73 75 |.. ...|..= resu|
|00002100| 6c 74 25 0d 09 1a 05 3a | 0d 09 24 4b f4 20 2a 2a |lt%....:|..$K. **|
|00002110| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002120| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002130| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002140| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00002150| 2a 2a 2a 0d 09 2e 46 f4 | 20 2a 20 47 65 74 20 74 |***...F.| * Get t|
|00002160| 68 65 20 74 69 6d 65 20 | 74 68 61 74 20 61 20 66 |he time |that a f|
|00002170| 69 6c 65 20 77 61 73 20 | 6c 61 73 74 20 77 72 69 |ile was |last wri|
|00002180| 74 74 65 6e 20 74 6f 20 | 2d 20 69 6e 20 63 65 6e |tten to |- in cen|
|00002190| 74 69 73 65 63 6f 6e 64 | 73 0d 09 38 4a f4 20 2a |tisecond|s..8J. *|
|000021a0| 20 66 72 6f 6d 20 30 30 | 3a 30 30 3a 30 30 20 30 | from 00|:00:00 0|
|000021b0| 31 2e 30 31 2e 31 39 30 | 30 20 2d 20 74 68 69 73 |1.01.190|0 - this|
|000021c0| 20 69 73 20 61 20 34 30 | 2d 62 69 74 20 6e 75 6d | is a 40|-bit num|
|000021d0| 62 65 72 21 20 20 45 76 | 65 6e 20 73 6f 2c 20 77 |ber! Ev|en so, w|
|000021e0| 69 6c 6c 0d 09 42 28 f4 | 20 2a 20 28 6f 6e 6c 79 |ill..B(.| * (only|
|000021f0| 29 20 63 6f 70 65 20 75 | 70 20 74 6f 20 74 68 65 |) cope u|p to the|
|00002200| 20 79 65 61 72 20 32 32 | 34 38 2e 0d 09 4c 31 f4 | year 22|48...L1.|
|00002210| 20 2a 20 4f 55 54 20 20 | 20 54 52 55 45 20 69 66 | * OUT | TRUE if|
|00002220| 20 6f 62 6a 65 63 74 20 | 64 6f 65 73 20 6e 6f 74 | object |does not|
|00002230| 20 48 41 56 45 20 61 20 | 74 69 6d 65 0d 09 56 22 | HAVE a |time..V"|
|00002240| f4 20 2a 20 20 20 20 20 | 20 20 46 41 4c 53 45 20 |. * | FALSE |
|00002250| 6f 74 68 65 72 77 69 73 | 65 2c 20 61 6e 64 0d 09 |otherwis|e, and..|
|00002260| 60 38 f4 20 2a 20 20 20 | 20 20 20 20 20 20 20 20 |`8. * | |
|00002270| 74 69 6d 65 5f 6c 6f 25 | 20 3c 2d 2d 20 6c 6f 77 |time_lo%| <-- low|
|00002280| 20 6f 72 64 65 72 20 33 | 32 2d 62 69 74 73 20 6f | order 3|2-bits o|
|00002290| 66 20 74 69 6d 65 0d 09 | 6a 38 f4 20 2a 20 20 20 |f time..|j8. * |
|000022a0| 20 20 20 20 20 20 20 20 | 74 69 6d 65 5f 68 69 25 | |time_hi%|
|000022b0| 20 3c 2d 2d 20 68 69 67 | 68 20 6f 72 64 65 72 20 | <-- hig|h order |
|000022c0| 38 2d 62 69 74 73 20 6f | 66 20 74 69 6d 65 0d 09 |8-bits o|f time..|
|000022d0| 74 37 dd 20 a4 5f 66 69 | 6c 65 5f 6f 62 6a 65 63 |t7. ._fi|le_objec|
|000022e0| 74 5f 66 69 6c 65 5f 74 | 69 6d 65 28 20 f8 20 74 |t_file_t|ime( . t|
|000022f0| 69 6d 65 5f 6c 6f 25 2c | 20 f8 20 74 69 6d 65 5f |ime_lo%,| . time_|
|00002300| 68 69 25 20 29 0d 09 7e | 0d ea 20 72 65 73 75 6c |hi% )..~|.. resul|
|00002310| 74 25 0d 09 88 07 ea 20 | 85 0d 09 92 3b ee 20 85 |t%..... |....;. .|
|00002320| 20 ea 20 f7 20 85 20 20 | 3a 20 20 f2 5f 65 28 20 | . . . |: ._e( |
|00002330| 22 25 2e 66 69 6c 65 5f | 69 6f 3a 20 66 69 6c 65 |"%.file_|io: file|
|00002340| 5f 6f 62 6a 65 63 74 5f | 66 69 6c 65 5f 74 69 6d |_object_|file_tim|
|00002350| 65 22 20 29 0d 09 9c 2b | 20 20 20 72 65 73 75 6c |e" )...+| resul|
|00002360| 74 25 20 3d 20 a4 5f 66 | 69 6c 65 5f 6f 62 6a 65 |t% = ._f|ile_obje|
|00002370| 63 74 5f 6c 6f 61 64 5f | 61 64 64 72 65 73 73 0d |ct_load_|address.|
|00002380| 09 a6 28 20 20 20 e7 20 | 28 72 65 73 75 6c 74 25 |..( . |(result%|
|00002390| 20 80 20 26 46 46 46 30 | 30 30 30 30 29 3d 26 46 | . &FFF0|0000)=&F|
|000023a0| 46 46 30 30 30 30 30 0d | 09 b0 28 20 20 20 20 20 |FF00000.|..( |
|000023b0| 20 74 69 6d 65 5f 68 69 | 25 20 3d 20 72 65 73 75 | time_hi|% = resu|
|000023c0| 6c 74 25 20 80 20 26 30 | 30 30 30 30 30 46 46 0d |lt% . &0|00000FF.|
|000023d0| 09 ba 32 20 20 20 20 20 | 20 74 69 6d 65 5f 6c 6f |..2 | time_lo|
|000023e0| 25 20 3d 20 a4 5f 66 69 | 6c 65 5f 6f 62 6a 65 63 |% = ._fi|le_objec|
|000023f0| 74 5f 65 78 65 63 75 74 | 65 5f 61 64 64 72 65 73 |t_execut|e_addres|
|00002400| 73 0d 09 c4 26 20 20 20 | 20 20 20 72 65 73 75 6c |s...& | resul|
|00002410| 74 25 20 20 3d 20 a3 20 | 20 3a 20 20 f4 20 20 46 |t% = . | : . F|
|00002420| 6c 61 67 20 4f 4b 2e 0d | 09 ce 08 20 20 20 cc 0d |lag OK..|... ..|
|00002430| 09 d8 40 20 20 20 20 20 | 20 72 65 73 75 6c 74 25 |..@ | result%|
|00002440| 20 3d 20 b9 20 20 20 20 | 3a 20 20 f4 20 20 46 6c | = . |: . Fl|
|00002450| 61 67 20 6f 62 6a 65 63 | 74 20 64 6f 65 73 20 6e |ag objec|t does n|
|00002460| 6f 74 20 48 41 56 45 20 | 61 20 74 69 6d 65 2e 0d |ot HAVE |a time..|
|00002470| 09 e2 08 20 20 20 cd 0d | 09 ec 0d 3d 20 72 65 73 |... ..|...= res|
|00002480| 75 6c 74 25 0d 09 f6 05 | 3a 0d 0a 00 4b f4 20 2a |ult%....|:...K. *|
|00002490| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000024d0| 2a 2a 2a 2a 0d 0a 0a 3f | f4 20 2a 20 54 68 69 73 |****...?|. * This|
|000024e0| 20 70 65 72 66 6f 72 6d | 73 20 61 20 6e 6f 74 69 | perform|s a noti|
|000024f0| 6f 6e 61 6c 20 73 75 62 | 74 72 61 63 74 69 6f 6e |onal sub|traction|
|00002500| 20 6f 66 20 74 77 6f 20 | 66 69 6c 65 20 74 69 6d | of two |file tim|
|00002510| 65 73 2e 0d 0a 14 17 f4 | 20 2a 20 4f 55 54 20 20 |es......| * OUT |
|00002520| 20 28 61 29 20 2d 20 28 | 62 29 0d 0a 1e 4a f4 20 | (a) - (|b)...J. |
|00002530| 2a 20 4e 42 20 20 20 20 | 42 65 63 75 61 73 65 20 |* NB |Becuase |
|00002540| 6c 6f 77 2d 6f 72 64 65 | 72 20 33 32 2d 62 69 74 |low-orde|r 32-bit|
|00002550| 73 20 61 72 65 20 75 6e | 73 69 67 6e 65 64 2c 20 |s are un|signed, |
|00002560| 6e 65 65 64 20 74 6f 20 | 74 61 6b 65 20 73 70 65 |need to |take spe|
|00002570| 63 69 61 6c 0d 0a 28 13 | f4 20 2a 20 20 20 20 20 |cial..(.|. * |
|00002580| 20 20 63 61 72 65 2e 0d | 0a 32 34 dd 20 a4 5f 66 | care..|.24. ._f|
|00002590| 69 6c 65 5f 74 69 6d 65 | 5f 63 6d 70 28 20 6c 6f |ile_time|_cmp( lo|
|000025a0| 5f 61 25 2c 20 68 69 5f | 61 25 2c 20 20 6c 6f 5f |_a%, hi_|a%, lo_|
|000025b0| 62 25 2c 20 68 69 5f 62 | 25 20 29 0d 0a 3c 0d ea |b%, hi_b|% )..<..|
|000025c0| 20 72 65 73 75 6c 74 25 | 0d 0a 46 07 ea 20 85 0d | result%|..F.. ..|
|000025d0| 0a 50 33 ee 20 85 20 ea | 20 f7 20 85 20 20 3a 20 |.P3. . .| . . : |
|000025e0| 20 f2 5f 65 28 20 22 25 | 2e 66 69 6c 65 5f 69 6f | ._e( "%|.file_io|
|000025f0| 3a 20 66 69 6c 65 5f 74 | 69 6d 65 5f 63 6d 70 22 |: file_t|ime_cmp"|
|00002600| 20 29 0d 0a 5a 21 20 20 | 20 72 65 73 75 6c 74 25 | )..Z! | result%|
|00002610| 20 3d 20 b4 28 68 69 5f | 61 25 20 2d 20 68 69 5f | = .(hi_|a% - hi_|
|00002620| 62 25 29 0d 0a 64 14 20 | 20 20 e7 20 72 65 73 75 |b%)..d. | . resu|
|00002630| 6c 74 25 3d 30 20 8c 0d | 0a 6e 34 20 20 20 20 20 |lt%=0 ..|.n4 |
|00002640| 20 72 65 73 75 6c 74 25 | 20 3d 20 b4 28 28 6c 6f | result%| = .((lo|
|00002650| 5f 61 25 20 3e 3e 3e 20 | 31 29 20 2d 20 28 6c 6f |_a% >>> |1) - (lo|
|00002660| 5f 62 25 20 3e 3e 3e 20 | 31 29 29 0d 0a 78 17 20 |_b% >>> |1))..x. |
|00002670| 20 20 20 20 20 e7 20 72 | 65 73 75 6c 74 25 3d 30 | . r|esult%=0|
|00002680| 20 8c 0d 0a 82 34 20 20 | 20 20 20 20 20 20 20 20 | ....4 | |
|00002690| 72 65 73 75 6c 74 25 20 | 3d 20 b4 28 28 6c 6f 5f |result% |= .((lo_|
|000026a0| 61 25 20 80 20 31 29 20 | 2d 20 28 6c 6f 5f 62 25 |a% . 1) |- (lo_b%|
|000026b0| 20 80 20 31 29 29 0d 0a | 8c 0b 20 20 20 20 20 20 | . 1))..|.. |
|000026c0| cd 0d 0a 96 08 20 20 20 | cd 0d 0a a0 0d 3d 20 72 |..... |.....= r|
|000026d0| 65 73 75 6c 74 25 0d 0a | aa 05 3a 0d ff |esult%..|..:.. |
+--------+-------------------------+-------------------------+--------+--------+