Home » Personal collection » Acorn hard disk » misc » misc2 » shipw3/Errors

shipw3/Errors

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 hard disk » misc » misc2
Filename: shipw3/Errors
Read OK:
File size: 05FD bytes
Load address: 0000
Exec address: 0000
File contents
   10REM    Jupiter III Error Finder                  by Dominic Ford 1997
   20:
   30MODE6:HIMEM=&1E80:VDU23,1,0;0;0;0;
   40DIMs%(100,1):c=0
   50REPEAT UNTIL INKEY(-99)
   60PROCass
   70*LOAD DATA
   80FORx=0TO159:prev=FNblk(x,0):FORy=1TO59
   90block=FNblk(x,y)
  100IFblock>23 AND prev>7 AND block<>25 AND block<>28 THEN s%(c,0)=x:s%(c,1)=y:c=c+1
  110prev=block
  120NEXT:IF (x MOD 20)=0 THEN VDU7
  125NEXT
  130CLS:FORr=0 TO c-1:PRINT"(";s%(r,0);",";s%(r,1);")",;:NEXT
  140END
  150:
  160DEFFNblk(x,y)
  170?(!&9FC)=x DIV 10:?((!&9FC)+1)=y DIV 10
  180?(!&9FC-2)=x MOD 10:?((!&9FC)-1)=y MOD 10
  190CALL(!&9F8)
  200=?&72
  210:
  220DEFPROCass
  230FORpass=0TO2STEP2:P%=&9F8
  240[OPT pass
  250EQUD blockon
  260EQUD xscr
  270.block JMP blockon
  280.screen LDA#&FF:STAyset:.ylop LDA#&FF:STAxset:INCyset:.xlop INCxset:JSR blockon
  290LDAxset:CMP#9:BEQnexty:JMPxlop
  300.nexty LDAyset:CMP#9:BEQscrend:JMPylop
  310.scrend RTS
  320:
  330.blockon LDA#&20:CLC:ADCxscr:STA&71:LDAyscr:ASL A:ASL A:ASL A:ASL A:CLC:ADC&71:STAscrno
  340LDAscrno:STA&71:LDAyset:PHA:STA&70:PLA:ASL A:ASL A:ASL A:PHA:CLC:ADC&70:STA&70:PLA:ASL A:CLC:ADC&70
  350STA&70:LDYxset:LDAxdata,Y:TAY:LDA(&70),Y:ROL A:ROL A:ROL A:AND#3:STA&72:INY:LDA(&70),Y:LSR A:LSR A:LSR A:LSR A:AND#12
  360CLC:ADC&72:STA&72:LDAxset:LSR A:TAY:LDAhbdat,Y:TAY:LDA(&70),Y:STA&73:LDAxset:AND#1:BNEbit2:LDA&73:ASL A:ROL A:ROL A:JMPfbgot
  370.bit2 LDA&73:ASL A:ROL A
  380.fbgot AND#1:ASL A:ASL A:ASL A:ASL A:CLC:ADC&72:STA&72:RTS
  390.xdata EQUB0:EQUB2:EQUB5:EQUB7:EQUB10:EQUB12:EQUB15:EQUB17:EQUB20:EQUB22
  400.hbdat EQUB4:EQUB9:EQUB14:EQUB19:EQUB24
  410.xset EQUB0:.yset EQUB0:.xscr EQUB0:.yscr EQUB0:.xpos EQUB0:.ypos EQUB0
  420.scrno EQUB 0
  430]:NEXT
  440ENDPROC

