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:

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
P/+BH1.m0
P/+BH1.m1
P/+BH1.m2
P/+BH1.m4
P/+BH1.m5