From a4f9cd88fae655290644b1998340feefe6a7240e Mon Sep 17 00:00:00 2001 From: cdez Date: Sun, 10 Mar 2024 17:45:36 -0700 Subject: [PATCH] Fixed the simulator to get every subprocess except for the first in each process... +- simulator.c --- Sim02/sim02 | Bin 62176 -> 62184 bytes Sim02/simulator.c | 11 ++++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Sim02/sim02 b/Sim02/sim02 index 79de3429b83a0da9bfe8f1bf690f321ea1a13063..3e3186f3fa085fae0f8fc945495fe610669a0797 100755 GIT binary patch delta 6951 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 delta 6995 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 @@ -146,10 +147,10 @@ ProcessControlBlockLL *fillProcessList(ConfigDataType *configPtr, OpCodeType *me //integerArgumentTwo = wkgMetaPtr->intArg3; // loop through the process list, until you hit a sys end. - while(wkgMetaPtr->nextNode != NULL && !(compareString(argument, "end") == EQUIV && compareString(command, "sys") == EQUIV)) + while(wkgMetaPtr != NULL && !(compareString(argument, "end") == EQUIV && compareString(command, "sys") == EQUIV)) { integerArgumentOne = wkgMetaPtr->intArg2; - // printf("%s command, %s argument, %d\n", command, argument, integerArgumentOne); + printf("%s command, %s argument, %d\n", command, argument, integerArgumentOne); // if app start, if (compareString(command, "app") && compareString(argument, "start")) { @@ -160,6 +161,7 @@ ProcessControlBlockLL *fillProcessList(ConfigDataType *configPtr, OpCodeType *me currentPCB.process_state = PROCESS_STATE_NEW; // set the nextOpCode as a pointer to the first place metadataPtr started // currentPCB.nextOpCode = wkgMetaPtr->nextNode; // broken? + currentPCB.nextOpCode = wkgInsPtr->nextNode; } // count number of io cycles if(compareString(command, "dev") == EQUIV) @@ -193,8 +195,8 @@ ProcessControlBlockLL *fillProcessList(ConfigDataType *configPtr, OpCodeType *me currentPCB.totalCycles = ioCycleCount + cpuCycleCount; // currentPCB must have the starting instruction from wkgInsPtr - currentPCB.nextOpCode = wkgInsPtr->nextNode; - + // currentPCB.nextOpCode = wkgInsPtr->nextNode; + wkgInsPtr = wkgMetaPtr; // set the time left from (ioCycles * ioCycleRate) + (cpuCycles * procCyclesRate) // this gets the number of ms in the process. @@ -224,7 +226,6 @@ ProcessControlBlockLL *fillProcessList(ConfigDataType *configPtr, OpCodeType *me command = wkgMetaPtr->command; argument = wkgMetaPtr->strArg1; inOutArg = wkgMetaPtr->inOutArg; - wkgInsPtr = wkgMetaPtr; } // return headPointer