jac@paul.rutgers.edu (Jonathan A. Chandross) (02/03/89)
AWCTTYPA@UIAMVS.BITNET ("David A. Lyons") writes: >It isn't necessarily as simple as "if it loads into memory, it can >be copied," though. What if the program stores important parts of >itself (tables of addresses to important subroutines, which would >always be called through the tables) in areas of memory that will be >overwritten when you go into the monitor? Like the text screen at >$400-7FF, the early part of the keyboard buffer ($200+), and certain >zero-page locations ($00xx). Well, we had a board for the ][+ that would do 2 things. The first was an absolute reset like an integer card would. This is not useful if the program is storing infomation in the keyboard buffer, text screen, etc. The second mode would cause locations x0-x7ff to be moved to address x2000 upon reset. So all you do is hit reset (with move disabled) and see if you need the text screen, etc. If you do, reboot and hit reset with move enabled. Save the various pieces, use a loader to replace them in the proper places in memory, and Voila. Unprotected software. Jonathan A. Chandross ARPA: jac@paul.rutgers.edu UUCP: rutgers!jac@paul.rutgers.edu