Remember when trying to figure out what a program did use to be fun? The following is an old Integer Basic program. Can anybody tell me: A) What it does? B) How does it do it? 40 REM WRITTEN BY ALOYSIS T. BURGERKING, C/O APPLE COMPUTER CONTRIBUTED SOFTWARE BANK 50 POKE PEEK (-7782),47: POKE PEEK (-4710),183:J=4312: GOSUB RND (521): PRINT : GOTO RND (1615) 60 DIM A\$(126): IF J THEN DIM A\$( RND (6449)) 70 A\$="BHRIAAAIADBGRJWCCBADJFSFJAAAABBIUIAHAJRGAAAABA RCUIAHADUJLDRCXQPZABBCBAAAJHEATKTHTOUEUHEBABAFCAAAIBAB": RETURN 80 FOR I= RND (11489) TO RND (97) STEP 2 ^ (4 ^ (Q)) 82 GOSUB RND (1891): GOSUB RND (28181): POKE PEEK (-5607),148: POKE PEEK (-7686),246: NEXT I: GOTO RND (3607): LIST 90 GOSUB RND (423): FOR I= RND (2167) TO RND (21227) STEP -12+(2 ^ 4-2): GOSUB RND (436): GOSUB RND (467) 95 POKE PEEK (-7776),64: POKE PEEK (-7101),215: NEXT I: GOSUB RND (2767): GOSUB RND (17417): END 100 RXQ=(( ASC( A\$(I))-(10 ^ 2+3 ^ 4+(8-1) ^ 2-6 ^ 2-1))*100+( ASC( A\$(I+7 ^ Q))-(19 ^ 2-168))*10)/(2*(5 ^ (3 ^ ((RXY243): POKE 81+RQX+QRX-256*(XRQ>127)+(XRQ-255*(XRQ>127))*256,RXQ: RETURN 1500 POKE 33,30: PRINT : LIST : RETURN Here are the original docs that came with this program. Good luck! =+=+=+=+=+=+=+=+ Even though it may seem improbable, every single line in this program is executed at least once during its RUNning, and every line is necessary to its proper operation. INSTRUCTIONS ============ Type the program into Integer Basic. Then, SAVE the program onto cassette (MP: What?!?) or Disk before RUNning, as the program will be changed substantially during RUN time. After SAVEing, type "RUN". There will be a pause for a few seconds, after which a single word will appear and the cursor will return. If this does not happen, type "NEW", reLOAD the program and check it for accuracy. A single digit off anywhere will bomb the program entirely. Once the program has properly executed, LIST it. Surprise! Now try to figure it out. A few hints: The first two statements in line 50 are the most critical to breaking the code. -7782 and -4710 are ROM addresses; they will always contain the same numbers. After you discover these numbers, PEEK the locations to which they refer more than once. Things are not always as they seem. Use of the TRACE mode during RUN time should bear out your suspicions. After RUNning the program and pondering the results, POKE 202,112 and POKE 203,18. This will restore what is left of the original program. The code for the changes in the program are stored in A\$ and transferred to RXQ in line 100. Simplify the formulas will aid in understanding what is being accomplished. =+=+=+=+=+=+=+=+ Mark R. Percival - RTC Host - Syndicomm Online Apple II Forum "Midweek Madness!" Every Wednesday Night : 7:00 PM - 9:00 PM Pacific Time http://www.syndicomm.com