Home » Personal collection » Acorn tapes » Electron_User » Electron_User_tape17b_acorn_eu_1990_december.wav » FastElk

FastElk

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 tapes » Electron_User » Electron_User_tape17b_acorn_eu_1990_december.wav
Filename: FastElk
Read OK:
File size: 03FC bytes
Load address: FFFF1A00
Exec address: FFFF8023
File contents
   10REM Speed up (part 2)
   20REM by Tony Oakden
   30REM (c) The Micro User
   40PROCassemble
   50A%=163:X%=128:Y%=1:CALL&FFF4
   60MODE1
   70CALLsetint 
   80TIME=0
   90PROCtriangle
  100PRINTTAB(7,20);"FAST MODE ";TIME/100;" SECS"
  110STOP
  120**
  130DEF PROCtriangle
  140GCOL 3,1
  150FOR A=0 TO 1023 STEP 32
  160MOVE 640-A,0
  170MOVE 640+A,0
  180PLOT 85,640,A
  190NEXT
  200ENDPROC
  210*
  220DEF PROCassemble 
  230FOR A=0 TO 2 STEP 2
  240P%=&900
  250[
  260OPT A
  270.setint
  280SEI
  290LDA&204:STAoldvector
  300LDA&205:STAoldvector+1
  310LDA#interrupt MOD 256:STA&204 
  320LDA#interrupt DIV 256:STA&205
  330CLI
  340RTS
  350:
  360.interrupt
  370\ALTER SCREEN START ADDRESS REGISTERS TO COMPENSATE FOR SCROLL
  380LDA#&0:STA&FE02:LDA#&22:STA&FE03
  390\
  400LDA&FC:PHA:TXA:PHA:TYA:PHA
  410LDA&FE00:AND#4:BEQrtc
  420\BLANK PALETTE
  430LDA#&FF:STA&FE08:STA&FE09
  440\FORCE MODE CHANGE
  450LDA#&B0:STA&FE07:STA&282 
  460.exit
  470PLA:TAY:PLA:TAX:PLA:STA&FC
  480JMP(oldvector)
  490:
  500.rtc
  510LDA&FE00:AND#8:BEQexit
  520\FORCE MODE CHANGE TO MODE1
  530LDA#&88:STA&FE07:STA&282 
  540\RESET PALETTE
  550LDA#&34:STA&FE08
  560LDA#&35:STA&FE09
  570JMPexit
  580.oldvector:EQUW0
  590]
  600NEXT 
  610ENDPROC

� Speed up (part 2)
� by Tony Oakden
� (c) The Micro User
(
�assemble
2A%=163:X%=128:Y%=1:�&FFF4
<�1
F�setint 
P�=0
Z
�triangle
d&�7,20);"FAST MODE ";�/100;" SECS"
n�
x**
�� �triangle
�	� 3,1
�� A=0 � 1023 � 32
�
� 640-A,0
�
� 640+A,0
�� 85,640,A
��
��
�*
�� �assemble 
�� A=0 � 2 � 2
�P%=&900
�[
	OPT A
.setint
SEI
"LDA&204:STAoldvector
,LDA&205:STAoldvector+1
6 LDA#interrupt � 256:STA&204 
@LDA#interrupt � 256:STA&205
JCLI
TRTS
^:
h.interrupt
r?\ALTER SCREEN START ADDRESS REGISTERS � COMPENSATE � SCROLL
|$LDA#&0:STA&FE02:LDA#&22:STA&FE03
�\
�LDA&FC:PHA:TXA:PHA:TYA:PHA
�LDA&FE00:�#4:BEQrtc
�\BLANK PALETTE
�LDA#&FF:STA&FE08:STA&FE09
�\�CE � CHANGE
�LDA#&B0:STA&FE07:STA&282 
�	.exit
�PLA:TAY:PLA:TAX:PLA:STA&FC
�JMP(oldvector)
�:
�.rtc
�LDA&FE00:�#8:BEQexit
\�CE � CHANGE � �1
LDA#&88:STA&FE07:STA&282 
\RESET PALETTE
&LDA#&34:STA&FE08
0LDA#&35:STA&FE09
:JMPexit
D.oldvector:EQUW0
N]
X� 
b�
�
00000000  0d 00 0a 17 f4 20 53 70  65 65 64 20 75 70 20 28  |..... Speed up (|
00000010  70 61 72 74 20 32 29 0d  00 14 14 f4 20 62 79 20  |part 2)..... by |
00000020  54 6f 6e 79 20 4f 61 6b  64 65 6e 0d 00 1e 18 f4  |Tony Oakden.....|
00000030  20 28 63 29 20 54 68 65  20 4d 69 63 72 6f 20 55  | (c) The Micro U|
00000040  73 65 72 0d 00 28 0d f2  61 73 73 65 6d 62 6c 65  |ser..(..assemble|
00000050  0d 00 32 1d 41 25 3d 31  36 33 3a 58 25 3d 31 32  |..2.A%=163:X%=12|
00000060  38 3a 59 25 3d 31 3a d6  26 46 46 46 34 0d 00 3c  |8:Y%=1:.&FFF4..<|
00000070  06 eb 31 0d 00 46 0c d6  73 65 74 69 6e 74 20 0d  |..1..F..setint .|
00000080  00 50 07 d1 3d 30 0d 00  5a 0d f2 74 72 69 61 6e  |.P..=0..Z..trian|
00000090  67 6c 65 0d 00 64 26 f1  8a 37 2c 32 30 29 3b 22  |gle..d&..7,20);"|
000000a0  46 41 53 54 20 4d 4f 44  45 20 22 3b 91 2f 31 30  |FAST MODE ";./10|
000000b0  30 3b 22 20 53 45 43 53  22 0d 00 6e 05 fa 0d 00  |0;" SECS"..n....|
000000c0  78 06 2a 2a 0d 00 82 0f  dd 20 f2 74 72 69 61 6e  |x.**..... .trian|
000000d0  67 6c 65 0d 00 8c 09 e6  20 33 2c 31 0d 00 96 15  |gle..... 3,1....|
000000e0  e3 20 41 3d 30 20 b8 20  31 30 32 33 20 88 20 33  |. A=0 . 1023 . 3|
000000f0  32 0d 00 a0 0d ec 20 36  34 30 2d 41 2c 30 0d 00  |2..... 640-A,0..|
00000100  aa 0d ec 20 36 34 30 2b  41 2c 30 0d 00 b4 0e f0  |... 640+A,0.....|
00000110  20 38 35 2c 36 34 30 2c  41 0d 00 be 05 ed 0d 00  | 85,640,A.......|
00000120  c8 05 e1 0d 00 d2 05 2a  0d 00 dc 10 dd 20 f2 61  |.......*..... .a|
00000130  73 73 65 6d 62 6c 65 20  0d 00 e6 11 e3 20 41 3d  |ssemble ..... A=|
00000140  30 20 b8 20 32 20 88 20  32 0d 00 f0 0b 50 25 3d  |0 . 2 . 2....P%=|
00000150  26 39 30 30 0d 00 fa 05  5b 0d 01 04 09 4f 50 54  |&900....[....OPT|
00000160  20 41 0d 01 0e 0b 2e 73  65 74 69 6e 74 0d 01 18  | A.....setint...|
00000170  07 53 45 49 0d 01 22 18  4c 44 41 26 32 30 34 3a  |.SEI..".LDA&204:|
00000180  53 54 41 6f 6c 64 76 65  63 74 6f 72 0d 01 2c 1a  |STAoldvector..,.|
00000190  4c 44 41 26 32 30 35 3a  53 54 41 6f 6c 64 76 65  |LDA&205:STAoldve|
000001a0  63 74 6f 72 2b 31 0d 01  36 20 4c 44 41 23 69 6e  |ctor+1..6 LDA#in|
000001b0  74 65 72 72 75 70 74 20  83 20 32 35 36 3a 53 54  |terrupt . 256:ST|
000001c0  41 26 32 30 34 20 0d 01  40 1f 4c 44 41 23 69 6e  |A&204 ..@.LDA#in|
000001d0  74 65 72 72 75 70 74 20  81 20 32 35 36 3a 53 54  |terrupt . 256:ST|
000001e0  41 26 32 30 35 0d 01 4a  07 43 4c 49 0d 01 54 07  |A&205..J.CLI..T.|
000001f0  52 54 53 0d 01 5e 05 3a  0d 01 68 0e 2e 69 6e 74  |RTS..^.:..h..int|
00000200  65 72 72 75 70 74 0d 01  72 3f 5c 41 4c 54 45 52  |errupt..r?\ALTER|
00000210  20 53 43 52 45 45 4e 20  53 54 41 52 54 20 41 44  | SCREEN START AD|
00000220  44 52 45 53 53 20 52 45  47 49 53 54 45 52 53 20  |DRESS REGISTERS |
00000230  b8 20 43 4f 4d 50 45 4e  53 41 54 45 20 e3 20 53  |. COMPENSATE . S|
00000240  43 52 4f 4c 4c 0d 01 7c  24 4c 44 41 23 26 30 3a  |CROLL..|$LDA#&0:|
00000250  53 54 41 26 46 45 30 32  3a 4c 44 41 23 26 32 32  |STA&FE02:LDA#&22|
00000260  3a 53 54 41 26 46 45 30  33 0d 01 86 05 5c 0d 01  |:STA&FE03....\..|
00000270  90 1e 4c 44 41 26 46 43  3a 50 48 41 3a 54 58 41  |..LDA&FC:PHA:TXA|
00000280  3a 50 48 41 3a 54 59 41  3a 50 48 41 0d 01 9a 17  |:PHA:TYA:PHA....|
00000290  4c 44 41 26 46 45 30 30  3a 80 23 34 3a 42 45 51  |LDA&FE00:.#4:BEQ|
000002a0  72 74 63 0d 01 a4 12 5c  42 4c 41 4e 4b 20 50 41  |rtc....\BLANK PA|
000002b0  4c 45 54 54 45 0d 01 ae  1d 4c 44 41 23 26 46 46  |LETTE....LDA#&FF|
000002c0  3a 53 54 41 26 46 45 30  38 3a 53 54 41 26 46 45  |:STA&FE08:STA&FE|
000002d0  30 39 0d 01 b8 11 5c e3  43 45 20 eb 20 43 48 41  |09....\.CE . CHA|
000002e0  4e 47 45 0d 01 c2 1d 4c  44 41 23 26 42 30 3a 53  |NGE....LDA#&B0:S|
000002f0  54 41 26 46 45 30 37 3a  53 54 41 26 32 38 32 20  |TA&FE07:STA&282 |
00000300  0d 01 cc 09 2e 65 78 69  74 0d 01 d6 1e 50 4c 41  |.....exit....PLA|
00000310  3a 54 41 59 3a 50 4c 41  3a 54 41 58 3a 50 4c 41  |:TAY:PLA:TAX:PLA|
00000320  3a 53 54 41 26 46 43 0d  01 e0 12 4a 4d 50 28 6f  |:STA&FC....JMP(o|
00000330  6c 64 76 65 63 74 6f 72  29 0d 01 ea 05 3a 0d 01  |ldvector)....:..|
00000340  f4 08 2e 72 74 63 0d 01  fe 18 4c 44 41 26 46 45  |...rtc....LDA&FE|
00000350  30 30 3a 80 23 38 3a 42  45 51 65 78 69 74 0d 02  |00:.#8:BEQexit..|
00000360  08 16 5c e3 43 45 20 eb  20 43 48 41 4e 47 45 20  |..\.CE . CHANGE |
00000370  b8 20 eb 31 0d 02 12 1d  4c 44 41 23 26 38 38 3a  |. .1....LDA#&88:|
00000380  53 54 41 26 46 45 30 37  3a 53 54 41 26 32 38 32  |STA&FE07:STA&282|
00000390  20 0d 02 1c 12 5c 52 45  53 45 54 20 50 41 4c 45  | ....\RESET PALE|
000003a0  54 54 45 0d 02 26 14 4c  44 41 23 26 33 34 3a 53  |TTE..&.LDA#&34:S|
000003b0  54 41 26 46 45 30 38 0d  02 30 14 4c 44 41 23 26  |TA&FE08..0.LDA#&|
000003c0  33 35 3a 53 54 41 26 46  45 30 39 0d 02 3a 0b 4a  |35:STA&FE09..:.J|
000003d0  4d 50 65 78 69 74 0d 02  44 14 2e 6f 6c 64 76 65  |MPexit..D..oldve|
000003e0  63 74 6f 72 3a 45 51 55  57 30 0d 02 4e 05 5d 0d  |ctor:EQUW0..N.].|
000003f0  02 58 06 ed 20 0d 02 62  05 e1 0d ff              |.X.. ..b....|
000003fc
FastElk.m0
FastElk.m1
FastElk.m2
FastElk.m4
FastElk.m5