home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol128 / umodem.lbr < prev    next >
LBR Archive  |  1985-02-10  |  67.4 KB

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: LBR Archive (archive/lbr).

You can browse this item here: umodem.lbr

ConfidenceProgramDetectionMatch TypeSupport
100% dexvert LBR Archive (archive/lbr) magic Supported
1% dexvert Micro Focus COBOL library (other/microFocusCobolLibrary) ext Unsupported
1% dexvert Micro Focus COBOL Library (other/microFocusCOBOLLibrary) ext Unsupported
100% file LBR archive data default
99% file data default
87% TrID LU library default
12% TrID C64 Hires bitmap default (weak)



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 20 20 20 20 20 20 20 | 20 20 20 20 00 00 06 00 |. | ....|
|00000010| e4 20 74 ef 20 73 75 70 | 70 6f 72 f4 20 69 74 2e |. t. sup|por. it.|
|00000020| 00 43 50 4d 55 54 4c 20 | 20 43 20 20 06 00 03 01 |.CPMUTL | C ....|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 55 4d 4f 44 45 4d 20 | 20 43 20 20 09 01 12 01 |.UMODEM | C ....|
|00000050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000060| ff 20 20 20 20 20 20 20 | 20 20 20 5e 43 20 20 20 |. | ^C |
|00000070| 41 62 6f 72 74 20 61 6e | 64 20 72 65 74 75 72 6e |Abort an|d return|
|00000080| ff 74 6f 20 6f 70 65 72 | 61 74 69 6e 67 20 73 79 |.to oper|ating sy|
|00000090| 73 74 65 6d 0d 0a 0d 0a | 20 20 20 20 20 20 20 20 |stem....| |
|000000a0| ff 20 5e 58 20 20 20 53 | 6b 69 70 20 74 6f 20 74 |. ^X S|kip to t|
|000000b0| 6f 70 20 6f 66 20 6e 65 | 78 74 20 70 61 67 65 20 |op of ne|xt page |
|000000c0| ff 6e 64 20 73 6b 69 70 | 20 74 6f 20 6e 65 78 74 |.nd skip| to next|
|000000d0| 20 66 69 6c 65 0d 0a 0d | 0a 3a 54 68 65 20 50 48 | file...|.:The PH|
|000000e0| ff 4c 50 20 43 6f 6d 6d | 61 6e 64 0d 0a 0d 0a 20 |.LP Comm|and.... |
|000000f0| 20 20 20 20 54 68 e5 a0 | 20 50 48 45 4c d0 20 63 | Th..| PHEL. c|
|00000100| ff 6d 6d 61 6e e4 20 69 | f3 20 e1 20 73 70 65 63 |.mman. i|. . spec|
|00000110| 69 61 ec 20 76 65 72 73 | 69 6f ee 20 6f e6 20 50 |ia. vers|io. o. P|
|00000120| ff 49 4e d4 20 64 65 73 | 69 67 6e 65 e4 20 74 ef |.IN. des|igne. t.|
|00000130| 20 8d 0a 70 72 69 6e f4 | 20 48 65 6c f0 20 28 48 | ..prin.| Hel. (H|
|00000140| ff 50 a9 20 66 69 6c 65 | 73 ae a0 20 20 50 48 45 |.P. file|s.. PHE|
|00000150| 4c d0 20 6b 6e 6f 77 f3 | 20 61 62 6f 75 f4 20 74 |L. know.| abou. t|
|00000160| ff e5 20 73 74 72 75 63 | 74 75 72 e5 20 6f e6 20 |.. struc|tur. o. |
|00000170| 48 65 6c f0 20 8d 0a 46 | 69 6c 65 73 ac a0 20 61 |Hel. ..F|iles.. a|
|00000180| ff e4 20 69 f4 20 75 73 | 65 f3 20 74 68 69 f3 20 |.. i. us|e. thi. |
|00000190| 69 6e 66 6f 72 6d 61 74 | 69 6f ee 20 74 ef 20 70 |informat|io. t. p|
|000001a0| ff 69 6e f4 20 74 68 65 | ed 20 69 ee 20 e1 20 70 |.in. the|. i. . p|
|000001b0| 72 65 66 65 72 72 65 e4 | 20 8d 0a 66 6f 72 6d 61 |referre.| ..forma|
|000001c0| ff ae 20 20 49 e6 20 69 | f4 20 69 f3 20 64 65 61 |.. I. i|. i. dea|
|000001d0| 6c 69 6e e7 20 77 69 74 | e8 20 61 ee 20 69 6e 64 |lin. wit|. a. ind|
|000001e0| ff 78 65 e4 20 48 65 6c | f0 20 46 69 6c 65 ac 20 |.xe. Hel|. File. |
|000001f0| 50 48 45 4c d0 20 70 72 | 69 6e 74 f3 20 8d 0a 74 |PHEL. pr|int. ..t|
|00000200| ff e5 a0 20 69 6e 64 65 | f8 20 6f ee 20 74 68 e5 |... inde|. o. th.|
|00000210| 20 66 69 72 73 f4 20 70 | 61 67 e5 20 61 6e e4 20 | firs. p|ag. an. |
|00000220| ff 68 e5 20 62 6f 64 f9 | 20 73 74 61 72 74 69 6e |.h. bod.| startin|
|00000230| e7 20 6f ee 20 74 68 e5 | a0 20 73 65 63 6f 6e e4 |. o. th.|. secon.|
|00000240| ff 8d 0a 70 61 67 65 ae | a0 20 20 50 48 45 4c d0 |...page.|. PHEL.|
|00000250| a0 20 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |. ......|........|
|00000260| ff e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|00000270| e5 e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|00000280| ff e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|00000290| e5 e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002a0| ff e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002b0| e5 e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002c0| ff e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002d0| e5 e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002e0| ff e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|000002f0| e5 e5 e5 e5 e5 e5 e5 e5 | e5 e5 e5 e5 e5 e5 e5 e5 |........|........|
|00000300| 2f 2a 20 63 6f 70 79 72 | 69 67 68 74 20 28 63 29 |/* copyr|ight (c)|
|00000310| 20 62 79 20 41 61 72 6f | 6e 20 57 6f 68 6c 2c 20 | by Aaro|n Wohl, |
|00000320| 31 39 38 31 2c 31 39 38 | 32 0d 0a 20 20 77 72 69 |1981,198|2.. wri|
|00000330| 74 74 65 6e 20 62 79 20 | 41 61 72 6f 6e 20 57 6f |tten by |Aaron Wo|
|00000340| 68 6c 20 31 32 2d 32 34 | 2d 38 31 20 28 77 6f 68 |hl 12-24|-81 (woh|
|00000350| 6c 40 63 6d 75 63 29 0d | 0a 20 20 54 68 69 73 20 |l@cmuc).|. This |
|00000360| 66 69 6c 65 20 6d 61 79 | 20 62 65 20 75 73 65 64 |file may| be used|
|00000370| 20 66 6f 72 20 6e 6f 6e | 2d 70 72 6f 66 69 74 20 | for non|-profit |
|00000380| 75 73 65 20 70 72 6f 76 | 69 64 65 64 20 74 68 69 |use prov|ided thi|
|00000390| 73 0d 0a 20 20 20 20 74 | 68 69 73 20 6e 6f 74 69 |s.. t|his noti|
|000003a0| 63 65 20 72 65 6d 61 69 | 6e 73 20 61 74 20 74 68 |ce remai|ns at th|
|000003b0| 65 20 66 72 6f 6e 74 20 | 6f 66 20 74 68 65 20 66 |e front |of the f|
|000003c0| 69 6c 65 2e 0d 0a 0d 0a | 20 20 54 68 69 73 20 70 |ile.....| This p|
|000003d0| 72 6f 67 72 61 6d 20 72 | 65 61 64 73 20 61 6e 64 |rogram r|eads and|
|000003e0| 20 77 72 69 74 65 73 20 | 63 70 6d 20 66 6f 72 6d | writes |cpm form|
|000003f0| 61 74 20 66 6c 6f 70 70 | 79 20 64 69 73 6b 73 2e |at flopp|y disks.|
|00000400| 0d 0a 20 20 63 70 6d 20 | 69 73 20 61 20 74 72 61 |.. cpm |is a tra|
|00000410| 64 65 20 6d 61 72 6b 20 | 6f 66 20 44 69 67 69 74 |de mark |of Digit|
|00000420| 61 6c 20 52 65 61 73 65 | 61 72 63 68 2e 20 20 49 |al Rease|arch. I|
|00000430| 74 20 72 75 6e 73 20 75 | 6e 64 65 72 0d 0a 20 20 |t runs u|nder.. |
|00000440| 76 65 72 73 69 6f 6e 20 | 37 20 75 6e 69 78 2e 20 |version |7 unix. |
|00000450| 20 75 6e 69 78 20 69 73 | 20 61 20 74 72 61 64 65 | unix is| a trade|
|00000460| 6d 61 72 6b 20 6f 66 20 | 62 65 6c 6c 20 6c 61 62 |mark of |bell lab|
|00000470| 73 2e 0d 0a 20 20 53 65 | 65 20 74 68 65 20 66 75 |s... Se|e the fu|
|00000480| 6e 63 74 69 6f 6e 20 68 | 65 6c 70 28 29 20 66 6f |nction h|elp() fo|
|00000490| 72 20 64 6f 63 75 6d 65 | 6e 74 61 74 69 6f 6e 2e |r docume|ntation.|
|000004a0| 0d 0a 0d 0a 20 20 70 6c | 65 61 73 65 20 6d 61 69 |.... pl|ease mai|
|000004b0| 6c 20 61 6e 79 20 62 75 | 67 20 66 69 78 65 73 20 |l any bu|g fixes |
|000004c0| 74 6f 20 77 6f 68 6c 40 | 63 6d 75 63 0d 0a 20 20 |to wohl@|cmuc.. |
|000004d0| 74 68 65 20 73 6f 75 72 | 63 65 20 66 6f 72 20 74 |the sour|ce for t|
|000004e0| 68 69 73 20 66 69 6c 65 | 20 69 73 20 6f 6e 20 74 |his file| is on t|
|000004f0| 68 65 20 75 6e 69 78 20 | 68 6f 73 74 20 76 6c 73 |he unix |host vls|
|00000500| 69 40 63 6d 75 63 0d 0a | 20 20 20 20 70 61 74 68 |i@cmuc..| path|
|00000510| 6e 61 6d 65 20 2f 75 73 | 72 2f 61 76 77 2f 63 70 |name /us|r/avw/cp|
|00000520| 6d 75 74 6c 2f 63 70 6d | 75 74 6c 56 45 52 53 49 |mutl/cpm|utlVERSI|
|00000530| 4f 4e 2d 4e 55 4d 42 45 | 52 2e 63 0d 0a 20 20 20 |ON-NUMBE|R.c.. |
|00000540| 20 76 6c 73 69 20 69 73 | 20 6f 6e 20 74 68 65 20 | vlsi is| on the |
|00000550| 61 72 70 61 6e 65 74 20 | 72 75 6e 6e 69 6e 67 20 |arpanet |running |
|00000560| 54 43 50 2d 49 50 0d 0a | 20 20 61 20 63 6f 70 79 |TCP-IP..| a copy|
|00000570| 20 69 73 20 61 6c 73 6f | 20 6b 65 70 74 20 6f 6e | is also| kept on|
|00000580| 20 6d 69 74 2d 6d 63 20 | 63 70 6d 3b 61 72 34 33 | mit-mc |cpm;ar43|
|00000590| 3a 63 70 6d 75 74 6c 20 | 56 45 52 53 49 4f 4e 2d |:cpmutl |VERSION-|
|000005a0| 4e 55 4d 42 45 52 63 0d | 0a 20 20 61 6e 64 20 6f |NUMBERc.|. and o|
|000005b0| 6e 20 5b 63 6d 75 63 5d | 70 73 3a 3c 77 6f 68 6c |n [cmuc]|ps:<wohl|
|000005c0| 2e 62 61 72 3e 63 70 6d | 75 74 6c 2e 63 2e 56 45 |.bar>cpm|utl.c.VE|
|000005d0| 52 53 49 4f 4e 2d 4e 55 | 4d 42 45 52 20 28 66 6f |RSION-NU|MBER (fo|
|000005e0| 72 20 70 65 6f 70 6c 65 | 20 74 68 61 74 20 63 61 |r people| that ca|
|000005f0| 6e 27 74 0d 0a 20 20 20 | 20 66 69 67 75 72 65 20 |n't.. | figure |
|00000600| 6f 75 74 20 68 6f 77 20 | 74 6f 20 75 73 65 20 49 |out how |to use I|
|00000610| 54 53 29 0d 0a 20 20 6d | 61 69 6c 20 77 69 6c 6c |TS).. m|ail will|
|00000620| 20 62 65 20 73 65 6e 74 | 20 69 6e 66 6f 2d 63 70 | be sent| info-cp|
|00000630| 6d 20 61 6e 6e 6f 75 6e | 63 69 6e 67 20 6e 65 77 |m announ|cing new|
|00000640| 20 76 65 72 73 69 6f 6e | 73 0d 0a 20 20 0d 0a 2a | version|s.. ..*|
|00000650| 2f 0d 0a 0d 0a 23 64 65 | 66 69 6e 65 20 76 65 72 |/....#de|fine ver|
|00000660| 73 69 6f 6e 20 37 0d 0a | 23 64 65 66 69 6e 65 20 |sion 7..|#define |
|00000670| 77 68 65 6e 20 22 31 30 | 2d 32 38 2d 38 32 22 0d |when "10|-28-82".|
|00000680| 0a 0d 0a 2f 2a 20 63 68 | 61 6e 67 65 20 6c 6f 67 |.../* ch|ange log|
|00000690| 3a 0d 0a 0d 0a 20 76 65 | 72 20 20 20 77 68 65 6e |:.... ve|r when|
|000006a0| 20 20 20 20 20 20 20 20 | 20 20 77 68 6f 20 20 20 | | who |
|000006b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 77 68 79 | | why|
|000006c0| 0d 0a 20 2d 2d 2d 20 20 | 2d 2d 2d 2d 2d 2d 2d 2d |.. --- |--------|
|000006d0| 20 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 | ------|------- |
|000006e0| 20 20 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ------|--------|
|000006f0| 2d 2d 2d 2d 2d 2d 0d 0a | 20 20 20 32 20 20 31 32 |------..| 2 12|
|00000700| 2d 32 37 2d 38 31 09 20 | 20 20 20 77 6f 68 6c 40 |-27-81. | wohl@|
|00000710| 63 6d 75 63 20 20 20 61 | 6c 6c 6f 77 20 61 20 74 |cmuc a|llow a t|
|00000720| 72 61 69 6c 69 6e 67 20 | 2a 20 74 6f 20 63 72 6f |railing |* to cro|
|00000730| 73 73 20 74 68 65 20 2e | 20 69 6e 20 61 20 75 66 |ss the .| in a uf|
|00000740| 6e 0d 0a 20 20 20 33 20 | 20 31 32 2d 32 38 2d 38 |n.. 3 | 12-28-8|
|00000750| 31 09 20 20 20 20 77 6f | 68 6c 40 63 6d 75 63 20 |1. wo|hl@cmuc |
|00000760| 20 20 72 65 6d 6f 76 65 | 20 72 65 66 72 65 6e 63 | remove| refrenc|
|00000770| 65 73 20 74 6f 20 63 6d | 75 20 6c 6f 63 61 6c 20 |es to cm|u local |
|00000780| 66 75 6e 63 74 69 6f 6e | 73 0d 0a 09 09 09 09 68 |function|s......h|
|00000790| 6f 6e 6f 72 20 74 68 65 | 20 72 65 63 6f 72 64 20 |onor the| record |
|000007a0| 63 6f 75 6e 74 20 77 68 | 65 6e 20 72 65 61 64 69 |count wh|en readi|
|000007b0| 6e 67 0d 0a 20 20 20 34 | 20 20 20 32 2d 20 39 2d |ng.. 4| 2- 9-|
|000007c0| 38 32 20 20 20 20 20 20 | 77 6f 68 6c 40 63 6d 75 |82 |wohl@cmu|
|000007d0| 63 20 20 20 66 69 78 20 | 61 20 27 3d 3e 20 5b 63 |c fix |a '=> [c|
|000007e0| 70 6d 5d 27 20 73 74 72 | 69 6e 67 20 74 6f 20 62 |pm]' str|ing to b|
|000007f0| 65 20 27 5b 63 70 6d 5d | 20 3d 3e 27 0d 0a 09 09 |e '[cpm]| =>'....|
|00000800| 09 09 70 75 74 20 77 69 | 74 68 20 6f 6e 65 20 66 |..put wi|th one f|
|00000810| 69 6c 65 6e 61 6d 65 20 | 61 72 67 20 75 73 65 73 |ilename |arg uses|
|00000820| 20 69 74 20 66 6f 72 20 | 62 6f 74 68 0d 0a 20 20 | it for |both.. |
|00000830| 20 35 20 20 20 35 2d 20 | 38 2d 38 32 09 20 20 20 | 5 5- |8-82. |
|00000840| 20 77 6f 68 6c 40 63 6d | 75 63 20 20 20 69 6e 69 | wohl@cm|uc ini|
|00000850| 74 69 6c 69 7a 65 20 65 | 78 74 65 6e 74 20 66 69 |tilize e|xtent fi|
|00000860| 6c 6c 65 72 20 62 79 74 | 65 73 20 74 6f 20 7a 65 |ller byt|es to ze|
|00000870| 72 6f 0d 0a 20 20 20 36 | 20 20 20 35 2d 31 37 2d |ro.. 6| 5-17-|
|00000880| 38 32 20 20 20 20 20 20 | 77 6f 68 6c 40 63 6d 75 |82 |wohl@cmu|
|00000890| 63 20 20 20 66 69 78 20 | 70 72 69 6e 74 6f 75 74 |c fix |printout|
|000008a0| 20 6f 66 20 66 72 65 65 | 20 73 70 61 63 65 20 28 | of free| space (|
|000008b0| 77 61 73 20 32 6b 20 6c | 6f 77 29 0d 0a 09 09 09 |was 2k l|ow).....|
|000008c0| 09 61 64 64 20 73 75 70 | 70 6f 72 74 20 66 6f 72 |.add sup|port for|
|000008d0| 20 75 73 65 72 20 6e 75 | 6d 62 65 72 73 0d 0a 09 | user nu|mbers...|
|000008e0| 09 09 09 61 64 64 20 61 | 20 5c 6e 20 74 6f 20 74 |...add a| \n to t|
|000008f0| 68 65 20 69 6e 74 65 72 | 6c 65 76 69 6e 67 20 6f |he inter|leving o|
|00000900| 66 66 20 6d 65 73 73 61 | 67 65 0d 0a 20 20 20 37 |ff messa|ge.. 7|
|00000910| 20 20 31 30 2d 32 38 2d | 38 32 20 20 20 20 20 20 | 10-28-|82 |
|00000920| 6d 7a 40 67 70 20 20 20 | 20 20 20 20 66 6f 72 20 |mz@gp | for |
|00000930| 66 69 6c 65 20 67 65 74 | 2c 20 63 6c 6f 73 65 20 |file get|, close |
|00000940| 65 61 63 68 20 66 69 6c | 65 0d 0a 0d 0a 54 68 69 |each fil|e....Thi|
|00000950| 6e 67 73 20 74 6f 20 28 | 74 68 69 6e 6b 20 61 62 |ngs to (|think ab|
|00000960| 6f 75 74 29 20 64 6f 69 | 6e 67 3a 0d 0a 0d 0a 61 |out) doi|ng:....a|
|00000970| 29 20 68 61 76 65 20 74 | 68 65 20 63 72 65 61 74 |) have t|he creat|
|00000980| 65 20 66 69 6c 65 20 73 | 79 73 74 65 6d 20 66 75 |e file s|ystem fu|
|00000990| 6e 63 74 69 6f 6e 20 61 | 73 6b 20 66 6f 72 20 63 |nction a|sk for c|
|000009a0| 6f 6e 66 69 72 6d 61 74 | 69 6f 6e 0d 0a 62 29 20 |onfirmat|ion..b) |
|000009b0| 6d 75 6c 74 69 70 6c 65 | 20 70 75 74 20 73 68 6f |multiple| put sho|
|000009c0| 75 6c 64 20 73 6b 69 70 | 20 66 69 6c 65 73 20 77 |uld skip| files w|
|000009d0| 69 74 68 20 6e 61 6d 65 | 73 20 74 68 61 74 20 61 |ith name|s that a|
|000009e0| 72 65 20 74 6f 6f 20 6c | 6f 6e 67 20 6f 72 20 74 |re too l|ong or t|
|000009f0| 72 75 6e 63 61 74 65 20 | 74 68 65 0d 0a 20 20 20 |runcate |the.. |
|00000a00| 6e 61 6d 65 0d 0a 63 29 | 20 73 6b 69 70 20 66 69 |name..c)| skip fi|
|00000a10| 6c 65 73 20 77 68 69 63 | 68 20 61 72 65 20 64 69 |les whic|h are di|
|00000a20| 72 65 63 74 6f 72 69 65 | 73 20 28 6d 75 6c 74 69 |rectorie|s (multi|
|00000a30| 70 6c 65 20 70 75 74 29 | 0d 0a 0d 0a 0d 0a 2a 2f |ple put)|......*/|
|00000a40| 0d 0a 0c 0d 0a 23 69 6e | 63 6c 75 64 65 20 3c 73 |.....#in|clude <s|
|00000a50| 79 73 2f 74 79 70 65 73 | 2e 68 3e 0d 0a 23 69 6e |ys/types|.h>..#in|
|00000a60| 63 6c 75 64 65 20 3c 73 | 79 73 2f 73 74 61 74 2e |clude <s|ys/stat.|
|00000a70| 68 3e 0d 0a 23 69 6e 63 | 6c 75 64 65 20 3c 73 74 |h>..#inc|lude <st|
|00000a80| 64 69 6f 2e 68 3e 0d 0a | 23 69 6e 63 6c 75 64 65 |dio.h>..|#include|
|00000a90| 20 3c 63 74 79 70 65 2e | 68 3e 0d 0a 0d 0a 23 64 | <ctype.|h>....#d|
|00000aa0| 65 66 69 6e 65 20 54 52 | 55 45 20 31 0d 0a 23 64 |efine TR|UE 1..#d|
|00000ab0| 65 66 69 6e 65 20 46 41 | 4c 53 45 20 30 0d 0a 23 |efine FA|LSE 0..#|
|00000ac0| 64 65 66 69 6e 65 20 4d | 41 58 5f 55 53 45 52 20 |define M|AX_USER |
|00000ad0| 31 35 09 09 2f 2a 20 6d | 61 78 69 6d 75 6d 20 75 |15../* m|aximum u|
|00000ae0| 73 65 72 20 6e 75 6d 62 | 65 72 20 2a 2f 0d 0a 23 |ser numb|er */..#|
|00000af0| 64 65 66 69 6e 65 20 43 | 50 5f 4e 55 4d 44 49 52 |define C|P_NUMDIR|
|00000b00| 20 36 34 09 09 2f 2a 20 | 6e 75 6d 62 65 72 20 6f | 64../* |number o|
|00000b10| 66 20 64 69 72 65 63 74 | 6f 72 79 20 73 6c 6f 74 |f direct|ory slot|
|00000b20| 73 20 2a 2f 0d 0a 23 64 | 65 66 69 6e 65 20 44 49 |s */..#d|efine DI|
|00000b30| 52 5f 45 58 54 20 28 43 | 50 5f 4e 55 4d 44 49 52 |R_EXT (C|P_NUMDIR|
|00000b40| 2b 31 29 09 2f 2a 20 66 | 61 6b 65 20 69 6e 64 65 |+1)./* f|ake inde|
|00000b50| 78 20 74 6f 20 61 6c 6c | 6f 63 61 74 65 20 64 69 |x to all|ocate di|
|00000b60| 72 65 63 74 6f 72 79 20 | 73 70 61 63 65 20 2a 2f |rectory |space */|
|00000b70| 0d 0a 23 64 65 66 69 6e | 65 20 43 50 5f 44 49 52 |..#defin|e CP_DIR|
|00000b80| 53 45 43 20 31 36 09 09 | 2f 2a 20 6e 75 6d 62 65 |SEC 16..|/* numbe|
|00000b90| 72 20 6f 66 20 73 65 63 | 74 6f 72 73 20 6f 66 20 |r of sec|tors of |
|00000ba0| 64 69 72 65 63 74 6f 72 | 79 20 2a 2f 0d 0a 23 64 |director|y */..#d|
|00000bb0| 65 66 69 6e 65 20 43 50 | 5f 4e 41 4d 45 53 49 5a |efine CP|_NAMESIZ|
|00000bc0| 45 20 28 38 2b 33 2b 31 | 2b 31 29 09 2f 2a 20 66 |E (8+3+1|+1)./* f|
|00000bd0| 69 6c 65 20 6e 61 6d 65 | 2c 20 6e 61 6d 65 2b 65 |ile name|, name+e|
|00000be0| 78 74 2b 64 6f 74 2b 6e | 75 6c 6c 20 2a 2f 0d 0a |xt+dot+n|ull */..|
|00000bf0| 23 64 65 66 69 6e 65 20 | 43 50 5f 42 41 53 45 09 |#define |CP_BASE.|
|00000c00| 28 32 36 2a 32 29 09 09 | 2f 2a 20 73 65 63 74 6f |(26*2)..|/* secto|
|00000c10| 72 20 6f 66 20 73 74 61 | 72 74 20 6f 66 20 66 69 |r of sta|rt of fi|
|00000c20| 6c 65 20 73 79 73 74 65 | 6d 20 2a 2f 0d 0a 23 64 |le syste|m */..#d|
|00000c30| 65 66 69 6e 65 20 43 50 | 5f 53 49 5a 45 09 28 32 |efine CP|_SIZE.(2|
|00000c40| 36 2a 37 37 29 09 09 2f | 2a 20 73 65 63 74 6f 72 |6*77)../|* sector|
|00000c50| 73 20 6f 6e 20 61 20 64 | 69 73 6b 20 2a 2f 0d 0a |s on a d|isk */..|
|00000c60| 23 64 65 66 69 6e 65 20 | 43 50 5f 43 4c 55 53 54 |#define |CP_CLUST|
|00000c70| 45 52 20 38 09 09 2f 2a | 20 73 65 63 74 6f 72 73 |ER 8../*| sectors|
|00000c80| 20 69 6e 20 61 20 61 6c | 6c 6f 63 61 74 69 6f 6e | in a al|location|
|00000c90| 20 63 6c 75 73 74 65 72 | 20 2a 2f 0d 0a 23 64 65 | cluster| */..#de|
|00000ca0| 66 69 6e 65 20 43 50 5f | 43 4c 43 48 41 52 20 28 |fine CP_|CLCHAR (|
|00000cb0| 43 50 5f 43 4c 55 53 54 | 45 52 2a 31 32 38 29 20 |CP_CLUST|ER*128) |
|00000cc0| 2f 2a 20 6e 75 6d 62 65 | 72 20 6f 66 20 62 79 74 |/* numbe|r of byt|
|00000cd0| 65 73 20 69 6e 20 61 20 | 63 6c 75 73 74 65 72 20 |es in a |cluster |
|00000ce0| 2a 2f 0d 0a 23 64 65 66 | 69 6e 65 20 43 50 5f 41 |*/..#def|ine CP_A|
|00000cf0| 4c 4f 43 20 28 28 43 50 | 5f 53 49 5a 45 2d 43 50 |LOC ((CP|_SIZE-CP|
|00000d00| 5f 42 41 53 45 29 2f 43 | 50 5f 43 4c 55 53 54 45 |_BASE)/C|P_CLUSTE|
|00000d10| 52 29 20 2f 2a 20 63 6c | 75 73 74 65 72 73 20 70 |R) /* cl|usters p|
|00000d20| 65 72 20 64 69 73 6b 20 | 2a 2f 0d 0a 23 64 65 66 |er disk |*/..#def|
|00000d30| 69 6e 65 20 53 50 41 43 | 45 20 30 34 30 09 09 2f |ine SPAC|E 040../|
|00000d40| 2a 20 61 73 63 69 69 20 | 73 70 61 63 65 20 63 68 |* ascii |space ch|
|00000d50| 61 72 61 63 74 65 72 20 | 2a 2f 0d 0a 23 64 65 66 |aracter |*/..#def|
|00000d60| 69 6e 65 20 6e 70 28 76 | 61 6c 29 20 28 28 76 61 |ine np(v|al) ((va|
|00000d70| 6c 29 20 26 20 30 31 37 | 37 29 09 2f 2a 20 6e 6f |l) & 017|7)./* no|
|00000d80| 20 70 61 72 69 74 79 20 | 70 6c 65 61 73 65 20 2a | parity |please *|
|00000d90| 2f 0d 0a 23 64 65 66 69 | 6e 65 20 46 54 5f 53 5a |/..#defi|ne FT_SZ|
|00000da0| 20 33 09 09 09 2f 2a 20 | 6e 75 6d 62 65 72 20 6f | 3.../* |number o|
|00000db0| 66 20 62 79 74 65 73 20 | 69 6e 20 61 20 66 69 6c |f bytes |in a fil|
|00000dc0| 65 20 74 79 70 65 20 2a | 2f 0d 0a 23 64 65 66 69 |e type *|/..#defi|
|00000dd0| 6e 65 20 46 4e 5f 53 5a | 20 38 09 09 09 2f 2a 20 |ne FN_SZ| 8.../* |
|00000de0| 6e 75 6d 62 65 72 20 6f | 66 20 62 79 74 65 73 20 |number o|f bytes |
|00000df0| 69 6e 20 61 20 66 69 6c | 65 20 6e 61 6d 65 20 2a |in a fil|e name *|
|00000e00| 2f 0d 0a 23 64 65 66 69 | 6e 65 20 53 45 43 20 31 |/..#defi|ne SEC 1|
|00000e10| 32 38 09 09 09 2f 2a 20 | 62 79 74 65 73 20 69 6e |28.../* |bytes in|
|00000e20| 20 61 20 73 65 63 74 6f | 72 20 2a 2f 0d 0a 23 64 | a secto|r */..#d|
|00000e30| 65 66 69 6e 65 20 44 4d | 20 31 36 09 09 09 2f 2a |efine DM| 16.../*|
|00000e40| 20 6e 75 6d 62 65 72 20 | 6f 66 20 64 69 73 6b 20 | number |of disk |
|00000e50| 6d 61 70 20 65 6e 74 72 | 69 65 73 20 2a 2f 0d 0a |map entr|ies */..|
|00000e60| 23 64 65 66 69 6e 65 20 | 44 45 4c 46 20 30 78 65 |#define |DELF 0xe|
|00000e70| 35 09 09 2f 2a 20 65 6e | 74 72 79 20 74 79 70 65 |5../* en|try type|
|00000e80| 20 66 6f 72 20 61 20 64 | 65 6c 65 74 65 64 20 66 | for a d|eleted f|
|00000e90| 69 6c 65 20 2a 2f 0d 0a | 0d 0a 2f 2a 20 77 68 61 |ile */..|../* wha|
|00000ea0| 74 20 61 20 64 69 72 65 | 63 74 6f 72 79 20 65 6e |t a dire|ctory en|
|00000eb0| 74 72 79 20 6c 6f 6f 6b | 73 20 6c 69 6b 65 20 2a |try look|s like *|
|00000ec0| 2f 0d 0a 73 74 72 75 63 | 74 20 63 70 5f 64 69 72 |/..struc|t cp_dir|
|00000ed0| 5f 65 78 74 20 7b 0d 0a | 20 20 75 6e 73 69 67 6e |_ext {..| unsign|
|00000ee0| 65 64 20 63 68 61 72 20 | 63 70 5f 65 74 3b 09 09 |ed char |cp_et;..|
|00000ef0| 2f 2a 20 65 6e 74 72 79 | 20 74 79 70 65 20 2a 2f |/* entry| type */|
|00000f00| 0d 0a 20 20 75 6e 73 69 | 67 6e 65 64 20 63 68 61 |.. unsi|gned cha|
|00000f10| 72 20 63 70 5f 66 6e 5b | 46 4e 5f 53 5a 5d 3b 09 |r cp_fn[|FN_SZ];.|
|00000f20| 2f 2a 20 66 69 6c 65 20 | 6e 61 6d 65 20 2a 2f 0d |/* file |name */.|
|00000f30| 0a 20 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |. unsig|ned char|
|00000f40| 20 63 70 5f 66 74 5b 46 | 54 5f 53 5a 5d 3b 09 2f | cp_ft[F|T_SZ];./|
|00000f50| 2a 20 66 69 6c 65 20 74 | 79 70 65 20 2a 2f 0d 0a |* file t|ype */..|
|00000f60| 20 20 75 6e 73 69 67 6e | 65 64 20 63 68 61 72 20 | unsign|ed char |
|00000f70| 63 70 5f 65 78 3b 09 09 | 2f 2a 20 65 78 74 65 6e |cp_ex;..|/* exten|
|00000f80| 74 20 6e 75 6d 62 65 72 | 20 2a 2f 0d 0a 20 20 75 |t number| */.. u|
|00000f90| 6e 73 69 67 6e 65 64 20 | 63 68 61 72 20 63 70 5f |nsigned |char cp_|
|00000fa0| 66 6c 5b 32 5d 3b 09 2f | 2a 20 66 69 6c 6c 65 72 |fl[2];./|* filler|
|00000fb0| 20 2a 2f 0d 0a 20 20 75 | 6e 73 69 67 6e 65 64 20 | */.. u|nsigned |
|00000fc0| 63 68 61 72 20 63 70 5f | 72 63 3b 09 09 2f 2a 20 |char cp_|rc;../* |
|00000fd0| 72 65 63 6f 72 64 20 63 | 6f 75 6e 74 20 2a 2f 0d |record c|ount */.|
|00000fe0| 0a 20 20 75 6e 73 69 67 | 6e 65 64 20 63 68 61 72 |. unsig|ned char|
|00000ff0| 20 63 70 5f 64 6d 5b 44 | 4d 5d 3b 09 2f 2a 20 64 | cp_dm[D|M];./* d|
|00001000| 69 73 6b 20 61 6c 6c 6f | 63 61 74 69 6f 6e 20 6d |isk allo|cation m|
|00001010| 61 70 20 2a 2f 0d 0a 7d | 3b 0d 0a 0d 0a 73 74 72 |ap */..}|;....str|
|00001020| 75 63 74 20 63 70 5f 64 | 69 72 5f 65 78 74 20 63 |uct cp_d|ir_ext c|
|00001030| 70 5f 64 69 72 5b 43 50 | 5f 4e 55 4d 44 49 52 5d |p_dir[CP|_NUMDIR]|
|00001040| 3b 0d 0a 0d 0a 63 68 61 | 72 20 63 70 5f 6e 61 6d |;....cha|r cp_nam|
|00001050| 65 5b 43 50 5f 4e 55 4d | 44 49 52 5d 5b 43 50 5f |e[CP_NUM|DIR][CP_|
|00001060| 4e 41 4d 45 53 49 5a 45 | 5d 3b 20 2f 2a 20 6e 61 |NAMESIZE|]; /* na|
|00001070| 6d 65 20 61 73 20 66 69 | 6c 65 2e 74 79 70 20 2a |me as fi|le.typ *|
|00001080| 2f 0d 0a 69 6e 74 20 65 | 78 74 5f 6e 65 78 74 5b |/..int e|xt_next[|
|00001090| 43 50 5f 4e 55 4d 44 49 | 52 5d 3b 09 2f 2a 20 73 |CP_NUMDI|R];./* s|
|000010a0| 6c 6f 74 20 6f 66 20 6e | 65 78 74 20 68 69 67 68 |lot of n|ext high|
|000010b0| 65 72 20 65 78 74 65 6e | 74 20 2a 2f 0d 0a 69 6e |er exten|t */..in|
|000010c0| 74 20 65 78 74 5f 70 72 | 65 76 5b 43 50 5f 4e 55 |t ext_pr|ev[CP_NU|
|000010d0| 4d 44 49 52 5d 3b 09 2f | 2a 20 73 6c 6f 74 20 6f |MDIR];./|* slot o|
|000010e0| 66 20 6e 65 78 74 20 6c | 6f 77 65 72 20 65 78 74 |f next l|ower ext|
|000010f0| 65 6e 74 20 2a 2f 0d 0a | 69 6e 74 20 63 70 5f 62 |ent */..|int cp_b|
|00001100| 74 62 5b 43 50 5f 41 4c | 4f 43 5d 3b 09 09 2f 2a |tb[CP_AL|OC];../*|
|00001110| 20 61 6c 6c 6f 63 61 74 | 69 6f 6e 20 62 69 74 20 | allocat|ion bit |
|00001120| 74 61 62 6c 65 20 2a 2f | 0d 0a 69 6e 74 20 64 73 |table */|..int ds|
|00001130| 6b 5f 69 6e 75 73 65 3b | 09 09 09 2f 2a 20 6e 75 |k_inuse;|.../* nu|
|00001140| 6d 62 65 72 20 6f 66 20 | 63 6c 75 73 74 65 72 73 |mber of |clusters|
|00001150| 20 69 6e 20 75 73 65 20 | 2a 2f 0d 0a 69 6e 74 20 | in use |*/..int |
|00001160| 6e 75 6d 5f 66 69 6c 3b | 09 09 09 2f 2a 20 6e 75 |num_fil;|.../* nu|
|00001170| 6d 62 65 72 20 6f 66 20 | 66 69 6c 65 73 20 2a 2f |mber of |files */|
|00001180| 0d 0a 69 6e 74 20 6e 75 | 6d 5f 65 78 74 3b 09 09 |..int nu|m_ext;..|
|00001190| 09 2f 2a 20 6e 75 6d 62 | 65 72 20 6f 66 20 65 78 |./* numb|er of ex|
|000011a0| 74 65 6e 74 73 20 2a 2f | 0d 0a 69 6e 74 20 64 69 |tents */|..int di|
|000011b0| 72 5f 65 72 72 3b 09 09 | 09 2f 2a 20 6e 75 6d 62 |r_err;..|./* numb|
|000011c0| 65 72 20 6f 66 20 64 69 | 72 65 63 74 6f 72 79 20 |er of di|rectory |
|000011d0| 65 72 72 6f 72 73 20 2a | 2f 0d 0a 09 09 09 09 2f |errors *|/....../|
|000011e0| 2a 20 20 69 6e 63 6c 75 | 64 65 73 20 6e 75 6d 62 |* inclu|des numb|
|000011f0| 65 72 20 6f 66 20 69 2f | 6f 20 65 72 72 6f 72 73 |er of i/|o errors|
|00001200| 20 69 6e 20 64 69 72 20 | 2a 2f 0d 0a 69 6e 74 20 | in dir |*/..int |
|00001210| 69 6f 5f 65 72 72 3b 09 | 09 09 2f 2a 20 6e 75 6d |io_err;.|../* num|
|00001220| 62 65 72 20 6f 66 20 69 | 2f 6f 20 65 72 72 6f 72 |ber of i|/o error|
|00001230| 73 20 2a 2f 0d 0a 69 6e | 74 20 75 73 65 72 5f 6e |s */..in|t user_n|
|00001240| 75 6d 20 3d 20 30 3b 09 | 09 2f 2a 20 63 75 72 72 |um = 0;.|./* curr|
|00001250| 65 6e 74 20 75 73 65 72 | 20 6e 75 6d 62 65 72 20 |ent user| number |
|00001260| 2a 2f 0d 0a 69 6e 74 20 | 61 6e 79 5f 75 73 65 72 |*/..int |any_user|
|00001270| 20 3d 20 54 52 55 45 3b | 09 09 2f 2a 20 74 72 75 | = TRUE;|../* tru|
|00001280| 65 20 69 66 20 66 69 6c | 65 73 20 66 72 6f 6d 20 |e if fil|es from |
|00001290| 61 6e 79 20 75 73 65 72 | 20 63 61 6e 20 62 65 20 |any user| can be |
|000012a0| 73 65 65 6e 20 2a 2f 0d | 0a 0d 0a 23 64 65 66 69 |seen */.|...#defi|
|000012b0| 6e 65 20 66 6c 61 67 28 | 63 29 20 28 66 6c 67 5b |ne flag(|c) (flg[|
|000012c0| 28 63 29 20 2d 20 27 61 | 27 5d 29 0d 0a 0d 0a 63 |(c) - 'a|'])....c|
|000012d0| 68 61 72 20 2a 6d 61 6e | 20 3d 20 7b 20 22 63 6c |har *man| = { "cl|
|000012e0| 67 70 22 20 7d 3b 0d 0a | 0d 0a 63 68 61 72 20 2a |gp" };..|..char *|
|000012f0| 66 6c 6e 61 6d 65 3b 0d | 0a 69 6e 74 20 66 6c 64 |flname;.|.int fld|
|00001300| 65 73 3b 0d 0a 6c 6f 6e | 67 20 6c 73 65 65 6b 28 |es;..lon|g lseek(|
|00001310| 29 3b 0d 0a 0d 0a 69 6e | 74 20 67 63 6d 64 28 29 |);....in|t gcmd()|
|00001320| 2c 6c 63 6d 64 28 29 2c | 69 63 6d 64 28 29 2c 63 |,lcmd(),|icmd(),c|
|00001330| 63 6d 64 28 29 2c 70 63 | 6d 64 28 29 2c 6e 63 6d |cmd(),pc|md(),ncm|
|00001340| 64 28 29 3b 20 2f 2a 20 | 63 6f 6d 6d 61 6e 64 20 |d(); /* |command |
|00001350| 66 75 6e 63 74 69 6f 6e | 73 20 2a 2f 0d 0a 0d 0a |function|s */....|
|00001360| 69 6e 74 20 28 2a 63 6f | 6d 66 75 6e 29 28 29 3b |int (*co|mfun)();|
|00001370| 0d 0a 63 68 61 72 20 66 | 6c 67 5b 32 36 5d 3b 0d |..char f|lg[26];.|
|00001380| 0a 63 68 61 72 20 6d 6f | 64 65 20 3d 20 27 75 27 |.char mo|de = 'u'|
|00001390| 3b 0d 0a 69 6e 74 20 66 | 69 6c 65 3b 0d 0a 0c 0d |;..int f|ile;....|
|000013a0| 0a 2f 2a 20 6d 61 69 6e | 20 70 72 6f 67 72 61 6d |./* main| program|
|000013b0| 20 2a 2f 0d 0a 6d 61 69 | 6e 28 61 72 67 63 2c 20 | */..mai|n(argc, |
|000013c0| 61 72 67 76 29 0d 0a 63 | 68 61 72 20 2a 61 72 67 |argv)..c|har *arg|
|000013d0| 76 5b 5d 3b 0d 0a 7b 20 | 63 68 61 72 20 2a 63 70 |v[];..{ |char *cp|
|000013e0| 3b 0d 0a 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 |;.. fpr|intf(std|
|000013f0| 6f 75 74 2c 22 63 70 6d | 75 74 6c 20 76 65 72 73 |out,"cpm|utl vers|
|00001400| 69 6f 6e 28 25 64 29 2c | 20 64 61 74 65 3a 25 73 |ion(%d),| date:%s|
|00001410| 5c 6e 22 2c 76 65 72 73 | 69 6f 6e 2c 77 68 65 6e |\n",vers|ion,when|
|00001420| 29 3b 0d 0a 20 20 69 6e | 69 74 5f 64 61 74 61 28 |);.. in|it_data(|
|00001430| 29 3b 09 09 09 2f 2a 20 | 69 6e 69 74 69 61 6c 69 |);.../* |initiali|
|00001440| 7a 65 20 64 61 74 61 20 | 2a 2f 0d 0a 20 20 63 70 |ze data |*/.. cp|
|00001450| 20 3d 20 61 72 67 76 5b | 31 5d 3b 0d 0a 20 20 66 | = argv[|1];.. f|
|00001460| 6f 72 28 63 70 20 3d 20 | 61 72 67 76 5b 31 5d 3b |or(cp = |argv[1];|
|00001470| 20 2a 63 70 3b 20 63 70 | 2b 2b 29 0d 0a 20 20 20 | *cp; cp|++).. |
|00001480| 20 73 77 69 74 63 68 28 | 2a 63 70 29 20 7b 0d 0a | switch(|*cp) {..|
|00001490| 20 20 20 20 63 61 73 65 | 20 27 61 27 3a 0d 0a 20 | case| 'a':.. |
|000014a0| 20 20 20 20 20 66 6c 61 | 67 28 27 61 27 29 2b 2b | fla|g('a')++|
|000014b0| 3b 0d 0a 20 20 20 20 20 | 20 63 6f 6e 74 69 6e 75 |;.. | continu|
|000014c0| 65 3b 20 20 20 20 20 0d | 0a 0d 0a 20 20 20 20 63 |e; .|... c|
|000014d0| 61 73 65 20 27 74 27 3a | 0d 0a 20 20 20 20 20 20 |ase 't':|.. |
|000014e0| 6d 6f 64 65 20 3d 20 27 | 74 27 3b 0d 0a 20 20 20 |mode = '|t';.. |
|000014f0| 20 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0d 0a 0d 0a | conti|nue;....|
|00001500| 20 20 20 20 63 61 73 65 | 20 27 62 27 3a 0d 0a 20 | case| 'b':.. |
|00001510| 20 20 20 20 20 6d 6f 64 | 65 20 3d 20 27 62 27 3b | mod|e = 'b';|
|00001520| 0d 0a 20 20 20 20 20 20 | 63 6f 6e 74 69 6e 75 65 |.. |continue|
|00001530| 3b 0d 0a 0d 0a 20 20 20 | 20 63 61 73 65 20 27 6f |;.... | case 'o|
|00001540| 27 3a 0d 0a 20 20 20 20 | 20 20 66 6c 61 67 28 27 |':.. | flag('|
|00001550| 6f 27 29 2b 2b 3b 09 09 | 2f 2a 20 61 6c 6c 6f 77 |o')++;..|/* allow|
|00001560| 20 77 72 69 74 65 73 20 | 74 6f 20 61 20 64 61 6d | writes |to a dam|
|00001570| 61 67 65 64 20 64 69 72 | 65 63 74 6f 72 79 20 2a |aged dir|ectory *|
|00001580| 2f 0d 0a 20 20 20 20 20 | 20 63 6f 6e 74 69 6e 75 |/.. | continu|
|00001590| 65 3b 0d 0a 0d 0a 20 20 | 20 20 63 61 73 65 20 27 |e;.... | case '|
|000015a0| 69 27 3a 0d 0a 20 20 20 | 20 20 20 66 6c 61 67 28 |i':.. | flag(|
|000015b0| 27 69 27 29 2b 2b 3b 0d | 0a 20 20 20 20 20 20 63 |'i')++;.|. c|
|000015c0| 6f 6e 74 69 6e 75 65 3b | 0d 0a 0d 0a 20 20 20 20 |ontinue;|.... |
|000015d0| 63 61 73 65 20 27 6e 27 | 3a 0d 0a 20 20 20 20 20 |case 'n'|:.. |
|000015e0| 20 66 6c 61 67 28 27 77 | 27 29 2b 2b 3b 09 09 2f | flag('w|')++;../|
|000015f0| 2a 20 77 69 6c 6c 20 62 | 65 20 77 72 69 74 69 6e |* will b|e writin|
|00001600| 67 20 2a 2f 0d 0a 20 20 | 20 20 20 20 73 65 74 63 |g */.. | setc|
|00001610| 6f 6d 28 6e 63 6d 64 29 | 3b 0d 0a 20 20 20 20 20 |om(ncmd)|;.. |
|00001620| 20 63 6f 6e 74 69 6e 75 | 65 3b 0d 0a 0d 0a 20 20 | continu|e;.... |
|00001630| 20 20 63 61 73 65 20 27 | 70 27 3a 0d 0a 20 20 20 | case '|p':.. |
|00001640| 20 20 20 66 6c 61 67 28 | 27 77 27 29 2b 2b 3b 09 | flag(|'w')++;.|
|00001650| 09 2f 2a 20 77 69 6c 6c | 20 62 65 20 77 72 69 74 |./* will| be writ|
|00001660| 69 6e 67 20 2a 2f 0d 0a | 20 20 20 20 20 20 73 65 |ing */..| se|
|00001670| 74 63 6f 6d 28 70 63 6d | 64 29 3b 0d 0a 20 20 20 |tcom(pcm|d);.. |
|00001680| 20 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0d 0a 0d 0a | conti|nue;....|
|00001690| 20 20 20 20 63 61 73 65 | 20 27 63 27 3a 0d 0a 20 | case| 'c':.. |
|000016a0| 20 20 20 20 20 66 6c 61 | 67 28 27 77 27 29 2b 2b | fla|g('w')++|
|000016b0| 3b 09 09 2f 2a 20 77 69 | 6c 6c 20 62 65 20 77 72 |;../* wi|ll be wr|
|000016c0| 69 74 69 6e 67 20 2a 2f | 0d 0a 20 20 20 20 20 20 |iting */|.. |
|000016d0| 73 65 74 63 6f 6d 28 63 | 63 6d 64 29 3b 0d 0a 20 |setcom(c|cmd);.. |
|000016e0| 20 20 20 20 20 63 6f 6e | 74 69 6e 75 65 3b 0d 0a | con|tinue;..|
|000016f0| 0d 0a 20 20 20 20 63 61 | 73 65 20 27 67 27 3a 0d |.. ca|se 'g':.|
|00001700| 0a 20 20 20 20 20 20 73 | 65 74 63 6f 6d 28 67 63 |. s|etcom(gc|
|00001710| 6d 64 29 3b 0d 0a 20 20 | 20 20 20 20 63 6f 6e 74 |md);.. | cont|
|00001720| 69 6e 75 65 3b 0d 0a 0d | 0a 20 20 20 20 63 61 73 |inue;...|. cas|
|00001730| 65 20 27 6c 27 3a 0d 0a | 20 20 20 20 20 20 73 65 |e 'l':..| se|
|00001740| 74 63 6f 6d 28 6c 63 6d | 64 29 3b 0d 0a 20 20 20 |tcom(lcm|d);.. |
|00001750| 20 20 20 63 6f 6e 74 69 | 6e 75 65 3b 0d 0a 0d 0a | conti|nue;....|
|00001760| 20 20 20 20 63 61 73 65 | 20 27 66 27 3a 0d 0a 20 | case| 'f':.. |
|00001770| 20 20 20 20 20 66 6c 6e | 61 6d 65 20 3d 20 61 72 | fln|ame = ar|
|00001780| 67 76 5b 32 5d 3b 0d 0a | 20 20 20 20 20 20 61 72 |gv[2];..| ar|
|00001790| 67 76 2b 2b 3b 0d 0a 20 | 20 20 20 20 20 61 72 67 |gv++;.. | arg|
|000017a0| 63 2d 2d 3b 0d 0a 20 20 | 20 20 20 20 63 6f 6e 74 |c--;.. | cont|
|000017b0| 69 6e 75 65 3b 0d 0a 0d | 0a 20 20 20 20 63 61 73 |inue;...|. cas|
|000017c0| 65 20 27 68 27 3a 0d 0a | 20 20 20 20 20 20 68 65 |e 'h':..| he|
|000017d0| 6c 70 28 29 3b 0d 0a 0d | 0a 20 20 20 20 63 61 73 |lp();...|. cas|
|000017e0| 65 20 27 75 27 3a 0d 0a | 20 20 20 20 20 20 75 73 |e 'u':..| us|
|000017f0| 65 72 5f 6e 75 6d 3d 30 | 3b 09 09 2f 2a 20 72 65 |er_num=0|;../* re|
|00001800| 61 64 20 69 6e 20 74 68 | 65 20 6e 75 6d 62 65 72 |ad in th|e number|
|00001810| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 77 68 69 6c 65 | */.. | while|
|00001820| 28 69 73 64 69 67 69 74 | 28 2a 28 63 70 2b 31 29 |(isdigit|(*(cp+1)|
|00001830| 29 29 0d 0a 20 20 20 20 | 20 20 20 20 75 73 65 72 |)).. | user|
|00001840| 5f 6e 75 6d 20 3d 20 75 | 73 65 72 5f 6e 75 6d 20 |_num = u|ser_num |
|00001850| 2a 20 31 30 20 2b 20 28 | 2a 2b 2b 63 70 20 2d 20 |* 10 + (|*++cp - |
|00001860| 27 30 27 29 3b 0d 0a 20 | 20 20 20 20 20 69 66 28 |'0');.. | if(|
|00001870| 75 73 65 72 5f 6e 75 6d | 20 3e 20 4d 41 58 5f 55 |user_num| > MAX_U|
|00001880| 53 45 52 29 0d 0a 20 20 | 20 20 20 20 20 20 71 75 |SER).. | qu|
|00001890| 69 74 28 31 2c 22 5c 6e | 63 70 6d 75 74 6c 3a 75 |it(1,"\n|cpmutl:u|
|000018a0| 73 65 72 20 6e 75 6d 62 | 65 72 20 6f 75 74 20 6f |ser numb|er out o|
|000018b0| 66 20 72 61 6e 67 65 5c | 6e 22 29 3b 0d 0a 20 20 |f range\|n");.. |
|000018c0| 20 20 20 20 61 6e 79 5f | 75 73 65 72 20 3d 20 46 | any_|user = F|
|000018d0| 41 4c 53 45 3b 0d 0a 20 | 20 20 20 20 20 63 6f 6e |ALSE;.. | con|
|000018e0| 74 69 6e 75 65 3b 0d 0a | 0d 0a 20 20 20 20 64 65 |tinue;..|.. de|
|000018f0| 66 61 75 6c 74 3a 0d 0a | 20 20 20 20 20 20 71 75 |fault:..| qu|
|00001900| 69 74 28 31 2c 22 5c 6e | 63 70 6d 75 74 6c 3a 20 |it(1,"\n|cpmutl: |
|00001910| 62 61 64 20 6f 70 74 69 | 6f 6e 20 27 25 63 27 2e |bad opti|on '%c'.|
|00001920| 20 75 73 65 20 68 20 66 | 6f 72 20 68 65 6c 70 5c | use h f|or help\|
|00001930| 6e 22 2c 20 2a 63 70 29 | 3b 0d 0a 20 20 20 20 7d |n", *cp)|;.. }|
|00001940| 0d 0a 20 20 69 66 28 63 | 6f 6d 66 75 6e 20 3d 3d |.. if(c|omfun ==|
|00001950| 20 30 29 20 7b 0d 0a 20 | 20 20 20 20 20 71 75 69 | 0) {.. | qui|
|00001960| 74 28 31 2c 22 5c 6e 63 | 70 6d 75 74 6c 3a 20 6f |t(1,"\nc|pmutl: o|
|00001970| 6e 65 20 6f 66 20 5b 25 | 73 5d 20 6d 75 73 74 20 |ne of [%|s] must |
|00001980| 62 65 20 73 70 65 63 69 | 66 69 65 64 2e 20 75 73 |be speci|fied. us|
|00001990| 65 20 68 20 66 6f 72 20 | 68 65 6c 70 5c 6e 22 2c |e h for |help\n",|
|000019a0| 6d 61 6e 29 3b 0d 0a 20 | 20 20 20 7d 0d 0a 20 20 |man);.. | }.. |
|000019b0| 28 2a 63 6f 6d 66 75 6e | 29 28 61 72 67 63 2d 32 |(*comfun|)(argc-2|
|000019c0| 2c 26 61 72 67 76 5b 32 | 5d 29 3b 0d 0a 20 20 66 |,&argv[2|]);.. f|
|000019d0| 70 72 69 6e 74 66 28 73 | 74 64 6f 75 74 2c 22 5c |printf(s|tdout,"\|
|000019e0| 6e 22 29 3b 0d 0a 20 20 | 65 78 69 74 28 30 29 3b |n");.. |exit(0);|
|000019f0| 0d 0a 7d 0d 0a 0c 0d 0a | 2f 2a 20 63 6f 6d 6d 61 |..}.....|/* comma|
|00001a00| 6e 64 20 70 61 72 73 69 | 6e 67 20 73 75 62 72 6f |nd parsi|ng subro|
|00001a10| 75 74 69 6e 65 73 20 2a | 2f 0d 0a 0d 0a 6e 65 65 |utines *|/....nee|
|00001a20| 64 5f 6d 6f 64 65 28 29 | 0d 0a 7b 20 69 66 28 6d |d_mode()|..{ if(m|
|00001a30| 6f 64 65 20 3d 3d 20 27 | 75 27 29 0d 0a 20 20 20 |ode == '|u').. |
|00001a40| 20 71 75 69 74 28 31 2c | 22 5c 6e 63 70 6d 75 74 | quit(1,|"\ncpmut|
|00001a50| 6c 3a 20 6d 6f 64 65 20 | 74 28 65 78 74 29 20 6f |l: mode |t(ext) o|
|00001a60| 72 20 62 28 69 6e 61 72 | 79 29 20 6d 75 73 74 20 |r b(inar|y) must |
|00001a70| 62 65 20 73 70 65 63 69 | 66 69 65 64 5c 6e 22 29 |be speci|fied\n")|
|00001a80| 3b 0d 0a 7d 0d 0a 0d 0a | 73 65 74 63 6f 6d 28 66 |;..}....|setcom(f|
|00001a90| 75 6e 29 0d 0a 69 6e 74 | 20 28 2a 66 75 6e 29 28 |un)..int| (*fun)(|
|00001aa0| 29 3b 0d 0a 7b 20 69 66 | 28 63 6f 6d 66 75 6e 20 |);..{ if|(comfun |
|00001ab0| 21 3d 20 30 29 0d 0a 20 | 20 20 20 71 75 69 74 28 |!= 0).. | quit(|
|00001ac0| 31 2c 22 5c 6e 63 70 6d | 75 74 6c 3a 20 6f 6e 6c |1,"\ncpm|utl: onl|
|00001ad0| 79 20 6f 6e 65 20 6f 66 | 20 5b 25 73 5d 20 61 6c |y one of| [%s] al|
|00001ae0| 6c 6f 77 65 64 5c 6e 22 | 2c 20 6d 61 6e 29 3b 0d |lowed\n"|, man);.|
|00001af0| 0a 20 20 63 6f 6d 66 75 | 6e 20 3d 20 66 75 6e 3b |. comfu|n = fun;|
|00001b00| 0d 0a 7d 0d 0a 0d 0a 68 | 65 6c 70 28 29 0d 0a 7b |..}....h|elp()..{|
|00001b10| 20 66 70 72 69 6e 74 66 | 28 73 74 64 6f 75 74 2c | fprintf|(stdout,|
|00001b20| 22 63 6f 6d 6d 61 6e 64 | 73 3a 5c 6e 22 29 3b 0d |"command|s:\n");.|
|00001b30| 0a 20 20 66 70 72 69 6e | 74 66 28 73 74 64 6f 75 |. fprin|tf(stdou|
|00001b40| 74 2c 22 20 6c 20 61 66 | 6e 20 20 20 20 20 20 20 |t," l af|n |
|00001b50| 20 20 20 20 20 20 20 20 | 20 20 20 6c 69 73 74 20 | | list |
|00001b60| 20 66 69 6c 65 73 20 6d | 61 74 63 68 69 6e 67 20 | files m|atching |
|00001b70| 61 66 6e 5c 6e 22 29 3b | 0d 0a 20 20 66 70 72 69 |afn\n");|.. fpri|
|00001b80| 6e 74 66 28 73 74 64 6f | 75 74 2c 22 20 67 20 61 |ntf(stdo|ut," g a|
|00001b90| 66 6e 20 5b 75 6e 69 78 | 5f 70 72 65 66 69 78 5d |fn [unix|_prefix]|
|00001ba0| 20 20 20 20 67 65 74 20 | 66 69 6c 65 73 20 6d 61 | get |files ma|
|00001bb0| 74 63 68 69 6e 67 20 61 | 66 6e 5c 6e 22 29 3b 0d |tching a|fn\n");.|
|00001bc0| 0a 20 20 66 70 72 69 6e | 74 66 28 73 74 64 6f 75 |. fprin|tf(stdou|
|00001bd0| 74 2c 22 20 70 20 75 66 | 6e 20 75 6e 69 78 5f 66 |t," p uf|n unix_f|
|00001be0| 69 6c 65 5f 6e 61 6d 65 | 20 20 20 70 75 74 20 61 |ile_name| put a|
|00001bf0| 20 66 69 6c 65 20 74 6f | 20 66 6c 6f 70 70 79 5c | file to| floppy\|
|00001c00| 6e 22 29 3b 0d 0a 20 20 | 66 70 72 69 6e 74 66 28 |n");.. |fprintf(|
|00001c10| 73 74 64 6f 75 74 2c 22 | 20 70 20 27 2a 27 20 75 |stdout,"| p '*' u|
|00001c20| 6e 69 78 5f 66 69 6c 65 | 73 20 20 20 20 20 20 20 |nix_file|s |
|00001c30| 70 75 74 20 61 20 62 75 | 6e 63 68 20 6f 66 20 66 |put a bu|nch of f|
|00001c40| 69 6c 65 73 5c 6e 22 29 | 3b 0d 0a 20 20 66 70 72 |iles\n")|;.. fpr|
|00001c50| 69 6e 74 66 28 73 74 64 | 6f 75 74 2c 22 20 6e 20 |intf(std|out," n |
|00001c60| 61 66 6e 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |afn | |
|00001c70| 20 20 20 20 20 6e 75 6b | 65 20 2d 20 64 65 6c 65 | nuk|e - dele|
|00001c80| 74 65 20 6d 61 74 63 68 | 69 6e 67 20 66 69 6c 65 |te match|ing file|
|00001c90| 73 5c 6e 22 29 3b 0d 0a | 20 20 66 70 72 69 6e 74 |s\n");..| fprint|
|00001ca0| 66 28 73 74 64 6f 75 74 | 2c 22 20 63 20 20 20 20 |f(stdout|," c |
|00001cb0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001cc0| 20 20 63 72 65 61 74 65 | 20 61 20 6e 65 77 20 66 | create| a new f|
|00001cd0| 69 6c 65 20 73 79 73 74 | 65 6d 5c 6e 22 29 3b 0d |ile syst|em\n");.|
|00001ce0| 0a 20 20 66 70 72 69 6e | 74 66 28 73 74 64 6f 75 |. fprin|tf(stdou|
|00001cf0| 74 2c 22 5c 6e 6f 70 74 | 69 6f 6e 73 3a 5c 6e 22 |t,"\nopt|ions:\n"|
|00001d00| 29 3b 0d 0a 20 20 66 70 | 72 69 6e 74 66 28 73 74 |);.. fp|rintf(st|
|00001d10| 64 6f 75 74 2c 22 20 74 | 20 2d 20 74 65 78 74 20 |dout," t| - text |
|00001d20| 6d 6f 64 65 20 20 20 20 | 20 20 20 20 20 20 20 20 |mode | |
|00001d30| 20 62 20 2d 20 62 69 6e | 61 72 79 20 6d 6f 64 65 | b - bin|ary mode|
|00001d40| 5c 6e 22 29 3b 0d 0a 20 | 20 66 70 72 69 6e 74 66 |\n");.. | fprintf|
|00001d50| 28 73 74 64 6f 75 74 2c | 22 20 69 20 2d 20 64 6f |(stdout,|" i - do|
|00001d60| 6e 27 74 20 64 6f 20 69 | 6e 74 65 72 6c 65 61 76 |n't do i|nterleav|
|00001d70| 69 6e 67 20 75 20 2d 20 | 75 73 65 72 20 6e 75 6d |ing u - |user num|
|00001d80| 62 65 72 5c 6e 22 29 3b | 0d 0a 20 20 66 70 72 69 |ber\n");|.. fpri|
|00001d90| 6e 74 66 28 73 74 64 6f | 75 74 2c 22 20 61 20 2d |ntf(stdo|ut," a -|
|00001da0| 20 61 62 73 6f 6c 75 74 | 65 20 64 69 73 6b 20 61 | absolut|e disk a|
|00001db0| 64 64 72 65 73 73 2c 20 | 73 74 61 72 74 2e 6c 65 |ddress, |start.le|
|00001dc0| 6e 67 74 68 20 65 2e 67 | 2e 20 30 2e 32 30 30 32 |ngth e.g|. 0.2002|
|00001dd0| 5c 6e 22 29 3b 0d 0a 20 | 20 66 70 72 69 6e 74 66 |\n");.. | fprintf|
|00001de0| 28 73 74 64 6f 75 74 2c | 22 20 66 20 2d 20 75 73 |(stdout,|" f - us|
|00001df0| 65 20 74 68 65 20 6e 61 | 6d 65 64 20 75 6e 69 78 |e the na|med unix|
|00001e00| 20 66 69 6c 65 20 69 6e | 73 74 65 61 64 20 6f 66 | file in|stead of|
|00001e10| 20 2f 64 65 76 2f 66 6c | 6f 70 70 79 5c 6e 22 29 | /dev/fl|oppy\n")|
|00001e20| 3b 0d 0a 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 |;.. fpr|intf(std|
|00001e30| 6f 75 74 2c 22 20 6f 20 | 2d 20 6f 76 65 72 72 69 |out," o |- overri|
|00001e40| 64 65 2c 20 61 6c 6c 6f | 77 73 20 77 72 69 74 65 |de, allo|ws write|
|00001e50| 73 20 74 6f 20 61 20 64 | 61 6d 61 67 65 64 20 64 |s to a d|amaged d|
|00001e60| 69 72 65 63 74 6f 72 69 | 65 73 5c 6e 22 29 3b 0d |irectori|es\n");.|
|00001e70| 0a 20 20 66 70 72 69 6e | 74 66 28 73 74 64 6f 75 |. fprin|tf(stdou|
|00001e80| 74 2c 22 5c 6e 74 65 72 | 6d 73 3a 5c 6e 22 29 3b |t,"\nter|ms:\n");|
|00001e90| 0d 0a 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 6f |.. fpri|ntf(stdo|
|00001ea0| 75 74 2c 22 20 61 66 6e | 20 2d 20 61 6d 62 69 67 |ut," afn| - ambig|
|00001eb0| 75 6f 75 73 20 63 70 6d | 20 66 69 6c 65 20 6e 61 |uous cpm| file na|
|00001ec0| 6d 65 2c 20 65 2e 67 2e | 20 2a 2e 61 73 6d 20 6f |me, e.g.| *.asm o|
|00001ed0| 72 20 66 6f 6f 2a 5c 6e | 22 29 3b 0d 0a 20 20 66 |r foo*\n|");.. f|
|00001ee0| 70 72 69 6e 74 66 28 73 | 74 64 6f 75 74 2c 22 20 |printf(s|tdout," |
|00001ef0| 20 20 2a 2a 2a 20 64 6f | 6e 27 74 20 66 6f 72 67 | *** do|n't forg|
|00001f00| 65 74 20 74 6f 20 71 75 | 6f 74 65 20 61 66 6e 73 |et to qu|ote afns|
|00001f10| 20 74 6f 20 74 68 65 20 | 73 68 65 6c 6c 2c 20 27 | to the |shell, '|
|00001f20| 2a 2e 61 73 6d 27 5c 6e | 22 29 3b 0d 0a 20 20 66 |*.asm'\n|");.. f|
|00001f30| 70 72 69 6e 74 66 28 73 | 74 64 6f 75 74 2c 22 20 |printf(s|tdout," |
|00001f40| 75 66 6e 20 2d 20 75 6e | 61 6d 62 69 67 75 6f 75 |ufn - un|ambiguou|
|00001f50| 73 20 66 69 6c 65 20 6e | 61 6d 65 5c 6e 22 29 3b |s file n|ame\n");|
|00001f60| 0d 0a 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 6f |.. fpri|ntf(stdo|
|00001f70| 75 74 2c 22 20 69 6e 74 | 65 72 6c 65 61 76 69 6e |ut," int|erleavin|
|00001f80| 67 20 2d 20 74 72 61 63 | 6b 73 20 32 2d 37 36 20 |g - trac|ks 2-76 |
|00001f90| 61 72 65 20 6e 6f 72 6d | 61 6c 79 20 69 6e 74 65 |are norm|aly inte|
|00001fa0| 72 6c 65 61 76 65 64 5c | 6e 22 29 3b 0d 0a 20 20 |rleaved\|n");.. |
|00001fb0| 66 70 72 69 6e 74 66 28 | 73 74 64 6f 75 74 2c 22 |fprintf(|stdout,"|
|00001fc0| 20 20 20 77 69 74 68 20 | 61 20 73 6b 65 77 20 6f | with |a skew o|
|00001fd0| 66 20 36 20 73 65 63 74 | 6f 72 73 5c 6e 22 29 3b |f 6 sect|ors\n");|
|00001fe0| 0d 0a 20 20 65 78 69 74 | 28 31 29 3b 0d 0a 7d 0d |.. exit|(1);..}.|
|00001ff0| 0a 0c 0d 0a 2f 2a 20 63 | 72 65 61 74 65 20 61 20 |..../* c|reate a |
|00002000| 6e 65 77 20 66 69 6c 65 | 20 73 79 73 74 65 6d 20 |new file| system |
|00002010| 2a 2f 0d 0a 63 63 6d 64 | 28 29 0d 0a 7b 20 69 6e |*/..ccmd|()..{ in|
|00002020| 74 20 69 3b 0d 0a 20 20 | 66 70 72 69 6e 74 66 28 |t i;.. |fprintf(|
|00002030| 73 74 64 6f 75 74 2c 22 | 69 6e 69 74 69 61 6c 69 |stdout,"|initiali|
|00002040| 7a 69 6e 67 20 66 69 6c | 65 20 73 79 73 74 65 6d |zing fil|e system|
|00002050| 20 22 29 3b 0d 0a 20 20 | 66 66 6c 75 73 68 28 73 | ");.. |fflush(s|
|00002060| 74 64 6f 75 74 29 3b 0d | 0a 20 20 6c 72 65 61 64 |tdout);.|. lread|
|00002070| 28 43 50 5f 42 41 53 45 | 2c 43 50 5f 44 49 52 53 |(CP_BASE|,CP_DIRS|
|00002080| 45 43 2c 63 70 5f 64 69 | 72 29 3b 09 2f 2a 20 72 |EC,cp_di|r);./* r|
|00002090| 65 61 64 20 69 6e 20 74 | 68 65 20 64 69 72 65 63 |ead in t|he direc|
|000020a0| 74 6f 72 79 20 2a 2f 0d | 0a 09 09 09 09 09 2f 2a |tory */.|....../*|
|000020b0| 20 73 6f 20 77 65 20 63 | 61 6e 20 7a 61 70 20 64 | so we c|an zap d|
|000020c0| 69 73 6b 20 74 6f 20 75 | 6e 64 6f 20 74 68 69 73 |isk to u|ndo this|
|000020d0| 20 2a 2f 0d 0a 20 20 66 | 6f 72 28 69 3d 30 3b 20 | */.. f|or(i=0; |
|000020e0| 69 3c 43 50 5f 4e 55 4d | 44 49 52 3b 20 69 2b 2b |i<CP_NUM|DIR; i++|
|000020f0| 29 0d 0a 20 20 20 20 63 | 70 5f 64 69 72 5b 69 5d |).. c|p_dir[i]|
|00002100| 2e 63 70 5f 65 74 20 3d | 20 44 45 4c 46 3b 09 09 |.cp_et =| DELF;..|
|00002110| 2f 2a 20 73 65 74 20 61 | 6c 6c 20 74 68 65 20 65 |/* set a|ll the e|
|00002120| 78 74 65 6e 74 73 20 64 | 65 6c 65 74 65 64 20 2a |xtents d|eleted *|
|00002130| 2f 0d 0a 20 20 6c 77 72 | 69 74 65 28 43 50 5f 42 |/.. lwr|ite(CP_B|
|00002140| 41 53 45 2c 43 50 5f 44 | 49 52 53 45 43 2c 63 70 |ASE,CP_D|IRSEC,cp|
|00002150| 5f 64 69 72 29 3b 09 2f | 2a 20 77 72 69 74 65 20 |_dir);./|* write |
|00002160| 69 74 20 62 61 63 6b 20 | 2a 2f 0d 0a 20 20 66 70 |it back |*/.. fp|
|00002170| 72 69 6e 74 66 28 73 74 | 64 6f 75 74 2c 22 20 5b |rintf(st|dout," [|
|00002180| 6f 6b 5d 5c 6e 22 29 3b | 0d 0a 7d 20 0d 0a 0d 0a |ok]\n");|..} ....|
|00002190| 2f 2a 20 67 65 74 20 73 | 6f 6d 65 20 66 69 6c 65 |/* get s|ome file|
|000021a0| 73 20 66 72 6f 6d 20 74 | 68 65 20 66 6c 6f 70 70 |s from t|he flopp|
|000021b0| 79 20 2a 2f 0d 0a 67 63 | 6d 64 28 61 72 67 63 2c |y */..gc|md(argc,|
|000021c0| 61 72 67 76 29 0d 0a 20 | 63 68 61 72 20 2a 61 72 |argv).. |char *ar|
|000021d0| 67 76 5b 5d 3b 0d 0a 20 | 69 6e 74 20 61 72 67 63 |gv[];.. |int argc|
|000021e0| 3b 0d 0a 7b 20 63 68 61 | 72 20 2a 75 6e 69 78 5f |;..{ cha|r *unix_|
|000021f0| 6e 61 6d 65 2c 2a 63 70 | 6d 5f 6e 61 6d 65 3b 0d |name,*cp|m_name;.|
|00002200| 0a 20 20 69 6e 74 20 69 | 6e 64 65 78 2c 63 75 72 |. int i|ndex,cur|
|00002210| 3b 0d 0a 20 20 73 74 72 | 75 63 74 20 63 70 5f 64 |;.. str|uct cp_d|
|00002220| 69 72 5f 65 78 74 20 77 | 69 6c 64 3b 0d 0a 20 20 |ir_ext w|ild;.. |
|00002230| 63 70 6d 5f 6e 61 6d 65 | 20 3d 20 61 72 67 76 5b |cpm_name| = argv[|
|00002240| 30 5d 3b 0d 0a 20 20 69 | 66 20 28 61 72 67 63 20 |0];.. i|f (argc |
|00002250| 3e 20 32 29 20 74 6f 6f | 6d 61 6e 79 28 29 3b 0d |> 2) too|many();.|
|00002260| 0a 20 20 69 66 28 66 6c | 61 67 28 27 61 27 29 29 |. if(fl|ag('a'))|
|00002270| 20 7b 09 09 09 2f 2a 20 | 77 61 6e 74 20 61 62 73 | {.../* |want abs|
|00002280| 6f 6c 75 74 65 20 64 69 | 73 6b 20 61 64 64 72 65 |olute di|sk addre|
|00002290| 73 73 65 73 3f 20 2a 2f | 0d 0a 20 20 20 20 69 66 |sses? */|.. if|
|000022a0| 28 61 72 67 63 20 3c 20 | 32 29 20 74 6f 6f 66 65 |(argc < |2) toofe|
|000022b0| 77 28 29 3b 0d 0a 20 20 | 20 20 61 62 73 5f 72 65 |w();.. | abs_re|
|000022c0| 61 64 28 63 70 6d 5f 6e | 61 6d 65 2c 61 72 67 76 |ad(cpm_n|ame,argv|
|000022d0| 5b 31 5d 29 3b 0d 0a 20 | 20 20 20 72 65 74 75 72 |[1]);.. | retur|
|000022e0| 6e 3b 0d 0a 20 20 20 20 | 7d 0d 0a 0d 0a 20 20 6e |n;.. |}.... n|
|000022f0| 65 65 64 5f 6d 6f 64 65 | 28 29 3b 09 09 09 09 2f |eed_mode|();..../|
|00002300| 2a 20 6e 65 65 64 20 68 | 61 76 65 20 67 69 76 65 |* need h|ave give|
|00002310| 6e 20 61 20 66 69 6c 65 | 20 6d 6f 64 65 20 2a 2f |n a file| mode */|
|00002320| 0d 0a 20 20 69 66 20 28 | 61 72 67 63 20 3d 3d 20 |.. if (|argc == |
|00002330| 31 29 0d 0a 20 20 20 20 | 75 6e 69 78 5f 6e 61 6d |1).. |unix_nam|
|00002340| 65 20 3d 20 22 22 3b 09 | 09 09 2f 2a 20 6e 6f 20 |e = "";.|../* no |
|00002350| 75 6e 69 78 20 70 72 65 | 66 69 78 20 2a 2f 0d 0a |unix pre|fix */..|
|00002360| 20 20 65 6c 73 65 0d 0a | 20 20 20 20 75 6e 69 78 | else..| unix|
|00002370| 5f 6e 61 6d 65 20 3d 20 | 61 72 67 76 5b 31 5d 3b |_name = |argv[1];|
|00002380| 09 09 2f 2a 20 75 73 65 | 20 74 68 69 73 20 75 6e |../* use| this un|
|00002390| 69 78 20 70 72 65 66 69 | 78 20 2a 2f 0d 0a 20 20 |ix prefi|x */.. |
|000023a0| 70 61 72 73 65 5f 65 78 | 74 28 26 77 69 6c 64 2c |parse_ex|t(&wild,|
|000023b0| 63 70 6d 5f 6e 61 6d 65 | 29 3b 0d 0a 20 20 67 65 |cpm_name|);.. ge|
|000023c0| 74 64 69 72 28 29 3b 09 | 09 09 09 2f 2a 20 72 65 |tdir();.|.../* re|
|000023d0| 61 64 20 74 68 65 20 64 | 69 72 65 63 74 6f 72 79 |ad the d|irectory|
|000023e0| 20 2a 2f 0d 0a 20 20 63 | 75 72 20 3d 20 2d 31 3b | */.. c|ur = -1;|
|000023f0| 09 09 09 09 2f 2a 20 73 | 74 61 72 74 20 6c 6f 6f |..../* s|tart loo|
|00002400| 6b 69 6e 67 20 68 65 72 | 65 20 2a 2f 0d 0a 20 20 |king her|e */.. |
|00002410| 77 68 69 6c 65 28 28 63 | 75 72 20 3d 20 6c 6f 6f |while((c|ur = loo|
|00002420| 6b 75 70 28 26 77 69 6c | 64 2c 63 75 72 29 29 20 |kup(&wil|d,cur)) |
|00002430| 21 3d 20 2d 31 29 20 2f | 2a 20 66 69 6e 64 20 74 |!= -1) /|* find t|
|00002440| 68 65 20 6e 65 78 74 20 | 6d 61 74 63 68 69 6e 67 |he next |matching|
|00002450| 20 66 69 6c 65 20 2a 2f | 0d 0a 20 20 20 20 67 65 | file */|.. ge|
|00002460| 74 66 69 6c 65 28 63 75 | 72 2c 75 6e 69 78 5f 6e |tfile(cu|r,unix_n|
|00002470| 61 6d 65 29 3b 0d 0a 7d | 0d 0a 0c 0d 0a 2f 2a 20 |ame);..}|...../* |
|00002480| 70 63 6d 64 20 2d 20 70 | 75 74 20 66 69 6c 65 73 |pcmd - p|ut files|
|00002490| 20 6f 6e 20 74 68 65 20 | 66 6c 6f 70 70 79 20 2a | on the |floppy *|
|000024a0| 2f 0d 0a 70 63 6d 64 28 | 61 72 67 63 2c 61 72 67 |/..pcmd(|argc,arg|
|000024b0| 76 29 0d 0a 20 63 68 61 | 72 20 2a 61 72 67 76 5b |v).. cha|r *argv[|
|000024c0| 5d 3b 0d 0a 20 69 6e 74 | 20 61 72 67 63 3b 0d 0a |];.. int| argc;..|
|000024d0| 7b 20 69 6e 74 20 69 3b | 0d 0a 20 20 63 68 61 72 |{ int i;|.. char|
|000024e0| 20 2a 75 6e 61 6d 65 3b | 0d 0a 20 20 69 66 28 61 | *uname;|.. if(a|
|000024f0| 72 67 63 3c 31 29 20 74 | 6f 6f 66 65 77 28 29 3b |rgc<1) t|oofew();|
|00002500| 0d 0a 20 20 69 66 28 66 | 6c 61 67 28 27 61 27 29 |.. if(f|lag('a')|
|00002510| 29 20 7b 09 09 09 2f 2a | 20 77 61 6e 74 20 61 62 |) {.../*| want ab|
|00002520| 73 6f 6c 75 74 65 20 64 | 69 73 6b 20 61 64 64 72 |solute d|isk addr|
|00002530| 65 73 73 65 73 3f 20 2a | 2f 0d 0a 20 20 20 20 69 |esses? *|/.. i|
|00002540| 66 28 61 72 67 63 3c 32 | 29 20 74 6f 6f 66 65 77 |f(argc<2|) toofew|
|00002550| 28 29 3b 0d 0a 20 20 20 | 20 69 66 28 61 72 67 63 |();.. | if(argc|
|00002560| 20 3e 20 32 29 20 74 6f | 6f 6d 61 6e 79 28 29 3b | > 2) to|omany();|
|00002570| 0d 0a 20 20 20 20 61 62 | 73 5f 77 72 69 74 65 28 |.. ab|s_write(|
|00002580| 61 72 67 76 5b 30 5d 2c | 61 72 67 76 5b 31 5d 29 |argv[0],|argv[1])|
|00002590| 3b 0d 0a 20 20 20 20 72 | 65 74 75 72 6e 3b 0d 0a |;.. r|eturn;..|
|000025a0| 20 20 20 20 7d 0d 0a 0d | 0a 20 20 6e 65 65 64 5f | }...|. need_|
|000025b0| 6d 6f 64 65 28 29 3b 0d | 0a 20 20 67 65 74 64 69 |mode();.|. getdi|
|000025c0| 72 28 29 3b 0d 0a 20 20 | 69 66 20 28 61 72 67 63 |r();.. |if (argc|
|000025d0| 20 3d 3d 20 31 29 09 09 | 09 09 2f 2a 20 6f 6e 6c | == 1)..|../* onl|
|000025e0| 79 20 6f 6e 65 20 61 72 | 67 3f 20 2a 2f 0d 0a 20 |y one ar|g? */.. |
|000025f0| 20 20 20 77 72 69 74 65 | 66 69 6c 65 28 61 72 67 | write|file(arg|
|00002600| 76 5b 30 5d 2c 61 72 67 | 76 5b 30 5d 29 3b 0d 0a |v[0],arg|v[0]);..|
|00002610| 20 20 65 6c 73 65 0d 0a | 20 20 20 20 66 6f 72 28 | else..| for(|
|00002620| 69 3d 31 3b 20 69 3c 61 | 72 67 63 3b 20 69 2b 2b |i=1; i<a|rgc; i++|
|00002630| 29 09 09 2f 2a 20 77 72 | 69 74 65 20 6f 75 74 20 |)../* wr|ite out |
|00002640| 74 68 65 20 75 6e 69 78 | 20 66 69 6c 65 73 20 2a |the unix| files *|
|00002650| 2f 0d 0a 20 20 20 20 20 | 20 77 72 69 74 65 66 69 |/.. | writefi|
|00002660| 6c 65 28 61 72 67 76 5b | 30 5d 2c 61 72 67 76 5b |le(argv[|0],argv[|
|00002670| 69 5d 29 3b 0d 0a 7d 0d | 0a 0d 0a 2f 2a 20 77 72 |i]);..}.|.../* wr|
|00002680| 69 74 65 20 61 20 62 75 | 6e 63 68 20 6f 66 20 73 |ite a bu|nch of s|
|00002690| 65 63 74 6f 72 73 20 69 | 6e 74 6f 20 61 20 66 69 |ectors i|nto a fi|
|000026a0| 6c 65 20 2a 2f 0d 0a 61 | 62 73 5f 77 72 69 74 65 |le */..a|bs_write|
|000026b0| 28 77 68 65 72 65 74 6f | 2c 75 6e 69 78 5f 6e 61 |(whereto|,unix_na|
|000026c0| 6d 65 29 0d 0a 7b 20 69 | 6e 74 20 73 74 61 72 74 |me)..{ i|nt start|
|000026d0| 2c 73 69 7a 65 2c 73 74 | 61 74 75 73 3b 0d 0a 20 |,size,st|atus;.. |
|000026e0| 20 63 68 61 72 20 62 75 | 66 5b 53 45 43 5d 3b 0d | char bu|f[SEC];.|
|000026f0| 0a 20 20 46 49 4c 45 20 | 2a 69 66 69 6c 65 3b 0d |. FILE |*ifile;.|
|00002700| 0a 20 20 69 66 28 73 73 | 63 61 6e 66 28 77 68 65 |. if(ss|canf(whe|
|00002710| 72 65 74 6f 2c 22 25 64 | 2e 25 64 22 2c 26 73 74 |reto,"%d|.%d",&st|
|00002720| 61 72 74 2c 26 73 69 7a | 65 29 20 21 3d 20 32 29 |art,&siz|e) != 2)|
|00002730| 0d 0a 20 20 20 20 71 75 | 69 74 28 31 2c 22 5c 6e |.. qu|it(1,"\n|
|00002740| 63 70 6d 75 74 6c 3a 63 | 61 6e 27 74 20 70 61 72 |cpmutl:c|an't par|
|00002750| 73 65 20 73 74 61 72 74 | 2e 73 69 7a 65 20 61 64 |se start|.size ad|
|00002760| 64 72 65 73 73 5c 6e 22 | 29 3b 0d 0a 20 20 69 66 |dress\n"|);.. if|
|00002770| 20 28 28 69 66 69 6c 65 | 20 3d 20 66 6f 70 65 6e | ((ifile| = fopen|
|00002780| 28 75 6e 69 78 5f 6e 61 | 6d 65 2c 22 72 22 29 29 |(unix_na|me,"r"))|
|00002790| 20 3d 3d 20 4e 55 4c 4c | 29 20 2f 2a 20 74 72 79 | == NULL|) /* try|
|000027a0| 20 74 6f 20 6f 70 65 6e | 20 74 68 65 20 75 6e 69 | to open| the uni|
|000027b0| 78 20 66 69 6c 65 20 2a | 2f 0d 0a 20 20 20 20 71 |x file *|/.. q|
|000027c0| 75 69 74 28 31 2c 22 5c | 6e 63 70 6d 75 74 6c 3a |uit(1,"\|ncpmutl:|
|000027d0| 63 61 6e 27 74 20 6f 70 | 65 6e 20 75 6e 69 78 20 |can't op|en unix |
|000027e0| 66 69 6c 65 20 25 73 20 | 66 6f 72 20 72 65 61 64 |file %s |for read|
|000027f0| 5c 6e 22 2c 75 6e 69 78 | 5f 6e 61 6d 65 29 3b 0d |\n",unix|_name);.|
|00002800| 0a 20 20 6d 61 72 6b 65 | 72 72 73 28 29 3b 0d 0a |. marke|rrs();..|
|00002810| 20 20 66 70 72 69 6e 74 | 66 28 73 74 64 6f 75 74 | fprint|f(stdout|
|00002820| 2c 22 77 72 69 74 69 6e | 67 20 25 73 20 3d 3e 20 |,"writin|g %s => |
|00002830| 73 65 63 74 6f 72 20 25 | 64 2c 20 6c 65 6e 67 74 |sector %|d, lengt|
|00002840| 68 20 25 64 20 22 2c 75 | 6e 69 78 5f 6e 61 6d 65 |h %d ",u|nix_name|
|00002850| 2c 73 74 61 72 74 2c 73 | 69 7a 65 29 3b 0d 0a 20 |,start,s|ize);.. |
|00002860| 20 66 66 6c 75 73 68 28 | 73 74 64 6f 75 74 29 3b | fflush(|stdout);|
|00002870| 0d 0a 20 20 77 68 69 6c | 65 28 73 69 7a 65 2d 2d |.. whil|e(size--|
|00002880| 29 20 7b 0d 0a 20 20 20 | 20 69 66 28 28 73 74 61 |) {.. | if((sta|
|00002890| 74 75 73 20 3d 20 66 72 | 65 61 64 28 62 75 66 2c |tus = fr|ead(buf,|
|000028a0| 31 2c 53 45 43 2c 69 66 | 69 6c 65 29 29 20 21 3d |1,SEC,if|ile)) !=|
|000028b0| 20 53 45 43 29 20 2f 2a | 20 72 65 61 64 20 61 20 | SEC) /*| read a |
|000028c0| 73 65 63 74 6f 72 20 66 | 72 6f 6d 20 75 6e 69 78 |sector f|rom unix|
|000028d0| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 71 75 69 74 28 | */.. | quit(|
|000028e0| 31 2c 22 5c 6e 63 70 6d | 75 74 6c 3a 72 65 61 64 |1,"\ncpm|utl:read|
|000028f0| 20 65 72 72 6f 72 20 6f | 6e 20 75 6e 69 78 20 66 | error o|n unix f|
|00002900| 69 6c 65 20 25 73 5c 6e | 22 2c 75 6e 69 78 5f 6e |ile %s\n|",unix_n|
|00002910| 61 6d 65 29 3b 0d 0a 20 | 20 20 20 6c 77 72 69 74 |ame);.. | lwrit|
|00002920| 65 28 73 74 61 72 74 2c | 31 2c 62 75 66 29 3b 0d |e(start,|1,buf);.|
|00002930| 0a 20 20 20 20 73 74 61 | 72 74 2b 2b 3b 09 09 09 |. sta|rt++;...|
|00002940| 09 2f 2a 20 61 64 76 61 | 6e 63 65 20 74 6f 20 74 |./* adva|nce to t|
|00002950| 68 65 20 6e 65 78 74 20 | 73 65 63 74 6f 72 20 2a |he next |sector *|
|00002960| 2f 0d 0a 20 20 20 20 7d | 0d 0a 20 72 65 70 6f 72 |/.. }|.. repor|
|00002970| 74 65 72 72 73 28 29 3b | 0d 0a 20 66 63 6c 6f 73 |terrs();|.. fclos|
|00002980| 65 28 69 66 69 6c 65 29 | 3b 0d 0a 7d 0d 0a 0c 0d |e(ifile)|;..}....|
|00002990| 0a 2f 2a 20 6e 64 63 6d | 20 2d 20 6e 75 6b 65 20 |./* ndcm| - nuke |
|000029a0| 73 6f 6d 65 20 66 69 6c | 65 73 20 2a 2f 0d 0a 6e |some fil|es */..n|
|000029b0| 63 6d 64 28 61 72 67 63 | 2c 61 72 67 76 29 0d 0a |cmd(argc|,argv)..|
|000029c0| 63 68 61 72 20 2a 61 72 | 67 76 5b 5d 3b 0d 0a 69 |char *ar|gv[];..i|
|000029d0| 6e 74 20 61 72 67 63 3b | 0d 0a 7b 20 73 74 72 75 |nt argc;|..{ stru|
|000029e0| 63 74 20 63 70 5f 64 69 | 72 5f 65 78 74 20 64 65 |ct cp_di|r_ext de|
|000029f0| 6c 5f 65 78 74 3b 0d 0a | 20 20 69 66 28 61 72 67 |l_ext;..| if(arg|
|00002a00| 63 20 3c 20 31 29 20 74 | 6f 6f 66 65 77 28 29 3b |c < 1) t|oofew();|
|00002a10| 0d 0a 20 20 69 66 28 61 | 72 67 63 20 3e 20 32 29 |.. if(a|rgc > 2)|
|00002a20| 20 74 6f 6f 6d 61 6e 79 | 28 29 3b 0d 0a 20 20 67 | toomany|();.. g|
|00002a30| 65 74 64 69 72 28 29 3b | 09 09 09 09 2f 2a 20 67 |etdir();|..../* g|
|00002a40| 65 74 20 74 68 65 20 64 | 69 72 65 63 74 6f 72 79 |et the d|irectory|
|00002a50| 20 2a 2f 0d 0a 20 20 70 | 61 72 73 65 5f 65 78 74 | */.. p|arse_ext|
|00002a60| 28 26 64 65 6c 5f 65 78 | 74 2c 61 72 67 76 5b 30 |(&del_ex|t,argv[0|
|00002a70| 5d 29 3b 09 09 2f 2a 20 | 70 61 72 73 65 20 74 68 |]);../* |parse th|
|00002a80| 65 20 66 69 6c 65 20 73 | 70 65 63 20 74 6f 20 64 |e file s|pec to d|
|00002a90| 65 6c 65 74 65 20 2a 2f | 0d 0a 20 20 6e 75 6b 65 |elete */|.. nuke|
|00002aa0| 5f 65 78 74 28 26 64 65 | 6c 5f 65 78 74 29 3b 09 |_ext(&de|l_ext);.|
|00002ab0| 09 09 2f 2a 20 64 65 6c | 65 74 65 20 6d 61 74 63 |../* del|ete matc|
|00002ac0| 68 69 6e 67 20 65 78 74 | 65 6e 74 73 20 2a 2f 0d |hing ext|ents */.|
|00002ad0| 0a 20 20 70 75 74 64 69 | 72 28 29 3b 0d 0a 7d 0d |. putdi|r();..}.|
|00002ae0| 0a 0d 0a 2f 2a 20 64 65 | 6c 65 74 65 20 6d 61 74 |.../* de|lete mat|
|00002af0| 63 68 69 6e 67 20 65 6e | 74 72 69 65 73 20 2a 2f |ching en|tries */|
|00002b00| 0d 0a 6e 75 6b 65 5f 65 | 78 74 28 6e 75 6b 5f 6d |..nuke_e|xt(nuk_m|
|00002b10| 65 29 0d 0a 73 74 72 75 | 63 74 20 63 70 5f 64 69 |e)..stru|ct cp_di|
|00002b20| 72 5f 65 78 74 20 2a 6e | 75 6b 5f 6d 65 3b 0d 0a |r_ext *n|uk_me;..|
|00002b30| 7b 20 69 6e 74 20 69 3b | 0d 0a 20 20 66 6f 72 28 |{ int i;|.. for(|
|00002b40| 69 3d 30 3b 20 69 3c 43 | 50 5f 4e 55 4d 44 49 52 |i=0; i<C|P_NUMDIR|
|00002b50| 3b 20 69 2b 2b 29 0d 0a | 20 20 20 20 69 66 28 28 |; i++)..| if((|
|00002b60| 63 70 5f 64 69 72 5b 69 | 5d 2e 63 70 5f 65 74 20 |cp_dir[i|].cp_et |
|00002b70| 21 3d 20 44 45 4c 46 29 | 20 26 26 0d 0a 20 20 20 |!= DELF)| &&.. |
|00002b80| 20 20 20 20 6d 61 74 63 | 68 5f 65 78 74 28 6e 75 | matc|h_ext(nu|
|00002b90| 6b 5f 6d 65 2c 26 63 70 | 5f 64 69 72 5b 69 5d 29 |k_me,&cp|_dir[i])|
|00002ba0| 29 09 2f 2a 20 64 6f 65 | 73 20 74 68 69 73 20 65 |)./* doe|s this e|
|00002bb0| 78 74 65 6e 74 20 6d 61 | 74 63 68 3f 20 2a 2f 0d |xtent ma|tch? */.|
|00002bc0| 0a 20 20 20 20 20 20 66 | 6c 75 73 68 5f 65 78 74 |. f|lush_ext|
|00002bd0| 28 69 29 3b 09 09 09 2f | 2a 20 79 65 73 20 66 6c |(i);.../|* yes fl|
|00002be0| 75 73 68 20 69 74 20 2a | 2f 0d 0a 7d 0d 0a 0d 0a |ush it *|/..}....|
|00002bf0| 2f 2a 20 66 6c 75 73 68 | 20 74 68 69 73 20 65 78 |/* flush| this ex|
|00002c00| 74 65 6e 74 20 2a 2f 0d | 0a 66 6c 75 73 68 5f 65 |tent */.|.flush_e|
|00002c10| 78 74 28 69 6e 64 65 78 | 29 0d 0a 7b 20 69 6e 74 |xt(index|)..{ int|
|00002c20| 20 69 2c 77 68 65 72 65 | 3b 0d 0a 20 20 6e 75 6d | i,where|;.. num|
|00002c30| 5f 65 78 74 2d 2d 3b 09 | 09 09 09 2f 2a 20 6f 6e |_ext--;.|.../* on|
|00002c40| 65 20 6c 65 73 73 20 65 | 78 74 65 6e 74 20 65 78 |e less e|xtent ex|
|00002c50| 69 73 74 73 20 2a 2f 0d | 0a 20 20 69 66 28 63 70 |ists */.|. if(cp|
|00002c60| 5f 64 69 72 5b 69 6e 64 | 65 78 5d 2e 63 70 5f 65 |_dir[ind|ex].cp_e|
|00002c70| 78 20 3d 3d 20 30 29 0d | 0a 20 20 20 20 66 70 72 |x == 0).|. fpr|
|00002c80| 69 6e 74 66 28 73 74 64 | 6f 75 74 2c 22 64 65 6c |intf(std|out,"del|
|00002c90| 65 74 69 6e 67 20 66 69 | 6c 65 3a 5b 25 64 5d 25 |eting fi|le:[%d]%|
|00002ca0| 73 5c 6e 22 2c 0d 0a 20 | 20 20 20 20 20 63 70 5f |s\n",.. | cp_|
|00002cb0| 64 69 72 5b 69 6e 64 65 | 78 5d 2e 63 70 5f 65 74 |dir[inde|x].cp_et|
|00002cc0| 2c 63 70 5f 6e 61 6d 65 | 5b 69 6e 64 65 78 5d 29 |,cp_name|[index])|
|00002cd0| 2c 0d 0a 20 20 20 20 6e | 75 6d 5f 66 69 6c 2d 2d |,.. n|um_fil--|
|00002ce0| 3b 09 09 09 09 2f 2a 20 | 6f 6e 65 20 6c 65 73 73 |;..../* |one less|
|00002cf0| 20 66 69 6c 65 20 2a 2f | 0d 0a 20 20 66 6f 72 28 | file */|.. for(|
|00002d00| 69 3d 30 3b 20 69 3c 44 | 4d 3b 20 69 2b 2b 29 09 |i=0; i<D|M; i++).|
|00002d10| 09 09 2f 2a 20 72 65 6c | 65 61 73 65 20 69 74 73 |../* rel|ease its|
|00002d20| 20 64 69 73 6b 20 73 70 | 61 63 65 20 2a 2f 0d 0a | disk sp|ace */..|
|00002d30| 20 20 20 20 69 66 28 28 | 77 68 65 72 65 20 3d 20 | if((|where = |
|00002d40| 63 70 5f 64 69 72 5b 69 | 6e 64 65 78 5d 2e 63 70 |cp_dir[i|ndex].cp|
|00002d50| 5f 64 6d 5b 69 5d 29 20 | 21 3d 20 30 29 20 7b 20 |_dm[i]) |!= 0) { |
|00002d60| 2f 2a 20 74 68 69 73 20 | 63 6c 75 73 74 65 72 20 |/* this |cluster |
|00002d70| 61 6c 6c 6f 63 61 74 65 | 64 3f 20 2a 2f 0d 0a 20 |allocate|d? */.. |
|00002d80| 20 20 20 20 20 69 66 28 | 63 70 5f 62 74 62 5b 77 | if(|cp_btb[w|
|00002d90| 68 65 72 65 5d 20 21 3d | 20 69 6e 64 65 78 29 09 |here] !=| index).|
|00002da0| 2f 2a 20 77 65 20 64 69 | 64 20 68 61 76 65 20 69 |/* we di|d have i|
|00002db0| 74 20 64 69 64 6e 27 74 | 20 77 65 3f 20 2a 2f 0d |t didn't| we? */.|
|00002dc0| 0a 20 20 20 20 20 20 20 | 64 69 72 5f 65 72 72 2b |. |dir_err+|
|00002dd0| 2b 2c 09 09 09 2f 2a 20 | 6e 6f 2c 20 61 6e 20 65 |+,.../* |no, an e|
|00002de0| 72 72 6f 72 20 74 68 65 | 6e 20 2a 2f 0d 0a 20 20 |rror the|n */.. |
|00002df0| 20 20 20 20 20 66 70 72 | 69 6e 74 66 28 73 74 64 | fpr|intf(std|
|00002e00| 65 72 72 2c 22 5c 6e 63 | 70 6d 75 74 6c 3a 63 6c |err,"\nc|pmutl:cl|
|00002e10| 75 73 74 65 72 20 62 65 | 69 6e 67 20 64 65 6c 65 |uster be|ing dele|
|00002e20| 74 65 64 20 69 73 20 6e | 6f 74 20 61 73 73 69 67 |ted is n|ot assig|
|00002e30| 6e 65 64 5c 6e 22 29 3b | 20 0d 0a 20 20 20 20 20 |ned\n");| .. |
|00002e40| 20 63 70 5f 62 74 62 5b | 77 68 65 72 65 5d 20 3d | cp_btb[|where] =|
|00002e50| 20 2d 31 3b 0d 0a 20 20 | 20 20 20 20 64 73 6b 5f | -1;.. | dsk_|
|00002e60| 69 6e 75 73 65 2d 2d 3b | 0d 0a 20 20 20 20 20 20 |inuse--;|.. |
|00002e70| 7d 0d 0a 20 20 65 78 74 | 5f 70 72 65 76 5b 69 6e |}.. ext|_prev[in|
|00002e80| 64 65 78 5d 20 3d 20 2d | 31 3b 09 09 09 2f 2a 20 |dex] = -|1;.../* |
|00002e90| 6e 6f 20 6c 69 6e 6b 73 | 20 74 68 69 73 20 77 61 |no links| this wa|
|00002ea0| 79 20 2a 2f 0d 0a 20 20 | 65 78 74 5f 6e 65 78 74 |y */.. |ext_next|
|00002eb0| 5b 69 6e 64 65 78 5d 20 | 3d 20 2d 31 3b 09 09 09 |[index] |= -1;...|
|00002ec0| 2f 2a 20 6f 72 20 74 68 | 61 74 20 2a 2f 0d 0a 20 |/* or th|at */.. |
|00002ed0| 20 63 70 5f 64 69 72 5b | 69 6e 64 65 78 5d 2e 63 | cp_dir[|index].c|
|00002ee0| 70 5f 65 74 20 3d 20 44 | 45 4c 46 3b 09 09 2f 2a |p_et = D|ELF;../*|
|00002ef0| 20 64 6f 20 74 68 65 20 | 64 65 65 64 20 2a 2f 0d | do the |deed */.|
|00002f00| 0a 7d 0d 0a 0d 0a 2f 2a | 20 63 6f 70 79 20 74 68 |.}..../*| copy th|
|00002f10| 65 20 6e 61 6d 65 20 6f | 66 20 61 6e 20 65 78 74 |e name o|f an ext|
|00002f20| 65 6e 74 20 2a 2f 0d 0a | 63 6f 70 79 5f 65 78 74 |ent */..|copy_ext|
|00002f30| 28 73 72 63 2c 64 73 74 | 29 0d 0a 73 74 72 75 63 |(src,dst|)..struc|
|00002f40| 74 20 63 70 5f 64 69 72 | 5f 65 78 74 20 2a 73 72 |t cp_dir|_ext *sr|
|00002f50| 63 2c 2a 64 73 74 3b 0d | 0a 7b 20 69 6e 74 20 69 |c,*dst;.|.{ int i|
|00002f60| 3b 0d 0a 20 20 66 6f 72 | 28 69 3d 30 3b 20 69 3c |;.. for|(i=0; i<|
|00002f70| 46 4e 5f 53 5a 3b 20 69 | 2b 2b 29 09 09 2f 2a 20 |FN_SZ; i|++)../* |
|00002f80| 63 6f 70 79 20 6f 76 65 | 72 20 74 68 65 20 66 69 |copy ove|r the fi|
|00002f90| 6c 65 20 6e 61 6d 65 20 | 2a 2f 0d 0a 20 20 20 20 |le name |*/.. |
|00002fa0| 64 73 74 2d 3e 63 70 5f | 66 6e 5b 69 5d 20 3d 20 |dst->cp_|fn[i] = |
|00002fb0| 73 72 63 2d 3e 63 70 5f | 66 6e 5b 69 5d 3b 0d 0a |src->cp_|fn[i];..|
|00002fc0| 20 20 66 6f 72 28 69 3d | 30 3b 20 69 3c 46 54 5f | for(i=|0; i<FT_|
|00002fd0| 53 5a 3b 20 69 2b 2b 29 | 09 09 2f 2a 20 63 6f 70 |SZ; i++)|../* cop|
|00002fe0| 79 20 6f 76 65 72 20 74 | 68 65 20 66 69 6c 65 20 |y over t|he file |
|00002ff0| 74 79 70 65 20 2a 2f 0d | 0a 20 20 20 20 64 73 74 |type */.|. dst|
|00003000| 2d 3e 63 70 5f 66 74 5b | 69 5d 20 3d 20 73 72 63 |->cp_ft[|i] = src|
|00003010| 2d 3e 63 70 5f 66 74 5b | 69 5d 3b 0d 0a 7d 0d 0a |->cp_ft[|i];..}..|
|00003020| 0c 0d 0a 2f 2a 20 6c 63 | 6d 64 20 2d 20 6c 69 73 |.../* lc|md - lis|
|00003030| 74 20 74 68 65 20 66 6c | 6f 70 70 79 20 64 69 72 |t the fl|oppy dir|
|00003040| 65 63 74 6f 72 79 20 2a | 2f 0d 0a 6c 63 6d 64 28 |ectory *|/..lcmd(|
|00003050| 61 72 67 63 2c 61 72 67 | 76 29 0d 0a 63 68 61 72 |argc,arg|v)..char|
|00003060| 20 2a 61 72 67 76 5b 5d | 3b 0d 0a 69 6e 74 20 61 | *argv[]|;..int a|
|00003070| 72 67 63 3b 0d 0a 7b 20 | 69 6e 74 20 69 2c 63 75 |rgc;..{ |int i,cu|
|00003080| 72 2c 63 75 72 65 78 74 | 3b 0d 0a 20 20 69 6e 74 |r,curext|;.. int|
|00003090| 20 74 6f 74 72 65 63 3d | 30 2c 74 6f 74 65 78 74 | totrec=|0,totext|
|000030a0| 3d 30 2c 74 6f 74 6b 3d | 30 3b 0d 0a 20 20 73 74 |=0,totk=|0;.. st|
|000030b0| 72 75 63 74 20 63 70 5f | 64 69 72 5f 65 78 74 20 |ruct cp_|dir_ext |
|000030c0| 77 69 6c 64 3b 0d 0a 20 | 20 63 68 61 72 20 2a 63 |wild;.. | char *c|
|000030d0| 70 6d 5f 6e 61 6d 65 3b | 0d 0a 20 20 69 66 28 61 |pm_name;|.. if(a|
|000030e0| 72 67 63 20 3e 20 31 29 | 20 74 6f 6f 6d 61 6e 79 |rgc > 1)| toomany|
|000030f0| 28 29 3b 0d 0a 20 20 69 | 66 28 61 72 67 63 20 3d |();.. i|f(argc =|
|00003100| 3d 20 30 29 0d 0a 20 20 | 20 20 63 70 6d 5f 6e 61 |= 0).. | cpm_na|
|00003110| 6d 65 20 3d 20 22 2a 2e | 2a 22 3b 09 09 2f 2a 20 |me = "*.|*";../* |
|00003120| 64 65 66 61 75 6c 74 20 | 66 69 6c 65 20 6e 61 6d |default |file nam|
|00003130| 65 20 2a 2f 0d 0a 20 20 | 65 6c 73 65 0d 0a 20 20 |e */.. |else.. |
|00003140| 20 20 63 70 6d 5f 6e 61 | 6d 65 20 3d 20 61 72 67 | cpm_na|me = arg|
|00003150| 76 5b 30 5d 3b 0d 0a 20 | 20 67 65 74 64 69 72 28 |v[0];.. | getdir(|
|00003160| 29 3b 09 09 09 2f 2a 20 | 72 65 61 64 20 69 6e 20 |);.../* |read in |
|00003170| 74 68 65 20 64 69 72 65 | 63 74 6f 72 79 20 2a 2f |the dire|ctory */|
|00003180| 0d 0a 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 6f |.. fpri|ntf(stdo|
|00003190| 75 74 2c 0d 0a 20 20 20 | 20 22 64 69 73 6b 20 73 |ut,.. | "disk s|
|000031a0| 74 61 74 75 73 3a 20 25 | 64 20 66 69 6c 65 73 2c |tatus: %|d files,|
|000031b0| 20 25 64 20 65 78 74 65 | 6e 74 73 2c 20 25 64 4b | %d exte|nts, %dK|
|000031c0| 20 61 6c 6c 6f 63 61 74 | 65 64 2c 20 25 64 4b 20 | allocat|ed, %dK |
|000031d0| 66 72 65 65 5c 6e 5c 6e | 22 2c 0d 0a 20 20 20 20 |free\n\n|",.. |
|000031e0| 6e 75 6d 5f 66 69 6c 2c | 6e 75 6d 5f 65 78 74 2c |num_fil,|num_ext,|
|000031f0| 64 73 6b 5f 69 6e 75 73 | 65 2d 32 2c 43 50 5f 41 |dsk_inus|e-2,CP_A|
|00003200| 4c 4f 43 2d 64 73 6b 5f | 69 6e 75 73 65 29 3b 0d |LOC-dsk_|inuse);.|
|00003210| 0a 20 20 66 70 72 69 6e | 74 66 28 73 74 64 6f 75 |. fprin|tf(stdou|
|00003220| 74 2c 22 20 20 20 20 72 | 65 63 73 20 20 20 20 20 |t," r|ecs |
|00003230| 4b 20 20 20 65 78 20 20 | 20 75 73 72 20 6e 61 6d |K ex | usr nam|
|00003240| 65 5c 6e 22 29 3b 0d 0a | 0d 0a 20 20 70 61 72 73 |e\n");..|.. pars|
|00003250| 65 5f 65 78 74 28 26 77 | 69 6c 64 2c 63 70 6d 5f |e_ext(&w|ild,cpm_|
|00003260| 6e 61 6d 65 29 3b 09 2f | 2a 20 70 61 72 73 65 20 |name);./|* parse |
|00003270| 74 68 65 20 63 70 6d 20 | 66 69 6c 65 20 6e 61 6d |the cpm |file nam|
|00003280| 65 20 2a 2f 0d 0a 20 20 | 63 75 72 20 3d 20 2d 31 |e */.. |cur = -1|
|00003290| 3b 0d 0a 20 20 77 68 69 | 6c 65 28 28 63 75 72 20 |;.. whi|le((cur |
|000032a0| 3d 20 63 75 72 65 78 74 | 20 3d 20 6c 6f 6f 6b 75 |= curext| = looku|
|000032b0| 70 28 26 77 69 6c 64 2c | 63 75 72 29 29 20 21 3d |p(&wild,|cur)) !=|
|000032c0| 20 2d 31 29 20 7b 20 2f | 2a 20 66 69 6e 64 20 61 | -1) { /|* find a|
|000032d0| 20 66 69 6c 65 20 2a 2f | 0d 0a 20 20 20 20 69 6e | file */|.. in|
|000032e0| 74 20 72 65 63 73 69 7a | 3d 30 2c 6b 73 69 7a 3d |t recsiz|=0,ksiz=|
|000032f0| 30 2c 6e 75 6d 65 78 74 | 3d 30 3b 0d 0a 20 20 20 |0,numext|=0;.. |
|00003300| 20 77 68 69 6c 65 28 63 | 75 72 65 78 74 20 21 3d | while(c|urext !=|
|00003310| 20 2d 31 29 20 7b 09 09 | 2f 2a 20 64 6f 20 61 6c | -1) {..|/* do al|
|00003320| 6c 20 6f 66 20 69 74 73 | 20 65 78 74 65 6e 74 73 |l of its| extents|
|00003330| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 6e 75 6d 65 78 | */.. | numex|
|00003340| 74 2b 2b 3b 09 09 09 09 | 2f 2a 20 66 6f 75 6e 64 |t++;....|/* found|
|00003350| 20 6f 6e 65 20 6d 6f 72 | 65 20 65 78 74 65 6e 74 | one mor|e extent|
|00003360| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 72 65 63 73 69 | */.. | recsi|
|00003370| 7a 20 2b 3d 20 63 70 5f | 64 69 72 5b 63 75 72 65 |z += cp_|dir[cure|
|00003380| 78 74 5d 2e 63 70 5f 72 | 63 3b 09 2f 2a 20 74 68 |xt].cp_r|c;./* th|
|00003390| 69 73 20 6d 61 6e 79 20 | 72 65 63 6f 72 64 73 20 |is many |records |
|000033a0| 2a 2f 0d 0a 20 20 20 20 | 20 20 6b 73 69 7a 20 2b |*/.. | ksiz +|
|000033b0| 3d 20 28 28 63 70 5f 64 | 69 72 5b 63 75 72 65 78 |= ((cp_d|ir[curex|
|000033c0| 74 5d 2e 63 70 5f 72 63 | 2b 43 50 5f 43 4c 55 53 |t].cp_rc|+CP_CLUS|
|000033d0| 54 45 52 2d 31 29 2f 43 | 50 5f 43 4c 55 53 54 45 |TER-1)/C|P_CLUSTE|
|000033e0| 52 29 3b 20 2f 2a 20 6b | 20 73 69 7a 65 20 2a 2f |R); /* k| size */|
|000033f0| 0d 0a 20 20 20 20 20 20 | 63 75 72 65 78 74 20 3d |.. |curext =|
|00003400| 20 65 78 74 5f 6e 65 78 | 74 5b 63 75 72 65 78 74 | ext_nex|t[curext|
|00003410| 5d 3b 09 2f 2a 20 6d 6f | 76 65 20 6f 6e 20 2a 2f |];./* mo|ve on */|
|00003420| 0d 0a 20 20 20 20 20 20 | 7d 0d 0a 20 20 20 20 66 |.. |}.. f|
|00003430| 70 72 69 6e 74 66 28 73 | 74 64 6f 75 74 2c 0d 0a |printf(s|tdout,..|
|00003440| 20 20 20 20 20 20 22 20 | 20 20 20 25 34 64 20 20 | " | %4d |
|00003450| 20 25 33 64 4b 20 20 25 | 32 64 20 20 20 5b 25 64 | %3dK %|2d [%d|
|00003460| 5d 25 73 5c 6e 22 2c 72 | 65 63 73 69 7a 2c 6b 73 |]%s\n",r|ecsiz,ks|
|00003470| 69 7a 2c 6e 75 6d 65 78 | 74 2c 0d 0a 20 20 20 20 |iz,numex|t,.. |
|00003480| 20 20 63 70 5f 64 69 72 | 5b 63 75 72 5d 2e 63 70 | cp_dir|[cur].cp|
|00003490| 5f 65 74 2c 63 70 5f 6e | 61 6d 65 5b 63 75 72 5d |_et,cp_n|ame[cur]|
|000034a0| 29 3b 0d 0a 20 20 20 20 | 74 6f 74 72 65 63 20 2b |);.. |totrec +|
|000034b0| 3d 20 72 65 63 73 69 7a | 3b 0d 0a 20 20 20 20 74 |= recsiz|;.. t|
|000034c0| 6f 74 6b 20 2b 3d 20 6b | 73 69 7a 3b 0d 0a 20 20 |otk += k|siz;.. |
|000034d0| 20 20 74 6f 74 65 78 74 | 20 2b 3d 20 6e 75 6d 65 | totext| += nume|
|000034e0| 78 74 3b 0d 0a 20 20 20 | 20 7d 0d 0a 20 20 66 70 |xt;.. | }.. fp|
|000034f0| 72 69 6e 74 66 28 73 74 | 64 6f 75 74 2c 22 20 20 |rintf(st|dout," |
|00003500| 20 20 2d 2d 2d 2d 20 20 | 20 2d 2d 2d 20 20 20 2d | ---- | --- -|
|00003510| 2d 5c 6e 22 29 3b 0d 0a | 20 20 66 70 72 69 6e 74 |-\n");..| fprint|
|00003520| 66 28 73 74 64 6f 75 74 | 2c 22 20 20 20 20 25 34 |f(stdout|," %4|
|00003530| 64 20 20 20 25 33 64 20 | 20 20 25 32 64 5c 6e 22 |d %3d | %2d\n"|
|00003540| 2c 74 6f 74 72 65 63 2c | 74 6f 74 6b 2c 74 6f 74 |,totrec,|totk,tot|
|00003550| 65 78 74 29 3b 0d 0a 7d | 0d 0a 0c 0d 0a 2f 2a 0d |ext);..}|...../*.|
|00003560| 0a 20 20 20 72 65 61 64 | 20 73 75 62 72 6f 75 74 |. read| subrout|
|00003570| 69 6e 65 73 0d 0a 2a 2f | 0d 0a 0d 0a 2f 2a 20 72 |ines..*/|..../* r|
|00003580| 65 61 64 20 61 20 66 69 | 6c 65 20 66 72 6f 6d 20 |ead a fi|le from |
|00003590| 74 68 65 20 66 6c 6f 70 | 70 79 20 2a 2f 0d 0a 67 |the flop|py */..g|
|000035a0| 65 74 66 69 6c 65 28 69 | 6e 64 65 78 2c 75 6e 69 |etfile(i|ndex,uni|
|000035b0| 78 5f 70 72 65 66 69 78 | 29 0d 0a 69 6e 74 20 69 |x_prefix|)..int i|
|000035c0| 6e 64 65 78 3b 0d 0a 63 | 68 61 72 20 2a 75 6e 69 |ndex;..c|har *uni|
|000035d0| 78 5f 70 72 65 66 69 78 | 3b 0d 0a 7b 20 69 6e 74 |x_prefix|;..{ int|
|000035e0| 20 63 6c 73 74 72 2c 63 | 75 72 5f 69 6f 5f 65 72 | clstr,c|ur_io_er|
|000035f0| 72 2c 65 78 74 73 69 7a | 2c 63 75 72 72 65 63 3b |r,extsiz|,currec;|
|00003600| 0d 0a 20 20 46 49 4c 45 | 20 2a 6f 66 69 6c 65 3b |.. FILE| *ofile;|
|00003610| 0d 0a 20 20 63 68 61 72 | 20 2a 75 6e 69 78 5f 6e |.. char| *unix_n|
|00003620| 61 6d 65 3b 0d 0a 20 20 | 63 68 61 72 20 62 75 66 |ame;.. |char buf|
|00003630| 5b 31 30 30 5d 3b 09 09 | 09 2f 2a 20 64 65 66 61 |[100];..|./* defa|
|00003640| 75 6c 74 20 74 6f 20 74 | 68 65 20 70 72 65 66 69 |ult to t|he prefi|
|00003650| 78 20 2a 2f 0d 0a 20 20 | 69 66 20 28 2a 75 6e 69 |x */.. |if (*uni|
|00003660| 78 5f 70 72 65 66 69 78 | 20 3d 3d 20 30 29 09 09 |x_prefix| == 0)..|
|00003670| 2f 2a 20 69 73 20 74 68 | 65 72 65 20 61 20 75 6e |/* is th|ere a un|
|00003680| 69 78 20 66 69 6c 65 20 | 6e 61 6d 65 20 2a 2f 0d |ix file |name */.|
|00003690| 0a 20 20 20 20 75 6e 69 | 78 5f 6e 61 6d 65 20 3d |. uni|x_name =|
|000036a0| 20 63 70 5f 6e 61 6d 65 | 5b 69 6e 64 65 78 5d 3b | cp_name|[index];|
|000036b0| 09 09 2f 2a 20 6e 6f 2c | 20 6a 75 73 74 20 75 73 |../* no,| just us|
|000036c0| 65 20 74 68 65 20 63 70 | 6d 20 6e 61 6d 65 20 2a |e the cp|m name *|
|000036d0| 2f 0d 0a 20 20 65 6c 73 | 65 20 7b 0d 0a 20 20 20 |/.. els|e {.. |
|000036e0| 20 63 68 61 72 20 2a 63 | 70 3b 0d 0a 20 20 20 20 | char *c|p;.. |
|000036f0| 66 6f 72 28 63 70 20 3d | 20 75 6e 69 78 5f 70 72 |for(cp =| unix_pr|
|00003700| 65 66 69 78 3b 20 2a 63 | 70 3b 20 2a 63 70 2b 2b |efix; *c|p; *cp++|
|00003710| 20 29 3b 09 2f 2a 20 66 | 69 6e 64 20 74 68 65 20 | );./* f|ind the |
|00003720| 65 6e 64 20 2a 2f 0d 0a | 20 20 20 20 63 70 2d 2d |end */..| cp--|
|00003730| 3b 09 09 09 09 2f 2a 20 | 70 6f 69 6e 74 20 74 6f |;..../* |point to|
|00003740| 20 74 68 65 20 6c 61 73 | 74 20 63 68 61 72 20 2a | the las|t char *|
|00003750| 2f 0d 0a 20 20 20 20 69 | 66 20 28 2a 63 70 20 21 |/.. i|f (*cp !|
|00003760| 3d 20 27 2f 27 29 09 09 | 09 2f 2a 20 69 73 20 74 |= '/')..|./* is t|
|00003770| 68 69 73 20 61 20 70 72 | 65 66 69 78 20 2a 2f 0d |his a pr|efix */.|
|00003780| 0a 20 20 20 20 20 20 75 | 6e 69 78 5f 6e 61 6d 65 |. u|nix_name|
|00003790| 20 3d 20 75 6e 69 78 5f | 70 72 65 66 69 78 3b 09 | = unix_|prefix;.|
|000037a0| 09 2f 2a 20 6e 6f 2c 20 | 69 74 73 20 61 20 6e 61 |./* no, |its a na|
|000037b0| 6d 65 20 2a 2f 0d 0a 20 | 20 20 20 65 6c 73 65 0d |me */.. | else.|
|000037c0| 0a 20 20 20 20 20 20 73 | 74 72 63 70 79 28 62 75 |. s|trcpy(bu|
|000037d0| 66 2c 75 6e 69 78 5f 70 | 72 65 66 69 78 29 2c 09 |f,unix_p|refix),.|
|000037e0| 09 2f 2a 20 70 75 74 20 | 6f 6e 20 74 68 65 20 70 |./* put |on the p|
|000037f0| 72 65 66 69 78 20 2a 2f | 0d 0a 20 20 20 20 20 20 |refix */|.. |
|00003800| 73 74 72 63 61 74 28 62 | 75 66 2c 63 70 5f 6e 61 |strcat(b|uf,cp_na|
|00003810| 6d 65 5b 69 6e 64 65 78 | 5d 29 2c 09 2f 2a 20 74 |me[index|]),./* t|
|00003820| 68 65 6e 20 74 68 65 20 | 6e 61 6d 65 20 2a 2f 0d |hen the |name */.|
|00003830| 0a 20 20 20 20 20 20 75 | 6e 69 78 5f 6e 61 6d 65 |. u|nix_name|
|00003840| 20 3d 20 62 75 66 3b 09 | 09 09 2f 2a 20 74 68 61 | = buf;.|../* tha|
|00003850| 74 27 73 20 69 74 20 2a | 2f 0d 0a 20 20 20 20 7d |t's it *|/.. }|
|00003860| 0d 0a 0d 0a 20 20 69 66 | 20 28 28 6f 66 69 6c 65 |.... if| ((ofile|
|00003870| 20 3d 20 66 6f 70 65 6e | 28 75 6e 69 78 5f 6e 61 | = fopen|(unix_na|
|00003880| 6d 65 2c 22 77 22 29 29 | 20 3d 3d 20 4e 55 4c 4c |me,"w"))| == NULL|
|00003890| 29 20 2f 2a 20 74 72 79 | 20 74 6f 20 6f 70 65 6e |) /* try| to open|
|000038a0| 20 74 68 65 20 75 6e 69 | 78 20 66 69 6c 65 20 2a | the uni|x file *|
|000038b0| 2f 0d 0a 20 20 20 20 71 | 75 69 74 28 31 2c 22 5c |/.. q|uit(1,"\|
|000038c0| 6e 63 70 6d 75 74 6c 3a | 63 61 6e 27 74 20 63 72 |ncpmutl:|can't cr|
|000038d0| 65 61 74 65 20 75 6e 69 | 78 20 66 69 6c 65 20 25 |eate uni|x file %|
|000038e0| 73 5c 6e 22 2c 75 6e 69 | 78 5f 6e 61 6d 65 29 3b |s\n",uni|x_name);|
|000038f0| 0d 0a 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 6f |.. fpri|ntf(stdo|
|00003900| 75 74 2c 22 5b 25 64 5d | 25 73 20 3d 3e 20 25 73 |ut,"[%d]|%s => %s|
|00003910| 20 22 2c 63 70 5f 64 69 | 72 5b 69 6e 64 65 78 5d | ",cp_di|r[index]|
|00003920| 2e 63 70 5f 65 74 2c 0d | 0a 20 20 20 20 20 20 20 |.cp_et,.|. |
|00003930| 20 20 20 20 20 20 20 20 | 20 20 63 70 5f 6e 61 6d | | cp_nam|
|00003940| 65 5b 69 6e 64 65 78 5d | 2c 75 6e 69 78 5f 6e 61 |e[index]|,unix_na|
|00003950| 6d 65 29 3b 0d 0a 20 20 | 66 66 6c 75 73 68 28 73 |me);.. |fflush(s|
|00003960| 74 64 6f 75 74 29 3b 0d | 0a 20 20 6d 61 72 6b 65 |tdout);.|. marke|
|00003970| 72 72 73 28 29 3b 0d 0a | 20 20 66 6f 72 28 20 3b |rrs();..| for( ;|
|00003980| 20 69 6e 64 65 78 20 21 | 3d 20 2d 31 3b 20 69 6e | index !|= -1; in|
|00003990| 64 65 78 3d 65 78 74 5f | 6e 65 78 74 5b 69 6e 64 |dex=ext_|next[ind|
|000039a0| 65 78 5d 29 20 7b 20 2f | 2a 20 61 6c 6c 20 65 78 |ex]) { /|* all ex|
|000039b0| 74 65 6e 74 73 20 2a 2f | 0d 0a 20 20 20 20 65 78 |tents */|.. ex|
|000039c0| 74 73 69 7a 20 3d 20 63 | 70 5f 64 69 72 5b 69 6e |tsiz = c|p_dir[in|
|000039d0| 64 65 78 5d 2e 63 70 5f | 72 63 3b 09 2f 2a 20 72 |dex].cp_|rc;./* r|
|000039e0| 65 61 64 20 61 6c 6c 20 | 74 68 65 20 72 65 63 6f |ead all |the reco|
|000039f0| 72 64 73 20 2a 2f 0d 0a | 20 20 20 20 66 6f 72 28 |rds */..| for(|
|00003a00| 63 75 72 72 65 63 3d 30 | 3b 20 63 75 72 72 65 63 |currec=0|; currec|
|00003a10| 20 3c 20 65 78 74 73 69 | 7a 3b 20 63 75 72 72 65 | < extsi|z; curre|
|00003a20| 63 2b 2b 29 20 7b 20 2f | 2a 20 72 65 61 64 20 61 |c++) { /|* read a|
|00003a30| 6c 6c 20 74 68 65 20 72 | 65 63 6f 72 64 73 20 2a |ll the r|ecords *|
|00003a40| 2f 0d 0a 20 20 20 20 20 | 69 66 28 72 65 61 64 5f |/.. |if(read_|
|00003a50| 73 65 63 74 6f 72 28 63 | 70 5f 64 69 72 5b 69 6e |sector(c|p_dir[in|
|00003a60| 64 65 78 5d 2e 63 70 5f | 64 6d 5b 63 75 72 72 65 |dex].cp_|dm[curre|
|00003a70| 63 2f 43 50 5f 43 4c 55 | 53 54 45 52 5d 2c 0d 0a |c/CP_CLU|STER],..|
|00003a80| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00003a90| 20 20 20 20 63 75 72 72 | 65 63 20 25 20 43 50 5f | curr|ec % CP_|
|00003aa0| 43 4c 55 53 54 45 52 2c | 6f 66 69 6c 65 29 29 0d |CLUSTER,|ofile)).|
|00003ab0| 0a 20 20 20 20 20 20 20 | 62 72 65 61 6b 3b 09 09 |. |break;..|
|00003ac0| 09 09 2f 2a 20 73 74 6f | 70 20 61 74 20 65 6f 66 |../* sto|p at eof|
|00003ad0| 20 2a 2f 0d 0a 20 20 20 | 20 20 7d 0d 0a 20 20 20 | */.. | }.. |
|00003ae0| 20 7d 0d 0a 20 20 72 65 | 70 6f 72 74 65 72 72 73 | }.. re|porterrs|
|00003af0| 28 29 3b 0d 0a 20 20 66 | 63 6c 6f 73 65 28 6f 66 |();.. f|close(of|
|00003b00| 69 6c 65 29 3b 0d 0a 7d | 0d 0a 0c 0d 0a 2f 2a 20 |ile);..}|...../* |
|00003b10| 6d 6f 72 65 20 72 65 61 | 64 20 73 75 62 72 6f 75 |more rea|d subrou|
|00003b20| 74 69 6e 65 73 20 2a 2f | 0d 0a 0d 0a 2f 2a 20 72 |tines */|..../* r|
|00003b30| 65 61 64 20 61 20 62 75 | 6e 63 68 20 6f 66 20 73 |ead a bu|nch of s|
|00003b40| 65 63 74 6f 72 73 20 69 | 6e 74 6f 20 61 20 66 69 |ectors i|nto a fi|
|00003b50| 6c 65 20 2a 2f 0d 0a 61 | 62 73 5f 72 65 61 64 28 |le */..a|bs_read(|
|00003b60| 77 68 65 72 65 66 72 6f | 6d 2c 75 6e 69 78 5f 6e |wherefro|m,unix_n|
|00003b70| 61 6d 65 29 0d 0a 7b 20 | 69 6e 74 20 73 74 61 72 |ame)..{ |int star|
|00003b80| 74 2c 73 69 7a 65 2c 73 | 74 61 74 75 73 3b 0d 0a |t,size,s|tatus;..|
|00003b90| 20 20 63 68 61 72 20 62 | 75 66 5b 53 45 43 5d 3b | char b|uf[SEC];|
|00003ba0| 0d 0a 20 20 46 49 4c 45 | 20 2a 6f 66 69 6c 65 3b |.. FILE| *ofile;|
|00003bb0| 0d 0a 20 20 69 66 28 73 | 73 63 61 6e 66 28 77 68 |.. if(s|scanf(wh|
|00003bc0| 65 72 65 66 72 6f 6d 2c | 22 25 64 2e 25 64 22 2c |erefrom,|"%d.%d",|
|00003bd0| 26 73 74 61 72 74 2c 26 | 73 69 7a 65 29 20 21 3d |&start,&|size) !=|
|00003be0| 20 32 29 0d 0a 20 20 20 | 20 71 75 69 74 28 31 2c | 2).. | quit(1,|
|00003bf0| 22 5c 6e 63 70 6d 75 74 | 6c 3a 63 61 6e 27 74 20 |"\ncpmut|l:can't |
|00003c00| 70 61 72 73 65 20 73 74 | 61 72 74 2e 73 69 7a 65 |parse st|art.size|
|00003c10| 20 61 64 64 72 65 73 73 | 5c 6e 22 29 3b 0d 0a 20 | address|\n");.. |
|00003c20| 20 69 66 20 28 28 6f 66 | 69 6c 65 20 3d 20 66 6f | if ((of|ile = fo|
|00003c30| 70 65 6e 28 75 6e 69 78 | 5f 6e 61 6d 65 2c 22 77 |pen(unix|_name,"w|
|00003c40| 22 29 29 20 3d 3d 20 4e | 55 4c 4c 29 20 2f 2a 20 |")) == N|ULL) /* |
|00003c50| 74 72 79 20 74 6f 20 6f | 70 65 6e 20 74 68 65 20 |try to o|pen the |
|00003c60| 75 6e 69 78 20 66 69 6c | 65 20 2a 2f 0d 0a 20 20 |unix fil|e */.. |
|00003c70| 20 20 71 75 69 74 28 31 | 2c 22 5c 6e 63 70 6d 75 | quit(1|,"\ncpmu|
|00003c80| 74 6c 3a 63 61 6e 27 74 | 20 63 72 65 61 74 65 20 |tl:can't| create |
|00003c90| 75 6e 69 78 20 66 69 6c | 65 20 25 73 5c 6e 22 2c |unix fil|e %s\n",|
|00003ca0| 75 6e 69 78 5f 6e 61 6d | 65 29 3b 0d 0a 20 20 6d |unix_nam|e);.. m|
|00003cb0| 61 72 6b 65 72 72 73 28 | 29 3b 0d 0a 20 20 66 70 |arkerrs(|);.. fp|
|00003cc0| 72 69 6e 74 66 28 73 74 | 64 6f 75 74 2c 0d 0a 20 |rintf(st|dout,.. |
|00003cd0| 20 20 20 22 72 65 61 64 | 69 6e 67 20 66 72 6f 6d | "read|ing from|
|00003ce0| 20 73 65 63 74 6f 72 20 | 25 64 2c 20 6c 65 6e 67 | sector |%d, leng|
|00003cf0| 74 68 20 25 64 20 3d 3e | 20 25 73 20 22 2c 73 74 |th %d =>| %s ",st|
|00003d00| 61 72 74 2c 73 69 7a 65 | 2c 75 6e 69 78 5f 6e 61 |art,size|,unix_na|
|00003d10| 6d 65 29 3b 0d 0a 20 20 | 66 66 6c 75 73 68 28 73 |me);.. |fflush(s|
|00003d20| 74 64 6f 75 74 29 3b 0d | 0a 20 20 77 68 69 6c 65 |tdout);.|. while|
|00003d30| 28 73 69 7a 65 2d 2d 29 | 20 7b 0d 0a 20 20 20 20 |(size--)| {.. |
|00003d40| 6c 72 65 61 64 28 73 74 | 61 72 74 2c 31 2c 62 75 |lread(st|art,1,bu|
|00003d50| 66 29 3b 09 09 09 2f 2a | 20 72 65 61 64 20 61 20 |f);.../*| read a |
|00003d60| 73 65 63 74 6f 72 20 66 | 72 6f 6d 20 74 68 65 20 |sector f|rom the |
|00003d70| 66 6c 6f 70 70 79 20 2a | 2f 0d 0a 20 20 20 20 73 |floppy *|/.. s|
|00003d80| 74 61 74 75 73 3d 66 77 | 72 69 74 65 28 62 75 66 |tatus=fw|rite(buf|
|00003d90| 2c 31 2c 53 45 43 2c 6f | 66 69 6c 65 29 3b 09 2f |,1,SEC,o|file);./|
|00003da0| 2a 20 77 72 69 74 65 20 | 69 74 20 74 6f 20 74 68 |* write |it to th|
|00003db0| 65 20 66 69 6c 65 20 2a | 2f 0d 0a 20 20 20 20 69 |e file *|/.. i|
|00003dc0| 66 28 73 74 61 74 75 73 | 20 21 3d 20 53 45 43 29 |f(status| != SEC)|
|00003dd0| 0d 0a 20 20 20 20 20 20 | 71 75 69 74 28 31 2c 22 |.. |quit(1,"|
|00003de0| 5c 6e 63 70 6d 75 74 6c | 3a 66 69 6c 65 20 77 72 |\ncpmutl|:file wr|
|00003df0| 69 74 65 20 65 72 72 6f | 72 20 66 6f 72 20 75 6e |ite erro|r for un|
|00003e00| 69 78 20 66 69 6c 65 20 | 25 73 5c 6e 22 2c 75 6e |ix file |%s\n",un|
|00003e10| 69 78 5f 6e 61 6d 65 29 | 3b 0d 0a 20 20 20 20 73 |ix_name)|;.. s|
|00003e20| 74 61 72 74 2b 2b 3b 09 | 09 09 09 2f 2a 20 61 64 |tart++;.|.../* ad|
|00003e30| 76 61 6e 63 65 20 74 6f | 20 74 68 65 20 6e 65 78 |vance to| the nex|
|00003e40| 74 20 73 65 63 74 6f 72 | 20 2a 2f 0d 0a 20 20 20 |t sector| */.. |
|00003e50| 20 7d 0d 0a 20 20 72 65 | 70 6f 72 74 65 72 72 73 | }.. re|porterrs|
|00003e60| 28 29 3b 0d 0a 20 20 66 | 63 6c 6f 73 65 28 6f 66 |();.. f|close(of|
|00003e70| 69 6c 65 29 3b 0d 0a 7d | 0d 0a 0d 0a 2f 2a 20 72 |ile);..}|..../* r|
|00003e80| 65 61 64 20 69 6e 20 61 | 20 73 65 63 74 6f 72 20 |ead in a| sector |
|00003e90| 2a 2f 0d 0a 69 6e 74 20 | 72 65 61 64 5f 73 65 63 |*/..int |read_sec|
|00003ea0| 74 6f 72 28 64 73 6b 5f | 61 64 72 2c 73 65 63 2c |tor(dsk_|adr,sec,|
|00003eb0| 6f 66 69 6c 65 29 0d 0a | 69 6e 74 20 64 73 6b 5f |ofile)..|int dsk_|
|00003ec0| 61 64 72 2c 73 65 63 3b | 0d 0a 46 49 4c 45 20 2a |adr,sec;|..FILE *|
|00003ed0| 6f 66 69 6c 65 3b 0d 0a | 7b 20 69 6e 74 20 69 3b |ofile;..|{ int i;|
|00003ee0| 0d 0a 20 20 63 68 61 72 | 20 62 75 66 5b 53 45 43 |.. char| buf[SEC|
|00003ef0| 5d 2c 63 75 72 3b 09 09 | 09 2f 2a 20 73 65 63 74 |],cur;..|./* sect|
|00003f00| 6f 72 20 62 75 66 66 65 | 72 20 2a 2f 0d 0a 20 20 |or buffe|r */.. |
|00003f10| 6c 72 65 61 64 28 28 64 | 73 6b 5f 61 64 72 2a 43 |lread((d|sk_adr*C|
|00003f20| 50 5f 43 4c 55 53 54 45 | 52 29 2b 43 50 5f 42 41 |P_CLUSTE|R)+CP_BA|
|00003f30| 53 45 2b 73 65 63 2c 31 | 2c 62 75 66 29 3b 20 2f |SE+sec,1|,buf); /|
|00003f40| 2a 20 72 65 61 64 20 69 | 74 20 69 6e 20 2a 2f 0d |* read i|t in */.|
|00003f50| 0a 20 20 69 66 28 73 65 | 63 20 3d 3d 20 30 29 09 |. if(se|c == 0).|
|00003f60| 09 09 09 2f 2a 20 73 74 | 61 72 74 20 6f 66 20 61 |.../* st|art of a|
|00003f70| 20 63 6c 75 73 74 65 72 | 3f 20 2a 2f 0d 0a 20 20 | cluster|? */.. |
|00003f80| 20 20 70 75 74 63 28 27 | 2e 27 2c 73 74 64 6f 75 | putc('|.',stdou|
|00003f90| 74 29 2c 09 09 09 2f 2a | 20 79 65 73 20 2a 2f 0d |t),.../*| yes */.|
|00003fa0| 0a 20 20 20 20 66 66 6c | 75 73 68 28 73 74 64 6f |. ffl|ush(stdo|
|00003fb0| 75 74 29 3b 0d 0a 20 20 | 69 66 20 28 6d 6f 64 65 |ut);.. |if (mode|
|00003fc0| 20 3d 3d 20 27 74 27 29 | 20 7b 0d 0a 20 20 20 20 | == 't')| {.. |
|00003fd0| 66 6f 72 28 69 3d 30 3b | 20 69 3c 53 45 43 3b 20 |for(i=0;| i<SEC; |
|00003fe0| 69 2b 2b 29 09 09 2f 2a | 20 64 6f 20 74 65 78 74 |i++)../*| do text|
|00003ff0| 20 74 72 61 6e 73 6c 61 | 74 69 6f 6e 20 2a 2f 0d | transla|tion */.|
|00004000| 0a 20 20 20 20 20 20 73 | 77 69 74 63 68 28 63 75 |. s|witch(cu|
|00004010| 72 3d 6e 70 28 62 75 66 | 5b 69 5d 29 29 20 7b 0d |r=np(buf|[i])) {.|
|00004020| 0a 20 20 20 20 20 20 63 | 61 73 65 20 27 5a 27 2d |. c|ase 'Z'-|
|00004030| 36 34 3a 0d 0a 20 20 20 | 20 20 20 20 20 72 65 74 |64:.. | ret|
|00004040| 75 72 6e 20 54 52 55 45 | 3b 09 09 09 2f 2a 20 73 |urn TRUE|;.../* s|
|00004050| 74 6f 70 20 61 74 20 65 | 6f 66 20 2a 2f 0d 0a 20 |top at e|of */.. |
|00004060| 20 20 20 20 20 63 61 73 | 65 20 27 4d 27 2d 36 34 | cas|e 'M'-64|
|00004070| 3a 0d 0a 20 20 20 20 20 | 20 20 20 63 6f 6e 74 69 |:.. | conti|
|00004080| 6e 75 65 3b 09 09 09 2f | 2a 20 74 68 72 6f 77 20 |nue;.../|* throw |
|00004090| 61 77 61 79 20 72 65 74 | 75 72 6e 73 20 2a 2f 0d |away ret|urns */.|
|000040a0| 0a 20 20 20 20 20 20 64 | 65 66 61 75 6c 74 3a 0d |. d|efault:.|
|000040b0| 0a 09 69 66 28 66 77 72 | 69 74 65 28 28 63 68 61 |..if(fwr|ite((cha|
|000040c0| 72 20 2a 29 26 63 75 72 | 2c 31 2c 31 2c 6f 66 69 |r *)&cur|,1,1,ofi|
|000040d0| 6c 65 29 20 21 3d 20 31 | 29 0d 0a 20 20 20 20 20 |le) != 1|).. |
|000040e0| 20 20 20 20 20 71 75 69 | 74 28 31 2c 22 5c 6e 63 | qui|t(1,"\nc|
|000040f0| 70 6d 75 74 6c 3a 77 72 | 69 74 65 20 65 72 72 6f |pmutl:wr|ite erro|
|00004100| 72 20 6f 6e 20 75 6e 69 | 78 20 66 69 6c 65 5c 6e |r on uni|x file\n|
|00004110| 22 29 3b 0d 0a 20 20 20 | 20 20 20 7d 0d 0a 20 20 |");.. | }.. |
|00004120| 20 20 7d 0d 0a 20 20 65 | 6c 73 65 20 69 66 28 66 | }.. e|lse if(f|
|00004130| 77 72 69 74 65 28 62 75 | 66 2c 53 45 43 2c 31 2c |write(bu|f,SEC,1,|
|00004140| 6f 66 69 6c 65 29 20 21 | 3d 20 31 29 0d 0a 20 20 |ofile) !|= 1).. |
|00004150| 20 20 71 75 69 74 28 31 | 2c 22 5c 6e 63 70 6d 75 | quit(1|,"\ncpmu|
|00004160| 74 6c 3a 77 72 69 74 65 | 20 65 72 72 6f 72 20 6f |tl:write| error o|
|00004170| 6e 20 75 6e 69 78 20 66 | 69 6c 65 5c 6e 22 29 3b |n unix f|ile\n");|
|00004180| 0d 0a 20 72 65 74 75 72 | 6e 20 46 41 4c 53 45 3b |.. retur|n FALSE;|
|00004190| 0d 0a 7d 0d 0a 0c 0d 0a | 2f 2a 20 65 78 74 65 6e |..}.....|/* exten|
|000041a0| 74 20 68 61 6e 64 6c 69 | 6e 67 20 2a 2f 0d 0a 0d |t handli|ng */...|
|000041b0| 0a 2f 2a 20 73 65 65 20 | 69 66 20 65 78 74 31 20 |./* see |if ext1 |
|000041c0| 6d 61 74 63 68 65 73 20 | 65 78 74 32 20 2a 2f 0d |matches |ext2 */.|
|000041d0| 0a 2f 2a 20 74 68 65 20 | 75 73 65 72 20 6e 75 6d |./* the |user num|
|000041e0| 62 65 72 20 66 69 65 6c | 64 20 6f 66 20 65 78 74 |ber fiel|d of ext|
|000041f0| 20 69 73 20 63 68 65 63 | 6b 65 64 20 61 67 61 69 | is chec|ked agai|
|00004200| 6e 73 74 20 75 73 65 72 | 5f 6e 75 6d 20 2a 2f 0d |nst user|_num */.|
|00004210| 0a 6d 61 74 63 68 5f 65 | 78 74 28 65 78 74 31 2c |.match_e|xt(ext1,|
|00004220| 65 78 74 32 29 0d 0a 73 | 74 72 75 63 74 20 63 70 |ext2)..s|truct cp|
|00004230| 5f 64 69 72 5f 65 78 74 | 20 2a 65 78 74 31 2c 2a |_dir_ext| *ext1,*|
|00004240| 65 78 74 32 3b 0d 0a 7b | 20 69 6e 74 20 69 3b 0d |ext2;..{| int i;.|
|00004250| 0a 20 20 69 66 28 21 61 | 6e 79 5f 75 73 65 72 20 |. if(!a|ny_user |
|00004260| 26 26 20 65 78 74 32 2d | 3e 63 70 5f 65 74 20 21 |&& ext2-|>cp_et !|
|00004270| 3d 20 75 73 65 72 5f 6e | 75 6d 29 0d 0a 20 20 20 |= user_n|um).. |
|00004280| 20 72 65 74 75 72 6e 20 | 46 41 4c 53 45 3b 09 09 | return |FALSE;..|
|00004290| 2f 2a 20 66 61 69 6c 20 | 69 66 20 6e 6f 74 20 74 |/* fail |if not t|
|000042a0| 68 65 20 63 6f 72 72 65 | 63 74 20 75 73 65 72 20 |he corre|ct user |
|000042b0| 2a 2f 0d 0a 20 20 66 6f | 72 28 69 3d 30 3b 20 69 |*/.. fo|r(i=0; i|
|000042c0| 3c 46 4e 5f 53 5a 3b 20 | 69 2b 2b 29 0d 0a 20 20 |<FN_SZ; |i++).. |
|000042d0| 20 20 69 66 28 28 6e 70 | 28 65 78 74 31 2d 3e 63 | if((np|(ext1->c|
|000042e0| 70 5f 66 6e 5b 69 5d 29 | 20 21 3d 20 6e 70 28 65 |p_fn[i])| != np(e|
|000042f0| 78 74 32 2d 3e 63 70 5f | 66 6e 5b 69 5d 29 29 20 |xt2->cp_|fn[i])) |
|00004300| 26 26 20 2f 2a 20 66 61 | 69 6c 20 69 66 20 6e 6f |&& /* fa|il if no|
|00004310| 74 20 65 71 75 61 6c 20 | 2a 2f 0d 0a 20 20 20 20 |t equal |*/.. |
|00004320| 20 20 20 28 6e 70 28 65 | 78 74 31 2d 3e 63 70 5f | (np(e|xt1->cp_|
|00004330| 66 6e 5b 69 5d 29 20 21 | 3d 20 27 3f 27 29 29 09 |fn[i]) !|= '?')).|
|00004340| 09 2f 2a 20 61 6e 64 20 | 65 78 74 31 20 6e 6f 74 |./* and |ext1 not|
|00004350| 20 77 69 6c 64 20 2a 2f | 0d 0a 20 20 20 20 20 20 | wild */|.. |
|00004360| 72 65 74 75 72 6e 20 46 | 41 4c 53 45 3b 0d 0a 20 |return F|ALSE;.. |
|00004370| 20 66 6f 72 28 69 3d 30 | 3b 20 69 3c 46 54 5f 53 | for(i=0|; i<FT_S|
|00004380| 5a 3b 20 69 2b 2b 29 0d | 0a 20 20 20 20 69 66 28 |Z; i++).|. if(|
|00004390| 28 6e 70 28 65 78 74 31 | 2d 3e 63 70 5f 66 74 5b |(np(ext1|->cp_ft[|
|000043a0| 69 5d 29 20 21 3d 20 6e | 70 28 65 78 74 32 2d 3e |i]) != n|p(ext2->|
|000043b0| 63 70 5f 66 74 5b 69 5d | 29 29 20 26 26 20 2f 2a |cp_ft[i]|)) && /*|
|000043c0| 20 66 61 69 6c 20 69 66 | 20 6e 6f 74 20 65 71 75 | fail if| not equ|
|000043d0| 61 6c 20 2a 2f 0d 0a 20 | 20 20 20 20 20 20 28 6e |al */.. | (n|
|000043e0| 70 28 65 78 74 31 2d 3e | 63 70 5f 66 74 5b 69 5d |p(ext1->|cp_ft[i]|
|000043f0| 29 20 21 3d 20 27 3f 27 | 29 29 09 09 2f 2a 20 61 |) != '?'|))../* a|
|00004400| 6e 64 20 65 78 74 31 20 | 6e 6f 74 20 77 69 6c 64 |nd ext1 |not wild|
|00004410| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 72 65 74 75 72 | */.. | retur|
|00004420| 6e 20 46 41 4c 53 45 3b | 0d 0a 20 20 72 65 74 75 |n FALSE;|.. retu|
|00004430| 72 6e 20 54 52 55 45 3b | 09 09 09 09 09 2f 2a 20 |rn TRUE;|...../* |
|00004440| 73 75 63 63 65 73 73 20 | 2a 2f 0d 0a 7d 0d 0a 0d |success |*/..}...|
|00004450| 0a 2f 2a 20 70 61 72 73 | 65 20 74 68 65 20 70 61 |./* pars|e the pa|
|00004460| 73 73 65 64 20 65 78 74 | 65 6e 74 20 2a 2f 0d 0a |ssed ext|ent */..|
|00004470| 70 61 72 73 65 5f 65 78 | 74 28 72 73 6c 74 2c 6e |parse_ex|t(rslt,n|
|00004480| 61 6d 65 29 0d 0a 73 74 | 72 75 63 74 20 63 70 5f |ame)..st|ruct cp_|
|00004490| 64 69 72 5f 65 78 74 20 | 2a 72 73 6c 74 3b 0d 0a |dir_ext |*rslt;..|
|000044a0| 63 68 61 72 20 2a 6e 61 | 6d 65 3b 0d 0a 7b 20 69 |char *na|me;..{ i|
|000044b0| 6e 74 20 69 3b 20 63 68 | 61 72 20 63 75 72 3b 0d |nt i; ch|ar cur;.|
|000044c0| 0a 20 20 69 6e 69 5f 65 | 78 74 28 72 73 6c 74 29 |. ini_e|xt(rslt)|
|000044d0| 3b 09 09 09 2f 2a 20 69 | 6e 69 74 69 61 6c 69 7a |;.../* i|nitializ|
|000044e0| 65 20 74 68 65 20 65 78 | 74 65 6e 74 20 2a 2f 0d |e the ex|tent */.|
|000044f0| 0a 20 20 66 6f 72 28 69 | 3d 30 3b 20 69 3c 46 4e |. for(i|=0; i<FN|
|00004500| 5f 53 5a 3b 20 69 2b 2b | 29 20 7b 0d 0a 20 20 20 |_SZ; i++|) {.. |
|00004510| 20 63 75 72 20 3d 20 2a | 6e 61 6d 65 3b 09 09 09 | cur = *|name;...|
|00004520| 2f 2a 20 66 65 74 63 68 | 20 74 68 65 20 63 68 61 |/* fetch| the cha|
|00004530| 72 20 2a 2f 0d 0a 20 20 | 20 20 69 66 28 69 73 6c |r */.. | if(isl|
|00004540| 6f 77 65 72 28 63 75 72 | 29 29 0d 0a 20 20 20 20 |ower(cur|)).. |
|00004550| 20 20 63 75 72 20 3d 20 | 74 6f 75 70 70 65 72 28 | cur = |toupper(|
|00004560| 63 75 72 29 3b 09 09 2f | 2a 20 63 6f 6e 76 65 72 |cur);../|* conver|
|00004570| 74 20 74 6f 20 75 70 70 | 65 72 20 63 61 73 65 20 |t to upp|er case |
|00004580| 2a 2f 0d 0a 20 20 20 20 | 69 66 28 28 63 75 72 20 |*/.. |if((cur |
|00004590| 3d 3d 20 30 29 20 7c 7c | 20 28 63 75 72 20 3d 3d |== 0) ||| (cur ==|
|000045a0| 20 27 2e 27 29 29 09 2f | 2a 20 73 74 6f 70 20 61 | '.'))./|* stop a|
|000045b0| 74 20 65 6f 73 20 2a 2f | 0d 0a 20 20 20 20 20 20 |t eos */|.. |
|000045c0| 62 72 65 61 6b 3b 0d 0a | 20 20 20 20 65 6c 73 65 |break;..| else|
|000045d0| 20 69 66 28 63 75 72 20 | 3d 3d 20 27 2a 27 29 09 | if(cur |== '*').|
|000045e0| 09 09 2f 2a 20 69 73 20 | 69 74 20 61 20 73 74 61 |../* is |it a sta|
|000045f0| 72 3f 20 2a 2f 0d 0a 20 | 20 20 20 20 20 72 73 6c |r? */.. | rsl|
|00004600| 74 2d 3e 63 70 5f 66 6e | 5b 69 5d 20 3d 20 27 3f |t->cp_fn|[i] = '?|
|00004610| 27 3b 09 09 2f 2a 20 66 | 69 6c 6c 20 6f 75 74 20 |';../* f|ill out |
|00004620| 77 69 74 68 20 3f 20 74 | 68 65 6e 20 2a 2f 0d 0a |with ? t|hen */..|
|00004630| 20 20 20 20 65 6c 73 65 | 0d 0a 20 20 20 20 20 20 | else|.. |
|00004640| 72 73 6c 74 2d 3e 63 70 | 5f 66 6e 5b 69 5d 20 3d |rslt->cp|_fn[i] =|
|00004650| 20 63 75 72 2c 0d 0a 20 | 20 20 20 20 20 6e 61 6d | cur,.. | nam|
|00004660| 65 2b 2b 3b 0d 0a 20 20 | 20 20 7d 0d 0a 0d 0a 20 |e++;.. | }.... |
|00004670| 20 69 66 28 2a 6e 61 6d | 65 20 3d 3d 20 27 2a 27 | if(*nam|e == '*'|
|00004680| 29 20 7b 09 09 09 2f 2a | 20 6e 65 65 64 20 74 6f |) {.../*| need to|
|00004690| 20 73 6b 69 70 20 61 20 | 73 74 61 72 3f 20 2a 2f | skip a |star? */|
|000046a0| 0d 0a 20 20 20 20 2a 6e | 61 6d 65 2b 2b 3b 09 09 |.. *n|ame++;..|
|000046b0| 09 09 2f 2a 20 67 65 74 | 20 6f 75 74 20 6f 66 20 |../* get| out of |
|000046c0| 74 68 65 20 2a 20 2a 2f | 0d 0a 20 20 20 20 69 66 |the * */|.. if|
|000046d0| 28 2a 6e 61 6d 65 20 3d | 3d 20 30 29 09 09 09 2f |(*name =|= 0).../|
|000046e0| 2a 20 74 68 65 20 65 6e | 64 20 6f 66 20 74 68 65 |* the en|d of the|
|000046f0| 20 73 74 72 69 6e 67 3f | 20 2a 2f 0d 0a 20 20 20 | string?| */.. |
|00004700| 20 20 6e 61 6d 65 20 3d | 20 22 2a 22 3b 09 09 09 | name =| "*";...|
|00004710| 2f 2a 20 79 65 73 2c 20 | 73 74 61 72 74 20 63 72 |/* yes, |start cr|
|00004720| 6f 73 73 65 73 20 74 68 | 65 20 2e 20 74 68 65 6e |osses th|e . then|
|00004730| 20 2a 2f 0d 0a 20 20 20 | 20 7d 0d 0a 20 20 69 66 | */.. | }.. if|
|00004740| 28 2a 6e 61 6d 65 20 3d | 3d 20 27 2e 27 29 20 2a |(*name =|= '.') *|
|00004750| 6e 61 6d 65 2b 2b 3b 09 | 09 2f 2a 20 6d 61 79 62 |name++;.|./* mayb|
|00004760| 65 20 73 6b 69 70 20 74 | 68 65 20 73 65 70 61 72 |e skip t|he separ|
|00004770| 61 74 6f 72 20 2a 2f 0d | 0a 0d 0a 20 20 66 6f 72 |ator */.|... for|
|00004780| 28 69 3d 30 3b 20 69 3c | 46 54 5f 53 5a 3b 20 69 |(i=0; i<|FT_SZ; i|
|00004790| 2b 2b 29 20 7b 0d 0a 20 | 20 20 20 63 75 72 20 3d |++) {.. | cur =|
|000047a0| 20 2a 6e 61 6d 65 3b 09 | 09 09 2f 2a 20 66 65 74 | *name;.|../* fet|
|000047b0| 63 68 20 74 68 65 20 63 | 68 61 72 20 2a 2f 0d 0a |ch the c|har */..|
|000047c0| 20 20 20 20 69 66 28 69 | 73 6c 6f 77 65 72 28 63 | if(i|slower(c|
|000047d0| 75 72 29 29 0d 0a 20 20 | 20 20 20 20 63 75 72 20 |ur)).. | cur |
|000047e0| 3d 20 74 6f 75 70 70 65 | 72 28 63 75 72 29 3b 09 |= touppe|r(cur);.|
|000047f0| 09 2f 2a 20 63 6f 6e 76 | 65 72 74 20 74 6f 20 75 |./* conv|ert to u|
|00004800| 70 70 65 72 20 63 61 73 | 65 20 2a 2f 0d 0a 20 20 |pper cas|e */.. |
|00004810| 20 20 69 66 28 63 75 72 | 20 3d 3d 20 30 29 09 09 | if(cur| == 0)..|
|00004820| 09 2f 2a 20 73 74 6f 70 | 20 61 74 20 65 6f 73 20 |./* stop| at eos |
|00004830| 2a 2f 0d 0a 20 20 20 20 | 20 20 62 72 65 61 6b 3b |*/.. | break;|
|00004840| 0d 0a 20 20 20 20 65 6c | 73 65 20 69 66 28 63 75 |.. el|se if(cu|
|00004850| 72 20 3d 3d 20 27 2a 27 | 29 09 09 09 2f 2a 20 69 |r == '*'|).../* i|
|00004860| 73 20 69 74 20 61 20 73 | 74 61 72 3f 20 2a 2f 0d |s it a s|tar? */.|
|00004870| 0a 20 20 20 20 20 20 72 | 73 6c 74 2d 3e 63 70 5f |. r|slt->cp_|
|00004880| 66 74 5b 69 5d 20 3d 20 | 27 3f 27 3b 09 09 2f 2a |ft[i] = |'?';../*|
|00004890| 20 66 69 6c 6c 20 6f 75 | 74 20 77 69 74 68 20 3f | fill ou|t with ?|
|000048a0| 20 74 68 65 6e 20 2a 2f | 0d 0a 20 20 20 20 65 6c | then */|.. el|
|000048b0| 73 65 0d 0a 20 20 20 20 | 20 20 72 73 6c 74 2d 3e |se.. | rslt->|
|000048c0| 63 70 5f 66 74 5b 69 5d | 20 3d 20 63 75 72 2c 0d |cp_ft[i]| = cur,.|
|000048d0| 0a 20 20 20 20 20 20 6e | 61 6d 65 2b 2b 3b 0d 0a |. n|ame++;..|
|000048e0| 20 20 20 20 7d 0d 0a 20 | 20 69 66 28 2a 6e 61 6d | }.. | if(*nam|
|000048f0| 65 20 3d 3d 20 27 2a 27 | 29 20 2a 6e 61 6d 65 2b |e == '*'|) *name+|
|00004900| 2b 3b 09 09 2f 2a 20 67 | 65 74 20 6f 75 74 20 6f |+;../* g|et out o|
|00004910| 66 20 74 68 65 20 2a 20 | 2a 2f 0d 0a 20 20 69 66 |f the * |*/.. if|
|00004920| 28 2a 6e 61 6d 65 20 21 | 3d 20 30 29 0d 0a 20 20 |(*name !|= 0).. |
|00004930| 20 20 71 75 69 74 28 31 | 2c 22 5c 6e 63 70 6d 75 | quit(1|,"\ncpmu|
|00004940| 74 6c 3a 63 70 6d 20 66 | 69 6c 65 20 6e 61 6d 65 |tl:cpm f|ile name|
|00004950| 20 74 6f 20 6c 6f 6e 67 | 5c 6e 22 29 3b 0d 0a 7d | to long|\n");..}|
|00004960| 0d 0a 0d 0a 69 6e 69 5f | 65 78 74 28 72 73 6c 74 |....ini_|ext(rslt|
|00004970| 29 0d 0a 73 74 72 75 63 | 74 20 63 70 5f 64 69 72 |)..struc|t cp_dir|
|00004980| 5f 65 78 74 20 2a 72 73 | 6c 74 3b 0d 0a 7b 20 69 |_ext *rs|lt;..{ i|
|00004990| 6e 74 20 69 3b 0d 0a 20 | 20 72 73 6c 74 2d 3e 63 |nt i;.. | rslt->c|
|000049a0| 70 5f 65 74 20 3d 20 75 | 73 65 72 5f 6e 75 6d 3b |p_et = u|ser_num;|
|000049b0| 09 2f 2a 20 6d 61 72 6b | 20 74 68 69 73 20 65 78 |./* mark| this ex|
|000049c0| 74 65 6e 74 20 69 6e 20 | 75 73 65 20 2a 2f 0d 0a |tent in |use */..|
|000049d0| 20 20 66 6f 72 28 69 3d | 30 3b 20 69 3c 46 4e 5f | for(i=|0; i<FN_|
|000049e0| 53 5a 3b 20 69 2b 2b 29 | 09 2f 2a 20 73 65 74 20 |SZ; i++)|./* set |
|000049f0| 75 70 20 74 68 65 20 66 | 69 6c 65 20 6e 61 6d 65 |up the f|ile name|
|00004a00| 20 2a 2f 0d 0a 20 20 20 | 20 72 73 6c 74 2d 3e 63 | */.. | rslt->c|
|00004a10| 70 5f 66 6e 5b 69 5d 20 | 3d 20 53 50 41 43 45 3b |p_fn[i] |= SPACE;|
|00004a20| 0d 0a 20 20 66 6f 72 28 | 69 3d 30 3b 20 69 3c 46 |.. for(|i=0; i<F|
|00004a30| 54 5f 53 5a 3b 20 69 2b | 2b 29 09 2f 2a 20 61 6e |T_SZ; i+|+)./* an|
|00004a40| 64 20 74 68 65 20 66 69 | 6c 65 20 74 79 70 65 20 |d the fi|le type |
|00004a50| 2a 2f 0d 0a 20 20 20 20 | 72 73 6c 74 2d 3e 63 70 |*/.. |rslt->cp|
|00004a60| 5f 66 74 5b 69 5d 20 3d | 20 53 50 41 43 45 3b 0d |_ft[i] =| SPACE;.|
|00004a70| 0a 20 20 72 73 6c 74 2d | 3e 63 70 5f 72 63 20 3d |. rslt-|>cp_rc =|
|00004a80| 20 30 3b 09 09 2f 2a 20 | 6e 6f 20 72 65 63 6f 72 | 0;../* |no recor|
|00004a90| 64 73 20 79 65 74 20 2a | 2f 0d 0a 20 20 72 73 6c |ds yet *|/.. rsl|
|00004aa0| 74 2d 3e 63 70 5f 65 78 | 20 3d 20 30 3b 09 09 2f |t->cp_ex| = 0;../|
|00004ab0| 2a 20 72 65 6c 61 74 69 | 76 65 20 65 78 74 65 6e |* relati|ve exten|
|00004ac0| 74 20 6e 75 6d 62 65 72 | 20 2a 2f 0d 0a 20 20 66 |t number| */.. f|
|00004ad0| 6f 72 28 69 3d 30 3b 20 | 69 3c 44 4d 3b 20 69 2b |or(i=0; |i<DM; i+|
|00004ae0| 2b 29 0d 0a 20 20 20 20 | 72 73 6c 74 2d 3e 63 70 |+).. |rslt->cp|
|00004af0| 5f 64 6d 5b 69 5d 20 3d | 20 30 3b 09 09 2f 2a 20 |_dm[i] =| 0;../* |
|00004b00| 6e 6f 20 64 69 73 6b 20 | 73 70 61 63 65 20 61 73 |no disk |space as|
|00004b10| 73 69 67 6e 65 64 20 79 | 65 74 20 2a 2f 0d 0a 20 |signed y|et */.. |
|00004b20| 20 66 6f 72 28 69 3d 30 | 3b 20 69 3c 32 3b 20 69 | for(i=0|; i<2; i|
|00004b30| 2b 2b 29 0d 0a 20 20 20 | 20 72 73 6c 74 2d 3e 63 |++).. | rslt->c|
|00004b40| 70 5f 66 6c 5b 69 5d 20 | 3d 20 30 3b 09 09 2f 2a |p_fl[i] |= 0;../*|
|00004b50| 20 69 6e 69 74 69 6c 69 | 7a 65 20 66 69 6c 6c 65 | initili|ze fille|
|00004b60| 72 20 77 6f 72 64 73 20 | 2a 2f 0d 0a 7d 0d 0a 0c |r words |*/..}...|
|00004b70| 0d 0a 2f 2a 20 72 61 6e | 64 6f 6d 20 73 6d 61 6c |../* ran|dom smal|
|00004b80| 6c 20 73 75 62 72 6f 75 | 74 69 6e 65 73 20 2a 2f |l subrou|tines */|
|00004b90| 0d 0a 0d 0a 2f 2a 20 72 | 65 63 6f 72 64 20 69 6f |..../* r|ecord io|
|00004ba0| 20 65 72 72 6f 72 73 20 | 66 6f 72 20 61 20 74 72 | errors |for a tr|
|00004bb0| 61 6e 73 66 65 72 20 2a | 2f 0d 0a 69 6e 74 20 63 |ansfer *|/..int c|
|00004bc0| 75 72 5f 69 6f 5f 65 72 | 72 3b 0d 0a 6d 61 72 6b |ur_io_er|r;..mark|
|00004bd0| 65 72 72 73 28 29 0d 0a | 7b 20 63 75 72 5f 69 6f |errs()..|{ cur_io|
|00004be0| 5f 65 72 72 20 3d 20 69 | 6f 5f 65 72 72 3b 0d 0a |_err = i|o_err;..|
|00004bf0| 7d 0d 0a 0d 0a 2f 2a 20 | 70 72 69 6e 74 20 5b 6f |}..../* |print [o|
|00004c00| 6b 5d 20 6f 72 20 6e 75 | 6d 62 65 72 20 6f 66 20 |k] or nu|mber of |
|00004c10| 69 6f 20 65 72 72 6f 72 | 73 20 2a 2f 0d 0a 72 65 |io error|s */..re|
|00004c20| 70 6f 72 74 65 72 72 73 | 28 29 0d 0a 7b 20 69 66 |porterrs|()..{ if|
|00004c30| 28 63 75 72 5f 69 6f 5f | 65 72 72 20 21 3d 20 69 |(cur_io_|err != i|
|00004c40| 6f 5f 65 72 72 29 0d 0a | 20 20 20 20 66 70 72 69 |o_err)..| fpri|
|00004c50| 6e 74 66 28 73 74 64 65 | 72 72 2c 22 5c 6e 63 70 |ntf(stde|rr,"\ncp|
|00004c60| 6d 75 74 6c 3a 25 64 20 | 69 6f 20 65 72 72 6f 72 |mutl:%d |io error|
|00004c70| 73 5c 6e 22 2c 69 6f 5f | 65 72 72 2d 63 75 72 5f |s\n",io_|err-cur_|
|00004c80| 69 6f 5f 65 72 72 29 3b | 0d 0a 20 20 65 6c 73 65 |io_err);|.. else|
|00004c90| 0d 0a 20 20 20 20 66 70 | 72 69 6e 74 66 28 73 74 |.. fp|rintf(st|
|00004ca0| 64 6f 75 74 2c 22 20 5b | 6f 6b 5d 5c 6e 22 29 3b |dout," [|ok]\n");|
|00004cb0| 0d 0a 7d 0d 0a 0d 0a 2f | 2a 20 66 69 6e 64 20 74 |..}..../|* find t|
|00004cc0| 68 65 20 6e 65 78 74 20 | 66 69 6c 65 20 74 6f 20 |he next |file to |
|00004cd0| 6d 61 74 63 68 20 63 70 | 6d 5f 6e 61 6d 65 20 2a |match cp|m_name *|
|00004ce0| 2f 0d 0a 6c 6f 6f 6b 75 | 70 28 77 69 6c 64 2c 69 |/..looku|p(wild,i|
|00004cf0| 6e 64 65 78 29 0d 0a 69 | 6e 74 20 69 6e 64 65 78 |ndex)..i|nt index|
|00004d00| 3b 0d 0a 73 74 72 75 63 | 74 20 63 70 5f 64 69 72 |;..struc|t cp_dir|
|00004d10| 5f 65 78 74 20 2a 77 69 | 6c 64 3b 0d 0a 7b 20 69 |_ext *wi|ld;..{ i|
|00004d20| 6e 64 65 78 2b 2b 3b 09 | 09 09 09 2f 2a 20 73 6b |ndex++;.|.../* sk|
|00004d30| 69 70 20 6f 76 65 72 20 | 74 68 65 20 63 75 72 72 |ip over |the curr|
|00004d40| 65 6e 74 20 65 78 74 65 | 6e 74 20 2a 2f 0d 0a 20 |ent exte|nt */.. |
|00004d50| 20 66 6f 72 28 20 3b 20 | 69 6e 64 65 78 3c 43 50 | for( ; |index<CP|
|00004d60| 5f 4e 55 4d 44 49 52 3b | 20 69 6e 64 65 78 2b 2b |_NUMDIR;| index++|
|00004d70| 29 20 7b 0d 0a 20 20 20 | 20 69 66 20 28 28 63 70 |) {.. | if ((cp|
|00004d80| 5f 64 69 72 5b 69 6e 64 | 65 78 5d 2e 63 70 5f 65 |_dir[ind|ex].cp_e|
|00004d90| 74 20 3d 3d 20 44 45 4c | 46 29 20 7c 7c 20 2f 2a |t == DEL|F) || /*|
|00004da0| 20 66 6f 72 67 65 74 20 | 69 66 20 64 65 6c 65 74 | forget |if delet|
|00004db0| 65 64 20 2a 2f 0d 0a 20 | 20 20 20 20 20 20 20 28 |ed */.. | (|
|00004dc0| 63 70 5f 64 69 72 5b 69 | 6e 64 65 78 5d 2e 63 70 |cp_dir[i|ndex].cp|
|00004dd0| 5f 65 78 20 21 3d 20 30 | 29 20 7c 7c 09 2f 2a 20 |_ex != 0|) ||./* |
|00004de0| 20 6f 72 20 6e 6f 74 20 | 65 78 74 65 6e 74 20 30 | or not |extent 0|
|00004df0| 20 2a 2f 20 0d 0a 20 20 | 20 20 20 20 20 20 28 21 | */ .. | (!|
|00004e00| 6d 61 74 63 68 5f 65 78 | 74 28 77 69 6c 64 2c 26 |match_ex|t(wild,&|
|00004e10| 63 70 5f 64 69 72 5b 69 | 6e 64 65 78 5d 29 29 29 |cp_dir[i|ndex])))|
|00004e20| 0d 0a 20 20 20 20 20 20 | 63 6f 6e 74 69 6e 75 65 |.. |continue|
|00004e30| 3b 09 09 09 09 2f 2a 20 | 66 6f 72 67 65 74 20 69 |;..../* |forget i|
|00004e40| 74 20 2a 2f 0d 0a 20 20 | 20 20 72 65 74 75 72 6e |t */.. | return|
|00004e50| 28 69 6e 64 65 78 29 3b | 09 09 09 2f 2a 20 66 6f |(index);|.../* fo|
|00004e60| 75 6e 64 20 61 20 6d 61 | 74 63 68 20 2a 2f 0d 0a |und a ma|tch */..|
|00004e70| 20 20 20 20 7d 3b 0d 0a | 20 20 72 65 74 75 72 6e | };..| return|
|00004e80| 20 2d 31 3b 09 09 09 09 | 2f 2a 20 6e 6f 20 6d 6f | -1;....|/* no mo|
|00004e90| 72 65 20 6d 61 74 63 68 | 65 73 20 2a 2f 0d 0a 7d |re match|es */..}|
|00004ea0| 0d 0a 0d 0a 2f 2a 20 61 | 73 73 65 72 74 20 74 68 |..../* a|ssert th|
|00004eb0| 61 74 20 74 68 65 20 64 | 69 72 65 63 74 6f 72 79 |at the d|irectory|
|00004ec0| 20 68 61 73 20 6e 6f 74 | 20 62 65 65 6e 20 66 6f | has not| been fo|
|00004ed0| 75 6e 64 20 74 6f 20 62 | 65 20 69 6e 63 6f 6e 73 |und to b|e incons|
|00004ee0| 69 73 74 65 6e 74 20 2a | 2f 0d 0a 64 69 72 6f 6b |istent *|/..dirok|
|00004ef0| 28 29 0d 0a 7b 20 69 66 | 20 28 64 69 72 5f 65 72 |()..{ if| (dir_er|
|00004f00| 72 20 3d 3d 20 30 29 09 | 09 09 2f 2a 20 69 73 20 |r == 0).|../* is |
|00004f10| 74 68 65 20 64 69 72 65 | 63 74 6f 72 79 20 6f 6b |the dire|ctory ok|
|00004f20| 3f 20 2a 2f 0d 0a 20 20 | 20 20 72 65 74 75 72 6e |? */.. | return|
|00004f30| 3b 0d 0a 20 20 69 66 28 | 66 6c 61 67 28 27 6f 27 |;.. if(|flag('o'|
|00004f40| 29 29 20 7b 09 09 09 09 | 2f 2a 20 6f 76 65 72 72 |)) {....|/* overr|
|00004f50| 69 64 65 20 2a 2f 0d 0a | 20 20 20 20 66 70 72 69 |ide */..| fpri|
|00004f60| 6e 74 66 28 73 74 64 65 | 72 72 2c 0d 0a 20 20 20 |ntf(stde|rr,.. |
|00004f70| 20 20 20 22 5c 6e 63 70 | 6d 75 74 6c 3a 64 69 72 | "\ncp|mutl:dir|
|00004f80| 65 63 74 6f 72 79 20 68 | 61 73 20 25 64 20 65 72 |ectory h|as %d er|
|00004f90| 72 6f 72 28 73 29 2e 20 | 20 70 72 6f 63 65 65 64 |ror(s). | proceed|
|00004fa0| 69 6e 67 2e 2e 2e 5c 6e | 22 2c 64 69 72 5f 65 72 |ing...\n|",dir_er|
|00004fb0| 72 29 3b 0d 0a 20 20 20 | 20 72 65 74 75 72 6e 3b |r);.. | return;|
|00004fc0| 0d 0a 20 20 20 20 7d 0d | 0a 20 20 71 75 69 74 28 |.. }.|. quit(|
|00004fd0| 31 2c 22 5c 6e 63 70 6d | 75 74 6c 3a 63 6f 6d 6d |1,"\ncpm|utl:comm|
|00004fe0| 61 6e 64 20 61 62 6f 72 | 74 65 64 20 64 75 65 20 |and abor|ted due |
|00004ff0| 74 6f 20 25 64 20 64 69 | 72 65 63 74 6f 72 79 20 |to %d di|rectory |
|00005000| 65 72 72 6f 72 28 73 29 | 5c 6e 22 2c 64 69 72 5f |error(s)|\n",dir_|
|00005010| 65 72 72 29 3b 0d 0a 7d | 0d 0a 0c 0d 0a 2f 2a 20 |err);..}|...../* |
|00005020| 73 6f 6d 65 20 6d 6f 72 | 65 20 72 61 6e 64 6f 6d |some mor|e random|
|00005030| 20 73 75 62 72 6f 75 74 | 69 6e 65 73 20 2a 2f 0d | subrout|ines */.|
|00005040| 0a 0d 0a 2f 2a 20 74 6f | 6f 20 6d 61 6e 79 20 61 |.../* to|o many a|
|00005050| 72 67 73 20 2a 2f 0d 0a | 74 6f 6f 6d 61 6e 79 28 |rgs */..|toomany(|
|00005060| 29 0d 0a 7b 20 71 75 69 | 74 28 31 2c 22 5c 6e 63 |)..{ qui|t(1,"\nc|
|00005070| 70 6d 75 74 6c 3a 74 6f | 6f 20 6d 61 6e 79 20 61 |pmutl:to|o many a|
|00005080| 72 67 75 6d 65 6e 74 73 | 5c 6e 22 29 3b 0d 0a 7d |rguments|\n");..}|
|00005090| 0d 0a 0d 0a 2f 2a 20 74 | 6f 6f 20 66 65 77 20 61 |..../* t|oo few a|
|000050a0| 72 67 73 20 2a 2f 0d 0a | 74 6f 6f 66 65 77 28 29 |rgs */..|toofew()|
|000050b0| 0d 0a 7b 20 71 75 69 74 | 28 31 2c 22 5c 6e 63 70 |..{ quit|(1,"\ncp|
|000050c0| 6d 75 74 6c 3a 74 6f 6f | 20 66 65 77 20 61 72 67 |mutl:too| few arg|
|000050d0| 75 6d 65 6e 74 73 22 29 | 3b 0d 0a 7d 0d 0a 0d 0a |uments")|;..}....|
|000050e0| 2f 2a 20 69 6e 69 74 69 | 61 6c 69 7a 65 20 64 61 |/* initi|alize da|
|000050f0| 74 61 20 2a 2f 0d 0a 69 | 6e 69 74 5f 64 61 74 61 |ta */..i|nit_data|
|00005100| 28 29 0d 0a 7b 20 69 6e | 74 20 69 3b 0d 0a 20 20 |()..{ in|t i;.. |
|00005110| 66 6f 72 28 69 3d 30 3b | 20 69 3c 43 50 5f 41 4c |for(i=0;| i<CP_AL|
|00005120| 4f 43 3b 20 69 2b 2b 29 | 0d 0a 20 20 20 20 63 70 |OC; i++)|.. cp|
|00005130| 5f 62 74 62 5b 69 5d 20 | 3d 20 2d 31 3b 09 09 2f |_btb[i] |= -1;../|
|00005140| 2a 20 69 6e 69 74 69 61 | 6c 69 7a 65 20 74 68 65 |* initia|lize the|
|00005150| 20 62 69 74 20 74 61 62 | 6c 65 20 74 6f 20 66 72 | bit tab|le to fr|
|00005160| 65 65 20 2a 2f 0d 0a 20 | 20 64 73 6b 5f 69 6e 75 |ee */.. | dsk_inu|
|00005170| 73 65 3d 6e 75 6d 5f 66 | 69 6c 3d 6e 75 6d 5f 65 |se=num_f|il=num_e|
|00005180| 78 74 3d 30 3b 09 2f 2a | 20 72 61 6e 64 6f 6d 20 |xt=0;./*| random |
|00005190| 73 74 61 74 69 73 74 69 | 63 73 20 63 6f 75 6e 74 |statisti|cs count|
|000051a0| 65 72 73 20 2a 2f 0d 0a | 20 20 69 6f 5f 65 72 72 |ers */..| io_err|
|000051b0| 3d 64 69 72 5f 65 72 72 | 3d 30 3b 09 09 2f 2a 20 |=dir_err|=0;../* |
|000051c0| 65 72 72 6f 72 20 63 6f | 75 6e 74 73 20 2a 2f 0d |error co|unts */.|
|000051d0| 0a 20 20 66 6f 72 28 69 | 3d 30 3b 20 69 3c 43 50 |. for(i|=0; i<CP|
|000051e0| 5f 4e 55 4d 44 49 52 3b | 20 69 2b 2b 29 20 7b 09 |_NUMDIR;| i++) {.|
|000051f0| 2f 2a 20 73 65 74 20 75 | 70 20 74 68 65 20 6c 69 |/* set u|p the li|
|00005200| 6e 6b 73 20 2a 2f 0d 0a | 20 20 20 20 65 78 74 5f |nks */..| ext_|
|00005210| 6e 65 78 74 5b 69 5d 3d | 65 78 74 5f 70 72 65 76 |next[i]=|ext_prev|
|00005220| 5b 69 5d 20 3d 20 2d 31 | 3b 20 2f 2a 20 6e 6f 20 |[i] = -1|; /* no |
|00005230| 6c 69 6e 6b 73 20 2a 2f | 0d 0a 20 20 20 20 63 70 |links */|.. cp|
|00005240| 5f 6e 61 6d 65 5b 69 5d | 5b 30 5d 3d 30 3b 09 09 |_name[i]|[0]=0;..|
|00005250| 2f 2a 20 20 6f 72 20 6e | 61 6d 65 73 20 79 65 74 |/* or n|ames yet|
|00005260| 20 2a 2f 0d 0a 20 20 20 | 20 7d 0d 0a 20 20 66 6c | */.. | }.. fl|
|00005270| 6e 61 6d 65 20 3d 20 22 | 2f 64 65 76 2f 66 6c 6f |name = "|/dev/flo|
|00005280| 70 70 79 22 3b 09 20 2f | 2a 20 64 65 66 61 75 6c |ppy";. /|* defaul|
|00005290| 74 20 66 6c 6f 70 70 79 | 20 66 69 6c 65 20 2a 2f |t floppy| file */|
|000052a0| 0d 0a 7d 0d 0a 0d 0a 2f | 2a 20 6d 61 72 6b 20 61 |..}..../|* mark a|
|000052b0| 20 62 69 74 20 69 6e 20 | 75 73 65 20 69 6e 20 74 | bit in |use in t|
|000052c0| 68 65 20 62 69 74 20 74 | 61 62 6c 65 20 2a 2f 0d |he bit t|able */.|
|000052d0| 0a 73 65 74 5f 62 74 62 | 28 77 68 65 72 65 2c 77 |.set_btb|(where,w|
|000052e0| 68 6f 29 0d 0a 69 6e 74 | 20 77 68 65 72 65 2c 77 |ho)..int| where,w|
|000052f0| 68 6f 3b 0d 0a 7b 20 69 | 66 28 28 77 68 6f 20 21 |ho;..{ i|f((who !|
|00005300| 3d 20 44 49 52 5f 45 58 | 54 29 20 26 26 09 2f 2a |= DIR_EX|T) &&./*|
|00005310| 20 72 65 61 6c 6c 79 20 | 70 61 72 74 20 6f 66 20 | really |part of |
|00005320| 74 68 65 20 64 69 72 65 | 63 74 6f 72 79 3f 20 2a |the dire|ctory? *|
|00005330| 2f 0d 0a 20 20 20 20 20 | 28 77 68 65 72 65 20 3d |/.. |(where =|
|00005340| 3d 20 30 29 29 09 09 2f | 2a 20 69 73 20 69 74 20 |= 0))../|* is it |
|00005350| 72 65 61 6c 6c 79 20 61 | 6c 6c 6f 63 61 74 65 64 |really a|llocated|
|00005360| 3f 20 2a 2f 0d 0a 20 20 | 20 20 72 65 74 75 72 6e |? */.. | return|
|00005370| 3b 09 09 09 2f 2a 20 6e | 6f 2c 20 6a 75 73 74 20 |;.../* n|o, just |
|00005380| 61 20 70 6c 61 63 65 20 | 68 6f 6c 64 65 72 20 2a |a place |holder *|
|00005390| 2f 0d 0a 20 20 69 66 20 | 28 77 68 65 72 65 20 3e |/.. if |(where >|
|000053a0| 3d 20 43 50 5f 41 4c 4f | 43 29 20 7b 09 2f 2a 20 |= CP_ALO|C) {./* |
|000053b0| 64 6f 65 73 20 74 68 69 | 73 20 63 6c 75 73 74 65 |does thi|s cluste|
|000053c0| 72 20 65 78 69 73 74 3f | 20 2a 2f 0d 0a 20 20 20 |r exist?| */.. |
|000053d0| 20 64 69 72 5f 65 72 72 | 2b 2b 3b 0d 0a 20 20 20 | dir_err|++;.. |
|000053e0| 20 66 70 72 69 6e 74 66 | 28 73 74 64 65 72 72 2c | fprintf|(stderr,|
|000053f0| 22 5c 6e 63 70 6d 75 74 | 6c 3a 69 6c 6c 65 67 61 |"\ncpmut|l:illega|
|00005400| 6c 20 63 6c 75 73 74 65 | 72 20 25 64 20 69 6e 20 |l cluste|r %d in |
|00005410| 64 69 73 6b 20 6d 61 70 | 20 66 6f 72 20 22 2c 77 |disk map| for ",w|
|00005420| 68 65 72 65 29 3b 0d 0a | 20 20 20 20 70 72 6e 61 |here);..| prna|
|00005430| 6d 65 28 77 68 6f 29 3b | 0d 0a 20 20 20 20 66 70 |me(who);|.. fp|
|00005440| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 22 5c 6e |rintf(st|derr,"\n|
|00005450| 22 29 3b 0d 0a 20 20 20 | 20 7d 0d 0a 20 20 65 6c |");.. | }.. el|
|00005460| 73 65 20 69 66 20 28 63 | 70 5f 62 74 62 5b 77 68 |se if (c|p_btb[wh|
|00005470| 65 72 65 5d 20 21 3d 20 | 2d 31 29 20 7b 20 2f 2a |ere] != |-1) { /*|
|00005480| 20 68 61 73 20 73 6f 6d | 65 6f 6e 65 20 65 6c 73 | has som|eone els|
|00005490| 65 20 61 6c 72 65 61 64 | 79 20 63 6c 61 69 6d 65 |e alread|y claime|
|000054a0| 64 20 69 74 3f 20 2a 2f | 0d 0a 20 20 20 20 64 69 |d it? */|.. di|
|000054b0| 72 5f 65 72 72 2b 2b 3b | 0d 0a 20 20 20 20 66 70 |r_err++;|.. fp|
|000054c0| 72 69 6e 74 66 28 73 74 | 64 65 72 72 2c 22 5c 6e |rintf(st|derr,"\n|
|000054d0| 63 70 6d 75 74 6c 3a 43 | 6c 75 73 74 65 72 20 25 |cpmutl:C|luster %|
|000054e0| 64 20 6d 75 6c 74 69 70 | 6c 79 20 6c 69 6e 6b 65 |d multip|ly linke|
|000054f0| 64 3a 5c 6e 22 2c 77 68 | 65 72 65 29 3b 0d 0a 20 |d:\n",wh|ere);.. |
|00005500| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00005510| 72 2c 22 20 20 66 69 72 | 73 74 20 66 69 6c 65 3a |r," fir|st file:|
|00005520| 20 22 29 3b 20 70 72 6e | 61 6d 65 28 77 68 6f 29 | "); prn|ame(who)|
|00005530| 3b 0d 0a 20 20 20 20 66 | 70 72 69 6e 74 66 28 73 |;.. f|printf(s|
|00005540| 74 64 65 72 72 2c 22 20 | 20 73 65 63 6f 6e 64 20 |tderr," | second |
|00005550| 66 69 6c 65 3a 20 22 29 | 3b 20 70 72 6e 61 6d 65 |file: ")|; prname|
|00005560| 28 63 70 5f 62 74 62 5b | 77 68 65 72 65 5d 29 3b |(cp_btb[|where]);|
|00005570| 0d 0a 20 20 20 20 7d 0d | 0a 20 20 65 6c 73 65 20 |.. }.|. else |
|00005580| 7b 0d 0a 20 20 20 20 63 | 70 5f 62 74 62 5b 77 68 |{.. c|p_btb[wh|
|00005590| 65 72 65 5d 20 3d 20 77 | 68 6f 3b 09 2f 2a 20 72 |ere] = w|ho;./* r|
|000055a0| 65 6d 65 6d 62 65 72 20 | 77 68 6f 20 68 61 73 20 |emember |who has |
|000055b0| 69 74 20 66 6f 72 20 64 | 65 62 75 67 67 69 6e 67 |it for d|ebugging|
|000055c0| 20 2a 2f 0d 0a 20 20 20 | 20 64 73 6b 5f 69 6e 75 | */.. | dsk_inu|
|000055d0| 73 65 2b 2b 3b 09 09 2f | 2a 20 6f 6e 65 20 6d 6f |se++;../|* one mo|
|000055e0| 72 65 20 63 6c 75 73 74 | 65 72 20 69 6e 20 75 73 |re clust|er in us|
|000055f0| 65 20 2a 2f 0d 0a 20 20 | 20 20 7d 0d 0a 7d 0d 0a |e */.. | }..}..|
|00005600| 0d 0a 2f 2a 20 70 72 69 | 6e 74 20 74 68 65 20 6e |../* pri|nt the n|
|00005610| 61 6d 65 20 6f 66 20 61 | 20 66 69 6c 65 20 2a 2f |ame of a| file */|
|00005620| 0d 0a 70 72 6e 61 6d 65 | 28 69 6e 64 65 78 29 0d |..prname|(index).|
|00005630| 0a 69 6e 74 20 69 6e 64 | 65 78 3b 0d 0a 7b 20 69 |.int ind|ex;..{ i|
|00005640| 6e 74 20 69 2c 74 65 6d | 70 3b 0d 0a 20 20 69 66 |nt i,tem|p;.. if|
|00005650| 28 69 6e 64 65 78 20 3d | 3d 20 44 49 52 5f 45 58 |(index =|= DIR_EX|
|00005660| 54 29 0d 0a 20 20 20 20 | 66 70 72 69 6e 74 66 28 |T).. |fprintf(|
|00005670| 73 74 64 65 72 72 2c 22 | 64 69 72 65 63 74 6f 72 |stderr,"|director|
|00005680| 79 5c 6e 22 29 3b 0d 0a | 20 20 65 6c 73 65 0d 0a |y\n");..| else..|
|00005690| 20 20 20 20 66 70 72 69 | 6e 74 66 28 73 74 64 65 | fpri|ntf(stde|
|000056a0| 72 72 2c 22 6e 61 6d 65 | 3a 5b 25 64 5d 25 73 2c |rr,"name|:[%d]%s,|
|000056b0| 20 65 78 74 65 6e 74 3a | 25 64 2c 20 72 65 63 73 | extent:|%d, recs|
|000056c0| 3a 25 64 2c 20 73 6c 6f | 74 3a 25 64 5c 6e 22 2c |:%d, slo|t:%d\n",|
|000056d0| 0d 0a 09 20 20 20 20 63 | 70 5f 64 69 72 5b 69 6e |... c|p_dir[in|
|000056e0| 64 65 78 5d 2e 63 70 5f | 65 74 2c 63 70 5f 6e 61 |dex].cp_|et,cp_na|
|000056f0| 6d 65 5b 69 6e 64 65 78 | 5d 2c 63 70 5f 64 69 72 |me[index|],cp_dir|
|00005700| 5b 69 6e 64 65 78 5d 2e | 63 70 5f 65 78 2c 0d 0a |[index].|cp_ex,..|
|00005710| 09 20 20 20 20 63 70 5f | 64 69 72 5b 69 6e 64 65 |. cp_|dir[inde|
|00005720| 78 5d 2e 63 70 5f 72 63 | 2c 69 6e 64 65 78 29 3b |x].cp_rc|,index);|
|00005730| 0d 0a 7d 0d 0a 0d 0a 2f | 2a 20 63 68 65 63 6b 20 |..}..../|* check |
|00005740| 74 68 61 74 20 74 68 65 | 20 72 65 63 6f 72 64 20 |that the| record |
|00005750| 63 6f 75 6e 74 20 66 6f | 72 20 69 6e 64 65 78 20 |count fo|r index |
|00005760| 69 73 20 63 6f 6e 73 69 | 73 74 65 6e 74 20 77 69 |is consi|stent wi|
|00005770| 74 68 20 2a 2f 0d 0a 2f | 2a 20 74 68 65 20 6c 69 |th */../|* the li|
|00005780| 73 74 20 6f 66 20 63 6c | 75 73 74 65 72 73 20 61 |st of cl|usters a|
|00005790| 6c 6c 6f 63 61 74 65 64 | 20 74 6f 20 69 74 20 69 |llocated| to it i|
|000057a0| 6e 20 74 68 65 20 65 78 | 74 65 6e 74 20 6d 61 70 |n the ex|tent map|
|000057b0| 20 2a 2f 0d 0a 63 68 65 | 63 6b 5f 72 63 28 69 6e | */..che|ck_rc(in|
|000057c0| 64 65 78 29 0d 0a 69 6e | 74 20 69 6e 64 65 78 3b |dex)..in|t index;|
|000057d0| 0d 0a 7b 20 69 6e 74 20 | 62 69 74 5f 61 6c 6f 63 |..{ int |bit_aloc|
|000057e0| 2c 6a 3b 0d 0a 20 20 62 | 69 74 5f 61 6c 6f 63 3d |,j;.. b|it_aloc=|
|000057f0| 28 63 70 5f 64 69 72 5b | 69 6e 64 65 78 5d 2e 63 |(cp_dir[|index].c|
|00005800| 70 5f 72 63 2b 43 50 5f | 43 4c 55 53 54 45 52 2d |p_rc+CP_|CLUSTER-|
|00005810| 31 29 2f 43 50 5f 43 4c | 55 53 54 45 52 3b 0d 0a |1)/CP_CL|USTER;..|
|00005820| 20 20 69 66 28 62 69 74 | 5f 61 6c 6f 63 20 3e 20 | if(bit|_aloc > |
|00005830| 44 4d 29 20 7b 09 09 09 | 2f 2a 20 69 73 20 69 74 |DM) {...|/* is it|
|00005840| 20 69 6e 20 72 61 6e 67 | 65 3f 20 2a 2f 0d 0a 20 | in rang|e? */.. |
|00005850| 20 20 20 64 69 72 5f 65 | 72 72 2b 2b 3b 09 09 09 | dir_e|rr++;...|
|00005860| 09 2f 2a 20 6e 6f 20 2a | 2f 0d 0a 20 20 20 20 66 |./* no *|/.. f|
|00005870| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 22 5c |printf(s|tderr,"\|
|00005880| 6e 63 70 6d 75 74 6c 3a | 72 65 63 6f 72 64 20 63 |ncpmutl:|record c|
|00005890| 6f 75 6e 74 20 6f 75 74 | 20 6f 66 20 62 6f 75 6e |ount out| of boun|
|000058a0| 64 73 5c 6e 20 20 66 6f | 72 20 65 78 74 65 6e 74 |ds\n fo|r extent|
|000058b0| 3a 22 29 3b 0d 0a 20 20 | 20 20 70 72 6e 61 6d 65 |:");.. | prname|
|000058c0| 28 69 6e 64 65 78 29 3b | 0d 0a 20 20 20 20 72 65 |(index);|.. re|
|000058d0| 74 75 72 6e 3b 09 09 09 | 09 2f 2a 20 67 69 76 65 |turn;...|./* give|
|000058e0| 20 75 70 20 6f 6e 20 74 | 68 69 73 20 6f 6e 65 20 | up on t|his one |
|000058f0| 2a 2f 0d 0a 20 20 20 20 | 7d 0d 0a 0d 0a 20 20 66 |*/.. |}.... f|
|00005900| 6f 72 28 6a 3d 30 3b 20 | 6a 3c 62 69 74 5f 61 6c |or(j=0; |j<bit_al|
|00005910| 6f 63 3b 20 6a 2b 2b 29 | 09 09 2f 2a 20 74 68 65 |oc; j++)|../* the|
|00005920| 72 65 20 73 68 6f 75 6c | 64 20 62 65 20 65 6e 6f |re shoul|d be eno|
|00005930| 75 67 68 20 63 6c 75 73 | 74 65 72 73 20 2a 2f 0d |ugh clus|ters */.|
|00005940| 0a 20 20 20 20 69 66 28 | 63 70 5f 64 69 72 5b 69 |. if(|cp_dir[i|
|00005950| 6e 64 65 78 5d 2e 63 70 | 5f 64 6d 5b 6a 5d 20 3d |ndex].cp|_dm[j] =|
|00005960| 3d 20 30 29 09 2f 2a 20 | 61 6c 6c 6f 63 61 74 65 |= 0)./* |allocate|
|00005970| 64 20 74 6f 20 63 6f 76 | 65 72 20 61 6c 6c 20 72 |d to cov|er all r|
|00005980| 65 63 6f 72 64 73 20 2a | 2f 0d 0a 20 20 20 20 20 |ecords *|/.. |
|00005990| 20 64 69 72 5f 65 72 72 | 2b 2b 2c 09 09 09 2f 2a | dir_err|++,.../*|
|000059a0| 20 65 6c 73 65 20 61 6e | 20 65 72 72 6f 72 20 2a | else an| error *|
|000059b0| 2f 0d 0a 20 20 20 20 20 | 20 66 70 72 69 6e 74 66 |/.. | fprintf|
|000059c0| 28 73 74 64 65 72 72 2c | 0d 0a 20 20 20 20 20 20 |(stderr,|.. |
|000059d0| 20 20 22 5c 6e 63 70 6d | 75 74 6c 3a 61 6c 6c 6f | "\ncpm|utl:allo|
|000059e0| 63 61 74 69 6f 6e 20 69 | 6e 64 65 78 20 25 64 20 |cation i|ndex %d |
|000059f0| 73 68 6f 75 6c 64 20 62 | 65 20 61 6c 6c 6f 63 61 |should b|e alloca|
|00005a00| 74 65 64 20 62 75 74 20 | 69 73 6e 27 74 5c 6e 22 |ted but |isn't\n"|
|00005a10| 2c 6a 29 2c 0d 0a 20 20 | 20 20 20 20 66 70 72 69 |,j),.. | fpri|
|00005a20| 6e 74 66 28 73 74 64 65 | 72 72 2c 22 20 20 66 6f |ntf(stde|rr," fo|
|00005a30| 72 20 65 78 74 65 6e 74 | 3a 22 29 2c 0d 0a 20 20 |r extent|:"),.. |
|00005a40| 20 20 20 20 70 72 6e 61 | 6d 65 28 6a 29 3b 0d 0a | prna|me(j);..|
|00005a50| 0d 0a 20 20 66 6f 72 28 | 6a 3d 62 69 74 5f 61 6c |.. for(|j=bit_al|
|00005a60| 6f 63 3b 20 6a 3c 44 4d | 3b 20 6a 2b 2b 29 09 09 |oc; j<DM|; j++)..|
|00005a70| 2f 2a 20 74 68 65 20 72 | 65 73 74 20 28 69 66 20 |/* the r|est (if |
|00005a80| 61 6e 79 29 20 73 68 6f | 75 6c 64 6e 27 74 20 62 |any) sho|uldn't b|
|00005a90| 65 20 2a 2f 0d 0a 20 20 | 20 20 69 66 28 63 70 5f |e */.. | if(cp_|
|00005aa0| 64 69 72 5b 69 6e 64 65 | 78 5d 2e 63 70 5f 64 6d |dir[inde|x].cp_dm|
|00005ab0| 5b 6a 5d 20 21 3d 20 30 | 29 09 2f 2a 20 61 6c 6c |[j] != 0|)./* all|
|00005ac0| 6f 63 61 74 65 64 20 2a | 2f 0d 0a 20 20 20 20 20 |ocated *|/.. |
|00005ad0| 20 64 69 72 5f 65 72 72 | 2b 2b 2c 09 09 09 2f 2a | dir_err|++,.../*|
|00005ae0| 20 65 6c 73 65 20 61 6e | 20 65 72 72 6f 72 20 2a | else an| error *|
|00005af0| 2f 0d 0a 20 20 20 20 20 | 20 66 70 72 69 6e 74 66 |/.. | fprintf|
|00005b00| 28 73 74 64 65 72 72 2c | 0d 0a 20 20 20 20 20 20 |(stderr,|.. |
|00005b10| 20 20 22 5c 6e 63 70 6d | 75 74 6c 3a 61 6c 6c 6f | "\ncpm|utl:allo|
|00005b20| 63 61 74 69 6f 6e 20 69 | 6e 64 65 78 20 25 64 20 |cation i|ndex %d |
|00005b30| 73 68 6f 75 6c 64 6e 27 | 74 20 62 65 20 61 6c 6c |shouldn'|t be all|
|00005b40| 6f 63 61 74 65 64 20 62 | 75 74 20 69 73 5c 6e 22 |ocated b|ut is\n"|
|00005b50| 2c 6a 29 2c 0d 0a 20 20 | 20 20 20 20 66 70 72 69 |,j),.. | fpri|
|00005b60| 6e 74 66 28 73 74 64 65 | 72 72 2c 22 20 20 66 6f |ntf(stde|rr," fo|
|00005b70| 72 20 65 78 74 65 6e 74 | 3a 22 29 2c 0d 0a 20 20 |r extent|:"),.. |
|00005b80| 20 20 20 20 70 72 6e 61 | 6d 65 28 6a 29 3b 0d 0a | prna|me(j);..|
|00005b90| 7d 0d 0a 0c 0d 0a 2f 2a | 20 6c 69 6e 6b 20 65 78 |}...../*| link ex|
|00005ba0| 74 72 61 20 65 78 74 65 | 6e 74 73 20 74 6f 20 74 |tra exte|nts to t|
|00005bb0| 68 65 72 65 20 6e 65 78 | 74 20 6c 6f 77 65 72 20 |here nex|t lower |
|00005bc0| 65 78 74 65 6e 74 20 2a | 2f 0d 0a 6c 69 6e 6b 5f |extent *|/..link_|
|00005bd0| 65 78 74 28 29 0d 0a 7b | 20 69 6e 74 20 69 6e 64 |ext()..{| int ind|
|00005be0| 65 78 2c 6a 3b 0d 0a 20 | 20 66 6f 72 28 69 6e 64 |ex,j;.. | for(ind|
|00005bf0| 65 78 3d 30 3b 20 69 6e | 64 65 78 3c 43 50 5f 4e |ex=0; in|dex<CP_N|
|00005c00| 55 4d 44 49 52 3b 20 69 | 6e 64 65 78 2b 2b 29 20 |UMDIR; i|ndex++) |
|00005c10| 7b 20 2f 2a 20 6c 69 6e | 6b 20 74 6f 20 70 72 65 |{ /* lin|k to pre|
|00005c20| 76 69 6f 75 73 20 65 78 | 74 65 6e 74 73 20 2a 2f |vious ex|tents */|
|00005c30| 0d 0a 20 20 20 20 69 66 | 20 28 28 63 70 5f 64 69 |.. if| ((cp_di|
|00005c40| 72 5b 69 6e 64 65 78 5d | 2e 63 70 5f 65 74 20 3d |r[index]|.cp_et =|
|00005c50| 3d 20 44 45 4c 46 29 20 | 7c 7c 20 2f 2a 20 69 66 |= DELF) ||| /* if|
|00005c60| 20 74 68 69 73 20 65 78 | 74 65 6e 74 20 69 73 20 | this ex|tent is |
|00005c70| 64 65 6c 65 74 65 64 20 | 2a 2f 0d 0a 20 20 20 20 |deleted |*/.. |
|00005c80| 20 20 20 20 28 63 70 5f | 64 69 72 5b 69 6e 64 65 | (cp_|dir[inde|
|00005c90| 78 5d 2e 63 70 5f 65 78 | 20 3d 3d 20 30 29 29 09 |x].cp_ex| == 0)).|
|00005ca0| 2f 2a 20 20 6f 72 20 74 | 68 65 72 65 20 69 73 20 |/* or t|here is |
|00005cb0| 6e 6f 20 6c 6f 77 65 72 | 20 65 78 74 65 6e 74 20 |no lower| extent |
|00005cc0| 2a 2f 0d 0a 20 20 20 20 | 20 20 63 6f 6e 74 69 6e |*/.. | contin|
|00005cd0| 75 65 3b 09 09 09 09 2f | 2a 20 74 68 65 6e 20 6e |ue;..../|* then n|
|00005ce0| 6f 74 68 69 6e 67 20 74 | 6f 20 6c 69 6e 6b 20 74 |othing t|o link t|
|00005cf0| 6f 20 2a 2f 0d 0a 20 20 | 20 20 66 6f 72 28 6a 3d |o */.. | for(j=|
|00005d00| 30 3b 20 6a 3c 43 50 5f | 4e 55 4d 44 49 52 3b 20 |0; j<CP_|NUMDIR; |
|00005d10| 6a 2b 2b 29 20 7b 09 2f | 2a 20 66 69 6e 64 20 74 |j++) {./|* find t|
|00005d20| 68 65 20 6c 6f 77 65 72 | 20 65 78 74 65 6e 74 20 |he lower| extent |
|00005d30| 2a 2f 0d 0a 20 20 20 20 | 20 20 69 66 20 28 28 63 |*/.. | if ((c|
|00005d40| 70 5f 64 69 72 5b 6a 5d | 2e 63 70 5f 65 78 20 21 |p_dir[j]|.cp_ex !|
|00005d50| 3d 20 63 70 5f 64 69 72 | 5b 69 6e 64 65 78 5d 2e |= cp_dir|[index].|
|00005d60| 63 70 5f 65 78 2d 31 29 | 20 7c 7c 20 2f 2a 20 77 |cp_ex-1)| || /* w|
|00005d70| 72 6f 6e 67 20 65 78 74 | 3f 20 2a 2f 0d 0a 09 20 |rong ext|? */... |
|00005d80| 20 28 63 70 5f 64 69 72 | 5b 6a 5d 2e 63 70 5f 65 | (cp_dir|[j].cp_e|
|00005d90| 74 20 21 3d 20 63 70 5f | 64 69 72 5b 69 6e 64 65 |t != cp_|dir[inde|
|00005da0| 78 5d 2e 63 70 5f 65 74 | 29 20 7c 7c 20 2f 2a 20 |x].cp_et|) || /* |
|00005db0| 6f 72 20 77 72 6f 6e 67 | 20 75 73 65 72 20 2a 2f |or wrong| user */|
|00005dc0| 0d 0a 20 20 20 20 20 20 | 20 20 20 20 28 73 74 72 |.. | (str|
|00005dd0| 63 6d 70 28 63 70 5f 6e | 61 6d 65 5b 6a 5d 2c 63 |cmp(cp_n|ame[j],c|
|00005de0| 70 5f 6e 61 6d 65 5b 69 | 6e 64 65 78 5d 29 20 21 |p_name[i|ndex]) !|
|00005df0| 3d 20 30 29 29 20 2f 2a | 20 20 6f 72 20 74 68 65 |= 0)) /*| or the|
|00005e00| 20 77 72 6f 6e 67 20 6e | 61 6d 65 20 2a 2f 0d 0a | wrong n|ame */..|
|00005e10| 20 20 20 20 20 20 20 20 | 63 6f 6e 74 69 6e 75 65 | |continue|
|00005e20| 3b 09 09 09 2f 2a 20 20 | 74 68 65 6e 20 6b 65 65 |;.../* |then kee|
|00005e30| 70 20 6c 6f 6f 6b 69 6e | 67 20 2a 2f 0d 0a 20 20 |p lookin|g */.. |
|00005e40| 20 20 20 20 65 78 74 5f | 6e 65 78 74 5b 6a 5d 20 | ext_|next[j] |
|00005e50| 3d 20 69 6e 64 65 78 3b | 09 09 2f 2a 20 73 65 74 |= index;|../* set|
|00005e60| 20 74 68 65 20 6c 69 6e | 6b 73 20 2a 2f 0d 0a 20 | the lin|ks */.. |
|00005e70| 20 20 20 20 20 65 78 74 | 5f 70 72 65 76 5b 69 6e | ext|_prev[in|
|00005e80| 64 65 78 5d 20 3d 20 6a | 3b 0d 0a 20 20 20 20 20 |dex] = j|;.. |
|00005e90| 20 69 66 28 63 70 5f 64 | 69 72 5b 6a 5d 2e 63 70 | if(cp_d|ir[j].cp|
|00005ea0| 5f 72 63 20 21 3d 20 53 | 45 43 29 09 2f 2a 20 74 |_rc != S|EC)./* t|
|00005eb0| 68 65 20 6c 6f 77 65 72 | 20 65 78 74 65 6e 74 20 |he lower| extent |
|00005ec0| 64 6f 65 73 20 68 61 76 | 65 20 74 68 65 20 2a 2f |does hav|e the */|
|00005ed0| 0d 0a 20 20 20 20 20 20 | 20 20 64 69 72 5f 65 72 |.. | dir_er|
|00005ee0| 72 2b 2b 2c 09 09 09 2f | 2a 20 63 6f 72 72 65 63 |r++,.../|* correc|
|00005ef0| 74 20 72 65 63 6f 72 64 | 20 63 6f 75 6e 74 20 64 |t record| count d|
|00005f00| 6f 65 73 6e 27 74 20 69 | 74 3f 20 2a 2f 0d 0a 20 |oesn't i|t? */.. |
|00005f10| 20 20 20 20 20 20 20 66 | 70 72 69 6e 74 66 28 73 | f|printf(s|
|00005f20| 74 64 65 72 72 2c 22 5c | 6e 63 70 6d 75 74 6c 3a |tderr,"\|ncpmutl:|
|00005f30| 69 6e 63 6f 72 72 65 63 | 74 20 72 65 63 6f 72 64 |incorrec|t record|
|00005f40| 20 63 6f 75 6e 74 3a 20 | 22 29 2c 0d 0a 20 20 20 | count: |"),.. |
|00005f50| 20 20 20 20 20 70 72 6e | 61 6d 65 28 6a 29 3b 0d | prn|ame(j);.|
|00005f60| 0a 20 20 20 20 20 20 62 | 72 65 61 6b 3b 0d 0a 20 |. b|reak;.. |
|00005f70| 20 20 20 20 20 7d 3b 0d | 0a 20 20 20 20 69 66 20 | };.|. if |
|00005f80| 28 6a 20 3e 3d 20 43 50 | 5f 4e 55 4d 44 49 52 29 |(j >= CP|_NUMDIR)|
|00005f90| 20 7b 09 09 2f 2a 20 77 | 61 73 20 61 20 6c 6f 77 | {../* w|as a low|
|00005fa0| 65 72 20 65 78 74 65 6e | 74 20 66 6f 75 6e 64 20 |er exten|t found |
|00005fb0| 3f 20 2a 2f 0d 0a 20 20 | 20 20 20 20 64 69 72 5f |? */.. | dir_|
|00005fc0| 65 72 72 2b 2b 3b 09 09 | 09 2f 2a 20 6e 6f 2c 20 |err++;..|./* no, |
|00005fd0| 74 68 61 74 20 69 73 20 | 61 6e 20 65 72 72 6f 72 |that is |an error|
|00005fe0| 20 2a 2f 0d 0a 20 20 20 | 20 20 20 66 70 72 69 6e | */.. | fprin|
|00005ff0| 74 66 28 73 74 64 65 72 | 72 2c 22 5c 6e 63 70 6d |tf(stder|r,"\ncpm|
|00006000| 75 74 6c 3a 63 61 6e 27 | 74 20 66 69 6e 64 20 6c |utl:can'|t find l|
|00006010| 6f 77 65 72 20 65 78 74 | 65 6e 74 3a 20 22 29 3b |ower ext|ent: ");|
|00006020| 20 70 72 6e 61 6d 65 28 | 69 6e 64 65 78 29 3b 0d | prname(|index);.|
|00006030| 0a 20 20 20 20 20 20 7d | 0d 0a 20 20 20 20 7d 0d |. }|.. }.|
|00006040| 0a 7d 0d 0a 0d 0a 2f 2a | 20 73 65 74 20 63 70 5f |.}..../*| set cp_|
|00006050| 6e 61 6d 65 20 66 72 6f | 6d 20 63 70 5f 66 6e 20 |name fro|m cp_fn |
|00006060| 61 6e 64 20 63 70 5f 66 | 74 20 2a 2f 0d 0a 73 65 |and cp_f|t */..se|
|00006070| 74 6e 61 6d 65 28 69 6e | 64 65 78 29 0d 0a 7b 20 |tname(in|dex)..{ |
|00006080| 69 6e 74 20 69 2c 6a 2c | 74 65 6d 70 3b 0d 0a 20 |int i,j,|temp;.. |
|00006090| 20 6a 3d 30 3b 09 09 09 | 09 09 2f 2a 20 69 6e 64 | j=0;...|../* ind|
|000060a0| 65 78 20 69 6e 74 6f 20 | 74 68 65 20 66 69 6c 65 |ex into |the file|
|000060b0| 20 6e 61 6d 65 20 2a 2f | 09 0d 0a 20 20 66 6f 72 | name */|... for|
|000060c0| 28 69 3d 30 3b 20 69 3c | 46 4e 5f 53 5a 3b 20 69 |(i=0; i<|FN_SZ; i|
|000060d0| 2b 2b 29 20 7b 0d 0a 20 | 20 20 20 74 65 6d 70 20 |++) {.. | temp |
|000060e0| 3d 20 6e 70 28 63 70 5f | 64 69 72 5b 69 6e 64 65 |= np(cp_|dir[inde|
|000060f0| 78 5d 2e 63 70 5f 66 6e | 5b 69 5d 29 3b 20 2f 2a |x].cp_fn|[i]); /*|
|00006100| 20 6e 6f 20 70 68 6f 6f | 6e 6c 79 20 61 74 74 72 | no phoo|nly attr|
|00006110| 69 62 75 74 65 73 20 2a | 2f 0d 0a 20 20 20 20 69 |ibutes *|/.. i|
|00006120| 66 20 28 28 74 65 6d 70 | 20 3c 20 53 50 41 43 45 |f ((temp| < SPACE|
|00006130| 29 20 7c 7c 20 74 65 6d | 70 20 3d 3d 20 30 31 37 |) || tem|p == 017|
|00006140| 37 29 09 2f 2a 20 69 73 | 20 69 74 20 70 72 69 6e |7)./* is| it prin|
|00006150| 74 61 62 6c 65 3f 20 2a | 2f 0d 0a 20 20 20 20 20 |table? *|/.. |
|00006160| 20 64 69 72 5f 65 72 72 | 2b 2b 2c 0d 0a 20 20 20 | dir_err|++,.. |
|00006170| 20 20 20 66 70 72 69 6e | 74 66 28 73 74 64 65 72 | fprin|tf(stder|
|00006180| 72 2c 0d 0a 20 20 20 20 | 20 20 20 20 22 5c 6e 63 |r,.. | "\nc|
|00006190| 70 6d 75 74 6c 3a 69 6c | 6c 65 67 61 6c 20 63 68 |pmutl:il|legal ch|
|000061a0| 61 72 20 30 25 6f 20 69 | 6e 20 66 69 6c 65 20 6e |ar 0%o i|n file n|
|000061b0| 61 6d 65 2c 20 73 6c 6f | 74 3a 25 64 5c 6e 22 2c |ame, slo|t:%d\n",|
|000061c0| 74 65 6d 70 2c 69 6e 64 | 65 78 29 3b 0d 0a 20 20 |temp,ind|ex);.. |
|000061d0| 20 20 69 66 20 28 74 65 | 6d 70 20 3d 3d 20 53 50 | if (te|mp == SP|
|000061e0| 41 43 45 29 0d 0a 20 20 | 20 20 20 20 62 72 65 61 |ACE).. | brea|
|000061f0| 6b 3b 09 09 09 09 2f 2a | 20 73 74 6f 70 20 6f 6e |k;..../*| stop on|
|00006200| 20 61 20 73 70 61 63 65 | 20 2a 2f 0d 0a 20 20 20 | a space| */.. |
|00006210| 20 63 70 5f 6e 61 6d 65 | 5b 69 6e 64 65 78 5d 5b | cp_name|[index][|
|00006220| 6a 2b 2b 5d 20 3d 20 74 | 65 6d 70 3b 0d 0a 20 20 |j++] = t|emp;.. |
|00006230| 20 20 7d 0d 0a 20 20 63 | 70 5f 6e 61 6d 65 5b 69 | }.. c|p_name[i|
|00006240| 6e 64 65 78 5d 5b 6a 2b | 2b 5d 20 3d 20 27 2e 27 |ndex][j+|+] = '.'|
|00006250| 3b 09 09 2f 2a 20 70 75 | 74 20 69 6e 20 74 68 65 |;../* pu|t in the|
|00006260| 20 2e 20 2a 2f 0d 0a 20 | 20 66 6f 72 28 69 3d 30 | . */.. | for(i=0|
|00006270| 3b 20 69 3c 46 54 5f 53 | 5a 3b 20 69 2b 2b 29 20 |; i<FT_S|Z; i++) |
|00006280| 7b 0d 0a 20 20 20 20 74 | 65 6d 70 20 3d 20 6e 70 |{.. t|emp = np|
|00006290| 28 63 70 5f 64 69 72 5b | 69 6e 64 65 78 5d 2e 63 |(cp_dir[|index].c|
|000062a0| 70 5f 66 74 5b 69 5d 29 | 3b 09 2f 2a 20 6e 6f 20 |p_ft[i])|;./* no |
|000062b0| 70 68 6f 6f 6e 6c 79 20 | 61 74 74 72 69 62 75 74 |phoonly |attribut|
|000062c0| 65 73 20 2a 2f 0d 0a 20 | 20 20 20 69 66 20 28 28 |es */.. | if ((|
|000062d0| 74 65 6d 70 20 3c 20 53 | 50 41 43 45 29 20 7c 7c |temp < S|PACE) |||
|000062e0| 20 74 65 6d 70 20 3d 3d | 20 30 31 37 37 29 09 2f | temp ==| 0177)./|
|000062f0| 2a 20 69 73 20 69 74 20 | 70 72 69 6e 74 61 62 6c |* is it |printabl|
|00006300| 65 3f 20 2a 2f 0d 0a 20 | 20 20 20 20 20 64 69 72 |e? */.. | dir|
|00006310| 5f 65 72 72 2b 2b 2c 0d | 0a 20 20 20 20 20 20 66 |_err++,.|. f|
|00006320| 70 72 69 6e 74 66 28 73 | 74 64 65 72 72 2c 0d 0a |printf(s|tderr,..|
|00006330| 20 20 20 20 20 20 20 20 | 22 5c 6e 63 70 6d 75 74 | |"\ncpmut|
|00006340| 6c 3a 69 6c 6c 65 67 61 | 6c 20 63 68 61 72 20 30 |l:illega|l char 0|
|00006350| 25 6f 20 69 6e 20 66 69 | 6c 65 20 74 79 70 65 2c |%o in fi|le type,|
|00006360| 20 73 6c 6f 74 3a 25 64 | 5c 6e 22 2c 74 65 6d 70 | slot:%d|\n",temp|
|00006370| 2c 69 6e 64 65 78 29 3b | 0d 0a 20 20 20 20 69 66 |,index);|.. if|
|00006380| 20 28 74 65 6d 70 20 3d | 3d 20 53 50 41 43 45 29 | (temp =|= SPACE)|
|00006390| 0d 0a 20 20 20 20 20 20 | 62 72 65 61 6b 3b 09 09 |.. |break;..|
|000063a0| 09 09 2f 2a 20 73 74 6f | 70 20 6f 6e 20 61 20 73 |../* sto|p on a s|
|000063b0| 70 61 63 65 20 2a 2f 0d | 0a 20 20 20 20 63 70 5f |pace */.|. cp_|
|000063c0| 6e 61 6d 65 5b 69 6e 64 | 65 78 5d 5b 6a 2b 2b 5d |name[ind|ex][j++]|
|000063d0| 20 3d 20 74 65 6d 70 3b | 0d 0a 20 20 20 20 7d 0d | = temp;|.. }.|
|000063e0| 0a 20 20 63 70 5f 6e 61 | 6d 65 5b 69 6e 64 65 78 |. cp_na|me[index|
|000063f0| 5d 5b 6a 2b 2b 5d 20 3d | 20 30 3b 0d 0a 0d 0a 20 |][j++] =| 0;.... |
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.