home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / utility / splitit / splitit.c < prev    next >
Text File  |  1990-02-06  |  13KB  |  373 lines

  1. #include    <aes.h>
  2. #include    <stdio.h>
  3. #include    <tos.h>
  4. #include    <ctype.h>
  5. #include    <string.h>
  6. #include    <stdlib.h>
  7. #include    <strins.c>
  8.  
  9. #include    "splitit.h"
  10. extern    int            rs_trloc[];
  11. extern    OBJECT        *rs_trindex[];
  12. extern    void        fix_objects(void);
  13. extern    char        p_to_nul[];
  14. extern    TEDINFO        rs_tedinfo[];
  15. extern    ICONBLK        rs_iconblk[];
  16. extern    int            bbk000[];
  17. extern    BITBLK        rs_bitblk[];
  18. extern    OBJECT        rs_object[];
  19.  
  20. #define    SHOW    1
  21. #define HIDE    0
  22. #define TRUE    1
  23. #define FALSE    0
  24. #define READ    0
  25. #define WRITE    1
  26. /**************************************
  27.     Message to user in (c)
  28. ***************************************/
  29. void mess(char *c)
  30.     {
  31.     char     a[40];
  32.     
  33.     graf_mouse(ARROW,0);
  34.     strcpy(a,"[3][");
  35.     strcat(a,c);
  36.     strcat(a,"][OK]");
  37.     form_alert(1,a);
  38.     graf_mouse(POINT_HAND,0);
  39.     }
  40.  
  41. int    mess2(
  42.     char    *c1,    /*    Line one of message    */
  43.     char    *c2,    /*  Line two            */
  44.     char    *b1,    /*  Button one text        */
  45.     char    *b2,    /*    Button two text        */
  46.     int        db    )    /*    Default Button #    */
  47.     {
  48.     char     a[80];
  49.     
  50.     graf_mouse(ARROW,0);
  51.     strcpy(a,"[2][");
  52.     strcat(a,c1);
  53.     strcat(a,"|");
  54.     strcat(a,c2);
  55.     strcat(a,"][");
  56.     strcat(a,b1);
  57.     strcat(a,"|");
  58.     strcat(a,b2);
  59.     strcat(a,"]");
  60.     db = form_alert(db+1,a) - 1;
  61.     graf_mouse(POINT_HAND,0);
  62.     return(db);
  63.     }
  64.  
  65.  
  66. void messi(int    i)
  67.     {
  68.     char    m[16];
  69.     sprintf(m,"%d",i);
  70.     mess(m);
  71.     }
  72.  
  73. void messl(long    l)
  74.     {
  75.     char    m[16];
  76.     sprintf(m,"%ld",l);
  77.     mess(m);
  78.     }
  79.  
  80. /*******************************
  81.     GEM Related Functions
  82. *******************************/
  83.     
  84. /***********************************
  85.     Will put dialog box on screen
  86.     and return exit object after
  87.     erasing it.
  88. ***********************************/
  89. void erase_dialog(
  90.     int    x,
  91.     int    y,
  92.     int    w,
  93.     int    h    )
  94.     {
  95.     int sx,sy;
  96.     sx=x+(w/2);
  97.     sy=y+(h/2);
  98.     form_dial(FMD_SHRINK,sx,sy,0,0,x,y,w,h);
  99.     form_dial(FMD_FINISH,sx,sy,0,0,x,y,w,h);
  100.     }
  101.  
  102. #define DDRC    0
  103. #define DDRN    1
  104. #ëØø4ÇYH①①④öאLéêך⑨YÜ[ÖH①①④òאM⇩êך⑨YÜ[ÖH①①④æBN⇩¥¢םY✓⑨ÿ]תךəX[ךט⇩éZ[¥⇩BX¢∧⑦ם[Ö♪⇩éZ[¥⇩BJß♪⇩éZ[¥⇩BJßK⇩éZ[¥⇩BJ¥י⇩éZ[¥⇩BJÜ♪⇩éZ[¥⇩B\⑧XךK⇩Kטê KSï ïTי♪Uי♪QK MKPיKSòיïTריKSæK L♪TעH
  105. ïאéXם⑧\éYÿ]אJBé^אéZ[¥⇩B\∧♪∧NאéBéY¢ץ¢Wןך[¥⑨\è£ת§Ü[Ö⑨^⑥ן¢∧⑦ם[Ö⑦K♪⇩uב%À⇩ə✓splitit.hpΘF④:ם⇧
  106. FÉ)c&ì¢2    Ü⇦IΓñI①'U②ÇÇDåéÇ⇨♪⇦íÉ!C#O$RגüæáIJ2⑦:ëR%    ⑤æ⇨bץ(⌐①eG'Sá0q    3╱Iü&7∧T≥ä!L⑨1hßLחã
  107. ò$LfÑíT¿J! ç¡QרªJºPe¥    œ&SêOÖג8JØkéÅOê$    אD$üñ]Aijeחs"üyβ⑥IJפ⑦RLïeùאERä    öß\§2v,ù«]⑨⑦③o£ epβ†Ö3ßL0%ëû"òδ·¥①:(טפº=™⌠ïW3B#PQנUMæj^ץL╱qh7⌐m⓪ijïij.rY⇧ə✓splititr.c4F④9|HÇp) #פÕ⑨בªÖ2 xä)3ו❎ə
  108. ④כí③åNÜ1 הá    #◆⇦£/t∧|qSçלû⑧]@⌠!BגÄêTè⓪IΓגז③⓪rµÇ,CFáÖ7[R«ץú⇦ê="ªijaôåN②: ¼גp①C⇦♪Å EÆds⌡cזæ%Y④àT`הUH⇨`£ π*ə8b¼U♪⇩¡\ú1כש⓪úÅXúHQîI⇧"FÄ0@(MSªNê)oכסõè⌡δש«YIJr[v∈םÀ ∧ה⌡¶≈.✓⑨tϕ·-zק½שã,IזP¶QNÖ;יÕ@♪Γêϕ3oΣΣ⇧עג❎✓&eםij)#çMÖ⑥Kÿיí∮Z≤_Ø5HúÑ+·∈vϕ|»å∈√Ãuµי,eקêa⇨גî⑧③A⇦õúג⓪:.«6yבקא$LÇ`C 2ןÉ✓UL①⇦uτàדךü∞ϕד\∧Ñ❎ßi4Éוםרí'א⓪ÀUג③✓W4àå Zµ`]❎@híänQ✓^jββEבjÇë⇨ 6ס@YRmäIJås±Öæås ✓⇦א②:Ç≡❎$⇦ⁿÿâUc①áWä①v7πZ◆ßV⇨ĵ⌐ז⑤KCק!çmnסIJהpw⇦Ãå@gÇpçë(b&µu-n⑨Z9\∙"û5ßvú⇩}¶ñ@②C<βä⓪L,üôN⑦©βå⑧l¼①öJGõ╱⇨③äə*⓪Tbêõ╱ h]:öªxÉJ♪0ñ
  109. %½««ם¬¬ãפ:δ½Ãטəky¨שèδ«©╱♪∮ãœój+õhÖר¬⑨ñὫוF√¬õhò⇧k 8∮°¼»⇨ןã¡ã;b[δ⑧םR♪-Zc|K, 3¿5+j∈«{âZהא0»´;ם⓪/ ן∈√δÄΣש
  110. ⇨⑨³«ZoijøאPFIJŒמÉm¡1גijpא'<C´µש´≡®①+ïG™W∮Ω7ij´0Zã:\«QøJlFטךr¼¡ã3ÿür½';ף≥ijãט⓪3»⌐J<1ØסJî⇨¼cⁿ¶3ב⑨â±ע¡&=sסSK{«IJ,ºטo¶8(M⌡®∮©c†⇩G kת+âãtנ6ץ†∮שgי@Àדâ ±ק7öõסכ∧É⇨¼fזÀץת6{w[¡®Œwק8î±w½2|W» %Ã*±לAπαmΓ4,Ä◆h©ץ¬2á&0¢πüəט◆[ף*¥{ C]בè´®⇩Åæ.Σå[Lהך4ץP2¬ç%m{∧`ƒx∩#צPδ´⇨.åPπACα⌠fל/ϕH3∞¼≤αû177α`zי②ƒm8Œ⇨ÇO,¨â∩+Õ·ÿ™-¬1ij/≡∙⌐ûמ5¶ץם§ãf@â¬IJijtMבCמÕU=⑧ןLg
  111. ,`ⁿ≡5-ϕíÑz3סW¶zd@³Y¡l\_ש.fij±}סb±"⑦µ·σ13ÿ!}    îש⇧+G,⑦
  112. É_כó שקªŒΘP`&ⁿת™`Pâ╱VÉç2LÕåΦ6ó§נéW√β②úן½⑧VKèN\Γאœ③f①Y[ⁿí⑤⌐¿5⇩Q0<»≤∧①IJד/גüעì*äá⑦בר⑥+Øדvj$#נXו¼⑤ã~Bä⑥™ץ'¡;.É;tÜ⑨îx.CZ/Å°é¢§°G9╱②äg4♪¬*ëדpëל.ã¬ü³û⌡ø⑧≥K.Qc^≡°❎+2Hãôº⇦əΩnÇJ❎שáë9xσ④!6╱1Å ③CjÉ=´ØjùlÖ|ÖÕ0③V90P¶ז0ט]ד0/Œâ3i⑧M2קפ╱c≡`2âvâ∞í*p1°]½óÖ⇨f¬n Õףeיה@בfרפà
  113. ⇨ZלD6G!ó±sɼ"④נXיl!ØôkYA⇨·דBשØX⇨ò'⑧:Nê"õó⑧רπ%וêPìFæú②¥π"Ö⑥עå³טa✓3i"çŒijעIJáÇσûוא BÆK£σûβŒס «œƒÄäù=⑨S÷ϕ4_ÿ ⌐?=╱/îiÅ_îî)∩é8Ç¿étX¿Y⑧⇨ïZפ⇧±≤éR⑥םUכ[Œ/¼ופ2נ*סïµ⌠u´lW§
  114. לjםO⌐ì¶'†¼à*②②2úץ*hαץ'â⇩ZŒñà⌠⑧rPXףìA\xϕ"ZץÕƒך..ƒקhÃBÖIJúí*i>E([±Pâ28∈lì#)]ŒΦ®,Øßכט∮③/:Ç⇩6Ømד¡Jדêןף∈6ÙìUº""ä$PüQÄטח⑦גס④JYJ(Ö⇩L¿Fà2♪ש÷*    ½⇧⑦Θט]ø÷eÕ
  115. xé⓪öPä!PβQ_xâ⑧ק`Z:ÿ*´ xü
  116. @@❎ף d⇦0PIJ♪6dö⑥T¿B⌐♪תπ£xQ⇦0AO @îxק⇨ª=∮ד[{⇧לdי÷ת(´5b;:0î6£`´¼g╱.לZⁿö¥ä⑨µç❎ש≡ä9,â†ץij╱9✓1Z£ת_צ°wØ❎⇧
  117. ן ⌐3ñ@⇦  ⇩Cשij②=í❎א/Äqyîû.§Õה8F±Ä{ⁿc⓪éijbØFƒ.≈Œp¶z∙.ºl⑨3ת①Fvâp
  118. Æ'W$⓪C~e∮G②②I⓪QD⇩0⓪h ✓THQדé⇨Äáƒ@$⑨①⇦③S,ןáà❎b✓é④E⇦A⇦âèxà④πQ¿ij♪*@bé⇩    4IJסa£AפI ק1GX ✓⇦⇩
  119. cñá@î'¶ágdÇסהìDÄ&◆✓*④Iπ4èFə✓    äõ❎0œùìgז①å⑨_œ±åÅeá⓪ä④Rז⇩ ßע¿צ⑧pΣüB⑧,êãד ]l!B¥    ץ⑨╱{ØPΣ\à.5הíëè⓪Φ③Kt1(ú®חעה⑦aã①⑥ó1ã⓪╱íeßÖµÜ?óד③ŒQ±❎②A8Aג£ä÷íÇ⇩ת=9ו2áÉÑöì①j⇩0&ijäêנæ⌠å⑨N∧ÿ#B*(ÖÇûÑU)⇨♪ג¬⇩✓ו≥◆⇩w¶ü]œ™Æ÷ù⑧באÕ¡⓪uסqÆ $√-b~æ;/ã*êqmÀβŒ√∈Ãβמ√U©פ^ù⑨b$É⇩™D④⑧╱ktÇij«†נü0א_פby∩û]nüCÿîÆi&ÜjØΘ&£rפחΦ¥yF´à ü^jºúÉ≥),íå"טº✓|זץ¿ÅΩ¼¿ 8צ,œñé⑥tל,á½tסæ÷ⁿ4צ·N}œÑä" B d´iºƒóÇ≡
  120. íÄ
  121. B♪ גijh⌐$úםµ¬»®əδ¼*צ(G⑨tק!ûןbק¬ZL6†öçÃ⑧K|םעσ⌡Ñ④יə÷∮מwgZBO6,מ3שãbƒC:SÕ①$Nºτץ%ⁿd◆יτ°Œ'½X,∈④à[<⑨⌡1 ï⑧±yëσ╱גÉLÇ]ק)¿∩ùôcÀ%\יñÑüπ$ת∩②צyõ]±ÖÆδאר∩®D?%Yעz%≥vQÃk£~⌠ΓYימfΩ¶Σπ∧}Çá\ö≤ ∞©öז`β3⑦`k:T❎P']û$⑥⑦7TÇ¡iמ\`⑦]-ǯ,,`Γ≤²∞¨σ⌠ãנץãקαß≤|æÿיìΩ≡úááŒךÇΦàoá[δδ⌡⑧)ΣQYתœB⑥≡זy¥dªו{3©╱JΣY¶vא$⓪Γijה\Äσ~∈7τΣrδמנ⌐מ⌠p°;⇨f0g¢הδ6µ⑥hö?σr_aדפא-·î£jænיΣÇÜ⌡.צÀhIJוח:HβâSתé2I±⇧3Dzz_n⇨pù8∙²rIJKך%②mø∈ xם¨aCףCתd¬»Œ;ΘΘ±ת¿è.ìdñⁿ®½<^-n-rh3$DB$DB$גs$D⑦ⁿ>Tà⓪    æ⓪    æ⓪    æ⓪    æ⓪    æãΘ╱O⑤àZ$מá7VEא-À·ñd±ñúÀ⑧&§Q<`ïβ#ÕóמXµ½סA⇨ïיהU¶k⇩Ojπ`}❎c`ש6ÇfcÖתJŒª≤⑦nהΘ⌡ÕE·ק*◆∞①כαì⌡⑤כπ)>םÕϕ⑦③⌡÷הπΩ~»`>פ≈לםdiπ(òPõT①ש%⑨1K)J?∞פFΓ´ז+§√B¨♪³םá+XZÀ⑧ןœ¿z&æLKף⇧,|3Y·´|צ√»H$ë⑧QÄΣצ?∞OF²ד\αAZ¥=ז√¢∞❎[†יolg6;ΦNµ`3δz◆ÿ⓪]
  122. ∮',œƒûÀf∈'6÷Ω③NÕòng≡α{¿%~t)τו⌡Z⓪∈ö⇩Φ™Ñσםםªe
  123. ¶>ãÉœ{ù+¼¥A⌡6`q©jÇãrë9X    º2Iû¥א> ≤D|¥øâîñ%
  124.  ≤Kª~Tb9⌡    ¨∮טΘ≤π§õ③£Ñ⑤½`ÿ½∈<yÿ⌡⌠ñàπ5ûם+r9Ç?r╱רÉvµ} ¥zÉMbíπ6^z®gçX^δz♪<}}-∧גèזcayה.ñ§y·©¢ל³וÕ]»≤åπâ·0äbf³ùםsÉ∙,◆®Ç⑧òæœZה¨≈ד²=וא_N≈⇩_Å⑦«/❎°vσu⑨ר①≤╱Sךcא⌡/✓ו«Kσ¼¯èΘIגêZàñ»⓪Θ⓪£ם③´Œ√וQ-∮©∙⑤וΩץ?nƒEï$ך╱∮Œטטæsצ1íTÄi†¶Tœœצ    תWõOⁿW¶ףdϕ»⌐⑧7uαöגכ∙כ}¿m²w∧σ⑦¼צ¶»Qs"µ⇧@æ{רת7{«Õ¡,bß¼¬∩⌡τî?τ≤²∩U*Ç≈ úùנ(əHûè②WõùDõb4G∈∮¶kə^°±δbנ~éף#ץJy£³Zד«di⌡µOÜî⑤lבD❎;=ÿô¶"øiÖ⓪©Jï¶Mיםjזןן%Zף⑧Gë⇦ Œ·}F>y=ãÀ®Ω5÷תצצ≡αßUנאצ;äβת<∙Çsƒàשσל≥.⇧LτóâπzZ®q©7NK∩ת[jwpºCæsÑÑ⇦då<6°wΘAm+/<}≈UzBgïβ[③∩K<∞õEΘπ÷s½X5^œU╱∩6הxiפ=¢w<ΦכÃ⇧⑥œi⑤! Ãºiחï[-ץÖàtנn1|^הזr´$ך'öÕדÖ¶∈pϕÅ\4∩⑧ªßÅנÃי÷≤ÜÆéP9é4זìù♪#עñ#fZ®ס√②º™
  125. ´+CAwYçé⇩{FיΦ«£U9{⑥º"VØ|&=¶8Ä[z°ûσ='ÜŒ≥Γ]ñצE#ߌ]A4·¿UαÖõמéםÄשⁿ¿⇨◆4]êπ⌠צuùלe}ºØïóטjעÃì≤Tdⁿ√0דTδbXKî°Õי+va⑤Üⁿמ⇦j£∧④⑤8P±δ8©°"}=÷}ò:≥מ¬④V¨i3Γך?`Ød¢╱♪º∮¡\òטYU[⌡ϕ"ú:p=öo†Tçט´kUeF    N|3Y∙œNט&»④q°∩ª8①O7Wט~לא°ÿLrôº¢C⑨≤TNÑה½כ+h¢k)δ\œ4™6HJÇג7    ûτ\SP⇦K7ו>∮µYt';ï1ףeB6ÇKfך]ù&d$©½bם≡A=x≤qijì¶*™;î⌐Ãôק?Auû½ú£¬∙¨h±à:%"j⑤Æ∧%J
  126. µ,;vδץ?Ä⑦ä√PóMיפשm@)ã8①≤À⇧®Œü]אBףוRiÖFכúΣ/ə|´ìæz÷Çéשכ⑧טJ∩´H≤ך«¿ò†bץ6@jח⑤uv    Å%⇨<ÃJ$σòד¬»»³bGⁿWL#F{
  127. ÜQ√9ç⇧Φ!⌐²BשN⑨םϕEbוה1Õ»ת∮öץ§πøEº_} fÄΩ2ij❎רeÆ(»∩αMö®©PΣî≈²àצπMQƒhjלΩ\gÄë™&7ס«U∧π]ij0·⑥≈æhv¨¢ל³W¯Ã&שL③nöΣaI≈סך⇧קñ{י©IJK9Çņ⓪⌠P±,ⁿ™z68צδ¯î⌠â^σ¿W«7ªV⑨.àx✓÷~<«∙ûח❎קAEə:ùs\ף≈@³⇩ _s®|è∮îØPd;·Ü©1∮ò√⌐XÄ{ªî<ח
  128. ז¢√[喙יר≤⇩jæ3}¥Øßןט«h∈∮´e≈מTñ6ϕ7\ß\④bJס·\Ä√?⌡±áôHYCו:ץ;£ם~T²Ø:µמ⇩øüüd≥]√»8J&תº8`º²⇧°xYן}üז≡Φ⑥nαב¶⌡r{hרÅ╱ü⌠√⇧É①∩ì\∞7;א(ç(²[Äû(=Ø3eÅL⇦ç∮æ=œ_9Aש~\Õ≤*ϕוÑ a①קÅ^®Σ"&⓪rg{÷ëΣkéãי∈ijs≤hij◆_β¬≥õ4≈ëá④±לØבVWMQn╱Ö¨≡koSÀÃÑíN÷\™Ç©ø≡כ❎מZ≡õ≡j«םj:≤öeäü3②¡/Kיÿ!»ÖXã❎ª«-M
  129. ®Ω#|:⑥¨Ω÷êΩ7b4=⇩ùuFם≤kנ6αד∧Aא⌠ê>IJπXג2¨∞b"è¨Õ]>∧ƒ    ´IJ¿%∞e®Ã³µYhhìl%Ç^}œ£k╱¢=^ןOÉ✓ñgZáי#œdÖJ†ך≤5≈™§שכ½√√ç③ⁿ~,hקע~רנ¡ã½÷²ב◆~ש<ד¿}·Ñ$לLי©~à%ץ4p8יPpו9²¬U¼⌐Wד®ÅU≈}ûע√>אδיUæHê|_½ ƒl8%q∙≥*∞¢!ס¬=⌡ש√»⑧ Eîè7טΦlP´aΓτ&Ωw\δØAojølϕ;àkΩyשFg8cgKC³B¡§Åûⁿsⁿ≤s④ΦÅgå❎ז╱"ג*ªß≈י9צϕמ±iבŒτ~ΣOñfz∧σƒOàÑ?ø+?_OñßBhע?ƒזÕ³Ipú#⌡_τدÆקRhh·RáC\~®@:à✓Γיéα#¯x@0דÑMgוOy`?Γ%❎dJ≡Ö²¿|߃+⇩Z³ûj»7Sk¢§™Q6™םEעSJ±«£ãA6'UM⓪F3√gן⇦y¯וÖ³¢יΘ·∙¶נ,Õב/    Töù=β¶álY¼ {σ√⇧ô0²∩מqO°⇩\טVâ9$NƒםבqÉ@פç⌠`¥≈¼³≤¯³ìΩ_|øÇΘ™#ü    ò~²Wtûxq    ∙ ד⇧(\⑨>0m②ê8Çτףו①`⇧¯ךא*+hááβז⇩Mβo≥y@Üלaôƒ55¢¥≡ש≤∙Γδב.½fn╱ל*oⁿⁿ¯⌡ì③µ╱םΦ÷Ñτ⑤K✓יτwÆ?I»,†τÆWG³y>צW⌠H+Œנת9♪Ø|©ÃϕùÇñיÄαáô≈®סΓמ´<RÖוS√üµlqùUº£¼rστ∙»WµתחP+%בóuêΘ≡σú②óΦGσ\±¿קC√a|®v{\?¯Aœ·ת∮èg.≥Rךτ½ªaר©∧ôⁿIפñgjŒΣÕ⑧ƒ©¼טNs≡EÆ>ù@õC:ê¬ⁿ◆G*ù7JקèPדלKæ-י?Wⁿ⌐ל^Rqשòè≡lISìצ≤5ºD}'∮ⁿû¿∈Y㳃Y?⇦ùTœ¶De7Üá✓êá&|®Ãñ™ÿøAØÉα∧ Γ§əñj6ז¥åt&$Σ⑥Sxcp≤ϕ&ןü™é≥ã"û∮③רGxΩŒט⌠ן✓OâÄÀë∈éץ╱´=œ,Vm//<a?-´∈²äצ·βe,âëø1_²ד³τ™bΘêQ¼O{≥≡הÖ¢≈∞צץΣb?#±Ωâ    ⓪ä⌠ç⇦פ'W&ץ¨8o²°W≈wŒh²<≤D÷ÖûÜGפsm⌡PזL⇦Γ✓ען<δע⇧תZ≤8ב⌠④À£ÿŒd
  130. ùi∧YÕX8⇧ל¶x³IJח£Õmraπ❎ח+ףץ6⑤:!5o@<'nD¯⑤∞N"F√¨R¼† ÃM≤Éפ¶Xn⓪°|_ƒכ}RבœC⑤óת:!·M"מ´®.ø≤&qצÕ∩½øa´    vv"w≤αÇ:™Iגσחu³πãXZ54rΣó≡T™∙],ù†Cז¡∈6    וuך!ö8§øרwQ±j9ן\.û^g⇧³זל¯|?Jσ~É´תÃL¥=Φ;ÿ†.u26·∩'ΦQ5?ùø·מë#∞™_◆¶םW≤²W£8R¨Φץ@L5™Ö⑤╱q xתw3}îז%q8§à⑦⑥1םùי7סR[וr①#ז⇩⌐ÿ√כíu©╱cï\øê<Nƒ'④hh∈ך¨™①ú⇨;¨╱⇦†cw©,3ϕõôc´<9≥®'O_g:a04{ⁿu~ΣnÉÀÀÕδ⑧∙Jג(ü∙ß④†Uª⑤טO±½(L∙eÜSxצ²@tz«©àå♪-:צijחït»;~ØlB§'"¯ªWgâ†C⑨Å&®·²Øã√é±HZו!œ3 Q⌐çnüaβcə∈⇨Öæj\◆B④ijÄ≥ºvb=fMΣ∩Æπ⌠k³º_⑧eµ©ⁿPêםx∩σרyS
  131. $Ndrv);
  132.                 Dsetpath(spath);
  133.                 if (Fsfirst(sifile,7)>=0)
  134.                     {
  135.                     dta = Fgetdta();
  136.                     size = dta->filesize;
  137.                     buf = malloc(size);
  138.                     dial_file(sifile,size,x,y,w,h);
  139.                     Dsetdrv(sdrv);
  140.                     Dsetpath(spath);
  141.                     fds=Fopen(sifile,READ);
  142.                     Dsetdrv(ddrv);
  143.                     Dsetpath(dpath);
  144.                     if (j==0)
  145.                         {
  146.                         Fread(fds,16,filename);
  147.                         if (!create(filename))
  148.                             {
  149.                             erase_dialog(x,y,w,h);
  150.                             return;
  151.                             }
  152.                         }
  153.                     fd=Fopen(filename,WRITE);
  154.                     Fseek(0,fd,2);
  155.                     if (j == 0)
  156.                         {
  157.                         Fread(fds,size-16,buf);
  158.                         Fwrite(fd,size-16,(char *)buf);
  159.                         }
  160.                     else
  161.                         {
  162.                         Fread(fds,size,buf);
  163.                         Fwrite(fd,size,buf);
  164.                         }
  165.                     Fclose(fd);
  166.                     Fclose(fds);
  167.                     free(buf);
  168.                     if (dflag)
  169.                         {
  170.                         Dsetdrv(sdrv);
  171.                         Dsetpath(spath);
  172.                         Fdelete(sifile);
  173.                         }
  174.                     }
  175.                 else
  176.                     {
  177.                     erase_dialog(x,y,w,h);
  178.                     return;
  179.                     }
  180.                 }
  181.             }
  182.             erase_dialog(x,y,w,h);
  183.         }
  184.     }
  185.  
  186. /*************************
  187.     BINC: convert binary
  188.     to C source code
  189. **************************/
  190. void binc(void)
  191.     {
  192.     static char        *sname = "FILENAME.EXT";
  193.     static char        dname[16];
  194.     static char        *ext = "*.*\0       ";
  195.     static char        *dext = "*.C\0         ";
  196.     char            path[64];
  197.     int                drv,fd,fds,i,j;
  198.     int                buf[6],x,y,w,h;
  199.     char            *line = " 0x1234,0x1234,0x1234,0x1234,0x1234,0x1234 /* 00000 ABCDEFGHIJKL */\015\012";
  200.     DTA                *dta;
  201.     unsigned long    size,ds,ls,count;
  202.     char            *cbuf;
  203.  
  204.     line[0] = '\011';
  205.     cbuf = (char *)buf;
  206.     ls = strlen(line);
  207.     if (fileselect(sname,ext))
  208.         {
  209.         drv = Dgetdrv();
  210.         Dgetpath(path,0);
  211.         if (path[0] != '\\')
  212.             strinc(path,0,'\\');
  213.         strcpy(dname,sname);
  214.         *(strchr(dname,'.')+1)='C';
  215.         *(strchr(dname,'.')+2)='\0';
  216.         mess("Select destination path");
  217.         if (fileselect(dname,dext))
  218.             if (create(dname))
  219.                 {
  220.                 fd = Fopen(dname,WRITE);
  221.                 Dsetdrv(drv);
  222.                 Dsetpath(path);
  223.                 if (Fsfirst(sname,7)>=0)
  224.                     {
  225.                     dta = Fgetdta();
  226.                     size = dta->filesize;
  227.                     draw_dialog(FILEDIAL,&x,&y,&w,&h,DDRC,HIDE);
  228.                     dial_file(sname,size,x,y,w,h);
  229.                     fds = Fopen(sname,READ);
  230.                     *strchr(sname,'.') = '\0';
  231.                     ds = 12 + strlen(sname);
  232.                     Fwrite(fd,4,"int ");
  233.                     Fwrite(fd,strlen(sname),sname);
  234.                     Fwrite(fd,8,"[] = {\015\012");
  235.                     dial_file(dname,ds,x,y,w,h);
  236.                     count = 0;
  237.                     while (size != 0)
  238.                         {
  239.                         if (size<12)
  240.                             {
  241.                             Fread(fds,size,cbuf);
  242.                             j = (unsigned int)(size+1) / 2;
  243.                             size = 0;
  244.                             }
  245.                         else
  246.                             {
  247.                             Fread(fds,12,cbuf);
  248.                             j = 6;
  249.                             size -= 12;
  250.                             }
  251.                         for(i=0;i<j;i++)
  252.                             {
  253.                             sprintf(line+3+i*7,"%4x",buf[i]);
  254.                             if (buf[i]<0x1000)
  255.                                 {
  256.                                 *(line+3+i*7) = '0';
  257.                                 if (buf[i] < 0x100)
  258.                                     {
  259.                                     *(line+4+i*7) = '0';
  260.                                     if (buf[i]<0x10)
  261.                                         *(line+5+i*7)= '0';
  262.                                     }
  263.                                 }
  264.                             *(line+(i+1)*7) = ',';
  265.                             if (isprint(*(cbuf+i*2)))
  266.                                 *(line+52+i*2) = *(cbuf+i*2);
  267.                             else
  268.                                 *(line+52+i*2) = '.';
  269.                             if (isprint(*(cbuf+i*2+1)))
  270.                                 *(line+53+i*2) = *(cbuf+i*2+1);
  271.                             else
  272.                                 *(line+53+i*2) = '.';
  273.                             }
  274.                         for(i=j;i<6;i++)
  275.                             {
  276.                             sprintf(line+i*7,"       ");
  277.                             *(line+(i+1)*7) = ' ';
  278.                             *(line+53+i*2) = ' ';
  279.                             *(line+54+i*2) = ' ';
  280.                             if (*(line-1+i*7) == ',')
  281.                                 *(line-1+i*7) = ' ';
  282.                             }
  283.                         if (size == 0)
  284.                             *(line+42) = ' ';
  285.                         ds += ls;
  286.                         sprintf(line+46,"%5lx",count);
  287.                         *(line+51) = ' ';
  288.                         count += 12;
  289.                         dial_file(dname,ds-12-strlen(sname),x,y,w,h);
  290.                         Fwrite(fd,ls,line);
  291.                         }
  292.                     Fwrite(fd,3,"\011};");
  293.                     ds += 2;
  294.                     dial_file(dname,ds,x,y,w,h);
  295.                     erase_dialog(x,y,w,h);
  296.                     Fclose(fds);
  297.                     }
  298.                 Fclose(fd);
  299.                 }
  300.         }
  301.     }
  302.  
  303. /*************************
  304.     Do help dialog
  305. **************************/
  306. void infohelp(void)
  307.     {
  308.     int    x,y,w,h;
  309.     draw_dialog(HELPDIAL,&x,&y,&w,&h,0,SHOW);
  310.     exit_dialog(HELPDIAL,x,y,w,h,HIDE);
  311.     erase_dialog(x,y,w,h);
  312.     }
  313.  
  314. /****************************
  315.     Do info dialog
  316. ****************************/
  317. void maininfo(void)
  318.     {
  319.     int    x,y,w,h;
  320.     int    selection;
  321.  
  322.     draw_dialog(INFODIAL,&x,&y,&w,&h,DDRN|DDRS|DDRE|DDRW,SHOW);
  323.     selection = exit_dialog(INFODIAL,x,y,w,h,HIDE);
  324.     erase_dialog(x,y,w,h);
  325.     if (selection == INFOHELP)
  326.         infohelp();
  327.     }
  328.     
  329. /*******************************************************************
  330.                             MAIN
  331. *******************************************************************/
  332. main()
  333.     {
  334.     int            msg_buf[8];
  335.  
  336.     /*      INITIALIZE GEM              */
  337.     appl_init();
  338.        fix_objects();
  339.     
  340.     /*      APPLICATION ROUTINES        */
  341.     graf_mouse(POINT_HAND,0);
  342.     maininfo();
  343.     menu_bar(rs_trindex[MAINMENU],SHOW);
  344.     for (;;)
  345.         {
  346.         evnt_mesag(msg_buf);
  347.         if (msg_buf[0] != MN_SELECTED)    continue;
  348.         if (msg_buf[4] == MAINQUIT)        break;
  349.         
  350.         switch (msg_buf[4])
  351.             {
  352.             case MAININFO:
  353.                 maininfo();
  354.                 break;
  355.             case MAINSPLIT:
  356.                 split();
  357.                 break;
  358.             case MAINJOIN:
  359.                 join();
  360.                 break;
  361.             case MAINBINC:
  362.                 binc();
  363.                 break;
  364.             default:
  365.                 break;
  366.             }
  367.             menu_tnormal(rs_trindex[MAINMENU],msg_buf[3],TRUE);
  368.         }
  369.     menu_bar(rs_trindex[MAINMENU],HIDE);
  370.     appl_exit();
  371.     return(0);
  372.      }
  373.