From 4b004eff90a0fd2e896aa59f6835f5928847094d Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 25 Aug 1998 17:46:29 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la verione 98.01.04 sul main trunk git-svn-id: svn://10.65.10.50/trunk@6984 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba0.cpp | 8 +- ba/ba1100.cpp | 118 +-- ba/ba1500.cpp | 87 +- ba/ba1500a.h | 1 + ba/ba1500a.uml | 5 + ba/ba1600.cpp | 451 +++++++--- ba/ba1600.h | 7 +- ba/ba1600a.h | 4 +- ba/ba1600a.uml | 29 +- ba/ba1600b.uml | 2 +- ba/ba1700.cpp | 497 ++++++----- ba/bainst.ini | 226 ++--- ba/bainst03.h | 1 + ba/bainst04.h | 4 +- ba/bainst05.h | 4 +- ba/bainst06.cpp | 58 ++ ba/bainst06.h | 2 + ba/bainst06.uml | 23 + ba/baprassi.men | 3 +- ba/f3.dir | 2 +- ba/f3.trr | 4 +- ba/f4.dir | 2 +- ba/f4.trr | 4 +- ba/f5.dir | 2 +- ba/f5.trr | 4 +- ba/install.ini | 2178 ++++++++++++++++++++++++++++------------------- 26 files changed, 2340 insertions(+), 1386 deletions(-) create mode 100755 ba/bainst03.h create mode 100755 ba/bainst06.cpp create mode 100755 ba/bainst06.h create mode 100755 ba/bainst06.uml diff --git a/ba/ba0.cpp b/ba/ba0.cpp index 38898a1bb..1edd89ce3 100755 --- a/ba/ba0.cpp +++ b/ba/ba0.cpp @@ -327,10 +327,10 @@ const char* TColor_mask::cid2name(short cid) const COLOR TColor_mask::cid2color(short cid) const { - COLOR color[] = { COLOR_DKCYAN, COLOR_CYAN, COLOR_GRAY, + COLOR color[] = { COLOR_LTGRAY, COLOR_WHITE, COLOR_GRAY, COLOR_BLACK, COLOR_WHITE, - COLOR_BLACK, COLOR_CYAN, - COLOR_GRAY, COLOR_DKCYAN, + COLOR_BLACK, COLOR_YELLOW, + COLOR_DKGRAY, COLOR_LTGRAY, COLOR_LTGRAY, COLOR_WHITE, COLOR_GRAY}; const int i = cid - 101; @@ -1395,6 +1395,8 @@ bool TMenu_application::create() #ifndef _DEMO_ if (!check_user()) return FALSE; + #else + enable_menu_item(M_FONT); #endif set_perms(); diff --git a/ba/ba1100.cpp b/ba/ba1100.cpp index a3e5808b6..df915f36e 100755 --- a/ba/ba1100.cpp +++ b/ba/ba1100.cpp @@ -54,7 +54,7 @@ protected: virtual void print(); virtual void do_print(TPrinter & p, TRec_sheet & r); const char* dumpfilename(const FileDes& dep) const; - void load_des(); + void load_des(const int maxfidr = 0); void open_history(); void put_history(const char* firm); void close_history(); @@ -625,8 +625,9 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) } switch (tasto) { - case K_F5: - { + case K_F5: + if (logicnum > 1) + { TSystemisamfile f(logicnum); f.packfile(); f.packindex(); @@ -645,57 +646,57 @@ void TManutenzione_app::edit_riga (long riga_sel, TToken_string& riga) packapp.run(FALSE,FALSE); } #endif - } - break; - case K_F6: - { - _rec = new TRec_sheet(logicnum, _mask->get(F_TAB)); - _rec->edit(); - delete _rec; - _rec = NULL; - } - break; - case K_F7: - { - TMask m("ba1100b"); - - TFilename nout(dumpfilename(dep)); - m.set(FLD_OUTFILE, nout); - - if (m.run() == K_ENTER) - { - nout = m.get(FLD_OUTFILE); - if (nout.not_empty()) - { - TSystemisamfile f(logicnum); - const char fs = *esc(m.get(FLD_FS)); - const char fd = *esc(m.get(FLD_FD)); - const char rs = *esc(m.get(FLD_RS)); - const bool withdel = m.get_bool(FLD_WITHDEL); - const int keyno = m.get_int(FLD_KEYNO); - f.dump(nout, keyno, fs, fd, rs, withdel); - } } - } - break; - case K_F8: - { - TMask m("ba1100c"); - TFilename ninp(dumpfilename(dep)); - m.set(FLD_INFILE, ninp); - if (m.run() == K_ENTER) - { - TSystemisamfile f(logicnum); - char fs = *esc(m.get(FLD_FS)); - char fd = *esc(m.get(FLD_FD)); - char rs = *esc(m.get(FLD_RS)); - ninp = m.get(FLD_INFILE); - f.load(ninp, fs, fd, rs); - } - } - break; - default: - break; + break; + case K_F6: + { + _rec = new TRec_sheet(logicnum, _mask->get(F_TAB)); + _rec->edit(); + delete _rec; + _rec = NULL; + } + break; + case K_F7: + { + TMask m("ba1100b"); + + TFilename nout(dumpfilename(dep)); + m.set(FLD_OUTFILE, nout); + + if (m.run() == K_ENTER) + { + nout = m.get(FLD_OUTFILE); + if (nout.not_empty()) + { + TSystemisamfile f(logicnum); + const char fs = *esc(m.get(FLD_FS)); + const char fd = *esc(m.get(FLD_FD)); + const char rs = *esc(m.get(FLD_RS)); + const bool withdel = m.get_bool(FLD_WITHDEL); + const int keyno = m.get_int(FLD_KEYNO); + f.dump(nout, keyno, fs, fd, rs, withdel); + } + } + } + break; + case K_F8: + { + TMask m("ba1100c"); + TFilename ninp(dumpfilename(dep)); + m.set(FLD_INFILE, ninp); + if (m.run() == K_ENTER) + { + TSystemisamfile f(logicnum); + char fs = *esc(m.get(FLD_FS)); + char fd = *esc(m.get(FLD_FD)); + char rs = *esc(m.get(FLD_RS)); + ninp = m.get(FLD_INFILE); + f.load(ninp, fs, fd, rs); + } + } + break; + default: + break; } } default: @@ -1027,7 +1028,7 @@ void TManutenzione_app::convert_dir() TProgind p(update_items ? update_items : 1, s, FALSE, TRUE, 70); p.setstatus(1); - for (int i = 2; i <= update_items; i++) + for (int i = 2; i <= update_items; i++) { p.addstatus(1); // prefix().set(""); @@ -1131,7 +1132,7 @@ void TManutenzione_app::convert_dir() put_history(pref); } -void TManutenzione_app::load_des() +void TManutenzione_app::load_des(const int maxfdir) { const TString pref(prefix().name()); @@ -1206,7 +1207,7 @@ void TManutenzione_app::load_des() /* // Aggiorna il numero di files presenti in totale nel direttorio - if (last_newln > items) // rialloca openf altrimenti la TPrefix::closeall() provoca un grazioso errore in applicazione + if (last_newln > maxfdir) // rialloca openf altrimenti la TPrefix::closeall() provoca un grazioso errore in applicazione { isfdptr *newopenf = new isfdptr[last_newln]; for (int i = 0; iget(F_SN)); } str.format("%3d", ++found); @@ -1189,6 +1203,74 @@ void TAttivazione_moduli::print_answer() } +void TAttivazione_moduli::print_listino() +{ + TRequest_form form("ba1500a"); + TForm_item& num = form.find_field('B', odd_page, 101); + TForm_item& descr = form.find_field('B', odd_page, 102); + TForm_item& codice = form.find_field('B', odd_page, 103); + TForm_item& price = form.find_field('B', odd_page, 104); + TForm_item& manut = form.find_field('B', odd_page, 105); + + TInstall_ini ini; + ini.write_protect(); + + const bool special = _wanted_assist > ::dongle().year_assist() || _wanted_users != 0; + const word users = max(_wanted_users, ::dongle().max_users()); + + TWait_cursor hourglass; + TSheet_field& sheet = _msk->sfield(F_MODULI); + { + int found = 0; + TString str; + real full, assist; + + FOR_EACH_SHEET_ROW(sheet, r, row) + { + const int module = row->get_int(2) ; + const bool active = ::dongle().active(module); + + str = _im->get_name(module); + ini.prices(str, users, full, assist, FALSE); + if (!full.is_zero() || ! assist.is_zero()) + { + if (found++ == 0) + { + printer().open(); + form.find_field('H',odd_page,1).set("LISTINO"); + + num.set(""); + str.format("Numero utenti: %u", users ); + descr.set(str); + form.print(-1); + } + + price.set(full.string()); + manut.set(assist.string()); + + str.format("%3d", found); + num.set(str); + + str = row->get(0); + descr.set(str); + + str = ""; + codice.set(str); + + form.print(-1); + } + } + + if (found) + { + form.print_footer(); + printer().close(); + } + } +} + + + void TAttivazione_moduli::print() { if (::dongle().type() == _user_dongle) @@ -1214,6 +1296,7 @@ bool TAttivazione_moduli::create() _msk->set_handler(F_CHANGEUSERS, change_users_handler); _msk->set_handler(F_CHANGEASSIST, change_assist_handler); _msk->set_handler(F_PRINT, print_handler); + _msk->set_handler(F_PRINTLIST, printlist_handler); _msk->set_handler(F_AGGLISTINO, aggiorna_listino_handler); if (::dongle().type() == _aga_dongle) { diff --git a/ba/ba1500a.h b/ba/ba1500a.h index afda7f46f..a434d8d62 100755 --- a/ba/ba1500a.h +++ b/ba/ba1500a.h @@ -19,6 +19,7 @@ #define F_AGA 219 #define F_AGGLISTINO 220 #define F_MODLISTINO 221 +#define F_PRINTLIST 222 #define F_NOMEMOD 101 #define F_ENABLE 102 diff --git a/ba/ba1500a.uml b/ba/ba1500a.uml index f94da9c56..dd5945705 100755 --- a/ba/ba1500a.uml +++ b/ba/ba1500a.uml @@ -84,6 +84,11 @@ BEGID PROMPT 1 3 "Aggiorna listino" END +BUTTON F_PRINTLIST 18 1 +BEGIN + PROMPT 22 3 "Stampa Listino" +END + BUTTON F_MODLISTINO 18 BEGID PROMPT 1 4 "Modifica listino" diff --git a/ba/ba1600.cpp b/ba/ba1600.cpp index 34301a3a4..c81aa2a9b 100755 --- a/ba/ba1600.cpp +++ b/ba/ba1600.cpp @@ -14,15 +14,50 @@ #include "ba1600.h" #include "ba1600a.h" + +int find(const TString& name, TString_array & rows) ; + /////////////////////////////////////////////////////////// // Configurazione per installazione /////////////////////////////////////////////////////////// +class TCreazione_dischi : public TSkeleton_application +{ +protected: + virtual bool use_files() const { return FALSE; } + virtual void main_loop(); +public: + virtual bool modify_mode() { return FALSE;} +}; + +class TFascicolator : public TCreazione_dischi +{ +protected: + virtual bool use_files() const { return FALSE; } + virtual void main_loop(); +public: + virtual bool modify_mode() { return TRUE;} +}; + + + +class TFconv_ini : public TConfig +{ +public: + void export_module(const char* module, const char* summary); + + TFconv_ini(const char* path = "fconv.ini") : TConfig(path) { } + virtual ~TFconv_ini() { } +}; + + +// costruisce la lista del modulo e dei suoi sottomoduli interni int TInstall_ini::build_list(const TString& module, TString_array& a, const char* sommario, bool agg) { CHECKS(module.len() >= 2 || module[0]=='_', "Bad module ", (const char*)module); + TConfig* sum = NULL; if (sommario && *sommario) sum = new TConfig(sommario, module); @@ -92,26 +127,106 @@ int TInstall_ini::build_complete_list(const TString& module, TString_array& a, return a.items(); } -void TInstall_ini::export_paragraph(const char* module, const char* summary) +void TInstall_ini::export_paragraph(const char* module, const char* summary,const bool remove_old) { CHECK(module && *module > ' ', "Can't export NULL module"); CHECK(summary && *summary > ' ', "Can't export to NULL .ini"); - TConfig sum(summary, module); - sum.remove_all(); + TInstall_ini sum(summary, module); + TString_array old_list; + int last_file_num=0; + const bool is_submodule=(module[2]!='\0'); + const int submodule=(module[2]-'0'); + char main_module[3]={0,0,0}; + strncpy(main_module, module,2); + + if (remove_old || !is_submodule ) + { + // substitute... + sum.remove_all(); + } else { + // merge... + sum.build_list(main_module, old_list); + sum.set_paragraph(module); + last_file_num=old_list.items(); + } + TAssoc_array& ass = list_variables(module); + TString newkey,tmps; + TToken_string item_value; + TString ; FOR_EACH_ASSOC_STRING(ass, obj, key, str) - sum.set(key, str); + { + if (!remove_old && is_submodule && strncmp(key, "File", 4)==0 ) + { + // merging "File(X)" items... + item_value=str; + tmps=item_value.get(0); + int item_number=find(tmps, old_list); + if (item_number>=0) + { + // file sostituito + TString old_smodule(old_list.row(item_number).get(2)); + TAssoc_array& oldvars = sum.list_variables(old_smodule); + THash_object* obj; + TToken_string oldvalue; + oldvars.restart(); + do { + obj=oldvars.get_hashobj(); + oldvalue=((TString &)obj->obj()); + if (tmps == oldvalue.get(0)) + break; + } while (obj); + newkey=obj->key(); + if (old_smodule!=module) + { + // devo cancellare il file dal vecchio sottomodulo + sum.set_paragraph(old_smodule); + sum.remove(newkey); + sum.set_paragraph(module); + } + } else { + // nuovo file + newkey = "File"; + newkey << '(' << last_file_num++ << ')'; + } + sum.set(newkey, str); + } else { + sum.set(key, str); + } + } } -void TInstall_ini::export_module_paragraphs(const char* module, const char* summary) +void TInstall_ini::export_module_paragraphs(const char* module, const char* summary, const bool remove_old) { + // esporta le info di composizione del modulo TString mod; for (int sub = -1; sub <= 9; sub++) { mod = module; if (sub >= 0) mod << sub; if (set_paragraph(mod)) - export_paragraph(mod, summary); + export_paragraph(mod, summary,remove_old); + } + + if (remove_old) + { + // esporta le info di conversione + TFilename path; + TInstall_ini inst(summary); + if (inst.name()==inst.default_name()) + { + path = inst.name().path(); + path.add(module); path << "fconv.ini"; + TFconv_ini fconv(path); + fconv.export_module(module, "fconv.ini"); + } + else + { + TFconv_ini fconv; // + path = inst.name().path(); + path.add(module); path << "fconv.ini"; + fconv.export_module(module, path); + } } } @@ -170,7 +285,6 @@ bool TInstall_ini::update_prices(const char* from) const TDate from_date(from_ini.get("Listino","Main")); if (from_date < curr_date) return FALSE; - set("Listino", from_date); TString_array modules; @@ -190,7 +304,7 @@ bool TInstall_ini::update_prices(const char* from) } void TInstall_ini::prices(const char* module, word users, - real& full, real& assist) + real& full, real& assist, bool correct_ass) { real last_pac, last_ass; full = assist = 0.0; @@ -206,7 +320,7 @@ void TInstall_ini::prices(const char* module, word users, if (last_ass < 50000.0) last_ass *= 1000.0; const int mese = TDate(TODAY).month(); - last_ass = last_ass * (12-mese) / 12; + last_ass = last_ass * (correct_ass ? (12-mese) / 12 : 1); last_ass.round(-3); } full += last_pac; @@ -218,15 +332,6 @@ void TInstall_ini::prices(const char* module, word users, // TFconv_ini /////////////////////////////////////////////////////////// -class TFconv_ini : public TConfig -{ -public: - void export_module(const char* module, const char* summary); - - TFconv_ini(const char* path = "fconv.ini") : TConfig(path) { } - virtual ~TFconv_ini() { } -}; - void TFconv_ini::export_module(const char* module, const char* summary) { TScanner scanner("prassi.aut"); @@ -301,29 +406,16 @@ protected: static bool link_handler(TMask_field& f, KEY k); static bool deselect_handler(TMask_field& f, KEY k); - bool find(const TString& name) const; bool kill_missing(const char* name, bool update); public: void load(const TString& module); void save(); - TMod_composition_msk(); + TMod_composition_msk(const bool modify_mode=FALSE); virtual ~TMod_composition_msk() { } }; -// Cerca un file nello sheet principale -bool TMod_composition_msk::find(const TString& name) const -{ - TSheet_field& sf = sfield(F_SHEET); - FOR_EACH_SHEET_ROW_BACK(sf, r, row) - { - if (name.compare(row->get(0), -1, TRUE) == 0) - break; - } - return r >= 0; -} - // Toglie il file dallo sheet dei mancanti bool TMod_composition_msk::kill_missing(const char* name, bool update) { @@ -359,6 +451,7 @@ bool TMod_composition_msk::sheet_notify(TSheet_field& sf, int r, KEY key) if (items > 0) { TMod_composition_msk& msk = (TMod_composition_msk&)sf.mask(); + TString_array & rows=msk.sfield(F_SHEET).rows_array(); TString16 module = sf.row(r).get(2); if (module.len() < 3) @@ -379,7 +472,7 @@ bool TMod_composition_msk::sheet_notify(TSheet_field& sf, int r, KEY key) msk.kill_missing(file, FALSE); - if (!msk.find(file)) + if (::find(file,rows)>=0) { TToken_string& row = sf.row(found ? -1 : r); row = file; @@ -668,20 +761,27 @@ void TMod_composition_msk::save() } -TMod_composition_msk::TMod_composition_msk() +TMod_composition_msk::TMod_composition_msk(const bool modify_mode) : TMask("ba1600b") { - set_handler(F_DESELECT, deselect_handler); - TSheet_field& s = sfield(F_SHEET); - s.set_notify(sheet_notify); - s.sheet_mask().set_handler(S_FILE, file_handler); - s.sheet_mask().set_handler(DLG_EDIT, edit_handler); - TSheet_field& miss = sfield(F_MISSING); - miss.set_notify(missing_notify); - miss.disable(); // Read-only sheet - miss.sheet_mask().set_handler(100, link_handler); + set_handler(F_DESELECT, deselect_handler); + if (modify_mode) + { + s.set_notify(sheet_notify); + s.sheet_mask().set_handler(S_FILE, file_handler); + s.sheet_mask().set_handler(DLG_EDIT, edit_handler); + miss.disable(); // Read-only sheet + miss.set_notify(missing_notify); + miss.sheet_mask().set_handler(100, link_handler); + } else { + s.disable(); // Read-only sheet + //hide(DLG_OK); + // hide(F_DESELECT); + //hide(DLG_CANCEL); + miss.hide(); + } } /////////////////////////////////////////////////////////// @@ -704,37 +804,60 @@ public: // Maschera principale /////////////////////////////////////////////////////////// -class TFascicolator_mask : public TMask +class TCreadischi_mask : public TMask { protected: static bool confirm_handler(TMask_field& f, KEY k); static bool list_handler(TMask_field& f, KEY k); - static bool save_handler(TMask_field& f, KEY k); + static bool confirm_handler(TMask_field& f, KEY k); + static bool creazip_handler(TMask_field& f, KEY k); + static bool modules_notify(TSheet_field& f, int row, KEY k); static bool import_export_handler(TMask_field& f, KEY k); - static bool modules_notify(TSheet_field& f, int row, KEY k); - - bool zip_file(const char* archive, const char* file) const; - int split_file(const TFilename& file, long size) const; - bool move_file(const TFilename& file, const char* dir) const; - bool zip_module(const TString& module, bool agg, int patch_level) const; - - const TFilename& build_export_path(TFilename& path) const; + virtual const TFilename& build_export_path(TFilename& path) const; + virtual bool zip_file(const char* archive, const char* file) const; + virtual int split_file(const TFilename& file, long size) const; + virtual bool move_file(const TFilename& file, const char* dir) const; + virtual bool zip_module(const TString& module, bool agg, int patch_level) const; + + virtual bool set_version_info(const TFilename& filename, + TInstall_ini& ini, const char* module) const; + + virtual bool show_all_modules() {return FALSE;} +public: + virtual void save(); + virtual void load(); + + TCreadischi_mask(); + virtual ~TCreadischi_mask() { } +}; + +class TFascicolator_mask : public TCreadischi_mask +{ long find_signature(const TFilename& filename, const char* signature) const; - bool set_version_info(const TFilename& filename, + +protected: + static bool list_handler(TMask_field& f, KEY k); + static bool confirm_handler(TMask_field& f, KEY k); + + static bool patchl_handler(TMask_field& f, KEY k); + + // fuinzioni per la "firma" del file con il numero di release + virtual bool set_version_info(const TFilename& filename, TInstall_ini& ini, const char* module) const; + virtual bool show_all_modules() {return TRUE;} public: - void load(); - void save(); + virtual void save(); TFascicolator_mask(); virtual ~TFascicolator_mask() { } }; + -bool TFascicolator_mask::modules_notify(TSheet_field& f, int row, KEY k) +bool TCreadischi_mask::modules_notify(TSheet_field& f, int row, KEY k) { bool ok = TRUE; if (k == K_INS || k == K_DEL) @@ -861,17 +984,35 @@ bool TFascicolator_mask::patchl_handler(TMask_field& f, KEY k) } + +bool TCreadischi_mask::list_handler(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TModule_mask& m = (TModule_mask&)f.mask(); + const TString& module = m.get(S_MODULE); + + if (module.not_empty()) + { + TMod_composition_msk mm; + mm.load(module); + if (mm.run() == K_ENTER) + mm.save(); + } + } + return TRUE; +} + bool TFascicolator_mask::list_handler(TMask_field& f, KEY k) { if (k == K_SPACE) { TModule_mask& m = (TModule_mask&)f.mask(); const TString& module = m.get(S_MODULE); - const int patchlev = m.get_int(S_PATCHLEVEL); if (module.not_empty()) { - TMod_composition_msk mm; + TMod_composition_msk mm(TRUE); mm.load(module); if (mm.run() == K_ENTER) mm.save(); @@ -882,6 +1023,15 @@ bool TFascicolator_mask::list_handler(TMask_field& f, KEY k) return TRUE; } + + + + +bool TCreadischi_mask::confirm_handler(TMask_field& f, KEY k) +{ + return TRUE; +} + bool TFascicolator_mask::confirm_handler(TMask_field& f, KEY k) { if (k == K_SPACE) @@ -914,7 +1064,7 @@ bool TFascicolator_mask::confirm_handler(TMask_field& f, KEY k) if (patchlevel>0 && m.check_needed()) { // controlla le consistenze tra patch di moduli diversi intrinsecamente correlati - TMod_composition_msk mc; + TMod_composition_msk mc; mc.load(module); m.check_patchlevels(mc); } @@ -923,22 +1073,30 @@ bool TFascicolator_mask::confirm_handler(TMask_field& f, KEY k) } -bool TFascicolator_mask::save_handler(TMask_field& f, KEY k) +bool TCreadischi_mask::creazip_handler(TMask_field& f, KEY k) { if (k == K_SPACE) { confirm_handler(f, K_SPACE); TMask& m = f.mask(); const TString& module = m.get(S_MODULE); - const bool agg = f.dlg() == S_SAVEAGG; - TFascicolator_mask& fm = (TFascicolator_mask&)m.get_sheet()->mask(); - fm.zip_module(module, agg, m.get_int(S_PATCHLEVEL)); + const bool agg = f.dlg() == S_CREATEPATCH; + TCreadischi_mask& fm = (TCreadischi_mask&)m.get_sheet()->mask(); + if (fm.zip_module(module, agg, m.get_int(S_PATCHLEVEL))) + { + // creazione XXfconv.ini (esporta le info di conversione ) + TFilename fconv_path; + TFconv_ini fconv; // + fconv_path = fm.get(F_DISKPATH); + fconv_path.add(module); fconv_path << "fconv.ini"; + fconv.export_module(module, fconv_path); + } } return TRUE; } -bool TFascicolator_mask::import_export_handler(TMask_field& f, KEY k) +bool TCreadischi_mask::import_export_handler(TMask_field& f, KEY k) { if (k == K_SPACE) { @@ -946,7 +1104,7 @@ bool TFascicolator_mask::import_export_handler(TMask_field& f, KEY k) const TMask& m = f.mask(); const TString& module = m.get(S_MODULE); - const TFascicolator_mask& fm = (const TFascicolator_mask&)m.get_sheet()->mask(); + const TCreadischi_mask& fm = (const TCreadischi_mask&)m.get_sheet()->mask(); TFilename path = module; fm.build_export_path(path); @@ -974,29 +1132,29 @@ bool TFascicolator_mask::import_export_handler(TMask_field& f, KEY k) if (is_export) { TInstall_ini inst; - inst.export_module_paragraphs(module, path); + inst.export_module_paragraphs(module, path,TRUE); - TFconv_ini fconv; + /*TFconv_ini fconv; path = path.path(); path.add(module); path << "fconv.ini"; - fconv.export_module(module, path); + fconv.export_module(module, path);*/ } else { TInstall_ini ini(path); - ini.export_module_paragraphs(module, ini.default_name()); + ini.export_module_paragraphs(module, ini.default_name(),TRUE); - path = path.path(); + /*path = path.path(); path.add(module); path << "fconv.ini"; TFconv_ini fconv(path); - fconv.export_module(module, "fconv.ini"); + fconv.export_module(module, "fconv.ini");*/ } } } return TRUE; } -const TFilename& TFascicolator_mask::build_export_path(TFilename& path) const +const TFilename& TCreadischi_mask::build_export_path(TFilename& path) const { CHECK(path.not_empty(), "Please, specify the module"); const TString module(path); @@ -1019,7 +1177,7 @@ const TFilename& TFascicolator_mask::build_export_path(TFilename& path) const return path; } -void TFascicolator_mask::load() +void TCreadischi_mask::load() { TWait_cursor hourglass; TSheet_field& s = sfield(F_SHEET); @@ -1036,10 +1194,13 @@ void TFascicolator_mask::load() FOR_EACH_ARRAY_ROW(modules, m, riga) { const TString& module = *riga; - if (module[0] == '_' || module.len() == 2) + ini.set_paragraph(module); + tmp = ini.get("Versione"); + if (module[0] == '_' || // linea di descrizione area + (module.len() == 2 && // linea di modulo principale + (!tmp.blank() || show_all_modules()))) { TToken_string& row = s.row(-1); - ini.set_paragraph(module); row = ini.get("Descrizione"); if (module[0] == '_') @@ -1049,39 +1210,49 @@ void TFascicolator_mask::load() else { row.add(module); - + tmp = ini.get("Versione"); - row.add(tmp); - + row.add(tmp); // versione + tmp = ini.get("Patch"); row.add(tmp); - + tmp = ini.get("Data"); row.add(tmp); - + tmp = ini.get("Moduli"); row.add(tmp); - + tmp = ini.get("PreProcess"); row.add(tmp); - + tmp = ini.get("PostProcess"); row.add(tmp); - } + } } } } -void TFascicolator_mask::save() +void TCreadischi_mask::save() { TSheet_field& s = sfield(F_SHEET); - TProgind pi(s.items(), "Salvataggio in corso...", FALSE, TRUE); TInstall_ini ini; ini.set("DiskSize", get(F_DISKSIZE)); ini.set("DiskPath", get(F_DISKPATH)); +} + + +void TFascicolator_mask::save() +{ + TSheet_field& s = sfield(F_SHEET); + TCreadischi_mask::save(); + + TProgind pi(s.items(), "Salvataggio in corso...", FALSE, TRUE); + TInstall_ini ini; + TString tmp; FOR_EACH_SHEET_ROW_BACK(s, r, row) { @@ -1116,7 +1287,7 @@ void TFascicolator_mask::save() } } -bool TFascicolator_mask::zip_file(const char* archive, const char* listfile) const +bool TCreadischi_mask::zip_file(const char* archive, const char* listfile) const { TString msg; msg << "Creazione del file " << archive << "..."; @@ -1131,7 +1302,7 @@ bool TFascicolator_mask::zip_file(const char* archive, const char* listfile) con return err == 0; } -bool TFascicolator_mask::move_file(const TFilename& file, const char* dir) const +bool TCreadischi_mask::move_file(const TFilename& file, const char* dir) const { TFilename dest(dir); dest.add(file.name()); @@ -1175,7 +1346,7 @@ bool TFascicolator_mask::move_file(const TFilename& file, const char* dir) const return write_ok; } -int TFascicolator_mask::split_file(const TFilename& archive, long size) const +int TCreadischi_mask::split_file(const TFilename& archive, long size) const { TWait_cursor hourglass; @@ -1267,6 +1438,12 @@ long TFascicolator_mask::find_signature(const TFilename& filename, const char* s return found ? position : -1; } +bool TCreadischi_mask::set_version_info(const TFilename& filename, + TInstall_ini& ini, const char* module) const +{ + return TRUE; +} + bool TFascicolator_mask::set_version_info(const TFilename& filename, TInstall_ini& ini, const char* module) const { @@ -1300,7 +1477,7 @@ bool TFascicolator_mask::set_version_info(const TFilename& filename, return ok; } -bool TFascicolator_mask::zip_module(const TString& main_module, bool agg, int patch_level) const +bool TCreadischi_mask::zip_module(const TString& main_module, bool agg, int patch_level) const { TString_array arr; TInstall_ini ini; @@ -1323,6 +1500,8 @@ bool TFascicolator_mask::zip_module(const TString& main_module, bool agg, int pa return error_box("Nessun file da compattare"); } + // ***************** + // creazione ZIP TFilename archivio(sommario); archivio.ext("zip"); // Nome del file archivio completo @@ -1405,7 +1584,7 @@ bool TFascicolator_mask::zip_module(const TString& main_module, bool agg, int pa // Memorizza il numero dei dischetti nel sommario ini.set("Dischi", disks, main_module); // Aggiorna install.ini - ini.export_paragraph(main_module, sommario); // Aggiorna sommario + ini.export_paragraph(main_module, sommario,TRUE); // Aggiorna sommario const bool floppy = ::os_is_removable_drive(path); @@ -1444,33 +1623,53 @@ bool TFascicolator_mask::zip_module(const TString& main_module, bool agg, int pa return TRUE; } -TFascicolator_mask::TFascicolator_mask() +TCreadischi_mask::TCreadischi_mask() : TMask("ba1600a") { TSheet_field& s = sfield(F_SHEET); s.set_notify(modules_notify); TMask& m = s.sheet_mask(); + m.set_handler(DLG_OK, confirm_handler); m.set_handler(S_LIST, list_handler); - m.set_handler(S_SAVE, save_handler); - m.set_handler(S_SAVEAGG, save_handler); - m.set_handler(S_IMPORT, import_export_handler); + m.set_handler(S_CREATEZIP, creazip_handler); + m.set_handler(S_CREATEPATCH, creazip_handler); + m.hide(S_IMPORT); m.set_handler(S_EXPORT, import_export_handler); - + s.enable_column(S_MODULE,FALSE); + s.enable_column(S_VERSION,FALSE); + s.enable_column(S_PATCHLEVEL,FALSE); + s.enable_column(S_EXTERN,FALSE); + s.enable_column(S_PREPROCESS,FALSE); + s.enable_column(S_POSTPROCESS,FALSE); } +TFascicolator_mask::TFascicolator_mask() + : TCreadischi_mask() +{ + TSheet_field& s = sfield(F_SHEET); + s.set_notify(TCreadischi_mask::modules_notify); + + TMask& m = s.sheet_mask(); + + m.set_handler(DLG_OK, confirm_handler); + m.set_handler(S_LIST, list_handler); + m.set_handler(S_PATCHLEVEL, patchl_handler); + m.show(S_IMPORT); + m.set_handler(S_IMPORT, import_export_handler); + s.enable_column(S_MODULE,TRUE); + s.enable_column(S_VERSION,TRUE); + s.enable_column(S_PATCHLEVEL,TRUE); + s.enable_column(S_EXTERN,TRUE); + s.enable_column(S_PREPROCESS,TRUE); + s.enable_column(S_POSTPROCESS,TRUE); +} + + /////////////////////////////////////////////////////////// // Programma principale /////////////////////////////////////////////////////////// - -class TFascicolator : public TSkeleton_application -{ -protected: - virtual bool use_files() const { return FALSE; } - virtual void main_loop(); -}; - void TFascicolator::main_loop() { TFascicolator_mask m; @@ -1485,9 +1684,49 @@ void TFascicolator::main_loop() while (key != K_ENTER && key != K_QUIT); } + + +void TCreazione_dischi::main_loop() +{ + TCreadischi_mask m; + m.load(); + int key; + do + { + key=m.run(); + if (key == K_ENTER) + m.save(); + } + while (key != K_ENTER && key != K_QUIT); +} + +// Cerca un file nell'array di colonne e ne restituisce il numero del sottomodulo +// -1 se +int find(const TString& name, TString_array & rows) +{ + for(int r=rows.items()-1; r >=0 ; r-- ) + { + if (name.compare(rows.row(r).get(0), -1, TRUE) == 0) + break; + } + return r; +} + + + int ba1600(int argc, char* argv[]) { - TFascicolator app; - app.run(argc, argv, "Megascicolator"); + if (user() == "PRASSI") + { + if (argc>2 && strcmp(argv[1],"GODMODE")) + { + TFascicolator app; + app.run(argc, argv, "Megascicolator"); + } else { + TCreazione_dischi app; + app.run(argc, argv, "Creazione dischetti"); + } + } else + error_box("L'utente %s non e' abilitato all'esecuzione di questo programma", (const char*)user()); return 0; } diff --git a/ba/ba1600.h b/ba/ba1600.h index 07af0e25a..07c8b4990 100755 --- a/ba/ba1600.h +++ b/ba/ba1600.h @@ -13,8 +13,8 @@ public: int build_complete_list(const TString& m, TString_array& a, const char* s = NULL, bool agg = FALSE); - void export_paragraph(const char* module, const char* summary); - void export_module_paragraphs(const char* module, const char* summary); + void export_paragraph(const char* module, const char* summary,const bool remove); + void export_module_paragraphs(const char* module, const char* summary,const bool remove); bool demo() { return get_bool("Demo", "Main"); } const TString& version(const char* module); @@ -22,12 +22,13 @@ public: void version_info(const char* module, int& year, int& release, int& tag, int& patch); bool update_prices(const char* src_ini); - void prices(const char* module, word users, real& full, real& manut); + void prices(const char* module, word users, real& full, real& manut, bool correct_ass=TRUE); static const char* default_name() { return "install.ini"; } TInstall_ini() : TConfig("install.ini", "Main") { } TInstall_ini(const char* path) : TConfig(path, "Main") { } + TInstall_ini(const char* path, const char * paragraph) : TConfig(path, paragraph) { } virtual ~TInstall_ini() { } }; diff --git a/ba/ba1600a.h b/ba/ba1600a.h index 7d6c7b5eb..69c6bb52c 100755 --- a/ba/ba1600a.h +++ b/ba/ba1600a.h @@ -18,8 +18,8 @@ #define S_POSTPROCESS 108 #define S_LIST 100 -#define S_SAVE 151 -#define S_SAVEAGG 152 +#define S_CREATEZIP 151 +#define S_CREATEPATCH 152 #define S_IMPORT 153 #define S_EXPORT 154 diff --git a/ba/ba1600a.uml b/ba/ba1600a.uml index c3cb93ca4..1292ea58d 100755 --- a/ba/ba1600a.uml +++ b/ba/ba1600a.uml @@ -65,31 +65,37 @@ END STRING S_VERSION 8 BEGIN PROMPT 1 2 "Versione " + FLAGS "D" END STRING S_PATCHLEVEL 3 BEGIN PROMPT 20 2 "Patch " + FLAGS "D" END DATE S_DATE BEGIN PROMPT 31 2 "Rilascio " +// FLAGS "D" END STRING S_EXTERN 50 40 BEGIN PROMPT 1 3 "Esterni " + FLAGS "D" END STRING S_PREPROCESS 50 33 BEGIN PROMPT 1 4 "Pre-processing " + FLAGS "D" END STRING S_POSTPROCESS 50 33 BEGIN PROMPT 1 5 "Post-processing " + FLAGS "D" END BUTTON DLG_CANCEL 14 2 @@ -102,32 +108,33 @@ BEGIN PROMPT -22 -1 "" END -BUTTON S_LIST 14 2 +BUTTON S_CREATEZIP 20 2 BEGIN - PROMPT -13 -5 "Lista file" + PROMPT -12 -5 "Crea &Versione" END -BUTTON S_SAVE 14 2 +BUTTON S_CREATEPATCH 20 2 BEGIN - PROMPT -23 -5 "&Versione" + PROMPT -22 -5 "Crea &Aggiornamento" END -BUTTON S_SAVEAGG 14 2 +BUTTON S_LIST 14 1 BEGIN - PROMPT -23 -3 "&Aggiornamento" + PROMPT -13 -4 "Lista file" END -BUTTON S_IMPORT 14 2 +BUTTON S_IMPORT 14 1 BEGIN - PROMPT -33 -5 "&Importa" + PROMPT -23 -4 "&Importa lista" END -BUTTON S_EXPORT 14 2 +BUTTON S_EXPORT 14 1 BEGIN - PROMPT -33 -3 "&Esporta" + PROMPT -33 -4 "&Esporta lista" END + ENDPAGE ENDMASK - \ No newline at end of file + diff --git a/ba/ba1600b.uml b/ba/ba1600b.uml index ddc83e40d..cfb77ab88 100755 --- a/ba/ba1600b.uml +++ b/ba/ba1600b.uml @@ -9,7 +9,7 @@ END BUTTON F_DESELECT 24 2 BEGIN - PROMPT -11 -11 "Annulla aggiornamento" + PROMPT -23 -11 "Annulla aggiornamento" END BUTTON DLG_CANCEL 10 2 diff --git a/ba/ba1700.cpp b/ba/ba1700.cpp index 47a4344f0..99e0fbd00 100755 --- a/ba/ba1700.cpp +++ b/ba/ba1700.cpp @@ -7,7 +7,7 @@ #include #include #include - +#include #include "ba1.h" #include "ba1500.h" @@ -25,40 +25,59 @@ #define C_CURRDATAREL 8 #define C_ISPATCH 9 -const char* const http_default_path = "/aga/campo/"; +#ifdef _DEMO_ + const char* const http_default_path = "/aga/eurodemo/zipdemo/"; +#else + const char* const http_default_path = "/aga/euro/zip/"; +#endif HIDDEN int compare_version(const char* v1, int p1, const char* v2, int p2) { - TString16 ver1(v1), ver2(v2); + TString16 ver1(v1), ver2(v2); ver1.trim(); - if (ver1.len() == 4) + if (ver1.len() == 4) ver1.insert((v1[0] == '9') ? "19" : "20", 0); ver2.trim(); - if (ver2.len() == 4) + if (ver2.len() == 4) ver2.insert((v2[0] == '9') ? "19" : "20", 0); - + int res = ver1.compare(ver2, -1, TRUE); if (res == 0) res = p1 - p2; - + return res; } HIDDEN word version2year(const char* v) -{ +{ TString16 ver(v); - if (ver.len() == 4) + if (ver.len() == 4) ver.insert((v[0] == '9') ? "19" : "20", 0); - ver.cut(4); + ver.cut(4); return atoi(ver); } +bool is_internet_path(const TString& addr) +{ + if (addr.compare("www.", 4, TRUE) == 0) + return TRUE; + + if (addr.compare("http:", 5, TRUE) == 0) + return TRUE; + + int a1, a2, a3, a4; + if (sscanf(addr, "%d.%d.%d.%d", &a1, &a2, &a3, &a4) == 4) + return TRUE; + + return FALSE; +} + /////////////////////////////////////////////////////////// // Maschera principale /////////////////////////////////////////////////////////// class TInstaller_mask : public TArray_sheet -{ +{ static TInstaller_mask* _curr_mask; word _year_assist; bool _installed; // Flag per verificare se almeno un modulo e' stato installato @@ -72,6 +91,7 @@ protected: static bool path_handler(TMask_field& fld, KEY key); static bool sheet_notify(TSheet_field& s, int r, KEY k); static bool install_handler(TMask_field& fld, KEY key); + static bool update_handler(TMask_field& f, KEY k); bool add_module(TConfig& ini, const TString& module, bool patch, int pos=-1); bool add_header(TConfig& ini, const TString& module, bool patch); @@ -84,6 +104,7 @@ protected: bool can_install(const char* module, TInstall_ini& ini); void install_selection(); bool install_patches(const TString& module, const TString& lastrelease, int lastpatch); + KEY askdisk(TString & path, TFilename & cmdline, int d, int dischi, const char * modulo); bool do_process(TToken_string& commands) const; bool pre_process(TInstall_ini& ini, const char* module) const; @@ -106,7 +127,7 @@ bool TInstaller_mask::add_module(TConfig& ini, const TString& module, bool patch ini.write_protect(); bool ok = ini.set_paragraph(module); if (ok) - { + { TToken_string row; row = " "; // Not selected row.add(ini.get("Descrizione")); @@ -129,7 +150,7 @@ bool TInstaller_mask::add_header(TConfig& ini, const TString& module, bool patch ini.write_protect(); bool ok = ini.set_paragraph(module); if (ok) - { + { TToken_string row; row = " "; // Not selected row.add(ini.get("Descrizione")); @@ -143,9 +164,9 @@ static int compare_modules(const TObject** o1, const TObject** o2) { TToken_string& ts1 = *(TToken_string*)(*o1); TToken_string& ts2 = *(TToken_string*)(*o2); - + int res = 0; - for (int i = 2; i < 5 && res == 0; i++) + for (int i = 2; i < 5 && res == 0; i++) { TString16 s1 = ts1.get(i); const char* s2 = ts2.get(i); @@ -163,11 +184,11 @@ int TInstaller_mask::sort_modules() // vecchio codice per bubblare for (int r = 0; r < tot; r++) - { + { const bool patch = row(r).get_char(C_ISPATCH) > ' '; const char* mod = row(r).get(C_CODE); if (patch) - { + { TString16 dis=mod; const int patchlevel = row(r).get_int(C_PATCH); // pop the patch line up to the module one @@ -190,15 +211,15 @@ int TInstaller_mask::sort_modules() void TInstaller_mask::update_version() { TInstall_ini ini; - + TString_array& array = rows_array(); FOR_EACH_ARRAY_ROW_BACK(array, m, row) - { + { if (*row->get(C_CODE) != ' ') { const TString16 module = row->get(C_CODE); ini.set_paragraph(module); - + const TString16 newver = row->get(C_RELEASE); const TString16 oldver = ini.get("Versione"); row->add(oldver, C_CURRRELEASE); @@ -227,7 +248,7 @@ bool is_internet_path(const TString& addr) // Cerca nel percorso specificato sulla maschera tutti i possibili files .ini // utilizzabili per un'installazione e li inserisce nello spreadsheet bool TInstaller_mask::autoload() -{ +{ TString_array& mask_rows = rows_array(); TFilename path = get(F_PATH); @@ -292,10 +313,20 @@ bool TInstaller_mask::autoload() return error_box("Specificare un percorso valido"); TWait_cursor hourglass; + // !?!?!? modifica per correggere il bug di libreria su _parked dei TSheet: + // !?!?!? (uso della stringa _park e dell'indice _parked ) + // !?!?!? rimuovere appena si è corretto l'errore + for (short pisellone =0; pisellone<100; pisellone++) + add(""); + // !?!?! fine modifica destroy(); + force_update(); - TString_array modules; + ininame=path; + ininame.add(TInstall_ini::default_name()); + TString_array modules; + if (fexist(ininame)) { TInstall_ini ini(ininame); @@ -320,7 +351,7 @@ bool TInstaller_mask::autoload() ininame.add("??inst.ini"); list_files(ininame, modules); FOR_EACH_ARRAY_ROW(modules, m, row) - { + { TString& ininame = *row; ininame.lower(); const int pos = ininame.find("inst.ini"); @@ -370,13 +401,14 @@ bool TInstaller_mask::autoload() modules.sort(); // sort to have patches in patchlevel order FOR_EACH_ARRAY_ROW(modules, am, arow) - { + { TString& ininame = *arow; ininame.lower(); const int pos = ininame.find("a.ini"); CHECKS(pos >= 6, "Invalid installation configuration: ", (const char*)ininame); const TString16 module = ininame.mid(pos-6, 2); - TConfig ini(ininame, module); + TConfig ini(ininame, module); + ini.write_protect(); const int patchlevel = ini.get_int("Patch"); const int maxrows=int(items()); bool found=FALSE; @@ -395,7 +427,7 @@ bool TInstaller_mask::autoload() else add_module(ini, module, TRUE); } - + const bool ok = sort_modules() > 0; if (ok) update_version(); @@ -407,7 +439,7 @@ bool TInstaller_mask::autoload() } bool TInstaller_mask::do_process(TToken_string& commands) const -{ +{ bool ok = TRUE; TFilename cmd; for (const char* c = commands.get(0); c && ok; c = commands.get()) @@ -424,7 +456,7 @@ bool TInstaller_mask::do_process(TToken_string& commands) const } bool TInstaller_mask::pre_process(TInstall_ini& ini, const char* module) const -{ +{ TAuto_token_string commands(ini.get("PreProcess", module)); bool ok = do_process(commands); return ok; @@ -453,18 +485,18 @@ bool TInstaller_mask::can_install(const char* module, TInstall_ini& ini) const word year = version2year(version); if (year < 1997) return error_box("Il modulo '%s' non ha una versione valida.", module); - + #ifndef _DEMO_ if (year > _year_assist) return error_box("Per installare la versione %s del modulo '%s'\n" "occorre il contratto di assistenza per l'anno %d.", (const char*)version, module, year); #endif - + TAuto_token_string altri(ini.get("Moduli", module)); if (stricmp(module, "ba") != 0 && altri.get_pos("ba") < 0) altri.add("ba"); // La base e' obbligatoria per tutti - + bool ok = TRUE; TString submodule; for (const char* mod = altri.get(0); mod && ok; mod = altri.get()) @@ -473,19 +505,19 @@ bool TInstaller_mask::can_install(const char* module, TInstall_ini& ini) if (submodule.len() == 2) { if (curini.get("Versione", submodule).empty()) - { + { TString msg; msg << "L'installazione del modulo '" << module << "'\nrichiede la presenza del modulo '" << submodule << "':\nSi desidera procedere alla sua installazione?"; - ok = yesno_box(msg); + ok = yesno_box(msg); if (ok) ok = install(submodule, 0); } - } - } - - return ok; + } + } + + return ok; } // sposta il file dal direttorio temporaneo a quello passato come destinazione @@ -494,7 +526,7 @@ bool TInstaller_mask::can_install(const char* module, TInstall_ini& ini) // todir: direttorio destinazione (si assume che esista già) bool TInstaller_mask::move_file(const TFilename& from, const TFilename& file, const char* todir) const { - + TFilename dest(todir); dest.add(file.mid(from.len()+1)); if (!fexist(dest.path())) @@ -508,11 +540,11 @@ bool TInstaller_mask::move_file(const TFilename& from, const TFilename& file, co if (!fexist(subdir) ) // build destination directory make_dir(subdir); - } - } - + } + } + const long filesize = fsize(file); - + bool space_ok = FALSE; while (!space_ok) { @@ -548,20 +580,20 @@ bool TInstaller_mask::move_file(const TFilename& from, const TFilename& file, co do { write_ok = ::fcopy(file, dest); - if (write_ok) - ::remove(file); + if (write_ok) + ::remove(file); else user_retry = yesno_box("Errore di copia del file %s.\nSi desidera ritentare?", (const char*)file); } while (!write_ok && user_retry); - + return write_ok; } bool TInstaller_mask::move_module(const TString& module, TInstall_ini& ini, bool update) const -{ +{ bool ok = TRUE; - + TFilename src; src.tempdir(); const TFilename tempdir(src); const TString& dst = get(F_CURPATH); @@ -578,7 +610,7 @@ bool TInstaller_mask::move_module(const TString& module, TInstall_ini& ini, bool if (!move_ok) ok = update = FALSE; } - if (!update) + if (!update) ::remove(src); } @@ -588,6 +620,39 @@ bool TInstaller_mask::move_module(const TString& module, TInstall_ini& ini, bool return ok; } +KEY TInstaller_mask::askdisk(TString & path, TFilename & cmdline, int d, int dischi, const char * modulo) +{ + TMask retry_mask("Inserimento dischi",1,80,10); + + retry_mask.add_static((F_PATH==101 ? 102:101),0, + format("Inserire il disco %d di %d del modulo'%s' nell' unità indicata", d, dischi, modulo) + ,2,2); + retry_mask.add_static(F_PATH+3,0,"oppure indicare un percorso diverso",2,3); + + retry_mask.add_string(F_PATH,0,"",2,5,48); + retry_mask.add_button(DLG_OK,0,"Riprova",-12,7,9,2); + retry_mask.add_button(DLG_QUIT,0,"",-22,7,9,2); + retry_mask.set(F_PATH,path); + KEY k; + do { + if ((k=retry_mask.run())==K_QUIT ) + break; + if (!retry_mask.get(F_PATH).blank()) + { + if (fexist(retry_mask.get(F_PATH))) + { + TString16 tmpname(cmdline.name() ); + cmdline= path = retry_mask.get(F_PATH); + cmdline.add(tmpname); + break; + } + else + error_box("Il percorso indicato non e' valido"); + } + } while (TRUE); + return k; +} + bool TInstaller_mask::install(const TString& module, int patchlevel) { TInstall_ini* ini = NULL; @@ -621,12 +686,13 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) path.add("www"); } + const bool is_a_patch=(patchlevel > 0); TFilename ininame = path; ininame.add(module); - - if (patchlevel > 0) + + if (is_a_patch) { - TString16 name; + TString16 name; name.format("%04da.ini", patchlevel); ininame << name; } @@ -647,8 +713,10 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) lastpatch=ini->get_int("Patch",module); lastrelease=ini->get("Versione",module); if (!can_install(module, *ini)) + { + delete ini; return FALSE; - + } const int dischi = ini->get_int("Dischi", module); ok = dischi > 0; if (!ok) @@ -659,7 +727,11 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) { if (patchlevel==0) ok = pre_process(*ini, module); - if (!ok) return FALSE; + if (!ok) + { + delete ini; + return FALSE; + } } TString msg; @@ -670,15 +742,15 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) TProgind pi(dischi, msg, FALSE, TRUE); TFilename tempdir; tempdir.tempdir(); - + TFilename cmdline; for (int d = 1; d <= dischi && ok; d++) { cmdline = path; - cmdline.add(module); + cmdline.add(module); if (patchlevel > 0) { - TString16 name; + TString16 name; name.format("%04da", patchlevel); cmdline << name; } @@ -692,21 +764,17 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) remote.insert(http_path, 0); http_get(http_server, remote, cmdline); } - + ok = cmdline.exist(); while (!ok) { - message_box("Inserire il disco %d di %d del modulo\n'%s'", - d, dischi, (const char*)ini->get("Descrizione")); - ok = cmdline.exist(); + if (askdisk(path,cmdline,d,dischi,(const char*)ini->get("Descrizione"))==K_QUIT) + break; + ok = fexist(cmdline); if (!ok) - { - if (!yesno_box("Impossibile trovare %s\nSi desidera riprovare?", - (const char*)cmdline)) - break; - } + message_box("Impossibile trovare %s\n",(const char*)cmdline); } - + if (ok) { const long required = fsize(cmdline) * (dischi-d+1) * 4; @@ -717,116 +785,140 @@ bool TInstaller_mask::install(const TString& module, int patchlevel) "Si desidera continuare ugualmente?"); } } - + if (ok) - { + { TWait_cursor hourglass; cmdline.insert("unzip.pif -o ", 0); cmdline << " -d " << tempdir; - + TExternal_app app(cmdline); ok = app.run(FALSE, FALSE, FALSE, FALSE) == 0; pi.addstatus(1); - } - } - if (ok) - { - msg.cut(0); - msg << "Aggiornamento del modulo '" << module << "' in corso..."; - pi.set_text(msg); - ok = move_module(module, *ini, TRUE); - - TAuto_token_string altri(ini->get("Moduli", module)); - FOR_EACH_TOKEN(altri, mod) - { - const TString16 submod = mod; - if (submod.len() > 2) // sposta sottomoduli esterni - { - bool upd = ok; - if (ok) - { - TInstall_ini curini; - const TString16 curver = curini.version(submod); - const int curpatch = curini.patch(submod); - const TString16 reqver = ini->version(submod); - const int reqpatch = ini->patch(submod); - - int distance = compare_version(reqver, reqpatch, curver, curpatch); - upd = distance > 0; - } - ok &= move_module(submod, *ini, upd); - if (upd && ok) - ini->export_paragraph(submod, ini->default_name()); - } } - } - if (ok) - { - if (ok) ini->export_paragraph(module, ini->default_name()); } - } - else - { - // non c'e' il .ini del modulo ma un unico "install.ini" - ininame = path; - ininame.add(TInstall_ini::default_name()); - ok = fexist(ininame); + // *************** + // trasferimento if (ok) { - ini = new TInstall_ini(ininame); - ini->write_protect(); - lastpatch=ini->get_int("Patch",module); - lastrelease=ini->get("Versione",module); - if (!can_install(module, *ini)) - return FALSE; - - TString_array list; - const int files = ini->build_complete_list(module, list); - if (files > 0) - { - if (patchlevel==0) - ok = pre_process(*ini, module); - - if (ok) + // si assicura che sia leggibile il .ini del primo disco + do { + cmdline = path; + cmdline.add(ininame.name()); + ok = fexist(cmdline); + if (!ok) { - TProgind pi(files, "Copia in corso...", FALSE, TRUE); - TFilename src, dst; - for (int f = 0; f < files && ok; f++) + if (askdisk(path,cmdline,1,dischi,(const char*)ini->get("Descrizione"))==K_QUIT) + break; + ok = fexist(cmdline); + if (!ok) + message_box("Impossibile trovare %s\n",(const char*)cmdline); + else { - pi.addstatus(1); - dst = list.row(f).get(0); - src = path; - src.add(dst); - ok = fcopy(src, dst); + delete ini; + ini = new TInstall_ini (cmdline); } } + } while (!ok); + if (ok) + { + msg.cut(0); + msg << "Aggiornamento del modulo '" << module << "' in corso..."; + pi.set_text(msg); + ok = move_module(module, *ini, TRUE); - if (ok) + TAuto_token_string altri(ini->get("Moduli", module)); + FOR_EACH_TOKEN(altri, mod) { - if (ok) ini->export_module_paragraphs(module, ini->default_name()); - } - } - } - } + const TString16 submod = mod; + if (submod.len() > 2) // sposta sottomoduli esterni + { + bool upd = ok; + if (ok) + { + TInstall_ini curini; + const TString16 curver = curini.version(submod); + const int curpatch = curini.patch(submod); + const TString16 reqver = ini->version(submod); + const int reqpatch = ini->patch(submod); + + int distance = compare_version(reqver, reqpatch, curver, curpatch); + upd = distance > 0; + } + ok &= move_module(submod, *ini, upd); + if (upd && ok) // marca sull'install.ini di destinazione l'avvenuta installazione del sottomodulo "esterno" + ini->export_paragraph(submod, ini->default_name(),!is_a_patch); + } + } + } + } + if (ok) // marca sull'install.ini di destinazione l'avvenuta installazione del modulo + ini->export_module_paragraphs(module, ini->default_name(),!is_a_patch); + } // installazione da directory con zip + else + if (!is_a_patch) + { + // + // non c'e' il .ini del modulo ma un unico "install.ini" + // (installazione da directory con eseguibili) + ininame = path; + ininame.add(TInstall_ini::default_name()); + ok = fexist(ininame); + if (ok) + { + TInstall_ini ini(ininame); + ini.write_protect(); + lastpatch=ini.get_int("Patch",module); + lastrelease=ini.get("Versione",module); + if (!can_install(module, ini)) + return FALSE; + TString_array list; + const int files = ini.build_complete_list(module, list); + if (files > 0) + { + if (patchlevel==0) + ok = pre_process(ini, module); + + if (ok) + { + TProgind pi(files, "Copia in corso...", FALSE, TRUE); + TFilename src, dst; + for (int f = 0; f < files && ok; f++) + { + pi.addstatus(1); + dst = list.row(f).get(0); + src = path; + src.add(dst); + ok = fcopy(src, dst); + } + } + + if (ok) // marca sull'install.ini di destinazione l'avvenuta installazione del modulo + ini.export_module_paragraphs(module, ini.default_name(),TRUE); + } // controllo esistenza lista di file non vuota per questo modulo + } // controllo esistenza install.ini + } // fine installazione da directory con eseguibili + if (ok) - { - { + { + { TInstall_ini ini; ini.set("DiskPath", get(F_PATH)); ini.set("Data", TDate(TODAY), module); ini.update_prices(ininame); } // Non togliere le parentesi graffe soprastanti per permettere l'aggiornamento fisico del .ini (CON LA CHIAMATA DEL DISTRUTTORE) - update_version(); + update_version(); } - - if (patchlevel == 0) // Se installo un modulo pricipale ... + + if (ok && patchlevel == 0) // Se installo un modulo pricipale ... { // ... installo DOPO tutte le patches successive install_patches(module, lastrelease, lastpatch); - ok &= post_process(*ini, module); + TInstall_ini ini; + ok &= post_process(ini, module); } return ok; @@ -837,7 +929,7 @@ bool TInstaller_mask::install_patches(const TString& module, const TString& last { bool ok = FALSE; TString_array modules; - TFilename ininame = get(F_PATH); + TFilename ininame = get(F_PATH); if (is_internet_path(ininame)) { ininame.tempdir(); @@ -850,7 +942,7 @@ bool TInstaller_mask::install_patches(const TString& module, const TString& last list_files(ininame, modules); modules.sort(); // sort by patch number FOR_EACH_ARRAY_ROW(modules, am, arow) - { + { TString& ininame = *arow; ininame.lower(); const int pos = ininame.find("a.ini"); @@ -866,8 +958,18 @@ bool TInstaller_mask::install_patches(const TString& module, const TString& last return ok; } +bool TInstaller_mask::update_handler(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TInstaller_mask& m = (TInstaller_mask&)f.mask(); + m.autoload(); + } + return TRUE; +} + bool TInstaller_mask::path_handler(TMask_field& fld, KEY key) -{ +{ bool ok = TRUE; if (key == K_TAB && fld.focusdirty()) { @@ -894,7 +996,7 @@ void TInstaller_mask::install_selection() FOR_EACH_ARRAY_ROW(arr, r, row) if (checked(r)) { const TString newver = row->get(C_RELEASE); - + if (newver.blank()) { check(r, FALSE); @@ -905,18 +1007,19 @@ void TInstaller_mask::install_selection() const int newpatch = row->get_int(C_PATCH); const TString oldver = row->get(C_CURRRELEASE); const int oldpatch = row->get_int(C_CURRPATCH); - + if (version2year(newver) < 1997) { error_box("Il modulo '%s' non ha una versione valida.", (const char*)modulo); continue; } - + bool ok = TRUE; + bool is_patch = row->get_char(C_ISPATCH) > ' '; const int cmp = compare_version(oldver, oldpatch, newver, newpatch); if (cmp == 0) ok = noyes_box("Si desidera reinstallare la versione %s.%d del modulo '%s' ?", (const char*)newver, newpatch, (const char*)modulo); - if (cmp > 0) + if (!is_patch && cmp > 0) { TString256 msg; msg.format("Si desidera ritornare alla versione %s.%d del modulo '%s' ?\n" @@ -931,26 +1034,30 @@ void TInstaller_mask::install_selection() // installo le patch solo se esiste già un modulo installato della stessa versione if (!oldver.blank() ) if (oldver != newver) - ok =error_box("Impossibile installare le patch della versione %s \nperché il modulo '%s' installato ha versione %s ",(const char *)newver,(const char *)modulo,(const char *)oldver); + ok =error_box("Il modulo '%s' installato ha versione %s:\nimpossibile installare le patch della versione %s",(const char *)modulo,(const char *)oldver,(const char *)newver); + } else + ok =FALSE;//error_box("Impossibile installare le patch perche' il modulo '%s' non e' installato",(const char *)modulo); } if (ok) - { + { if (!is_patch) { if (newver == oldver && newpatch != oldpatch && - !noyes_box("Si desidera reinstallare l'intero modulo?\n" - "Rispondendo NO verranno installate le sole patch")) + !noyes_box("Si desidera reinstallare l'intero modulo?\n" + "Rispondendo NO verranno installate le sole patch")) { - is_patch = TRUE; - } + is_patch = TRUE; + } } - + if (is_patch) { - ok = install_patches(modulo, oldver, oldpatch); // installa tutte le patch + ok = install_patches(modulo, oldver, oldpatch); // installa tutte le patch if (!ok) ok = install(modulo, newpatch); // re-installa l'ultima per sicurezza () + if (!ok) + message_box("Impossibile installare le patch del modulo '%s'",(const char *)modulo); } else { @@ -961,22 +1068,22 @@ void TInstaller_mask::install_selection() if (ok) _installed = TRUE; // Setta il flag di almeno un modulo installato if (ok) - check(r, FALSE); - } - check(r,FALSE); // uncheck + check(r, FALSE); + } + check(r,FALSE); // uncheck } } bool TInstaller_mask::install_handler(TMask_field& fld, KEY key) -{ +{ if (key == K_SPACE) - { + { if (_curr_mask->items() == 1) _curr_mask->check(0); if (_curr_mask->one_checked()) _curr_mask->install_selection(); else - error_box("Selezionare uno piu' moduli da installare."); + error_box("Selezionare uno piu' moduli da installare."); } return TRUE; } @@ -984,7 +1091,7 @@ bool TInstaller_mask::install_handler(TMask_field& fld, KEY key) bool TInstaller_mask::tutti_handler(TMask_field& f, KEY k) { if (k == K_SPACE) - { + { TSheet& s = (TSheet&)f.mask(); if (s.check_enabled()) { @@ -993,7 +1100,7 @@ bool TInstaller_mask::tutti_handler(TMask_field& f, KEY k) else { for (long i = s.items()-1; i >=0; i--) - { + { TToken_string r = s.row(i); const TString16 newver = r.get(C_RELEASE); const int newpatch = r.get_int(C_PATCH); @@ -1018,47 +1125,49 @@ bool TInstaller_mask::update_handler(TMask_field& f, KEY k) } bool TInstaller_mask::on_key(KEY key) -{ +{ bool ok = TRUE; - switch(key) + switch (key) { - case K_F7: autoload(); break; - case K_F8: field(DLG_USER).on_hit(); break; - default : ok = TArray_sheet::on_key(key); break; + case K_F7: autoload(); break; + case K_F8: field(DLG_USER).on_hit(); break; + default : ok = TArray_sheet::on_key(key); break; } - return ok; + return ok; } TInstaller_mask::TInstaller_mask() - : TArray_sheet(0, 0, 0, 0, "Installazione", - "@1|Modulo@30|Cod.|Versione da\ninstallare@11|Livello\nPatch@8|Data\nRilascio@10|Versione\nInstallata@10|Livello\nPatch@8|Data\nInstallazione@13|Aggiornamento", + : TArray_sheet(0, 0, 0, 0, "Installazione", + "@1|Modulo@30|Cod.|Versione da\ninstallare@11|Livello\nPatch@8|Data\nRilascio@10|Versione\nInstallata@10|Livello\nPatch@8|Data\nInstallazione@13|Aggiornamento", 0x18, 3) -{ +{ _curr_mask = this; _installed = FALSE; - + add_string(F_PATH, 0, "Installa da ", 1, 1, 50); add_string(F_CURPATH, 0, "Installa in ", 1, 2, 50, "D"); - add_button(F_UPDATE, "Lista", '\0'); + add_button(F_UPDATE, "Aggiorna", '\0'); add_button(F_INSTALL, "Installa", '\0'); // NON mettere 'I' - + set_handler(F_PATH, path_handler); set_handler(F_INSTALL, install_handler); - set_handler(DLG_USER, tutti_handler); set_handler(F_UPDATE, update_handler); - + set_handler(DLG_USER, tutti_handler); + TDongle dongle; dongle.login(); dongle.logout(); _year_assist = dongle.year_assist(); - + TInstall_ini ini; TFilename path = ini.get("DiskPath"); set(F_PATH, path); - - const bool floppy = ::os_is_removable_drive(path); + + const char lettera = toupper(path[0]); + const bool floppy = (path.len() > 1) && path[1] == ':' && + GetDriveType(lettera - 'A') == DRIVE_REMOVABLE; if (path.not_empty() && !floppy && !is_internet_path(path)) autoload(); - - DIRECTORY dir; + + DIRECTORY dir; xvt_fsys_get_dir(&dir); xvt_fsys_convert_dir_to_str(&dir, path.get_buffer(), path.size()); set(F_CURPATH, path); @@ -1074,7 +1183,7 @@ TInstaller_mask::~TInstaller_mask() /////////////////////////////////////////////////////////// class TInstaller : public TSkeleton_application -{ +{ protected: virtual bool use_files() const { return FALSE; } virtual void main_loop(); @@ -1093,8 +1202,12 @@ void TInstaller::main_loop() } int ba1700(int argc, char* argv[]) -{ - TInstaller app; - app.run(argc, argv, "Installer"); +{ + if (user() == "PRASSI") + { + TInstaller app; + app.run(argc, argv, "Installer"); + } else + error_box("L'utente %s non e' abilitato all'esecuzione di questo programma", (const char*)user()); return 0; } diff --git a/ba/bainst.ini b/ba/bainst.ini index 72d31cba9..fb7be1b1c 100755 --- a/ba/bainst.ini +++ b/ba/bainst.ini @@ -1,9 +1,9 @@ [ba] -Data = 08-05-1998 +Data = 03-08-1998 Descrizione = Base Dischi = 1 Moduli = -Patch = 22 +Patch = 132 PostProcess = PreProcess = Prezzo(1) = 500,175 @@ -23,7 +23,7 @@ File(4) = ba04.bmp File(5) = ba05.bmp File(6) = ba06.bmp File(7) = baprassi.men -Patch = 22 +Patch = 132 Versione = 19980103 [ba1] @@ -97,117 +97,119 @@ File(74) = bagn002.msk File(75) = bagn004.msk File(76) = bagn005.msk File(77) = bagn006.msk -File(78) = bainst.exe|X -File(79) = bainst01.msk|X -File(80) = bainst02.msk|X -File(81) = bainst03.msk|X -File(82) = bainst04.msk|X -File(83) = bainst05.msk|X -File(84) = bastais.msk -File(85) = bastban.msk -File(86) = bastclr.msk -File(87) = bastcpg.msk -File(88) = bastcrs.msk -File(89) = bastitl.msk -File(90) = bastiva.msk -File(91) = bastlng.msk -File(92) = bastois.msk -File(93) = baststa.msk -File(94) = baststt.msk -File(95) = bastucc.msk -File(96) = bastucs.msk -File(97) = bastues.msk -File(98) = bastuid.msk -File(99) = bastuiv.msk -File(100) = basture.msk -File(101) = bastuue.msk -File(102) = bastval.msk -File(103) = batbais.msk -File(104) = batbais.rpt -File(105) = batbban.msk -File(106) = batbban.rpt -File(107) = batbclr.msk -File(108) = batbclr.rpt -File(109) = batbcpg.msk -File(110) = batbcpg.rpt -File(111) = batbcrs.msk -File(112) = batbcrs.rpt -File(113) = batbitl.msk -File(114) = batbitl.rpt -File(115) = batbiva.msk -File(116) = batbiva.rpt -File(117) = batblng.msk -File(118) = batblng.rpt -File(119) = batbois.msk -File(120) = batbois.rpt -File(121) = batbrgi.msk -File(122) = batbsta.msk -File(123) = batbsta.rpt -File(124) = batbstt.msk -File(125) = batbstt.rpt -File(126) = batbucc.msk -File(127) = batbucc.rpt -File(128) = batbucs.msk -File(129) = batbucs.rpt -File(130) = batbues.msk -File(131) = batbues.rpt -File(132) = batbuid.msk -File(133) = batbuid.rpt -File(134) = batbuiv.msk -File(135) = batbuiv.rpt -File(136) = batbure.msk -File(137) = batbure.rpt -File(138) = batbuue.msk -File(139) = batbuue.rpt -File(140) = batbval.msk -File(141) = batbval.rpt -File(142) = fconv.ini -File(143) = prassi.aut -File(144) = prassi.hlp -File(145) = prassice.men -File(146) = prassid.ini -File(147) = prassis.ini -File(148) = unzip.pif -File(149) = unzip32.exe -File(150) = zip.pif -File(151) = zip386.bat -File(152) = zip386.exe -Patch = 22 +File(78) = bainst.exe +File(79) = bainst01.msk +File(80) = bainst02.msk +File(81) = bainst03.msk +File(82) = bainst04.msk +File(83) = bainst05.msk +File(84) = bainst06.msk +File(85) = bastais.msk +File(86) = bastban.msk +File(87) = bastclr.msk +File(88) = bastcpg.msk +File(89) = bastcrs.msk +File(90) = bastitl.msk +File(91) = bastiva.msk +File(92) = bastlng.msk +File(93) = bastois.msk +File(94) = baststa.msk +File(95) = baststt.msk +File(96) = bastucc.msk +File(97) = bastucs.msk +File(98) = bastues.msk +File(99) = bastuid.msk +File(100) = bastuiv.msk +File(101) = basture.msk +File(102) = bastuue.msk +File(103) = bastval.msk +File(104) = batbais.msk +File(105) = batbais.rpt +File(106) = batbban.msk +File(107) = batbban.rpt +File(108) = batbclr.msk +File(109) = batbclr.rpt +File(110) = batbcpg.msk +File(111) = batbcpg.rpt +File(112) = batbcrs.msk +File(113) = batbcrs.rpt +File(114) = batbitl.msk +File(115) = batbitl.rpt +File(116) = batbiva.msk +File(117) = batbiva.rpt +File(118) = batblng.msk +File(119) = batblng.rpt +File(120) = batbois.msk +File(121) = batbois.rpt +File(122) = batbrgi.msk +File(123) = batbsta.msk +File(124) = batbsta.rpt +File(125) = batbstt.msk +File(126) = batbstt.rpt +File(127) = batbucc.msk +File(128) = batbucc.rpt +File(129) = batbucs.msk +File(130) = batbucs.rpt +File(131) = batbues.msk +File(132) = batbues.rpt +File(133) = batbuid.msk +File(134) = batbuid.rpt +File(135) = batbuiv.msk +File(136) = batbuiv.rpt +File(137) = batbure.msk +File(138) = batbure.rpt +File(139) = batbuue.msk +File(140) = batbuue.rpt +File(141) = batbval.msk +File(142) = batbval.rpt +File(143) = fconv.ini +File(144) = prassi.aut +File(145) = prassi.hlp +File(146) = prassice.men +File(147) = prassid.ini +File(148) = prassis.ini +File(149) = unzip.pif +File(150) = unzip32.exe +File(151) = zip.pif +File(152) = zip386.bat +File(153) = zip386.exe +Patch = 132 Versione = 19980103 [ba2] -File(153) = recdesc\f10.dir -File(154) = recdesc\f10.trr -File(155) = recdesc\f105.dir -File(156) = recdesc\f105.trr -File(157) = recdesc\f11.dir -File(158) = recdesc\f11.trr -File(159) = recdesc\f12.dir -File(160) = recdesc\f12.trr -File(161) = recdesc\f13.dir -File(162) = recdesc\f13.trr -File(163) = recdesc\f15.dir -File(164) = recdesc\f15.trr -File(165) = recdesc\f2.dir -File(166) = recdesc\f2.trr -File(167) = recdesc\f3.dir -File(168) = recdesc\f3.trr -File(169) = recdesc\f4.dir -File(170) = recdesc\f4.trr -File(171) = recdesc\f5.dir -File(172) = recdesc\f5.trr -File(173) = recdesc\f50.dir -File(174) = recdesc\f50.trr -File(175) = recdesc\f54.dir -File(176) = recdesc\f54.trr -File(177) = recdesc\f6.dir -File(178) = recdesc\f6.trr -File(179) = recdesc\f7.dir -File(180) = recdesc\f7.trr -File(181) = recdesc\f8.dir -File(182) = recdesc\f8.trr -File(183) = recdesc\f9.dir -File(184) = recdesc\f9.trr -Patch = 22 +File(154) = recdesc\f10.dir +File(155) = recdesc\f10.trr +File(156) = recdesc\f105.dir +File(157) = recdesc\f105.trr +File(158) = recdesc\f11.dir +File(159) = recdesc\f11.trr +File(160) = recdesc\f12.dir +File(161) = recdesc\f12.trr +File(162) = recdesc\f13.dir +File(163) = recdesc\f13.trr +File(164) = recdesc\f15.dir +File(165) = recdesc\f15.trr +File(166) = recdesc\f2.dir +File(167) = recdesc\f2.trr +File(168) = recdesc\f3.dir +File(169) = recdesc\f3.trr +File(170) = recdesc\f4.dir +File(171) = recdesc\f4.trr +File(172) = recdesc\f5.dir +File(173) = recdesc\f5.trr +File(174) = recdesc\f50.dir +File(175) = recdesc\f50.trr +File(176) = recdesc\f54.dir +File(177) = recdesc\f54.trr +File(178) = recdesc\f6.dir +File(179) = recdesc\f6.trr +File(180) = recdesc\f7.dir +File(181) = recdesc\f7.trr +File(182) = recdesc\f8.dir +File(183) = recdesc\f8.trr +File(184) = recdesc\f9.dir +File(185) = recdesc\f9.trr +File(186) = recdesc\level.dir +Patch = 132 Versione = 19980103 diff --git a/ba/bainst03.h b/ba/bainst03.h new file mode 100755 index 000000000..19a930d95 --- /dev/null +++ b/ba/bainst03.h @@ -0,0 +1 @@ +#include "bainst.h" diff --git a/ba/bainst04.h b/ba/bainst04.h index 62451ea21..becc6b73e 100755 --- a/ba/bainst04.h +++ b/ba/bainst04.h @@ -1,5 +1,3 @@ +#include "bainst.h" #define F_USAMENUAVIS 101 #define F_LOADTAB 102 -#define G_PREINST 1 -#define G_POSTINST 2 -#define G_DITTA 3 diff --git a/ba/bainst05.h b/ba/bainst05.h index 47782dc65..55d04472f 100755 --- a/ba/bainst05.h +++ b/ba/bainst05.h @@ -1,4 +1,2 @@ +#include "bainst.h" #define F_LOADTAB 101 -#define G_PREINST 1 -#define G_POSTINST 2 -#define G_DITTA 3 diff --git a/ba/bainst06.cpp b/ba/bainst06.cpp new file mode 100755 index 000000000..f32f6d15b --- /dev/null +++ b/ba/bainst06.cpp @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include "bainst06.h" + +class TInstall_MG : public TSkeleton_application +{ + TMask * _m; +protected: + virtual void main_loop() ; + virtual bool install_firm() ; // setta i dati ditta + virtual bool install_com() ; // setta i dati comuni + +public: + virtual ~TInstall_MG () {} +}; + +// setta i dati ditta +bool TInstall_MG ::install_firm() +{ + // ciclo su ogni ditta + return TRUE; +} + +bool TInstall_MG ::install_com() +{ + bool ok=TRUE; + if (_m->get_bool(F_LOADTAB)) + { + TExternal_app rice("bacnv 1 4 mgtab.txt"); + ok &= (rice.run()==0); + } + return ok; +} + +void TInstall_MG::main_loop() +{ + TConfig ini("install.ini","mg"); + const bool primainst=ini.get("Versione").blank(); + + _m = new TMask ("bainst06.msk"); + if (primainst) + _m->set(F_LOADTAB,"X"); + if (_m->run()!=K_QUIT) + { + install_firm(); + install_com(); + } +} + +int bainst06(int argc, char** argv) +{ + TInstall_MG app; + app.run(argc, argv, "Installazione Magazzino"); + return 0; +} \ No newline at end of file diff --git a/ba/bainst06.h b/ba/bainst06.h new file mode 100755 index 000000000..55d04472f --- /dev/null +++ b/ba/bainst06.h @@ -0,0 +1,2 @@ +#include "bainst.h" +#define F_LOADTAB 101 diff --git a/ba/bainst06.uml b/ba/bainst06.uml new file mode 100755 index 000000000..2077095c4 --- /dev/null +++ b/ba/bainst06.uml @@ -0,0 +1,23 @@ +#include "bainst06.h" + +TOOLBAR "" 0 20 0 2 +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -11 -1 "~Conferma" + MESSAGE EXIT,K_ENTER + PICTURE BMP_OK +END +ENDPAGE + +PAGE "Installazione MG" -1 -1 78 8 +// GROUP 1 = PRE-INSTALLATION +// GROUP 2 = POST-INSTALLATION + +BOOL F_LOADTAB +BEGIN + PROMPT 2 4 "Carica le tabelle con le causali" +END + + +ENDPAGE +ENDMASK diff --git a/ba/baprassi.men b/ba/baprassi.men index d44ace984..3a91f3c71 100755 --- a/ba/baprassi.men +++ b/ba/baprassi.men @@ -94,7 +94,8 @@ Item_02 = "Compatta tutti i files", "ba1 -2", "" Item_03 = "Utenti", "ba1 -3", "" Item_04 = "Attivazione moduli", "ba1 -4", "" Item_05 = "Installazione moduli", "ba1 -6", "" -Item_06 = "Backup", "ba2 -1", "" +Item_06 = "Creazione dischi di installazione", "ba1 -5", "" +Item_07 = "Backup", "ba2 -1", "" [PRASSI_019] Caption = "Comunicazione" diff --git a/ba/f3.dir b/ba/f3.dir index 5fc796d67..5fc262ebf 100755 --- a/ba/f3.dir +++ b/ba/f3.dir @@ -1,3 +1,3 @@ 3 1 -%tabgen|0|0|885|0|Tabelle di studio|50|| +%tabgen|0|0|895|0|Tabelle di studio|50|| diff --git a/ba/f3.trr b/ba/f3.trr index 78fff9910..b73ba2147 100755 --- a/ba/f3.trr +++ b/ba/f3.trr @@ -1,5 +1,5 @@ 3 -63 +65 COD|1|3|0| CODTAB|1|25|0| S0|1|70|0| @@ -12,6 +12,8 @@ S6|1|5|0| S7|1|5|0| S8|1|5|0| S9|1|5|0| +S10|1|5|0| +S11|1|5|0| I0|3|7|0| I1|3|7|0| I2|3|7|0| diff --git a/ba/f4.dir b/ba/f4.dir index 7ed0be13b..0e657924d 100755 --- a/ba/f4.dir +++ b/ba/f4.dir @@ -1,3 +1,3 @@ 4 1 -%tabcom|0|0|885|0|Tabelle comuni|1500|| +%tabcom|0|0|895|0|Tabelle comuni|1500|| diff --git a/ba/f4.trr b/ba/f4.trr index 902f9fec7..33a17eb07 100755 --- a/ba/f4.trr +++ b/ba/f4.trr @@ -1,5 +1,5 @@ 4 -63 +65 COD|1|3|0| CODTAB|1|25|0| S0|1|70|0| @@ -12,6 +12,8 @@ S6|1|5|0| S7|1|5|0| S8|1|5|0| S9|1|5|0| +S10|1|5|0| +S11|1|5|0| I0|3|7|0| I1|3|7|0| I2|3|7|0| diff --git a/ba/f5.dir b/ba/f5.dir index c68211c3f..c95ea9999 100755 --- a/ba/f5.dir +++ b/ba/f5.dir @@ -1,3 +1,3 @@ 5 0 -$tab|0|0|885|0|Tabelle ditta|400|| +$tab|0|0|895|0|Tabelle ditta|400|| diff --git a/ba/f5.trr b/ba/f5.trr index 46e3021d1..39945a09a 100755 --- a/ba/f5.trr +++ b/ba/f5.trr @@ -1,5 +1,5 @@ 5 -63 +65 COD|1|3|0| CODTAB|1|25|0| S0|1|70|0| @@ -12,6 +12,8 @@ S6|1|5|0| S7|1|5|0| S8|1|5|0| S9|1|5|0| +S10|1|5|0| +S11|1|5|0| I0|3|7|0| I1|3|7|0| I2|3|7|0| diff --git a/ba/install.ini b/ba/install.ini index 8194fed3c..98a608f55 100755 --- a/ba/install.ini +++ b/ba/install.ini @@ -1,24 +1,28 @@ [Main] -Demo = -DiskPath = g:\cdtest\1998102\patches -DiskSize = -Listino = -Prezzo(1) = 450,150 -Producer = +Demo = +DiskPath = G:\CDTEST\19980103\ZIP +DiskSize = +Listino = 1-01-1998 +Producer = –È·²’‡Ÿ}”•Ÿ„o”~NM‰¯”¶ ®”ÒÑÇåßÍ [_area_di_base] Descrizione = BASE [ba] -Data = 17-03-1998 +Data = 26-06-1998 Descrizione = Base Dischi = 1 Moduli = -Patch = 21 +Patch = 81 PostProcess = PreProcess = -Versione = 19980102 -Prezzo(1) = 500 +Prezzo(1) = 500,175 +Prezzo(2) = 150,60 +Prezzo(3) = 100,40 +Prezzo(5) = 80,30 +Prezzo(9) = 50,20 +Prezzo(30) = 30,10 +Versione = 19980103 [ai] Data = @@ -87,26 +91,36 @@ PreProcess = Versione = [cg] -Data = 12-03-1998 +Data = 26-06-1998 Descrizione = Contabilita' Generale Dischi = 1 Moduli = ba -Patch = 18 +Patch = 81 PostProcess = bainst -0 CG PreProcess = -Versione = 19980102 Prezzo(1) = 1000,350 +Prezzo(2) = 300,110 +Prezzo(3) = 200,70 +Prezzo(5) = 150,60 +Prezzo(9) = 100,40 +Prezzo(30) = 50,20 +Versione = 19980103 [sc] -Data = 18-03-1998 +Data = 02-06-1998 Descrizione = Saldaconto Dischi = 1 Moduli = ba,cg -Patch = 22 +Patch = 44 PostProcess = PreProcess = -Versione = 19980102 Prezzo(1) = 200,50 +Prezzo(2) = 60,20 +Prezzo(3) = 40,20 +Prezzo(5) = 30,10 +Prezzo(9) = 20,10 +Prezzo(30) = 10,10 +Versione = 19980103 [ce] Data = @@ -116,8 +130,29 @@ Moduli = ba Patch = PostProcess = PreProcess = +Prezzo(1) = 700,250 +Prezzo(2) = 210,80 +Prezzo(3) = 140,50 +Prezzo(5) = 110,40 +Prezzo(9) = 70,30 +Prezzo(30) = 40,20 Versione = -Prezzo(1)= 700,250 + +[77] +Data = 01-06-1998 +Descrizione = Percipienti (Mod.770) +Dischi = 1 +Moduli = ba +Patch = 45 +PostProcess = +PreProcess = +Prezzo(1) = 700,250 +Prezzo(2) = 210,80 +Prezzo(3) = 140,50 +Prezzo(5) = 110,40 +Prezzo(9) = 70,30 +Prezzo(30) = 40,20 +Versione = 19980103 [es] Data = @@ -137,96 +172,132 @@ PostProcess = PreProcess = Versione = -[ni] +[mi] Data = -Descrizione = Nota Integrativa -Moduli = ba +Descrizione = Modello IVA 11 +Dischi = 1 +Moduli = ba,cg Patch = PostProcess = PreProcess = Versione = -Prezzo(1)= 2000,700 -[nr] +[ab] Data = -Descrizione = Nota Integrativa Ridotta -Moduli = ba +Descrizione = Analisi di bilancio +Moduli = Patch = PostProcess = PreProcess = +Prezzo(1) = 2000,700 +Prezzo(2) = 600,210 +Prezzo(3) = 400,140 +Prezzo(5) = 300,110 +Prezzo(9) = 200,70 +Prezzo(30) = 100,40 Versione = -Prezzo(1)= 2000,700 [_area_acquisti_vendite] Descrizione = AREA ACQUISTI E VENDITE [ve] -Data = 27-03-1998 +Data = 26-06-1998 Descrizione = Vendite Dischi = 1 Moduli = ba,cg9,pr9,mg9,sv9 -Patch = 302 -PostProcess = +Patch = 81 +PostProcess = bainst -0 VE PreProcess = Prezzo(1) = 900,300 -Versione = 19980102 +Prezzo(2) = 270,100 +Prezzo(3) = 180,70 +Prezzo(5) = 140,50 +Prezzo(9) = 90,40 +Prezzo(30) = 50,20 +Versione = 19980103 [or] -Data = +Data = 29-06-1998 Descrizione = Ordini +Dischi = 1 Moduli = ba,ve0,ve9,cg9 -Patch = -PostProcess = -PreProcess = -Versione = -Prezzo(1)= 900,300 +Patch = 81 +PostProcess = +PreProcess = +Prezzo(1) = 900,300 +Prezzo(2) = 270,100 +Prezzo(3) = 180,70 +Prezzo(5) = 140,50 +Prezzo(9) = 90,40 +Prezzo(30) = 50,20 +Versione = 19980103 [ef] -Data = 27-03-1998 +Data = 19-06-1998 Descrizione = Effetti Dischi = 1 Moduli = ba,ve0,ve9,cg9 -Patch = 302 +Patch = 72 PostProcess = PreProcess = Prezzo(1) = 300,100 -Versione = 19980102 +Prezzo(2) = 90,40 +Prezzo(3) = 60,20 +Prezzo(5) = 50,20 +Prezzo(9) = 30,10 +Prezzo(30) = 20,10 +Versione = 19980103 [pr] -Data = 27-03-1998 +Data = 19-06-1998 Descrizione = Provvigioni Agenti Dischi = 1 Moduli = ba,ve0,ve9,cg9 -Patch = 302 +Patch = 72 PostProcess = PreProcess = Prezzo(1) = 450,150 -Versione = 19980102 +Prezzo(2) = 140,50 +Prezzo(3) = 90,40 +Prezzo(5) = 70,30 +Prezzo(9) = 50,20 +Prezzo(30) = 30,10 +Versione = 19980103 [sv] -Data = 17-03-1998 +Data = 12-05-1998 Descrizione = Statistiche di Vendita Dischi = 1 Moduli = ve -Patch = 20 +Patch = 27 PostProcess = PreProcess = -Versione = 19980102 -Prezzo(1)= 900,300 +Prezzo(1) = 900,300 +Prezzo(2) = 270,100 +Prezzo(3) = 180,70 +Prezzo(5) = 140,50 +Prezzo(9) = 90,40 +Prezzo(30) = 50,20 +Versione = 19980103 [_area_magazzino_produzione] Descrizione = AREA MAGAZZINO E PRODUZIONE [mg] -Data = 27-03-1998 +Data = 29-06-1998 Descrizione = Magazzino Dischi = 1 Moduli = ba,ve9,cg9 -Patch = 302 +Patch = 82 PostProcess = PreProcess = Prezzo(1) = 900,300 -Versione = 19980102 +Prezzo(2) = 270,100 +Prezzo(3) = 180,70 +Prezzo(5) = 140,50 +Prezzo(9) = 90,40 +Prezzo(30) = 50,20 +Versione = 19980103 [db] Data = @@ -237,103 +308,6 @@ PostProcess = PreProcess = Versione = -[_area_dichiarazioni] -Descrizione = AREA DICHIARAZIONI - -[ad] -Data = -Descrizione = Anagrafici Dichiarazioni -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[73] -Data = -Descrizione = Modello 730 -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[74] -Data = -Descrizione = Modello 740 -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[75] -Data = -Descrizione = Modello 750 -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[76] -Data = -Descrizione = Modello 760 -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = -Prezzo(1)= 700,250 - -[77] -Data = 12-03-1998 -Descrizione = Modello 770 -Dischi = 1 -Moduli = ba -Patch = 18 -PostProcess = -PreProcess = -Versione = 19980102 -Prezzo(1)= 700,250 - -[mi] -Data = -Descrizione = Modello IVA 11 -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[iv] -Data = -Descrizione = IVA -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - -[gi] -Data = -Descrizione = ICI -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = -Prezzo(1)= 400,150 - -[is] -Data = -Descrizione = ISI -Moduli = ba -Patch = -PostProcess = -PreProcess = -Versione = - [_area_AVIS] Descrizione = AREA AVIS @@ -570,71 +544,504 @@ File(149) = modelli\word6\notarid.doc Patch = Versione = -[ef2] -File(12) = recdesc\f14.dir -File(13) = recdesc\f14.trr -File(14) = recdesc\f31.dir -File(15) = recdesc\f31.trr -File(16) = recdesc\f32.dir -File(17) = recdesc\f32.trr -Versione = 19980101 +[ce1] +File(10) = dump16.exe +File(11) = dump32.exe +File(12) = fixfoxpo.exe +File(14) = foxuser.dbf +File(15) = foxuser.fpt +File(17) = fpsql.fll +File(18) = help.app +File(19) = mancesc.app +File(20) = mancesp.app +File(21) = mancest.app +File(25) = rebuild.bat +File(26) = sys\cesp\helpctx.cdx +File(27) = sys\cesp\helpctx.dbf +File(28) = sys\cesp\wintoscr.cdx +File(29) = sys\cesp\wintoscr.dbf +File(3) = ce0.exe +File(4) = cesp.app +File(5) = cesp.exe +File(6) = cesp.hlp +File(7) = cespcg.app +File(8) = cespcg.exe +File(9) = config.fpw +Patch = +Versione = + +[ab1] +File(0) = ab.pif +File(1) = ab0.exe +File(10) = ab002c.msk +File(100) = ab043a.hlp +File(101) = ab043a.msk +File(102) = ab043b.hlp +File(103) = ab043b.msk +File(104) = ab044a.hlp +File(105) = ab044a.msk +File(106) = ab044b.hlp +File(107) = ab044b.msk +File(108) = ab045a.hlp +File(109) = ab045a.msk +File(11) = ab002d.msk +File(110) = ab045b.hlp +File(111) = ab045b.msk +File(112) = ab046a.hlp +File(113) = ab046a.msk +File(114) = ab046b.hlp +File(115) = ab046b.msk +File(116) = ab046c.hlp +File(117) = ab046c.msk +File(118) = ab046d.hlp +File(119) = ab046d.msk +File(12) = ab003a.hlp +File(120) = ab047a.hlp +File(121) = ab047a.msk +File(122) = ab047b.hlp +File(123) = ab047b.msk +File(124) = ab048a.msk +File(125) = ab048b.hlp +File(126) = ab048b.msk +File(127) = ab05.exe +File(128) = ab051a.hlp +File(129) = ab051a.msk +File(13) = ab003a.msk +File(130) = ab07.exe +File(131) = ab071a.hlp +File(132) = ab071a.msk +File(133) = ab071b.hlp +File(134) = ab071b.msk +File(135) = ab072a.hlp +File(136) = ab072a.msk +File(137) = ab072b.hlp +File(138) = ab072b.msk +File(139) = ab08.exe +File(14) = ab003a1.msk +File(140) = ab081a.hlp +File(141) = ab081a.msk +File(142) = ab082a.hlp +File(143) = ab082a.msk +File(144) = ab082b.hlp +File(145) = ab082b.msk +File(146) = ab083a.hlp +File(147) = ab083a.msk +File(148) = ab083b.msk +File(149) = ab084a.msk +File(15) = ab003b.hlp +File(150) = ab084b.hlp +File(151) = ab084b.msk +File(152) = ab09.exe +File(153) = ab091a.hlp +File(154) = ab091a.msk +File(155) = ab091b.msk +File(156) = ab091c.msk +File(157) = ab091d.hlp +File(158) = ab091d.msk +File(159) = ab092a.hlp +File(16) = ab003b.msk +File(160) = ab092a.msk +File(161) = aba.gen +File(162) = abanagr.gen +File(163) = abanal.gen +File(164) = abc.gen +File(165) = abc402.exe +File(166) = abcal.exe +File(167) = abcau.gen +File(168) = abclifor.as4 +File(169) = abclifor.gen +File(17) = ab003c.hlp +File(170) = abclifor.s36 +File(171) = abconf.gen +File(172) = abcrs.gen +File(173) = abdich.gen +File(174) = abditaa.gen +File(175) = abditac.gen +File(176) = abditba.gen +File(177) = abditbb.gen +File(178) = abditgb.gen +File(179) = abe.gen +File(18) = ab003c.msk +File(180) = abfatab1.gen +File(181) = abfatab2.gen +File(182) = abfcrsi.gen +File(183) = abffile.gen +File(184) = abfmovi1.gen +File(185) = abfmovi2.gen +File(186) = abfmovi3.gen +File(187) = abfmovi4.gen +File(188) = abfmovi5.gen +File(189) = abfpdbi.gen +File(19) = ab003c1.hlp +File(190) = abfpiaco.gen +File(191) = abfprofi.gen +File(192) = abfrtabi.gen +File(193) = abfsaldi.gen +File(194) = abfstabi.gen +File(195) = abfvarbi.gen +File(196) = abgenaz.gen +File(197) = abl.gen +File(198) = ablaunch.exe +File(199) = abmovdet.gen +File(2) = ab00.exe +File(20) = ab003c1.msk +File(200) = abmovi1.gen +File(201) = abmovi2.gen +File(202) = abmovi3.gen +File(203) = abmovi4.as4 +File(204) = abmovi4.gen +File(205) = abmovi4.s36 +File(206) = abmovi5.as4 +File(207) = abmovi5.gen +File(208) = abmovi5.s36 +File(209) = abpaa01.gen +File(21) = ab003d.hlp +File(210) = abpab04.gen +File(211) = abpab05.gen +File(212) = abpac01.gen +File(213) = abpad03.gen +File(214) = abpc.gen +File(215) = abpca01.gen +File(216) = abpcb04.gen +File(217) = abpcc01.gen +File(218) = abpccg.as4 +File(219) = abpccg.gen +File(22) = ab003d.msk +File(220) = abpccg.s36 +File(23) = ab003e.hlp +File(24) = ab003e.msk +File(25) = ab003f.hlp +File(26) = ab003f.msk +File(27) = ab003g.hlp +File(28) = ab003g.msk +File(29) = ab003h.hlp +File(3) = ab001a.hlp +File(30) = ab003h.msk +File(31) = ab003i.hlp +File(32) = ab003i.msk +File(33) = ab003j.hlp +File(34) = ab003j.msk +File(35) = ab003k.hlp +File(36) = ab003k.msk +File(37) = ab003l.hlp +File(38) = ab003l.msk +File(39) = ab01.bmp +File(4) = ab001a.msk +File(40) = ab01.exe +File(41) = ab011a.hlp +File(42) = ab011a.msk +File(43) = ab012a.hlp +File(44) = ab012a.msk +File(45) = ab013a.hlp +File(46) = ab013a.msk +File(47) = ab013b.hlp +File(48) = ab013b.msk +File(49) = ab02.exe +File(5) = ab002a.hlp +File(50) = ab0200a.msk +File(51) = ab0210a.hlp +File(52) = ab0210b.hlp +File(53) = ab0211a.hlp +File(54) = ab0211a.msk +File(55) = ab0211b.hlp +File(56) = ab0211b.msk +File(57) = ab0212a.hlp +File(58) = ab0212a.msk +File(59) = ab021a.hlp +File(6) = ab002a.msk +File(60) = ab021a.msk +File(61) = ab021b.hlp +File(62) = ab021b.msk +File(63) = ab022a.msk +File(64) = ab023a.msk +File(65) = ab024a.msk +File(66) = ab026a.hlp +File(67) = ab026a.msk +File(68) = ab027a.hlp +File(69) = ab027a.msk +File(7) = ab002b.hlp +File(70) = ab028a.hlp +File(71) = ab028a.msk +File(72) = ab029a.hlp +File(73) = ab029a.msk +File(74) = ab03.exe +File(75) = ab031a.hlp +File(76) = ab031a.msk +File(77) = ab031b.hlp +File(78) = ab031b.msk +File(79) = ab031bb.hlp +File(8) = ab002b.msk +File(80) = ab031bb.msk +File(81) = ab031c.hlp +File(82) = ab031c.msk +File(83) = ab031d.hlp +File(84) = ab031d.msk +File(85) = ab031e.msk +File(86) = ab031f.hlp +File(87) = ab031f.msk +File(88) = ab031g.msk +File(89) = ab04.exe +File(9) = ab002c.hlp +File(90) = ab041a.hlp +File(91) = ab041a.msk +File(92) = ab041b.hlp +File(93) = ab041b.msk +File(94) = ab042a.hlp +File(95) = ab042a.msk +File(96) = ab042b.hlp +File(97) = ab042b.msk +File(98) = ab042c.hlp +File(99) = ab042c.msk +Patch = +Versione = + +[ab0] +File(221) = abpcd03.gen +File(222) = abpdb.gen +File(223) = abpea01.gen +File(224) = abpeb02.gen +File(225) = abpeb04.gen +File(226) = abpeb05.gen +File(227) = abpeb06.gen +File(228) = abpec01.gen +File(229) = abped03.gen +File(230) = abpla01.gen +File(231) = abpra01.gen +File(232) = abprassi.men +File(233) = abprb04.as4 +File(234) = abprb04.gen +File(235) = abprb04.s36 +File(236) = abprb05.gen +File(237) = abprb06.gen +File(238) = abprc01.gen +File(239) = abprd03.gen +File(240) = abpxb01.gen +File(241) = abpxb02.gen +File(242) = abpxb03.gen +File(243) = abpxd01.gen +File(244) = abpxd02.gen +File(245) = abpxd04.gen +File(246) = abr.gen +File(247) = abric.bat +File(248) = absald.gen +File(249) = absaldi.gen +File(250) = absoci.gen +File(251) = absrel.gen +File(252) = abstcal.bat +File(253) = abstcb6.bat +File(254) = abtanagr.gen +File(255) = abtanal.as4 +File(256) = abtanal.gen +File(257) = abtanal.s36 +File(258) = abtbcau.gen +File(259) = abtcau.gen +File(260) = abtcrs.gen +File(261) = abtditaa.gen +File(262) = abtditac.gen +File(263) = abtditad.gen +File(264) = abtditba.gen +File(265) = abtditgb.gen +File(266) = abtgenaz.gen +File(267) = abtmovi1.gen +File(268) = abtmovi2.gen +File(269) = abtmovi3.gen +File(270) = abtmovi4.as4 +File(271) = abtmovi4.gen +File(272) = abtmovi4.s36 +File(273) = abtmovi5.as4 +File(274) = abtmovi5.gen +File(275) = abtmovi5.s36 +File(276) = abtpc.gen +File(277) = abtpdb.gen +File(278) = abtrans.as4 +File(279) = abtrans.emu +File(280) = abtrans.gen +File(281) = abtrans.s36 +File(282) = abtrel.gen +File(283) = abtsaldi.gen +File(284) = abtsoci.gen +File(285) = abtsrel.gen +File(286) = abtvarbi.gen +File(287) = abtvoci.as4 +File(288) = abtvoci.gen +File(289) = abtvoci.s36 +File(290) = abvarbi.gen +File(291) = abvoci.gen +File(292) = abvoxno.gen +File(293) = abx.exe +File(294) = abx1a.hlp +File(295) = abx1a.msk +File(296) = abx2a.hlp +File(297) = abx2a.msk +File(298) = abx3a.hlp +File(299) = abx3a.msk +File(300) = abx3b.hlp +File(301) = abx3b.msk +File(302) = abx3c.hlp +File(303) = abx3c.msk +File(304) = abxpaa01.gen +File(305) = abxpab04.gen +File(306) = abxpab05.gen +File(307) = abxpac01.gen +File(308) = abxpad03.gen +File(309) = abxpca01.gen +File(310) = abxpcb04.gen +File(311) = abxpcc01.gen +File(312) = abxpcd03.gen +File(313) = abxpea01.gen +File(314) = abxpeb04.gen +File(315) = abxpeb05.gen +File(316) = abxpeb06.gen +File(317) = abxpec01.gen +File(318) = abxped03.gen +File(319) = abxpla01.gen +File(320) = abxplb04.gen +File(321) = abxpld03.gen +File(322) = abxpra01.gen +File(323) = abxprb04.gen +File(324) = abxprb05.gen +File(325) = abxprb06.gen +File(326) = abxprc01.gen +File(327) = abxprd03.gen +File(328) = abxpxb01.gen +File(329) = abxpxb02.gen +File(330) = abxpxb03.gen +File(331) = abxpxd01.gen +File(332) = abxpxd02.gen +File(333) = abxpxd04.gen +File(334) = abxtanag.gen +File(335) = abxtanal.gen +File(336) = abxtcrs.gen +File(337) = abxtdtaa.gen +File(338) = abxtdtac.gen +File(339) = abxtdtad.gen +File(340) = abxtdtba.gen +File(341) = abxtdtbb.gen +File(342) = abxtgena.gen +File(343) = abxtmov1.gen +File(344) = abxtmov2.gen +File(345) = abxtmov3.gen +File(346) = abxtmov4.gen +File(347) = abxtmov5.gen +File(348) = abxtnota.gen +File(349) = abxtpc.gen +File(350) = abxtpdb.gen +File(351) = abxtrel.gen +File(352) = abxtsald.gen +File(353) = abxtsoci.gen +File(354) = abxtsrel.gen +File(355) = abxtvarb.gen +File(356) = abxtvoci.gen +Patch = +Versione = + +[mi1] +File(0) = config.fpw +File(1) = ddereg.exe +File(11) = miva.exe +File(12) = pkunzip.exe +File(13) = pkzip.exe +File(14) = raw.drV +File(15) = rebuild.bat +File(16) = sys\miva\devprn.cdx +File(17) = sys\miva\devprn.dbf +File(18) = sys\miva\exthelp.cdx +File(19) = sys\miva\exthelp.dbf +File(2) = devprn.dll +File(20) = sys\miva\syssta.cdx +File(21) = sys\miva\syssta.dbf +File(22) = vs.vsn +File(3) = fll32_16.dll +File(4) = foxuser.dbf +File(5) = foxuser.fpt +File(6) = fpsql.fll +File(7) = libro.ico +File(8) = libs32\aga32.dll +File(9) = libs32\foxtools.fll +Patch = +Versione = + +[sv1] +File(0) = sv0.exe +File(1) = sv01.bmp +File(2) = sv0400a.msk +File(3) = sv1.exe +File(4) = sv1100a.frm +File(5) = sv1100a.msk +File(6) = sv1200a.msk +File(7) = sv1200b.msk +File(8) = sv1200c.msk +File(9) = sv2.exe +File(10) = sv2100a.msk +File(11) = svprassi.men +File(12) = svtbpsv.msk +Patch = 27 +Versione = 19980103 + +[sv2] +File(13) = recdesc\f87.dir +File(14) = recdesc\f87.trr +Patch = 27 +Versione = 19980103 + +[sv9] +File(15) = recdesc\f86.dir +File(16) = recdesc\f86.trr +Patch = 27 +Versione = 19980103 + +[sc1] +File(0) = pec.frm +File(1) = sc0.exe|X +File(2) = sc01.bmp +File(3) = sc0100a.msk +File(4) = sc0100b.msk +File(5) = sc0100c.msk +File(6) = sc0100p.msk +File(7) = sc1.exe +File(8) = sc1100a.msk +File(9) = sc1200a.msk +File(10) = sc1300a.msk +File(11) = sc2.exe +File(12) = sc2100a.msk +File(13) = sc2200a.msk +File(14) = sc2300a.msk +File(15) = sc2400a.msk +File(16) = sc3.exe +File(17) = sc3100a.msk +File(18) = sc3100b.msk +File(19) = sc3100c.msk +File(20) = sc3100s.msk +File(21) = scprassi.hlp +File(22) = scprassi.men +Patch = 44 +Versione = 19980103 [770] File(0) = 7700.bmp File(1) = 77area.men -Patch = 18 -Versione = 19980102 +Patch = 45 +Versione = 19980103 [771] +File(2) = 770.exe +File(3) = 7701.bmp +File(4) = 770100a.msk +File(5) = 770100b.msk +File(6) = 770100c.msk +File(7) = 770100d.msk +File(8) = 770100e.msk +File(9) = 770100f.msk File(10) = 770100g.msk -File(100) = 77qab.frm -File(101) = 77qb.frm -File(102) = 77qb1.frm -File(103) = 77qb1a.msk -File(104) = 77qb1b.msk -File(105) = 77qba.msk -File(106) = 77qbb.msk -File(107) = 77qc.frm -File(108) = 77qd.frm -File(109) = 77qd1.frm File(11) = 770200a.msk -File(110) = 77qdb.frm -File(111) = 77qe.frm -File(112) = 77qe1.frm -File(113) = 77qe2.frm -File(114) = 77qe2a.msk -File(115) = 77qe2b.msk -File(116) = 77qf.frm -File(117) = 77qf1.frm -File(118) = 77qf2.frm -File(119) = 77qg.frm File(12) = 771100a.msk -File(120) = 77qg1.frm -File(121) = 77qga.frm -File(122) = 77qgd.frm -File(123) = 77qgda.msk -File(124) = 77qh.frm -File(125) = 77ql.frm -File(126) = 77qn.frm -File(127) = 77qn.msk -File(128) = 77qp.msk -File(129) = 77qq.msk File(13) = 771100b.msk -File(130) = 77qr.msk -File(131) = 77qs.msk -File(132) = 77qt.msk -File(133) = 77stqd.msk -File(134) = batbca7.msk -File(135) = batbcaf.msk -File(136) = batbent.msk -File(137) = menu_st.msk File(14) = 771100c.msk File(15) = 771100d.msk File(16) = 771100e.msk File(17) = 771100f.msk File(18) = 771100g.msk File(19) = 771100h.msk -File(2) = 770.exe File(20) = 771150a.msk File(21) = 771200a.msk File(22) = 771200b.msk @@ -645,7 +1052,6 @@ File(26) = 771200f.msk File(27) = 771200g.msk File(28) = 771200h.msk File(29) = 771200i.msk -File(3) = 7701.bmp File(30) = 771200l.msk File(31) = 771200m.msk File(32) = 771230c.msk @@ -656,7 +1062,6 @@ File(36) = 771230e.msk File(37) = 771230e1.msk File(38) = 771230e2.msk File(39) = 771230pr.msk -File(4) = 770100a.msk File(40) = 771231a.msk File(41) = 771231b.msk File(42) = 771231c.msk @@ -667,7 +1072,6 @@ File(46) = 771233b.msk File(47) = 771234a.msk File(48) = 771234b.msk File(49) = 771234c.msk -File(5) = 770100b.msk File(50) = 771234d.msk File(51) = 771234e.msk File(52) = 771290a.msk @@ -678,7 +1082,6 @@ File(56) = 771310b.msk File(57) = 771400a.msk File(58) = 771400b.msk File(59) = 771mod.exe -File(6) = 770100c.msk File(60) = 772100a.msk File(61) = 772200a.msk File(62) = 772300a.msk @@ -689,7 +1092,6 @@ File(66) = 773mod.exe File(67) = 774.exe File(68) = 774200a.msk File(69) = 774300a.msk -File(7) = 770100d.msk File(70) = 775.exe File(71) = 775100a.msk File(72) = 776100a.msk @@ -700,7 +1102,6 @@ File(76) = 776400a.msk File(77) = 776500a.msk File(78) = 776600a.msk File(79) = 776mod.exe -File(8) = 770100e.msk File(80) = 77_g_p2.msk File(81) = 77_g_p3.msk File(82) = 77as.frm @@ -711,19 +1112,56 @@ File(86) = 77base4.frm File(87) = 77busta.frm File(88) = 77cnv.exe File(89) = 77cnva.msk -File(9) = 770100f.msk File(90) = 77g1a.msk File(91) = 77g1pa.msk File(92) = 77logazz.frm File(93) = 77prassi.hlp -File(94) = 77prassi.men +File(94) = 77prassi.men|X File(95) = 77qa.frm File(96) = 77qa1.frm File(97) = 77qa2.frm File(98) = 77qa3.frm File(99) = 77qaall.msk -Patch = 18 -Versione = 19980102 +File(100) = 77qab.frm +File(101) = 77qb.frm +File(102) = 77qb1.frm +File(103) = 77qb1a.msk +File(104) = 77qb1b.msk +File(105) = 77qba.msk +File(106) = 77qbb.msk +File(107) = 77qc.frm +File(108) = 77qd.frm +File(109) = 77qd1.frm +File(110) = 77qdb.frm +File(111) = 77qe.frm +File(112) = 77qe1.frm +File(113) = 77qe2.frm +File(114) = 77qe2a.msk +File(115) = 77qe2b.msk +File(116) = 77qf.frm +File(117) = 77qf1.frm +File(118) = 77qf2.frm +File(119) = 77qg.frm +File(120) = 77qg1.frm +File(121) = 77qga.frm +File(122) = 77qgd.frm +File(123) = 77qgda.msk +File(124) = 77qh.frm +File(125) = 77ql.frm +File(126) = 77qn.frm +File(127) = 77qn.msk +File(128) = 77qp.msk +File(129) = 77qq.msk +File(130) = 77qr.msk +File(131) = 77qs.msk +File(132) = 77qt.msk +File(133) = 77stqd.msk +File(134) = batbca7.msk +File(135) = batbcaf.msk +File(136) = batbent.msk +File(137) = menu_st.msk +Patch = 45 +Versione = 19980103 [772] File(138) = recdesc\f36.dir @@ -792,37 +1230,302 @@ File(200) = recdesc\f76.dir File(201) = recdesc\f76.trr File(202) = recdesc\f77.dir File(203) = recdesc\f77.trr -Patch = 18 -Versione = 19980102 +Patch = 45 +Versione = 19980103 -[sv1] -File(0) = sv0.exe -File(1) = sv01.bmp -File(10) = sv2100a.msk -File(11) = svprassi.men -File(12) = svtbpsv.msk -File(2) = sv0400a.msk -File(3) = sv1.exe -File(4) = sv1100a.frm -File(5) = sv1100a.msk -File(6) = sv1200a.msk -File(7) = sv1200b.msk -File(8) = sv1200c.msk -File(9) = sv2.exe -Patch = 20 -Versione = 19980102 +[ef1] +File(0) = dse.frm +File(1) = ef0.exe +File(2) = ef01.bmp +File(3) = ef0100a.msk +File(4) = ef0200a.msk +File(5) = ef0300a.msk +File(6) = ef0300c.msk +File(7) = ef0400a.msk +File(8) = ef0500a.msk +File(9) = ef0600a.msk +File(10) = ef0800a.msk +File(11) = ef0900a.msk +File(12) = efprassi.hlp +File(13) = efprassi.men +File(14) = rb.frm +File(15) = riba.ini +Patch = 72 +Versione = 19980103 -[sv2] -File(13) = recdesc\f87.dir -File(14) = recdesc\f87.trr -Patch = 20 -Versione = 19980102 +[ef2] +File(16) = recdesc\f14.dir +File(17) = recdesc\f14.trr +File(18) = recdesc\f31.dir +File(19) = recdesc\f31.trr +File(20) = recdesc\f32.dir +File(21) = recdesc\f32.trr +Patch = 72 +Versione = 19980103 -[sv9] -File(15) = recdesc\f86.dir -File(16) = recdesc\f86.trr -Patch = 20 -Versione = 19980102 +[pr1] +File(0) = bastapr.msk +File(1) = batbapr.rpt +File(2) = pr01.bmp +File(3) = pr0700a.msk +File(4) = pr0700b.msk +File(5) = pr1200a.frm +File(6) = pr1200a.msk +File(7) = pr1300a.frm +File(8) = pr1300a.msk +File(9) = pr1400.msk +File(10) = pr1400a.frm +File(11) = prprassi.men +Patch = 72 +Versione = 19980103 + +[pr9] +File(12) = recdesc\f123.dir +File(13) = recdesc\f123.trr +File(14) = recdesc\f124.dir +File(15) = recdesc\f124.trr +Patch = 72 +Versione = 19980103 + +[cg0] +File(0) = cg00.bmp +File(1) = cgarea.men +Patch = 81 +Versione = 19980103 + +[cg1] +File(2) = ab0.exe +File(3) = ab0200a.msk +File(4) = bastcfi.msk +File(5) = bastdpn.msk +File(6) = bastivd.msk +File(7) = bastver.msk +File(8) = batbcfi.msk +File(9) = batbcfi.rpt +File(10) = batbdel.msk +File(11) = batbdpn.msk +File(12) = batbdpn.rpt +File(13) = batbind.msk +File(14) = batbinl.msk +File(15) = batbins.msk +File(16) = batbivd.msk +File(17) = batbivd.rpt +File(18) = batblbu.msk +File(19) = batblia.msk +File(20) = batbpdb.msk +File(21) = batbtra.msk +File(22) = batbver.msk +File(23) = batbver.rpt +File(24) = cb0000.exe +File(25) = cg01.bmp +File(26) = cg0500a.msk +File(27) = cg2.exe|X +File(28) = cg2100a.msk +File(29) = cg2100b.msk +File(30) = cg2100c.msk +File(31) = cg2100i.msk +File(32) = cg2100k.msk +File(33) = cg2100n.msk +File(34) = cg2100o.msk +File(35) = cg2100p.msk +File(36) = cg2100s.msk +File(37) = cg2200a.msk +File(38) = cg3.exe +File(39) = cg3100a.msk +File(40) = cg3100b.msk +File(41) = cg3100c.msk +File(42) = cg3200a.msk +File(43) = cg3300.frm +File(44) = cg3300a.msk +File(45) = cg3300b.msk +File(46) = cg3300c.msk +File(47) = cg3400a.msk +File(48) = cg3400b.msk +File(49) = cg3500a.msk +File(50) = cg3600a.msk +File(51) = cg3600b.msk +File(52) = cg3700a.msk +File(53) = cg4.exe +File(54) = cg4100a.msk +File(55) = cg4100b.msk +File(56) = cg4200a.msk +File(57) = cg4300a.msk +File(58) = cg4300b.msk +File(59) = cg4300c.msk +File(60) = cg4400a.msk +File(61) = cg4400b.msk +File(62) = cg4500a.msk +File(63) = cg4500b.msk +File(64) = cg4600a.msk +File(65) = cg4700a.msk +File(66) = cg4800a.msk +File(67) = cg4800b.msk +File(68) = cg4900a.msk +File(69) = cg4900b.msk +File(70) = cg4900c.msk +File(71) = cg4900d.msk +File(72) = cg5.exe +File(73) = cg5000a.msk +File(74) = cg5100a.msk +File(75) = cg5200a.msk +File(76) = cg5300a.msk +File(77) = cg5400a.msk +File(78) = cg5400b.msk +File(79) = cg5500a.msk +File(80) = cg5500b.msk +File(81) = cg5500c.msk +File(82) = cg5500d.msk +File(83) = cg5600a.msk +File(84) = cg6.exe +File(85) = cg6400a.msk +File(86) = cg6400b.msk +File(87) = cg6400c.msk +File(88) = cg6600a.msk +File(89) = cg6700a.msk +File(90) = cg6800a.msk +File(91) = cg6800b.msk +File(92) = cg6800c.msk +File(93) = cg6801a.msk +File(94) = cg6802a.msk +File(95) = cg6802b.msk +File(96) = cg6803a.msk +File(97) = cg6804a.msk +File(98) = cg6804b.msk +File(99) = cg6804c.msk +File(100) = cg6804d.msk +File(101) = cg6804e.msk +File(102) = cg6804f.msk +File(103) = cg6804g.msk +File(104) = cg6900a.msk +File(105) = cg6900b.msk +File(106) = cg6903a.msk +File(107) = cgaddon.men +File(108) = cgprassi.hlp +File(109) = cgprassi.men +File(110) = cgtrc.ini +File(111) = cgtrcpc.ini +File(112) = dummy.ldb +File(113) = dummy.mdb +File(114) = pec.frm +File(115) = trrice.exe +File(116) = vcopia.exe +Patch = 81 +Versione = 19980103 + +[cg2] +File(117) = recdesc\f103.dir +File(118) = recdesc\f103.trr +File(119) = recdesc\f104.dir +File(120) = recdesc\f104.trr +File(121) = recdesc\f21.dir +File(122) = recdesc\f21.trr +File(123) = recdesc\f22.dir +File(124) = recdesc\f22.trr +File(125) = recdesc\f23.dir +File(126) = recdesc\f23.trr +File(127) = recdesc\f24.dir +File(128) = recdesc\f24.trr +File(129) = recdesc\f25.dir +File(130) = recdesc\f25.trr +File(131) = recdesc\f26.dir +File(132) = recdesc\f26.trr +File(133) = recdesc\f27.dir +File(134) = recdesc\f27.trr +File(135) = recdesc\f28.dir +File(136) = recdesc\f28.trr +File(137) = recdesc\f29.dir +File(138) = recdesc\f29.trr +File(139) = recdesc\f30.dir +File(140) = recdesc\f30.trr +Patch = 81 +Versione = 19980103 + +[cg9] +File(141) = bastcam.msk +File(142) = bastcco.msk +File(143) = bastcve.msk +File(144) = bastesc.msk +File(145) = bastleg.msk +File(146) = bastmag.msk +File(147) = bastmsp.msk +File(148) = bastndo.msk +File(149) = bastnot.msk +File(150) = bastpor.msk +File(151) = bastreg.msk +File(152) = bastscc.msk +File(153) = bastspp.msk +File(154) = basttit.msk +File(155) = basttri.msk +File(156) = bastums.msk +File(157) = bastvet.msk +File(158) = bastzon.msk +File(159) = batbcam.msk +File(160) = batbcam.rpt +File(161) = batbcco.msk +File(162) = batbcco.rpt +File(163) = batbcve.msk +File(164) = batbcve.rpt +File(165) = batbesc.msk +File(166) = batbesc.rpt +File(167) = batbleg.msk +File(168) = batbleg.rpt +File(169) = batbmsp.msk +File(170) = batbmsp.rpt +File(171) = batbndo.msk +File(172) = batbndo.rpt +File(173) = batbnot.msk +File(174) = batbnot.rpt +File(175) = batbpor.msk +File(176) = batbpor.rpt +File(177) = batbreg.msk +File(178) = batbreg.rpt +File(179) = batbscc.msk +File(180) = batbscc.rpt +File(181) = batbspp.msk +File(182) = batbspp.rpt +File(183) = batbtit.msk +File(184) = batbtit.rpt +File(185) = batbtri.msk +File(186) = batbtri.rpt +File(187) = batbums.msk +File(188) = batbums.rpt +File(189) = batbvet.msk +File(190) = batbvet.rpt +File(191) = batbzon.msk +File(192) = batbzon.rpt +File(193) = cg0.exe +File(194) = cg0100a.msk +File(195) = cg0200a.msk +File(196) = cg0200b.msk +File(197) = cg0300a.msk +File(198) = cg0400a.msk +File(199) = cg0400b.msk +File(200) = cg1.exe +File(201) = cg1100a.msk +File(202) = cg1200a.msk +File(203) = cg1200b.msk +File(204) = cg1300a.msk +File(205) = cg1300b.msk +File(206) = cg1300c.msk +File(207) = cg1300d.msk +File(208) = cg1400a.msk +File(209) = cg1500a.msk +File(210) = cg1600a.msk +File(211) = cg1700a.msk +File(212) = recdesc\f16.dir +File(213) = recdesc\f16.trr +File(214) = recdesc\f17.dir +File(215) = recdesc\f17.trr +File(216) = recdesc\f18.dir +File(217) = recdesc\f18.trr +File(218) = recdesc\f19.dir +File(219) = recdesc\f19.trr +File(220) = recdesc\f20.dir +File(221) = recdesc\f20.trr +File(222) = recdesc\f78.dir +File(223) = recdesc\f78.trr +Patch = 81 +Versione = 19980103 [ba0] File(0) = ba00.bmp @@ -833,65 +1536,17 @@ File(4) = ba04.bmp File(5) = ba05.bmp File(6) = ba06.bmp File(7) = baprassi.men -Patch = 21 -Versione = 19980102 +Patch = 81 +Versione = 19980103 [ba1] +File(8) = ba0.exe|X +File(9) = ba0100a.msk File(10) = ba0200a.msk -File(100) = batbais.msk -File(101) = batbais.rpt -File(102) = batbban.msk -File(103) = batbban.rpt -File(104) = batbclr.msk -File(105) = batbclr.rpt -File(106) = batbcpg.msk -File(107) = batbcpg.rpt -File(108) = batbcrs.msk -File(109) = batbcrs.rpt File(11) = ba0300a.msk -File(110) = batbitl.msk -File(111) = batbitl.rpt -File(112) = batbiva.msk -File(113) = batbiva.rpt -File(114) = batblng.msk -File(115) = batblng.rpt -File(116) = batbois.msk -File(117) = batbois.rpt -File(118) = batbrgi.msk -File(119) = batbsta.msk -File(12) = ba1.exe -File(120) = batbsta.rpt -File(121) = batbstt.msk -File(122) = batbstt.rpt -File(123) = batbucc.msk -File(124) = batbucc.rpt -File(125) = batbucs.msk -File(126) = batbucs.rpt -File(127) = batbues.msk -File(128) = batbues.rpt -File(129) = batbuid.msk +File(12) = ba1.exe|X File(13) = ba1100a.msk -File(130) = batbuid.rpt -File(131) = batbuiv.msk -File(132) = batbuiv.rpt -File(133) = batbure.msk -File(134) = batbure.rpt -File(135) = batbuue.msk -File(136) = batbuue.rpt -File(137) = batbval.msk -File(138) = batbval.rpt -File(139) = fconv.ini File(14) = ba1100b.msk -File(140) = prassi.aut -File(141) = prassi.hlp -File(142) = prassice.men -File(143) = prassid.ini -File(144) = prassis.ini -File(145) = unzip.pif -File(146) = unzip32.exe -File(147) = zip.pif -File(148) = zip386.bat -File(149) = zip386.exe File(15) = ba1100c.msk File(16) = ba1100d.msk File(17) = ba1100e.msk @@ -957,445 +1612,133 @@ File(76) = bagn005.msk File(77) = bagn006.msk File(78) = bainst.exe File(79) = bainst01.msk -File(8) = ba0.exe -File(80) = bastiva.msk -File(81) = bastlng.msk -File(82) = bastois.msk -File(83) = baststa.msk -File(84) = baststt.msk -File(85) = bastucc.msk -File(86) = bastucs.msk -File(87) = bastues.msk -File(88) = bastuid.msk -File(89) = bastuiv.msk -File(9) = ba0100a.msk -File(90) = baststa.msk -File(91) = baststt.msk -File(92) = bastucc.msk -File(93) = bastucs.msk -File(94) = bastues.msk -File(95) = bastuid.msk -File(96) = bastuiv.msk -File(97) = basture.msk -File(98) = bastuue.msk -File(99) = bastval.msk -Patch = 21 -Versione = 19980102 +File(80) = bainst02.msk +File(81) = bainst03.msk +File(82) = bainst04.msk +File(83) = bainst05.msk +File(84) = bastais.msk +File(85) = bastban.msk +File(86) = bastclr.msk +File(87) = bastcpg.msk +File(88) = bastcrs.msk +File(89) = bastitl.msk +File(90) = bastiva.msk +File(91) = bastlng.msk +File(92) = bastois.msk +File(93) = baststa.msk +File(94) = baststt.msk +File(95) = bastucc.msk +File(96) = bastucs.msk +File(97) = bastues.msk +File(98) = bastuid.msk +File(99) = bastuiv.msk +File(100) = basture.msk +File(101) = bastuue.msk +File(102) = bastval.msk +File(103) = batbais.msk +File(104) = batbais.rpt +File(105) = batbban.msk +File(106) = batbban.rpt +File(107) = batbclr.msk +File(108) = batbclr.rpt +File(109) = batbcpg.msk +File(110) = batbcpg.rpt +File(111) = batbcrs.msk +File(112) = batbcrs.rpt +File(113) = batbitl.msk +File(114) = batbitl.rpt +File(115) = batbiva.msk +File(116) = batbiva.rpt +File(117) = batblng.msk +File(118) = batblng.rpt +File(119) = batbois.msk +File(120) = batbois.rpt +File(121) = batbrgi.msk +File(122) = batbsta.msk +File(123) = batbsta.rpt +File(124) = batbstt.msk +File(125) = batbstt.rpt +File(126) = batbucc.msk +File(127) = batbucc.rpt +File(128) = batbucs.msk +File(129) = batbucs.rpt +File(130) = batbues.msk +File(131) = batbues.rpt +File(132) = batbuid.msk +File(133) = batbuid.rpt +File(134) = batbuiv.msk +File(135) = batbuiv.rpt +File(136) = batbure.msk +File(137) = batbure.rpt +File(138) = batbuue.msk +File(139) = batbuue.rpt +File(140) = batbval.msk +File(141) = batbval.rpt +File(142) = fconv.ini +File(143) = prassi.aut +File(144) = prassi.hlp +File(145) = prassice.men +File(146) = prassid.ini +File(147) = prassis.ini +File(148) = unzip.pif +File(149) = unzip32.exe +File(150) = zip.pif +File(151) = zip386.bat +File(152) = zip386.exe +Patch = 81 +Versione = 19980103 [ba2] -File(150) = recdesc\f10.dir -File(151) = recdesc\f10.trr -File(152) = recdesc\f105.dir -File(153) = recdesc\f105.trr -File(154) = recdesc\f11.dir -File(155) = recdesc\f11.trr -File(156) = recdesc\f12.dir -File(157) = recdesc\f12.trr -File(158) = recdesc\f13.dir -File(159) = recdesc\f13.trr -File(160) = recdesc\f15.dir -File(161) = recdesc\f15.trr -File(162) = recdesc\f2.dir -File(163) = recdesc\f2.trr -File(164) = recdesc\f3.dir -File(165) = recdesc\f3.trr -File(166) = recdesc\f4.dir -File(167) = recdesc\f4.trr -File(168) = recdesc\f5.dir -File(169) = recdesc\f5.trr -File(170) = recdesc\f50.dir -File(171) = recdesc\f50.trr -File(172) = recdesc\f54.dir -File(173) = recdesc\f54.trr -File(174) = recdesc\f6.dir -File(175) = recdesc\f6.trr -File(176) = recdesc\f7.dir -File(177) = recdesc\f7.trr -File(178) = recdesc\f8.dir -File(179) = recdesc\f8.trr -File(180) = recdesc\f9.dir -File(181) = recdesc\f9.trr -Patch = 21 -Versione = 19980102 - -[cg0] -File(0) = cg00.bmp -File(1) = cgarea.men -Patch = 18 -Versione = 19980102 - -[cg1] -File(10) = batbdpn.rpt -File(100) = cg6804g.msk -File(101) = cg6900a.msk -File(102) = cg6900b.msk -File(103) = cg6903a.msk -File(104) = cgaddon.men -File(105) = cgprassi.hlp -File(106) = cgprassi.men -File(107) = cgtrc.ini -File(108) = cgtrcpc.ini -File(109) = dummy.ldb -File(11) = batbind.msk -File(110) = dummy.mdb -File(111) = trrice.exe -File(112) = vcopia.exe -File(12) = batbinl.msk -File(13) = batbins.msk -File(14) = batbivd.msk -File(15) = batbivd.rpt -File(16) = batblbu.msk -File(17) = batblia.msk -File(18) = batbtra.msk -File(19) = batbver.msk -File(2) = bastcfi.msk -File(20) = batbver.rpt -File(21) = cb0000.exe -File(218) = pec.frm -File(22) = cg01.bmp -File(23) = cg0500a.msk -File(24) = cg2.exe -File(25) = cg2100a.msk -File(26) = cg2100b.msk -File(27) = cg2100c.msk -File(28) = cg2100i.msk -File(29) = cg2100k.msk -File(3) = bastdpn.msk -File(30) = cg2100n.msk -File(31) = cg2100o.msk -File(32) = cg2100p.msk -File(33) = cg2100s.msk -File(34) = cg2200a.msk -File(35) = cg3.exe -File(36) = cg3100a.msk -File(37) = cg3100b.msk -File(38) = cg3100c.msk -File(39) = cg3200a.msk -File(4) = bastivd.msk -File(40) = cg3300.frm -File(41) = cg3300a.msk -File(42) = cg3300b.msk -File(43) = cg3300c.msk -File(44) = cg3400a.msk -File(45) = cg3400b.msk -File(46) = cg3500a.msk -File(47) = cg3600a.msk -File(48) = cg3600b.msk -File(49) = cg3700a.msk -File(5) = bastver.msk -File(50) = cg4.exe -File(51) = cg4100a.msk -File(52) = cg4100b.msk -File(53) = cg4200a.msk -File(54) = cg4300a.msk -File(55) = cg4300b.msk -File(56) = cg4300c.msk -File(57) = cg4400a.msk -File(58) = cg4400b.msk -File(59) = cg4500a.msk -File(6) = batbcfi.msk -File(60) = cg4500b.msk -File(61) = cg4600a.msk -File(62) = cg4700a.msk -File(63) = cg4800a.msk -File(64) = cg4800b.msk -File(65) = cg4900a.msk -File(66) = cg4900b.msk -File(67) = cg4900c.msk -File(68) = cg4900d.msk -File(69) = cg5.exe -File(7) = batbcfi.rpt -File(70) = cg5000a.msk -File(71) = cg5100a.msk -File(72) = cg5200a.msk -File(73) = cg5300a.msk -File(74) = cg5400a.msk -File(75) = cg5400b.msk -File(76) = cg5500a.msk -File(77) = cg5500b.msk -File(78) = cg5500c.msk -File(79) = cg5500d.msk -File(8) = batbdel.msk -File(80) = cg5600a.msk -File(81) = cg6.exe -File(82) = cg6400a.msk -File(83) = cg6400b.msk -File(84) = cg6400c.msk -File(85) = cg6600a.msk -File(86) = cg6700a.msk -File(87) = cg6800a.msk -File(88) = cg6800b.msk -File(89) = cg6800c.msk -File(9) = batbdpn.msk -File(90) = cg6801a.msk -File(91) = cg6802a.msk -File(92) = cg6802b.msk -File(93) = cg6803a.msk -File(94) = cg6804a.msk -File(95) = cg6804b.msk -File(96) = cg6804c.msk -File(97) = cg6804d.msk -File(98) = cg6804e.msk -File(99) = cg6804f.msk -Patch = 18 -Versione = 19980102 - -[cg2] -File(113) = recdesc\f103.dir -File(114) = recdesc\f103.trr -File(115) = recdesc\f104.dir -File(116) = recdesc\f104.trr -File(117) = recdesc\f21.dir -File(118) = recdesc\f21.trr -File(119) = recdesc\f22.dir -File(120) = recdesc\f22.trr -File(121) = recdesc\f23.dir -File(122) = recdesc\f23.trr -File(123) = recdesc\f24.dir -File(124) = recdesc\f24.trr -File(125) = recdesc\f25.dir -File(126) = recdesc\f25.trr -File(127) = recdesc\f26.dir -File(128) = recdesc\f26.trr -File(129) = recdesc\f27.dir -File(130) = recdesc\f27.trr -File(131) = recdesc\f28.dir -File(132) = recdesc\f28.trr -File(133) = recdesc\f29.dir -File(134) = recdesc\f29.trr -File(135) = recdesc\f30.dir -File(136) = recdesc\f30.trr -Patch = 18 -Versione = 19980102 - -[cg9] -File(137) = bastcam.msk -File(138) = bastcco.msk -File(139) = bastcve.msk -File(140) = bastesc.msk -File(141) = bastleg.msk -File(142) = bastmag.msk -File(143) = bastmsp.msk -File(144) = bastndo.msk -File(145) = bastnot.msk -File(146) = bastpor.msk -File(147) = bastreg.msk -File(148) = bastscc.msk -File(149) = bastspp.msk -File(150) = basttit.msk -File(151) = basttri.msk -File(152) = bastums.msk -File(153) = bastvet.msk -File(154) = bastzon.msk -File(155) = batbcam.msk -File(156) = batbcam.rpt -File(157) = batbcco.msk -File(158) = batbcco.rpt -File(159) = batbcve.msk -File(160) = batbcve.rpt -File(161) = batbesc.msk -File(162) = batbesc.rpt -File(163) = batbleg.msk -File(164) = batbleg.rpt -File(165) = batbmsp.msk -File(166) = batbmsp.rpt -File(167) = batbndo.msk -File(168) = batbndo.rpt -File(169) = batbnot.msk -File(170) = batbnot.rpt -File(171) = batbpor.msk -File(172) = batbpor.rpt -File(173) = batbreg.msk -File(174) = batbreg.rpt -File(175) = batbscc.msk -File(176) = batbscc.rpt -File(177) = batbspp.msk -File(178) = batbspp.rpt -File(179) = batbtit.msk -File(180) = batbtit.rpt -File(181) = batbtri.msk -File(182) = batbtri.rpt -File(183) = batbums.msk -File(184) = batbums.rpt -File(185) = batbvet.msk -File(186) = batbvet.rpt -File(187) = batbzon.msk -File(188) = batbzon.rpt -File(189) = cg0.exe -File(190) = cg0100a.msk -File(191) = cg0200a.msk -File(192) = cg0200b.msk -File(193) = cg0300a.msk -File(194) = cg0400a.msk -File(195) = cg0400b.msk -File(196) = cg1.exe -File(197) = cg1100a.msk -File(198) = cg1200a.msk -File(199) = cg1200b.msk -File(200) = cg1300a.msk -File(201) = cg1300b.msk -File(202) = cg1300c.msk -File(203) = cg1300d.msk -File(204) = cg1400a.msk -File(205) = cg1500a.msk -File(206) = cg1600a.msk -File(207) = cg1700a.msk -File(208) = recdesc\f16.dir -File(209) = recdesc\f16.trr -File(210) = recdesc\f17.dir -File(211) = recdesc\f17.trr -File(212) = recdesc\f18.dir -File(213) = recdesc\f18.trr -File(214) = recdesc\f19.dir -File(215) = recdesc\f19.trr -File(216) = recdesc\f20.dir -File(217) = recdesc\f20.trr -Patch = 18 -Versione = 19980102 - -[sc1] -File(0) = sc0.exe -File(1) = sc01.bmp -File(10) = sc2.exe -File(11) = sc2100a.msk -File(12) = sc2200a.msk -File(13) = sc2300a.msk -File(14) = sc2400a.msk -File(15) = sc3.exe -File(16) = sc3100a.msk -File(17) = sc3100b.msk -File(18) = sc3100c.msk -File(19) = sc3100s.msk -File(2) = sc0100a.msk -File(20) = scprassi.hlp -File(21) = scprassi.men -File(22) = pec.frm -File(3) = sc0100b.msk -File(4) = sc0100c.msk -File(5) = sc0100p.msk -File(6) = sc1.exe -File(7) = sc1100a.msk -File(8) = sc1200a.msk -File(9) = sc1300a.msk -Patch = 22 -Versione = 19980102 - -[mg0] -File(0) = mg00.bmp -File(1) = mgarea.men -Patch = 302 -Versione = 19980102 - -[mg1] -File(10) = mg1400.msk|X -File(11) = mg3.exe -File(12) = mg3100.msk -File(13) = mg3100a.frm -File(14) = mg3100b.frm -File(15) = mg3200.msk -File(16) = mg3200a.frm -File(17) = mg3200b.frm -File(18) = mg3300.msk -File(19) = mg3300a.frm -File(2) = bastfcg.msk -File(20) = mg3300b.frm -File(21) = mg3400.msk -File(22) = mg3400a.frm -File(23) = mg3400b.frm -File(24) = mg3500.frm -File(25) = mg3500.msk -File(26) = mg4.exe -File(27) = mg4100.frm -File(28) = mg4100.msk|X -File(29) = mg4200.msk -File(3) = batbfcg.msk -File(30) = mg4200a.frm -File(31) = mg4200b.frm -File(32) = mg4300.frm -File(33) = mg4300.msk -File(34) = mgprassi.men -File(35) = tab_fcg.frm -File(4) = batbgcg.msk -File(5) = batbubi.msk -File(6) = mg01.bmp -File(7) = mg1.exe -File(8) = mg1100.msk|X -File(9) = mg1200.msk -Patch = 302 -Versione = 19980102 - -[mg9] -File(36) = recdesc\f109.dir -File(37) = recdesc\f109.trr -File(38) = recdesc\f110.dir -File(39) = recdesc\f110.trr -File(40) = recdesc\f111.dir -File(41) = recdesc\f111.trr -File(42) = recdesc\f114.dir -File(43) = recdesc\f114.trr -Patch = 302 -Versione = 19980102 - -[pr1] -File(0) = pr01.bmp -File(1) = pr0700a.msk -File(2) = pr0700b.msk -File(3) = pr1300a.frm -File(4) = pr1300a.msk -File(5) = pr1400.msk -File(6) = pr1400a.frm -File(7) = prprassi.men -Patch = 302 -Versione = 19980102 - -[pr9] -File(10) = recdesc\f124.dir -File(11) = recdesc\f124.trr -File(8) = recdesc\f123.dir -File(9) = recdesc\f123.trr -Patch = 302 -Versione = 19980102 - -[ef1] -File(0) = bastprs.msk -File(1) = batbprs.msk -File(10) = ef0400a.msk -File(11) = ef0500a.msk -File(12) = ef0600a.msk -File(13) = ef0800a.msk -File(14) = ef0900a.msk -File(15) = efprassi.hlp -File(16) = efprassi.men -File(17) = rb.frm -File(18) = riba.ini -File(2) = batbprs.rpt -File(3) = dse.frm -File(4) = ef0.exe -File(5) = ef01.bmp -File(6) = ef0100a.msk -File(7) = ef0200a.msk -File(8) = ef0300a.msk -File(9) = ef0300c.msk -Patch = 302 -Versione = 19980102 - -[ef2] -File(19) = recdesc\f14.dir -File(20) = recdesc\f14.trr -File(21) = recdesc\f31.dir -File(22) = recdesc\f31.trr -File(23) = recdesc\f32.dir -File(24) = recdesc\f32.trr -Patch = 302 -Versione = 19980102 +File(153) = recdesc\f10.dir +File(154) = recdesc\f10.trr +File(155) = recdesc\f105.dir +File(156) = recdesc\f105.trr +File(157) = recdesc\f11.dir +File(158) = recdesc\f11.trr +File(159) = recdesc\f12.dir +File(160) = recdesc\f12.trr +File(161) = recdesc\f13.dir +File(162) = recdesc\f13.trr +File(163) = recdesc\f15.dir +File(164) = recdesc\f15.trr +File(165) = recdesc\f2.dir +File(166) = recdesc\f2.trr +File(167) = recdesc\f3.dir +File(168) = recdesc\f3.trr +File(169) = recdesc\f4.dir +File(170) = recdesc\f4.trr +File(171) = recdesc\f5.dir +File(172) = recdesc\f5.trr +File(173) = recdesc\f50.dir +File(174) = recdesc\f50.trr +File(175) = recdesc\f54.dir +File(176) = recdesc\f54.trr +File(177) = recdesc\f6.dir +File(178) = recdesc\f6.trr +File(179) = recdesc\f7.dir +File(180) = recdesc\f7.trr +File(181) = recdesc\f8.dir +File(182) = recdesc\f8.trr +File(183) = recdesc\f9.dir +File(184) = recdesc\f9.trr +Patch = 81 +Versione = 19980103 [ve0] File(0) = ve00.bmp File(1) = vearea.men -Patch = 302 -Versione = 19980102 +Patch = 81 +Versione = 19980103 [ve1] +File(2) = basteld.msk +File(3) = bastfrd.msk +File(4) = bastfrr.msk +File(5) = bastnum.msk +File(6) = baststd.msk +File(7) = basttip.msk +File(8) = batbeld.msk +File(9) = batbeld.rpt File(10) = batbfrd.msk File(11) = batbfrd.rpt File(12) = batbfrr.msk @@ -1406,7 +1749,6 @@ File(16) = batbnum.rpt File(17) = batbstd.msk File(18) = batbstd.rpt File(19) = batbtip.msk -File(2) = basteld.msk File(20) = batbtip.rpt File(21) = fatacq.ini File(22) = fatacq.msk @@ -1415,177 +1757,245 @@ File(24) = ve01.bmp File(25) = ve1.exe File(26) = ve1000b.msk File(27) = ve1100a.msk -File(28) = ve5.exe -File(29) = ve5100a.msk -File(3) = bastfrd.msk -File(30) = ve6.exe -File(31) = ve6100a.msk -File(32) = ve6200a.msk -File(33) = ve6300a.msk -File(34) = veprassi.hlp -File(35) = veprassi.men -File(4) = bastfrr.msk -File(5) = bastnum.msk -File(6) = baststd.msk -File(7) = basttip.msk -File(8) = batbeld.msk -File(9) = batbeld.rpt -Patch = 302 -Versione = 19980102 +File(28) = ve5.exe|X +File(29) = ve5100a.msk|X +File(30) = ve5200.msk|X +File(31) = ve6.exe +File(32) = ve6100a.msk +File(33) = ve6200a.msk +File(34) = ve6300a.msk +File(35) = veprassi.hlp +File(36) = veprassi.men|X +Patch = 81 +Versione = 19980103 [ve2] -File(36) = recdesc\f33.dir -File(37) = recdesc\f33.trr -File(38) = recdesc\f34.dir -File(39) = recdesc\f34.trr -Patch = 302 -Versione = 19980102 +File(37) = recdesc\f33.dir +File(38) = recdesc\f33.trr +File(39) = recdesc\f34.dir +File(40) = recdesc\f34.trr +Patch = 81 +Versione = 19980103 [ve3] -File(40) = bolla.bmp -File(41) = bollac.ini -File(42) = bollac.msk -File(43) = bollaf.ini -File(44) = bollaf.msk -File(45) = fattura.bmp -File(46) = fatturaa.ini -File(47) = fatturaa.msk -File(48) = fatturac.ini -File(49) = fatturac.msk -File(50) = ordinec.ini -File(51) = ordinec.msk -File(52) = ordinef.ini -File(53) = ordinef.msk -File(54) = veacc.frm -File(55) = vebol.frm -File(56) = vebolbmp.frm -File(57) = vefat.frm -File(58) = vefatbmp.frm -File(59) = verig00.msk -File(60) = verig01.ini -File(61) = verig01.msk -File(62) = verig02.ini -File(63) = verig02.msk -File(64) = verig03.ini -File(65) = verig03.msk -File(66) = verig04.ini -File(67) = verig04.msk -File(68) = verig05.ini -File(69) = verig05.msk -File(70) = verig06.ini -File(71) = verig06.msk -File(72) = verig07.ini -File(73) = verig07.msk -File(74) = verig08.ini -File(75) = verig08.msk -File(76) = verig09.ini -File(77) = verig09.msk -Patch = 302 -Versione = 19980102 +File(41) = bolla.bmp +File(42) = bollac.ini +File(43) = bollac.msk +File(44) = bollaf.ini +File(45) = bollaf.msk +File(46) = fattura.bmp +File(47) = fatturaa.ini +File(48) = fatturaa.msk +File(49) = fatturac.ini +File(50) = fatturac.msk +File(51) = ordinec.ini +File(52) = ordinec.msk +File(53) = ordinef.ini +File(54) = ordinef.msk +File(55) = veacc.frm +File(56) = vebol.frm +File(57) = vebolbmp.frm +File(58) = vefat.frm +File(59) = vefatbmp.frm +File(60) = verig00.msk +File(61) = verig01.ini +File(62) = verig01.msk +File(63) = verig02.ini +File(64) = verig02.msk +File(65) = verig03.ini +File(66) = verig03.msk +File(67) = verig04.ini +File(68) = verig04.msk +File(69) = verig05.ini +File(70) = verig05.msk +File(71) = verig06.ini +File(72) = verig06.msk +File(73) = verig07.ini +File(74) = verig07.msk +File(75) = verig08.ini +File(76) = verig08.msk +File(77) = verig09.ini +File(78) = verig09.msk +Patch = 81 +Versione = 19980103 [ve9] -File(100) = batbcld.msk -File(101) = batbcra.msk -File(102) = batbcra.rpt -File(103) = batbctr.msk -File(104) = batbctr.rpt -File(105) = batbfca.msk -File(106) = batbfrm.msk -File(107) = batbfrm.rpt -File(108) = batbgca.msk -File(109) = batbgmc.msk -File(110) = batbgmc.rpt -File(111) = batbmag.msk -File(112) = batbmag.rpt -File(113) = batbprv.msk -File(114) = batbrfa.msk -File(115) = batbrfa.rpt -File(116) = batbrfc.msk -File(117) = batbrfc.rpt -File(118) = mg0.exe -File(119) = mg0300a.msk -File(120) = pr0.exe -File(121) = pr0500a.msk -File(122) = pr0600a.msk -File(123) = pr1.exe -File(124) = pr1100.msk|X -File(125) = pr1100a.frm -File(126) = prtbapr.msk -File(127) = recdesc\f122.dir -File(128) = recdesc\f122.trr -File(129) = recdesc\f35.dir -File(130) = recdesc\f35.trr -File(131) = recdesc\f47.dir -File(132) = recdesc\f47.trr -File(133) = recdesc\f48.dir -File(134) = recdesc\f48.trr -File(135) = recdesc\f49.dir -File(136) = recdesc\f49.trr -File(137) = recdesc\f51.dir -File(138) = recdesc\f51.trr -File(139) = recdesc\f52.dir -File(140) = recdesc\f52.trr -File(141) = recdesc\f53.dir -File(142) = recdesc\f53.trr -File(143) = tab_fca.frm -File(144) = ve0.exe -File(145) = ve0100a.msk -File(146) = ve0100o.msk -File(147) = ve0200a.msk -File(148) = ve0200b.msk -File(149) = ve0200c.msk -File(150) = ve0200d.msk -File(151) = ve0200e.msk -File(152) = ve0200f.msk -File(153) = ve0300a.ini -File(154) = ve0300b.dat -File(155) = ve0300c.ini -File(156) = ve2.exe -File(157) = ve2100.msk -File(158) = ve2100d.msk -File(159) = ve2100i.msk -File(160) = ve2100r.msk -File(161) = ve2200.msk -File(162) = ve2200x.msk -File(163) = ve2300.msk -File(164) = ve2300x.msk -File(165) = ve2400.msk -File(166) = ve2400a.msk -File(167) = ve2400b.msk -File(168) = ve2400c.msk -File(169) = ve3.exe -File(170) = ve3100.msk -File(171) = ve3100d.msk -File(172) = ve3100i.msk -File(173) = ve3100r.msk -File(174) = ve3200.msk -File(175) = ve3200x.msk -File(176) = ve3300.msk -File(177) = ve3400.msk -File(178) = ve4.exe -File(179) = ve4100.msk -File(78) = bastabe.msk -File(79) = bastasf.msk -File(80) = bastbnp.msk -File(81) = bastcaa.msk -File(82) = bastcau.msk -File(83) = bastcra.msk -File(84) = bastctr.msk -File(85) = bastfca.msk -File(86) = bastfrm.msk -File(87) = bastgmc.msk -File(88) = bastrfa.msk -File(89) = bastrfc.msk -File(90) = batbabe.msk -File(91) = batbabe.rpt -File(92) = batbasf.msk -File(93) = batbasf.rpt -File(94) = batbbnp.msk -File(95) = batbbnp.rpt -File(96) = batbcaa.msk -File(97) = batbcaa.rpt -File(98) = batbcau.msk -File(99) = batbcau.rpt -Patch = 302 -Versione = 19980102 +File(79) = bastabe.msk +File(80) = bastasf.msk +File(81) = bastbnp.msk +File(82) = bastcaa.msk +File(83) = bastcau.msk +File(84) = bastcra.msk +File(85) = bastctr.msk +File(86) = bastfca.msk +File(87) = bastfrm.msk +File(88) = bastgmc.msk +File(89) = bastprs.msk +File(90) = bastrfa.msk +File(91) = bastrfc.msk +File(92) = batbabe.msk +File(93) = batbabe.rpt +File(94) = batbasf.msk +File(95) = batbasf.rpt +File(96) = batbbnp.msk +File(97) = batbbnp.rpt +File(98) = batbcaa.msk +File(99) = batbcaa.rpt +File(100) = batbcau.msk +File(101) = batbcau.rpt +File(102) = batbcld.msk +File(103) = batbcra.msk +File(104) = batbcra.rpt +File(105) = batbctr.msk +File(106) = batbctr.rpt +File(107) = batbfca.msk +File(108) = batbfrm.msk +File(109) = batbfrm.rpt +File(110) = batbgca.msk +File(111) = batbgmc.msk +File(112) = batbgmc.rpt +File(113) = batbmag.msk +File(114) = batbmag.rpt +File(115) = batbprs.msk +File(116) = batbprs.rpt +File(117) = batbprv.msk +File(118) = batbrfa.msk +File(119) = batbrfa.rpt +File(120) = batbrfc.msk +File(121) = batbrfc.rpt +File(122) = mg0.exe +File(123) = mg0300a.msk +File(124) = pr0.exe +File(125) = pr0500a.msk +File(126) = pr0600a.msk +File(127) = pr1.exe +File(128) = pr1100.msk +File(129) = pr1100a.frm +File(130) = prtbapr.msk +File(131) = recdesc\f122.dir +File(132) = recdesc\f122.trr +File(133) = recdesc\f35.dir +File(134) = recdesc\f35.trr +File(135) = recdesc\f47.dir +File(136) = recdesc\f47.trr +File(137) = recdesc\f48.dir +File(138) = recdesc\f48.trr +File(139) = recdesc\f49.dir +File(140) = recdesc\f49.trr +File(141) = recdesc\f51.dir +File(142) = recdesc\f51.trr +File(143) = recdesc\f52.dir +File(144) = recdesc\f52.trr +File(145) = recdesc\f53.dir +File(146) = recdesc\f53.trr +File(147) = tab_fca.frm +File(148) = ve0.exe|X +File(149) = ve0100a.msk|X +File(150) = ve0100b.msk|X +File(151) = ve0100o.msk +File(152) = ve0200a.msk +File(153) = ve0200b.msk +File(154) = ve0200c.msk +File(155) = ve0200d.msk +File(156) = ve0200e.msk +File(157) = ve0200f.msk +File(158) = ve0300a.ini +File(159) = ve0300b.dat +File(160) = ve0300c.ini +File(161) = ve2.exe +File(162) = ve2100.msk +File(163) = ve2100d.msk +File(164) = ve2100i.msk +File(165) = ve2100r.msk +File(166) = ve2200.msk +File(167) = ve2200x.msk +File(168) = ve2300.msk +File(169) = ve2300x.msk +File(170) = ve2400.msk +File(171) = ve2400a.msk +File(172) = ve2400b.msk +File(173) = ve2400c.msk +File(174) = ve3.exe +File(175) = ve3100.msk +File(176) = ve3100d.msk +File(177) = ve3100i.msk +File(178) = ve3100r.msk +File(179) = ve3200.msk +File(180) = ve3200x.msk +File(181) = ve3300.msk +File(182) = ve3400.msk +File(183) = ve4.exe +File(184) = ve4100.msk +Patch = 81 +Versione = 19980103 + +[mg0] +File(0) = mg00.bmp +File(1) = mgarea.men +Patch = 82 +Versione = 19980103 + +[mg1] +File(2) = bastfcg.msk +File(3) = batbfcg.msk +File(4) = batbgcg.msk +File(5) = batbubi.msk +File(6) = mg01.bmp +File(7) = mg1.exe|X +File(8) = mg1100.msk +File(9) = mg1200.msk +File(10) = mg1400.msk|X +File(11) = mg3.exe +File(12) = mg3100.msk +File(13) = mg3100a.frm +File(14) = mg3100aa.frm +File(15) = mg3100b.frm +File(16) = mg3200.msk +File(17) = mg3200a.frm +File(18) = mg3200b.frm +File(19) = mg3300.msk +File(20) = mg3300a.frm +File(21) = mg3300b.frm +File(22) = mg3400.msk +File(23) = mg3400a.frm +File(24) = mg3400b.frm +File(25) = mg3500.frm +File(26) = mg3500.msk +File(27) = mg4.exe|X +File(28) = mg4100.frm +File(29) = mg4100.msk +File(30) = mg4200.msk|X +File(31) = mg4200a.frm +File(32) = mg4200aa.frm +File(33) = mg4200b.frm +File(34) = mg4300.frm +File(35) = mg4300.msk +File(36) = mgprassi.men +File(37) = tab_fcg.frm +Patch = 82 +Versione = 19980103 + +[mg9] +File(38) = mgprassi.hlp +File(39) = recdesc\f109.dir +File(40) = recdesc\f109.trr +File(41) = recdesc\f110.dir +File(42) = recdesc\f110.trr +File(43) = recdesc\f111.dir +File(44) = recdesc\f111.trr +File(45) = recdesc\f114.dir +File(46) = recdesc\f114.trr +Patch = 82 +Versione = 19980103 + +[or1] +File(0) = or1.exe +File(1) = or1100a.frm +File(2) = or1100a.msk +File(3) = or1100b.frm +File(4) = or1100c.frm +File(5) = or1100d.frm +File(6) = orprassi.men +Patch = 81 +Versione = 19980103