Home » Archimedes archive » Acorn User » AU 1998-07.adf » Regulars » RTR/SamTst

RTR/SamTst

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 » Archimedes archive » Acorn User » AU 1998-07.adf » Regulars
Filename: RTR/SamTst
Read OK:
File size: 0B5E bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >SmaTest
   40DIM CODE% &400, BP% 6400
   50PRINT TAB(0,5)"Run The RISC"
   60PRINT TAB(0,8)"By Mike Cook"
   70PRINT TAB(0,10)"Sound Sampler Oscilloscope V0.1"
   80PRINT TAB(0,15)"You need the Sound Sampler for this"
   90PRINT"Any key to continue"
  110NewH%=FALSE:SW%=1
  170SPEED%=0:PROC_CSU
  231PROC_SAMPLE
  232END
  233
 1870DEF PROC_SAMPLE
 1880G%=BP%+320*SW%:H%=320
 1890SW%=SW% EOR 1
 1900CALL SAMPN
 1910ENDPROC
 1920
 1930DEF PROC_CSU :REM CODE SETUP
 1940FOR A=0 TO 2 STEP 2
 1950P%=CODE%
 1960[
 1970OPT A
 1980.TVAL EQUD 0 \ TRIGGER VALUE
 1990.SPE1 EQUD 0 \ LSB OF SPEED
 2000.SPE2 EQUD 0 \ MSB OF SPEED
 2010\ GATHER SOUND
 2960
 2970.SAMPN \ LVAR HARDWARE SAMPLEING
 2980STMFD R13!,{R14}
 2990MOV R9,R15
 3000SWI "OS_EnterOS"
 3010TEQP R15,#&C000003 \DISABLE INTERRUPTS
 3020MOVNV R0,R0
 3030MOV R0,#&3200000 \ BASE ADDRESS OF IOC
 3040MOV R1,#&3000000 \ BASE OF PRINTER LATCH
 3050ADD R1,R1,#&10000
 3060ADD R1,R1,#&9E0
 3071
 3080\ HOLD FOR TRIGGER
 3090LDR R2,TVAL
 3100CMP R2,#0
 3110BEQ TRUNN \ SKIP THIS IF TRIGGER VALUE IS 0
 3120.THOLD
 3130MOV R2,#0 \ CHIP SELECT LOW
 3140STR R2,[R1]
 3150MOV R3,#&A \ BITS TO READ IN
 3160MOV R5,#0 \ COLLECT BITS HERE
 3170.LOOP2
 3180LDR R4,[R1,#4] \ GET DATA
 3190MOV R2,#&10000 \ CLOCK HIGH
 3200STR R2,[R1] \ PUT OUT TO PRINTER
 3210MOV R4,R4,LSR #6
 3220AND R4,R4,#1 \ MASK DATA BIT
 3230MOV R5,R5,LSL #1 \ PREPARE R5 TO RECIEVE IT
 3240ORR R5,R5,R4 \ MIX IT IN WITH R5
 3250MOV R2,#0 \ CLOCK LOW
 3260STR R2,[R1]
 3270SUBS R3,R3,#1
 3280BNE LOOP2
 3290MOV R2,#&20000 \ CHIP SELECT HIGH
 3300STR R2,[R1]
 3310AND R5,R5,#&FF \ MASK OFF START BIT
 3320\R5 NOW HAS SAMPLE
 3330LDR R2,TVAL
 3340CMP R2,R5
 3350BLS THOLD
 3360
 3370.TRUNN
 3380LDR R2,SPE2 \ T1 VALUE HIGH
 3390STR R2,[R0,#&44] \ T0 LATCH HIGH
 3400LDR R2,SPE1 \ T1 VALUE LOW
 3410STR R2,[R0,#&40] \ T0 LATCH LOW
 3420
 3430LDR R2,[R0,#&18] \ GET IRQ MASK
 3440ORR R2,R2,#&20 \ ENABLE T0
 3450MOV  R2,R2,LSL #16
 3460STR R2,[R0,#&18] \ MASK REG
 3470
 3480MOV R2,#&200000 \ CLEAR T0 INTERRUPT
 3490STR R2,[R0,#&14] \ IRQ CLEAR
 3500STR  R2,[R0,#&48] \ GO T0
 3510
 3520.TLOOP \ DELAY LOOP FOR TIMER T0
 3530LDRB R2,[R0,#&10]
 3540TST R2,#&20
 3550BEQ TLOOP
 3560MOV R2,#&200000 \ CLEAR T0 INTERRUPT
 3570STR R2,[R0,#&14] \ IRQ CLEAR
 3580
 3581B exit
 3590\ TAKE ONE SAMPLE
 3600MOV R2,#0 \ CHIP SELECT LOW
 3610STR R2,[R1]
 3620MOV R3,#&A \ BITS TO READ IN
 3630MOV R5,#0 \ COLLECT BITS HERE
 3640.LOOP1
 3650LDR R4,[R1,#4] \ GET DATA
 3660MOV R2,#&10000 \ CLOCK HIGH
 3670STR R2,[R1] \ PUT OUT TO PRINTER
 3680MOV R4,R4,LSR #6
 3690AND R4,R4,#1 \ MASK DATA BIT
 3700MOV R5,R5,LSL #1 \ PREPARE R5 TO RECIEVE IT
 3710ORR R5,R5,R4 \ MIX IT IN WITH R5
 3720MOV R2,#0 \ CLOCK LOW
 3730STR R2,[R1]
 3740SUBS R3,R3,#1
 3750BNE LOOP1
 3760MOV R2,#&20000 \ CHIP SELECT HIGH
 3770STR R2,[R1]
 3780AND R5,R5,#&FF \ MASK OFF START BIT
 3790\R5 NOW HAS SAMPLE
 3800STRB R5,[R6],#1 \ PUT IT IN THE BUFFER
 3810SUBS R7,R7,#1  \ DECREMENT BYTES TO GO
 3820BNE  TLOOP \ BACK UNTILL ALL DONE
 3830
 3831.exit
 3840\PREPARE TO EXIT
 3850MOV R2,#&200000 \ CLEAR T0 INTERRUPT
 3860\STR R2,[R0,#&14] \ IRQ CLEAR
 3870LDR R2,[R0,#&18] \ GET IRQ MASK
 3880AND R2,R2,#&DF \ ENABLE T0
 3890MOV  R2,R2,LSL #16
 3900\STR R2,[R0,#&18] \ MASK REG
 3910
 3920TEQP R9,#0
 3930MOVNV R0,R0
 3940LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 3950
 4230]
 4240NEXT
 4290ENDPROC

� >SmaTest
(� CODE% &400, BP% 6400
2� �0,5)"Run The RISC"
<� �0,8)"By Mike Cook"
F-� �0,10)"Sound Sampler Oscilloscope V0.1"
P1� �0,15)"You need the Sound Sampler for this"
Z�"Any key to continue"
nNewH%=�:SW%=1
�SPEED%=0:�_CSU
��_SAMPLE
��
�
N� �_SAMPLE
XG%=BP%+320*SW%:H%=320
bSW%=SW% � 1
l� SAMPN
v�
�
�� �_CSU :� CODE SETUP
�� A=0 � 2 � 2
�P%=CODE%
�[
�	OPT A
�.TVAL EQUD 0 \ TRIGGER �UE
�.SPE1 EQUD 0 \ LSB � SPEED
�.SPE2 EQUD 0 \ MSB � SPEED
�\ GATHER �
�
�".SAMPN \ ǖ HARDWARE SAMPLEING
�STMFD R13!,{R14}
�MOV R9,R15
�SWI "OS_EnterOS"
�(TEQP R15,#&C000003 \DISABLE �ERRUPTS
�MOVNV R0,R0
�)MOV R0,#&3200000 \ BASE ADDRESS � IOC
�'MOV R1,#&3000000 \ BASE � �ER LATCH
�ADD R1,R1,#&10000
�ADD R1,R1,#&9E0
�
\ HOLD � TRIGGER
LDR R2,TVAL

CMP R2,#0
&,BEQ TRUNN \ SKIP THIS � TRIGGER �UE IS 0
0
.THOLD
:MOV R2,#0 \ CHIP SELECT LOW
DSTR R2,[R1]
NMOV R3,#&A \ BITS � � IN
X!MOV R5,#0 \ COLLECT BITS HERE
b
.LOOP2
lLDR R4,[R1,#4] \ � �
vMOV R2,#&10000 \ CLOCK HIGH
�STR R2,[R1] \ PUT OUT � �ER
�MOV R4,R4,LSR #6
�� R4,R4,#1 \ MASK � BIT
�.MOV R5,R5,LSL #1 \ PREPARE R5 � RECIEVE IT
�#�R R5,R5,R4 \ MIX IT IN WITH R5
�MOV R2,#0 \ CLOCK LOW
�STR R2,[R1]
�SUBS R3,R3,#1
�
BNE LOOP2
�%MOV R2,#&20000 \ CHIP SELECT HIGH
�STR R2,[R1]
�#� R5,R5,#&FF \ MASK � START BIT
�\R5 NOW HAS SAMPLE

LDR R2,TVAL


CMP R2,R5


BLS THOLD

 

*
.TRUNN

4LDR R2,SPE2 \ T1 �UE HIGH

>$STR R2,[R0,#&44] \ T0 LATCH HIGH

HLDR R2,SPE1 \ T1 �UE LOW

R#STR R2,[R0,#&40] \ T0 LATCH LOW

\

f!LDR R2,[R0,#&18] \ � IRQ MASK

p�R R2,R2,#&20 \ ENABLE T0

zMOV  R2,R2,LSL #16

�STR R2,[R0,#&18] \ MASK REG

�

�"MOV R2,#&200000 \ � T0 �ERRUPT

�STR R2,[R0,#&14] \ IRQ �

�STR  R2,[R0,#&48] \ GO T0

�

�".TLOOP \ DELAY LOOP � TIMER T0

�LDRB R2,[R0,#&10]

�TST R2,#&20

�
BEQ TLOOP

�"MOV R2,#&200000 \ � T0 �ERRUPT

�STR R2,[R0,#&14] \ IRQ �

�

�
B exit
\ TAKE �E SAMPLE
MOV R2,#0 \ CHIP SELECT LOW
STR R2,[R1]
$MOV R3,#&A \ BITS � � IN
.!MOV R5,#0 \ COLLECT BITS HERE
8
.LOOP1
BLDR R4,[R1,#4] \ � �
LMOV R2,#&10000 \ CLOCK HIGH
VSTR R2,[R1] \ PUT OUT � �ER
`MOV R4,R4,LSR #6
j� R4,R4,#1 \ MASK � BIT
t.MOV R5,R5,LSL #1 \ PREPARE R5 � RECIEVE IT
~#�R R5,R5,R4 \ MIX IT IN WITH R5
�MOV R2,#0 \ CLOCK LOW
�STR R2,[R1]
�SUBS R3,R3,#1
�
BNE LOOP1
�%MOV R2,#&20000 \ CHIP SELECT HIGH
�STR R2,[R1]
�#� R5,R5,#&FF \ MASK � START BIT
�\R5 NOW HAS SAMPLE
�*STRB R5,[R6],#1 \ PUT IT IN THE BUFFER
�)SUBS R7,R7,#1  \ DECREMENT BYTES � GO
�!BNE  TLOOP \ BACK �L ALL DONE
�
�	.exit
\PREPARE � EXIT

"MOV R2,#&200000 \ � T0 �ERRUPT
\STR R2,[R0,#&14] \ IRQ �
!LDR R2,[R0,#&18] \ � IRQ MASK
(� R2,R2,#&DF \ ENABLE T0
2MOV  R2,R2,LSL #16
< \STR R2,[R0,#&18] \ MASK REG
F
PTEQP R9,#0
ZMOVNV R0,R0
d-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
n
�]
��
��
�
00000000  0d 00 0a 0e f4 20 3e 53  6d 61 54 65 73 74 0d 00  |..... >SmaTest..|
00000010  28 1a de 20 43 4f 44 45  25 20 26 34 30 30 2c 20  |(.. CODE% &400, |
00000020  42 50 25 20 36 34 30 30  0d 00 32 19 f1 20 8a 30  |BP% 6400..2.. .0|
00000030  2c 35 29 22 52 75 6e 20  54 68 65 20 52 49 53 43  |,5)"Run The RISC|
00000040  22 0d 00 3c 19 f1 20 8a  30 2c 38 29 22 42 79 20  |"..<.. .0,8)"By |
00000050  4d 69 6b 65 20 43 6f 6f  6b 22 0d 00 46 2d f1 20  |Mike Cook"..F-. |
00000060  8a 30 2c 31 30 29 22 53  6f 75 6e 64 20 53 61 6d  |.0,10)"Sound Sam|
00000070  70 6c 65 72 20 4f 73 63  69 6c 6c 6f 73 63 6f 70  |pler Oscilloscop|
00000080  65 20 56 30 2e 31 22 0d  00 50 31 f1 20 8a 30 2c  |e V0.1"..P1. .0,|
00000090  31 35 29 22 59 6f 75 20  6e 65 65 64 20 74 68 65  |15)"You need the|
000000a0  20 53 6f 75 6e 64 20 53  61 6d 70 6c 65 72 20 66  | Sound Sampler f|
000000b0  6f 72 20 74 68 69 73 22  0d 00 5a 1a f1 22 41 6e  |or this"..Z.."An|
000000c0  79 20 6b 65 79 20 74 6f  20 63 6f 6e 74 69 6e 75  |y key to continu|
000000d0  65 22 0d 00 6e 11 4e 65  77 48 25 3d a3 3a 53 57  |e"..n.NewH%=.:SW|
000000e0  25 3d 31 0d 00 aa 12 53  50 45 45 44 25 3d 30 3a  |%=1....SPEED%=0:|
000000f0  f2 5f 43 53 55 0d 00 e7  0c f2 5f 53 41 4d 50 4c  |._CSU....._SAMPL|
00000100  45 0d 00 e8 05 e0 0d 00  e9 04 0d 07 4e 0e dd 20  |E...........N.. |
00000110  f2 5f 53 41 4d 50 4c 45  0d 07 58 19 47 25 3d 42  |._SAMPLE..X.G%=B|
00000120  50 25 2b 33 32 30 2a 53  57 25 3a 48 25 3d 33 32  |P%+320*SW%:H%=32|
00000130  30 0d 07 62 0f 53 57 25  3d 53 57 25 20 82 20 31  |0..b.SW%=SW% . 1|
00000140  0d 07 6c 0b d6 20 53 41  4d 50 4e 0d 07 76 05 e1  |..l.. SAMPN..v..|
00000150  0d 07 80 04 0d 07 8a 19  dd 20 f2 5f 43 53 55 20  |......... ._CSU |
00000160  3a f4 20 43 4f 44 45 20  53 45 54 55 50 0d 07 94  |:. CODE SETUP...|
00000170  11 e3 20 41 3d 30 20 b8  20 32 20 88 20 32 0d 07  |.. A=0 . 2 . 2..|
00000180  9e 0c 50 25 3d 43 4f 44  45 25 0d 07 a8 05 5b 0d  |..P%=CODE%....[.|
00000190  07 b2 09 4f 50 54 20 41  0d 07 bc 1e 2e 54 56 41  |...OPT A.....TVA|
000001a0  4c 20 45 51 55 44 20 30  20 5c 20 54 52 49 47 47  |L EQUD 0 \ TRIGG|
000001b0  45 52 20 bb 55 45 0d 07  c6 1e 2e 53 50 45 31 20  |ER .UE.....SPE1 |
000001c0  45 51 55 44 20 30 20 5c  20 4c 53 42 20 ca 20 53  |EQUD 0 \ LSB . S|
000001d0  50 45 45 44 0d 07 d0 1e  2e 53 50 45 32 20 45 51  |PEED.....SPE2 EQ|
000001e0  55 44 20 30 20 5c 20 4d  53 42 20 ca 20 53 50 45  |UD 0 \ MSB . SPE|
000001f0  45 44 0d 07 da 0e 5c 20  47 41 54 48 45 52 20 d4  |ED....\ GATHER .|
00000200  0d 0b 90 04 0d 0b 9a 22  2e 53 41 4d 50 4e 20 5c  |.......".SAMPN \|
00000210  20 c7 96 20 48 41 52 44  57 41 52 45 20 53 41 4d  | .. HARDWARE SAM|
00000220  50 4c 45 49 4e 47 0d 0b  a4 14 53 54 4d 46 44 20  |PLEING....STMFD |
00000230  52 31 33 21 2c 7b 52 31  34 7d 0d 0b ae 0e 4d 4f  |R13!,{R14}....MO|
00000240  56 20 52 39 2c 52 31 35  0d 0b b8 14 53 57 49 20  |V R9,R15....SWI |
00000250  22 4f 53 5f 45 6e 74 65  72 4f 53 22 0d 0b c2 28  |"OS_EnterOS"...(|
00000260  54 45 51 50 20 52 31 35  2c 23 26 43 30 30 30 30  |TEQP R15,#&C0000|
00000270  30 33 20 5c 44 49 53 41  42 4c 45 20 a8 45 52 52  |03 \DISABLE .ERR|
00000280  55 50 54 53 0d 0b cc 0f  4d 4f 56 4e 56 20 52 30  |UPTS....MOVNV R0|
00000290  2c 52 30 0d 0b d6 29 4d  4f 56 20 52 30 2c 23 26  |,R0...)MOV R0,#&|
000002a0  33 32 30 30 30 30 30 20  5c 20 42 41 53 45 20 41  |3200000 \ BASE A|
000002b0  44 44 52 45 53 53 20 ca  20 49 4f 43 0d 0b e0 27  |DDRESS . IOC...'|
000002c0  4d 4f 56 20 52 31 2c 23  26 33 30 30 30 30 30 30  |MOV R1,#&3000000|
000002d0  20 5c 20 42 41 53 45 20  ca 20 f1 45 52 20 4c 41  | \ BASE . .ER LA|
000002e0  54 43 48 0d 0b ea 15 41  44 44 20 52 31 2c 52 31  |TCH....ADD R1,R1|
000002f0  2c 23 26 31 30 30 30 30  0d 0b f4 13 41 44 44 20  |,#&10000....ADD |
00000300  52 31 2c 52 31 2c 23 26  39 45 30 0d 0b ff 04 0d  |R1,R1,#&9E0.....|
00000310  0c 08 14 5c 20 48 4f 4c  44 20 e3 20 54 52 49 47  |...\ HOLD . TRIG|
00000320  47 45 52 0d 0c 12 0f 4c  44 52 20 52 32 2c 54 56  |GER....LDR R2,TV|
00000330  41 4c 0d 0c 1c 0d 43 4d  50 20 52 32 2c 23 30 0d  |AL....CMP R2,#0.|
00000340  0c 26 2c 42 45 51 20 54  52 55 4e 4e 20 5c 20 53  |.&,BEQ TRUNN \ S|
00000350  4b 49 50 20 54 48 49 53  20 e7 20 54 52 49 47 47  |KIP THIS . TRIGG|
00000360  45 52 20 bb 55 45 20 49  53 20 30 0d 0c 30 0a 2e  |ER .UE IS 0..0..|
00000370  54 48 4f 4c 44 0d 0c 3a  1f 4d 4f 56 20 52 32 2c  |THOLD..:.MOV R2,|
00000380  23 30 20 5c 20 43 48 49  50 20 53 45 4c 45 43 54  |#0 \ CHIP SELECT|
00000390  20 4c 4f 57 0d 0c 44 0f  53 54 52 20 52 32 2c 5b  | LOW..D.STR R2,[|
000003a0  52 31 5d 0d 0c 4e 1c 4d  4f 56 20 52 33 2c 23 26  |R1]..N.MOV R3,#&|
000003b0  41 20 5c 20 42 49 54 53  20 b8 20 f3 20 49 4e 0d  |A \ BITS . . IN.|
000003c0  0c 58 21 4d 4f 56 20 52  35 2c 23 30 20 5c 20 43  |.X!MOV R5,#0 \ C|
000003d0  4f 4c 4c 45 43 54 20 42  49 54 53 20 48 45 52 45  |OLLECT BITS HERE|
000003e0  0d 0c 62 0a 2e 4c 4f 4f  50 32 0d 0c 6c 18 4c 44  |..b..LOOP2..l.LD|
000003f0  52 20 52 34 2c 5b 52 31  2c 23 34 5d 20 5c 20 a5  |R R4,[R1,#4] \ .|
00000400  20 dc 0d 0c 76 1f 4d 4f  56 20 52 32 2c 23 26 31  | ...v.MOV R2,#&1|
00000410  30 30 30 30 20 5c 20 43  4c 4f 43 4b 20 48 49 47  |0000 \ CLOCK HIG|
00000420  48 0d 0c 80 1f 53 54 52  20 52 32 2c 5b 52 31 5d  |H....STR R2,[R1]|
00000430  20 5c 20 50 55 54 20 4f  55 54 20 b8 20 f1 45 52  | \ PUT OUT . .ER|
00000440  0d 0c 8a 14 4d 4f 56 20  52 34 2c 52 34 2c 4c 53  |....MOV R4,R4,LS|
00000450  52 20 23 36 0d 0c 94 1b  80 20 52 34 2c 52 34 2c  |R #6..... R4,R4,|
00000460  23 31 20 5c 20 4d 41 53  4b 20 dc 20 42 49 54 0d  |#1 \ MASK . BIT.|
00000470  0c 9e 2e 4d 4f 56 20 52  35 2c 52 35 2c 4c 53 4c  |...MOV R5,R5,LSL|
00000480  20 23 31 20 5c 20 50 52  45 50 41 52 45 20 52 35  | #1 \ PREPARE R5|
00000490  20 b8 20 52 45 43 49 45  56 45 20 49 54 0d 0c a8  | . RECIEVE IT...|
000004a0  23 84 52 20 52 35 2c 52  35 2c 52 34 20 5c 20 4d  |#.R R5,R5,R4 \ M|
000004b0  49 58 20 49 54 20 49 4e  20 57 49 54 48 20 52 35  |IX IT IN WITH R5|
000004c0  0d 0c b2 19 4d 4f 56 20  52 32 2c 23 30 20 5c 20  |....MOV R2,#0 \ |
000004d0  43 4c 4f 43 4b 20 4c 4f  57 0d 0c bc 0f 53 54 52  |CLOCK LOW....STR|
000004e0  20 52 32 2c 5b 52 31 5d  0d 0c c6 11 53 55 42 53  | R2,[R1]....SUBS|
000004f0  20 52 33 2c 52 33 2c 23  31 0d 0c d0 0d 42 4e 45  | R3,R3,#1....BNE|
00000500  20 4c 4f 4f 50 32 0d 0c  da 25 4d 4f 56 20 52 32  | LOOP2...%MOV R2|
00000510  2c 23 26 32 30 30 30 30  20 5c 20 43 48 49 50 20  |,#&20000 \ CHIP |
00000520  53 45 4c 45 43 54 20 48  49 47 48 0d 0c e4 0f 53  |SELECT HIGH....S|
00000530  54 52 20 52 32 2c 5b 52  31 5d 0d 0c ee 23 80 20  |TR R2,[R1]...#. |
00000540  52 35 2c 52 35 2c 23 26  46 46 20 5c 20 4d 41 53  |R5,R5,#&FF \ MAS|
00000550  4b 20 87 20 53 54 41 52  54 20 42 49 54 0d 0c f8  |K . START BIT...|
00000560  16 5c 52 35 20 4e 4f 57  20 48 41 53 20 53 41 4d  |.\R5 NOW HAS SAM|
00000570  50 4c 45 0d 0d 02 0f 4c  44 52 20 52 32 2c 54 56  |PLE....LDR R2,TV|
00000580  41 4c 0d 0d 0c 0d 43 4d  50 20 52 32 2c 52 35 0d  |AL....CMP R2,R5.|
00000590  0d 16 0d 42 4c 53 20 54  48 4f 4c 44 0d 0d 20 04  |...BLS THOLD.. .|
000005a0  0d 0d 2a 0a 2e 54 52 55  4e 4e 0d 0d 34 1d 4c 44  |..*..TRUNN..4.LD|
000005b0  52 20 52 32 2c 53 50 45  32 20 5c 20 54 31 20 bb  |R R2,SPE2 \ T1 .|
000005c0  55 45 20 48 49 47 48 0d  0d 3e 24 53 54 52 20 52  |UE HIGH..>$STR R|
000005d0  32 2c 5b 52 30 2c 23 26  34 34 5d 20 5c 20 54 30  |2,[R0,#&44] \ T0|
000005e0  20 4c 41 54 43 48 20 48  49 47 48 0d 0d 48 1c 4c  | LATCH HIGH..H.L|
000005f0  44 52 20 52 32 2c 53 50  45 31 20 5c 20 54 31 20  |DR R2,SPE1 \ T1 |
00000600  bb 55 45 20 4c 4f 57 0d  0d 52 23 53 54 52 20 52  |.UE LOW..R#STR R|
00000610  32 2c 5b 52 30 2c 23 26  34 30 5d 20 5c 20 54 30  |2,[R0,#&40] \ T0|
00000620  20 4c 41 54 43 48 20 4c  4f 57 0d 0d 5c 04 0d 0d  | LATCH LOW..\...|
00000630  66 21 4c 44 52 20 52 32  2c 5b 52 30 2c 23 26 31  |f!LDR R2,[R0,#&1|
00000640  38 5d 20 5c 20 a5 20 49  52 51 20 4d 41 53 4b 0d  |8] \ . IRQ MASK.|
00000650  0d 70 1d 84 52 20 52 32  2c 52 32 2c 23 26 32 30  |.p..R R2,R2,#&20|
00000660  20 5c 20 45 4e 41 42 4c  45 20 54 30 0d 0d 7a 16  | \ ENABLE T0..z.|
00000670  4d 4f 56 20 20 52 32 2c  52 32 2c 4c 53 4c 20 23  |MOV  R2,R2,LSL #|
00000680  31 36 0d 0d 84 1f 53 54  52 20 52 32 2c 5b 52 30  |16....STR R2,[R0|
00000690  2c 23 26 31 38 5d 20 5c  20 4d 41 53 4b 20 52 45  |,#&18] \ MASK RE|
000006a0  47 0d 0d 8e 04 0d 0d 98  22 4d 4f 56 20 52 32 2c  |G......."MOV R2,|
000006b0  23 26 32 30 30 30 30 30  20 5c 20 d8 20 54 30 20  |#&200000 \ . T0 |
000006c0  a8 45 52 52 55 50 54 0d  0d a2 1c 53 54 52 20 52  |.ERRUPT....STR R|
000006d0  32 2c 5b 52 30 2c 23 26  31 34 5d 20 5c 20 49 52  |2,[R0,#&14] \ IR|
000006e0  51 20 d8 0d 0d ac 1d 53  54 52 20 20 52 32 2c 5b  |Q .....STR  R2,[|
000006f0  52 30 2c 23 26 34 38 5d  20 5c 20 47 4f 20 54 30  |R0,#&48] \ GO T0|
00000700  0d 0d b6 04 0d 0d c0 22  2e 54 4c 4f 4f 50 20 5c  |.......".TLOOP \|
00000710  20 44 45 4c 41 59 20 4c  4f 4f 50 20 e3 20 54 49  | DELAY LOOP . TI|
00000720  4d 45 52 20 54 30 0d 0d  ca 15 4c 44 52 42 20 52  |MER T0....LDRB R|
00000730  32 2c 5b 52 30 2c 23 26  31 30 5d 0d 0d d4 0f 54  |2,[R0,#&10]....T|
00000740  53 54 20 52 32 2c 23 26  32 30 0d 0d de 0d 42 45  |ST R2,#&20....BE|
00000750  51 20 54 4c 4f 4f 50 0d  0d e8 22 4d 4f 56 20 52  |Q TLOOP..."MOV R|
00000760  32 2c 23 26 32 30 30 30  30 30 20 5c 20 d8 20 54  |2,#&200000 \ . T|
00000770  30 20 a8 45 52 52 55 50  54 0d 0d f2 1c 53 54 52  |0 .ERRUPT....STR|
00000780  20 52 32 2c 5b 52 30 2c  23 26 31 34 5d 20 5c 20  | R2,[R0,#&14] \ |
00000790  49 52 51 20 d8 0d 0d fc  04 0d 0d fd 0a 42 20 65  |IRQ .........B e|
000007a0  78 69 74 0d 0e 06 14 5c  20 54 41 4b 45 20 ee 45  |xit....\ TAKE .E|
000007b0  20 53 41 4d 50 4c 45 0d  0e 10 1f 4d 4f 56 20 52  | SAMPLE....MOV R|
000007c0  32 2c 23 30 20 5c 20 43  48 49 50 20 53 45 4c 45  |2,#0 \ CHIP SELE|
000007d0  43 54 20 4c 4f 57 0d 0e  1a 0f 53 54 52 20 52 32  |CT LOW....STR R2|
000007e0  2c 5b 52 31 5d 0d 0e 24  1c 4d 4f 56 20 52 33 2c  |,[R1]..$.MOV R3,|
000007f0  23 26 41 20 5c 20 42 49  54 53 20 b8 20 f3 20 49  |#&A \ BITS . . I|
00000800  4e 0d 0e 2e 21 4d 4f 56  20 52 35 2c 23 30 20 5c  |N...!MOV R5,#0 \|
00000810  20 43 4f 4c 4c 45 43 54  20 42 49 54 53 20 48 45  | COLLECT BITS HE|
00000820  52 45 0d 0e 38 0a 2e 4c  4f 4f 50 31 0d 0e 42 18  |RE..8..LOOP1..B.|
00000830  4c 44 52 20 52 34 2c 5b  52 31 2c 23 34 5d 20 5c  |LDR R4,[R1,#4] \|
00000840  20 a5 20 dc 0d 0e 4c 1f  4d 4f 56 20 52 32 2c 23  | . ...L.MOV R2,#|
00000850  26 31 30 30 30 30 20 5c  20 43 4c 4f 43 4b 20 48  |&10000 \ CLOCK H|
00000860  49 47 48 0d 0e 56 1f 53  54 52 20 52 32 2c 5b 52  |IGH..V.STR R2,[R|
00000870  31 5d 20 5c 20 50 55 54  20 4f 55 54 20 b8 20 f1  |1] \ PUT OUT . .|
00000880  45 52 0d 0e 60 14 4d 4f  56 20 52 34 2c 52 34 2c  |ER..`.MOV R4,R4,|
00000890  4c 53 52 20 23 36 0d 0e  6a 1b 80 20 52 34 2c 52  |LSR #6..j.. R4,R|
000008a0  34 2c 23 31 20 5c 20 4d  41 53 4b 20 dc 20 42 49  |4,#1 \ MASK . BI|
000008b0  54 0d 0e 74 2e 4d 4f 56  20 52 35 2c 52 35 2c 4c  |T..t.MOV R5,R5,L|
000008c0  53 4c 20 23 31 20 5c 20  50 52 45 50 41 52 45 20  |SL #1 \ PREPARE |
000008d0  52 35 20 b8 20 52 45 43  49 45 56 45 20 49 54 0d  |R5 . RECIEVE IT.|
000008e0  0e 7e 23 84 52 20 52 35  2c 52 35 2c 52 34 20 5c  |.~#.R R5,R5,R4 \|
000008f0  20 4d 49 58 20 49 54 20  49 4e 20 57 49 54 48 20  | MIX IT IN WITH |
00000900  52 35 0d 0e 88 19 4d 4f  56 20 52 32 2c 23 30 20  |R5....MOV R2,#0 |
00000910  5c 20 43 4c 4f 43 4b 20  4c 4f 57 0d 0e 92 0f 53  |\ CLOCK LOW....S|
00000920  54 52 20 52 32 2c 5b 52  31 5d 0d 0e 9c 11 53 55  |TR R2,[R1]....SU|
00000930  42 53 20 52 33 2c 52 33  2c 23 31 0d 0e a6 0d 42  |BS R3,R3,#1....B|
00000940  4e 45 20 4c 4f 4f 50 31  0d 0e b0 25 4d 4f 56 20  |NE LOOP1...%MOV |
00000950  52 32 2c 23 26 32 30 30  30 30 20 5c 20 43 48 49  |R2,#&20000 \ CHI|
00000960  50 20 53 45 4c 45 43 54  20 48 49 47 48 0d 0e ba  |P SELECT HIGH...|
00000970  0f 53 54 52 20 52 32 2c  5b 52 31 5d 0d 0e c4 23  |.STR R2,[R1]...#|
00000980  80 20 52 35 2c 52 35 2c  23 26 46 46 20 5c 20 4d  |. R5,R5,#&FF \ M|
00000990  41 53 4b 20 87 20 53 54  41 52 54 20 42 49 54 0d  |ASK . START BIT.|
000009a0  0e ce 16 5c 52 35 20 4e  4f 57 20 48 41 53 20 53  |...\R5 NOW HAS S|
000009b0  41 4d 50 4c 45 0d 0e d8  2a 53 54 52 42 20 52 35  |AMPLE...*STRB R5|
000009c0  2c 5b 52 36 5d 2c 23 31  20 5c 20 50 55 54 20 49  |,[R6],#1 \ PUT I|
000009d0  54 20 49 4e 20 54 48 45  20 42 55 46 46 45 52 0d  |T IN THE BUFFER.|
000009e0  0e e2 29 53 55 42 53 20  52 37 2c 52 37 2c 23 31  |..)SUBS R7,R7,#1|
000009f0  20 20 5c 20 44 45 43 52  45 4d 45 4e 54 20 42 59  |  \ DECREMENT BY|
00000a00  54 45 53 20 b8 20 47 4f  0d 0e ec 21 42 4e 45 20  |TES . GO...!BNE |
00000a10  20 54 4c 4f 4f 50 20 5c  20 42 41 43 4b 20 fd 4c  | TLOOP \ BACK .L|
00000a20  20 41 4c 4c 20 44 4f 4e  45 0d 0e f6 04 0d 0e f7  | ALL DONE.......|
00000a30  09 2e 65 78 69 74 0d 0f  00 13 5c 50 52 45 50 41  |..exit....\PREPA|
00000a40  52 45 20 b8 20 45 58 49  54 0d 0f 0a 22 4d 4f 56  |RE . EXIT..."MOV|
00000a50  20 52 32 2c 23 26 32 30  30 30 30 30 20 5c 20 d8  | R2,#&200000 \ .|
00000a60  20 54 30 20 a8 45 52 52  55 50 54 0d 0f 14 1d 5c  | T0 .ERRUPT....\|
00000a70  53 54 52 20 52 32 2c 5b  52 30 2c 23 26 31 34 5d  |STR R2,[R0,#&14]|
00000a80  20 5c 20 49 52 51 20 d8  0d 0f 1e 21 4c 44 52 20  | \ IRQ ....!LDR |
00000a90  52 32 2c 5b 52 30 2c 23  26 31 38 5d 20 5c 20 a5  |R2,[R0,#&18] \ .|
00000aa0  20 49 52 51 20 4d 41 53  4b 0d 0f 28 1c 80 20 52  | IRQ MASK..(.. R|
00000ab0  32 2c 52 32 2c 23 26 44  46 20 5c 20 45 4e 41 42  |2,R2,#&DF \ ENAB|
00000ac0  4c 45 20 54 30 0d 0f 32  16 4d 4f 56 20 20 52 32  |LE T0..2.MOV  R2|
00000ad0  2c 52 32 2c 4c 53 4c 20  23 31 36 0d 0f 3c 20 5c  |,R2,LSL #16..< \|
00000ae0  53 54 52 20 52 32 2c 5b  52 30 2c 23 26 31 38 5d  |STR R2,[R0,#&18]|
00000af0  20 5c 20 4d 41 53 4b 20  52 45 47 0d 0f 46 04 0d  | \ MASK REG..F..|
00000b00  0f 50 0e 54 45 51 50 20  52 39 2c 23 30 0d 0f 5a  |.P.TEQP R9,#0..Z|
00000b10  0f 4d 4f 56 4e 56 20 52  30 2c 52 30 0d 0f 64 2d  |.MOVNV R0,R0..d-|
00000b20  4c 44 4d 46 44 20 52 31  33 21 2c 20 7b 50 43 7d  |LDMFD R13!, {PC}|
00000b30  20 5c 20 42 41 43 4b 20  46 52 4f 4d 20 c9 53 54  | \ BACK FROM .ST|
00000b40  20 59 4f 55 20 43 41 4d  45 0d 0f 6e 04 0d 10 86  | YOU CAME..n....|
00000b50  05 5d 0d 10 90 05 ed 0d  10 c2 05 e1 0d ff        |.]............|
00000b5e