Storybook Weaver IIgs series (MECC, 1991)
Posté : mer. 21 mai 2025 10:07
In a series of 3, MECC provided students with a great desktop interface program to create books from the title page to the last page. Inclusion of pictures and several other elements (e.g. borders) is possible.
Nevertheless, each program is protected and displays an alert message "Please insert your Storybook Weaver Program diskette in any drive." and loops until the original diskette is inserted!
On a desktop program, such a protection *always* deals with a bad block to read. If the bad block cannot be read then the diskette is a copy.
Protection type
On-disk protection for "Make believe" and for "World of adventure". I cannot find my notes for the first in the series but IIRC, that's quite similar to the two others.
Protection removal
Make believe
- Launch Block Warden
- Read block $513
- At offset $62, change 90 (BCC) to 80 (BRA)
- Save the changes
World of adventure
- Launch Block Warden
- Read block $3B8
- At offset $10C, change 90 (BCC) to 80 (BRA)
- Save the changes
How to locate the protection?
Some clues were given above, let me summarize there:
- search for the string "Please insert your Storybook Weaver Program diskette in any drive." or
- search for the strings "Quit" or "OK" (but with generic strings that will not be easy to locate the right ones) or
- search for the _WaitCursor pattern as the curson icon is changed before the protection is called (true, that is visible)
- search for the READ_BLOCK pattern for P16: 22 00 00 E1 22 00
Once one of those or several of those is/are identified, the exact discovery of the entry point of the protection is easy to get:
- the READ_BLOCK is at $15D8
- the call to the previous routine is at $0FDB
- the previous one is called at $0F99
Gotcha...
The program code is the same in each program, making the removal quite easy once one is done. Launch your favorite S16 disassembler (mine is The Flaming Bird Disassembler), go to segment 6 (init) and jump to $0F94 and read below...
The next thread will display the original program protection. The programs can be found on the great Alex Lee's site "What is the Apple IIgs?"
Antoine
5/2010
Nevertheless, each program is protected and displays an alert message "Please insert your Storybook Weaver Program diskette in any drive." and loops until the original diskette is inserted!
On a desktop program, such a protection *always* deals with a bad block to read. If the bad block cannot be read then the diskette is a copy.
Protection type
On-disk protection for "Make believe" and for "World of adventure". I cannot find my notes for the first in the series but IIRC, that's quite similar to the two others.
Protection removal
Make believe
- Launch Block Warden
- Read block $513
- At offset $62, change 90 (BCC) to 80 (BRA)
- Save the changes
World of adventure
- Launch Block Warden
- Read block $3B8
- At offset $10C, change 90 (BCC) to 80 (BRA)
- Save the changes
How to locate the protection?
Some clues were given above, let me summarize there:
- search for the string "Please insert your Storybook Weaver Program diskette in any drive." or
- search for the strings "Quit" or "OK" (but with generic strings that will not be easy to locate the right ones) or
- search for the _WaitCursor pattern as the curson icon is changed before the protection is called (true, that is visible)
- search for the READ_BLOCK pattern for P16: 22 00 00 E1 22 00
Once one of those or several of those is/are identified, the exact discovery of the entry point of the protection is easy to get:
- the READ_BLOCK is at $15D8
- the call to the previous routine is at $0FDB
- the previous one is called at $0F99
Gotcha...
The program code is the same in each program, making the removal quite easy once one is done. Launch your favorite S16 disassembler (mine is The Flaming Bird Disassembler), go to segment 6 (init) and jump to $0F94 and read below...
The next thread will display the original program protection. The programs can be found on the great Alex Lee's site "What is the Apple IIgs?"
Antoine
5/2010