From 3af774204352209b072daa83cf7e4ed33473bf42 Mon Sep 17 00:00:00 2001 From: cdez Date: Wed, 31 Jan 2024 18:17:38 -0700 Subject: [PATCH] Working on changes, maybe working? --- .gitignore | 3 +- Preparation/Phase6/StringUtils.c | 121 +++++++++++++++---------------- Sim01/StringUtils.c | 12 +-- Sim01/configops.h | 10 +-- Sim01/metadataops.h | 2 +- Sim01/simulator.c | 1 + Sim01/testfile.cnf | 12 +++ Sim01/testfile.mdf | 40 ++++++++++ 8 files changed, 127 insertions(+), 74 deletions(-) create mode 100644 Sim01/testfile.cnf create mode 100644 Sim01/testfile.mdf diff --git a/.gitignore b/.gitignore index 35346cd..3c3d48b 100644 --- a/.gitignore +++ b/.gitignore @@ -67,4 +67,5 @@ _deps # Text Docs *.txt - +*.xlsx +*.docx diff --git a/Preparation/Phase6/StringUtils.c b/Preparation/Phase6/StringUtils.c index b4a55bf..bfa963f 100644 --- a/Preparation/Phase6/StringUtils.c +++ b/Preparation/Phase6/StringUtils.c @@ -5,24 +5,24 @@ const int SUBSTRING_NOT_FOUND = 0; // list of utils: - // string length - // getStringLength - // string copy - // copyString - // string concatenate - // catString - // string compare (<, >, =) - // compareString - // string substring get - // getSubString - // string substring find - // findSubString - // string set to lower - // toLowerCase - // string get to delimiter - // stringDelimiter - // string get to end of line - // stringEOL +// string length +// getStringLength +// string copy +// copyString +// string concatenate +// catString +// string compare (<, >, =) +// compareString +// string substring get +// getSubString +// string substring find +// findSubString +// string set to lower +// toLowerCase +// string get to delimiter +// stringDelimiter +// string get to end of line +// stringEOL // function implementations @@ -39,20 +39,20 @@ Dependencies: malloc, free, getStringLength void catString(char *outString, const char *inString) { // initialize variables - // set dest index + // set dest index int destIndex = getStringLength(outString); - // set source str length + // set source str length int sourceStrLen = getStringLength(inString); - // create temp string pointer + // create temp string pointer char *tempString; int sourceIndex = 0; - + // copy source string in case of aliasing tempString = (char *)malloc(sizeof(char) * sourceStrLen); copyString(tempString, inString); - + // loop to end of source string - while(tempString[sourceIndex] != NULL_CHAR) + while (tempString[sourceIndex] != NULL_CHAR) { // assign characters to end of destination string outString[destIndex] = inString[sourceIndex]; @@ -66,7 +66,7 @@ void catString(char *outString, const char *inString) // release memory used for temp string free(tempString); - + // no return, void. } @@ -93,12 +93,12 @@ int compareString(const char *firstString, const char *secondString) int diff, index = 0; // loop to end of string (within bounds) - while(firstString[index] != NULL_CHAR && secondString[index] != NULL_CHAR) + while (firstString[index] != NULL_CHAR && secondString[index] != NULL_CHAR) { // get diff of characters diff = firstString[index] - secondString[index]; // check diff of characters - if(diff != 0) + if (diff != 0) { // return diff return diff; @@ -126,12 +126,12 @@ void copyString(char *outString, const char *inString) { // initialize variables int index = 0; - + // check to see if outString is not the same as inString. - if(outString != inString) + if (outString != inString) { // loop to end of inString - while(inString[index] != NULL_CHAR) + while (inString[index] != NULL_CHAR) { // assign characters to end of outString outString[index] = inString[index]; @@ -141,8 +141,8 @@ void copyString(char *outString, const char *inString) // end loop to end of inString // set end of the outString outString[index] = NULL_CHAR; - } - + } + // no return, void. } @@ -162,14 +162,14 @@ Dependencies: getStringLength int findSubString(const char *testStr, const char *searchSubStr) { // initialize variables - // initialize test string length + // initialize test string length int testStrLength = getStringLength(testStr); - // initialize master index (location of substring start point) + // initialize master index (location of substring start point) int masterIndex = 0; int searchIndex, internalIndex; // loop across testStr - while(masterIndex < testStrLength) + while (masterIndex < testStrLength) { // set internal loop index to current test string index internalIndex = masterIndex; @@ -177,14 +177,14 @@ int findSubString(const char *testStr, const char *searchSubStr) searchIndex = 0; // loop to end of testStr // while testStr/searchSubStr characters are the same - while(internalIndex <= testStrLength && - testStr[internalIndex] == searchSubStr[searchIndex]) + while (internalIndex <= testStrLength && + testStr[internalIndex] == searchSubStr[searchIndex]) { // increment testStr and substring indices internalIndex = internalIndex + 1; searchIndex = searchIndex + 1; // check for end of substring (search complete) - if(searchSubStr[searchIndex] == NULL_CHAR) + if (searchSubStr[searchIndex] == NULL_CHAR) { // return beginning location of substring return masterIndex; @@ -195,7 +195,7 @@ int findSubString(const char *testStr, const char *searchSubStr) masterIndex = masterIndex + 1; } // end loop across testStr - + // return SUBSTRING_NOT_FOUND return SUBSTRING_NOT_FOUND; } @@ -227,24 +227,23 @@ bool getStringConstrained(FILE *inStream, bool clearLeadingNonPrintable, // capture first value in stream using fgetc intChar = fgetc(inStream); // loop to clear non-printable or space if indicated - while((((intChar != EOF) && - (clearLeadingNonPrintable && (intChar < (int)SPACE))) - || (clearLeadingSpace && (intChar == (int)SPACE)))) + while ((intChar != EOF) && + ((clearLeadingNonPrintable && intChar < (int)SPACE) || (clearLeadingSpace && intChar == (int)SPACE))) { // get next character in stream using fgetc intChar = fgetc(inStream); } // end loop to clear non-printable or space if indicated // check for end of file found - if(intChar == EOF) + if (intChar == EOF) { // return false (failed) return false; } // loop to get input from file stream - while(((intChar != EOF && index < MAX_STR_LEN - 1) && - (stopAtNonPrintable && intChar >= (int)SPACE)) - || ((!stopAtNonPrintable) && (intChar != (char)delimiter))) + while ((intChar != EOF && index < MAX_STR_LEN - 1) && + ((stopAtNonPrintable && intChar >= (int)SPACE) || (!stopAtNonPrintable)) && + (intChar != (char)delimiter)) { // [continues if not at end of file and max string len not reached ] // [AND continues if not printable flag set and characters printable ] @@ -341,27 +340,27 @@ Device input/---: NONE Device output/---: NONE Dependencies: getStringLength, malloc, copyString, free */ -void getSubString(char *destStr, const char *sourceStr, - int startIndex, int endIndex) +void getSubString(char *destStr, const char *sourceStr, + int startIndex, int endIndex) { // initialize variables - // set length of source string using getStringLength + // set length of source string using getStringLength int sourceStrLen = getStringLength(sourceStr); - // initialize the destination index to zero + // initialize the destination index to zero int destIndex = 0; - // initialize source index to start index (parameter) + // initialize source index to start index (parameter) int sourceIndex = startIndex; - // create pointer for temp string + // create pointer for temp string char *tempStr; - + // check for indices within limits - if(startIndex >= 0 && startIndex <= endIndex && endIndex < sourceStrLen) + if (startIndex >= 0 && startIndex <= endIndex && endIndex < sourceStrLen) { // create temp string using malloc and copyString tempStr = (char *)malloc(sourceStrLen + 1); copyString(tempStr, sourceStr); // loop across requested substring indices - while(sourceIndex <= endIndex) + while (sourceIndex <= endIndex) { // assign source character to destination element destStr[destIndex] = tempStr[sourceIndex]; @@ -393,17 +392,17 @@ Dependencies: toLowerCase void strToLowerCase(char *outString, const char *inString) { // initialize variables - // get source string length + // get source string length int sourceStrLen = getStringLength(inString); - // create temporary string pointer + // create temporary string pointer char *tempStr; int index = 0; - + // copy source string in case of aliasing using malloc and copyString tempStr = (char *)malloc((sizeof(char) * (sourceStrLen + 1))); copyString(tempStr, inString); // loop across source string - while(tempStr[index] != NULL_CHAR && index < MAX_STR_LEN) + while (tempStr[index] != NULL_CHAR && index < MAX_STR_LEN) { // set individual character to lowercase as needed, assigning back outString[index] = toLowerCase(tempStr[index]); @@ -415,7 +414,7 @@ void strToLowerCase(char *outString, const char *inString) // end loop across source string // free temporary string free(tempStr); - + // no return, void. } @@ -433,7 +432,7 @@ Dependencies: none char toLowerCase(char testChar) { // check for uppercase letter - if(testChar >= 'A' && testChar <= 'Z') + if (testChar >= 'A' && testChar <= 'Z') { // return lowercase letter return testChar - 'A' + 'a'; diff --git a/Sim01/StringUtils.c b/Sim01/StringUtils.c index b4a55bf..e0678c2 100644 --- a/Sim01/StringUtils.c +++ b/Sim01/StringUtils.c @@ -227,9 +227,9 @@ bool getStringConstrained(FILE *inStream, bool clearLeadingNonPrintable, // capture first value in stream using fgetc intChar = fgetc(inStream); // loop to clear non-printable or space if indicated - while((((intChar != EOF) && - (clearLeadingNonPrintable && (intChar < (int)SPACE))) - || (clearLeadingSpace && (intChar == (int)SPACE)))) + while((intChar != EOF) && + ((clearLeadingNonPrintable && intChar < (int)SPACE) + || (clearLeadingSpace && intChar == (int)SPACE))) { // get next character in stream using fgetc intChar = fgetc(inStream); @@ -242,9 +242,9 @@ bool getStringConstrained(FILE *inStream, bool clearLeadingNonPrintable, return false; } // loop to get input from file stream - while(((intChar != EOF && index < MAX_STR_LEN - 1) && - (stopAtNonPrintable && intChar >= (int)SPACE)) - || ((!stopAtNonPrintable) && (intChar != (char)delimiter))) + while((intChar != EOF && index < MAX_STR_LEN - 1) && + ((stopAtNonPrintable && intChar >= (int)SPACE) || (!stopAtNonPrintable)) && + (intChar != (char)delimiter)) { // [continues if not at end of file and max string len not reached ] // [AND continues if not printable flag set and characters printable ] diff --git a/Sim01/configops.h b/Sim01/configops.h index 10dd498..c8d0ee9 100644 --- a/Sim01/configops.h +++ b/Sim01/configops.h @@ -35,15 +35,15 @@ typedef enum {CPU_SCHED_SJF_N_CODE, typedef struct ConfigDataTypeStruct { double version; - char metaDataFileName[STD_STR_LEN]; - int cpuSchedCode; // will need to be changed? + char metaDataFileName[MAX_STR_LEN]; + int cpuSchedCode; int quantumCycles; - bool memDisplay; // will need to be changed? + bool memDisplay; int memAvailable; int procCycleRate; int ioCycleRate; - int logToCode; // will need to be changed? - char logToFileName[STD_STR_LEN]; // will need to be changed? + int logToCode; + char logToFileName[MAX_STR_LEN]; } ConfigDataType; /* diff --git a/Sim01/metadataops.h b/Sim01/metadataops.h index 44c98a2..162c36a 100644 --- a/Sim01/metadataops.h +++ b/Sim01/metadataops.h @@ -24,7 +24,7 @@ typedef struct OpCodeTypeStruct char strArg1[MAX_STR_LEN]; int intArg2; int intArg3; - int opEndTime; + double opEndTime; struct OpCodeTypeStruct *nextNode; } OpCodeType; diff --git a/Sim01/simulator.c b/Sim01/simulator.c index 86a0e86..15bb4dc 100644 --- a/Sim01/simulator.c +++ b/Sim01/simulator.c @@ -15,5 +15,6 @@ Dependencies: ??? */ void runSim(ConfigDataType *configPtr, OpCodeType *metaDataMstrPtr) { + printf("runSim called here"); // void function, no return. } \ No newline at end of file diff --git a/Sim01/testfile.cnf b/Sim01/testfile.cnf new file mode 100644 index 0000000..77c71ed --- /dev/null +++ b/Sim01/testfile.cnf @@ -0,0 +1,12 @@ +Start Simulator Configuration File: +Version/Phase : 1.00 +File Path : testfile.mdf +CPU Scheduling Code : FCFS-N +Quantum Time (cycles) : 55 +Memory Available (KB) : 12000 +Memory Display (On/Off) : On +Processor Cycle Time (msec) : 10 +I/O Cycle Time (msec) : 20 +Log To : Monitor +Log File Path : logfile_1.lgf +End Simulator Configuration File. \ No newline at end of file diff --git a/Sim01/testfile.mdf b/Sim01/testfile.mdf new file mode 100644 index 0000000..b8da714 --- /dev/null +++ b/Sim01/testfile.mdf @@ -0,0 +1,40 @@ +Start Program Meta-Data Code: +sys start +app start, 0 +dev in, hard drive, 18 +cpu process, 9 +cpu process, 9 +cpu process, 9 +dev out, monitor, 60 +app end +app start, 0 +dev in, sound signal, 40 +dev in, hard drive, 30 +dev in, sound signal, 25 +cpu process, 6 +dev out, usb, 10 +app end +app start, 0 +dev in, video signal, 70 +cpu process, 10 +dev out, monitor, 70 +dev in, hard drive, 18 +cpu process, 9 +app end +app start, 0 +dev in, sound signal, 35 +dev out, monitor, 100 +dev in, keyboard, 50 +cpu process, 9 +dev out, video signal, 49 +app end +app start, 0 +dev in, keyboard, 90 +dev out, sound signal, 40 +dev out, serial, 32 +cpu process, 10 +dev in, hard drive, 15 +app end +sys end +End Program Meta-Data Code. +