Home » Personal collection » Acorn ADFS disks » Electron » Cheat_finder.ADF » CHECK

CHECK

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 » Cheat_finder.ADF
Filename: CHECK
Read OK:
File size: 05AE bytes
Load address: FFFF1D00
Exec address: FFFF8023
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10 code=&A00
   20 osbyte=&FFF4:oswrch=&FFEE:osnewl=&FFE7:filev=&212:findv=&21C
   30 FOR pass=0 TO 2 STEP 2:P%=code:[OPTpass
   40 SEI:LDAfilev:STAoldvec:LDAfilev+1:STAoldvec+1:LDA#(start MOD256):STAfilev:LDA#(start DIV256):STAfilev+1
   50 LDAfindv:STAoldfvec:LDAfindv+1:STAoldfvec+1:LDA#(openout MOD256):STAfindv:LDA#(openout DIV256):STAfindv+1:CLI:RTS
   60 .openout CMP#&80:BEQfcheck:JMP(oldfvec)
   70 .fcheck PHA:LDA#1:STAflag:STXblock:STYblock+1:JMPread
   80 .start CMP#0:BEQcheck:CMP#7:BEQcheck:JMPreturn
   90 .check PHA:STXadd+1:STYadd+2
  100 JSRadd:STAblock
  110 INCadd+1:JSRadd:STAblock+1
  120 .read LDX#(block MOD256):LDY#(block DIV256):LDA#5:JSRreturn \read calalogue entry
  130 CMP#1:BNEok:LDAblock+&E:AND#8:BNEok
  140 JSRosnewl:LDX#0:.loop LDAtext,X:JSRoswrch:INX:CMP#0:BNEloop
  150 LDA#0:STAkeyno:.waitloop LDX#0:LDY#1:LDA#&81:JSRosbyte:BCCkey:CPY#&1B:BNEwaitloop
  160 .no JSRosnewl:LDXadd+1:LDYadd+2:DEX:PLA
  170 BRK:EQUB&92:EQUS"Aborted":BRK
  180 .key TXA:JSRoswrch:LDXkeyno:CMPyes1,X:BEQy:CMPyes2,X:BNEno:.y INX:STXkeyno:CPX#4:BNEwaitloop:JSRosnewl
  190 .ok LDAflag:BNEfindend:LDXadd+1:LDYadd+2:DEX:PLA
  200 .return JMP(oldvec)
  210 .findend LDA#0:STAflag:LDXblock:LDYblock+1:PLA:JMP(oldfvec)
  220 .add LDA&FFFF:RTS
  230 .text EQUS"File exists - Delete old version?":EQUB0
  240 .yes1 EQUS"YES":EQUB13:.yes2 EQUS"yes":EQUB13
  250 .oldvec EQUW0:.oldfvec EQUW0:.flag EQUB0:.keyno EQUB0:.block
  260 ]:NEXT pass
  270 INPUT"Filename for code",filename$
  280 OSCLI"SAVE "+filename$+" "+STR$~code+" "+STR$~P%

 code=&A00
