home *** CD-ROM | disk | FTP | other *** search
/ Old Hackers Atari User Group Newsletter / Old_Hackers_Atari_User_Group_Newsletter_OHMJ91A.atr / kbastip.txt < prev    next >
Text File  |  2023-02-26  |  5KB  |  1 lines

  1. ¢<><><><><><><><><>><><>><><><><><><><>¢¢      MORE BITS OF BASIC¢      By M. Olin (WAUGI,MACE)¢Reprinted   from  the  Michigan  Atari¢Magazine¢¢¢'PROTECTING' YOUR SOFTWARE¢¢You  say you've written a program, and¢you  spent  a  lot  of hours making it¢"just  right?"   You've  written  some¢pretty nice routines that you're quite¢proud  of,  but  you  don't  want just¢anybody  to have access to it?  Here's¢a  couple of hints that might help you¢keep  some  prying  eyes  from viewing¢your work.¢¢DISABLE THE BREAK KEY¢¢The  very  first  line of your program¢should look like this:¢¢     10 POKE 16,64:POKE 53774,64¢¢Effectively, we have told the computer¢to  ignore  the  fact that the user is¢pressing  the  BREAK  key.  Therefore,¢the  user  cannot  "break  out" of the¢program  and  look at your code.  But,¢that's   only   the   beginning.   Any¢Atarian  who  has had his/her computer¢for more than 2 weeks should know that¢all  you'd  have to do is press RESET,¢and we'd be back to Square 1.¢¢COLD STARTING¢¢Add  the following command to line 10,¢making  sure  to  separate it from the¢previous commands with a colon(:).¢¢     POKE 580,1 ¢¢Now,  whenever  the  user  presses the¢RESET key alone, the computer will act¢almost  as if you had turned the power¢off  and  back  on  again.   In  other¢words,   it  will  "reboot",  and  the¢program   that  was  running  will  be¢erased from memory.¢¢So  far  so  good!   Now  you  need  a¢routine   that  permits  the  approved¢users  to have access to your program,¢but those persons you want to keep out¢will have to be "filtered" somehow.  A¢"password" seems in order here.¢¢     19 DIM PASS$(20)¢     20  INPUT  PASS$:IF  PASS$<>"Your¢Password" THEN NEW:END¢¢All  persons who are using the program¢must  know  the password, which can be¢up to 20 characters long.  Notice that¢it  is  upper/lower  "case sensitive."¢If they enter it wrong, the program is¢erased   from  memory.   Zip.   Kaput.¢Gone.   And,  just  to  make sure that¢"the   enemy"   can't   discover  your¢password    by   staring   over   your¢shoulder,  we're  going  to  make sure¢that  the  characters  you  type never¢appear on the screen.¢¢     15 X=PEEK(559):POKE 559,0¢¢This  command  will turn off the chip,¢called   ANTIC,   that   drives   your¢monitor.   The  screen will turn black¢with  no visible text, and will remain¢in  this  state until you turn it back¢on again, which you will not do unless¢the proper password is entered in line¢20.  if the correct password is given,¢then this line will complete the job:¢¢     25 PRINT "<ESC><SHFT-CLEAR>":POKE¢559,X¢     30 REM Your program starts here.¢¢Let's check our progress:  The program¢won't  run  if  they  don't  know  the¢password.   They can't RESET, and they¢can't press BREAK and LIST the program¢to  look  at  your  password.   What's¢left?¢¢We  have  to find a way to prevent the¢uninvited   user   from   LOADing  the¢program  and  LISTing  the  lines that¢contain  your  password, since none of¢the  above  commands  will take effect¢until   after   the   program   starts¢running.   This  part  gets  a  little¢tricky, so you will want to type it in¢EXACTLY  as it is written here.  After¢your    program   is   completed   and¢"debugged"  to  your satisfaction, you¢need  to  add  these lines.  Note that¢your  program  must  not  ever GOTO or¢GOSUB to these lines.¢¢     32761¢BOTTOM=PEEK(131)*256+PEEK(130¢     ):TOP=PEEK(133)*256+PEEK(132)¢     32762  FOR  X=BOTTOM  TO TOP:POKE¢X,15¢     5:NEXT X¢     32763¢FINISH=PEEK(139)*256+PEEK(138¢     ):POKE            FINISH+2,0:SAVE¢"D:filename.¢     ext":NEW¢¢A WORD OF CAUTION:  Make sure you SAVE¢a  copy  of  your  program  before you¢continue     with     the    following¢instructions.   Store  this  copy in a¢safe place as it is the only copy that¢can  EVER  be  LISTed again.  Not even¢the  approved  password  user can LIST¢your  program once these routines have¢been  performed,  so take good care of¢this "source" disk!¢¢Ready?   Make  sure  the disk on which¢you  want  the  "protected" version of¢your  program  is  in  Drive  1,  then¢type:¢¢     GOTO 32761¢¢and   press   <RETURN>.   Here's  what¢happens:   The  FOR/NEXT  loop in line¢32762  will  cause  all  the  variable¢names   which   are   used   in   your¢program(and  stored  in  the  Variable¢Name   Table)   to  be  replaced  with¢CHR$(155),  the  ATASCII  value in the¢POKE  statement  in line 32762).  When¢this   happens,  the  program  can  no¢longer   be  LISTed,  nor  can  it  be¢LOADed!  In fact, the only way to LOAD¢and  RUN this program ever again is by¢issuing   the   RUN   "D:filename.ext"¢command from BASIC.¢¢And,  there you have it!  A reasonably¢good,  but not absolutely perfect, way¢to "protect" your software.¢¢()  )(  )( )( )( )( )( )( )( )( )( )(¢¢