Slik ser det egentligt ut: -------------------------- 58410005 54657374 66696C30 310A0000 XA..Testfil01... 02C82D2D 2D2D7277 65642033 302D4E6F ..----rwed 30-No 762D3933 2031343A 30343A35 31205631 v-93 14:04:51 V1 2E313131 0A546573 7466696C 30320A00 .111.Testfil02.. 0001FF2D 2D2D2D72 77656420 33302D4E ...----rwed 30-N 6F762D39 33203134 3A30343A 35352056 ov-93 14:04:55 V 312E2D31 0A546573 7466696C 30330A00 1.-1.Testfil03.. 0003882D 2D2D2D72 77656420 33302D4E ..'----rwed 30-N 6F762D39 33203134 3A30343A 35382056 ov-93 14:04:58 V 33342E31 0A546573 7466696C 30340A00 34.1.Testfil04.. 0001642D 2D2D2D72 77656420 33302D4E ..d----rwed 30-N 6F762D39 33203231 3A34383A 34342056 ov-93 21:48:44 V 322E3530 0A546573 7466696C 30350A00 2.50.Testfil05.. 0001382D 2D2D2D72 77656420 30372D41 ..8----rwed 07-A 75672D39 31203137 3A33353A 30322056 ug-91 17:35:02 V 322E3130 0A58504B 4600009F 90534852 2.10.XPKF.... og så videre Men, jeg pakket det ned max! med mine egne metoder...ikke sååå avanserte ;) ----------------------------- 58410005 54657374 66696C30 310A0000 XA..Testfil01... 02C82D2D 2D2D7277 65643F4B 7E2F4654 ..----rwed?K~/FT 56312E31 31310A54 65737466 696C3032 V1.111.Testfil02 0A000001 FF2D2D2D 2D727765 643F4B7E .....----rwed?K~ 2F465456 312E3131 310A5465 73746669 /FTV1.111.Testfi 6C30330A 00000388 2D2D2D2D 72776564 l03....'----rwed 3F4B7E2F 465B5633 342E310A 54657374 ?K~/F[V34.1.Test 66696C30 340A0000 01642D2D 2D2D7277 fil04....d----rw 65642848 7C324444 56322E31 300A5465 ed(H|2DDV2.10.Te 73746669 6C30350A 00000138 2D2D2D2D stfil05....8---- 72776564 3F4B7E36 514D5632 2E35300A rwed?K~6QMV2.50. 58504B46 0000843C 53485249 00016B24 XPKF... og så videre Jeg har nå pakket PROTECT_BITS,DATE,TIME,COMMENT på filene, ned til minmalt med tegn... Kan kanskje finne en enkel byte for PROTECT_BITS oxo.. som f.eks... ----RWED = a , og la oss si at: ---ARWED = b osv... finn en felles nevner..senere Analyzer XA_Header ------------------- STEP1: ------ Header=2 bytes, num of files=2bytes Example:**(XA,0005 filer) PS! Opptil $FFFF=65535 filer i et archive. STEP2: ------ Filename=0-32 bytes, 000001c8=size on file+stopbit $0A Example: **(Testfil01,456 bytes) PS! Sizen på en fil, kan være opptil $FFFFFFFF=4294967295 bytes! STEP3: ------ Protectbits.date.time=14bytes, comment=0-80 bytes+stopbit $0A Example: **(----rwed?K~/FTV2.5) (Compressed form) Example: **(----rwed 30-Nov-93 23:23:23 V2.5) (Uncompressed form) PS!... Legg merke til at FileComment'n på denne fila er "V2.5", så ikke tro at det er noe spesial_tegn_for_meg.... ----- Now just, repeat step 2, to all files are accounted for... 5 files means 10 uses of $0A in .XA_Header. 5 of these, are stopbits to the filename, so that we know their real length. and the 5 last, are stopbits to the fileinfo+comment data, to ensure we got everything with us. When "Number_Of_Files" x 2 are detected... Just save the rest of the file to memory, then unpack the .XPK file, get all the information out of XA_header, concerning Name, Lenght, protect,date,time,comments. Splitt the unpacked .XPK file, into the real lenghts using LENGHT, make an NAME for them, PROTECT them, add DATE+TIME to them, and last but not least, add the COMMENT to them.! Jepp..there you have it! ------------------------------------------------------------------------ Og her er den med DIRECTORIES!!.... f.eks 'ENV/' 58410005 7870726B 65726D69 742E6C69 XA..xprkermit.li 62726172 790A0000 02C82D2D 2D2D7277 brary.....----rw 65643F4B 7E2F4654 56312E31 31310A78 ed?K~/FTV1.111.x 70727175 69636B62 2E6C6962 72617279 prquickb.library 0A000001 FF2D2D2D 2D727765 643F4B7E .....----rwed?K~ 2F465856 312E2D31 0A787072 786D6F64 /FXV1.-1.xprxmod 656D2E6C 69627261 72790A00 0003882D em.library....'- 2D2D2D72 7765643F 4B7E2F46 5B563334 ---rwed?K~/F[V34 2E310A45 4E562F43 696E656D 6F727068 .1.ENV/Cinemorph 2E707265 66730A00 0001642D 2D2D2D72 .prefs....d----r 77656421 41842D43 4F0A454E 562F4761 wed!A.-CO.ENV/Ga 64546F6F 6C73426F 782F4761 64546F6F dToolsBox/GadToo 6C73426F 782E7072 6566730A 00000138 lsBox.prefs....8 2D2D2D2D 72776564 2141842D 434E0A58 ----rwed!A.-CN.X 504B4600 005E7C53 48524900 00CAFE00 PKF..^|SHRI..... Legg merke til at '/' finnes oxo i FILEINFO data'n, men det kommer ikke til å kødde med filnavna, fordi FILEINFO har fixed width, altså alltid 14 bytes..NICE! --------------------------------------------------------------------------- Og nå etter flere timers arbeid/research//.. ABLE TO PACK MY OWN .XA_HEADER. file!!!.. JIPPI!!.. fant et prog som heter COMPRESS.b16 (rename til COMPRESS og putta i C2: hos meg) Includerer bare det progget i våres... Skriver COMPRESS t:.xa_header. eller bare COMPRESS t:.xa_header. -D og det decrunches FAST! Vi har nå bare 58410005 XA.. i begynnelsen (som betyr XA fil+# of files) Etter det, stapper vi på en STOPBIT $6666 660A, slik at vi vet hvor lang den COMPRESSA header er! De 6 første bytsene (eller den EKTE header blir slik): 58410005 den compressa headerfila+$6666 660A til slutt. SLIK SER DEN NYE .XA_HEADER. UT DA:! -------------------------------- 58410005 1F9D9078 E0C85953 464E9B34 XA.....x..YSFN.4 745CB049 23464E18 39791400 00200059 t\.I#FN.9y... .Y 8B8B2DE4 DC2943E6 C7123F2F 8C50B112 ''-..)C...?/'P.. C3458C93 0A02CA89 5327CD98 35621432 .E'....'S'.'5b.2 74085122 8000FF30 66DCD8F1 63482C24 t.Q"...0f...cH,$ 5DB48891 52209E36 6FC89469 23B3E1C3 ].'.R .6o..i#... 8813070A D2A991A3 479046B6 589941C3 '.......G.F.X'A. 6451397A 902A65BA D069CD89 01C850E5 dQ9z.'eº.i.'..P. 79D54694 265664B8 A801E36B D8A44B9B y.F.&Vd....k..K. D2CCE362 0C9A3261 E8D80C80 632D4714 ...b.'2a....c-G. 48F8C820 4224AEC9 BA666666 0A58504B H.. B$..ºfff.XPK |||||| || = Stopbit! |||||| = Begynnelse av XPK fil Og slik ser den ucompressa ut:..tar ikke med 'XA...' her! --------------------------------------------------------- 7870726B 65726D69 742E6C69 62726172 xprkermit.librar 790A0000 02C82D2D 2D2D7277 65643F4B y.....----rwed?K 7E2F4654 56312E31 31310A78 70727175 ~/FTV1.111.xprqu 69636B62 2E6C6962 72617279 0A000001 ickb.library.... FF2D2D2D 2D727765 643F4B7E 2F465856 .----rwed?K~/FXV 312E2D31 0A787072 786D6F64 656D2E6C 1.-1.xprxmodem.l 69627261 72790A00 0003882D 2D2D2D72 ibrary....'----r 7765643F 4B7E2F46 5B563334 2E310A78 wed?K~/F[V34.1.x 70727A6D 6F64656D 2E6C6962 72617279 przmodem.library 0A000001 642D2D2D 2D727765 643F4B7E ....d----rwed?K~ 36514D56 322E3530 0A787072 7A6D6F64 6QMV2.50.xprzmod 656D2E6C 69627261 72792E63 68656174 em.library.cheat 0A000001 382D2D2D 2D727765 6428487C ....8----rwed(H| 32444456 322E3130 0A 2DDV2.10. Sparer rundt 50 bytes på denne header'n..men med flere filer, og lengre FILCOMMENT, vil nok COMPRESS gjøre susen ja! --------------------------------------------------------------------------- Ser ut til at det var alt som skulle til, å lage et XPK archive. Alt er nå supporta: Filenames,sizes,ProtectBits,Date,Time,Comment Uendelig Directory structures Compressing+Cryptering av FILEINFO-header Max 65535 filer i et archive. Max FileLength 4294967295 bytes eller 4294 mb! ============================ .XA-Header© !DmP!/PrS '95/96 ============================