smipl-devel Mailing List for SMIPL (Page 2)
Brought to you by:
the_student
You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(18) |
Aug
(27) |
Sep
(9) |
Oct
(5) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(7) |
Feb
(4) |
Mar
|
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: <the...@us...> - 2009-09-08 19:17:45
|
Revision: 49 http://smipl.svn.sourceforge.net/smipl/?rev=49&view=rev Author: the_student Date: 2009-09-08 19:17:37 +0000 (Tue, 08 Sep 2009) Log Message: ----------- * Switched to entirely new code * Restructured repository Added Paths: ----------- Branches/ Trunk/ Trunk/FSRoot/ Trunk/FSRoot/etc/ Trunk/FSRoot/etc/fstab Trunk/Headers/ Trunk/Headers/Generic/ Trunk/Headers/Generic/LinkedList.h Trunk/Headers/MDS.h Trunk/Headers/Server/ Trunk/Headers/Server/Server.h Trunk/Headers/Server/Servers.h Trunk/Headers/String.h Trunk/Makefile Trunk/Makefile.win Trunk/SMIPL.cpp This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-09-08 19:08:10
|
Revision: 48 http://smipl.svn.sourceforge.net/smipl/?rev=48&view=rev Author: the_student Date: 2009-09-08 19:08:02 +0000 (Tue, 08 Sep 2009) Log Message: ----------- Removed Paths: ------------- Charles/ smipl-42cc-stable/ smipl-demos/ smipl-devel/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-09-07 19:33:50
|
Revision: 47 http://smipl.svn.sourceforge.net/smipl/?rev=47&view=rev Author: the_student Date: 2009-09-07 19:33:33 +0000 (Mon, 07 Sep 2009) Log Message: ----------- Added Paths: ----------- smipl-devel/Branches/50-test2/Headers/ smipl-devel/Branches/50-test2/Headers/Generic/ smipl-devel/Branches/50-test2/Headers/Generic/LinkedList.h smipl-devel/Branches/50-test2/Headers/MDS.h smipl-devel/Branches/50-test2/Headers/Server/ smipl-devel/Branches/50-test2/Headers/Server/Server.h smipl-devel/Branches/50-test2/Headers/String.h smipl-devel/Branches/50-test2/Makefile smipl-devel/Branches/50-test2/Makefile.win smipl-devel/Branches/50-test2/SMIPL.cpp Removed Paths: ------------- smipl-devel/FS/ smipl-devel/international/ smipl-devel/src/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-09-07 18:50:14
|
Revision: 46 http://smipl.svn.sourceforge.net/smipl/?rev=46&view=rev Author: the_student Date: 2009-09-07 18:50:05 +0000 (Mon, 07 Sep 2009) Log Message: ----------- Added Paths: ----------- smipl-devel/Branches/ smipl-devel/Branches/50-test1/ smipl-devel/Branches/50-test1/Design document.rtf smipl-devel/Branches/50-test1/FS.zip smipl-devel/Branches/50-test1/PartList.lst smipl-devel/Branches/50-test2/ Removed Paths: ------------- smipl-devel/Design document.rtf smipl-devel/FS.zip smipl-devel/PartList.lst This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-29 08:29:18
|
Revision: 45 http://smipl.svn.sourceforge.net/smipl/?rev=45&view=rev Author: the_student Date: 2009-08-29 08:29:05 +0000 (Sat, 29 Aug 2009) Log Message: ----------- Tried fixing bug Modified Paths: -------------- smipl-devel/src/Console.h smipl-devel/src/SVM.h Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-28 20:26:40 UTC (rev 44) +++ smipl-devel/src/Console.h 2009-08-29 08:29:05 UTC (rev 45) @@ -4,10 +4,9 @@ if(!using_library)cin.getline(a,length); else {script_file->getline(a,length);if(script_file->eof()){using_script=false;delete script_file;}} } -int a=0; bool Console(int argc, char** argv) { SMIPL_String cmd; - int Lib_start; + int Lib_start,a; char *str, *str2; try{ sys_clearscreen(); @@ -18,6 +17,7 @@ cout<<"? "; getstr(cmd.str, 80); cmd.Split(); + for(a=0;a<cmd.argc;a++) cout<<a<<":"<<cmd.argv[a]<<endl; if(cmd_is("")) continue; if(cmd_is("QUIT")) break; if(cmd_is("EXIT")) break; Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-28 20:26:40 UTC (rev 44) +++ smipl-devel/src/SVM.h 2009-08-29 08:29:05 UTC (rev 45) @@ -9,6 +9,7 @@ SMIPL_String cmd; value_t number,number2; MIDI_Message MIDI_Melding; + int a; void MDS_Get(char* Name, value_t* value) { pthread_mutex_lock(&Admin); @@ -77,14 +78,14 @@ //Flow control if(cmd_is("GOTO")) {if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;}continue;} //Set - if(cmd_is("SET")) {for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);}continue;} + if(cmd_is("SET")) {for(a=1;a<=cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);cout<<":";}continue;} //Basic Arithmetic - if(cmd_is("ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);continue;} - if(cmd_is("SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);continue;} - if(cmd_is("MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);continue;} - if(cmd_is("DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("ADD")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("SUBRACT")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("MULTIPLY")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("DIVIDE")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);continue;} //IO - if(cmd_is("PRINT")) {for(int a=1;a<cmd.argc;a++) {Atof(cmd.argv[a], &number);cout<<cmd.argv[a]<<" = "<<number<<" ";}cout<<endl;continue;} + if(cmd_is("PRINT")) {for(a=1;a<cmd.argc;a++) {Atof(cmd.argv[a], &number);cout<<cmd.argv[a]<<" = "<<number<<" ";}cout<<endl;continue;} if(cmd_is("NEWLINE")){cout<<endl;continue;} //MIDI if(cmd_is("MIDI")) { @@ -102,7 +103,7 @@ Atof(cmd.argv[0],&number); if(number!=0) { Push(Address); - for(int a=1;a<cmd.argc;a++){Atof(cmd.argv[a],&number2);Push(number2);} + for(a=1;a<cmd.argc;a++){Atof(cmd.argv[a],&number2);Push(number2);} Push(cmd.argc-1); Address=(int)number-1; continue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-28 20:26:48
|
Revision: 44 http://smipl.svn.sourceforge.net/smipl/?rev=44&view=rev Author: the_student Date: 2009-08-28 20:26:40 +0000 (Fri, 28 Aug 2009) Log Message: ----------- * Fixed crash under windows Modified Paths: -------------- smipl-devel/src/SVM.h Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-22 14:20:13 UTC (rev 43) +++ smipl-devel/src/SVM.h 2009-08-28 20:26:40 UTC (rev 44) @@ -48,8 +48,8 @@ void*Run(void*); SVM_Thread* Next; - SVM_Thread() { - pthread_mutex_unlock(&Admin); + SVM_Thread() { + Admin=PTHREAD_MUTEX_INITIALIZER; AllowGetGlobal=isVM0=false; JailAddress=NULL; StartAddress=0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-22 14:20:24
|
Revision: 43 http://smipl.svn.sourceforge.net/smipl/?rev=43&view=rev Author: the_student Date: 2009-08-22 14:20:13 +0000 (Sat, 22 Aug 2009) Log Message: ----------- * Fixed linux builds Modified Paths: -------------- smipl-devel/src/Error.h smipl-devel/src/ModuleSystem/modload.cpp smipl-devel/src/SIA/SIASOUND.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SMIPL.cpp smipl-devel/src/SVM.h Modified: smipl-devel/src/Error.h =================================================================== --- smipl-devel/src/Error.h 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/Error.h 2009-08-22 14:20:13 UTC (rev 43) @@ -1,7 +1,7 @@ -char* LastSysError; -char* GetLastSysError() { - return LastSysError; -} -void SetLastSysError(char* err) { - LastSysError=err; -} +char* LastSysError; +char* GetLastSysError() { + return LastSysError; +} +void SetLastSysError(char* err) { + LastSysError=err; +} Modified: smipl-devel/src/ModuleSystem/modload.cpp =================================================================== --- smipl-devel/src/ModuleSystem/modload.cpp 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/ModuleSystem/modload.cpp 2009-08-22 14:20:13 UTC (rev 43) @@ -12,13 +12,13 @@ #ifdef system_is_posix #include <dlfcn.h> -void GetAddress(void* Module, char* funcname, void *func) - *func=(void)*dlsym(handle, funcname); +void GetAddress(void* Module, char* funcname, void *func) { + func=dlsym(Module, funcname); } void OpenModule(char*fn) { char str[255], str2[255]; sprintf(str, "/Library/%s/Address"); sprintf(str2, "%s.so",fn); - MDS_Set(str, (double)*dlopen(fn, RTLD_LAZY)); + MDS_Set(str, *(value_t*)dlopen(fn, RTLD_LAZY)); } #endif Modified: smipl-devel/src/SIA/SIASOUND.h =================================================================== --- smipl-devel/src/SIA/SIASOUND.h 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/SIA/SIASOUND.h 2009-08-22 14:20:13 UTC (rev 43) @@ -15,7 +15,7 @@ void MIDI_Write(MIDI_Message Melding) { pthread_mutex_lock(&SIA_SOUND); if(MIDI_OUT_INITED) { - write(MIDI_Out, Melding.word, sizeof(Melding.word)); + write(MIDI_Out, Melding.data, sizeof(Melding.word)); } pthread_mutex_unlock(&SIA_SOUND); } Modified: smipl-devel/src/SMIPL-header.h =================================================================== --- smipl-devel/src/SMIPL-header.h 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/SMIPL-header.h 2009-08-22 14:20:13 UTC (rev 43) @@ -13,14 +13,15 @@ #include "FS/physfs_stream.cpp" //SMIPL -#define cmd_is(c) !strcasecmp(cmd.argv[0],c) +#define cmd_is(c) !strcasecmp(cmd.argv[0],c) +#define stricmp strcasecmp bool Init(int,char**); bool DeInit(); //SMIPL Basic Services -#include "Config.h" +#include "config.h" #include "String.h" -#include "Log.h" +#include "log.h" #include "Scheduler.h" #include "Error.h" #include "FS/FS.h" Modified: smipl-devel/src/SMIPL.cpp =================================================================== --- smipl-devel/src/SMIPL.cpp 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/SMIPL.cpp 2009-08-22 14:20:13 UTC (rev 43) @@ -1,11 +1,11 @@ -#include "SMIPL-header.h" -int main(int argc, char **argv) { - cout<<"Setting up version globals"<<endl; - MDS_Create("/Global/smipl.version.major",3); - MDS_Create("/Global/smipl.version.minor",50); - MDS_Create("/Global/smipl.version.patch",0); - cout<<"Running init"<<endl; - if(!Init(argc, argv)) {cerr<<"Init error:"<<GetLastSysError()<<endl;for(;;);} - else if(!Console(argc, argv)) {cerr<<"Console error"<<GetLastSysError()<<endl;for(;;);} - if(!DeInit()) {cerr<<"DeInit error:"<<GetLastSysError()<<endl;for(;;);} -} +#include "SMIPL-header.h" +int main(int argc, char **argv) { + cout<<"Setting up version globals"<<endl; + MDS_Create("/Global/smipl.version.major",3); + MDS_Create("/Global/smipl.version.minor",50); + MDS_Create("/Global/smipl.version.patch",0); + cout<<"Running init"<<endl; + if(!Init(argc, argv)) {cerr<<"Init error:"<<GetLastSysError()<<endl;for(;;);} + else if(!Console(argc, argv)) {cerr<<"Console error"<<GetLastSysError()<<endl;for(;;);} + if(!DeInit()) {cerr<<"DeInit error:"<<GetLastSysError()<<endl;for(;;);} +} Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-22 11:30:57 UTC (rev 42) +++ smipl-devel/src/SVM.h 2009-08-22 14:20:13 UTC (rev 43) @@ -9,7 +9,7 @@ SMIPL_String cmd; value_t number,number2; MIDI_Message MIDI_Melding; - + void MDS_Get(char* Name, value_t* value) { pthread_mutex_lock(&Admin); if(JailAddress==NULL) {str1=new char[strlen(Name)+1];strcpy(str1,"/");} @@ -45,15 +45,15 @@ if(*b==0) *b=atof(a); pthread_mutex_unlock(&doatof); } - + void*Run(void*); SVM_Thread* Next; - SVM_Thread() { - Admin=PTHREAD_MUTEX_INITIALIZER; - AllowGetGlobal=isVM0=false; - JailAddress=NULL; - StartAddress=0; - Next=NULL; + SVM_Thread() { + pthread_mutex_unlock(&Admin); + AllowGetGlobal=isVM0=false; + JailAddress=NULL; + StartAddress=0; + Next=NULL; } }VM0; pthread_mutex_t doStartThread=PTHREAD_MUTEX_INITIALIZER; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-22 11:31:12
|
Revision: 42 http://smipl.svn.sourceforge.net/smipl/?rev=42&view=rev Author: the_student Date: 2009-08-22 11:30:57 +0000 (Sat, 22 Aug 2009) Log Message: ----------- * Added Scheduler * Added ModuleSystem * Some bugs fixed Modified Paths: -------------- smipl-devel/src/Console.h smipl-devel/src/Init.h smipl-devel/src/MDS.h smipl-devel/src/SIA/SIA.h smipl-devel/src/SIA/SIASOUND.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SVM.h Added Paths: ----------- smipl-devel/src/ModuleSystem/ smipl-devel/src/ModuleSystem/modload.cpp smipl-devel/src/Scheduler.h smipl-devel/src/log.h Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/Console.h 2009-08-22 11:30:57 UTC (rev 42) @@ -21,7 +21,7 @@ if(cmd_is("")) continue; if(cmd_is("QUIT")) break; if(cmd_is("EXIT")) break; - if(cmd_is("DUMP")) {DumpStack();cout<<endl;DumpMDS();continue;} + if(cmd_is("DUMP")) {DumpStack();cout<<endl;DumpMDS();cout<<endl;DumpSearchPath();cout<<endl;DumpRoot();continue;} if(cmd_is("CATALOG")) { if(cmd.argc==1) Catalog("/"); if(cmd.argc>=2) for(a=1;a<cmd.argc;a++) Catalog(cmd.argv[a]); @@ -32,7 +32,9 @@ for(a=0;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); - if(!stricmp(Program[a], "PROGRAM END")) break; + strcpy(cmd.str,Program[a]); + cmd.Split(); + if((!stricmp(cmd.argv[0],"PROGRAM"))&&(stricmp(cmd.argv[0], "END"))) break; } } continue; @@ -54,9 +56,10 @@ str2=strdup(str, "_START"); MDS_Set(str2, Lib_start); for(a=0;a<=10000;a++) { - cout<<a<<" "; if(library_file->getline(Program[a], 80)==0) {strcpy(Program[a], "PROGRAM END");break;} - if(!stricmp(Program[a], "PROGRAM END")) break; + strcpy(cmd.str,Program[a]); + cmd.Split(); + if((!stricmp(cmd.argv[0],"PROGRAM"))&&(stricmp(cmd.argv[0], "END"))) break; } VM0.Run(&Lib_start); delete[]str2; @@ -111,7 +114,10 @@ a=0; do{ *the_file<<Program[a]<<endl; - }while(strcasecmp(Program[a++], "PROGRAM END")); + strcpy(cmd.str,Program[a]); + cmd.Split(); + a++; + }while((strcasecmp(cmd.argv[0], "PROGRAM"))||(strcasecmp(cmd.argv[0], "END"))); cout<<"OK"<<endl; delete[]str; delete the_file; @@ -132,7 +138,10 @@ a=0; do{ the_file->getline(Program[a], 80); - }while(strcmp(Program[a++], "PROGRAM END")); + strcpy(cmd.str,Program[a]); + cmd.Split(); + a++; + }while((strcasecmp(cmd.argv[0], "PROGRAM"))||(strcasecmp(cmd.argv[0], "END"))); cout<<"OK"<<endl; } else cout<<"FAIL"<<endl; Modified: smipl-devel/src/Init.h =================================================================== --- smipl-devel/src/Init.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/Init.h 2009-08-22 11:30:57 UTC (rev 42) @@ -1,53 +1,54 @@ +void LateInit(void*) { + MDS_Set("/Global/com.smipl.version.major", 3); + MDS_Set("/Global/com.smipl.version.minor", 50); + MDS_Set("/Global/com.smipl.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.mds.version.major", 2); + MDS_Set("/Global/com.smipl.mds.version.minor", 0); + MDS_Set("/Global/com.smipl.mds.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.sia.version.major", 2); + MDS_Set("/Global/com.smipl.sia.version.minor", 0); + MDS_Set("/Global/com.smipl.sia.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.siasound.version.major", 2); + MDS_Set("/Global/com.smipl.siasound.version.minor", 0); + MDS_Set("/Global/com.smipl.siasound.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.fs.version.major", 2); + MDS_Set("/Global/com.smipl.fs.version.minor", 0); + MDS_Set("/Global/com.smipl.fs.version.patchlevel", 0); + MDS_Set("/Global/compiler.isGCC", false); + #ifdef __GNUC__ + MDS_Set("/Global/compiler.isGCC", true); + MDS_Set("/Global/compiler.version.major", __GNUC__); + MDS_Set("/Global/compiler.version.minor", __GNUC_MINOR__); + MDS_Set("/Global/compiler.version.patchlevel",__GNUC_PATCHLEVEL__); + #endif + MDS_Set("/Global/com.smipl.sia.sound.midi.enable",false); + MDS_Set("/Global/com.smipl.sia.sound.midi.inited",false); + #ifdef EnableMIDI + MDS_Set("/Global/com.smipl.sia.sound.midi.enable",true); + #endif + #ifdef AutoInitMIDI + MIDI_Init(); + #endif +} bool Init(int argc, char **argv) { try{ - SetLastSysError(""); - strcpy(Program[0],"PROGRAM END"); - VM0.isVM0=true; - VM0.JailAddress=strdup("/VM0/"); - cout<<"Initializing PhysicsFS"<<endl; - if(!PHYSFS_init(argv[0])) {SetLastSysError((char*)PHYSFS_getLastError());return false;} - cout<<"Initializing FileSystem Structure"<<endl; - if(!FS_init())return false; - - cout<<"Initializing version globals"<<endl; - MDS_Set("/Global/com.smipl.version.major", 3); - MDS_Set("/Global/com.smipl.version.minor", 50); - MDS_Set("/Global/com.smipl.version.patchlevel", 0); - MDS_Set("/Global/com.smipl.mds.version.major", 2); - MDS_Set("/Global/com.smipl.mds.version.minor", 0); - MDS_Set("/Global/com.smipl.mds.version.patchlevel", 0); - MDS_Set("/Global/com.smipl.sia.version.major", 2); - MDS_Set("/Global/com.smipl.sia.version.minor", 0); - MDS_Set("/Global/com.smipl.sia.version.patchlevel", 0); - MDS_Set("/Global/com.smipl.siasound.version.major", 2); - MDS_Set("/Global/com.smipl.siasound.version.minor", 0); - MDS_Set("/Global/com.smipl.siasound.version.patchlevel", 0); - MDS_Set("/Global/com.smipl.fs.version.major", 2); - MDS_Set("/Global/com.smipl.fs.version.minor", 0); - MDS_Set("/Global/com.smipl.fs.version.patchlevel", 0); - - cout<<"Initializing compile-time globals"<<endl; - MDS_Set("/Global/compiler.isGCC", false); - #ifdef __GNUC__ - MDS_Set("/Global/compiler.isGCC", true); - MDS_Set("/Global/compiler.version.major", __GNUC__); - MDS_Set("/Global/compiler.version.minor", __GNUC_MINOR__); - MDS_Set("/Global/compiler.version.patchlevel",__GNUC_PATCHLEVEL__); - #endif - - cout<<"Initing SIASOUND"<<endl; - MDS_Set("/Global/com.smipl.sia.sound.midi.enable",false); - MDS_Set("/Global/com.smipl.sia.sound.midi.inited",false); - #ifdef EnableMIDI - MDS_Set("/Global/com.smipl.sia.sound.midi.enable",true); - #endif - #ifdef AutoInitMIDI - MIDI_Init(); - #endif - } + SetLastSysError(""); + strcpy(Program[0],"PROGRAM END"); + VM0.isVM0=true; + VM0.JailAddress=strdup("/VM0/"); + cout<<"Initializing PhysicsFS"<<endl; + if(!PHYSFS_init(argv[0])) {SetLastSysError((char*)PHYSFS_getLastError());return false;} + cout<<"Initializing FileSystem Structure"<<endl; + if(!FS_init())return false; + #ifndef SMIPL_TaskScheduler + LateInit(NULL); + #else + AddTask(LateInit, NULL, 0); + pthread_create(&Scheduler_task, NULL, Scheduler, NULL); + #endif + } catch(...) {SetLastSysError("EXCEPTION");return false;} - - return true; + return true; } bool DeInit() { if(!PHYSFS_deinit()){SetLastSysError((char*)PHYSFS_getLastError());return false;} Modified: smipl-devel/src/MDS.h =================================================================== --- smipl-devel/src/MDS.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/MDS.h 2009-08-22 11:30:57 UTC (rev 42) @@ -57,7 +57,7 @@ cout<<"DUMPING MDS..."<<endl; MDS_Piece *current=MDS_0.Next; while(current!=NULL) { - cout<<"\""<<current->Name<<"\":"<<current->Value<<endl; + cout<<"\""<<current->Name<<"\" = "<<current->Value<<endl; current=current->Next; } pthread_mutex_unlock(&MDS); Added: smipl-devel/src/ModuleSystem/modload.cpp =================================================================== --- smipl-devel/src/ModuleSystem/modload.cpp (rev 0) +++ smipl-devel/src/ModuleSystem/modload.cpp 2009-08-22 11:30:57 UTC (rev 42) @@ -0,0 +1,24 @@ +#ifdef system_is_ms_windows +void GetAddress(void* Module, char* funcname, void *func) { + func=(void*)GetProcAddress((HMODULE)Module, (LPSTR)funcname); +} +void OpenModule(char *fn) { + char str[255], str2[255]; + sprintf(str, "/Library/%s/Address"); + sprintf(str2, "%s.dll",fn); + MDS_Set(str, *(value_t*)LoadLibrary(str2)); +} +#endif + +#ifdef system_is_posix +#include <dlfcn.h> +void GetAddress(void* Module, char* funcname, void *func) + *func=(void)*dlsym(handle, funcname); +} +void OpenModule(char*fn) { + char str[255], str2[255]; + sprintf(str, "/Library/%s/Address"); + sprintf(str2, "%s.so",fn); + MDS_Set(str, (double)*dlopen(fn, RTLD_LAZY)); +} +#endif Modified: smipl-devel/src/SIA/SIA.h =================================================================== --- smipl-devel/src/SIA/SIA.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/SIA/SIA.h 2009-08-22 11:30:57 UTC (rev 42) @@ -4,6 +4,7 @@ void sys_sleep(int time) {usleep(time);} void sys_clearscreen(){system("clear");} #endif + #ifdef system_is_ms_windows #include <windows.h> void sys_sleep(int time) {Sleep(time);} Modified: smipl-devel/src/SIA/SIASOUND.h =================================================================== --- smipl-devel/src/SIA/SIASOUND.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/SIA/SIASOUND.h 2009-08-22 11:30:57 UTC (rev 42) @@ -26,7 +26,7 @@ void MIDI_Init() { pthread_mutex_lock(&SIA_SOUND); if (midiOutOpen(&MIDI_Out, 0, 0, 0, CALLBACK_NULL) != MMSYSERR_NOERROR) { - printf("Error opening MIDI Output.\n"); + LogWrite("SIASOUND","Error opening MIDI Output"); goto end; } MIDI_OUT_INITED=true; @@ -38,7 +38,7 @@ pthread_mutex_lock(&SIA_SOUND); if(MIDI_OUT_INITED) { if(midiOutShortMsg(MIDI_Out, Melding.word) != MMSYSERR_NOERROR) { - cout<<"MIDI ERROR"<<endl; + LogWrite("SIASOUND", "MIDI ERROR"); } } pthread_mutex_unlock(&SIA_SOUND); Modified: smipl-devel/src/SMIPL-header.h =================================================================== --- smipl-devel/src/SMIPL-header.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/SMIPL-header.h 2009-08-22 11:30:57 UTC (rev 42) @@ -1,8 +1,8 @@ //C libraries -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <math.h> +#include <cstdio> +#include <cstdlib> +#include <cstring> +#include <cmath> //IO streams #include <iostream> #include <fstream> @@ -11,19 +11,29 @@ #include <pthread.h> #include <physfs.h> #include "FS/physfs_stream.cpp" -//SMIPL Core systems + +//SMIPL #define cmd_is(c) !strcasecmp(cmd.argv[0],c) bool Init(int,char**); bool DeInit(); + +//SMIPL Basic Services #include "Config.h" #include "String.h" +#include "Log.h" +#include "Scheduler.h" +#include "Error.h" +#include "FS/FS.h" #include "MDS.h" + +//SMIPL Extended Services #include "SIA/SIA.h" #include "SIA/SIASOUND.h" -#include "Error.h" -#include "FS/FS.h" //SMIPL UI #include "SVM.h" #include "Console.h" + +//SMIPL ModuleLoading +#include "ModuleSystem/modload.cpp" //SMIPL Init #include "Init.h" Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-16 19:29:42 UTC (rev 41) +++ smipl-devel/src/SVM.h 2009-08-22 11:30:57 UTC (rev 42) @@ -88,7 +88,7 @@ if(cmd_is("NEWLINE")){cout<<endl;continue;} //MIDI if(cmd_is("MIDI")) { - if(!MIDI_OUT_INITED){MIDI_Init();if(!MIDI_OUT_INITED) cout<<"MIDI FAILURE\n";} + if(!MIDI_OUT_INITED){MIDI_Init();if(!MIDI_OUT_INITED) LogWrite("SVM","Unable to initialize MIDI");} MIDI_Melding.data[0] = 0x90; // MIDI note-on message (requires to data bytes) MIDI_Melding.data[1] = 60; // MIDI note-on message: Key number (60 = middle C) MIDI_Melding.data[2] = 100; // MIDI note-on message: Key velocity (100 = loud) @@ -108,6 +108,6 @@ continue; } cout<<"Unknown "<<cmd.argv[0]<<endl; - break; + break; } } Added: smipl-devel/src/Scheduler.h =================================================================== --- smipl-devel/src/Scheduler.h (rev 0) +++ smipl-devel/src/Scheduler.h 2009-08-22 11:30:57 UTC (rev 42) @@ -0,0 +1,50 @@ +pthread_t Scheduler_task; +struct Task{ + void (*func)(void*); + void*arg; + clock_t scheduled_at; + Task* Next; + Task() {scheduled_at=0;Next=NULL;arg=NULL;} + Task(void (func)(void*), void* arg, clock_t at) { + this->func=func; + scheduled_at=at; + this->arg=arg; + Next=NULL; + } +}Task_0; +Task *LastTask() { + Task *Current=&Task_0; + while(Current->Next!=NULL) Current=Current->Next; + return Current; +} +void AddTask(void (*func)(void*), void *args, clock_t scheduled_in) { + LastTask()->Next=new Task(func, args, scheduled_in+clock()); +} +void RemoveTask(Task* removethis) { + Task *Current=&Task_0, *Previous=&Task_0; + while(Current!=removethis) { + Previous=Current; + Current=Current->Next; + } + Previous->Next=Current->Next; + delete Current; +} +void* Scheduler(void*) { + clock_t current_clock; + for(;;) { + current_clock=clock(); + Task* Current=&Task_0; + while(1) { + Task*Next=Current->Next; + if(Current!=&Task_0) { + if(Current->scheduled_at<=current_clock) { + Current->func(Current->arg); + RemoveTask(Current); + } + + } + if(Next!=NULL) Current=Next; + else break; + } + } +} Added: smipl-devel/src/log.h =================================================================== --- smipl-devel/src/log.h (rev 0) +++ smipl-devel/src/log.h 2009-08-22 11:30:57 UTC (rev 42) @@ -0,0 +1 @@ +void LogWrite(char*,char*){ }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-16 19:29:50
|
Revision: 41 http://smipl.svn.sourceforge.net/smipl/?rev=41&view=rev Author: the_student Date: 2009-08-16 19:29:42 +0000 (Sun, 16 Aug 2009) Log Message: ----------- * Changed Splash * Updated FS.zip * Removed unnecessary lines in PartList.lst * Various bug fixes * Some minor UI changes * Added PHYSFS_setSaneConfig to FS_init, programs are now saved, and (if possible), loaded from userdir/.smipl/smipl * Recovered most of SVM's functionality. Modified Paths: -------------- smipl-devel/FS/Console/Splash smipl-devel/FS.zip smipl-devel/PartList.lst smipl-devel/src/Console.h smipl-devel/src/FS/FS.h smipl-devel/src/Init.h smipl-devel/src/SIA/SIASOUND.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SVM.h smipl-devel/src/String.h smipl-devel/src/config.h Modified: smipl-devel/FS/Console/Splash =================================================================== --- smipl-devel/FS/Console/Splash 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/FS/Console/Splash 2009-08-16 19:29:42 UTC (rev 41) @@ -1,4 +1 @@ -SMIPL 50cc - - SMIPLYFY Your life - -PRESS ENTER TO START \ No newline at end of file +SMIPL 50cc - Beta \ No newline at end of file Modified: smipl-devel/FS.zip =================================================================== (Binary files differ) Modified: smipl-devel/PartList.lst =================================================================== --- smipl-devel/PartList.lst 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/PartList.lst 2009-08-16 19:29:42 UTC (rev 41) @@ -1,6 +1 @@ -FS.zip -FS/About /About -FS/Console /Console -FS/Help /Help -FS/Script /Script -FS/Library /Library +FS.zip \ No newline at end of file Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/Console.h 2009-08-16 19:29:42 UTC (rev 41) @@ -4,29 +4,32 @@ if(!using_library)cin.getline(a,length); else {script_file->getline(a,length);if(script_file->eof()){using_script=false;delete script_file;}} } - +int a=0; bool Console(int argc, char** argv) { SMIPL_String cmd; int Lib_start; char *str, *str2; + try{ + sys_clearscreen(); PrintFile("/Console/Splash"); for(;;) { - for(int a=0;a<=10;a++) strcpy(cmd.argv[0], ""); + for(a=0;a<=10;a++) strcpy(cmd.argv[0], ""); + cout<<endl; cout<<"? "; getstr(cmd.str, 80); cmd.Split(); if(cmd_is("")) continue; if(cmd_is("QUIT")) break; if(cmd_is("EXIT")) break; - if(cmd_is("DUMP")) {DumpStack();DumpMDS();continue;} + if(cmd_is("DUMP")) {DumpStack();cout<<endl;DumpMDS();continue;} if(cmd_is("CATALOG")) { if(cmd.argc==1) Catalog("/"); - if(cmd.argc>=2) for(int a=1;a<cmd.argc;a++) Catalog(cmd.argv[a]); + if(cmd.argc>=2) for(a=1;a<cmd.argc;a++) Catalog(cmd.argv[a]); continue;} if(cmd_is("RUN")) {VM0.Run(0);continue;} if(cmd_is("PROGRAM")) { if(!stricmp(cmd.argv[1], "START")) { - for(int a=0;a<=10000;a++) { + for(a=0;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); if(!stricmp(Program[a], "PROGRAM END")) break; @@ -50,7 +53,7 @@ delete[]str2; str2=strdup(str, "_START"); MDS_Set(str2, Lib_start); - for(int a=0;a<=10000;a++) { + for(a=0;a<=10000;a++) { cout<<a<<" "; if(library_file->getline(Program[a], 80)==0) {strcpy(Program[a], "PROGRAM END");break;} if(!stricmp(Program[a], "PROGRAM END")) break; @@ -76,7 +79,8 @@ } if(cmd_is("ABOUT")) { if(cmd.argc==1) PrintFile("/About/About"); - if(cmd.argc==2) for(int a=1;a<cmd.argc;a++) { + if(cmd.argc==2) for(a=1;a<cmd.argc;a++) { + strtoupper(cmd.argv[a]); str=strdup("/About/",cmd.argv[a]); PrintFile(str); delete[]str; @@ -85,17 +89,64 @@ } if(cmd_is("HELP")) { if(cmd.argc==1) PrintFile("/Help/Help"); - if(cmd.argc==2) for(int a=1;a<cmd.argc;a++) { + if(cmd.argc==2) for(a=1;a<cmd.argc;a++) { + strtoupper(cmd.argv[a]); str=strdup("/Help/",cmd.argv[a]); PrintFile(str); delete[]str; } continue; } + try{ + if(cmd_is("SAVE")) { + str=new char[80]; + if(cmd.argc==1) { + cout<<"Filename: "; + getstr(str, 80); + } + else strcpy(str,cmd.argv[1]); + OFileStream *the_file=new OFileStream(str); + *the_file<<"SMIPL PROGRAM"<<endl; + cout<<"SAVING... "; + a=0; + do{ + *the_file<<Program[a]<<endl; + }while(strcasecmp(Program[a++], "PROGRAM END")); + cout<<"OK"<<endl; + delete[]str; + delete the_file; + continue; + } + if(cmd_is("LOAD")) { + str=new char[80]; + if(cmd.argc==1) { + cout<<"Filename: "; + getstr(str, 80); + } + else strcpy(str,cmd.argv[1]); + cout<<"LOADING... "; + IFileStream *the_file=new IFileStream(str); + str2=new char[80]; + the_file->getline(str2,80); + if(!strcmp(str2,"SMIPL PROGRAM")) { + a=0; + do{ + the_file->getline(Program[a], 80); + }while(strcmp(Program[a++], "PROGRAM END")); + cout<<"OK"<<endl; + } + else cout<<"FAIL"<<endl; + delete str; + delete str2; + delete the_file; + continue; + } + } + catch(std::runtime_error a) {cout<<a.what()<<endl;continue;} if(isdigit(cmd.argv[0][0])) { if(cmd.argc==1) { Lib_start=(int)atof(cmd.argv[0]); - for(int a=Lib_start;a<=10000;a++) { + for(a=Lib_start;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); if(!stricmp(Program[a], "PROGRAM END")) break; @@ -104,5 +155,8 @@ } cout<<"HOW DO I "<<cmd.str<<"?"<<endl; } + } + catch(std::runtime_error a) {cout<<a.what()<<endl;return false;} + catch(...) {cout<<"GENERIC ERROR CAUGHT IN CONSOLE"<<endl;} return true; } Modified: smipl-devel/src/FS/FS.h =================================================================== --- smipl-devel/src/FS/FS.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/FS/FS.h 2009-08-16 19:29:42 UTC (rev 41) @@ -40,20 +40,21 @@ char* str; if(PHYSFS_exists(FileName)) { if(!PHYSFS_isDirectory(FileName)) { - sys_clearscreen(); PHYSFS_file *thefile=PHYSFS_openRead(FileName); - str=new char[PHYSFS_fileLength(thefile)/sizeof(char)]; - PHYSFS_read (thefile, str, 1, PHYSFS_fileLength(thefile)); + str=new char[PHYSFS_fileLength(thefile)]; + PHYSFS_read (thefile, str, sizeof(char), PHYSFS_fileLength(thefile)); + cout<<str<<endl; delete[]str; } } else cout<<"\""<<FileName<<"\": not found"<<endl; - pthread_mutex_unlock(&FS); + pthread_mutex_unlock(&FS); } bool FS_init() { SMIPL_String Part; + PHYSFS_setSaneConfig("SMIPL","SMIPL",NULL, 0, 0); fstream PartList("partlist.lst"); if(PartList.is_open()) { while(!PartList.eof()){ Modified: smipl-devel/src/Init.h =================================================================== --- smipl-devel/src/Init.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/Init.h 2009-08-16 19:29:42 UTC (rev 41) @@ -8,6 +8,42 @@ if(!PHYSFS_init(argv[0])) {SetLastSysError((char*)PHYSFS_getLastError());return false;} cout<<"Initializing FileSystem Structure"<<endl; if(!FS_init())return false; + + cout<<"Initializing version globals"<<endl; + MDS_Set("/Global/com.smipl.version.major", 3); + MDS_Set("/Global/com.smipl.version.minor", 50); + MDS_Set("/Global/com.smipl.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.mds.version.major", 2); + MDS_Set("/Global/com.smipl.mds.version.minor", 0); + MDS_Set("/Global/com.smipl.mds.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.sia.version.major", 2); + MDS_Set("/Global/com.smipl.sia.version.minor", 0); + MDS_Set("/Global/com.smipl.sia.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.siasound.version.major", 2); + MDS_Set("/Global/com.smipl.siasound.version.minor", 0); + MDS_Set("/Global/com.smipl.siasound.version.patchlevel", 0); + MDS_Set("/Global/com.smipl.fs.version.major", 2); + MDS_Set("/Global/com.smipl.fs.version.minor", 0); + MDS_Set("/Global/com.smipl.fs.version.patchlevel", 0); + + cout<<"Initializing compile-time globals"<<endl; + MDS_Set("/Global/compiler.isGCC", false); + #ifdef __GNUC__ + MDS_Set("/Global/compiler.isGCC", true); + MDS_Set("/Global/compiler.version.major", __GNUC__); + MDS_Set("/Global/compiler.version.minor", __GNUC_MINOR__); + MDS_Set("/Global/compiler.version.patchlevel",__GNUC_PATCHLEVEL__); + #endif + + cout<<"Initing SIASOUND"<<endl; + MDS_Set("/Global/com.smipl.sia.sound.midi.enable",false); + MDS_Set("/Global/com.smipl.sia.sound.midi.inited",false); + #ifdef EnableMIDI + MDS_Set("/Global/com.smipl.sia.sound.midi.enable",true); + #endif + #ifdef AutoInitMIDI + MIDI_Init(); + #endif } catch(...) {SetLastSysError("EXCEPTION");return false;} Modified: smipl-devel/src/SIA/SIASOUND.h =================================================================== --- smipl-devel/src/SIA/SIASOUND.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/SIA/SIASOUND.h 2009-08-16 19:29:42 UTC (rev 41) @@ -8,6 +8,7 @@ pthread_mutex_lock(&SIA_SOUND); if(MIDI_Out=open("/dev/midi",O_WRONLY,0)<0) goto End; MIDI_OUT_INITED=true; + MDS_Set("/Global/com.smipl.sia.sound.midi.inited",true); End: pthread_mutex_unlock(&SIA_SOUND); } @@ -29,6 +30,7 @@ goto end; } MIDI_OUT_INITED=true; + MDS_Set("/Global/com.smipl.sia.sound.midi.inited",true); end: pthread_mutex_unlock(&SIA_SOUND); } Modified: smipl-devel/src/SMIPL-header.h =================================================================== --- smipl-devel/src/SMIPL-header.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/SMIPL-header.h 2009-08-16 19:29:42 UTC (rev 41) @@ -17,10 +17,10 @@ bool DeInit(); #include "Config.h" #include "String.h" +#include "MDS.h" #include "SIA/SIA.h" #include "SIA/SIASOUND.h" #include "Error.h" -#include "MDS.h" #include "FS/FS.h" //SMIPL UI #include "SVM.h" Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/SVM.h 2009-08-16 19:29:42 UTC (rev 41) @@ -1,9 +1,10 @@ char Program[100000][80]; +#define MaxSteps 1000000 struct SVM_Thread{ pthread_t ID; bool AllowGetGlobal,isVM0; char *JailAddress,*str1,*str2; - int StartAddress,Address; + int StartAddress,Address,Steps; pthread_mutex_t Admin; SMIPL_String cmd; value_t number,number2; @@ -68,28 +69,23 @@ ID=pthread_self(); pthread_mutex_unlock(&Admin); MDS_Set("Stack/P", -1); - for(;(Address>100000)&&(Address>0);Address++) { + for(Steps=MaxSteps;(Address>100000)&&(Address>0)&&(Steps>0);Address++) { strcpy(cmd.str,Program[Address]); cmd.Split(); if(cmd_is("STOP")) break; if(!strcasecmp(cmd.str,"PROGRAM END")) break; //Flow control - if(cmd_is("GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} + if(cmd_is("GOTO")) {if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;}continue;} //Set - if(cmd_is("SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} + if(cmd_is("SET")) {for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);}continue;} //Basic Arithmetic - if(cmd_is("ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} - if(cmd_is("SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} - if(cmd_is("MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} - if(cmd_is("DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} - //Trig - if(cmd_is("ROOT")) for(int a=1;a<cmd.argc;a++){Atof(cmd.argv[a], &number);number=sqrt(number);MDS_Set(cmd.argv[a], number);} - if(cmd_is("LOG")) ; - if(cmd_is("POWER")); - + if(cmd_is("ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);continue;} + if(cmd_is("DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);continue;} //IO - if(cmd_is("PRINT")) {for(int a=1;a<cmd.argc;a++) {Atof(cmd.argv[a], &number);cout<<cmd.argv[a]<<" = "<<number<<" ";}cout<<endl;} - if(cmd_is("NEWLINE"))cout<<endl; + if(cmd_is("PRINT")) {for(int a=1;a<cmd.argc;a++) {Atof(cmd.argv[a], &number);cout<<cmd.argv[a]<<" = "<<number<<" ";}cout<<endl;continue;} + if(cmd_is("NEWLINE")){cout<<endl;continue;} //MIDI if(cmd_is("MIDI")) { if(!MIDI_OUT_INITED){MIDI_Init();if(!MIDI_OUT_INITED) cout<<"MIDI FAILURE\n";} @@ -101,8 +97,17 @@ if(cmd.argc==3) {Atof(cmd.argv[1], &number);MIDI_Melding.data[1]=(int)number;Atof(cmd.argv[2], &number);MIDI_Melding.data[2]=number;} if(cmd.argc>=4) {Atof(cmd.argv[1], &number);MIDI_Melding.data[0]=number;Atof(cmd.argv[2], &number);MIDI_Melding.data[1]=number;Atof(cmd.argv[3], &number);MIDI_Melding.data[3]=number;} MIDI_Write(MIDI_Melding); + continue; } - - if(Address<0) break; + Atof(cmd.argv[0],&number); + if(number!=0) { + Push(Address); + for(int a=1;a<cmd.argc;a++){Atof(cmd.argv[a],&number2);Push(number2);} + Push(cmd.argc-1); + Address=(int)number-1; + continue; + } + cout<<"Unknown "<<cmd.argv[0]<<endl; + break; } } Modified: smipl-devel/src/String.h =================================================================== --- smipl-devel/src/String.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/String.h 2009-08-16 19:29:42 UTC (rev 41) @@ -1,11 +1,13 @@ pthread_mutex_t do_split=PTHREAD_MUTEX_INITIALIZER; -pthread_mutex_t do_strdup=PTHREAD_MUTEX_INITIALIZER; char *strdup(char *a, char* b) { char* str=new char[strlen(a)+strlen(b)]; strcpy(str,a); strcat(str,b); return str; } +void strtoupper(char*b) { + for(int a=0;b[a]!='\0';a++)b[a]=toupper(b[a]); +} bool isDelim(char a, bool disallow_spaces=true, bool disallow_comparison=true) { if(disallow_spaces)if(a==' ') return true; if(a=='\n') return true; Modified: smipl-devel/src/config.h =================================================================== --- smipl-devel/src/config.h 2009-08-15 20:27:45 UTC (rev 40) +++ smipl-devel/src/config.h 2009-08-16 19:29:42 UTC (rev 41) @@ -12,3 +12,9 @@ #ifdef DARWIN //Darwin (Darwin, OSX) #define system_is_posix //Darwin is POSIX #endif //#ifdef DARWIN + +#define SMIPL_Version "SMIPL 3.50.0 Beta" + +#ifdef EnableMIDI +#define AutoInitMIDI +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-15 20:27:57
|
Revision: 40 http://smipl.svn.sourceforge.net/smipl/?rev=40&view=rev Author: the_student Date: 2009-08-15 20:27:45 +0000 (Sat, 15 Aug 2009) Log Message: ----------- * Fixed bug in strdup(char*,char*) * Fixed bug PrintFile * Fixed Console not Splashing Modified Paths: -------------- smipl-devel/src/Console.h smipl-devel/src/FS/FS.h smipl-devel/src/String.h Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-15 19:37:23 UTC (rev 39) +++ smipl-devel/src/Console.h 2009-08-15 20:27:45 UTC (rev 40) @@ -9,6 +9,7 @@ SMIPL_String cmd; int Lib_start; char *str, *str2; + PrintFile("/Console/Splash"); for(;;) { for(int a=0;a<=10;a++) strcpy(cmd.argv[0], ""); cout<<"? "; Modified: smipl-devel/src/FS/FS.h =================================================================== --- smipl-devel/src/FS/FS.h 2009-08-15 19:37:23 UTC (rev 39) +++ smipl-devel/src/FS/FS.h 2009-08-15 20:27:45 UTC (rev 40) @@ -40,18 +40,11 @@ char* str; if(PHYSFS_exists(FileName)) { if(!PHYSFS_isDirectory(FileName)) { - IFileStream *thefile=new IFileStream(FileName); - str=new char[80]; - int c=0; - while(!thefile->eof()){ - thefile->getline(str, 80); - cout<<str; - c++; - if(c==24) {cin.get();sys_clearscreen();c=0;} - } - cout<<endl<<endl; - delete[]str; - delete thefile; + sys_clearscreen(); + PHYSFS_file *thefile=PHYSFS_openRead(FileName); + str=new char[PHYSFS_fileLength(thefile)/sizeof(char)]; + PHYSFS_read (thefile, str, 1, PHYSFS_fileLength(thefile)); + delete[]str; } } else cout<<"\""<<FileName<<"\": not found"<<endl; Modified: smipl-devel/src/String.h =================================================================== --- smipl-devel/src/String.h 2009-08-15 19:37:23 UTC (rev 39) +++ smipl-devel/src/String.h 2009-08-15 20:27:45 UTC (rev 40) @@ -3,7 +3,7 @@ char *strdup(char *a, char* b) { char* str=new char[strlen(a)+strlen(b)]; strcpy(str,a); - strcat(str,a); + strcat(str,b); return str; } bool isDelim(char a, bool disallow_spaces=true, bool disallow_comparison=true) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-15 19:37:32
|
Revision: 39 http://smipl.svn.sourceforge.net/smipl/?rev=39&view=rev Author: the_student Date: 2009-08-15 19:37:23 +0000 (Sat, 15 Aug 2009) Log Message: ----------- * Started internationalizing. * Added MIDI, PRINT, and POWER. Modified Paths: -------------- smipl-devel/src/Console.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SVM.h Added Paths: ----------- smipl-devel/international/ smipl-devel/international/NO-nb/ smipl-devel/international/NO-nb/About/ smipl-devel/international/NO-nb/Help/ Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-15 18:55:10 UTC (rev 38) +++ smipl-devel/src/Console.h 2009-08-15 19:37:23 UTC (rev 39) @@ -1,5 +1,3 @@ -#define cmd_is(c) !strcasecmp(command.argv[0],c) - bool using_script=false, using_library=false; IFileStream *library_file, *script_file; void getstr(char *a,int length) { @@ -8,25 +6,25 @@ } bool Console(int argc, char** argv) { - SMIPL_String command; + SMIPL_String cmd; int Lib_start; char *str, *str2; for(;;) { - for(int a=0;a<=10;a++) strcpy(command.argv[0], ""); + for(int a=0;a<=10;a++) strcpy(cmd.argv[0], ""); cout<<"? "; - getstr(command.str, 80); - command.Split(); + getstr(cmd.str, 80); + cmd.Split(); if(cmd_is("")) continue; if(cmd_is("QUIT")) break; if(cmd_is("EXIT")) break; if(cmd_is("DUMP")) {DumpStack();DumpMDS();continue;} if(cmd_is("CATALOG")) { - if(command.argc==1) Catalog("/"); - if(command.argc>=2) for(int a=1;a<command.argc;a++) Catalog(command.argv[a]); + if(cmd.argc==1) Catalog("/"); + if(cmd.argc>=2) for(int a=1;a<cmd.argc;a++) Catalog(cmd.argv[a]); continue;} if(cmd_is("RUN")) {VM0.Run(0);continue;} if(cmd_is("PROGRAM")) { - if(!stricmp(command.argv[1], "START")) { + if(!stricmp(cmd.argv[1], "START")) { for(int a=0;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); @@ -76,26 +74,26 @@ continue; } if(cmd_is("ABOUT")) { - if(command.argc==1) PrintFile("/About/About"); - if(command.argc==2) for(int a=1;a<command.argc;a++) { - str=strdup("/About/",command.argv[a]); + if(cmd.argc==1) PrintFile("/About/About"); + if(cmd.argc==2) for(int a=1;a<cmd.argc;a++) { + str=strdup("/About/",cmd.argv[a]); PrintFile(str); delete[]str; } continue; } if(cmd_is("HELP")) { - if(command.argc==1) PrintFile("/Help/Help"); - if(command.argc==2) for(int a=1;a<command.argc;a++) { - str=strdup("/Help/",command.argv[a]); + if(cmd.argc==1) PrintFile("/Help/Help"); + if(cmd.argc==2) for(int a=1;a<cmd.argc;a++) { + str=strdup("/Help/",cmd.argv[a]); PrintFile(str); delete[]str; } continue; } - if(isdigit(command.argv[0][0])) { - if(command.argc==1) { - Lib_start=(int)atof(command.argv[0]); + if(isdigit(cmd.argv[0][0])) { + if(cmd.argc==1) { + Lib_start=(int)atof(cmd.argv[0]); for(int a=Lib_start;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); @@ -103,7 +101,7 @@ } } } - cout<<"HOW DO I "<<command.str<<"?"<<endl; + cout<<"HOW DO I "<<cmd.str<<"?"<<endl; } return true; } Modified: smipl-devel/src/SMIPL-header.h =================================================================== --- smipl-devel/src/SMIPL-header.h 2009-08-15 18:55:10 UTC (rev 38) +++ smipl-devel/src/SMIPL-header.h 2009-08-15 19:37:23 UTC (rev 39) @@ -12,6 +12,7 @@ #include <physfs.h> #include "FS/physfs_stream.cpp" //SMIPL Core systems +#define cmd_is(c) !strcasecmp(cmd.argv[0],c) bool Init(int,char**); bool DeInit(); #include "Config.h" Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-15 18:55:10 UTC (rev 38) +++ smipl-devel/src/SVM.h 2009-08-15 19:37:23 UTC (rev 39) @@ -7,6 +7,7 @@ pthread_mutex_t Admin; SMIPL_String cmd; value_t number,number2; + MIDI_Message MIDI_Melding; void MDS_Get(char* Name, value_t* value) { pthread_mutex_lock(&Admin); @@ -67,21 +68,41 @@ ID=pthread_self(); pthread_mutex_unlock(&Admin); MDS_Set("Stack/P", -1); - while(1) { + for(;(Address>100000)&&(Address>0);Address++) { strcpy(cmd.str,Program[Address]); cmd.Split(); - if(!strcasecmp(cmd.argv[0],"STOP")) break; + if(cmd_is("STOP")) break; if(!strcasecmp(cmd.str,"PROGRAM END")) break; - if(!strcasecmp(cmd.argv[0],"GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} - if(!strcasecmp(cmd.argv[0],"SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} - if(!strcasecmp(cmd.argv[0],"ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} - if(!strcasecmp(cmd.argv[0],"SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} - if(!strcasecmp(cmd.argv[0],"MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} - if(!strcasecmp(cmd.argv[0],"DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} + //Flow control + if(cmd_is("GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} + //Set + if(cmd_is("SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} + //Basic Arithmetic + if(cmd_is("ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} + if(cmd_is("SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} + if(cmd_is("MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} + if(cmd_is("DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} + //Trig + if(cmd_is("ROOT")) for(int a=1;a<cmd.argc;a++){Atof(cmd.argv[a], &number);number=sqrt(number);MDS_Set(cmd.argv[a], number);} + if(cmd_is("LOG")) ; + if(cmd_is("POWER")); + //IO + if(cmd_is("PRINT")) {for(int a=1;a<cmd.argc;a++) {Atof(cmd.argv[a], &number);cout<<cmd.argv[a]<<" = "<<number<<" ";}cout<<endl;} + if(cmd_is("NEWLINE"))cout<<endl; + //MIDI + if(cmd_is("MIDI")) { + if(!MIDI_OUT_INITED){MIDI_Init();if(!MIDI_OUT_INITED) cout<<"MIDI FAILURE\n";} + MIDI_Melding.data[0] = 0x90; // MIDI note-on message (requires to data bytes) + MIDI_Melding.data[1] = 60; // MIDI note-on message: Key number (60 = middle C) + MIDI_Melding.data[2] = 100; // MIDI note-on message: Key velocity (100 = loud) + MIDI_Melding.data[3] = 0; // Unused parameter + if(cmd.argc==2) {Atof(cmd.argv[1], &number);MIDI_Melding.data[1]=(int)number;} + if(cmd.argc==3) {Atof(cmd.argv[1], &number);MIDI_Melding.data[1]=(int)number;Atof(cmd.argv[2], &number);MIDI_Melding.data[2]=number;} + if(cmd.argc>=4) {Atof(cmd.argv[1], &number);MIDI_Melding.data[0]=number;Atof(cmd.argv[2], &number);MIDI_Melding.data[1]=number;Atof(cmd.argv[3], &number);MIDI_Melding.data[3]=number;} + MIDI_Write(MIDI_Melding); + } - Address++; - if(Address>100000) break; if(Address<0) break; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-15 18:55:17
|
Revision: 38 http://smipl.svn.sourceforge.net/smipl/?rev=38&view=rev Author: the_student Date: 2009-08-15 18:55:10 +0000 (Sat, 15 Aug 2009) Log Message: ----------- * Modified FS_init to enable use of PHYSFS_mount, instead of PHYSFS_addToSearchPath. * You can now mount, for example documentation in an alternative language by adding the lines "international/NO-nb/Help /Help", and "international/NO-nb/About /About" without the quotes, which would replace the original files in /About and /Help, without mounting everything in international/NO-nb/. * Updated FS.zip Modified Paths: -------------- smipl-devel/FS.zip smipl-devel/PartList.lst smipl-devel/src/FS/FS.h Added Paths: ----------- smipl-devel/FS/Library/ Modified: smipl-devel/FS.zip =================================================================== (Binary files differ) Modified: smipl-devel/PartList.lst =================================================================== --- smipl-devel/PartList.lst 2009-08-10 14:52:48 UTC (rev 37) +++ smipl-devel/PartList.lst 2009-08-15 18:55:10 UTC (rev 38) @@ -1 +1,6 @@ -FS.zip \ No newline at end of file +FS.zip +FS/About /About +FS/Console /Console +FS/Help /Help +FS/Script /Script +FS/Library /Library Modified: smipl-devel/src/FS/FS.h =================================================================== --- smipl-devel/src/FS/FS.h 2009-08-10 14:52:48 UTC (rev 37) +++ smipl-devel/src/FS/FS.h 2009-08-15 18:55:10 UTC (rev 38) @@ -60,15 +60,22 @@ bool FS_init() { - char Name[255]; + SMIPL_String Part; fstream PartList("partlist.lst"); if(PartList.is_open()) { while(!PartList.eof()){ - PartList.getline(Name,255); - if(strlen(Name)==0) continue; - cout<<"Loading "<<Name<<" - "; - if(!PHYSFS_addToSearchPath(Name,0)) {SetLastSysError((char*)PHYSFS_getLastError());return false;} + PartList.getline(Part.str,255); + if(strlen(Part.str)==0) continue; + cout<<"Loading "<<Part.str<<" - "; + Part.Split(); + if(Part.argc==1) { + if(!PHYSFS_mount(Part.argv[0], "/", 0)) {SetLastSysError((char*)PHYSFS_getLastError());return false;} else cout<<"OK"<<endl; + } + else { + if(!PHYSFS_mount(Part.argv[0], Part.argv[1], 0)) {SetLastSysError((char*)PHYSFS_getLastError());return false;} + else cout<<"OK"<<endl; + } } PartList.close(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-10 14:52:58
|
Revision: 37 http://smipl.svn.sourceforge.net/smipl/?rev=37&view=rev Author: the_student Date: 2009-08-10 14:52:48 +0000 (Mon, 10 Aug 2009) Log Message: ----------- Removed non-standard stricmps Modified Paths: -------------- smipl-devel/src/Console.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SMIPL.cpp smipl-devel/src/SVM.h Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-10 11:55:00 UTC (rev 36) +++ smipl-devel/src/Console.h 2009-08-10 14:52:48 UTC (rev 37) @@ -1,4 +1,4 @@ -#define cmd_is(c) !stricmp(command.argv[0],c) +#define cmd_is(c) !strcasecmp(command.argv[0],c) bool using_script=false, using_library=false; IFileStream *library_file, *script_file; @@ -51,14 +51,12 @@ delete[]str2; str2=strdup(str, "_START"); MDS_Set(str2, Lib_start); - if(!stricmp(command.argv[1], "START")) { - for(int a=0;a<=10000;a++) { - cout<<a<<" "; - if(library_file->getline(Program[a], 80)==0) {strcpy(Program[a], "PROGRAM END");break;} - if(!stricmp(Program[a], "PROGRAM END")) break; - } - VM0.Run(&Lib_start); + for(int a=0;a<=10000;a++) { + cout<<a<<" "; + if(library_file->getline(Program[a], 80)==0) {strcpy(Program[a], "PROGRAM END");break;} + if(!stricmp(Program[a], "PROGRAM END")) break; } + VM0.Run(&Lib_start); delete[]str2; delete library_file; continue; @@ -97,8 +95,8 @@ } if(isdigit(command.argv[0][0])) { if(command.argc==1) { - lib_start=atof(command.argv[0]); - for(int a=lib_start;a<=10000;a++) { + Lib_start=(int)atof(command.argv[0]); + for(int a=Lib_start;a<=10000;a++) { cout<<a<<" "; getstr(Program[a], 80); if(!stricmp(Program[a], "PROGRAM END")) break; Modified: smipl-devel/src/SMIPL-header.h =================================================================== --- smipl-devel/src/SMIPL-header.h 2009-08-10 11:55:00 UTC (rev 36) +++ smipl-devel/src/SMIPL-header.h 2009-08-10 14:52:48 UTC (rev 37) @@ -1,8 +1,8 @@ //C libraries -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <cmath> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <math.h> //IO streams #include <iostream> #include <fstream> Modified: smipl-devel/src/SMIPL.cpp =================================================================== --- smipl-devel/src/SMIPL.cpp 2009-08-10 11:55:00 UTC (rev 36) +++ smipl-devel/src/SMIPL.cpp 2009-08-10 14:52:48 UTC (rev 37) @@ -2,7 +2,7 @@ int main(int argc, char **argv) { cout<<"Setting up version globals"<<endl; MDS_Create("/Global/smipl.version.major",3); - MDS_Create("/Global/smipl.version.minor",0); + MDS_Create("/Global/smipl.version.minor",50); MDS_Create("/Global/smipl.version.patch",0); cout<<"Running init"<<endl; if(!Init(argc, argv)) {cerr<<"Init error:"<<GetLastSysError()<<endl;for(;;);} Modified: smipl-devel/src/SVM.h =================================================================== --- smipl-devel/src/SVM.h 2009-08-10 11:55:00 UTC (rev 36) +++ smipl-devel/src/SVM.h 2009-08-10 14:52:48 UTC (rev 37) @@ -70,14 +70,14 @@ while(1) { strcpy(cmd.str,Program[Address]); cmd.Split(); - if(!stricmp(cmd.argv[0],"STOP")) break; - if(!stricmp(cmd.str,"PROGRAM END")) break; - if(!stricmp(cmd.argv[0],"GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} - if(!stricmp(cmd.argv[0],"SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} - if(!stricmp(cmd.argv[0],"ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} + if(!strcasecmp(cmd.argv[0],"STOP")) break; + if(!strcasecmp(cmd.str,"PROGRAM END")) break; + if(!strcasecmp(cmd.argv[0],"GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} + if(!strcasecmp(cmd.argv[0],"SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} + if(!strcasecmp(cmd.argv[0],"ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} + if(!strcasecmp(cmd.argv[0],"SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} + if(!strcasecmp(cmd.argv[0],"MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} + if(!strcasecmp(cmd.argv[0],"DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} Address++; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-10 11:55:07
|
Revision: 36 http://smipl.svn.sourceforge.net/smipl/?rev=36&view=rev Author: the_student Date: 2009-08-10 11:55:00 +0000 (Mon, 10 Aug 2009) Log Message: ----------- re-Added line editing Removed binaries Modified Paths: -------------- smipl-devel/FS/About/MOZILLA smipl-devel/FS.zip smipl-devel/src/Console.h Removed Paths: ------------- smipl-devel/SMIPL.exe smipl-devel/libphysfs.dll smipl-devel/src/SMIPL.exe Modified: smipl-devel/FS/About/MOZILLA =================================================================== --- smipl-devel/FS/About/MOZILLA 2009-08-10 11:29:24 UTC (rev 35) +++ smipl-devel/FS/About/MOZILLA 2009-08-10 11:55:00 UTC (rev 36) @@ -1,4 +1,153 @@ -Mammon slept. And the beast reborn spread over the earth and its numbers grew legion. And they proclaimed the times and sacrificed crops unto the fire, with the cunning of foxes. And they built a new world in their own image as promised by the sacred words, and spoke of the beast with their children. Mammon awoke, and lo! it was naught but a follower. +Extracts from The Book of Mozilla -from The Book of Mozilla, 11:9 -(10th Edition) +1:0 Mozilla Rules! + +The Book of Mozilla + +1:7b And so the beast became agile. The unbelievers fell silent and the followers of Mammon were left behind. The beast had been improved and awaited the release of the great FireFox. + +The Book of Mozilla (Red Letter Edition) + +2:9 The great bird circled to the ground, landing amidst the rude burning huts of the unbelievers, and assumed the shape of a fox. The fox spoke clearly and luringly, giving the unbelievers a present in shape of their unholy containers. The unbelievers heeded the cunning beast, carrying the present to their places of worship, only to note the box contained an even more luring present. + +The Book of Mozilla + +3:20 Then the Lizard brought forth a minion that bore the number of four. And the minion served the Sorcerer well. But some said it had grown too fat. +(21) Many years came to pass, and the Blue One made more Explorers of the Web. And one of them he fixed atop the Sorcerer's desktop; So that no man would go seek the Lizard. And the plan worketh well. +(22) And the Lizard grew worried and weakened from that and only few turned their eyes toward the old Lizard and remained true to his heritage. +(23) And the Big One, that bears the Sign of Trinity, took over the Lizard to make him do his own bidding, since the Lizard was weak and worried. +(24) But the Lizard did not grieve long and opened up his Book of Secrets. So friends of the Lizard could make their own minions out of the Book. +(25) And the Lizard gave birth to a New Lizard to look after the Open Book. And Mozilla was the name of the New Lizard as it was whispered among those who were enlightened. +(26) There was much rejoycing as people greeted the New Lizard and people people did feast upon the lambs, and sloths, and carp, and anchovies, and orangutans, and breakfast cereals, and fruit bats and large toothpaste tubes and pigeons. But of lizards they did not feast upon. +(27) A year came to pass, and the ones close to the Lizard saw a new minion as it grew from the Book. +(28) But alas; For the Book had been kept in bad places, and it was full of locusts. +(29) And the New Lizard did grew angry and said that the Old Book was cursed and threw it far. And the weak minion did perish. +(30) The New Lizard took out a book that was new and blank all over and spake that Lizard shall give birth to a new beast. And that five shall be the number of the beast. + +The Book of Mozilla + +3:31 And the beast shall be made legion. Its numbers shall be increased a thousand thousand fold. The din of a million keyboards like unto a great storm shall cover the earth, and the followers of Mammon shall tremble. + +The Book of Mozilla (Red Letter Edition) + +3:32 But the true lord of the beast shall remain a little lizard they did name the Gecko. The beast shall change skins and he shall be wowen out of the fabric of the Mighty Web itself. And Zool shall follow in the tracks of the beast. And the ones that have remained true to the Lizard shall see the fiery sea of glass glistening with lit windows bearing its mark. + +The Book of Mozilla + +6:37 And the fat beast shall be made whale like. Its numbers shall viscously ooze unto the web. The din of a trillion calories like unto a great hail of putrid blubber shall plague the earth, and the followers of Mammon shall laugh. + +The Book of Mozilla Blubber (Yellowish White Whale Letter Edition) + +7:5.77 And out of the darkness, a savior shall come forth. All those that oppose will be cleansed from the Earth in a terrible rain of fire and thunder... + +The Book of Mozilla + +7:15 And they watched as the beast cast off its chains, and with a terrible roar, burst forth and slew those who had bound it. And for days the rivers ran red with their lifeblood. + +The Book of Mozilla + +7:15 And so at last the beast fell and the unbelievers rejoiced. But all was not lost, for from the ash rose a great bird. The bird gazed down upon the unbelievers and cast fire and thunder upon them. For the beast had been reborn with its strength renewed, and the followers of Mammon cowered in horror. + +The Book of Mozilla (Red Letter Edition) + +The followers of Mammon breathed with relief as the great Bird of Fire disappeared, but did not see until the smoke cleared that in its place stood a Fox prepared to vanquish Mammon with its own fire and claws and teeth. With the Bird of Thunder watching from above, it went forward to the halls of Mammon. + +The Book of Mozilla + +7:24 An enormous sigh of relief resounds throughout all of Mozillaland. Sounds of rejoicing are heard from all corners of the Earth. "They have conquered the beast!" the voices cry. And the dimensions remain constant 'till the end of days. + +The Book of Mozilla + +8:2 And, lo, from the darkness they emerged: a host of the faithful to aide the reborn beast in its quest to reclaim the land. Together they extended the power of the beast and spread the good news of its return. One by one the followers of Mammon were converted and their hearts were set aflame. + +(Apocryphal Fragment awaiting verification and link) + +8:4 The followers despaired as the great bird, its mind destroyed by the Pragma, the followers of Mammon, collapsed to the ground, its fire dampened, its very life extinguished. Then the followers gasped as the bird began to change, its form warping, moving and shifting. Until the bird that so many had cherished and worshipped was gone. Instead there was a mighty fox, its red fur burning with the great fire that the followers remembered. The Pragma looked on in horror as the fox rose to its feet and raised its head, its eyes burning with Power, and the followers rejoiced in happiness. For the Fire Bird was gone, but the Fire Fox had replaced it. + +The Book of Mozilla 8:4-10 + +8:10 Lo, the bird of fire was magnificent! But a roiling storm was brewing to the south, and dark clouds loomed on the horizon. The bird knew a grim conflict was close at hand and that it could not triumph in its current form. It sat very still, contemplating the situation. Suddenly, in a flash of light and flame, the bird took the form of a great fox the likes of which had never been seen in this land. The dark clouds were scattered to the wind. And all who witnessed this spectacle were awed by its power. + +The Book of Mozilla + +8:11 And Mammon, in his darkness, saw a great bird land. Frightened and cold in his heart he watched as the fire ran like a fox over the land of men. For the fox was a descendant of the great Beast and it absorbed Mammon's power. + +The Book of Mozilla 8:11-12 + +8:12 And there was a great commotion among the believers and nonbelievers alike, for they saw a great fox of fire and knew not its true nature. But just then a faithful believer extended his hand, and offered a gift to the fiery fox. And the fox was enabled to show its true nature as an ever-changing being, and it turned into a great oyster of power. And the oyster opened its shell, revealing a dazzling pearl to all who would look upon it. + +The Book of Mozilla - Extended Edition + +8:14 And though the Bird came unto its own, its own did not receive it. Instead they drove the Bird away with a mighty din of wails and gnashing of teeth. At this the followers of Mammon did delight, for it is written: +The great shall bend to the small, for two with one name can not abide together. +The delight of the unbelievers did turn to despair, for the Bird was more clever than other creatures and, having the heart of a Phoenix, it renewed itself once again. Taking the very form of cleverness, the Fox laid its plans, for it had surveyed the domain of Mammon from on high and would return again in victory. + +The Book of Mozilla 8:14-18 + +8:20And thus the Creator looked upon the beast reborn and saw that it was good. + +The Book of Mozilla 8:20 + +8:21 Then, tired of exploring, the followers of Mammon didst rest. And lo, from the depths of the bird cameth a mighty fox. And casting even fire the beast didst smote eighty of every hundred unbelievers. Yet even now, its strength was not complete, its time had not yet come. + +The Book of Mozilla 8:21-24 + +8:23 The elementals fought and sent back the armies of Mammon to the inner world. The scribe ended the inspired parchments, letting the believers cry over that new view on Earth. Long after the thunder and the fire, came the sun and finally the long awaited rainbow... + +The Book of Mozilla 8:23 + +8:27 And then there was a great commotion among the believers and nonbelievers alike, for they saw a great Fox of fire and knew not its true nature. But just then a faithful believer extended his hand, and offered a gift to the great Fox. And the Fox was enabled to show his true nature as an ever-changing being, and he turned into a great Oyster of Power. And the Oyster opened its shell, revealing a dazzling pearl to all who would look upon it. + +The Book of Mozilla 8:27-30 + +9:2 And should thou wish to escape the burden of thy frames And should thou wish to grant this escape to thy readers Then reach forth thy hand and create a third frame in which Thou must place two links. + +These links, of a written and clickable nature, shalt say [View Index Alone] and [View Page without Index] or other words of wisdom great and context sure. + +and each shall call a JavaScript function. And each function shall call a location. And this location shall be recovered from the frames. + +And the target, great and mighty, alone in its power to direct the course of man and web broswser, this target you shall call _TOP + +And it is written in the book of Mozilla that thou shalt include the height and width attributes for all gifs in thy pagse + +The Book of Mozilla + +And it is written in the book of Mozilla that thou shalt include the height and width attributes for all gifs in thy pages for all the days of thy life. The days as well as the nights. And he reached out his hand and lo! the page worked the first time. + +The Book of Mozilla + +11:1 And when the Beast had taken the quarter of the Earth under its rule, a quarter hundred Birds of Sulfur flew from the Depths. The birds crossed hundreds of mountain views and found twenty four wise men who came from the stars. And then it began, the believers dared to listen. Then, they took their pens and dared to create. Finally, they dared to share their deed with the whole of mankind. Spreading words of freedom and breaking the chains, the birds brought deliverance to everyone. + +(Apocryphal Fragment awaiting verification and link) + +11:9 Mammon slept. And the beast reborn spread over the earth and its numbers grew legion. And they proclaimed the times and sacrificed crops unto the fire, with the cunning of foxes. And they built a new world in their own image as promised by the sacred words, and spoke of the beast with their children. Mammon awoke, and lo! it was naught but a follower. + +The Book of Mozilla 11:9 (10th Edition) + +12:10 And the beast shall come forth surrounded by a roiling cloud of vengeance. The house of the unbelievers shall be razed and they shall be scorched to the earth. Their tags shall blink until the end of days. + +The Book of Mozilla + +27:14 And the Lizard spake, saying, Windows shall I support, and Macintosh, and the divers flavours of Unix; yea, even unto the latest effluvium from the Gates of Hell shall I spread my seed: this it pleaseth me to do. +(15) But OS/2 shall I ignore, for in sooth nobody useth it. +(16) Then was the land filled with the sound of much wailing and gnashing of teeth, for millions of people used OS/2 and knew that it was good. Yet the Lizard did harden his heart against them, and said, Nay, there is no demand for it. +(17) And the Blue One did create an Explorer of the Web, yet updated it slowly, and documented it poorly, and it was filled with a plague of locusts. +(18) And those that followed the Lizard became enamoured of Frames, and wrote pages which could not be read by the Lizard's brethren, for the lemmings were lazy, saying only: Verily, thy browser doth suck. Thou may'st obtain the Lizard's hence. +(19) Then it came to pass that the Blue One made a pact with the Lizard, that the Lizard should work its artifice for the sake of the Ancient Sorcerer. And a reference to the Lizard's wares was placed atop the Sorcerer's desk, that he might obtain it whenever he desired. +(20) But the number of the work the Lizard gave unto the Sorcerer was Two, and the Greek sigil Beta was affixed to the number, yet all the rest of the Lizard's minions were given the number Three. +(21) And lo, the Lizard's work was itself filled with locusts, and verily did it consume the Sorcerer's disk space whenever it was used, and it did mightily crash his system full oft. +(22) And the Lizard named several of the locusts, and regarding one the Lizard said, The <blink> tag worketh not. Whereupon the users hearing this were sore amazed, and said they one unto another, Verily, that is no bug, but a feature to be highly praised while it lasteth. + +The Book of Mozilla (King Kong Authorised Version) + +70:1 But Followers of Ian lamented, seeing the new splendor of the Bird, "Verily, others saw the birth of the Bird weeks ago, but it hath not yet been Released to the Realm of the Brave. Why it must be so? Is Brother Dorland asleep?" +(2) With mocking tones, the Gentoos replied, "Foolish Ianites, the bird truly did emerge from the ash, and flies fast above our skies; cast away thy rotten boat and clogged lawnmower, renounce thy aptitude and synoptic gospels." +(3) The next day, the Ianites replied, "Never mind, we suspect the Bird collided to the mirror and made it shatter into myriad pieces. We shall put the pieces together, even when it may take the whole night." +(4) Everyone else ignored the Gentoos anyway, for their ears ached after the Assault at Slanted Point. +(5) And the followers of Mammon said, "Huh? Did anyone understood what the heck they were saying? Me neither." + +The Book of Mozilla 70:1-5 + +78:2 And from the Sun came forth a magnificent Bird, the offspring of the Lizzard, and it followed its brethen the Fox and the Thunder. The unbelievers Outlooked down upon the Bird and once again shunned the offspring of the Lizard. But the followers of the Lizzard rejoiced on the new offspring and clamored, It's about time. + +(Apocryphal Fragment awaiting verification and link) Modified: smipl-devel/FS.zip =================================================================== (Binary files differ) Deleted: smipl-devel/SMIPL.exe =================================================================== (Binary files differ) Deleted: smipl-devel/libphysfs.dll =================================================================== (Binary files differ) Modified: smipl-devel/src/Console.h =================================================================== --- smipl-devel/src/Console.h 2009-08-10 11:29:24 UTC (rev 35) +++ smipl-devel/src/Console.h 2009-08-10 11:55:00 UTC (rev 36) @@ -77,6 +77,34 @@ delete[]str2; continue; } + if(cmd_is("ABOUT")) { + if(command.argc==1) PrintFile("/About/About"); + if(command.argc==2) for(int a=1;a<command.argc;a++) { + str=strdup("/About/",command.argv[a]); + PrintFile(str); + delete[]str; + } + continue; + } + if(cmd_is("HELP")) { + if(command.argc==1) PrintFile("/Help/Help"); + if(command.argc==2) for(int a=1;a<command.argc;a++) { + str=strdup("/Help/",command.argv[a]); + PrintFile(str); + delete[]str; + } + continue; + } + if(isdigit(command.argv[0][0])) { + if(command.argc==1) { + lib_start=atof(command.argv[0]); + for(int a=lib_start;a<=10000;a++) { + cout<<a<<" "; + getstr(Program[a], 80); + if(!stricmp(Program[a], "PROGRAM END")) break; + } + } + } cout<<"HOW DO I "<<command.str<<"?"<<endl; } return true; Deleted: smipl-devel/src/SMIPL.exe =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-10 11:29:34
|
Revision: 35 http://smipl.svn.sourceforge.net/smipl/?rev=35&view=rev Author: the_student Date: 2009-08-10 11:29:24 +0000 (Mon, 10 Aug 2009) Log Message: ----------- Fixed all Added Paths: ----------- smipl-devel/Design document.rtf smipl-devel/FS/ smipl-devel/FS/About/ smipl-devel/FS/About/About smipl-devel/FS/About/LICENSING smipl-devel/FS/About/MOZILLA smipl-devel/FS/About/SHARING smipl-devel/FS/Console/ smipl-devel/FS/Console/Splash smipl-devel/FS/Help/ smipl-devel/FS/Help/Help smipl-devel/FS/Help/ME smipl-devel/FS/Script/ smipl-devel/FS/Script/Auto smipl-devel/FS.zip smipl-devel/PartList.lst smipl-devel/SMIPL.exe smipl-devel/libphysfs.dll smipl-devel/src/ smipl-devel/src/Console.h smipl-devel/src/Error.h smipl-devel/src/FS/ smipl-devel/src/FS/FS.h smipl-devel/src/FS/physfs_stream.cpp smipl-devel/src/FS/physfs_stream.hpp smipl-devel/src/Init.h smipl-devel/src/MDS.h smipl-devel/src/SIA/ smipl-devel/src/SIA/SIA.h smipl-devel/src/SIA/SIASOUND.h smipl-devel/src/SMIPL-header.h smipl-devel/src/SMIPL.cpp smipl-devel/src/SMIPL.exe smipl-devel/src/SVM.h smipl-devel/src/String.h smipl-devel/src/config.h Added: smipl-devel/Design document.rtf =================================================================== --- smipl-devel/Design document.rtf (rev 0) +++ smipl-devel/Design document.rtf 2009-08-10 11:29:24 UTC (rev 35) @@ -0,0 +1,173 @@ +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1044\deflangfe1044\themelang1044\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} +{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} +{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;} +{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;} +{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22\lang1044\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 \snext0 \sqformat \spriority0 \styrsid16326907 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 \snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{ +\s15\ql \li0\ri0\sa200\sl360\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs24\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 +\sbasedon0 \snext15 \slink16 \sqformat \spriority0 \styrsid8734358 Skole oppgaver;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fs24 \sbasedon10 \slink15 \slocked \spriority0 \styrsid8734358 Skole oppgaver Tegn;}}{\*\rsidtbl \rsid1459910 +\rsid3355339\rsid6102557\rsid6818599\rsid7751057\rsid8734358\rsid9511180\rsid12322588\rsid13581978\rsid14248534\rsid16326907\rsid16461033\rsid16719760}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1 +\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Martin Sundhaug}{\operator Martin Sundhaug}{\creatim\yr2009\mo7\dy31\hr12\min32}{\revtim\yr2009\mo7\dy31\hr12\min44}{\version1}{\edmins12}{\nofpages1}{\nofwords61}{\nofchars326}{\nofcharsws386} +{\vern32771}{\*\saveprevpict}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417\gutter0\ltrsect +\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0 +\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 +\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct +\asianbrkrule\rsidroot16461033\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 +{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16326907\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}} +{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}} +{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9 +\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 +\f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid14248534 Init}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ():}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid7751057\charrsid7751057 \tab \tab Sets up the programming e}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid7751057 nvironment, clears errors, }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid3355339 and sets up physfs, and file system structure.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid9511180 Outputs comments on functions executed, and checks return value. If any errors }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 are }{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid9511180 detect}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 ed, }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid1459910\charrsid1459910 SetLastSysError} +{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 is called with an }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid12322588 suitable error message.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid7751057 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid14248534 MDS_Create}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ():}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid13581978 \tab }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid13581978\charrsid13581978 creates a new }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 o}{ +\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557\charrsid13581978 bject }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 of}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid13581978 type }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid13581978\charrsid14248534 MDS_Piece}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid16719760 +with specified name and }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 value, and adds it, using }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid6102557\charrsid14248534 MDS_Add}{\rtlch\fcs1 +\af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ()}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 , to the MDS.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 +\lang1033\langfe1033\langnp1033\insrsid16326907 +\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557\charrsid13581978 +\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8 +72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7 +2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b +44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7 +065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000 +00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08 +84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc +52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353 +bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468 +656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c +070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7 +29e245eb2b260a0238fd010000ffff0300504b030414000600080000002100dcaae620950600004f1b0000160000007468656d652f7468656d652f7468656d65 +312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b48d346b15bd4e37877bc3bcdecce6a669cd437d41e9190100571a012370e08a8d44a5c +caaf09144191fa1778676677bd13af49d24650417d48bcb3cffbfd31ef8caf5ebb1f33744884a43c697bf5cb350f91c4e7014dc2b6777bd8bfb4e621a9701260 +c613d2f6a6447ad736de7fef2a5e5711890902fa44aee3b6172995ae2f2d491f96b1bccc5392c0bb31173156f028c2a540e023e01bb3a5e55a6d7529c634f150 +8263607b6b3ca63eb9a480d4dbc879f718084894d40b3e1303cd993804061b1cd435424e659709748859db0331013f1a92fbca430c4b052fda5ecd7cbca58dab +4b783d23626a016d89ae6f3e195d46101c2c1b99221c1542ebfd46ebca56c1df00989ac7f57abd6eaf5ef03300ecfb60a9d5a5ccb3d15fab77729e2590fd3acf +bb5b6bd61a2ebec47f654ee756a7d369b6325d2c5303b25f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1e4 +600ead03daef67dc0bc898b3ed4af81ac0d76a197c86826c28b24b8b18f3442dcab518dfe3a20f000d6458d104a9694ac6d88724eee2782428d602f03ac1a537 +76c997734b5a1692bea0a96a7b1fa6180a62c6efd5f3ef5f3d7f8a8e1f3c3b7ef0d3f1c387c70f7eb48c1caa6d9c8465aa97df7ef6e7e38fd11f4fbf79f9e88b +6abc2ce37ffde1935f7efebc1a08e53353e7c5974f7e7bf6e4c5579ffefedda30af8a6c0a3327c486322d14d7284f6790c8619afb89a9391381fc530c2b44cb1 +99841227584ba9e0df539183be39c52c8b8ea34787b81ebc23a07d5401af4fee390a0f223151b442f24e143bc05dce59878b4a2fec685925370f2749582d5c4c +cab87d8c0fab647771e2c4b73749a16fe669e918de8d88a3e61ec389c221498842fa1d3f20a4c2babb943a7edda5bee0928f15ba4b5107d34a970ce9c8c9a619 +d1368d212ed32a9b21de8e6f76efa00e6755566f9143170955815985f243c21c375ec71385e32a96431cb3b2c36f6015552939980abf8ceb4905910e09e3a817 +1029ab686e09b0b714f41d0c1dab32ecbb6c1abb48a1e84115cf1b98f332728b1f74231ca755d8014da232f6037900298ad11e5755f05dee56887e8638e06461 +b8ef50e284fbf46e709b868e4ab304d16f2642c7125ab5d381639afc5d3b6614fab1cd818b6bc7d0005f7cfdb822b3ded646bc097b5255256c9f68bf8b70279b +6e978b80befd3d770b4f923d02693ebff1bc6bb9ef5aaef79f6fb98beaf9ac8d76d65ba1edeab9c10ec566448e174ec863cad8404d19b921cd902c619f08fab0 +a8e9cce1901427a63482af595f7770a1c0860609ae3ea22a1a44388501bbee6926a1cc588712a55cc2c1ce2c57f2d67818d2953d1636f581c1f60389d52e0fec +f28a5ececf05051bb3db84e6f0990b5ad10cce2a6ce54ac614cc7e1d6175add499a5d58d6aa6d539d20a932186f3a6c162e14d1840108c2de0e555389e6bd170 +30c18c04daef76efcdc362a270912192110e4816236df77c8cea264879ae989b00c89d8a18e943de295e2b496b69b66f20ed2c412a8b6b2c109747ef4da29467 +f02c4aba6e4f94234bcac5c91274d4f65acde5a6877c9cb6bd319c69e16b9c42d4a59ef9300be15ec857c2a6fda9c56caa7c16cd566e985b0475b8a6b07e9f33 +d8e903a9906a0bcbc8a6867995a5004bb424abff7213dc7a5106d84c7f0d2d56d62019fe352dc08f6e68c9784c7c550e766945fbce3e66ad944f141183283842 +233611fb18c2af5315ec09a884ab09d311f403dca3696f9b576e73ce8aae7c7b6570761db334c259bbd5259a57b2859b3a2e74304f25f5c0b64add8d71e737c5 +94fc0599524ee3ff99297a3f819b82954047c0875b5c8191aed7b6c7858a3874a134a27e5fc0e0607a07640bdcc5c26b482ab84b36ff0539d4ff6dcd591ea6ac +e1c0a7f669880485fd484582903d684b26fb4e6156cff62ecb92658c4c4695d495a9557b440e091bea1eb8aaf7760f4590eaa69b646dc0e04ee69ffb9c55d028 +d4434eb9de9c1e52ecbdb606fee9c9c7163318e5f66133d0e4fe2f54acd8552dbd21cff7deb221fac56ccc6ae45501c24a5b412b2bfbd754e19c5baded587316 +2f3773e5208af316c3623110a570df83f41fd8ffa8f0193169ac37d421df87de8ae08706cd0cd206b2fa921d3c906e9076710483935db4c9a45959d766a393f6 +5abe595ff0a45bc83de16cadd959e27d4e6717c3992bcea9c58b7476e661c7d7766da1ab21b2274b1496c6f941c604c6fca255fed5898fee41a0b7e07e7fc294 +34c904bf29090ca3e7c0d40114bf95684837fe020000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468 +656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451 +eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e319872 +0e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2 +c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c020000130000000000000000000000000000 +0000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000 +2b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000014020000746865 +6d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100dcaae620950600004f1b00001600000000000000000000 +000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000 +000000000000009a0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000950a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; +\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; +\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; +\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000006061 +3fd3cb11ca01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file Added: smipl-devel/FS/About/About =================================================================== --- smipl-devel/FS/About/About (rev 0) +++ smipl-devel/FS/About/About 2009-08-10 11:29:24 UTC (rev 35) @@ -0,0 +1,2 @@ +SMIPL-50cc +3.0.0 Added: smipl-devel/FS/About/LICENSING =================================================================== --- smipl-devel/FS/About/LICENSING (rev 0) +++ smipl-devel/FS/About/LICENSING 2009-08-10 11:29:24 UTC (rev 35) @@ -0,0 +1,225 @@ +GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright \xA9 2007 Free Software Foundation, Inc. <http://fsf.org/> + +Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. +Preamble + +The GNU General Public License is a free, copyleft license for software and other kinds of works. + +The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. + +Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. +TERMS AND CONDITIONS +0. Definitions. + +\x93This License\x94 refers to version 3 of the GNU General Public License. + +\x93Copyright\x94 also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. + +\x93The Program\x94 refers to any copyrightable work licensed under this License. Each licensee is addressed as \x93you\x94. \x93Licensees\x94 and \x93recipients\x94 may be individuals or organizations. + +To \x93modify\x94 a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a \x93modified version\x94 of the earlier work or a work \x93based on\x94 the earlier work. + +A \x93covered work\x94 means either the unmodified Program or a work based on the Program. + +To \x93propagate\x94 a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. + +To \x93convey\x94 a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. + +An interactive user interface displays \x93Appropriate Legal Notices\x94 to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. +1. Source Code. + +The \x93source code\x94 for a work means the preferred form of the work for making modifications to it. \x93Object code\x94 means any non-source form of a work. + +A \x93Standard Interface\x94 means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. + +The \x93System Libraries\x94 of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A \x93Major Component\x94, in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. + +The \x93Corresponding Source\x94 for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. +2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. +3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. +4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. +5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: + + * a) The work must carry prominent notices stating that you modified it, and giving a relevant date. + * b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to \x93keep intact all notices\x94. + * c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. + * d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an \x93aggregate\x94 if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. +6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: + + * a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. + * b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. + * c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. + * d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. + * e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. + +A \x93User Product\x94 is either (1) a \x93consumer product\x94, which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, \x93normally used\x94 refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. + +\x93Installation Information\x94 for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. +7. Additional Terms. + +\x93Additional permissions\x94 are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: + + * a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or + * b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or + * c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or + * d) Limiting the use for publicity purposes of names of licensors or authors of the material; or + * e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or + * f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. + +All other non-permissive additional terms are considered \x93further restrictions\x94 within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. +8. Termination. + +You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. +9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. +10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. + +An \x93entity transaction\x94 is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging... [truncated message content] |
From: <the...@us...> - 2009-08-10 11:27:17
|
Revision: 34 http://smipl.svn.sourceforge.net/smipl/?rev=34&view=rev Author: the_student Date: 2009-08-10 11:27:10 +0000 (Mon, 10 Aug 2009) Log Message: ----------- Cleaning Removed Paths: ------------- smipl-devel/Console.h smipl-devel/Design document.rtf smipl-devel/Error.h smipl-devel/FS.h smipl-devel/FS.zip smipl-devel/Init.h smipl-devel/MDS.h smipl-devel/PartList.lst smipl-devel/SIA.h smipl-devel/SIASOUND.h smipl-devel/SMIPL-header.h smipl-devel/SMIPL.cpp smipl-devel/SVM.h smipl-devel/String.h smipl-devel/config.h smipl-devel/physfs_stream.cpp smipl-devel/physfs_stream.hpp Deleted: smipl-devel/Console.h =================================================================== --- smipl-devel/Console.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/Console.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,173 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -bool Console(int argc, char** argv) { - char **rc, **i, *str, Name[256], Data[256]; - bool EnterProgram=false; - SMIPL_String command; - value_t number=0, number2; - IFileStream *inputfile, *library_file; - bool using_script=false, using_library=false; - - if(PHYSFS_exists("/Console/Splash")){sys_clearscreen();PrintFile("/Console/Splash");cin.get();sys_clearscreen();} - for(;;) { - if(!EnterProgram) cout<<"? "; - else cout<<number<<" "; - if(!using_script) cin.getline(command.str, 256); - else {if((*inputfile>>command.str)==0) {using_script=false;delete inputfile;break;}cout<<command.str<<endl;} - if(!EnterProgram) cout<<endl; - command.Split(); - //cout<<"str="<<command.str<<": "; - //cout<<"argc="<<command.argc<<": "; - //for(int a=1;a<=command.argc;a++) cout<<"\""<<command.argv[a-1]<<"\""<<endl; - if(EnterProgram) { - strcpy(Program[(int)number],command.str); - if(!stricmp(command.str,"PROGRAM END")) {EnterProgram=false;cout<<endl;} - number++; - if(number>100000) {EnterProgram=false;cout<<endl;} - continue; - } - else { - if(strlen(command.argv[0])==0) continue; - if(!stricmp(command.argv[0], "QUIT")) break; - if(!stricmp(command.argv[0], "EXIT")) break; - if(!stricmp(command.str, "PROGRAM START")) {EnterProgram=true;number=0;continue;} - if(!stricmp(command.argv[0], "LIBRARY")) { - do{ - if(command.argc==2) { - cout<<"Name: "; - if(!using_script) cin.getline(Name, 256); - else { - if((*inputfile>>Name)==0) { - using_script=false; - delete inputfile;break; - } - cout<<Name<<endl; - } - } - str=strdup("/Library/", Name); - if(!PHYSFS_exists(str)) {cout<<"FILE NOT FOUND"<<endl;delete[]str;continue;} - else break; - }while(1); - using_script=true; - library_file=new IFileStream(str); - delete[]str; - if(command.argc<4){cout<<"Start: ";Atof(Data, &number);} - else - str=new char[strlen("/Global/") + strlen(Name) + strlen("_START")]; - sprintf(str, "/Global/%s_START", Name); - MDS_Set(str, number); - delete[]str; - for(;;) { - if((*library_file>>Program[(int)number])==0) {strcpy(Program[(int)number], "PROGRAM END");cout<<endl;break;} - number++; - if(number>100000) {cout<<endl;break;} - } - continue; - } - if(!stricmp(command.argv[0], "SCRIPT")) { - do{ - if(command.argc==2) { - cout<<"Name: "; - if(!using_script) cin.getline(Name, 256); - else { - if((*inputfile>>Name)==0) { - using_script=false; - delete inputfile;break; - } - cout<<Name<<endl; - } - } - str=strdup("/Script/", Name); - if(!PHYSFS_exists(str)) {cout<<"FILE NOT FOUND"<<endl;delete[]str;continue;} - else break; - }while(1); - using_script=true; - inputfile=new IFileStream(str); - continue; - } - if(!stricmp(command.argv[0], "RUN")) { - VM0.Run(NULL); - continue; - } - if(!stricmp(command.argv[0], "BACKGROUND-RUN")) { - pthread_create(&VM0.ID,NULL,StartThread,&VM0); - continue; - } - - if(!stricmp(command.argv[0], "LIST")) { - int a=0; - do{ - cout<<a<<":"<<Program[a]<<endl; - }while(stricmp(Program[a++],"PROGRAM END")); - cout<<endl; - continue; - } - - if(!stricmp(command.argv[0], "CATALOG")) { - if(command.argc==1) Catalog("/"); - else for(int a=1;a<command.argc;a++) {Catalog(command.argv[a]);cout<<endl<<endl;} - continue; - } - if(!stricmp(command.argv[0], "HELP")) { - if(command.argc==1){ - PrintFile("/Help/Help"); - } - else { - //strtoupper(command.argv[1]); - str=strdup("/Help/",command.argv[1]); - PrintFile(str); - delete[]str; - } - continue; - } - if(!stricmp(command.argv[0], "ABOUT")) { - if(command.argc==1){ - PrintFile("/About/About"); - } - else { - //strtoupper(command.argv[1]); - str=strdup("/About/",command.argv[1]); - PrintFile(str); - delete[]str; - } - continue; - } - if(!stricmp(command.argv[0], "REINIT")) { - DeInit(); - Init(argc,argv); - continue; - } - if(!stricmp(command.argv[0], "DUMP")) { - DumpStack(); - DumpMDS(); - DumpSearchPath(); - DumpRoot(); - continue; - } - if(isdigit(command.argv[0][0])) { - number=atoi(command.argv[0]); - if(command.argc==1) EnterProgram=true; - if(command.argc>=2) { - strcpy(Program[(int)number], command.argv[1]); - for(int a=2;a<command.argc;a++) {strcat(Program[(int)number], " ");strcat(Program[(int)number], command.argv[a]);} - } - continue; - } - cout<<"Unknown command:\""<<command.argv[0]<<"\"!"<<endl; - } - } - return true; -} Deleted: smipl-devel/Design document.rtf =================================================================== --- smipl-devel/Design document.rtf 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/Design document.rtf 2009-08-10 11:27:10 UTC (rev 34) @@ -1,173 +0,0 @@ -{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31506\stshfloch31506\stshfhich31506\stshfbi31507\deflang1044\deflangfe1044\themelang1044\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f34\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria Math;} -{\f37\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \froman\fcharset0\fprq2{\*\panose 02040503050406030204}Cambria;} -{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} -{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} -{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f39\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f40\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\f42\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f43\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f44\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f45\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\f46\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f47\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f379\fbidi \froman\fcharset238\fprq2 Cambria Math CE;}{\f380\fbidi \froman\fcharset204\fprq2 Cambria Math Cyr;} -{\f382\fbidi \froman\fcharset161\fprq2 Cambria Math Greek;}{\f383\fbidi \froman\fcharset162\fprq2 Cambria Math Tur;}{\f386\fbidi \froman\fcharset186\fprq2 Cambria Math Baltic;}{\f409\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} -{\f410\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\f412\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\f413\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;}{\f416\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} -{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhimajor\f31528\fbidi \froman\fcharset238\fprq2 Cambria CE;}{\fhimajor\f31529\fbidi \froman\fcharset204\fprq2 Cambria Cyr;} -{\fhimajor\f31531\fbidi \froman\fcharset161\fprq2 Cambria Greek;}{\fhimajor\f31532\fbidi \froman\fcharset162\fprq2 Cambria Tur;}{\fhimajor\f31535\fbidi \froman\fcharset186\fprq2 Cambria Baltic;} -{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} -{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} -{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} -{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} -{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} -{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} -{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;}{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} -{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} -{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} -{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} -{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; -\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \f31506\fs22\lang1044\langfe1033\langfenp1033 }{\*\defpap \ql \li0\ri0\sa200\sl276\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 -\ltrch\fcs0 \f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 \snext0 \sqformat \spriority0 \styrsid16326907 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* -\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1 -\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 \snext11 \ssemihidden \sunhideused \sqformat Normal Table;}{ -\s15\ql \li0\ri0\sa200\sl360\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af0\afs22\alang1025 \ltrch\fcs0 \fs24\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 -\sbasedon0 \snext15 \slink16 \sqformat \spriority0 \styrsid8734358 Skole oppgaver;}{\*\cs16 \additive \rtlch\fcs1 \af0 \ltrch\fcs0 \f0\fs24 \sbasedon10 \slink15 \slocked \spriority0 \styrsid8734358 Skole oppgaver Tegn;}}{\*\rsidtbl \rsid1459910 -\rsid3355339\rsid6102557\rsid6818599\rsid7751057\rsid8734358\rsid9511180\rsid12322588\rsid13581978\rsid14248534\rsid16326907\rsid16461033\rsid16719760}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1 -\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\author Martin Sundhaug}{\operator Martin Sundhaug}{\creatim\yr2009\mo7\dy31\hr12\min32}{\revtim\yr2009\mo7\dy31\hr12\min44}{\version1}{\edmins12}{\nofpages1}{\nofwords61}{\nofchars326}{\nofcharsws386} -{\vern32771}{\*\saveprevpict}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}}\paperw11906\paperh16838\margl1417\margr1417\margt1417\margb1417\gutter0\ltrsect -\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\trackmoves1\trackformatting1\donotembedsysfont1\relyonvml0\donotembedlingdata0\grfdocevents0\validatexml1\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0 -\showxmlerrors1\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\formshade\horzdoc\dgmargin\dghspace180\dgvspace180\dghorigin1417\dgvorigin1417\dghshow1\dgvshow1 -\jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\splytwnine\ftnlytwnine\htmautsp\nolnhtadjtbl\useltbaln\alntblind\lytcalctblwd\lyttblrtgr\lnbrkrule\nobrkwrptbl\snaptogridincell\allowfieldendsel\wrppunct -\asianbrkrule\rsidroot16461033\newtblstyruls\nogrowautofit\usenormstyforlist\noindnmbrts\felnbrelev\nocxsptable\indrlsweleven\noafcnsttbl\afelev\utinl\hwelev\spltpgpar\notcvasp\notbrkcnstfrctbl\notvatxbx\krnprsnet\cachedcolbal \nouicompat \fet0 -{\*\wgrffmtfilter 2450}\nofeaturethrottle1\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\headery708\footery708\colsx708\endnhere\sectlinegrid360\sectdefaultcl\sectrsid16326907\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}} -{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}} -{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9 -\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa200\sl276\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 -\f31506\fs22\lang1044\langfe1033\cgrid\langnp1044\langfenp1033 {\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid14248534 Init}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ():}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid7751057\charrsid7751057 \tab \tab Sets up the programming e}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid7751057 nvironment, clears errors, }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid3355339 and sets up physfs, and file system structure.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid9511180 Outputs comments on functions executed, and checks return value. If any errors }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 are }{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid9511180 detect}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 ed, }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid1459910\charrsid1459910 SetLastSysError} -{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid1459910 is called with an }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid12322588 suitable error message.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid7751057 -\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid16461033\charrsid14248534 MDS_Create}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ():}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid13581978 \tab }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid13581978\charrsid13581978 creates a new }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 o}{ -\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557\charrsid13581978 bject }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 of}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid13581978 type }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid13581978\charrsid14248534 MDS_Piece}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid16719760 -with specified name and }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 value, and adds it, using }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid6102557\charrsid14248534 MDS_Add}{\rtlch\fcs1 -\af31507 \ltrch\fcs0 \b\lang1033\langfe1033\langnp1033\insrsid14248534\charrsid14248534 ()}{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557 , to the MDS.}{\rtlch\fcs1 \af31507 \ltrch\fcs0 -\lang1033\langfe1033\langnp1033\insrsid16326907 -\par }{\rtlch\fcs1 \af31507 \ltrch\fcs0 \lang1033\langfe1033\langnp1033\insrsid6102557\charrsid13581978 -\par }{\*\themedata 504b030414000600080000002100828abc13fa0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb6ac3301045f785fe83d0b6d8 -72ba28a5d8cea249777d2cd20f18e4b12d6a8f843409c9df77ecb850ba082d74231062ce997b55ae8fe3a00e1893f354e9555e6885647de3a8abf4fbee29bbd7 -2a3150038327acf409935ed7d757e5ee14302999a654e99e393c18936c8f23a4dc072479697d1c81e51a3b13c07e4087e6b628ee8cf5c4489cf1c4d075f92a0b -44d7a07a83c82f308ac7b0a0f0fbf90c2480980b58abc733615aa2d210c2e02cb04430076a7ee833dfb6ce62e3ed7e14693e8317d8cd0433bf5c60f53fea2fe7 -065bd80facb647e9e25c7fc421fd2ddb526b2e9373fed4bb902e182e97b7b461e6bfad3f010000ffff0300504b030414000600080000002100a5d6a7e7c00000 -00360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4fc7060abb08 -84a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b63095120f88d94fbc -52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462a1a82fe353 -bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f7468656d652f7468 -656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b4b0d592c9c -070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b4757e8d3f7 -29e245eb2b260a0238fd010000ffff0300504b030414000600080000002100dcaae620950600004f1b0000160000007468656d652f7468656d652f7468656d65 -312e786d6cec594d6f1b4518be23f11f467b6f6327761a4775aad8b11b48d346b15bd4e37877bc3bcdecce6a669cd437d41e9190100571a012370e08a8d44a5c -caaf09144191fa1778676677bd13af49d24650417d48bcb3cffbfd31ef8caf5ebb1f33744884a43c697bf5cb350f91c4e7014dc2b6777bd8bfb4e621a9701260 -c613d2f6a6447ad736de7fef2a5e5711890902fa44aee3b6172995ae2f2d491f96b1bccc5392c0bb31173156f028c2a540e023e01bb3a5e55a6d7529c634f150 -8263607b6b3ca63eb9a480d4dbc879f718084894d40b3e1303cd993804061b1cd435424e659709748859db0331013f1a92fbca430c4b052fda5ecd7cbca58dab -4b783d23626a016d89ae6f3e195d46101c2c1b99221c1542ebfd46ebca56c1df00989ac7f57abd6eaf5ef03300ecfb60a9d5a5ccb3d15fab77729e2590fd3acf -bb5b6bd61a2ebec47f654ee756a7d369b6325d2c5303b25f1b73f8b5da6a6373d9c11b90c537e7f08dce66b7bbeae00dc8e257e7f0fd2badd5868b37a088d1e4 -600ead03daef67dc0bc898b3ed4af81ac0d76a197c86826c28b24b8b18f3442dcab518dfe3a20f000d6458d104a9694ac6d88724eee2782428d602f03ac1a537 -76c997734b5a1692bea0a96a7b1fa6180a62c6efd5f3ef5f3d7f8a8e1f3c3b7ef0d3f1c387c70f7eb48c1caa6d9c8465aa97df7ef6e7e38fd11f4fbf79f9e88b -6abc2ce37ffde1935f7efebc1a08e53353e7c5974f7e7bf6e4c5579ffefedda30af8a6c0a3327c486322d14d7284f6790c8619afb89a9391381fc530c2b44cb1 -99841227584ba9e0df539183be39c52c8b8ea34787b81ebc23a07d5401af4fee390a0f223151b442f24e143bc05dce59878b4a2fec685925370f2749582d5c4c -cab87d8c0fab647771e2c4b73749a16fe669e918de8d88a3e61ec389c221498842fa1d3f20a4c2babb943a7edda5bee0928f15ba4b5107d34a970ce9c8c9a619 -d1368d212ed32a9b21de8e6f76efa00e6755566f9143170955815985f243c21c375ec71385e32a96431cb3b2c36f6015552939980abf8ceb4905910e09e3a817 -1029ab686e09b0b714f41d0c1dab32ecbb6c1abb48a1e84115cf1b98f332728b1f74231ca755d8014da232f6037900298ad11e5755f05dee56887e8638e06461 -b8ef50e284fbf46e709b868e4ab304d16f2642c7125ab5d381639afc5d3b6614fab1cd818b6bc7d0005f7cfdb822b3ded646bc097b5255256c9f68bf8b70279b -6e978b80befd3d770b4f923d02693ebff1bc6bb9ef5aaef79f6fb98beaf9ac8d76d65ba1edeab9c10ec566448e174ec863cad8404d19b921cd902c619f08fab0 -a8e9cce1901427a63482af595f7770a1c0860609ae3ea22a1a44388501bbee6926a1cc588712a55cc2c1ce2c57f2d67818d2953d1636f581c1f60389d52e0fec -f28a5ececf05051bb3db84e6f0990b5ad10cce2a6ce54ac614cc7e1d6175add499a5d58d6aa6d539d20a932186f3a6c162e14d1840108c2de0e555389e6bd170 -30c18c04daef76efcdc362a270912192110e4816236df77c8cea264879ae989b00c89d8a18e943de295e2b496b69b66f20ed2c412a8b6b2c109747ef4da29467 -f02c4aba6e4f94234bcac5c91274d4f65acde5a6877c9cb6bd319c69e16b9c42d4a59ef9300be15ec857c2a6fda9c56caa7c16cd566e985b0475b8a6b07e9f33 -d8e903a9906a0bcbc8a6867995a5004bb424abff7213dc7a5106d84c7f0d2d56d62019fe352dc08f6e68c9784c7c550e766945fbce3e66ad944f141183283842 -233611fb18c2af5315ec09a884ab09d311f403dca3696f9b576e73ce8aae7c7b6570761db334c259bbd5259a57b2859b3a2e74304f25f5c0b64add8d71e737c5 -94fc0599524ee3ff99297a3f819b82954047c0875b5c8191aed7b6c7858a3874a134a27e5fc0e0607a07640bdcc5c26b482ab84b36ff0539d4ff6dcd591ea6ac -e1c0a7f669880485fd484582903d684b26fb4e6156cff62ecb92658c4c4695d495a9557b440e091bea1eb8aaf7760f4590eaa69b646dc0e04ee69ffb9c55d028 -d4434eb9de9c1e52ecbdb606fee9c9c7163318e5f66133d0e4fe2f54acd8552dbd21cff7deb221fac56ccc6ae45501c24a5b412b2bfbd754e19c5baded587316 -2f3773e5208af316c3623110a570df83f41fd8ffa8f0193169ac37d421df87de8ae08706cd0cd206b2fa921d3c906e9076710483935db4c9a45959d766a393f6 -5abe595ff0a45bc83de16cadd959e27d4e6717c3992bcea9c58b7476e661c7d7766da1ab21b2274b1496c6f941c604c6fca255fed5898fee41a0b7e07e7fc294 -34c904bf29090ca3e7c0d40114bf95684837fe020000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468 -656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451 -eced0dae2c082e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e319872 -0e274a939cd08a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2 -c6cce0239baa4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100828abc13fa0000001c020000130000000000000000000000000000 -0000005b436f6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000 -2b0100005f72656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c0000000000000000000000000014020000746865 -6d652f7468656d652f7468656d654d616e616765722e786d6c504b01022d0014000600080000002100dcaae620950600004f1b00001600000000000000000000 -000000d10200007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000 -000000000000009a0900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000950a00000000} -{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d -617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 -6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 -656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} -{\*\latentstyles\lsdstimax267\lsdlockeddef0\lsdsemihiddendef1\lsdunhideuseddef1\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; -\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9; -\lsdpriority39 \lsdlocked0 toc 1;\lsdpriority39 \lsdlocked0 toc 2;\lsdpriority39 \lsdlocked0 toc 3;\lsdpriority39 \lsdlocked0 toc 4;\lsdpriority39 \lsdlocked0 toc 5;\lsdpriority39 \lsdlocked0 toc 6;\lsdpriority39 \lsdlocked0 toc 7; -\lsdpriority39 \lsdlocked0 toc 8;\lsdpriority39 \lsdlocked0 toc 9;\lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdpriority1 \lsdlocked0 Default Paragraph Font; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority22 \lsdlocked0 Strong;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority59 \lsdlocked0 Table Grid;\lsdunhideused0 \lsdlocked0 Placeholder Text;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdunhideused0 \lsdlocked0 Revision; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 1; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 2; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 2;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 3; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 4; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 5; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdsemihidden0 \lsdunhideused0 \lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority61 \lsdlocked0 Light List Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority62 \lsdlocked0 Light Grid Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority66 \lsdlocked0 Medium List 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority70 \lsdlocked0 Dark List Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdpriority71 \lsdlocked0 Colorful Shading Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdsemihidden0 \lsdunhideused0 \lsdpriority73 \lsdlocked0 Colorful Grid Accent 6; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference; -\lsdsemihidden0 \lsdunhideused0 \lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdpriority37 \lsdlocked0 Bibliography;\lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;}}{\*\datastore 010500000200000018000000 -4d73786d6c322e534158584d4c5265616465722e352e3000000000000000000000060000 -d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffffec69d9888b8b3d4c859eaf6cd158be0f0000000000000000000000006061 -3fd3cb11ca01feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 -0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file Deleted: smipl-devel/Error.h =================================================================== --- smipl-devel/Error.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/Error.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,22 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -char* LastSysError; -char* GetLastSysError() { - return LastSysError; -} -void SetLastSysError(char* err) { - LastSysError=err; -} Deleted: smipl-devel/FS.h =================================================================== --- smipl-devel/FS.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/FS.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,111 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -pthread_mutex_t FS=PTHREAD_MUTEX_INITIALIZER; - -void Catalog(char *Directory) { - pthread_mutex_lock(&FS); - char** rc; - rc = PHYSFS_enumerateFiles(Directory); - if (rc == NULL) - printf("Failure. reason: %s.\n", PHYSFS_getLastError()); - else - { - int file_count, folder_count; - char **i; - char* a=new char[255]; - char* b=new char[255]; - - strcpy(a,Directory); - if(a[strlen(a)-1]!='/') strcat(a,"/"); - i = rc; - file_count=folder_count=0; - while(*i != NULL){ - strcpy(b,a); - strcat(b,*i); - if(!PHYSFS_isDirectory(b)) {printf("F %s\n", b);file_count++;} - else {printf("D %s/\n",b);folder_count++;} - i++; - } - delete[]a; - delete[]b; - printf("\n"); - printf("TOTAL (%d) FILE(S).\n", file_count); - printf("TOTAL (%d) FOLDER(S).\n", folder_count); - PHYSFS_freeList(rc); - } /* else */ - pthread_mutex_unlock(&FS); -} - -void PrintFile(char *FileName) { - pthread_mutex_lock(&FS); - char* str; - #ifdef DEBUG - cout<<FileName<<":"<<endl; - #endif - if(PHYSFS_exists(FileName)) { - if(!PHYSFS_isDirectory(FileName)) { - PHYSFS_File *File=PHYSFS_openRead(FileName); - str=new char[PHYSFS_fileLength(File)]; - PHYSFS_read(File,str,sizeof(char),PHYSFS_fileLength(File)); - cout<<endl<<str<<endl<<endl; - delete[] str; - PHYSFS_close(File); - } - else cout<<"Can't print directory"<<endl; - } - else cout<<"\""<<FileName<<"\": not found"<<endl; - pthread_mutex_unlock(&FS); -} - - -bool FS_init() { - char Name[255]; - fstream PartList("partlist.lst"); - if(PartList.is_open()) { - while(!PartList.eof()){ - PartList.getline(Name,255); - if(strlen(Name)==0) continue; - cout<<"Loading "<<Name<<" - "; - if(!PHYSFS_addToSearchPath(Name,0)) {SetLastSysError((char*)PHYSFS_getLastError());return false;} - else cout<<"OK"<<endl; - } - PartList.close(); - return true; - } - else {SetLastSysError("partlist not found");return false;} -} - -void DumpSearchPath() { - cout<<"DUMPING SEARCHPATH..."<<endl; - char **rc = PHYSFS_getSearchPath(); - - if (rc == NULL) - printf("Failure. reason: %s.\n", PHYSFS_getLastError()); - else - { - int dir_count; - char **i; - for (i = rc, dir_count = 0; *i != NULL; i++, dir_count++) - printf("%s\n", *i); - - printf("\nTOTAL (%d) FOLDER(S).\n", dir_count); - PHYSFS_freeList(rc); - } /* else */ -} -void DumpRoot() { - cout<<"DUMPING ROOT..."<<endl; - Catalog("/"); -} Deleted: smipl-devel/FS.zip =================================================================== (Binary files differ) Deleted: smipl-devel/Init.h =================================================================== --- smipl-devel/Init.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/Init.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,34 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -bool Init(int argc, char **argv) { - try{ - SetLastSysError(""); - strcpy(Program[0],"PROGRAM END"); - VM0.isVM0=true; - VM0.JailAddress=strdup("/VM0/"); - cout<<"Initializing PhysicsFS"<<endl; - if(!PHYSFS_init(argv[0])) {SetLastSysError((char*)PHYSFS_getLastError());return false;} - cout<<"Initializing FileSystem Structure"<<endl; - if(!FS_init())return false; - } - catch(...) {SetLastSysError("EXCEPTION");return false;} - - return true; -} -bool DeInit() { - if(!PHYSFS_deinit()){SetLastSysError((char*)PHYSFS_getLastError());return false;} - return true; -} Deleted: smipl-devel/MDS.h =================================================================== --- smipl-devel/MDS.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/MDS.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,103 +0,0 @@ -pthread_mutex_t MDS=PTHREAD_MUTEX_INITIALIZER; -pthread_mutex_t doSet=PTHREAD_MUTEX_INITIALIZER; -typedef double value_t; -struct MDS_Piece{ - char *Name; - value_t Value; - MDS_Piece *Next; - MDS_Piece() { - Name=strdup(""); - Value=0; - Next=NULL; - } - MDS_Piece(char *a, value_t b) { - Name=strdup(a); - Value=b; - Next=NULL; - } -}MDS_0; - -MDS_Piece* MDS_Last() { - MDS_Piece* Last=&MDS_0; - while(Last->Next!=NULL) Last=Last->Next; - return Last; -} -void MDS_Add(MDS_Piece* addthispiece) { - MDS_Last()->Next=addthispiece; -} -void MDS_Create(char *Name, value_t value) { - pthread_mutex_lock(&MDS); - MDS_Piece *created=new MDS_Piece(Name, value); - MDS_Add(created); - pthread_mutex_unlock(&MDS); -} - -void MDS_Get(char* Name, value_t* value) { - pthread_mutex_lock(&MDS); - *value=0; - MDS_Piece* Current=&MDS_0; - while(Current->Next!=NULL) {if(!strcmp(Current->Name,Name)) {*value=Current->Value;break;}Current=Current->Next;} - //if((isnan(*value))||(isinf(*value))) *value=0; - pthread_mutex_unlock(&MDS); -} -pthread_mutex_t doatof=PTHREAD_MUTEX_INITIALIZER; -void Atof(char *a, value_t* b) { - pthread_mutex_lock(&doatof); - MDS_Get(a,b); - if(*b==0) *b=atof(a); - pthread_mutex_unlock(&doatof); -} -void MDS_Set(char* Name, value_t value) { - pthread_mutex_lock(&doSet); - pthread_mutex_lock(&MDS); - MDS_Piece* Current=&MDS_0; - bool isfound=false; - if(MDS_0.Next!=NULL) { - do { - if(!strcmp(Current->Name,Name)) { - Current->Value=value; - //clog<<"\""<<Name<<"\" found"<<endl; - isfound=true; - break; - } - else {//clog<<"\""<<Current->Name<<"\" != "<<Name<<endl; - Current=Current->Next;} - }while(Current->Next!=NULL); - } - pthread_mutex_unlock(&MDS); - if((!isfound)) { - if(!isdigit(Name[0])) { - //clog<<"\""<<Name<<"\" not found, creating"<<endl; - MDS_Create(Name, value); - } - } - else pthread_mutex_unlock(&MDS); - pthread_mutex_unlock(&doSet); - -} - -void DumpMDS() { - pthread_mutex_lock(&MDS); - cout<<"DUMPING MDS..."<<endl; - MDS_Piece *current=MDS_0.Next; - while(current!=NULL) { - cout<<"\""<<current->Name<<"\":"<<current->Value<<endl; - current=current->Next; - } - pthread_mutex_unlock(&MDS); -} -void DumpStack() { - char* name=new char[255]; - value_t Level=0, MaxLevel=0, value=0; - cout<<"DUMPING STACK"; - MDS_Get("/VM0/Stack/P", &MaxLevel); - cout<<"..."<<endl; - pthread_mutex_lock(&MDS); - while(Level<MaxLevel) { - sprintf(name, "/VM0/Stack/%d",Level); - MDS_Get(name, &value); - cout<<"\""<<value<<"\""<<endl; - Level++; - } - pthread_mutex_unlock(&MDS); -} Deleted: smipl-devel/PartList.lst =================================================================== --- smipl-devel/PartList.lst 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/PartList.lst 2009-08-10 11:27:10 UTC (rev 34) @@ -1 +0,0 @@ -FS.zip \ No newline at end of file Deleted: smipl-devel/SIA.h =================================================================== --- smipl-devel/SIA.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/SIA.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,11 +0,0 @@ -#ifdef system_is_posix -#include <unistd.h> -#include <fcntl.h> -void sys_sleep(int time) {usleep(time);} -void sys_clearscreen(){system("clear");} -#endif -#ifdef system_is_ms_windows -#include <windows.h> -void sys_sleep(int time) {Sleep(time);} -void sys_clearscreen(){system("cls");} -#endif Deleted: smipl-devel/SIASOUND.h =================================================================== --- smipl-devel/SIASOUND.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/SIASOUND.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,56 +0,0 @@ -bool MIDI_OUT_INITED=false; -typedef union { unsigned long word; unsigned char data[4]; }MIDI_Message; -pthread_mutex_t SIA_SOUND=PTHREAD_MUTEX_INITIALIZER; -#ifdef TUX_SOUND -#include <linux/soundcard.h> -int MIDI_Out; -void MIDI_Init() { - pthread_mutex_lock(&SIA_SOUND); - if(MIDI_Out=open("/dev/midi",O_WRONLY,0)<0) goto End; - MIDI_OUT_INITED=true; - End: - pthread_mutex_unlock(&SIA_SOUND); -} -void MIDI_Write(MIDI_Message Melding) { - pthread_mutex_lock(&SIA_SOUND); - if(MIDI_OUT_INITED) { - write(MIDI_Out, Melding.word, sizeof(Melding.word)); - } - pthread_mutex_unlock(&SIA_SOUND); -} -#endif - -#ifdef system_is_ms_windows -HMIDIOUT MIDI_Out; -void MIDI_Init() { - pthread_mutex_lock(&SIA_SOUND); - if (midiOutOpen(&MIDI_Out, 0, 0, 0, CALLBACK_NULL) != MMSYSERR_NOERROR) { - printf("Error opening MIDI Output.\n"); - goto end; - } - MIDI_OUT_INITED=true; - end: - pthread_mutex_unlock(&SIA_SOUND); -} -void MIDI_Write(MIDI_Message Melding) { - pthread_mutex_lock(&SIA_SOUND); - if(MIDI_OUT_INITED) { - if(midiOutShortMsg(MIDI_Out, Melding.word) != MMSYSERR_NOERROR) { - cout<<"MIDI ERROR"<<endl; - } - } - pthread_mutex_unlock(&SIA_SOUND); -} -#endif -#ifndef EnableMIDI -void MIDI_Write(MIDI_Message Melding) { - #ifdef DEBUG - cout<<"MIDI not supported by runtime"<<endl; - #endif -} -void MIDI_Init() { - #ifdef DEBUG - cout<<"MIDI not supported by runtime"<<endl; - #endif -} -#endif Deleted: smipl-devel/SMIPL-header.h =================================================================== --- smipl-devel/SMIPL-header.h 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/SMIPL-header.h 2009-08-10 11:27:10 UTC (rev 34) @@ -1,45 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -//C libraries -#include <cstdio> -#include <cstdlib> -#include <cstring> -#include <cmath> -//IO streams -#include <iostream> -#include <fstream> -using namespace std; -//Div -#include <pthread.h> -#include <physfs.h> - -#include "physfs_stream.cpp" -//SMIPL Core systems -#define SMIPL_VERSION "3.50.0 Pre-Beta CVS" -bool Init(int,char**); -bool DeInit(); -#include "config.h" -#include "SIA.h" -#include "SIASOUND.h" -#include "String.h" -#include "Error.h" -#include "MDS.h" -#include "fs.h" -//SMIPL UI -#include "SVM.h" -#include "Console.h" -//SMIPL Init -#include "Init.h" Deleted: smipl-devel/SMIPL.cpp =================================================================== --- smipl-devel/SMIPL.cpp 2009-08-09 11:45:11 UTC (rev 33) +++ smipl-devel/SMIPL.cpp 2009-08-10 11:27:10 UTC (rev 34) @@ -1,36 +0,0 @@ -/*This file is part of SMIPL. - - SMIPL is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - SMIPL is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with SMIPL. If not, see <http://www.gnu.org/licenses/>. -*/ -#include "SMIPL-header.h" -int main(int argc, char **argv) { - cout<<"SMIPL "<<SMIPL_VERSION<<endl<<endl; - cout<<"Setting up version globals"<<endl; - MDS_Create("/Global/com.smipl.version.major",3); - MDS_Create("/Global/com.smipl.version.minor",50); - MDS_Create("/Global/com.smipl.version.patch",0); - cout<<"Setting up compile-time configuration options"<<endl; - MDS_Create("/Global/com.smipl.midi.enable",false); - MDS_Create("/Global/com.smipl.midi.inited",false); - #ifdef EnableMIDI - cout<<"Enabling MIDI - "; - MIDI_Init(); - if(MIDI_OUT_INITED) {cout<<"OK"<<endl;MDS_Set("/Global/com.smipl.midi.inited",true);} - else cout<<"FAIL"<<endl; - #e... [truncated message content] |
From: <the...@us...> - 2009-08-09 11:45:18
|
Revision: 33 http://smipl.svn.sourceforge.net/smipl/?rev=33&view=rev Author: the_student Date: 2009-08-09 11:45:11 +0000 (Sun, 09 Aug 2009) Log Message: ----------- Added TRUE and FALSE ReadOnly variables. Modified Paths: -------------- smipl-devel/SVM.h Modified: smipl-devel/SVM.h =================================================================== --- smipl-devel/SVM.h 2009-08-09 11:28:22 UTC (rev 32) +++ smipl-devel/SVM.h 2009-08-09 11:45:11 UTC (rev 33) @@ -26,6 +26,8 @@ void MDS_Get(char* Name, value_t* value) { pthread_mutex_lock(&Admin); + if(!stricmp(Name, "TRUE")) {*value=true;goto end;} + if(!stricmp(Name, "FALSE")) {*value=true;goto end;} if(JailAddress==NULL) {str1=new char[strlen(Name)+1];strcpy(str1,"/");} else {str1=new char[strlen(Name)+strlen(JailAddress)];strcpy(str1,JailAddress);} strcat(str1,Name); @@ -35,6 +37,8 @@ } void MDS_Set(char* Name, value_t value) { pthread_mutex_lock(&Admin); + if(!stricmp(Name, "TRUE")) {goto end;} + if(!stricmp(Name, "FALSE")) {goto end;} if(JailAddress==NULL) {str1=new char[strlen(Name)+1];strcpy(str1,"/");} else {str1=new char[strlen(Name)+strlen(JailAddress)];strcpy(str1,JailAddress);} strcat(str1,Name); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-09 11:28:31
|
Revision: 32 http://smipl.svn.sourceforge.net/smipl/?rev=32&view=rev Author: the_student Date: 2009-08-09 11:28:22 +0000 (Sun, 09 Aug 2009) Log Message: ----------- Fixed strdup(char*,char*); Changed version-information to match 3.50.0 Simplified some functions Added some more DEBUG info Added place holders /Help/Help MIDI_Init and MIDI_Write for OSes where SMIPL does not yet support MIDI Modified Paths: -------------- smipl-devel/Console.h smipl-devel/FS.h smipl-devel/FS.zip smipl-devel/SIA.h smipl-devel/SIASOUND.h smipl-devel/SMIPL.cpp smipl-devel/String.h smipl-devel/config.h Modified: smipl-devel/Console.h =================================================================== --- smipl-devel/Console.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/Console.h 2009-08-09 11:28:22 UTC (rev 32) @@ -21,7 +21,7 @@ IFileStream *inputfile, *library_file; bool using_script=false, using_library=false; - if(PHYSFS_exists("/Console/Splash")){PrintFile("/Console/Splash");cin.get();} + if(PHYSFS_exists("/Console/Splash")){sys_clearscreen();PrintFile("/Console/Splash");cin.get();sys_clearscreen();} for(;;) { if(!EnterProgram) cout<<"? "; else cout<<number<<" "; @@ -123,28 +123,24 @@ } if(!stricmp(command.argv[0], "HELP")) { if(command.argc==1){ - if(PHYSFS_exists("/Help/Help")) PrintFile("/Help/Help"); - else cout<<"Help not found!"<<endl; + PrintFile("/Help/Help"); } else { //strtoupper(command.argv[1]); str=strdup("/Help/",command.argv[1]); - if(PHYSFS_exists(str))PrintFile(str); - else cout<<"Help for "<<command.argv[1]<<" not found!"<<endl; + PrintFile(str); delete[]str; } continue; } if(!stricmp(command.argv[0], "ABOUT")) { if(command.argc==1){ - if(PHYSFS_exists("/About/About")) PrintFile("/About/About"); - else cout<<"About not found!"<<endl; + PrintFile("/About/About"); } else { //strtoupper(command.argv[1]); str=strdup("/About/",command.argv[1]); - if(PHYSFS_exists(str))PrintFile(str); - else cout<<"About "<<command.argv[1]<<" not found!"<<endl; + PrintFile(str); delete[]str; } continue; Modified: smipl-devel/FS.h =================================================================== --- smipl-devel/FS.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/FS.h 2009-08-09 11:28:22 UTC (rev 32) @@ -52,6 +52,9 @@ void PrintFile(char *FileName) { pthread_mutex_lock(&FS); char* str; + #ifdef DEBUG + cout<<FileName<<":"<<endl; + #endif if(PHYSFS_exists(FileName)) { if(!PHYSFS_isDirectory(FileName)) { PHYSFS_File *File=PHYSFS_openRead(FileName); @@ -61,6 +64,7 @@ delete[] str; PHYSFS_close(File); } + else cout<<"Can't print directory"<<endl; } else cout<<"\""<<FileName<<"\": not found"<<endl; pthread_mutex_unlock(&FS); Modified: smipl-devel/FS.zip =================================================================== (Binary files differ) Modified: smipl-devel/SIA.h =================================================================== --- smipl-devel/SIA.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/SIA.h 2009-08-09 11:28:22 UTC (rev 32) @@ -2,10 +2,10 @@ #include <unistd.h> #include <fcntl.h> void sys_sleep(int time) {usleep(time);} -void sys_clearscreen(int time){system("clear");} +void sys_clearscreen(){system("clear");} #endif #ifdef system_is_ms_windows #include <windows.h> void sys_sleep(int time) {Sleep(time);} -void sys_clearscreen(int time){system("cls");} +void sys_clearscreen(){system("cls");} #endif Modified: smipl-devel/SIASOUND.h =================================================================== --- smipl-devel/SIASOUND.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/SIASOUND.h 2009-08-09 11:28:22 UTC (rev 32) @@ -14,7 +14,7 @@ void MIDI_Write(MIDI_Message Melding) { pthread_mutex_lock(&SIA_SOUND); if(MIDI_OUT_INITED) { - write(MIDI_Out, Melding.data, sizeof(Melding.data)); + write(MIDI_Out, Melding.word, sizeof(Melding.word)); } pthread_mutex_unlock(&SIA_SOUND); } @@ -42,3 +42,15 @@ pthread_mutex_unlock(&SIA_SOUND); } #endif +#ifndef EnableMIDI +void MIDI_Write(MIDI_Message Melding) { + #ifdef DEBUG + cout<<"MIDI not supported by runtime"<<endl; + #endif +} +void MIDI_Init() { + #ifdef DEBUG + cout<<"MIDI not supported by runtime"<<endl; + #endif +} +#endif Modified: smipl-devel/SMIPL.cpp =================================================================== --- smipl-devel/SMIPL.cpp 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/SMIPL.cpp 2009-08-09 11:28:22 UTC (rev 32) @@ -17,9 +17,18 @@ int main(int argc, char **argv) { cout<<"SMIPL "<<SMIPL_VERSION<<endl<<endl; cout<<"Setting up version globals"<<endl; - MDS_Create("/Global/SMIPL/Version/Major",3); - MDS_Create("/Global/SMIPL/Version/Minor",0); - MDS_Create("/Global/SMIPL/Version/Patch",0); + MDS_Create("/Global/com.smipl.version.major",3); + MDS_Create("/Global/com.smipl.version.minor",50); + MDS_Create("/Global/com.smipl.version.patch",0); + cout<<"Setting up compile-time configuration options"<<endl; + MDS_Create("/Global/com.smipl.midi.enable",false); + MDS_Create("/Global/com.smipl.midi.inited",false); + #ifdef EnableMIDI + cout<<"Enabling MIDI - "; + MIDI_Init(); + if(MIDI_OUT_INITED) {cout<<"OK"<<endl;MDS_Set("/Global/com.smipl.midi.inited",true);} + else cout<<"FAIL"<<endl; + #endif cout<<"Running init"<<endl; if(!Init(argc, argv)) {cerr<<"Init error:"<<GetLastSysError()<<endl;for(;;);} else if(!Console(argc, argv)) {cerr<<"Console error"<<GetLastSysError()<<endl;for(;;);} Modified: smipl-devel/String.h =================================================================== --- smipl-devel/String.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/String.h 2009-08-09 11:28:22 UTC (rev 32) @@ -5,7 +5,7 @@ char *strdup(char *a, char* b) { char* str=new char[strlen(a)+strlen(b)]; strcpy(str,a); - strcat(str,a); + strcat(str,b); return str; } void strtoupper(char*a) { Modified: smipl-devel/config.h =================================================================== --- smipl-devel/config.h 2009-08-09 09:32:38 UTC (rev 31) +++ smipl-devel/config.h 2009-08-09 11:28:22 UTC (rev 32) @@ -1,10 +1,12 @@ #ifdef __WIN32__ //Microsoft Windows #define system_is_ms_windows //Windows is Windows +#define EnableMIDI //We have got MIDI drivers #endif //#ifdef __WIN32__ #ifdef __linux__ //Linux #define system_is_posix //Linux is mostly POSIX #define TUX_SOUND //Linux uses linux sound +#define EnableMIDI //We have got MIDI drivers #endif //#ifdef __linux__ #ifdef DARWIN //Darwin (Darwin, OSX) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-09 09:32:53
|
Revision: 31 http://smipl.svn.sourceforge.net/smipl/?rev=31&view=rev Author: the_student Date: 2009-08-09 09:32:38 +0000 (Sun, 09 Aug 2009) Log Message: ----------- Attempted to fix linux-MIDI_Write Added script and library Modified Paths: -------------- smipl-devel/Console.h smipl-devel/FS.zip smipl-devel/SIASOUND.h smipl-devel/physfs_stream.cpp smipl-devel/physfs_stream.hpp Modified: smipl-devel/Console.h =================================================================== --- smipl-devel/Console.h 2009-08-06 10:24:24 UTC (rev 30) +++ smipl-devel/Console.h 2009-08-09 09:32:38 UTC (rev 31) @@ -14,15 +14,19 @@ along with SMIPL. If not, see <http://www.gnu.org/licenses/>. */ bool Console(int argc, char** argv) { - char **rc, **i, *str; + char **rc, **i, *str, Name[256], Data[256]; bool EnterProgram=false; SMIPL_String command; - value_t number=0; + value_t number=0, number2; + IFileStream *inputfile, *library_file; + bool using_script=false, using_library=false; + if(PHYSFS_exists("/Console/Splash")){PrintFile("/Console/Splash");cin.get();} for(;;) { if(!EnterProgram) cout<<"? "; else cout<<number<<" "; - cin.getline(command.str, 256); + if(!using_script) cin.getline(command.str, 256); + else {if((*inputfile>>command.str)==0) {using_script=false;delete inputfile;break;}cout<<command.str<<endl;} if(!EnterProgram) cout<<endl; command.Split(); //cout<<"str="<<command.str<<": "; @@ -40,7 +44,60 @@ if(!stricmp(command.argv[0], "QUIT")) break; if(!stricmp(command.argv[0], "EXIT")) break; if(!stricmp(command.str, "PROGRAM START")) {EnterProgram=true;number=0;continue;} - + if(!stricmp(command.argv[0], "LIBRARY")) { + do{ + if(command.argc==2) { + cout<<"Name: "; + if(!using_script) cin.getline(Name, 256); + else { + if((*inputfile>>Name)==0) { + using_script=false; + delete inputfile;break; + } + cout<<Name<<endl; + } + } + str=strdup("/Library/", Name); + if(!PHYSFS_exists(str)) {cout<<"FILE NOT FOUND"<<endl;delete[]str;continue;} + else break; + }while(1); + using_script=true; + library_file=new IFileStream(str); + delete[]str; + if(command.argc<4){cout<<"Start: ";Atof(Data, &number);} + else + str=new char[strlen("/Global/") + strlen(Name) + strlen("_START")]; + sprintf(str, "/Global/%s_START", Name); + MDS_Set(str, number); + delete[]str; + for(;;) { + if((*library_file>>Program[(int)number])==0) {strcpy(Program[(int)number], "PROGRAM END");cout<<endl;break;} + number++; + if(number>100000) {cout<<endl;break;} + } + continue; + } + if(!stricmp(command.argv[0], "SCRIPT")) { + do{ + if(command.argc==2) { + cout<<"Name: "; + if(!using_script) cin.getline(Name, 256); + else { + if((*inputfile>>Name)==0) { + using_script=false; + delete inputfile;break; + } + cout<<Name<<endl; + } + } + str=strdup("/Script/", Name); + if(!PHYSFS_exists(str)) {cout<<"FILE NOT FOUND"<<endl;delete[]str;continue;} + else break; + }while(1); + using_script=true; + inputfile=new IFileStream(str); + continue; + } if(!stricmp(command.argv[0], "RUN")) { VM0.Run(NULL); continue; @@ -49,6 +106,7 @@ pthread_create(&VM0.ID,NULL,StartThread,&VM0); continue; } + if(!stricmp(command.argv[0], "LIST")) { int a=0; do{ @@ -79,7 +137,7 @@ } if(!stricmp(command.argv[0], "ABOUT")) { if(command.argc==1){ - if(PHYSFS_exists("/About/About")) PrintFile("About"); + if(PHYSFS_exists("/About/About")) PrintFile("/About/About"); else cout<<"About not found!"<<endl; } else { Modified: smipl-devel/FS.zip =================================================================== (Binary files differ) Modified: smipl-devel/SIASOUND.h =================================================================== --- smipl-devel/SIASOUND.h 2009-08-06 10:24:24 UTC (rev 30) +++ smipl-devel/SIASOUND.h 2009-08-09 09:32:38 UTC (rev 31) @@ -14,7 +14,7 @@ void MIDI_Write(MIDI_Message Melding) { pthread_mutex_lock(&SIA_SOUND); if(MIDI_OUT_INITED) { - write(MIDI_Out, Melding.data, sizeof(Melding)); + write(MIDI_Out, Melding.data, sizeof(Melding.data)); } pthread_mutex_unlock(&SIA_SOUND); } Modified: smipl-devel/physfs_stream.cpp =================================================================== --- smipl-devel/physfs_stream.cpp 2009-08-06 10:24:24 UTC (rev 30) +++ smipl-devel/physfs_stream.cpp 2009-08-09 09:32:38 UTC (rev 31) @@ -157,6 +157,10 @@ : std::istream(new IFileStreambuf(filename)) { } +IFileStream::IFileStream() + : std::istream() +{ +} IFileStream::~IFileStream() { @@ -169,6 +173,10 @@ : std::ostream(new OFileStreambuf(filename)) { } +OFileStream::OFileStream() + : std::ostream() +{ +} OFileStream::~OFileStream() { Modified: smipl-devel/physfs_stream.hpp =================================================================== --- smipl-devel/physfs_stream.hpp 2009-08-06 10:24:24 UTC (rev 30) +++ smipl-devel/physfs_stream.hpp 2009-08-09 09:32:38 UTC (rev 31) @@ -1,6 +1,7 @@ // $Id$ // // SuperTux +// Copyright (C) 2009 Martin Sundhaug <mar...@gm...> // Copyright (C) 2006 Matthias Braun <ma...@br...> // // This program is free software; you can redistribute it and/or @@ -31,6 +32,7 @@ public: IFileStreambuf(const std::string& filename); ~IFileStreambuf(); + PHYSFS_file* file; protected: virtual int underflow(); @@ -39,7 +41,6 @@ virtual pos_type seekpos(pos_type pos, std::ios_base::openmode); private: - PHYSFS_file* file; char buf[1024]; }; @@ -48,13 +49,13 @@ public: OFileStreambuf(const std::string& filename); ~OFileStreambuf(); + PHYSFS_file* file; protected: virtual int overflow(int c); virtual int sync(); private: - PHYSFS_file* file; char buf[1024]; }; @@ -62,12 +63,14 @@ { public: IFileStream(const std::string& filename); + IFileStream(); ~IFileStream(); }; class OFileStream : public std::ostream { public: + OFileStream(); OFileStream(const std::string& filename); ~OFileStream(); }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-06 10:24:35
|
Revision: 30 http://smipl.svn.sourceforge.net/smipl/?rev=30&view=rev Author: the_student Date: 2009-08-06 10:24:24 +0000 (Thu, 06 Aug 2009) Log Message: ----------- Added IF, and IF! Made disallow_spaces_in_names enforceable Added the <line_number> edit-mode, and also the <line_number> <line> Modified Paths: -------------- smipl-devel/Console.h smipl-devel/SVM.h smipl-devel/String.h Modified: smipl-devel/Console.h =================================================================== --- smipl-devel/Console.h 2009-08-04 17:51:20 UTC (rev 29) +++ smipl-devel/Console.h 2009-08-06 10:24:24 UTC (rev 30) @@ -103,6 +103,15 @@ DumpRoot(); continue; } + if(isdigit(command.argv[0][0])) { + number=atoi(command.argv[0]); + if(command.argc==1) EnterProgram=true; + if(command.argc>=2) { + strcpy(Program[(int)number], command.argv[1]); + for(int a=2;a<command.argc;a++) {strcat(Program[(int)number], " ");strcat(Program[(int)number], command.argv[a]);} + } + continue; + } cout<<"Unknown command:\""<<command.argv[0]<<"\"!"<<endl; } } Modified: smipl-devel/SVM.h =================================================================== --- smipl-devel/SVM.h 2009-08-04 17:51:20 UTC (rev 29) +++ smipl-devel/SVM.h 2009-08-06 10:24:24 UTC (rev 30) @@ -22,6 +22,7 @@ pthread_mutex_t Admin; SMIPL_String cmd; value_t number,number2; + int a; void MDS_Get(char* Name, value_t* value) { pthread_mutex_lock(&Admin); @@ -96,39 +97,36 @@ ID=pthread_self(); pthread_mutex_unlock(&Admin); MDS_Set("Stack/P", 0); + try{ while(1) { strcpy(cmd.str,Program[Address]); cmd.Split(); if(!stricmp(cmd.argv[0],"STOP")) break; if(!stricmp(cmd.str,"PROGRAM END")) break; - if(!stricmp(cmd.argv[0],"SET")) for(int a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} + if(!stricmp(cmd.argv[0],"SET")) for(a=1;a<cmd.argc;a+=2) {Atof(cmd.argv[a+1],&number);MDS_Set(cmd.argv[a], number);} //Arithmetic - if(!stricmp(cmd.argv[0],"ADD")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"SUBRACT")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"MULTIPLY")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} - if(!stricmp(cmd.argv[0],"DIVIDE")) {Atof(cmd.argv[1],&number);for(int a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} + if(!stricmp(cmd.argv[0],"ADD")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number+=number2;}MDS_Set(cmd.argv[1], number);} + if(!stricmp(cmd.argv[0],"SUBRACT")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number-=number2;}MDS_Set(cmd.argv[1], number);} + if(!stricmp(cmd.argv[0],"MULTIPLY")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number*=number2;}MDS_Set(cmd.argv[1], number);} + if(!stricmp(cmd.argv[0],"DIVIDE")) {Atof(cmd.argv[1],&number);for(a=2;a<cmd.argc;a++){Atof(cmd.argv[a], &number2);number/=number2;}MDS_Set(cmd.argv[1], number);} //Stack - if(!stricmp(cmd.argv[0],"PUSH")) {for(int a=1;a<cmd.argc;a++) {Atof(cmd.argv[a],&number);Push(number);}} - if(!stricmp(cmd.argv[0],"POP")) {for(int a=1;a<cmd.argc;a++) {Pop(&number);MDS_Set(cmd.argv[a], number);}} + if(!stricmp(cmd.argv[0],"PUSH")) {for(a=1;a<cmd.argc;a++) {Atof(cmd.argv[a],&number);Push(number);}} + if(!stricmp(cmd.argv[0],"POP")) {for(a=1;a<cmd.argc;a++) {Pop(&number);MDS_Set(cmd.argv[a], number);}} //Flow control + if(!stricmp(cmd.argv[0],"IF")) {Atof(cmd.argv[1], &number);if(cmd.argc>=3) {Atof(cmd.argv[2], &number2);if(cmd.Op=='=') if(number!=number2) Address++;if(cmd.Op=='>') if(number<=number2) Address++;if(cmd.Op=='<') if(number>=number2) Address++;}else if(!number) Address++;} + if(!stricmp(cmd.argv[0],"IF!")) {Atof(cmd.argv[1], &number);if(cmd.argc>=3) {Atof(cmd.argv[2], &number2);if(cmd.Op=='=') if(number==number2) Address++;if(cmd.Op=='>') if(number>number2) Address++;if(cmd.Op=='<') if(number<number2) Address++;}else if(!number) Address++;} if(!stricmp(cmd.argv[0],"GOTO")) if(cmd.argc>=2) {Atof(cmd.argv[1],&number);Address=number-1;} if(!stricmp(cmd.argv[0],"GOSUB")) if(cmd.argc>=2) {Push((value_t)Address);Atof(cmd.argv[1],(value_t*)&Address);Address-=1;} - if(!stricmp(cmd.argv[0],"RETURN")) { - Pop((value_t*)&Address); - for(int a=1;a<cmd.argc;a++) { - Atof(cmd.argv[1], &number); - MDS_Set("RETURN", number); - Push(number); - } - } + if(!stricmp(cmd.argv[0],"RETURN")) {Pop((value_t*)&Address);for(a=1;a<cmd.argc;a++) {Atof(cmd.argv[1], &number);MDS_Set("RETURN", number);Push(number);}} Address++; if(Address>100000) break; if(Address<0) break; } - + } + catch(...) {cout<<"EXCEPTION"<<endl;} } Modified: smipl-devel/String.h =================================================================== --- smipl-devel/String.h 2009-08-04 17:51:20 UTC (rev 29) +++ smipl-devel/String.h 2009-08-06 10:24:24 UTC (rev 30) @@ -41,7 +41,7 @@ while(!isDelim(str[c1],disallow_spaces_in_names)) { if(argc!=0) argv[argc][c2]=str[c1]; else argv[argc][c2]=toupper(str[c1]); - if(argv[argc][c2]=='"') disallow_spaces_in_names=!disallow_spaces_in_names; + if(argv[argc][c2]=='"') if(!force_disallow_spaces_in_names) disallow_spaces_in_names=!disallow_spaces_in_names; c1++; c2++; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-04 17:51:28
|
Revision: 29 http://smipl.svn.sourceforge.net/smipl/?rev=29&view=rev Author: the_student Date: 2009-08-04 17:51:20 +0000 (Tue, 04 Aug 2009) Log Message: ----------- Added Paths: ----------- Charles/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-04 17:49:12
|
Revision: 28 http://smipl.svn.sourceforge.net/smipl/?rev=28&view=rev Author: the_student Date: 2009-08-04 17:49:01 +0000 (Tue, 04 Aug 2009) Log Message: ----------- Added the new SIASOUND.h Modified Paths: -------------- smipl-devel/SMIPL-header.h smipl-devel/config.h Added Paths: ----------- smipl-devel/SIASOUND.h Added: smipl-devel/SIASOUND.h =================================================================== --- smipl-devel/SIASOUND.h (rev 0) +++ smipl-devel/SIASOUND.h 2009-08-04 17:49:01 UTC (rev 28) @@ -0,0 +1,44 @@ +bool MIDI_OUT_INITED=false; +typedef union { unsigned long word; unsigned char data[4]; }MIDI_Message; +pthread_mutex_t SIA_SOUND=PTHREAD_MUTEX_INITIALIZER; +#ifdef TUX_SOUND +#include <linux/soundcard.h> +int MIDI_Out; +void MIDI_Init() { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_Out=open("/dev/midi",O_WRONLY,0)<0) goto End; + MIDI_OUT_INITED=true; + End: + pthread_mutex_unlock(&SIA_SOUND); +} +void MIDI_Write(MIDI_Message Melding) { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_OUT_INITED) { + write(MIDI_Out, Melding.data, sizeof(Melding)); + } + pthread_mutex_unlock(&SIA_SOUND); +} +#endif + +#ifdef system_is_ms_windows +HMIDIOUT MIDI_Out; +void MIDI_Init() { + pthread_mutex_lock(&SIA_SOUND); + if (midiOutOpen(&MIDI_Out, 0, 0, 0, CALLBACK_NULL) != MMSYSERR_NOERROR) { + printf("Error opening MIDI Output.\n"); + goto end; + } + MIDI_OUT_INITED=true; + end: + pthread_mutex_unlock(&SIA_SOUND); +} +void MIDI_Write(MIDI_Message Melding) { + pthread_mutex_lock(&SIA_SOUND); + if(MIDI_OUT_INITED) { + if(midiOutShortMsg(MIDI_Out, Melding.word) != MMSYSERR_NOERROR) { + cout<<"MIDI ERROR"<<endl; + } + } + pthread_mutex_unlock(&SIA_SOUND); +} +#endif Modified: smipl-devel/SMIPL-header.h =================================================================== --- smipl-devel/SMIPL-header.h 2009-08-04 17:19:09 UTC (rev 27) +++ smipl-devel/SMIPL-header.h 2009-08-04 17:49:01 UTC (rev 28) @@ -33,6 +33,7 @@ bool DeInit(); #include "config.h" #include "SIA.h" +#include "SIASOUND.h" #include "String.h" #include "Error.h" #include "MDS.h" Modified: smipl-devel/config.h =================================================================== --- smipl-devel/config.h 2009-08-04 17:19:09 UTC (rev 27) +++ smipl-devel/config.h 2009-08-04 17:49:01 UTC (rev 28) @@ -4,6 +4,7 @@ #ifdef __linux__ //Linux #define system_is_posix //Linux is mostly POSIX +#define TUX_SOUND //Linux uses linux sound #endif //#ifdef __linux__ #ifdef DARWIN //Darwin (Darwin, OSX) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-04 17:19:19
|
Revision: 27 http://smipl.svn.sourceforge.net/smipl/?rev=27&view=rev Author: the_student Date: 2009-08-04 17:19:09 +0000 (Tue, 04 Aug 2009) Log Message: ----------- SMIPL now outputs version info Modified Paths: -------------- smipl-devel/SMIPL-header.h smipl-devel/SMIPL.cpp Modified: smipl-devel/SMIPL-header.h =================================================================== --- smipl-devel/SMIPL-header.h 2009-08-04 16:41:33 UTC (rev 26) +++ smipl-devel/SMIPL-header.h 2009-08-04 17:19:09 UTC (rev 27) @@ -28,6 +28,7 @@ #include "physfs_stream.cpp" //SMIPL Core systems +#define SMIPL_VERSION "3.50.0 Pre-Beta CVS" bool Init(int,char**); bool DeInit(); #include "config.h" Modified: smipl-devel/SMIPL.cpp =================================================================== --- smipl-devel/SMIPL.cpp 2009-08-04 16:41:33 UTC (rev 26) +++ smipl-devel/SMIPL.cpp 2009-08-04 17:19:09 UTC (rev 27) @@ -15,6 +15,7 @@ */ #include "SMIPL-header.h" int main(int argc, char **argv) { + cout<<"SMIPL "<<SMIPL_VERSION<<endl<<endl; cout<<"Setting up version globals"<<endl; MDS_Create("/Global/SMIPL/Version/Major",3); MDS_Create("/Global/SMIPL/Version/Minor",0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-04 16:41:42
|
Revision: 26 http://smipl.svn.sourceforge.net/smipl/?rev=26&view=rev Author: the_student Date: 2009-08-04 16:41:33 +0000 (Tue, 04 Aug 2009) Log Message: ----------- Commented config.h Modified Paths: -------------- smipl-devel/config.h Modified: smipl-devel/config.h =================================================================== --- smipl-devel/config.h 2009-08-04 16:34:39 UTC (rev 25) +++ smipl-devel/config.h 2009-08-04 16:41:33 UTC (rev 26) @@ -1,9 +1,11 @@ -#ifdef __linux__ -#define system_is_posix -#endif -#ifdef DARWIN -#define system_is_posix -#endif -#ifdef __WIN32__ -#define system_is_ms_windows -#endif +#ifdef __WIN32__ //Microsoft Windows +#define system_is_ms_windows //Windows is Windows +#endif //#ifdef __WIN32__ + +#ifdef __linux__ //Linux +#define system_is_posix //Linux is mostly POSIX +#endif //#ifdef __linux__ + +#ifdef DARWIN //Darwin (Darwin, OSX) +#define system_is_posix //Darwin is POSIX +#endif //#ifdef DARWIN This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2009-08-04 16:34:47
|
Revision: 25 http://smipl.svn.sourceforge.net/smipl/?rev=25&view=rev Author: the_student Date: 2009-08-04 16:34:39 +0000 (Tue, 04 Aug 2009) Log Message: ----------- Added config.h Configuration IFDEFs Allows reuse-age of code, for example in POSIX systems Added a new version of SIA.h Modified Paths: -------------- smipl-devel/SMIPL-header.h Added Paths: ----------- smipl-devel/SIA.h smipl-devel/config.h Added: smipl-devel/SIA.h =================================================================== --- smipl-devel/SIA.h (rev 0) +++ smipl-devel/SIA.h 2009-08-04 16:34:39 UTC (rev 25) @@ -0,0 +1,11 @@ +#ifdef system_is_posix +#include <unistd.h> +#include <fcntl.h> +void sys_sleep(int time) {usleep(time);} +void sys_clearscreen(int time){system("clear");} +#endif +#ifdef system_is_ms_windows +#include <windows.h> +void sys_sleep(int time) {Sleep(time);} +void sys_clearscreen(int time){system("cls");} +#endif Modified: smipl-devel/SMIPL-header.h =================================================================== --- smipl-devel/SMIPL-header.h 2009-08-03 15:39:47 UTC (rev 24) +++ smipl-devel/SMIPL-header.h 2009-08-04 16:34:39 UTC (rev 25) @@ -30,6 +30,8 @@ //SMIPL Core systems bool Init(int,char**); bool DeInit(); +#include "config.h" +#include "SIA.h" #include "String.h" #include "Error.h" #include "MDS.h" Added: smipl-devel/config.h =================================================================== --- smipl-devel/config.h (rev 0) +++ smipl-devel/config.h 2009-08-04 16:34:39 UTC (rev 25) @@ -0,0 +1,9 @@ +#ifdef __linux__ +#define system_is_posix +#endif +#ifdef DARWIN +#define system_is_posix +#endif +#ifdef __WIN32__ +#define system_is_ms_windows +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |