Home » Personal collection » Acorn ADFS disks » Electron » Utilities_2.ADF » UTILITIES/BRAKER

UTILITIES/BRAKER

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 » Utilities_2.ADF
Filename: UTILITIES/BRAKER
Read OK:
File size: 0474 bytes
Load address: FFFF0E00
Exec address: FFFF8023
File contents
   10REM
   20REM
   30REM
   40MODE 6
   50*KEY10 OLDMRUNM
   60IF ?&20B<&80 CALL!-4
   70PRINT'"Braker...puts the brakes on!"
   80U%=FNkey("UP")
   90D%=FNkey("DOWN")
  100PRINT"Where shall I store the code?"
  110PRINT"(Hit RETURN if your not sure)":*FX21
  120INPUT"Address=&"a$
  130IF a$="" a=&110 ELSE a=EVAL("&"+a$)
  140vector=&20A
  150FOR i=0 TO 2 STEP 2
  160P%=a
  170[OPT i
  180SEI
  190LDA vector
  200STA osbyte+1
  210LDA vector+1
  220STA osbyte+2
  230LDA #braker MOD 256
  240STA vector
  250LDA #braker DIV 256 
  260STA vector+1   
  270CLI
  280RTS
  300.braker
  310PHP:PHA:TYA:PHA:TXA:PHA
  320LDA #&81
  330LDX #256-D%
  340LDY #&FF
  350JSR osbyte
  360TYA:BEQ slower
  370.faster
  380DEC delay:BNE wait:INC delay:BNE wait
  390.slower
  400LDA #&81:LDX #256-U%:LDY #255:JSR osbyte
  410TYA:BEQ wait
  420INC delay:BNE wait:DEC delay
  430.wait
  440LDA delay:PHA
  450LDX #0
  460.loop
  470DEX:BNE loop
  480DEC delay:BNE loop
  490PLA:STA delay
  500PLA:TAX:PLA:TAY:PLA:PLP
  510.osbyte
  520JMP 0
  540.delay
  550EQUB 1
  560]
  570NEXT
  580CALL a
  590PRINT'"Now load and run the game."
  600PRINT'"BREAK disables the routine."
  610END
  630DEF FNkey(a$)  
  640PRINT'"Hold down the speed "a$" key:";
  650 K%=0
  660K%=K%+1:IF K%=127 K%=1
  670IF INKEY-K% ELSE 660
  680PRINT"ok"CHR$7:*FX21
  690IF INKEY-K% GOTO 690
  700=K%

�
�
�
(� 6
2*KEY10 OLDMRUNM
<� ?&20B<&80 �!-4
F$�'"Braker...puts the brakes on!"
PU%=�key("UP")
ZD%=�key("DOWN")
d$�"Where shall I store the code?"
n*�"(Hit RETURN if your not sure)":*FX21
x�"Address=&"a$
� � a$="" a=&110 � a=�("&"+a$)
�vector=&20A
�� i=0 � 2 � 2
�P%=a
�
[OPT i
�SEI
�LDA vector
�STA osbyte+1
�LDA vector+1
�STA osbyte+2
�LDA #braker � 256
�STA vector
�LDA #braker � 256 
STA vector+1   
CLI
RTS
,.braker
6PHP:PHA:TYA:PHA:TXA:PHA
@LDA #&81
JLDX #256-D%
TLDY #&FF
^JSR osbyte
hTYA:BEQ slower
r.faster
|)DEC delay:BNE wait:INC delay:BNE wait
�.slower
�,LDA #&81:LDX #256-U%:LDY #255:JSR osbyte
�TYA:BEQ wait
� INC delay:BNE wait:DEC delay
�	.wait
�LDA delay:PHA
�
LDX #0
�	.loop
�DEX:BNE loop
�DEC delay:BNE loop
�PLA:STA delay
�PLA:TAX:PLA:TAY:PLA:PLP
�.osbyte
	JMP 0

.delay
&
EQUB 1
0]
:�
D� a
N"�'"Now load and run the game."
X#�'"BREAK disables the routine."
b�
v� �key(a$)  
�&�'"Hold down the speed "a$" key:";
�	 K%=0
�K%=K%+1:� K%=127 K%=1
�� �-K% � �tTB
��"ok"�7:*FX21
�� �-K% � �trB
�=K%
�
00000000  0d 00 0a 05 f4 0d 00 14  05 f4 0d 00 1e 05 f4 0d  |................|
00000010  00 28 07 eb 20 36 0d 00  32 13 2a 4b 45 59 31 30  |.(.. 6..2.*KEY10|
00000020  20 4f 4c 44 4d 52 55 4e  4d 0d 00 3c 14 e7 20 3f  | OLDMRUNM..<.. ?|
00000030  26 32 30 42 3c 26 38 30  20 d6 21 2d 34 0d 00 46  |&20B<&80 .!-4..F|
00000040  24 f1 27 22 42 72 61 6b  65 72 2e 2e 2e 70 75 74  |$.'"Braker...put|
00000050  73 20 74 68 65 20 62 72  61 6b 65 73 20 6f 6e 21  |s the brakes on!|
00000060  22 0d 00 50 11 55 25 3d  a4 6b 65 79 28 22 55 50  |"..P.U%=.key("UP|
00000070  22 29 0d 00 5a 13 44 25  3d a4 6b 65 79 28 22 44  |")..Z.D%=.key("D|
00000080  4f 57 4e 22 29 0d 00 64  24 f1 22 57 68 65 72 65  |OWN")..d$."Where|
00000090  20 73 68 61 6c 6c 20 49  20 73 74 6f 72 65 20 74  | shall I store t|
000000a0  68 65 20 63 6f 64 65 3f  22 0d 00 6e 2a f1 22 28  |he code?"..n*."(|
000000b0  48 69 74 20 52 45 54 55  52 4e 20 69 66 20 79 6f  |Hit RETURN if yo|
000000c0  75 72 20 6e 6f 74 20 73  75 72 65 29 22 3a 2a 46  |ur not sure)":*F|
000000d0  58 32 31 0d 00 78 12 e8  22 41 64 64 72 65 73 73  |X21..x.."Address|
000000e0  3d 26 22 61 24 0d 00 82  20 e7 20 61 24 3d 22 22  |=&"a$... . a$=""|
000000f0  20 61 3d 26 31 31 30 20  8b 20 61 3d a0 28 22 26  | a=&110 . a=.("&|
00000100  22 2b 61 24 29 0d 00 8c  0f 76 65 63 74 6f 72 3d  |"+a$)....vector=|
00000110  26 32 30 41 0d 00 96 11  e3 20 69 3d 30 20 b8 20  |&20A..... i=0 . |
00000120  32 20 88 20 32 0d 00 a0  08 50 25 3d 61 0d 00 aa  |2 . 2....P%=a...|
00000130  0a 5b 4f 50 54 20 69 0d  00 b4 07 53 45 49 0d 00  |.[OPT i....SEI..|
00000140  be 0e 4c 44 41 20 76 65  63 74 6f 72 0d 00 c8 10  |..LDA vector....|
00000150  53 54 41 20 6f 73 62 79  74 65 2b 31 0d 00 d2 10  |STA osbyte+1....|
00000160  4c 44 41 20 76 65 63 74  6f 72 2b 31 0d 00 dc 10  |LDA vector+1....|
00000170  53 54 41 20 6f 73 62 79  74 65 2b 32 0d 00 e6 15  |STA osbyte+2....|
00000180  4c 44 41 20 23 62 72 61  6b 65 72 20 83 20 32 35  |LDA #braker . 25|
00000190  36 0d 00 f0 0e 53 54 41  20 76 65 63 74 6f 72 0d  |6....STA vector.|
000001a0  00 fa 16 4c 44 41 20 23  62 72 61 6b 65 72 20 81  |...LDA #braker .|
000001b0  20 32 35 36 20 0d 01 04  13 53 54 41 20 76 65 63  | 256 ....STA vec|
000001c0  74 6f 72 2b 31 20 20 20  0d 01 0e 07 43 4c 49 0d  |tor+1   ....CLI.|
000001d0  01 18 07 52 54 53 0d 01  2c 0b 2e 62 72 61 6b 65  |...RTS..,..brake|
000001e0  72 0d 01 36 1b 50 48 50  3a 50 48 41 3a 54 59 41  |r..6.PHP:PHA:TYA|
000001f0  3a 50 48 41 3a 54 58 41  3a 50 48 41 0d 01 40 0c  |:PHA:TXA:PHA..@.|
00000200  4c 44 41 20 23 26 38 31  0d 01 4a 0f 4c 44 58 20  |LDA #&81..J.LDX |
00000210  23 32 35 36 2d 44 25 0d  01 54 0c 4c 44 59 20 23  |#256-D%..T.LDY #|
00000220  26 46 46 0d 01 5e 0e 4a  53 52 20 6f 73 62 79 74  |&FF..^.JSR osbyt|
00000230  65 0d 01 68 12 54 59 41  3a 42 45 51 20 73 6c 6f  |e..h.TYA:BEQ slo|
00000240  77 65 72 0d 01 72 0b 2e  66 61 73 74 65 72 0d 01  |wer..r..faster..|
00000250  7c 29 44 45 43 20 64 65  6c 61 79 3a 42 4e 45 20  ||)DEC delay:BNE |
00000260  77 61 69 74 3a 49 4e 43  20 64 65 6c 61 79 3a 42  |wait:INC delay:B|
00000270  4e 45 20 77 61 69 74 0d  01 86 0b 2e 73 6c 6f 77  |NE wait.....slow|
00000280  65 72 0d 01 90 2c 4c 44  41 20 23 26 38 31 3a 4c  |er...,LDA #&81:L|
00000290  44 58 20 23 32 35 36 2d  55 25 3a 4c 44 59 20 23  |DX #256-U%:LDY #|
000002a0  32 35 35 3a 4a 53 52 20  6f 73 62 79 74 65 0d 01  |255:JSR osbyte..|
000002b0  9a 10 54 59 41 3a 42 45  51 20 77 61 69 74 0d 01  |..TYA:BEQ wait..|
000002c0  a4 20 49 4e 43 20 64 65  6c 61 79 3a 42 4e 45 20  |. INC delay:BNE |
000002d0  77 61 69 74 3a 44 45 43  20 64 65 6c 61 79 0d 01  |wait:DEC delay..|
000002e0  ae 09 2e 77 61 69 74 0d  01 b8 11 4c 44 41 20 64  |...wait....LDA d|
000002f0  65 6c 61 79 3a 50 48 41  0d 01 c2 0a 4c 44 58 20  |elay:PHA....LDX |
00000300  23 30 0d 01 cc 09 2e 6c  6f 6f 70 0d 01 d6 10 44  |#0.....loop....D|
00000310  45 58 3a 42 4e 45 20 6c  6f 6f 70 0d 01 e0 16 44  |EX:BNE loop....D|
00000320  45 43 20 64 65 6c 61 79  3a 42 4e 45 20 6c 6f 6f  |EC delay:BNE loo|
00000330  70 0d 01 ea 11 50 4c 41  3a 53 54 41 20 64 65 6c  |p....PLA:STA del|
00000340  61 79 0d 01 f4 1b 50 4c  41 3a 54 41 58 3a 50 4c  |ay....PLA:TAX:PL|
00000350  41 3a 54 41 59 3a 50 4c  41 3a 50 4c 50 0d 01 fe  |A:TAY:PLA:PLP...|
00000360  0b 2e 6f 73 62 79 74 65  0d 02 08 09 4a 4d 50 20  |..osbyte....JMP |
00000370  30 0d 02 1c 0a 2e 64 65  6c 61 79 0d 02 26 0a 45  |0.....delay..&.E|
00000380  51 55 42 20 31 0d 02 30  05 5d 0d 02 3a 05 ed 0d  |QUB 1..0.]..:...|
00000390  02 44 07 d6 20 61 0d 02  4e 22 f1 27 22 4e 6f 77  |.D.. a..N".'"Now|
000003a0  20 6c 6f 61 64 20 61 6e  64 20 72 75 6e 20 74 68  | load and run th|
000003b0  65 20 67 61 6d 65 2e 22  0d 02 58 23 f1 27 22 42  |e game."..X#.'"B|
000003c0  52 45 41 4b 20 64 69 73  61 62 6c 65 73 20 74 68  |REAK disables th|
000003d0  65 20 72 6f 75 74 69 6e  65 2e 22 0d 02 62 05 e0  |e routine."..b..|
000003e0  0d 02 76 10 dd 20 a4 6b  65 79 28 61 24 29 20 20  |..v.. .key(a$)  |
000003f0  0d 02 80 26 f1 27 22 48  6f 6c 64 20 64 6f 77 6e  |...&.'"Hold down|
00000400  20 74 68 65 20 73 70 65  65 64 20 22 61 24 22 20  | the speed "a$" |
00000410  6b 65 79 3a 22 3b 0d 02  8a 09 20 4b 25 3d 30 0d  |key:";.... K%=0.|
00000420  02 94 19 4b 25 3d 4b 25  2b 31 3a e7 20 4b 25 3d  |...K%=K%+1:. K%=|
00000430  31 32 37 20 4b 25 3d 31  0d 02 9e 11 e7 20 a6 2d  |127 K%=1..... .-|
00000440  4b 25 20 8b 20 8d 74 54  42 0d 02 a8 11 f1 22 6f  |K% . .tTB....."o|
00000450  6b 22 bd 37 3a 2a 46 58  32 31 0d 02 b2 11 e7 20  |k".7:*FX21..... |
00000460  a6 2d 4b 25 20 e5 20 8d  74 72 42 0d 02 bc 07 3d  |.-K% . .trB....=|
00000470  4b 25 0d ff                                       |K%..|
00000474
UTILITIES/BRAKER.m0
UTILITIES/BRAKER.m1
UTILITIES/BRAKER.m2
UTILITIES/BRAKER.m4
UTILITIES/BRAKER.m5