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 >
Wrap
Text File
|
1990-02-06
|
13KB
|
373 lines
#include <aes.h>
#include <stdio.h>
#include <tos.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <strins.c>
#include "splitit.h"
extern int rs_trloc[];
extern OBJECT *rs_trindex[];
extern void fix_objects(void);
extern char p_to_nul[];
extern TEDINFO rs_tedinfo[];
extern ICONBLK rs_iconblk[];
extern int bbk000[];
extern BITBLK rs_bitblk[];
extern OBJECT rs_object[];
#define SHOW 1
#define HIDE 0
#define TRUE 1
#define FALSE 0
#define READ 0
#define WRITE 1
/**************************************
Message to user in (c)
***************************************/
void mess(char *c)
{
char a[40];
graf_mouse(ARROW,0);
strcpy(a,"[3][");
strcat(a,c);
strcat(a,"][OK]");
form_alert(1,a);
graf_mouse(POINT_HAND,0);
}
int mess2(
char *c1, /* Line one of message */
char *c2, /* Line two */
char *b1, /* Button one text */
char *b2, /* Button two text */
int db ) /* Default Button # */
{
char a[80];
graf_mouse(ARROW,0);
strcpy(a,"[2][");
strcat(a,c1);
strcat(a,"|");
strcat(a,c2);
strcat(a,"][");
strcat(a,b1);
strcat(a,"|");
strcat(a,b2);
strcat(a,"]");
db = form_alert(db+1,a) - 1;
graf_mouse(POINT_HAND,0);
return(db);
}
void messi(int i)
{
char m[16];
sprintf(m,"%d",i);
mess(m);
}
void messl(long l)
{
char m[16];
sprintf(m,"%ld",l);
mess(m);
}
/*******************************
GEM Related Functions
*******************************/
/***********************************
Will put dialog box on screen
and return exit object after
erasing it.
***********************************/
void erase_dialog(
int x,
int y,
int w,
int h )
{
int sx,sy;
sx=x+(w/2);
sy=y+(h/2);
form_dial(FMD_SHRINK,sx,sy,0,0,x,y,w,h);
form_dial(FMD_FINISH,sx,sy,0,0,x,y,w,h);
}
#define DDRC 0
#define DDRN 1
#ëØø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י♪QKMKPיKSòיïTריKSæKL♪TעH
ïאéXם⑧\éYÿ]אJBé^אéZ[¥⇩B\∧♪∧NאéBéY¢ץ¢Wןך[¥⑨\è£ת§Ü[Ö⑨^⑥ן¢∧⑦ם[Ö⑦K♪⇩uב%À⇩ə✓splitit.hpΘF④:ם⇧
FÉ)c&ì¢2 Ü⇦IΓñI①'U②ÇÇDåéÇ⇨♪⇦íÉ!C#O$RגüæáIJ2⑦:ëR% ⑤æ⇨bץ(⌐①eG'Sá0q 3╱Iü&7∧T≥ä!L⑨1hßLחã
ò$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.c4F④9|HÇp)#פÕ⑨בªÖ2 xä)3ו❎ə
④כí③å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Ç`C2ןÉ✓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ñ
%½««ם¬¬ãפ:δ½Ãטəky¨שèδ«©╱♪∮ãœój+õhÖר¬⑨ñὫוF√¬õhò⇧k8∮°¼»⇨ןã¡ã;b[δ⑧םR♪-Zc|K,3¿5+j∈«{âZהא0»´;ם⓪/ן∈√δÄΣש
⇨⑨³«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†⇩Gkת+âã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∞¼≤αû177α`zי②ƒm8Œ⇨ÇO,¨â∩+Õ·ÿ™-¬1ij/≡∙⌐ûמ5¶ץם§ãf@â¬IJijtMבCמÕU=⑧ןLg
,`ⁿ≡5-ϕíÑz3סW¶zd@³Y¡l\_ש.fij±}סb±"⑦µ·σ13ÿ!} îש⇧+G,⑦
É_כó שקªŒΘ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רפà
⇨ZלD6G!ó±sɼ"④נXיl!ØôkYA⇨·דBשØX⇨ò'⑧:Nê"õó⑧רπ%וêPìFæú②¥π"Ö⑥עå³טa✓3i"çŒijעIJáÇσûוא BÆK£σûβŒס «œƒÄäù=⑨S÷ϕ4_ÿ⌐?=╱/îiÅ_îî)∩é8Ç¿étX¿Y⑧⇨ïZפ⇧±≤éR⑥םUכ[Œ/¼ופ2נ*סïµ⌠u´lW§
ל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Õ
xé⓪öPä!PβQ_xâ⑧ק`Z:ÿ*´ xü
@@❎ף d⇦0PIJ♪6dö⑥T¿B⌐♪תπ£xQ⇦0AO @îxק⇨ª=∮ד[{⇧לdי÷ת(´5b;:0î6£`´¼g╱.לZⁿö¥ä⑨µç❎ש≡ä9,â†ץij╱9✓1Z£ת_צ°wØ❎⇧
ן ⌐3ñ@⇦ ⇩Cשij②=í❎א/Äqyîû.§Õה8F±Ä{ⁿc⓪éijbØFƒ.≈Œp¶z∙.ºl⑨3ת①Fvâp
Æ'W$⓪C~e∮G②②I⓪QD⇩0⓪h ✓THQדé⇨Äáƒ@$⑨①⇦③S,ןáà❎b✓é④E⇦A⇦âèxà④πQ¿ij♪*@bé⇩ 4IJסa£AפI ק1GX ✓⇦⇩
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ºƒóÇ≡
íÄ
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◆ÿ⓪]
∮',œƒûÀf∈'6÷Ω③NÕòng≡α{¿%~t)τו⌡Z⓪∈ö⇩Φ™Ñσםםªe
¶>ãÉœ{ù+¼¥A⌡6`q©jÇãrë9X º2Iû¥א> ≤D|¥øâîñ%
≤Kª~Tb9⌡ ¨∮טΘ≤π§õ③£Ñ⑤½`ÿ½∈<yÿ⌡⌠ñàπ5ûם+r9Ç?r╱רÉvµ} ¥zÉMbíπ6^z®gçX^δz♪<}}-∧גèזcayה.ñ§y·©¢ל³וÕ]»≤åπâ·0äbf³ùם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∧σ⑦¼צ¶»Qs"µ⇧@æ{רת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®ס√②º™
´+CAwYçé⇩{FיΦ«£U9{⑥º"VØ|&=¶8Ä[z°ûσ='ÜŒ≥Γ]ñצE#ߌ]A4·¿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⑨≤TNÑה½כ+h¢k)δ\œ4™6HJÇג7 ûτ\SP⇦K7ו>∮µYt';ï1ףeB6ÇKfך]ù&d$©½bם≡A=x≤qijì¶*™;î⌐Ãôק?Auû½ú£¬∙¨h±à:%"j⑤Æ∧%J
µ,;vδץ?Ä⑦ä√PóMיפשm@)ã8①≤À⇧®Œü]אBףוRiÖFכúΣ/ə|´ìæz÷Çéשכ⑧טJ∩´H≤ך«¿ò†bץ6@jח⑤uv Å%⇨<ÃJ$σòד¬»»³bGⁿWL#F{
Ü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Ä{ªî<ח
ז¢√[喙יר≤⇩jæ3}¥Øßןט«h∈∮´e≈מTñ6ϕ7\ß\④bJס·\Ä√?⌡±áôHYCו:ץ;£ם~T²Ø:µמ⇩øüüd≥]√»8J&תº8`º²⇧°xYן}üז≡Φ⑥nαב¶⌡r{hרÅ╱ü⌠√⇧É①∩ì\∞7;א(ç(²[Äû(=Ø3eÅL⇦ç∮æ=œ_9Aש~\Õ≤*ϕוÑa①קÅ^®Σ"&⓪rg{÷ëΣkéãי∈ijs≤hij◆_β¬≥õ4≈ëá④±לØבVWMQn╱Ö¨≡koSÀÃÑíN÷\™Ç©ø≡כ❎מZ≡õ≡j«םj:≤öeäü3②¡/Kיÿ!»ÖXã❎ª«-M
®Ω#|:⑥¨Ω÷êΩ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פñgjŒΣÕ⑧ƒ©¼ט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
ù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
$Ndrv);
Dsetpath(spath);
if (Fsfirst(sifile,7)>=0)
{
dta = Fgetdta();
size = dta->filesize;
buf = malloc(size);
dial_file(sifile,size,x,y,w,h);
Dsetdrv(sdrv);
Dsetpath(spath);
fds=Fopen(sifile,READ);
Dsetdrv(ddrv);
Dsetpath(dpath);
if (j==0)
{
Fread(fds,16,filename);
if (!create(filename))
{
erase_dialog(x,y,w,h);
return;
}
}
fd=Fopen(filename,WRITE);
Fseek(0,fd,2);
if (j == 0)
{
Fread(fds,size-16,buf);
Fwrite(fd,size-16,(char *)buf);
}
else
{
Fread(fds,size,buf);
Fwrite(fd,size,buf);
}
Fclose(fd);
Fclose(fds);
free(buf);
if (dflag)
{
Dsetdrv(sdrv);
Dsetpath(spath);
Fdelete(sifile);
}
}
else
{
erase_dialog(x,y,w,h);
return;
}
}
}
erase_dialog(x,y,w,h);
}
}
/*************************
BINC: convert binary
to C source code
**************************/
void binc(void)
{
static char *sname = "FILENAME.EXT";
static char dname[16];
static char *ext = "*.*\0 ";
static char *dext = "*.C\0 ";
char path[64];
int drv,fd,fds,i,j;
int buf[6],x,y,w,h;
char *line = " 0x1234,0x1234,0x1234,0x1234,0x1234,0x1234 /* 00000 ABCDEFGHIJKL */\015\012";
DTA *dta;
unsigned long size,ds,ls,count;
char *cbuf;
line[0] = '\011';
cbuf = (char *)buf;
ls = strlen(line);
if (fileselect(sname,ext))
{
drv = Dgetdrv();
Dgetpath(path,0);
if (path[0] != '\\')
strinc(path,0,'\\');
strcpy(dname,sname);
*(strchr(dname,'.')+1)='C';
*(strchr(dname,'.')+2)='\0';
mess("Select destination path");
if (fileselect(dname,dext))
if (create(dname))
{
fd = Fopen(dname,WRITE);
Dsetdrv(drv);
Dsetpath(path);
if (Fsfirst(sname,7)>=0)
{
dta = Fgetdta();
size = dta->filesize;
draw_dialog(FILEDIAL,&x,&y,&w,&h,DDRC,HIDE);
dial_file(sname,size,x,y,w,h);
fds = Fopen(sname,READ);
*strchr(sname,'.') = '\0';
ds = 12 + strlen(sname);
Fwrite(fd,4,"int ");
Fwrite(fd,strlen(sname),sname);
Fwrite(fd,8,"[] = {\015\012");
dial_file(dname,ds,x,y,w,h);
count = 0;
while (size != 0)
{
if (size<12)
{
Fread(fds,size,cbuf);
j = (unsigned int)(size+1) / 2;
size = 0;
}
else
{
Fread(fds,12,cbuf);
j = 6;
size -= 12;
}
for(i=0;i<j;i++)
{
sprintf(line+3+i*7,"%4x",buf[i]);
if (buf[i]<0x1000)
{
*(line+3+i*7) = '0';
if (buf[i] < 0x100)
{
*(line+4+i*7) = '0';
if (buf[i]<0x10)
*(line+5+i*7)= '0';
}
}
*(line+(i+1)*7) = ',';
if (isprint(*(cbuf+i*2)))
*(line+52+i*2) = *(cbuf+i*2);
else
*(line+52+i*2) = '.';
if (isprint(*(cbuf+i*2+1)))
*(line+53+i*2) = *(cbuf+i*2+1);
else
*(line+53+i*2) = '.';
}
for(i=j;i<6;i++)
{
sprintf(line+i*7," ");
*(line+(i+1)*7) = ' ';
*(line+53+i*2) = ' ';
*(line+54+i*2) = ' ';
if (*(line-1+i*7) == ',')
*(line-1+i*7) = ' ';
}
if (size == 0)
*(line+42) = ' ';
ds += ls;
sprintf(line+46,"%5lx",count);
*(line+51) = ' ';
count += 12;
dial_file(dname,ds-12-strlen(sname),x,y,w,h);
Fwrite(fd,ls,line);
}
Fwrite(fd,3,"\011};");
ds += 2;
dial_file(dname,ds,x,y,w,h);
erase_dialog(x,y,w,h);
Fclose(fds);
}
Fclose(fd);
}
}
}
/*************************
Do help dialog
**************************/
void infohelp(void)
{
int x,y,w,h;
draw_dialog(HELPDIAL,&x,&y,&w,&h,0,SHOW);
exit_dialog(HELPDIAL,x,y,w,h,HIDE);
erase_dialog(x,y,w,h);
}
/****************************
Do info dialog
****************************/
void maininfo(void)
{
int x,y,w,h;
int selection;
draw_dialog(INFODIAL,&x,&y,&w,&h,DDRN|DDRS|DDRE|DDRW,SHOW);
selection = exit_dialog(INFODIAL,x,y,w,h,HIDE);
erase_dialog(x,y,w,h);
if (selection == INFOHELP)
infohelp();
}
/*******************************************************************
MAIN
*******************************************************************/
main()
{
int msg_buf[8];
/* INITIALIZE GEM */
appl_init();
fix_objects();
/* APPLICATION ROUTINES */
graf_mouse(POINT_HAND,0);
maininfo();
menu_bar(rs_trindex[MAINMENU],SHOW);
for (;;)
{
evnt_mesag(msg_buf);
if (msg_buf[0] != MN_SELECTED) continue;
if (msg_buf[4] == MAINQUIT) break;
switch (msg_buf[4])
{
case MAININFO:
maininfo();
break;
case MAINSPLIT:
split();
break;
case MAINJOIN:
join();
break;
case MAINBINC:
binc();
break;
default:
break;
}
menu_tnormal(rs_trindex[MAINMENU],msg_buf[3],TRUE);
}
menu_bar(rs_trindex[MAINMENU],HIDE);
appl_exit();
return(0);
}