G�    Jupiter III Error Finder                  by Dominic Ford 1997
:
�6:�=&1E80:�23,1,0;0;0;0;
(�s%(100,1):c=0
2� � �(-99)
<�ass
F*LOAD DATA
P#�x=0�159:prev=�blk(x,0):�y=1�59
Zblock=�blk(x,y)
dJ�block>23 � prev>7 � block<>25 � block<>28 � s%(c,0)=x:s%(c,1)=y:c=c+1
nprev=block
x�:� (x � 20)=0 � �7
}�
�1�:�r=0 � c-1:�"(";s%(r,0);",";s%(r,1);")",;:�
��
�:
�ݤblk(x,y)
�'?(!&9FC)=x � 10:?((!&9FC)+1)=y � 10
�)?(!&9FC-2)=x � 10:?((!&9FC)-1)=y � 10
��(!&9F8)
�	=?&72
�:
�	��ass
��pass=0�2�2:P%=&9F8
�
[OPT pass
�EQUD blockon

EQUD xscr
.block JMP blockon
S.screen LDA#&FF:STAyset:.ylop LDA#&FF:STAxset:INCyset:.xlop INCxset:JSR blockon
""LDAxset:CMP#9:BEQnexty:JMPxlop
,*.nexty LDAyset:CMP#9:BEQscrend:JMPylop
6.scrend RTS
@:
J[.blockon LDA#&20:CLC:ADCxscr:STA&71:LDAyscr:ASL A:ASL A:ASL A:ASL A:CLC:ADC&71:STAscrno
TgLDAscrno:STA&71:LDAyset:PHA:STA&70:PLA:ASL A:ASL A:ASL A:PHA:CLC:ADC&70:STA&70:PLA:ASL A:CLC:ADC&70
^uSTA&70:LDYxset:LDAxdata,Y:TAY:LDA(&70),Y:ROL A:ROL A:ROL A:�#3:STA&72:INY:LDA(&70),Y:LSR A:LSR A:LSR A:LSR A:�#12
h~CLC:ADC&72:STA&72:LDAxset:LSR A:TAY:LDAhbdat,Y:TAY:LDA(&70),Y:STA&73:LDAxset:�#1:BNEbit2:LDA&73:ASL A:ROL A:ROL A:JMPfbgot
r.bit2 LDA&73:ASL A:ROL A
|<.fbgot �#1:ASL A:ASL A:ASL A:ASL A:CLC:ADC&72:STA&72:RTS
�L.xdata EQUB0:EQUB2:EQUB5:EQUB7:EQUB10:EQUB12:EQUB15:EQUB17:EQUB20:EQUB22
�+.hbdat EQUB4:EQUB9:EQUB14:EQUB19:EQUB24
�K.xset EQUB0:.yset EQUB0:.xscr EQUB0:.yscr EQUB0:.xpos EQUB0:.ypos EQUB0
�.scrno EQUB 0
�]:�
��
�
00000000  0d 00 0a 47 f4 20 20 20  20 4a 75 70 69 74 65 72  |...G.    Jupiter|
00000010  20 49 49 49 20 45 72 72  6f 72 20 46 69 6e 64 65  | III Error Finde|
00000020  72 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |r               |
00000030  20 20 20 62 79 20 44 6f  6d 69 6e 69 63 20 46 6f  |   by Dominic Fo|
00000040  72 64 20 31 39 39 37 0d  00 14 05 3a 0d 00 1e 1d  |rd 1997....:....|
00000050  eb 36 3a d3 3d 26 31 45  38 30 3a ef 32 33 2c 31  |.6:.=&1E80:.23,1|
00000060  2c 30 3b 30 3b 30 3b 30  3b 0d 00 28 12 de 73 25  |,0;0;0;0;..(..s%|
00000070  28 31 30 30 2c 31 29 3a  63 3d 30 0d 00 32 0e f5  |(100,1):c=0..2..|
00000080  20 fd 20 a6 28 2d 39 39  29 0d 00 3c 08 f2 61 73  | . .(-99)..<..as|
00000090  73 0d 00 46 0e 2a 4c 4f  41 44 20 44 41 54 41 0d  |s..F.*LOAD DATA.|
000000a0  00 50 23 e3 78 3d 30 b8  31 35 39 3a 70 72 65 76  |.P#.x=0.159:prev|
000000b0  3d a4 62 6c 6b 28 78 2c  30 29 3a e3 79 3d 31 b8  |=.blk(x,0):.y=1.|
000000c0  35 39 0d 00 5a 13 62 6c  6f 63 6b 3d a4 62 6c 6b  |59..Z.block=.blk|
000000d0  28 78 2c 79 29 0d 00 64  4a e7 62 6c 6f 63 6b 3e  |(x,y)..dJ.block>|
000000e0  32 33 20 80 20 70 72 65  76 3e 37 20 80 20 62 6c  |23 . prev>7 . bl|
000000f0  6f 63 6b 3c 3e 32 35 20  80 20 62 6c 6f 63 6b 3c  |ock<>25 . block<|
00000100  3e 32 38 20 8c 20 73 25  28 63 2c 30 29 3d 78 3a  |>28 . s%(c,0)=x:|
00000110  73 25 28 63 2c 31 29 3d  79 3a 63 3d 63 2b 31 0d  |s%(c,1)=y:c=c+1.|
00000120  00 6e 0e 70 72 65 76 3d  62 6c 6f 63 6b 0d 00 78  |.n.prev=block..x|
00000130  17 ed 3a e7 20 28 78 20  83 20 32 30 29 3d 30 20  |..:. (x . 20)=0 |
00000140  8c 20 ef 37 0d 00 7d 05  ed 0d 00 82 31 db 3a e3  |. .7..}.....1.:.|
00000150  72 3d 30 20 b8 20 63 2d  31 3a f1 22 28 22 3b 73  |r=0 . c-1:."(";s|
00000160  25 28 72 2c 30 29 3b 22  2c 22 3b 73 25 28 72 2c  |%(r,0);",";s%(r,|
00000170  31 29 3b 22 29 22 2c 3b  3a ed 0d 00 8c 05 e0 0d  |1);")",;:.......|
00000180  00 96 05 3a 0d 00 a0 0e  dd a4 62 6c 6b 28 78 2c  |...:......blk(x,|
00000190  79 29 0d 00 aa 27 3f 28  21 26 39 46 43 29 3d 78  |y)...'?(!&9FC)=x|
000001a0  20 81 20 31 30 3a 3f 28  28 21 26 39 46 43 29 2b  | . 10:?((!&9FC)+|
000001b0  31 29 3d 79 20 81 20 31  30 0d 00 b4 29 3f 28 21  |1)=y . 10...)?(!|
000001c0  26 39 46 43 2d 32 29 3d  78 20 83 20 31 30 3a 3f  |&9FC-2)=x . 10:?|
000001d0  28 28 21 26 39 46 43 29  2d 31 29 3d 79 20 83 20  |((!&9FC)-1)=y . |
000001e0  31 30 0d 00 be 0c d6 28  21 26 39 46 38 29 0d 00  |10.....(!&9F8)..|
000001f0  c8 09 3d 3f 26 37 32 0d  00 d2 05 3a 0d 00 dc 09  |..=?&72....:....|
00000200  dd f2 61 73 73 0d 00 e6  17 e3 70 61 73 73 3d 30  |..ass.....pass=0|
00000210  b8 32 88 32 3a 50 25 3d  26 39 46 38 0d 00 f0 0d  |.2.2:P%=&9F8....|
00000220  5b 4f 50 54 20 70 61 73  73 0d 00 fa 10 45 51 55  |[OPT pass....EQU|
00000230  44 20 62 6c 6f 63 6b 6f  6e 0d 01 04 0d 45 51 55  |D blockon....EQU|
00000240  44 20 78 73 63 72 0d 01  0e 16 2e 62 6c 6f 63 6b  |D xscr.....block|
00000250  20 4a 4d 50 20 62 6c 6f  63 6b 6f 6e 0d 01 18 53  | JMP blockon...S|
00000260  2e 73 63 72 65 65 6e 20  4c 44 41 23 26 46 46 3a  |.screen LDA#&FF:|
00000270  53 54 41 79 73 65 74 3a  2e 79 6c 6f 70 20 4c 44  |STAyset:.ylop LD|
00000280  41 23 26 46 46 3a 53 54  41 78 73 65 74 3a 49 4e  |A#&FF:STAxset:IN|
00000290  43 79 73 65 74 3a 2e 78  6c 6f 70 20 49 4e 43 78  |Cyset:.xlop INCx|
000002a0  73 65 74 3a 4a 53 52 20  62 6c 6f 63 6b 6f 6e 0d  |set:JSR blockon.|
000002b0  01 22 22 4c 44 41 78 73  65 74 3a 43 4d 50 23 39  |.""LDAxset:CMP#9|
000002c0  3a 42 45 51 6e 65 78 74  79 3a 4a 4d 50 78 6c 6f  |:BEQnexty:JMPxlo|
000002d0  70 0d 01 2c 2a 2e 6e 65  78 74 79 20 4c 44 41 79  |p..,*.nexty LDAy|
000002e0  73 65 74 3a 43 4d 50 23  39 3a 42 45 51 73 63 72  |set:CMP#9:BEQscr|
000002f0  65 6e 64 3a 4a 4d 50 79  6c 6f 70 0d 01 36 0f 2e  |end:JMPylop..6..|
00000300  73 63 72 65 6e 64 20 52  54 53 0d 01 40 05 3a 0d  |scrend RTS..@.:.|
00000310  01 4a 5b 2e 62 6c 6f 63  6b 6f 6e 20 4c 44 41 23  |.J[.blockon LDA#|
00000320  26 32 30 3a 43 4c 43 3a  41 44 43 78 73 63 72 3a  |&20:CLC:ADCxscr:|
00000330  53 54 41 26 37 31 3a 4c  44 41 79 73 63 72 3a 41  |STA&71:LDAyscr:A|
00000340  53 4c 20 41 3a 41 53 4c  20 41 3a 41 53 4c 20 41  |SL A:ASL A:ASL A|
00000350  3a 41 53 4c 20 41 3a 43  4c 43 3a 41 44 43 26 37  |:ASL A:CLC:ADC&7|
00000360  31 3a 53 54 41 73 63 72  6e 6f 0d 01 54 67 4c 44  |1:STAscrno..TgLD|
00000370  41 73 63 72 6e 6f 3a 53  54 41 26 37 31 3a 4c 44  |Ascrno:STA&71:LD|
00000380  41 79 73 65 74 3a 50 48  41 3a 53 54 41 26 37 30  |Ayset:PHA:STA&70|
00000390  3a 50 4c 41 3a 41 53 4c  20 41 3a 41 53 4c 20 41  |:PLA:ASL A:ASL A|
000003a0  3a 41 53 4c 20 41 3a 50  48 41 3a 43 4c 43 3a 41  |:ASL A:PHA:CLC:A|
000003b0  44 43 26 37 30 3a 53 54  41 26 37 30 3a 50 4c 41  |DC&70:STA&70:PLA|
000003c0  3a 41 53 4c 20 41 3a 43  4c 43 3a 41 44 43 26 37  |:ASL A:CLC:ADC&7|
000003d0  30 0d 01 5e 75 53 54 41  26 37 30 3a 4c 44 59 78  |0..^uSTA&70:LDYx|
000003e0  73 65 74 3a 4c 44 41 78  64 61 74 61 2c 59 3a 54  |set:LDAxdata,Y:T|
000003f0  41 59 3a 4c 44 41 28 26  37 30 29 2c 59 3a 52 4f  |AY:LDA(&70),Y:RO|
00000400  4c 20 41 3a 52 4f 4c 20  41 3a 52 4f 4c 20 41 3a  |L A:ROL A:ROL A:|
00000410  80 23 33 3a 53 54 41 26  37 32 3a 49 4e 59 3a 4c  |.#3:STA&72:INY:L|
00000420  44 41 28 26 37 30 29 2c  59 3a 4c 53 52 20 41 3a  |DA(&70),Y:LSR A:|
00000430  4c 53 52 20 41 3a 4c 53  52 20 41 3a 4c 53 52 20  |LSR A:LSR A:LSR |
00000440  41 3a 80 23 31 32 0d 01  68 7e 43 4c 43 3a 41 44  |A:.#12..h~CLC:AD|
00000450  43 26 37 32 3a 53 54 41  26 37 32 3a 4c 44 41 78  |C&72:STA&72:LDAx|
00000460  73 65 74 3a 4c 53 52 20  41 3a 54 41 59 3a 4c 44  |set:LSR A:TAY:LD|
00000470  41 68 62 64 61 74 2c 59  3a 54 41 59 3a 4c 44 41  |Ahbdat,Y:TAY:LDA|
00000480  28 26 37 30 29 2c 59 3a  53 54 41 26 37 33 3a 4c  |(&70),Y:STA&73:L|
00000490  44 41 78 73 65 74 3a 80  23 31 3a 42 4e 45 62 69  |DAxset:.#1:BNEbi|
000004a0  74 32 3a 4c 44 41 26 37  33 3a 41 53 4c 20 41 3a  |t2:LDA&73:ASL A:|
000004b0  52 4f 4c 20 41 3a 52 4f  4c 20 41 3a 4a 4d 50 66  |ROL A:ROL A:JMPf|
000004c0  62 67 6f 74 0d 01 72 1c  2e 62 69 74 32 20 4c 44  |bgot..r..bit2 LD|
000004d0  41 26 37 33 3a 41 53 4c  20 41 3a 52 4f 4c 20 41  |A&73:ASL A:ROL A|
000004e0  0d 01 7c 3c 2e 66 62 67  6f 74 20 80 23 31 3a 41  |..|<.fbgot .#1:A|
000004f0  53 4c 20 41 3a 41 53 4c  20 41 3a 41 53 4c 20 41  |SL A:ASL A:ASL A|
00000500  3a 41 53 4c 20 41 3a 43  4c 43 3a 41 44 43 26 37  |:ASL A:CLC:ADC&7|
00000510  32 3a 53 54 41 26 37 32  3a 52 54 53 0d 01 86 4c  |2:STA&72:RTS...L|
00000520  2e 78 64 61 74 61 20 45  51 55 42 30 3a 45 51 55  |.xdata EQUB0:EQU|
00000530  42 32 3a 45 51 55 42 35  3a 45 51 55 42 37 3a 45  |B2:EQUB5:EQUB7:E|
00000540  51 55 42 31 30 3a 45 51  55 42 31 32 3a 45 51 55  |QUB10:EQUB12:EQU|
00000550  42 31 35 3a 45 51 55 42  31 37 3a 45 51 55 42 32  |B15:EQUB17:EQUB2|
00000560  30 3a 45 51 55 42 32 32  0d 01 90 2b 2e 68 62 64  |0:EQUB22...+.hbd|
00000570  61 74 20 45 51 55 42 34  3a 45 51 55 42 39 3a 45  |at EQUB4:EQUB9:E|
00000580  51 55 42 31 34 3a 45 51  55 42 31 39 3a 45 51 55  |QUB14:EQUB19:EQU|
00000590  42 32 34 0d 01 9a 4b 2e  78 73 65 74 20 45 51 55  |B24...K.xset EQU|
000005a0  42 30 3a 2e 79 73 65 74  20 45 51 55 42 30 3a 2e  |B0:.yset EQUB0:.|
000005b0  78 73 63 72 20 45 51 55  42 30 3a 2e 79 73 63 72  |xscr EQUB0:.yscr|
000005c0  20 45 51 55 42 30 3a 2e  78 70 6f 73 20 45 51 55  | EQUB0:.xpos EQU|
000005d0  42 30 3a 2e 79 70 6f 73  20 45 51 55 42 30 0d 01  |B0:.ypos EQUB0..|
000005e0  a4 11 2e 73 63 72 6e 6f  20 45 51 55 42 20 30 0d  |...scrno EQUB 0.|
000005f0  01 ae 07 5d 3a ed 0d 01  b8 05 e1 0d ff           |...]:........|
000005fd