Here is the general way to create a SCO using a HTML frameset.
Your frameset will contain some or all of the code for your SCO. Your frameset will have the code to get and set the bookmark. Your frameset can also have the code to set the completion status, success status, score and other SCORM data items. Your frameset will contain at least one frame. You will display the content (HTML pages) of your SCO in a frame.
The frameset will initially display a blank page when it is loaded. Your frameset displays a blank page because it has to find out if this is the first time the learner has launched the SCO. If this is the first time the SCO is launched, the frameset will load the first page in the SCO into the frame. If the SCO has been launched at least once, your frameset will get the bookmark (previously saved by your SCO) and then use that bookmark to load the correct page.
In a SCORM 2004 SCO, your frameset can save the bookmark information in cmi.location or cmi.suspend_data. In a SCORM 1.2 SCO, your frameset can save the bookmark information in cmi.core.lesson_location or cmi.suspend_data. You will decide what kind of information to store in the bookmark. For example, you could store the name of the file that was previously viewed by the learner. You could also store a number that could be an index to an array of pages that you load when the SCO is launched.
We have created an e-learning toolkit that uses a frameset to manage bookmarks within a SCO. The toolkit comes with source code that you can use “as is” or modify to meet your specific needs.