A osbyte=&FFF4:oswrch=&FFEE:osnewl=&FFE7:filev=&212:findv=&21C
& � pass=0 � 2 � 2:P%=code:[OPTpass
(h SEI:LDAfilev:STAoldvec:LDAfilev+1:STAoldvec+1:LDA#(start �256):STAfilev:LDA#(start �256):STAfilev+1
2r LDAfindv:STAoldfvec:LDAfindv+1:STAoldfvec+1:LDA#(openout �256):STAfindv:LDA#(openout �256):STAfindv+1:CLI:RTS
<, .openout CMP#&80:BEQfcheck:JMP(oldfvec)
F: .fcheck PHA:LDA#1:STAflag:STXblock:STYblock+1:JMPread
P3 .start CMP#0:BEQcheck:CMP#7:BEQcheck:JMPreturn
Z! .check PHA:STXadd+1:STYadd+2
d JSRadd:STAblock
n INCadd+1:JSRadd:STAblock+1
xR .read LDX#(block �256):LDY#(block �256):LDA#5:JSRreturn \read calalogue entry
�& CMP#1:BNEok:LDAblock+&E:�#8:BNEok
�@ JSRosnewl:LDX#0:.loop LDAtext,X:JSRoswrch:INX:CMP#0:BNEloop
�V LDA#0:STAkeyno:.waitloop LDX#0:LDY#1:LDA#&81:JSRosbyte:BCCkey:CPY#&1B:BNEwaitloop
�, .no JSRosnewl:LDXadd+1:LDYadd+2:DEX:PLA
�" BRK:EQUB&92:EQUS"Aborted":BRK
�k .key TXA:JSRoswrch:LDXkeyno:CMPyes1,X:BEQy:CMPyes2,X:BNEno:.y INX:STXkeyno:CPX#4:BNEwaitloop:JSRosnewl
�5 .ok LDAflag:BNEfindend:LDXadd+1:LDYadd+2:DEX:PLA
� .return JMP(oldvec)
�@ .findend LDA#0:STAflag:LDXblock:LDYblock+1:PLA:JMP(oldfvec)
� .add LDA&FFFF:RTS
�8 .text EQUS"File exists - Delete old version?":EQUB0
�2 .yes1 EQUS"YES":EQUB13:.yes2 EQUS"yes":EQUB13
�A .oldvec EQUW0:.oldfvec EQUW0:.flag EQUB0:.keyno EQUB0:.block

 ]:� pass
# �"Filename for code",filename$
+ �"SAVE "+filename$+" "+�~code+" "+�~P%
�
00000000  0d 00 0a 0e 20 63 6f 64  65 3d 26 41 30 30 0d 00  |.... code=&A00..|
00000010  14 41 20 6f 73 62 79 74  65 3d 26 46 46 46 34 3a  |.A osbyte=&FFF4:|
00000020  6f 73 77 72 63 68 3d 26  46 46 45 45 3a 6f 73 6e  |oswrch=&FFEE:osn|
00000030  65 77 6c 3d 26 46 46 45  37 3a 66 69 6c 65 76 3d  |ewl=&FFE7:filev=|
00000040  26 32 31 32 3a 66 69 6e  64 76 3d 26 32 31 43 0d  |&212:findv=&21C.|
00000050  00 1e 26 20 e3 20 70 61  73 73 3d 30 20 b8 20 32  |..& . pass=0 . 2|
00000060  20 88 20 32 3a 50 25 3d  63 6f 64 65 3a 5b 4f 50  | . 2:P%=code:[OP|
00000070  54 70 61 73 73 0d 00 28  68 20 53 45 49 3a 4c 44  |Tpass..(h SEI:LD|
00000080  41 66 69 6c 65 76 3a 53  54 41 6f 6c 64 76 65 63  |Afilev:STAoldvec|
00000090  3a 4c 44 41 66 69 6c 65  76 2b 31 3a 53 54 41 6f  |:LDAfilev+1:STAo|
000000a0  6c 64 76 65 63 2b 31 3a  4c 44 41 23 28 73 74 61  |ldvec+1:LDA#(sta|
000000b0  72 74 20 83 32 35 36 29  3a 53 54 41 66 69 6c 65  |rt .256):STAfile|
000000c0  76 3a 4c 44 41 23 28 73  74 61 72 74 20 81 32 35  |v:LDA#(start .25|
000000d0  36 29 3a 53 54 41 66 69  6c 65 76 2b 31 0d 00 32  |6):STAfilev+1..2|
000000e0  72 20 4c 44 41 66 69 6e  64 76 3a 53 54 41 6f 6c  |r LDAfindv:STAol|
000000f0  64 66 76 65 63 3a 4c 44  41 66 69 6e 64 76 2b 31  |dfvec:LDAfindv+1|
00000100  3a 53 54 41 6f 6c 64 66  76 65 63 2b 31 3a 4c 44  |:STAoldfvec+1:LD|
00000110  41 23 28 6f 70 65 6e 6f  75 74 20 83 32 35 36 29  |A#(openout .256)|
00000120  3a 53 54 41 66 69 6e 64  76 3a 4c 44 41 23 28 6f  |:STAfindv:LDA#(o|
00000130  70 65 6e 6f 75 74 20 81  32 35 36 29 3a 53 54 41  |penout .256):STA|
00000140  66 69 6e 64 76 2b 31 3a  43 4c 49 3a 52 54 53 0d  |findv+1:CLI:RTS.|
00000150  00 3c 2c 20 2e 6f 70 65  6e 6f 75 74 20 43 4d 50  |.<, .openout CMP|
00000160  23 26 38 30 3a 42 45 51  66 63 68 65 63 6b 3a 4a  |#&80:BEQfcheck:J|
00000170  4d 50 28 6f 6c 64 66 76  65 63 29 0d 00 46 3a 20  |MP(oldfvec)..F: |
00000180  2e 66 63 68 65 63 6b 20  50 48 41 3a 4c 44 41 23  |.fcheck PHA:LDA#|
00000190  31 3a 53 54 41 66 6c 61  67 3a 53 54 58 62 6c 6f  |1:STAflag:STXblo|
000001a0  63 6b 3a 53 54 59 62 6c  6f 63 6b 2b 31 3a 4a 4d  |ck:STYblock+1:JM|
000001b0  50 72 65 61 64 0d 00 50  33 20 2e 73 74 61 72 74  |Pread..P3 .start|
000001c0  20 43 4d 50 23 30 3a 42  45 51 63 68 65 63 6b 3a  | CMP#0:BEQcheck:|
000001d0  43 4d 50 23 37 3a 42 45  51 63 68 65 63 6b 3a 4a  |CMP#7:BEQcheck:J|
000001e0  4d 50 72 65 74 75 72 6e  0d 00 5a 21 20 2e 63 68  |MPreturn..Z! .ch|
000001f0  65 63 6b 20 50 48 41 3a  53 54 58 61 64 64 2b 31  |eck PHA:STXadd+1|
00000200  3a 53 54 59 61 64 64 2b  32 0d 00 64 14 20 4a 53  |:STYadd+2..d. JS|
00000210  52 61 64 64 3a 53 54 41  62 6c 6f 63 6b 0d 00 6e  |Radd:STAblock..n|
00000220  1f 20 49 4e 43 61 64 64  2b 31 3a 4a 53 52 61 64  |. INCadd+1:JSRad|
00000230  64 3a 53 54 41 62 6c 6f  63 6b 2b 31 0d 00 78 52  |d:STAblock+1..xR|
00000240  20 2e 72 65 61 64 20 4c  44 58 23 28 62 6c 6f 63  | .read LDX#(bloc|
00000250  6b 20 83 32 35 36 29 3a  4c 44 59 23 28 62 6c 6f  |k .256):LDY#(blo|
00000260  63 6b 20 81 32 35 36 29  3a 4c 44 41 23 35 3a 4a  |ck .256):LDA#5:J|
00000270  53 52 72 65 74 75 72 6e  20 5c 72 65 61 64 20 63  |SRreturn \read c|
00000280  61 6c 61 6c 6f 67 75 65  20 65 6e 74 72 79 0d 00  |alalogue entry..|
00000290  82 26 20 43 4d 50 23 31  3a 42 4e 45 6f 6b 3a 4c  |.& CMP#1:BNEok:L|
000002a0  44 41 62 6c 6f 63 6b 2b  26 45 3a 80 23 38 3a 42  |DAblock+&E:.#8:B|
000002b0  4e 45 6f 6b 0d 00 8c 40  20 4a 53 52 6f 73 6e 65  |NEok...@ JSRosne|
000002c0  77 6c 3a 4c 44 58 23 30  3a 2e 6c 6f 6f 70 20 4c  |wl:LDX#0:.loop L|
000002d0  44 41 74 65 78 74 2c 58  3a 4a 53 52 6f 73 77 72  |DAtext,X:JSRoswr|
000002e0  63 68 3a 49 4e 58 3a 43  4d 50 23 30 3a 42 4e 45  |ch:INX:CMP#0:BNE|
000002f0  6c 6f 6f 70 0d 00 96 56  20 4c 44 41 23 30 3a 53  |loop...V LDA#0:S|
00000300  54 41 6b 65 79 6e 6f 3a  2e 77 61 69 74 6c 6f 6f  |TAkeyno:.waitloo|
00000310  70 20 4c 44 58 23 30 3a  4c 44 59 23 31 3a 4c 44  |p LDX#0:LDY#1:LD|
00000320  41 23 26 38 31 3a 4a 53  52 6f 73 62 79 74 65 3a  |A#&81:JSRosbyte:|
00000330  42 43 43 6b 65 79 3a 43  50 59 23 26 31 42 3a 42  |BCCkey:CPY#&1B:B|
00000340  4e 45 77 61 69 74 6c 6f  6f 70 0d 00 a0 2c 20 2e  |NEwaitloop..., .|
00000350  6e 6f 20 4a 53 52 6f 73  6e 65 77 6c 3a 4c 44 58  |no JSRosnewl:LDX|
00000360  61 64 64 2b 31 3a 4c 44  59 61 64 64 2b 32 3a 44  |add+1:LDYadd+2:D|
00000370  45 58 3a 50 4c 41 0d 00  aa 22 20 42 52 4b 3a 45  |EX:PLA..." BRK:E|
00000380  51 55 42 26 39 32 3a 45  51 55 53 22 41 62 6f 72  |QUB&92:EQUS"Abor|
00000390  74 65 64 22 3a 42 52 4b  0d 00 b4 6b 20 2e 6b 65  |ted":BRK...k .ke|
000003a0  79 20 54 58 41 3a 4a 53  52 6f 73 77 72 63 68 3a  |y TXA:JSRoswrch:|
000003b0  4c 44 58 6b 65 79 6e 6f  3a 43 4d 50 79 65 73 31  |LDXkeyno:CMPyes1|
000003c0  2c 58 3a 42 45 51 79 3a  43 4d 50 79 65 73 32 2c  |,X:BEQy:CMPyes2,|
000003d0  58 3a 42 4e 45 6e 6f 3a  2e 79 20 49 4e 58 3a 53  |X:BNEno:.y INX:S|
000003e0  54 58 6b 65 79 6e 6f 3a  43 50 58 23 34 3a 42 4e  |TXkeyno:CPX#4:BN|
000003f0  45 77 61 69 74 6c 6f 6f  70 3a 4a 53 52 6f 73 6e  |Ewaitloop:JSRosn|
00000400  65 77 6c 0d 00 be 35 20  2e 6f 6b 20 4c 44 41 66  |ewl...5 .ok LDAf|
00000410  6c 61 67 3a 42 4e 45 66  69 6e 64 65 6e 64 3a 4c  |lag:BNEfindend:L|
00000420  44 58 61 64 64 2b 31 3a  4c 44 59 61 64 64 2b 32  |DXadd+1:LDYadd+2|
00000430  3a 44 45 58 3a 50 4c 41  0d 00 c8 18 20 2e 72 65  |:DEX:PLA.... .re|
00000440  74 75 72 6e 20 4a 4d 50  28 6f 6c 64 76 65 63 29  |turn JMP(oldvec)|
00000450  0d 00 d2 40 20 2e 66 69  6e 64 65 6e 64 20 4c 44  |...@ .findend LD|
00000460  41 23 30 3a 53 54 41 66  6c 61 67 3a 4c 44 58 62  |A#0:STAflag:LDXb|
00000470  6c 6f 63 6b 3a 4c 44 59  62 6c 6f 63 6b 2b 31 3a  |lock:LDYblock+1:|
00000480  50 4c 41 3a 4a 4d 50 28  6f 6c 64 66 76 65 63 29  |PLA:JMP(oldfvec)|
00000490  0d 00 dc 16 20 2e 61 64  64 20 4c 44 41 26 46 46  |.... .add LDA&FF|
000004a0  46 46 3a 52 54 53 0d 00  e6 38 20 2e 74 65 78 74  |FF:RTS...8 .text|
000004b0  20 45 51 55 53 22 46 69  6c 65 20 65 78 69 73 74  | EQUS"File exist|
000004c0  73 20 2d 20 44 65 6c 65  74 65 20 6f 6c 64 20 76  |s - Delete old v|
000004d0  65 72 73 69 6f 6e 3f 22  3a 45 51 55 42 30 0d 00  |ersion?":EQUB0..|
000004e0  f0 32 20 2e 79 65 73 31  20 45 51 55 53 22 59 45  |.2 .yes1 EQUS"YE|
000004f0  53 22 3a 45 51 55 42 31  33 3a 2e 79 65 73 32 20  |S":EQUB13:.yes2 |
00000500  45 51 55 53 22 79 65 73  22 3a 45 51 55 42 31 33  |EQUS"yes":EQUB13|
00000510  0d 00 fa 41 20 2e 6f 6c  64 76 65 63 20 45 51 55  |...A .oldvec EQU|
00000520  57 30 3a 2e 6f 6c 64 66  76 65 63 20 45 51 55 57  |W0:.oldfvec EQUW|
00000530  30 3a 2e 66 6c 61 67 20  45 51 55 42 30 3a 2e 6b  |0:.flag EQUB0:.k|
00000540  65 79 6e 6f 20 45 51 55  42 30 3a 2e 62 6c 6f 63  |eyno EQUB0:.bloc|
00000550  6b 0d 01 04 0d 20 5d 3a  ed 20 70 61 73 73 0d 01  |k.... ]:. pass..|
00000560  0e 23 20 e8 22 46 69 6c  65 6e 61 6d 65 20 66 6f  |.# ."Filename fo|
00000570  72 20 63 6f 64 65 22 2c  66 69 6c 65 6e 61 6d 65  |r code",filename|
00000580  24 0d 01 18 2b 20 ff 22  53 41 56 45 20 22 2b 66  |$...+ ."SAVE "+f|
00000590  69 6c 65 6e 61 6d 65 24  2b 22 20 22 2b c3 7e 63  |ilename$+" "+.~c|
000005a0  6f 64 65 2b 22 20 22 2b  c3 7e 50 25 0d ff        |ode+" "+.~P%..|
000005ae
CHECK.m0
CHECK.m1
CHECK.m2
CHECK.m4
CHECK.m5