Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_37.ADF » P/+BH1
P/+BH1
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_37.ADF |
Filename: | P/+BH1 |
Read OK: | ✔ |
File size: | 0CFF bytes |
Load address: | 2B204556 |
Exec address: | D314842 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Personal collection » Acorn ADFS disks » Electron_User_Group » EUG_37.ADF » P/+BH1
- Personal collection » Acorn hard disk » zipped_disks » elk03 » eug37/P/+BH1
File contents
************************************************************************* Mark Bellis, 118, The Lawns, Rolleston-on-Dove, Burton-on-Trent, Staffs, DE13 9DE. Hiding BASIC programs - techniques used in commercial software. For EUG, March 1998. ************************************************************************* Having had a look at games such as CLOGGER, I have found that sometimes a BASIC program is hidden, so that you can't easily copy or hack it. The technique used in CLOGGER is as follows: Characters 3 (printer off), 12 (CLS), 15 (page mode off) and 21 (VDU off) are inserted in REM statements to prevent you from looking at the listing or printing it. I have written a demo using VDU21 and VDU6 to illustrate it. The program will only list as one line - a REM statement containing a message - but the program is much longer. When RUN, it will produce a familiar pattern. I have not put many tricky characters in, to allow you to look at how it works. Try "LIST 20," to see a few more lines, then "LIST xxx," with xxx as the multiple of 10 after the last printed line. Notice how the REM statements take off the first word each time. HOW TO PRODUCE THE EFFECT ------------------------- Write a simple program, such as: 10REM* Demo@ 20PRINT"Hello world" 30REM* program. Be careful to put the *s, @s and spaces in the right places in the REM statements. Then add the following lines: 100 FOR I = PAGE TO TOP 110 IF ?I = 42 THEN ?I = 6 Change *s to CHR$6 120 IF ?I = 64 THEN ?I = 21 Change @s to CHR$21 130 NEXT I Type GOTO 100 and lines 20 and 30 will now be hidden. Following deletion of lines 100-130 the program will appear as one line. Be careful to use an alternative to the * and @ if you use them elsewhere in your programs, and don't use any line numbers where (number MOD 256) is equal to the ASC code of the characters you are using (eg 320 is 01 40 in hex, as 256 + 64 = 320). The way I wrote the demo program was to enter the REM lines first and hide them as above, then renumber them as multiples of 100 with REN. 100,100, and I entered the rest of the program as the other multiples of 10 (with a few extras), splitting it fairly evenly between the REM statements, so as to even out the time taken between the printing of each word of the whole message, in order that the uninitiated user might not notice the effect. For long programs, you will need more REM lines, so that the time between words is kept to a minimum. I suppose the authors of CLOGGER had a program such as this: 10 REM****Clogger. 20 REM****by Me. 30 REM****written whenever. 40 REM****:MODE 5 50 REM****:VDU23,8202;0;0;0; etc... 10000 FOR I = PAGE TO TOP 10010 IF !I = &2A2A2A2A THEN !I = &150F030C 10020 NEXT I line 10010 replaces **** with 12,3,15,21, which will clear the screen (and eject the printer paper),turnoffthe printer, turn off page mode and turn off VDU output when you list the program. I think the authors actually put REM statements about every fourth line, but after a *DUMP CLOGGER 0 E00, and seeing the codes in the program, I wrote something like the reverse of line 10010 above to reveal the code. TIP: It is safer to use a block of *s for the replaceable characters, so that lines such as 810 (3*256+42, or 03 2A hex) are not corrupted by the replacement code.
00000000 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000040 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d 4d 61 72 6b 20 42 |*********.Mark B| 00000050 65 6c 6c 69 73 2c 20 20 31 31 38 2c 20 54 68 65 |ellis, 118, The| 00000060 20 4c 61 77 6e 73 2c 20 20 52 6f 6c 6c 65 73 74 | Lawns, Rollest| 00000070 6f 6e 2d 6f 6e 2d 44 6f 76 65 2c 20 20 42 75 72 |on-on-Dove, Bur| 00000080 74 6f 6e 2d 6f 6e 2d 54 72 65 6e 74 2c 0d 53 74 |ton-on-Trent,.St| 00000090 61 66 66 73 2c 20 20 44 45 31 33 20 39 44 45 2e |affs, DE13 9DE.| 000000a0 0d 48 69 64 69 6e 67 20 42 41 53 49 43 20 70 72 |.Hiding BASIC pr| 000000b0 6f 67 72 61 6d 73 20 2d 20 74 65 63 68 6e 69 71 |ograms - techniq| 000000c0 75 65 73 20 75 73 65 64 20 69 6e 20 63 6f 6d 6d |ues used in comm| 000000d0 65 72 63 69 61 6c 20 73 6f 66 74 77 61 72 65 2e |ercial software.| 000000e0 0d 46 6f 72 20 45 55 47 2c 20 4d 61 72 63 68 20 |.For EUG, March | 000000f0 31 39 39 38 2e 0d 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |1998..**********| 00000100 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a |****************| * 00000130 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0d |***************.| 00000140 0d 48 61 76 69 6e 67 20 68 61 64 20 61 20 6c 6f |.Having had a lo| 00000150 6f 6b 20 61 74 20 67 61 6d 65 73 20 73 75 63 68 |ok at games such| 00000160 20 61 73 20 43 4c 4f 47 47 45 52 2c 20 49 20 68 | as CLOGGER, I h| 00000170 61 76 65 20 66 6f 75 6e 64 20 74 68 61 74 20 73 |ave found that s| 00000180 6f 6d 65 74 69 6d 65 73 0d 61 20 42 41 53 49 43 |ometimes.a BASIC| 00000190 20 70 72 6f 67 72 61 6d 20 69 73 20 68 69 64 64 | program is hidd| 000001a0 65 6e 2c 20 73 6f 20 74 68 61 74 20 79 6f 75 20 |en, so that you | 000001b0 63 61 6e 27 74 20 65 61 73 69 6c 79 20 63 6f 70 |can't easily cop| 000001c0 79 20 6f 72 20 68 61 63 6b 20 69 74 2e 0d 0d 54 |y or hack it...T| 000001d0 68 65 20 74 65 63 68 6e 69 71 75 65 20 75 73 65 |he technique use| 000001e0 64 20 69 6e 20 43 4c 4f 47 47 45 52 20 69 73 20 |d in CLOGGER is | 000001f0 61 73 20 66 6f 6c 6c 6f 77 73 3a 0d 0d 43 68 61 |as follows:..Cha| 00000200 72 61 63 74 65 72 73 20 33 20 28 70 72 69 6e 74 |racters 3 (print| 00000210 65 72 20 6f 66 66 29 2c 20 31 32 20 28 43 4c 53 |er off), 12 (CLS| 00000220 29 2c 20 31 35 20 28 70 61 67 65 20 6d 6f 64 65 |), 15 (page mode| 00000230 20 6f 66 66 29 20 61 6e 64 20 32 31 20 28 56 44 | off) and 21 (VD| 00000240 55 20 6f 66 66 29 0d 61 72 65 20 69 6e 73 65 72 |U off).are inser| 00000250 74 65 64 20 69 6e 20 52 45 4d 20 73 74 61 74 65 |ted in REM state| 00000260 6d 65 6e 74 73 20 74 6f 20 70 72 65 76 65 6e 74 |ments to prevent| 00000270 20 79 6f 75 20 66 72 6f 6d 20 6c 6f 6f 6b 69 6e | you from lookin| 00000280 67 20 61 74 20 74 68 65 20 6c 69 73 74 69 6e 67 |g at the listing| 00000290 0d 6f 72 20 70 72 69 6e 74 69 6e 67 20 69 74 2e |.or printing it.| 000002a0 0d 0d 49 20 68 61 76 65 20 77 72 69 74 74 65 6e |..I have written| 000002b0 20 61 20 64 65 6d 6f 20 75 73 69 6e 67 20 56 44 | a demo using VD| 000002c0 55 32 31 20 61 6e 64 20 56 44 55 36 20 74 6f 20 |U21 and VDU6 to | 000002d0 69 6c 6c 75 73 74 72 61 74 65 20 69 74 2e 0d 0d |illustrate it...| 000002e0 54 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c |The program will| 000002f0 20 6f 6e 6c 79 20 6c 69 73 74 20 61 73 20 6f 6e | only list as on| 00000300 65 20 6c 69 6e 65 20 2d 20 61 20 52 45 4d 20 73 |e line - a REM s| 00000310 74 61 74 65 6d 65 6e 74 20 63 6f 6e 74 61 69 6e |tatement contain| 00000320 69 6e 67 20 61 0d 6d 65 73 73 61 67 65 20 2d 20 |ing a.message - | 00000330 62 75 74 20 74 68 65 20 70 72 6f 67 72 61 6d 20 |but the program | 00000340 69 73 20 6d 75 63 68 20 6c 6f 6e 67 65 72 2e 20 |is much longer. | 00000350 20 57 68 65 6e 20 52 55 4e 2c 20 69 74 20 77 69 | When RUN, it wi| 00000360 6c 6c 20 70 72 6f 64 75 63 65 20 61 0d 66 61 6d |ll produce a.fam| 00000370 69 6c 69 61 72 20 70 61 74 74 65 72 6e 2e 0d 0d |iliar pattern...| 00000380 49 20 68 61 76 65 20 6e 6f 74 20 70 75 74 20 6d |I have not put m| 00000390 61 6e 79 20 74 72 69 63 6b 79 20 63 68 61 72 61 |any tricky chara| 000003a0 63 74 65 72 73 20 69 6e 2c 20 74 6f 20 61 6c 6c |cters in, to all| 000003b0 6f 77 20 79 6f 75 20 74 6f 20 6c 6f 6f 6b 20 61 |ow you to look a| 000003c0 74 20 68 6f 77 0d 69 74 20 77 6f 72 6b 73 2e 20 |t how.it works. | 000003d0 20 54 72 79 20 22 4c 49 53 54 20 32 30 2c 22 20 | Try "LIST 20," | 000003e0 74 6f 20 73 65 65 20 61 20 66 65 77 20 6d 6f 72 |to see a few mor| 000003f0 65 20 6c 69 6e 65 73 2c 20 74 68 65 6e 20 22 4c |e lines, then "L| 00000400 49 53 54 20 78 78 78 2c 22 20 77 69 74 68 0d 78 |IST xxx," with.x| 00000410 78 78 20 61 73 20 74 68 65 20 6d 75 6c 74 69 70 |xx as the multip| 00000420 6c 65 20 6f 66 20 31 30 20 61 66 74 65 72 20 74 |le of 10 after t| 00000430 68 65 20 6c 61 73 74 20 70 72 69 6e 74 65 64 20 |he last printed | 00000440 6c 69 6e 65 2e 0d 0d 4e 6f 74 69 63 65 20 68 6f |line...Notice ho| 00000450 77 20 74 68 65 20 52 45 4d 20 73 74 61 74 65 6d |w the REM statem| 00000460 65 6e 74 73 20 74 61 6b 65 20 6f 66 66 20 74 68 |ents take off th| 00000470 65 20 66 69 72 73 74 20 77 6f 72 64 20 65 61 63 |e first word eac| 00000480 68 20 74 69 6d 65 2e 0d 0d 48 4f 57 20 54 4f 20 |h time...HOW TO | 00000490 50 52 4f 44 55 43 45 20 54 48 45 20 45 46 46 45 |PRODUCE THE EFFE| 000004a0 43 54 0d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |CT.-------------| 000004b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0d 57 72 |------------..Wr| 000004c0 69 74 65 20 61 20 73 69 6d 70 6c 65 20 70 72 6f |ite a simple pro| 000004d0 67 72 61 6d 2c 20 73 75 63 68 20 61 73 3a 0d 31 |gram, such as:.1| 000004e0 30 52 45 4d 2a 20 44 65 6d 6f 40 0d 32 30 50 52 |0REM* Demo@.20PR| 000004f0 49 4e 54 22 48 65 6c 6c 6f 20 77 6f 72 6c 64 22 |INT"Hello world"| 00000500 0d 33 30 52 45 4d 2a 20 70 72 6f 67 72 61 6d 2e |.30REM* program.| 00000510 0d 0d 42 65 20 63 61 72 65 66 75 6c 20 74 6f 20 |..Be careful to | 00000520 70 75 74 20 74 68 65 20 2a 73 2c 20 40 73 20 61 |put the *s, @s a| 00000530 6e 64 20 73 70 61 63 65 73 20 69 6e 20 74 68 65 |nd spaces in the| 00000540 20 72 69 67 68 74 20 70 6c 61 63 65 73 20 69 6e | right places in| 00000550 20 74 68 65 20 52 45 4d 0d 73 74 61 74 65 6d 65 | the REM.stateme| 00000560 6e 74 73 2e 20 20 54 68 65 6e 20 61 64 64 20 74 |nts. Then add t| 00000570 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e |he following lin| 00000580 65 73 3a 0d 31 30 30 20 46 4f 52 20 49 20 3d 20 |es:.100 FOR I = | 00000590 50 41 47 45 20 54 4f 20 54 4f 50 0d 31 31 30 20 |PAGE TO TOP.110 | 000005a0 49 46 20 3f 49 20 3d 20 34 32 20 54 48 45 4e 20 |IF ?I = 42 THEN | 000005b0 3f 49 20 3d 20 36 20 20 20 20 20 20 20 20 20 43 |?I = 6 C| 000005c0 68 61 6e 67 65 20 2a 73 20 74 6f 20 43 48 52 24 |hange *s to CHR$| 000005d0 36 0d 31 32 30 20 49 46 20 3f 49 20 3d 20 36 34 |6.120 IF ?I = 64| 000005e0 20 54 48 45 4e 20 3f 49 20 3d 20 32 31 20 20 20 | THEN ?I = 21 | 000005f0 20 20 20 20 20 43 68 61 6e 67 65 20 40 73 20 74 | Change @s t| 00000600 6f 20 43 48 52 24 32 31 0d 31 33 30 20 4e 45 58 |o CHR$21.130 NEX| 00000610 54 20 49 0d 0d 54 79 70 65 20 47 4f 54 4f 20 31 |T I..Type GOTO 1| 00000620 30 30 20 61 6e 64 20 6c 69 6e 65 73 20 32 30 20 |00 and lines 20 | 00000630 61 6e 64 20 33 30 20 77 69 6c 6c 20 6e 6f 77 20 |and 30 will now | 00000640 62 65 20 68 69 64 64 65 6e 2e 0d 46 6f 6c 6c 6f |be hidden..Follo| 00000650 77 69 6e 67 20 64 65 6c 65 74 69 6f 6e 20 6f 66 |wing deletion of| 00000660 20 6c 69 6e 65 73 20 31 30 30 2d 31 33 30 20 74 | lines 100-130 t| 00000670 68 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 |he program will | 00000680 61 70 70 65 61 72 20 61 73 20 6f 6e 65 20 6c 69 |appear as one li| 00000690 6e 65 2e 0d 0d 42 65 1a 20 63 61 72 65 66 75 6c |ne...Be. careful| 000006a0 20 74 6f 20 75 73 65 20 61 6e 20 61 6c 74 65 72 | to use an alter| 000006b0 6e 61 74 69 76 65 20 74 6f 20 74 68 65 20 2a 20 |native to the * | 000006c0 61 6e 64 20 40 20 69 66 20 79 6f 75 20 75 73 65 |and @ if you use| 000006d0 20 74 68 65 6d 20 65 6c 73 65 77 68 65 72 65 0d | them elsewhere.| 000006e0 69 6e 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 73 |in your programs| 000006f0 2c 20 61 6e 64 20 64 6f 6e 27 74 20 75 73 65 20 |, and don't use | 00000700 61 6e 79 20 6c 69 6e 65 20 6e 75 6d 62 65 72 73 |any line numbers| 00000710 20 77 68 65 72 65 20 28 6e 75 6d 62 65 72 20 4d | where (number M| 00000720 4f 44 20 32 35 36 29 20 69 73 0d 65 71 75 61 6c |OD 256) is.equal| 00000730 20 74 6f 20 74 68 65 20 41 53 43 20 63 6f 64 65 | to the ASC code| 00000740 20 6f 66 20 74 68 65 20 63 68 61 72 61 63 74 65 | of the characte| 00000750 72 73 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 |rs you are using| 00000760 20 28 65 67 20 33 32 30 20 69 73 20 30 31 20 34 | (eg 320 is 01 4| 00000770 30 20 69 6e 0d 68 65 78 2c 20 61 73 20 32 35 36 |0 in.hex, as 256| 00000780 20 2b 20 36 34 20 3d 20 33 32 30 29 2e 0d 0d 54 | + 64 = 320)...T| 00000790 68 65 20 77 61 79 20 49 20 77 72 6f 74 65 20 74 |he way I wrote t| 000007a0 68 65 20 64 65 6d 6f 20 70 72 6f 67 72 61 6d 20 |he demo program | 000007b0 77 61 73 20 74 6f 20 65 6e 74 65 72 20 74 68 65 |was to enter the| 000007c0 20 52 45 4d 20 6c 69 6e 65 73 20 66 69 72 73 74 | REM lines first| 000007d0 20 61 6e 64 20 68 69 64 65 0d 74 68 65 6d 20 61 | and hide.them a| 000007e0 73 20 61 62 6f 76 65 2c 20 74 68 65 6e 20 72 65 |s above, then re| 000007f0 6e 75 6d 62 65 72 20 74 68 65 6d 20 61 73 20 6d |number them as m| 00000800 75 6c 74 69 70 6c 65 73 20 6f 66 20 31 30 30 20 |ultiples of 100 | 00000810 77 69 74 68 20 52 45 4e 2e 20 31 30 30 2c 31 30 |with REN. 100,10| 00000820 30 2c 0d 61 6e 64 20 49 20 65 6e 74 65 72 65 64 |0,.and I entered| 00000830 20 74 68 65 20 72 65 73 74 20 6f 66 20 74 68 65 | the rest of the| 00000840 20 70 72 6f 67 72 61 6d 20 61 73 20 74 68 65 20 | program as the | 00000850 6f 74 68 65 72 20 6d 75 6c 74 69 70 6c 65 73 20 |other multiples | 00000860 6f 66 20 31 30 20 28 77 69 74 68 0d 61 20 66 65 |of 10 (with.a fe| 00000870 77 20 65 78 74 72 61 73 29 2c 20 73 70 6c 69 74 |w extras), split| 00000880 74 69 6e 67 20 69 74 20 66 61 69 72 6c 79 20 65 |ting it fairly e| 00000890 76 65 6e 6c 79 20 62 65 74 77 65 65 6e 20 74 68 |venly between th| 000008a0 65 20 52 45 4d 20 73 74 61 74 65 6d 65 6e 74 73 |e REM statements| 000008b0 2c 20 73 6f 0d 61 73 20 74 6f 20 65 76 65 6e 20 |, so.as to even | 000008c0 6f 75 74 20 74 68 65 20 74 69 6d 65 20 74 61 6b |out the time tak| 000008d0 65 6e 20 62 65 74 77 65 65 6e 20 74 68 65 20 70 |en between the p| 000008e0 72 69 6e 74 69 6e 67 20 6f 66 20 65 61 63 68 20 |rinting of each | 000008f0 77 6f 72 64 20 6f 66 20 74 68 65 0d 77 68 6f 6c |word of the.whol| 00000900 65 20 6d 65 73 73 61 67 65 2c 20 69 6e 20 6f 72 |e message, in or| 00000910 64 65 72 20 74 68 61 74 20 74 68 65 20 75 6e 69 |der that the uni| 00000920 6e 69 74 69 61 74 65 64 20 75 73 65 72 20 6d 69 |nitiated user mi| 00000930 67 68 74 20 6e 6f 74 20 6e 6f 74 69 63 65 20 74 |ght not notice t| 00000940 68 65 0d 65 66 66 65 63 74 2e 0d 0d 46 6f 72 20 |he.effect...For | 00000950 6c 6f 6e 67 20 70 72 6f 67 72 61 6d 73 2c 20 79 |long programs, y| 00000960 6f 75 20 77 69 6c 6c 20 6e 65 65 64 20 6d 6f 72 |ou will need mor| 00000970 65 20 52 45 4d 20 6c 69 6e 65 73 2c 20 73 6f 20 |e REM lines, so | 00000980 74 68 61 74 20 74 68 65 20 74 69 6d 65 20 62 65 |that the time be| 00000990 74 77 65 65 6e 0d 77 6f 72 64 73 20 69 73 20 6b |tween.words is k| 000009a0 65 70 74 20 74 6f 20 61 20 6d 69 6e 69 6d 75 6d |ept to a minimum| 000009b0 2e 0d 0d 49 20 73 75 70 70 6f 73 65 20 74 68 65 |...I suppose the| 000009c0 20 61 75 74 68 6f 72 73 20 6f 66 20 43 4c 4f 47 | authors of CLOG| 000009d0 47 45 52 20 68 61 64 20 61 20 70 72 6f 67 72 61 |GER had a progra| 000009e0 6d 20 73 75 63 68 20 61 73 20 74 68 69 73 3a 0d |m such as this:.| 000009f0 0d 31 30 20 52 45 4d 2a 2a 2a 2a 43 6c 6f 67 67 |.10 REM****Clogg| 00000a00 65 72 2e 0d 32 30 20 52 45 4d 2a 2a 2a 2a 62 79 |er..20 REM****by| 00000a10 20 4d 65 2e 0d 33 30 20 52 45 4d 2a 2a 2a 2a 77 | Me..30 REM****w| 00000a20 72 69 74 74 65 6e 20 77 68 65 6e 65 76 65 72 2e |ritten whenever.| 00000a30 0d 34 30 20 52 45 4d 2a 2a 2a 2a 3a 4d 4f 44 45 |.40 REM****:MODE| 00000a40 20 35 0d 35 30 20 52 45 4d 2a 2a 2a 2a 3a 56 44 | 5.50 REM****:VD| 00000a50 55 32 33 2c 38 32 30 32 3b 30 3b 30 3b 30 3b 0d |U23,8202;0;0;0;.| 00000a60 65 74 63 2e 2e 2e 0d 31 30 30 30 30 20 46 4f 52 |etc....10000 FOR| 00000a70 20 49 20 3d 20 50 41 47 45 20 54 4f 20 54 4f 50 | I = PAGE TO TOP| 00000a80 0d 31 30 30 31 30 20 49 46 20 21 49 20 3d 20 26 |.10010 IF !I = &| 00000a90 32 41 32 41 32 41 32 41 20 54 48 45 4e 20 21 49 |2A2A2A2A THEN !I| 00000aa0 20 3d 20 26 31 35 30 46 30 33 30 43 0d 31 30 30 | = &150F030C.100| 00000ab0 32 30 20 4e 45 58 54 20 49 0d 0d 6c 69 6e 65 20 |20 NEXT I..line | 00000ac0 31 30 30 31 30 20 72 65 70 6c 61 63 65 73 20 2a |10010 replaces *| 00000ad0 2a 2a 2a 20 77 69 74 68 20 31 32 2c 33 2c 31 35 |*** with 12,3,15| 00000ae0 2c 32 31 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 |,21, which will | 00000af0 63 6c 65 61 72 20 74 68 65 20 73 63 72 65 65 6e |clear the screen| 00000b00 20 28 61 6e 64 0d 65 6a 65 63 74 20 74 68 65 20 | (and.eject the | 00000b10 70 72 69 6e 74 65 72 20 70 61 70 65 72 29 2c 1a |printer paper),.| 00000b20 74 75 72 6e 1a 6f 66 66 1a 74 68 65 20 70 72 69 |turn.off.the pri| 00000b30 6e 74 65 72 2c 20 74 75 72 6e 20 6f 66 66 20 70 |nter, turn off p| 00000b40 61 67 65 20 6d 6f 64 65 20 61 6e 64 0d 74 75 72 |age mode and.tur| 00000b50 6e 20 6f 66 66 20 56 44 55 20 6f 75 74 70 75 74 |n off VDU output| 00000b60 20 77 68 65 6e 20 79 6f 75 20 6c 69 73 74 20 74 | when you list t| 00000b70 68 65 20 70 72 6f 67 72 61 6d 2e 0d 0d 49 20 74 |he program...I t| 00000b80 68 69 6e 6b 20 74 68 65 20 61 75 74 68 6f 72 73 |hink the authors| 00000b90 20 61 63 74 75 61 6c 6c 79 20 70 75 74 20 52 45 | actually put RE| 00000ba0 4d 20 73 74 61 74 65 6d 65 6e 74 73 20 61 62 6f |M statements abo| 00000bb0 75 74 20 65 76 65 72 79 20 66 6f 75 72 74 68 20 |ut every fourth | 00000bc0 6c 69 6e 65 2c 0d 62 75 74 20 61 66 74 65 72 20 |line,.but after | 00000bd0 61 20 2a 44 55 4d 50 20 43 4c 4f 47 47 45 52 20 |a *DUMP CLOGGER | 00000be0 30 20 45 30 30 2c 20 61 6e 64 20 73 65 65 69 6e |0 E00, and seein| 00000bf0 67 20 74 68 65 20 63 6f 64 65 73 20 69 6e 20 74 |g the codes in t| 00000c00 68 65 20 70 72 6f 67 72 61 6d 2c 20 49 0d 77 72 |he program, I.wr| 00000c10 6f 74 65 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 |ote something li| 00000c20 6b 65 20 74 68 65 20 72 65 76 65 72 73 65 20 6f |ke the reverse o| 00000c30 66 20 6c 69 6e 65 20 31 30 30 31 30 20 61 62 6f |f line 10010 abo| 00000c40 76 65 20 74 6f 20 72 65 76 65 61 6c 20 74 68 65 |ve to reveal the| 00000c50 20 63 6f 64 65 2e 0d 0d 54 49 50 3a 0d 0d 49 74 | code...TIP:..It| 00000c60 20 69 73 20 73 61 66 65 72 20 74 6f 20 75 73 65 | is safer to use| 00000c70 20 61 20 62 6c 6f 63 6b 20 6f 66 20 2a 73 20 66 | a block of *s f| 00000c80 6f 72 20 74 68 65 20 72 65 70 6c 61 63 65 61 62 |or the replaceab| 00000c90 6c 65 20 63 68 61 72 61 63 74 65 72 73 2c 20 73 |le characters, s| 00000ca0 6f 20 74 68 61 74 0d 6c 69 6e 65 73 20 73 75 63 |o that.lines suc| 00000cb0 68 20 61 73 20 38 31 30 20 28 33 2a 32 35 36 2b |h as 810 (3*256+| 00000cc0 34 32 2c 20 6f 72 20 30 33 20 32 41 20 68 65 78 |42, or 03 2A hex| 00000cd0 29 20 61 72 65 20 6e 6f 74 20 63 6f 72 72 75 70 |) are not corrup| 00000ce0 74 65 64 20 62 79 20 74 68 65 0d 72 65 70 6c 61 |ted by the.repla| 00000cf0 63 65 6d 65 6e 74 20 63 6f 64 65 2e 0d 0d 0d |cement code....| 00000cff