Home » Archimedes archive » Micro User » MU 1992-04.adf » Listings » 32bit/!SnScope/!Run
32bit/!SnScope/!Run
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 » Micro User » MU 1992-04.adf » Listings |
Filename: | 32bit/!SnScope/!Run |
Read OK: | ✔ |
File size: | 1B63 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >!SnScope.!Run 20MODE9 30MSP%=9 40DIM CODE% &200, BP% &400,S1%(MSP%),S2%(MSP%) 50PRINT TAB(0,5)"THE BEEB BODY BUILDING COURSE" 60PRINT TAB(0,8)"By Mike Cook" 70PRINT TAB(0,10)"Sound Sampler Oscilloscope" 80PRINT TAB(0,15)"You need the Sound Sampler for this" 90PRINT"Any key to continue" 100A$=GET$ 110SPEED%=0:PROC_CSU 120SW%=1:T%=180 130MARK=FALSE:TRIG=TRUE 140JOIN=FALSE:Sing=TRUE 150SYS"OS_ReadDynamicArea",2 TO ,A% 160SP%=&2000000-A% 170 180FOR A%=BP% TO BP%+640 190?A%=128 200NEXT 210 220*POINTER 1 230MOUSE RECTANGLE 0,500,1280,512 240PROC_SETUP 250GCOL 3,2 260LINE 0,760,1279,760 270 280REPEAT 290PROC_LAB 300DP%=BP%+320*(SW% EOR 1) 310IF JOIN THEN PROC_JOIN 320GCOL 3,1 330MOUSE LX%,Y%,B1% 340LINE LX%,508,LX%,1019 350REPEAT 360MOUSE X%,Y%,B1% 370IF X%<>LX% THEN 380 GCOL 3,1 390 LINE LX%,508,LX%,1019 400 LINE X%,508,X%,1019 410 LX%=X% 420 PRINTTAB(10,22);X%>>2;SPC(3) 430 PRINTSPC(10);((X%>>2)*S2%(SPEED%))/1000;"mS";SPC(3) 440 PRINTTAB(10,25);255-?(DP%+(X%>>2));SPC(3) 450 IF MARK THEN 460 PRINTTAB(15,22);"Time Difference ";(X%>>2)-MKT%;SPC(3) 470 PRINTTAB(32,23);(((X%>>2)-MKT%)*S2%(SPEED%))/1000;"mS";SPC(3) 480 PRINTTAB(15,25);"Amplitude Difference ";(255-?(DP%+(X%>>2)))-MKA%;SPC(3) 490 ENDIF 500ENDIF 510 520IF B1%=4 THEN PROC_SETUP:PRINT TAB(0,20);"RUNNING":PROC_RUN:PRINTTAB(0,20);SPC(7) 530IF B1%=2 THEN PROC_OPTIONS 540IF B1%=1 THEN PROC_MARK 550UNTIL B1%=4 OR B1%=2 560UNTIL FALSE 570 580DEF PROC_LAB 590PRINTTAB(0,18)"Select - Run | Menu | Adjust - Mark" 600FOR A%=19 TO 28 610PRINT TAB(0,A%)SPC(40) 620NEXT 630PRINTTAB(0,27);S2%(SPEED%);"uS per sample" 640PRINTTAB(0,22)"Time step" 650PRINTTAB(0,25)"Amplitude" 660IF JOIN THEN PRINTTAB(0,20)"Joined" ELSE PRINTTAB(0,20)"Dots " 670IF Sing THEN PRINTTAB(13,20)"Single Shot" ELSE PRINTTAB(13,20)"Repetitive" 680IF TRIG THEN PRINTTAB(28,20)"Trigger ";T% ELSE PRINTTAB(28,20)"Trigger OFF" 690ENDPROC 700 710DEF PROC_MARK 720IF MARK THEN 730 MARK=FALSE 740 GCOL 3,4 750 LINE MX%,508,MX%,1019 760 PRINTTAB(15,22);SPC(24) 770 PRINTTAB(17,23);SPC(22) 780 PRINTTAB(15,25);SPC(24) 790ELSE 800 MARK=TRUE 810 MKA%=255-?(DP%+(X%>>2)) 820 MKT%=X%>>2 830 MX%=X% 840 GCOL 1,4 850 LINE MX%,508,MX%,1019 860ENDIF 870PROC_EMPTY 880ENDPROC 890 900DEF PROC_OPTIONS 910LINE X%,508,X%,1019 920PRINTTAB(0,27)SPC(20) 930PRINTTAB(0,20)"Options:-";SPC(30) 940PRINT"T : Trigger ON/OFF V : Trigger Value" 950PRINT"S : Single shot R : Repetitive" 960PRINT"J : Join the dots D : Sample Dots" 970PRINT"+ : Increment Time - : Decrement Time" 980PRINT SPC(30) 990PRINTTAB(0,25)"Choice? "; 1000A$=GET$:PRINTA$ 1010IF A$="J" OR A$="j" THEN JOIN=TRUE:PROC_JOIN 1020IF A$="T" OR A$="t" THEN TRIG=NOT(TRIG) 1030IF A$="D" OR A$="d" THEN JOIN=FALSE:PROC_DOTS 1040IF A$="S" OR A$="s" THEN Sing=TRUE 1050IF A$="R" OR A$="r" THEN Sing=FALSE 1060IF A$="V" OR A$="v" THEN PROC_TRIGV 1070IF A$="+" OR A$="=" THEN SPEED%+=1:IF SPEED%=MSP% THEN SPEED%-=1 1080IF A$="-" OR A$="_" THEN SPEED%-=1:IF SPEED%<0 THEN SPEED%=0 1090ENDPROC 1100 1110DEF PROC_JOIN 1120PROC_DD(5) 1130ENDPROC 1140 1150DEF PROC_DOTS 1160GCOL 0,0 1170RECTANGLEFILL 4,508,1270,508 1180PROC_DD(69) 1190ENDPROC 1200 1210DEF PROC_DD(P%) 1220GCOL 0,2:DX%=1 1230PLOT 69,0,1019-(?DP%)*2 1240FOR A%=4 TO 1279 STEP 4 1250PLOT P%,A%,1019-(?(DP%+DX%))*2 1260DX%+=1 1270NEXT 1280ENDPROC 1290 1300DEF PROC_TRIGV 1310LOCAL t% 1320REPEAT 1330PRINTTAB(0,26)"Trigger Value between 128 and 230" 1340PRINT"Current Trigger ";T%;SPC(3) 1350PRINTTAB(0,28)SPC(25) 1360PRINTTAB(0,28)"Enter new value "; 1370INPUT t% 1380UNTIL t%>127 AND t%< 231 1390T%=t% 1400ENDPROC 1410 1420DEF PROC_SETUP 1430CLS:CLG 1440GCOL 0,7 1450RECTANGLE 0,504,1279,516 1460IF Sing AND TRIG THEN PRINTTAB(0,18)"Waiting for trigger" ELSE PRINT TAB(0,18);"Space to freeze";SPC(6) 1470ENDPROC 1480 1490DEF PROC_RUN 1500*POINTER 0 1510SW=1:MARK=FALSE 1520FOR A%=0 TO 640 STEP 4 1530BP%!A%=0 1540NEXT 1550GCOL 3,2 1560LINE 0,1019,1279,1019 1570IF TRIG THEN ?TVAL=255-T% ELSE ?TVAL=0 1580!SPE1=(S1%(SPEED%) AND &FF)<<16 1590!SPE2=(S1%(SPEED%) >> 8)<<16 1600REPEAT 1610PROC_SAMPLE 1620PROC_DISPLAY 1630UNTIL INKEY(-99) OR Sing 1640PROC_EMPTY 1650*POINTER 1 1660MOUSE RECTANGLE 0,500,1280,512 1670ENDPROC 1680 1690DEF PROC_EMPTY 1700REPEAT 1710MOUSE X%,Y%,B% 1720UNTIL B%=0 1730ENDPROC 1740 1750DEF PROC_DISPLAY 1760A%=BP% 1770B%=SP% 1780CALL DISP 1790ENDPROC 1800 1810DEF PROC_SAMPLE 1820G%=BP%+320*SW%:H%=320 1830SW%=SW% EOR 1 1840CALL SAMP 1850ENDPROC 1860 1870DEF PROC_CSU :REM CODE SETUP 1880FOR A=0 TO 2 STEP 2 1890P%=CODE% 1900[ 1910OPT A 1920.SAMP 1930MOV R0,#&18 \ UNUSED VECTOR NUMBER 1940ADR R1,GS \ ROUTINE TO CALL ON UNKNOWN SWI 1950MOV R2,#0 \ NUMBER TO PASS TO CALLING ROUTINE 1960SWI "OS_Claim" \ CLAME VECTOR 1970SWI &80101 \ UNUSED VECTOR TO CALL READ IN ROUTINE 1980MOV R2,#0 1990MOV R0,#&18 \ VECTOR NUMBER 2000ADR R1,GS 2010SWI &20 \ RELESE VECTOR 2020MOV R15,R14 \ BACK TO BASIC 2030 2040.TVAL EQUD 0 \ TRIGGER VALUE 2050.SPE1 EQUD 0 \ LSB OF SPEED 2060.SPE2 EQUD 0 \ MSB OF SPEED 2070.GS \ GATHER SOUND 2080TEQP R15,#&C000003 \DISABLE INTERRUPTS 2090MOV R0,#&3200000 \ BASE ADDRESS OF IOC 2100ADD R1,R0,#&50000 \ BASE OF PRINTER LATCH 2110 2120\ HOLD FOR TRIGGER 2130LDR R2,TVAL 2140CMP R2,#0 2150BEQ TRUN \ SKIP THIS IF TRIGGER VALUE IS 0 2160.THOLD 2170MOV R2,#0 \ CHIP SELECT LOW 2180STR R2,[R1,#&10] 2190MOV R3,#&A \ BITS TO READ IN 2200MOV R5,#0 \ COLLECT BITS HERE 2210.LOOP2 2220LDR R4,[R0,#&10] \ GET DATA 2230MOV R2,#&10000 \ CLOCK HIGH 2240STR R2,[R1,#&10] \ PUT OUT TO PRINTER 2250AND R4,R4,#1 \ MASK DATA BIT 2260MOV R5,R5,LSL #1 \ PREPARE R5 TO RECIEVE IT 2270ORR R5,R5,R4 \ MIX IT IN WITH R5 2280MOV R2,#0 \ CLOCK LOW 2290STR R2,[R1,#&10] 2300SUBS R3,R3,#1 2310BNE LOOP2 2320MOV R2,#&20000 \ CHIP SELECT HIGH 2330STR R2,[R1,#&10] 2340AND R5,R5,#&FF \ MASK OFF START BIT 2350\R5 NOW HAS SAMPLE 2360LDR R2,TVAL 2370CMP R2,R5 2380BLS THOLD 2390 2400.TRUN 2410LDR R2,SPE2 \ T1 VALUE HIGH 2420STR R2,[R0,#&54] \ T1 LATCH HIGH 2430LDR R2,SPE1 \ T1 VALUE LOW 2440STR R2,[R0,#&50] \ T1 LATCH LOW 2450 2460LDR R2,[R0,#&18] \ GET IRQ MASK 2470ORR R2,R2,#&40 \ ENABLE T1 2480MOV R2,R2,LSL #16 2490STR R2,[R0,#&18] \ MASK REG 2500 2510MOV R2,#&400000 \ CLEAR T1 INTERRUPT 2520STR R2,[R0,#&14] \ IRQ CLEAR 2530STR R2,[R0,#&58] \ GO T1 2540 2550.TLOOP \ DELAY LOOP FOR TIMER T1 2560LDRB R2,[R0,#&10] 2570TST R2,#&40 2580BEQ TLOOP 2590MOV R2,#&400000 \ CLEAR T1 INTERRUPT 2600STR R2,[R0,#&14] \ IRQ CLEAR 2610 2620\ TAKE ONE SAMPLE 2630MOV R2,#0 \ CHIP SELECT LOW 2640STR R2,[R1,#&10] 2650MOV R3,#&A \ BITS TO READ IN 2660MOV R5,#0 \ COLLECT BITS HERE 2670.LOOP1 2680LDR R4,[R0,#&10] \ GET DATA 2690MOV R2,#&10000 \ CLOCK HIGH 2700STR R2,[R1,#&10] \ PUT OUT TO PRINTER 2710AND R4,R4,#1 \ MASK DATA BIT 2720MOV R5,R5,LSL #1 \ PREPARE R5 TO RECIEVE IT 2730ORR R5,R5,R4 \ MIX IT IN WITH R5 2740MOV R2,#0 \ CLOCK LOW 2750STR R2,[R1,#&10] 2760SUBS R3,R3,#1 2770BNE LOOP1 2780MOV R2,#&20000 \ CHIP SELECT HIGH 2790STR R2,[R1,#&10] 2800AND R5,R5,#&FF \ MASK OFF START BIT 2810\R5 NOW HAS SAMPLE 2820STRB R5,[R6],#1 \ PUT IT IN THE BUFFER 2830SUBS R7,R7,#1 \ DECREMENT BYTES TO GO 2840BNE TLOOP \ BACK UNTILL ALL DONE 2850 2860\PREPARE TO EXIT 2870MOV R2,#&400000 \ CLEAR T1 INTERRUPT 2880STR R2,[R0,#&14] \ IRQ CLEAR 2890LDR R2,[R0,#&18] \ GET IRQ MASK 2900AND R2,R2,#&BF \ ENABLE T1 2910MOV R2,R2,LSL #16 2920STR R2,[R0,#&18] \ MASK REG 2930 2940LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME 2950 2960.DISP \ DISPLAY THE BUFFER 2970MOV R2,#0 \ X VALUE 2980MOV R5,#160 \ BYTES PER ROW 2990MOV R7,R0 \ RENUMBER START OF DATA BUFFER 3000ADD R7,R7,#320 \ ADDRESS OF HALF BUFFER 3010ADD R1,R1,#160 \ MOVE OFF TOP LINE 3020.DLOOP 3030LDRB R3,[R0],#1 \ Y VALUE 3040MOV R3,R3,LSR #1 3050MLA R4,R3,R5,R2 \ GET PIXEL OFFSET 3060ADD R4,R4,R1 \ REAL ADDRESS 3070LDRB R6,[R4] \ GET PIXEL 3080EOR R6,R6,#&2 \ TOGGLE FIRST PIXEL 3090STRB R6,[R4] \ PUT IT BACK 3100LDRB R3,[R0],#1 3110MOV R3,R3,LSR #1 3120MLA R4,R3,R5,R2 3130ADD R4,R4,R1 3140LDRB R6,[R4] 3150EOR R6,R6,#&20 \ TOGGLE SECOND PIXEL 3160STRB R6,[R4] 3170ADD R2,R2,#1 \ MOVE ALONG THE X 3180CMP R0,R7 \ FINISHED ONE BUFFER 3190MOVEQ R2,#0 \ X VALUE FOR NEXT PASS 3200CMP R2,#160 \ FINISHED? 3210BNE DLOOP 3220MOV R15,R14 \ BACK TO BASIC 3230] 3240NEXT 3250FOR A%=0 TO MSP%-1 3260READ S1%(A%) 3270S2%(A%)=S1%(A%)/2 3280NEXT 3290ENDPROC 3300DATA 100,140,180,220,320,640,1280,2000,4000
� >!SnScope.!Run �9 MSP%=9 (.� CODE% &200, BP% &400,S1%(MSP%),S2%(MSP%) 2*� �0,5)"THE BEEB BODY BUILDING COURSE" <� �0,8)"By Mike Cook" F(� �0,10)"Sound Sampler Oscilloscope" P1� �0,15)"You need the Sound Sampler for this" Z�"Any key to continue" dA$=� nSPEED%=0:�_CSU xSW%=1:T%=180 �MARK=�:TRIG=� �JOIN=�:Sing=� �"ș"OS_ReadDynamicArea",2 � ,A% �SP%=&2000000-A% � �� A%=BP% � BP%+640 �?A%=128 �� � �*POINTER 1 �ȗ ȓ 0,500,1280,512 ��_SETUP � � 3,2 � 0,760,1279,760 � " �_LAB ,DP%=BP%+320*(SW% � 1) 6� JOIN � �_JOIN @ � 3,1 Jȗ LX%,Y%,B1% T� LX%,508,LX%,1019 ^� hȗ X%,Y%,B1% r� X%<>LX% � | � 3,1 � � LX%,508,LX%,1019 � � X%,508,X%,1019 � LX%=X% � �10,22);X%>>2;�(3) �2 �(10);((X%>>2)*S2%(SPEED%))/1000;"mS";�(3) �' �10,25);255-?(DP%+(X%>>2));�(3) � � MARK � �7 �15,22);"Time Difference ";(X%>>2)-MKT%;�(3) �> �32,23);(((X%>>2)-MKT%)*S2%(SPEED%))/1000;"mS";�(3) �I �15,25);"Amplitude Difference ";(255-?(DP%+(X%>>2)))-MKA%;�(3) � � �� � ;� B1%=4 � �_SETUP:� �0,20);"RUNNING":�_RUN:�0,20);�(7) � B1%=2 � �_OPTIONS � B1%=1 � �_MARK &� B1%=4 � B1%=2 0� � : D� �_LAB N0�0,18)"Select - Run | Menu | Adjust - Mark" X� A%=19 � 28 b� �0,A%)�(40) l� v'�0,27);S2%(SPEED%);"uS per sample" ��0,22)"Time step" ��0,25)"Amplitude" �.� JOIN � �0,20)"Joined" � �0,20)"Dots " �9� Sing � �13,20)"Single Shot" � �13,20)"Repetitive" �:� TRIG � �28,20)"Trigger ";T% � �28,20)"Trigger OFF" �� � �� �_MARK �� MARK � � MARK=� � � 3,4 � � MX%,508,MX%,1019 � �15,22);�(24) �17,23);�(22) �15,25);�(24) � MARK=� * MKA%=255-?(DP%+(X%>>2)) 4 MKT%=X%>>2 > MX%=X% H � 1,4 R � MX%,508,MX%,1019 \� f�_EMPTY p� z �� �_OPTIONS �� X%,508,X%,1019 ��0,27)�(20) ��0,20)"Options:-";�(30) �-�"T : Trigger ON/OFF V : Trigger Value" �*�"S : Single shot R : Repetitive" �+�"J : Join the dots D : Sample Dots" �.�"+ : Increment Time - : Decrement Time" �� �(30) ��0,25)"Choice? "; �A$=�:�A$ �%� A$="J" � A$="j" � JOIN=�:�_JOIN �$� A$="T" � A$="t" � TRIG=�(TRIG) %� A$="D" � A$="d" � JOIN=�:�_DOTS � A$="S" � A$="s" � Sing=� � A$="R" � A$="r" � Sing=� $� A$="V" � A$="v" � �_TRIGV .;� A$="+" � A$="=" � SPEED%+=1:� SPEED%=MSP% � SPEED%-=1 87� A$="-" � A$="_" � SPEED%-=1:� SPEED%<0 � SPEED%=0 B� L V� �_JOIN `�_DD(5) j� t ~� �_DOTS � � 0,0 �ȓȐ 4,508,1270,508 ��_DD(69) �� � �� �_DD(P%) �� 0,2:DX%=1 �� 69,0,1019-(?DP%)*2 �� A%=4 � 1279 � 4 �� P%,A%,1019-(?(DP%+DX%))*2 � DX%+=1 �� � � �_TRIGV � t% (� 2.�0,26)"Trigger Value between 128 and 230" <�"Current Trigger ";T%;�(3) F�0,28)�(25) P�0,28)"Enter new value "; Z� t% d� t%>127 � t%< 231 n T%=t% x� � � � �_SETUP ��:� � � 0,7 �ȓ 0,504,1279,516 �R� Sing � TRIG � �0,18)"Waiting for trigger" � � �0,18);"Space to freeze";�(6) �� � �� �_RUN �*POINTER 0 �SW=1:MARK=� �� A%=0 � 640 � 4 �BP%!A%=0 � � 3,2 � 0,1019,1279,1019 "#� TRIG � ?TVAL=255-T% � ?TVAL=0 ,!!SPE1=(S1%(SPEED%) � &FF)<<16 6 !SPE2=(S1%(SPEED%) >> 8)<<16 @� J�_SAMPLE T �_DISPLAY ^� �(-99) � Sing h�_EMPTY r*POINTER 1 |ȗ ȓ 0,500,1280,512 �� � � � �_EMPTY �� �ȗ X%,Y%,B% � � B%=0 �� � �� �_DISPLAY � A%=BP% � B%=SP% � � DISP �� � �_SAMPLE G%=BP%+320*SW%:H%=320 &SW%=SW% � 1 0 � SAMP :� D N� �_CSU :� CODE SETUP X� A=0 � 2 � 2 bP%=CODE% l[ v OPT A � .SAMP �&MOV R0,#&18 \ UNUSED VECTOR NUMBER �)ADR R1,GS \ ROUTINE � � � UNKNOWN SWI �,MOV R2,#0 \ NUMBER � PASS � �ING ROUTINE �!SWI "OS_Claim" \ CLAME VECTOR �/SWI &80101 \ UNUSED VECTOR � � � IN ROUTINE � MOV R2,#0 �MOV R0,#&18 \ VECTOR NUMBER � ADR R1,GS �SWI &20 \ RELESE VECTOR �MOV R15,R14 \ BACK � BASIC � �.TVAL EQUD 0 \ TRIGGER �UE .SPE1 EQUD 0 \ LSB � SPEED .SPE2 EQUD 0 \ MSB � SPEED .GS \ GATHER � (TEQP R15,#&C000003 \DISABLE �ERRUPTS *)MOV R0,#&3200000 \ BASE ADDRESS � IOC 4(ADD R1,R0,#&50000 \ BASE � �ER LATCH > H\ HOLD � TRIGGER RLDR R2,TVAL \ CMP R2,#0 f+BEQ TRUN \ SKIP THIS � TRIGGER �UE IS 0 p .THOLD zMOV R2,#0 \ CHIP SELECT LOW �STR R2,[R1,#&10] �MOV R3,#&A \ BITS � � IN �!MOV R5,#0 \ COLLECT BITS HERE � .LOOP2 �LDR R4,[R0,#&10] \ � � �MOV R2,#&10000 \ CLOCK HIGH �$STR R2,[R1,#&10] \ PUT OUT � �ER �� 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,#&10] �SUBS R3,R3,#1 BNE LOOP2 %MOV R2,#&20000 \ CHIP SELECT HIGH STR R2,[R1,#&10] $#� R5,R5,#&FF \ MASK � START BIT .\R5 NOW HAS SAMPLE 8LDR R2,TVAL B CMP R2,R5 L BLS THOLD V ` .TRUN jLDR R2,SPE2 \ T1 �UE HIGH t$STR R2,[R0,#&54] \ T1 LATCH HIGH ~LDR R2,SPE1 \ T1 �UE LOW �#STR R2,[R0,#&50] \ T1 LATCH LOW � �!LDR R2,[R0,#&18] \ � IRQ MASK ��R R2,R2,#&40 \ ENABLE T1 �MOV R2,R2,LSL #16 �STR R2,[R0,#&18] \ MASK REG � �"MOV R2,#&400000 \ � T1 �ERRUPT �STR R2,[R0,#&14] \ IRQ � �STR R2,[R0,#&58] \ GO T1 � �".TLOOP \ DELAY LOOP � TIMER T1 LDRB R2,[R0,#&10] TST R2,#&40 BEQ TLOOP "MOV R2,#&400000 \ � T1 �ERRUPT (STR R2,[R0,#&14] \ IRQ � 2 <\ TAKE �E SAMPLE FMOV R2,#0 \ CHIP SELECT LOW PSTR R2,[R1,#&10] ZMOV R3,#&A \ BITS � � IN d!MOV R5,#0 \ COLLECT BITS HERE n .LOOP1 xLDR R4,[R0,#&10] \ � � �MOV R2,#&10000 \ CLOCK HIGH �$STR R2,[R1,#&10] \ PUT OUT � �ER �� 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,#&10] �SUBS R3,R3,#1 � BNE LOOP1 �%MOV R2,#&20000 \ CHIP SELECT HIGH �STR R2,[R1,#&10] �#� 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 " ,\PREPARE � EXIT 6"MOV R2,#&400000 \ � T1 �ERRUPT @STR R2,[R0,#&14] \ IRQ � J!LDR R2,[R0,#&18] \ � IRQ MASK T� R2,R2,#&BF \ ENABLE T1 ^MOV R2,R2,LSL #16 hSTR R2,[R0,#&18] \ MASK REG r |-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME � �.DISP \ DISPLAY THE BUFFER �MOV R2,#0 \ X �UE �MOV R5,#160 \ BYTES PER ROW �#MOV R7,R0 \ Ǚ START � � BUFFER �*ADD R7,R7,#320 \ ADDRESS � HALF BUFFER �ADD R1,R1,#160 \ � � �P � � .DLOOP �LDRB R3,[R0],#1 \ Y �UE �MOV R3,R3,LSR #1 �"MLA R4,R3,R5,R2 \ � PIXEL �SET �ADD R4,R4,R1 \ REAL ADDRESS �LDRB R6,[R4] \ � PIXEL #� R6,R6,#&2 \ �GGLE FIRST PIXEL STRB R6,[R4] \ PUT IT BACK LDRB R3,[R0],#1 &MOV R3,R3,LSR #1 0MLA R4,R3,R5,R2 :ADD R4,R4,R1 DLDRB R6,[R4] N%� R6,R6,#&20 \ �GGLE SECOND PIXEL XSTRB R6,[R4] b ADD R2,R2,#1 \ � ALONG THE X l"CMP R0,R7 \ FINISHED �E BUFFER v�Q R2,#0 \ X �UE � � PASS �CMP R2,#160 \ FINISHED? � BNE DLOOP �MOV R15,R14 \ BACK � BASIC �] �� �� A%=0 � MSP%-1 � � S1%(A%) �S2%(A%)=S1%(A%)/2 �� �� �,� 100,140,180,220,320,640,1280,2000,4000 �
00000000 0d 00 0a 14 f4 20 3e 21 53 6e 53 63 6f 70 65 2e |..... >!SnScope.| 00000010 21 52 75 6e 0d 00 14 06 eb 39 0d 00 1e 0a 4d 53 |!Run.....9....MS| 00000020 50 25 3d 39 0d 00 28 2e de 20 43 4f 44 45 25 20 |P%=9..(.. CODE% | 00000030 26 32 30 30 2c 20 42 50 25 20 26 34 30 30 2c 53 |&200, BP% &400,S| 00000040 31 25 28 4d 53 50 25 29 2c 53 32 25 28 4d 53 50 |1%(MSP%),S2%(MSP| 00000050 25 29 0d 00 32 2a f1 20 8a 30 2c 35 29 22 54 48 |%)..2*. .0,5)"TH| 00000060 45 20 42 45 45 42 20 42 4f 44 59 20 42 55 49 4c |E BEEB BODY BUIL| 00000070 44 49 4e 47 20 43 4f 55 52 53 45 22 0d 00 3c 19 |DING COURSE"..<.| 00000080 f1 20 8a 30 2c 38 29 22 42 79 20 4d 69 6b 65 20 |. .0,8)"By Mike | 00000090 43 6f 6f 6b 22 0d 00 46 28 f1 20 8a 30 2c 31 30 |Cook"..F(. .0,10| 000000a0 29 22 53 6f 75 6e 64 20 53 61 6d 70 6c 65 72 20 |)"Sound Sampler | 000000b0 4f 73 63 69 6c 6c 6f 73 63 6f 70 65 22 0d 00 50 |Oscilloscope"..P| 000000c0 31 f1 20 8a 30 2c 31 35 29 22 59 6f 75 20 6e 65 |1. .0,15)"You ne| 000000d0 65 64 20 74 68 65 20 53 6f 75 6e 64 20 53 61 6d |ed the Sound Sam| 000000e0 70 6c 65 72 20 66 6f 72 20 74 68 69 73 22 0d 00 |pler for this"..| 000000f0 5a 1a f1 22 41 6e 79 20 6b 65 79 20 74 6f 20 63 |Z.."Any key to c| 00000100 6f 6e 74 69 6e 75 65 22 0d 00 64 08 41 24 3d be |ontinue"..d.A$=.| 00000110 0d 00 6e 12 53 50 45 45 44 25 3d 30 3a f2 5f 43 |..n.SPEED%=0:._C| 00000120 53 55 0d 00 78 10 53 57 25 3d 31 3a 54 25 3d 31 |SU..x.SW%=1:T%=1| 00000130 38 30 0d 00 82 11 4d 41 52 4b 3d a3 3a 54 52 49 |80....MARK=.:TRI| 00000140 47 3d b9 0d 00 8c 11 4a 4f 49 4e 3d a3 3a 53 69 |G=.....JOIN=.:Si| 00000150 6e 67 3d b9 0d 00 96 22 c8 99 22 4f 53 5f 52 65 |ng=....".."OS_Re| 00000160 61 64 44 79 6e 61 6d 69 63 41 72 65 61 22 2c 32 |adDynamicArea",2| 00000170 20 b8 20 2c 41 25 0d 00 a0 13 53 50 25 3d 26 32 | . ,A%....SP%=&2| 00000180 30 30 30 30 30 30 2d 41 25 0d 00 aa 04 0d 00 b4 |000000-A%.......| 00000190 16 e3 20 41 25 3d 42 50 25 20 b8 20 42 50 25 2b |.. A%=BP% . BP%+| 000001a0 36 34 30 0d 00 be 0b 3f 41 25 3d 31 32 38 0d 00 |640....?A%=128..| 000001b0 c8 05 ed 0d 00 d2 04 0d 00 dc 0e 2a 50 4f 49 4e |...........*POIN| 000001c0 54 45 52 20 31 0d 00 e6 18 c8 97 20 c8 93 20 30 |TER 1...... .. 0| 000001d0 2c 35 30 30 2c 31 32 38 30 2c 35 31 32 0d 00 f0 |,500,1280,512...| 000001e0 0b f2 5f 53 45 54 55 50 0d 00 fa 09 e6 20 33 2c |.._SETUP..... 3,| 000001f0 32 0d 01 04 14 86 20 30 2c 37 36 30 2c 31 32 37 |2..... 0,760,127| 00000200 39 2c 37 36 30 0d 01 0e 04 0d 01 18 05 f5 0d 01 |9,760...........| 00000210 22 09 f2 5f 4c 41 42 0d 01 2c 19 44 50 25 3d 42 |".._LAB..,.DP%=B| 00000220 50 25 2b 33 32 30 2a 28 53 57 25 20 82 20 31 29 |P%+320*(SW% . 1)| 00000230 0d 01 36 13 e7 20 4a 4f 49 4e 20 8c 20 f2 5f 4a |..6.. JOIN . ._J| 00000240 4f 49 4e 0d 01 40 09 e6 20 33 2c 31 0d 01 4a 11 |OIN..@.. 3,1..J.| 00000250 c8 97 20 4c 58 25 2c 59 25 2c 42 31 25 0d 01 54 |.. LX%,Y%,B1%..T| 00000260 16 86 20 4c 58 25 2c 35 30 38 2c 4c 58 25 2c 31 |.. LX%,508,LX%,1| 00000270 30 31 39 0d 01 5e 05 f5 0d 01 68 10 c8 97 20 58 |019..^....h... X| 00000280 25 2c 59 25 2c 42 31 25 0d 01 72 0f e7 20 58 25 |%,Y%,B1%..r.. X%| 00000290 3c 3e 4c 58 25 20 8c 0d 01 7c 0c 20 20 20 e6 20 |<>LX% ...|. . | 000002a0 33 2c 31 0d 01 86 19 20 20 20 86 20 4c 58 25 2c |3,1.... . LX%,| 000002b0 35 30 38 2c 4c 58 25 2c 31 30 31 39 0d 01 90 17 |508,LX%,1019....| 000002c0 20 20 20 86 20 58 25 2c 35 30 38 2c 58 25 2c 31 | . X%,508,X%,1| 000002d0 30 31 39 0d 01 9a 0d 20 20 20 4c 58 25 3d 58 25 |019.... LX%=X%| 000002e0 0d 01 a4 1a 20 20 20 f1 8a 31 30 2c 32 32 29 3b |.... ..10,22);| 000002f0 58 25 3e 3e 32 3b 89 28 33 29 0d 01 ae 32 20 20 |X%>>2;.(3)...2 | 00000300 20 f1 89 28 31 30 29 3b 28 28 58 25 3e 3e 32 29 | ..(10);((X%>>2)| 00000310 2a 53 32 25 28 53 50 45 45 44 25 29 29 2f 31 30 |*S2%(SPEED%))/10| 00000320 30 30 3b 22 6d 53 22 3b 89 28 33 29 0d 01 b8 27 |00;"mS";.(3)...'| 00000330 20 20 20 f1 8a 31 30 2c 32 35 29 3b 32 35 35 2d | ..10,25);255-| 00000340 3f 28 44 50 25 2b 28 58 25 3e 3e 32 29 29 3b 89 |?(DP%+(X%>>2));.| 00000350 28 33 29 0d 01 c2 0f 20 20 20 e7 20 4d 41 52 4b |(3).... . MARK| 00000360 20 8c 0d 01 cc 37 20 20 20 20 20 20 f1 8a 31 35 | ....7 ..15| 00000370 2c 32 32 29 3b 22 54 69 6d 65 20 44 69 66 66 65 |,22);"Time Diffe| 00000380 72 65 6e 63 65 20 22 3b 28 58 25 3e 3e 32 29 2d |rence ";(X%>>2)-| 00000390 4d 4b 54 25 3b 89 28 33 29 0d 01 d6 3e 20 20 20 |MKT%;.(3)...> | 000003a0 20 20 20 f1 8a 33 32 2c 32 33 29 3b 28 28 28 58 | ..32,23);(((X| 000003b0 25 3e 3e 32 29 2d 4d 4b 54 25 29 2a 53 32 25 28 |%>>2)-MKT%)*S2%(| 000003c0 53 50 45 45 44 25 29 29 2f 31 30 30 30 3b 22 6d |SPEED%))/1000;"m| 000003d0 53 22 3b 89 28 33 29 0d 01 e0 49 20 20 20 20 20 |S";.(3)...I | 000003e0 20 f1 8a 31 35 2c 32 35 29 3b 22 41 6d 70 6c 69 | ..15,25);"Ampli| 000003f0 74 75 64 65 20 44 69 66 66 65 72 65 6e 63 65 20 |tude Difference | 00000400 22 3b 28 32 35 35 2d 3f 28 44 50 25 2b 28 58 25 |";(255-?(DP%+(X%| 00000410 3e 3e 32 29 29 29 2d 4d 4b 41 25 3b 89 28 33 29 |>>2)))-MKA%;.(3)| 00000420 0d 01 ea 08 20 20 20 cd 0d 01 f4 05 cd 0d 01 fe |.... .........| 00000430 04 0d 02 08 3b e7 20 42 31 25 3d 34 20 8c 20 f2 |....;. B1%=4 . .| 00000440 5f 53 45 54 55 50 3a f1 20 8a 30 2c 32 30 29 3b |_SETUP:. .0,20);| 00000450 22 52 55 4e 4e 49 4e 47 22 3a f2 5f 52 55 4e 3a |"RUNNING":._RUN:| 00000460 f1 8a 30 2c 32 30 29 3b 89 28 37 29 0d 02 12 17 |..0,20);.(7)....| 00000470 e7 20 42 31 25 3d 32 20 8c 20 f2 5f 4f 50 54 49 |. B1%=2 . ._OPTI| 00000480 4f 4e 53 0d 02 1c 14 e7 20 42 31 25 3d 31 20 8c |ONS..... B1%=1 .| 00000490 20 f2 5f 4d 41 52 4b 0d 02 26 13 fd 20 42 31 25 | ._MARK..&.. B1%| 000004a0 3d 34 20 84 20 42 31 25 3d 32 0d 02 30 07 fd 20 |=4 . B1%=2..0.. | 000004b0 a3 0d 02 3a 04 0d 02 44 0b dd 20 f2 5f 4c 41 42 |...:...D.. ._LAB| 000004c0 0d 02 4e 30 f1 8a 30 2c 31 38 29 22 53 65 6c 65 |..N0..0,18)"Sele| 000004d0 63 74 20 2d 20 52 75 6e 20 7c 20 4d 65 6e 75 20 |ct - Run | Menu | 000004e0 7c 20 41 64 6a 75 73 74 20 2d 20 4d 61 72 6b 22 || Adjust - Mark"| 000004f0 0d 02 58 10 e3 20 41 25 3d 31 39 20 b8 20 32 38 |..X.. A%=19 . 28| 00000500 0d 02 62 11 f1 20 8a 30 2c 41 25 29 89 28 34 30 |..b.. .0,A%).(40| 00000510 29 0d 02 6c 05 ed 0d 02 76 27 f1 8a 30 2c 32 37 |)..l....v'..0,27| 00000520 29 3b 53 32 25 28 53 50 45 45 44 25 29 3b 22 75 |);S2%(SPEED%);"u| 00000530 53 20 70 65 72 20 73 61 6d 70 6c 65 22 0d 02 80 |S per sample"...| 00000540 16 f1 8a 30 2c 32 32 29 22 54 69 6d 65 20 73 74 |...0,22)"Time st| 00000550 65 70 22 0d 02 8a 16 f1 8a 30 2c 32 35 29 22 41 |ep"......0,25)"A| 00000560 6d 70 6c 69 74 75 64 65 22 0d 02 94 2e e7 20 4a |mplitude"..... J| 00000570 4f 49 4e 20 8c 20 f1 8a 30 2c 32 30 29 22 4a 6f |OIN . ..0,20)"Jo| 00000580 69 6e 65 64 22 20 8b 20 f1 8a 30 2c 32 30 29 22 |ined" . ..0,20)"| 00000590 44 6f 74 73 20 20 22 0d 02 9e 39 e7 20 53 69 6e |Dots "...9. Sin| 000005a0 67 20 8c 20 f1 8a 31 33 2c 32 30 29 22 53 69 6e |g . ..13,20)"Sin| 000005b0 67 6c 65 20 53 68 6f 74 22 20 8b 20 f1 8a 31 33 |gle Shot" . ..13| 000005c0 2c 32 30 29 22 52 65 70 65 74 69 74 69 76 65 22 |,20)"Repetitive"| 000005d0 0d 02 a8 3a e7 20 54 52 49 47 20 8c 20 f1 8a 32 |...:. TRIG . ..2| 000005e0 38 2c 32 30 29 22 54 72 69 67 67 65 72 20 22 3b |8,20)"Trigger ";| 000005f0 54 25 20 8b 20 f1 8a 32 38 2c 32 30 29 22 54 72 |T% . ..28,20)"Tr| 00000600 69 67 67 65 72 20 4f 46 46 22 0d 02 b2 05 e1 0d |igger OFF"......| 00000610 02 bc 04 0d 02 c6 0c dd 20 f2 5f 4d 41 52 4b 0d |........ ._MARK.| 00000620 02 d0 0c e7 20 4d 41 52 4b 20 8c 0d 02 da 0b 20 |.... MARK ..... | 00000630 4d 41 52 4b 3d a3 0d 02 e4 0a 20 e6 20 33 2c 34 |MARK=..... . 3,4| 00000640 0d 02 ee 17 20 86 20 4d 58 25 2c 35 30 38 2c 4d |.... . MX%,508,M| 00000650 58 25 2c 31 30 31 39 0d 02 f8 13 20 f1 8a 31 35 |X%,1019.... ..15| 00000660 2c 32 32 29 3b 89 28 32 34 29 0d 03 02 13 20 f1 |,22);.(24).... .| 00000670 8a 31 37 2c 32 33 29 3b 89 28 32 32 29 0d 03 0c |.17,23);.(22)...| 00000680 13 20 f1 8a 31 35 2c 32 35 29 3b 89 28 32 34 29 |. ..15,25);.(24)| 00000690 0d 03 16 05 cc 0d 03 20 0b 20 4d 41 52 4b 3d b9 |....... . MARK=.| 000006a0 0d 03 2a 1c 20 4d 4b 41 25 3d 32 35 35 2d 3f 28 |..*. MKA%=255-?(| 000006b0 44 50 25 2b 28 58 25 3e 3e 32 29 29 0d 03 34 0f |DP%+(X%>>2))..4.| 000006c0 20 4d 4b 54 25 3d 58 25 3e 3e 32 0d 03 3e 0b 20 | MKT%=X%>>2..>. | 000006d0 4d 58 25 3d 58 25 0d 03 48 0a 20 e6 20 31 2c 34 |MX%=X%..H. . 1,4| 000006e0 0d 03 52 17 20 86 20 4d 58 25 2c 35 30 38 2c 4d |..R. . MX%,508,M| 000006f0 58 25 2c 31 30 31 39 0d 03 5c 05 cd 0d 03 66 0b |X%,1019..\....f.| 00000700 f2 5f 45 4d 50 54 59 0d 03 70 05 e1 0d 03 7a 04 |._EMPTY..p....z.| 00000710 0d 03 84 0f dd 20 f2 5f 4f 50 54 49 4f 4e 53 0d |..... ._OPTIONS.| 00000720 03 8e 14 86 20 58 25 2c 35 30 38 2c 58 25 2c 31 |.... X%,508,X%,1| 00000730 30 31 39 0d 03 98 10 f1 8a 30 2c 32 37 29 89 28 |019......0,27).(| 00000740 32 30 29 0d 03 a2 1c f1 8a 30 2c 32 30 29 22 4f |20)......0,20)"O| 00000750 70 74 69 6f 6e 73 3a 2d 22 3b 89 28 33 30 29 0d |ptions:-";.(30).| 00000760 03 ac 2d f1 22 54 20 3a 20 54 72 69 67 67 65 72 |..-."T : Trigger| 00000770 20 4f 4e 2f 4f 46 46 20 20 20 56 20 3a 20 54 72 | ON/OFF V : Tr| 00000780 69 67 67 65 72 20 56 61 6c 75 65 22 0d 03 b6 2a |igger Value"...*| 00000790 f1 22 53 20 3a 20 53 69 6e 67 6c 65 20 73 68 6f |."S : Single sho| 000007a0 74 20 20 20 20 20 20 52 20 3a 20 52 65 70 65 74 |t R : Repet| 000007b0 69 74 69 76 65 22 0d 03 c0 2b f1 22 4a 20 3a 20 |itive"...+."J : | 000007c0 4a 6f 69 6e 20 74 68 65 20 64 6f 74 73 20 20 20 |Join the dots | 000007d0 20 44 20 3a 20 53 61 6d 70 6c 65 20 44 6f 74 73 | D : Sample Dots| 000007e0 22 0d 03 ca 2e f1 22 2b 20 3a 20 49 6e 63 72 65 |"....."+ : Incre| 000007f0 6d 65 6e 74 20 54 69 6d 65 20 20 20 2d 20 3a 20 |ment Time - : | 00000800 44 65 63 72 65 6d 65 6e 74 20 54 69 6d 65 22 0d |Decrement Time".| 00000810 03 d4 0b f1 20 89 28 33 30 29 0d 03 de 16 f1 8a |.... .(30)......| 00000820 30 2c 32 35 29 22 43 68 6f 69 63 65 3f 20 22 3b |0,25)"Choice? ";| 00000830 0d 03 e8 0c 41 24 3d be 3a f1 41 24 0d 03 f2 25 |....A$=.:.A$...%| 00000840 e7 20 41 24 3d 22 4a 22 20 84 20 41 24 3d 22 6a |. A$="J" . A$="j| 00000850 22 20 8c 20 4a 4f 49 4e 3d b9 3a f2 5f 4a 4f 49 |" . JOIN=.:._JOI| 00000860 4e 0d 03 fc 24 e7 20 41 24 3d 22 54 22 20 84 20 |N...$. A$="T" . | 00000870 41 24 3d 22 74 22 20 8c 20 54 52 49 47 3d ac 28 |A$="t" . TRIG=.(| 00000880 54 52 49 47 29 0d 04 06 25 e7 20 41 24 3d 22 44 |TRIG)...%. A$="D| 00000890 22 20 84 20 41 24 3d 22 64 22 20 8c 20 4a 4f 49 |" . A$="d" . JOI| 000008a0 4e 3d a3 3a f2 5f 44 4f 54 53 0d 04 10 1e e7 20 |N=.:._DOTS..... | 000008b0 41 24 3d 22 53 22 20 84 20 41 24 3d 22 73 22 20 |A$="S" . A$="s" | 000008c0 8c 20 53 69 6e 67 3d b9 0d 04 1a 1e e7 20 41 24 |. Sing=...... A$| 000008d0 3d 22 52 22 20 84 20 41 24 3d 22 72 22 20 8c 20 |="R" . A$="r" . | 000008e0 53 69 6e 67 3d a3 0d 04 24 1f e7 20 41 24 3d 22 |Sing=...$.. A$="| 000008f0 56 22 20 84 20 41 24 3d 22 76 22 20 8c 20 f2 5f |V" . A$="v" . ._| 00000900 54 52 49 47 56 0d 04 2e 3b e7 20 41 24 3d 22 2b |TRIGV...;. A$="+| 00000910 22 20 84 20 41 24 3d 22 3d 22 20 8c 20 53 50 45 |" . A$="=" . SPE| 00000920 45 44 25 2b 3d 31 3a e7 20 53 50 45 45 44 25 3d |ED%+=1:. SPEED%=| 00000930 4d 53 50 25 20 8c 20 53 50 45 45 44 25 2d 3d 31 |MSP% . SPEED%-=1| 00000940 0d 04 38 37 e7 20 41 24 3d 22 2d 22 20 84 20 41 |..87. A$="-" . A| 00000950 24 3d 22 5f 22 20 8c 20 53 50 45 45 44 25 2d 3d |$="_" . SPEED%-=| 00000960 31 3a e7 20 53 50 45 45 44 25 3c 30 20 8c 20 53 |1:. SPEED%<0 . S| 00000970 50 45 45 44 25 3d 30 0d 04 42 05 e1 0d 04 4c 04 |PEED%=0..B....L.| 00000980 0d 04 56 0c dd 20 f2 5f 4a 4f 49 4e 0d 04 60 0b |..V.. ._JOIN..`.| 00000990 f2 5f 44 44 28 35 29 0d 04 6a 05 e1 0d 04 74 04 |._DD(5)..j....t.| 000009a0 0d 04 7e 0c dd 20 f2 5f 44 4f 54 53 0d 04 88 09 |..~.. ._DOTS....| 000009b0 e6 20 30 2c 30 0d 04 92 17 c8 93 c8 90 20 34 2c |. 0,0........ 4,| 000009c0 35 30 38 2c 31 32 37 30 2c 35 30 38 0d 04 9c 0c |508,1270,508....| 000009d0 f2 5f 44 44 28 36 39 29 0d 04 a6 05 e1 0d 04 b0 |._DD(69)........| 000009e0 04 0d 04 ba 0e dd 20 f2 5f 44 44 28 50 25 29 0d |...... ._DD(P%).| 000009f0 04 c4 0f e6 20 30 2c 32 3a 44 58 25 3d 31 0d 04 |.... 0,2:DX%=1..| 00000a00 ce 18 f0 20 36 39 2c 30 2c 31 30 31 39 2d 28 3f |... 69,0,1019-(?| 00000a10 44 50 25 29 2a 32 0d 04 d8 15 e3 20 41 25 3d 34 |DP%)*2..... A%=4| 00000a20 20 b8 20 31 32 37 39 20 88 20 34 0d 04 e2 1f f0 | . 1279 . 4.....| 00000a30 20 50 25 2c 41 25 2c 31 30 31 39 2d 28 3f 28 44 | P%,A%,1019-(?(D| 00000a40 50 25 2b 44 58 25 29 29 2a 32 0d 04 ec 0a 44 58 |P%+DX%))*2....DX| 00000a50 25 2b 3d 31 0d 04 f6 05 ed 0d 05 00 05 e1 0d 05 |%+=1............| 00000a60 0a 04 0d 05 14 0d dd 20 f2 5f 54 52 49 47 56 0d |....... ._TRIGV.| 00000a70 05 1e 08 ea 20 74 25 0d 05 28 05 f5 0d 05 32 2e |.... t%..(....2.| 00000a80 f1 8a 30 2c 32 36 29 22 54 72 69 67 67 65 72 20 |..0,26)"Trigger | 00000a90 56 61 6c 75 65 20 62 65 74 77 65 65 6e 20 31 32 |Value between 12| 00000aa0 38 20 61 6e 64 20 32 33 30 22 0d 05 3c 1f f1 22 |8 and 230"..<.."| 00000ab0 43 75 72 72 65 6e 74 20 54 72 69 67 67 65 72 20 |Current Trigger | 00000ac0 22 3b 54 25 3b 89 28 33 29 0d 05 46 10 f1 8a 30 |";T%;.(3)..F...0| 00000ad0 2c 32 38 29 89 28 32 35 29 0d 05 50 1e f1 8a 30 |,28).(25)..P...0| 00000ae0 2c 32 38 29 22 45 6e 74 65 72 20 6e 65 77 20 76 |,28)"Enter new v| 00000af0 61 6c 75 65 20 22 3b 0d 05 5a 08 e8 20 74 25 0d |alue ";..Z.. t%.| 00000b00 05 64 16 fd 20 74 25 3e 31 32 37 20 80 20 74 25 |.d.. t%>127 . t%| 00000b10 3c 20 32 33 31 0d 05 6e 09 54 25 3d 74 25 0d 05 |< 231..n.T%=t%..| 00000b20 78 05 e1 0d 05 82 04 0d 05 8c 0d dd 20 f2 5f 53 |x........... ._S| 00000b30 45 54 55 50 0d 05 96 07 db 3a da 0d 05 a0 09 e6 |ETUP.....:......| 00000b40 20 30 2c 37 0d 05 aa 15 c8 93 20 30 2c 35 30 34 | 0,7...... 0,504| 00000b50 2c 31 32 37 39 2c 35 31 36 0d 05 b4 52 e7 20 53 |,1279,516...R. S| 00000b60 69 6e 67 20 80 20 54 52 49 47 20 8c 20 f1 8a 30 |ing . TRIG . ..0| 00000b70 2c 31 38 29 22 57 61 69 74 69 6e 67 20 66 6f 72 |,18)"Waiting for| 00000b80 20 74 72 69 67 67 65 72 22 20 8b 20 f1 20 8a 30 | trigger" . . .0| 00000b90 2c 31 38 29 3b 22 53 70 61 63 65 20 74 6f 20 66 |,18);"Space to f| 00000ba0 72 65 65 7a 65 22 3b 89 28 36 29 0d 05 be 05 e1 |reeze";.(6).....| 00000bb0 0d 05 c8 04 0d 05 d2 0b dd 20 f2 5f 52 55 4e 0d |......... ._RUN.| 00000bc0 05 dc 0e 2a 50 4f 49 4e 54 45 52 20 30 0d 05 e6 |...*POINTER 0...| 00000bd0 0f 53 57 3d 31 3a 4d 41 52 4b 3d a3 0d 05 f0 14 |.SW=1:MARK=.....| 00000be0 e3 20 41 25 3d 30 20 b8 20 36 34 30 20 88 20 34 |. A%=0 . 640 . 4| 00000bf0 0d 05 fa 0c 42 50 25 21 41 25 3d 30 0d 06 04 05 |....BP%!A%=0....| 00000c00 ed 0d 06 0e 09 e6 20 33 2c 32 0d 06 18 16 86 20 |...... 3,2..... | 00000c10 30 2c 31 30 31 39 2c 31 32 37 39 2c 31 30 31 39 |0,1019,1279,1019| 00000c20 0d 06 22 23 e7 20 54 52 49 47 20 8c 20 3f 54 56 |.."#. TRIG . ?TV| 00000c30 41 4c 3d 32 35 35 2d 54 25 20 8b 20 3f 54 56 41 |AL=255-T% . ?TVA| 00000c40 4c 3d 30 0d 06 2c 21 21 53 50 45 31 3d 28 53 31 |L=0..,!!SPE1=(S1| 00000c50 25 28 53 50 45 45 44 25 29 20 80 20 26 46 46 29 |%(SPEED%) . &FF)| 00000c60 3c 3c 31 36 0d 06 36 20 21 53 50 45 32 3d 28 53 |<<16..6 !SPE2=(S| 00000c70 31 25 28 53 50 45 45 44 25 29 20 3e 3e 20 38 29 |1%(SPEED%) >> 8)| 00000c80 3c 3c 31 36 0d 06 40 05 f5 0d 06 4a 0c f2 5f 53 |<<16..@....J.._S| 00000c90 41 4d 50 4c 45 0d 06 54 0d f2 5f 44 49 53 50 4c |AMPLE..T.._DISPL| 00000ca0 41 59 0d 06 5e 13 fd 20 a6 28 2d 39 39 29 20 84 |AY..^.. .(-99) .| 00000cb0 20 53 69 6e 67 0d 06 68 0b f2 5f 45 4d 50 54 59 | Sing..h.._EMPTY| 00000cc0 0d 06 72 0e 2a 50 4f 49 4e 54 45 52 20 31 0d 06 |..r.*POINTER 1..| 00000cd0 7c 18 c8 97 20 c8 93 20 30 2c 35 30 30 2c 31 32 ||... .. 0,500,12| 00000ce0 38 30 2c 35 31 32 0d 06 86 05 e1 0d 06 90 04 0d |80,512..........| 00000cf0 06 9a 0d dd 20 f2 5f 45 4d 50 54 59 0d 06 a4 05 |.... ._EMPTY....| 00000d00 f5 0d 06 ae 0f c8 97 20 58 25 2c 59 25 2c 42 25 |....... X%,Y%,B%| 00000d10 0d 06 b8 0a fd 20 42 25 3d 30 0d 06 c2 05 e1 0d |..... B%=0......| 00000d20 06 cc 04 0d 06 d6 0f dd 20 f2 5f 44 49 53 50 4c |........ ._DISPL| 00000d30 41 59 0d 06 e0 0a 41 25 3d 42 50 25 0d 06 ea 0a |AY....A%=BP%....| 00000d40 42 25 3d 53 50 25 0d 06 f4 0a d6 20 44 49 53 50 |B%=SP%..... DISP| 00000d50 0d 06 fe 05 e1 0d 07 08 04 0d 07 12 0e dd 20 f2 |.............. .| 00000d60 5f 53 41 4d 50 4c 45 0d 07 1c 19 47 25 3d 42 50 |_SAMPLE....G%=BP| 00000d70 25 2b 33 32 30 2a 53 57 25 3a 48 25 3d 33 32 30 |%+320*SW%:H%=320| 00000d80 0d 07 26 0f 53 57 25 3d 53 57 25 20 82 20 31 0d |..&.SW%=SW% . 1.| 00000d90 07 30 0a d6 20 53 41 4d 50 0d 07 3a 05 e1 0d 07 |.0.. SAMP..:....| 00000da0 44 04 0d 07 4e 19 dd 20 f2 5f 43 53 55 20 3a f4 |D...N.. ._CSU :.| 00000db0 20 43 4f 44 45 20 53 45 54 55 50 0d 07 58 11 e3 | CODE SETUP..X..| 00000dc0 20 41 3d 30 20 b8 20 32 20 88 20 32 0d 07 62 0c | A=0 . 2 . 2..b.| 00000dd0 50 25 3d 43 4f 44 45 25 0d 07 6c 05 5b 0d 07 76 |P%=CODE%..l.[..v| 00000de0 09 4f 50 54 20 41 0d 07 80 09 2e 53 41 4d 50 0d |.OPT A.....SAMP.| 00000df0 07 8a 26 4d 4f 56 20 52 30 2c 23 26 31 38 20 5c |..&MOV R0,#&18 \| 00000e00 20 55 4e 55 53 45 44 20 56 45 43 54 4f 52 20 4e | UNUSED VECTOR N| 00000e10 55 4d 42 45 52 0d 07 94 29 41 44 52 20 52 31 2c |UMBER...)ADR R1,| 00000e20 47 53 20 5c 20 52 4f 55 54 49 4e 45 20 b8 20 d6 |GS \ ROUTINE . .| 00000e30 20 ee 20 55 4e 4b 4e 4f 57 4e 20 53 57 49 0d 07 | . UNKNOWN SWI..| 00000e40 9e 2c 4d 4f 56 20 52 32 2c 23 30 20 5c 20 4e 55 |.,MOV R2,#0 \ NU| 00000e50 4d 42 45 52 20 b8 20 50 41 53 53 20 b8 20 d6 49 |MBER . PASS . .I| 00000e60 4e 47 20 52 4f 55 54 49 4e 45 0d 07 a8 21 53 57 |NG ROUTINE...!SW| 00000e70 49 20 22 4f 53 5f 43 6c 61 69 6d 22 20 5c 20 43 |I "OS_Claim" \ C| 00000e80 4c 41 4d 45 20 56 45 43 54 4f 52 0d 07 b2 2f 53 |LAME VECTOR.../S| 00000e90 57 49 20 26 38 30 31 30 31 20 5c 20 55 4e 55 53 |WI &80101 \ UNUS| 00000ea0 45 44 20 56 45 43 54 4f 52 20 b8 20 d6 20 f3 20 |ED VECTOR . . . | 00000eb0 49 4e 20 52 4f 55 54 49 4e 45 0d 07 bc 0d 4d 4f |IN ROUTINE....MO| 00000ec0 56 20 52 32 2c 23 30 0d 07 c6 1f 4d 4f 56 20 52 |V R2,#0....MOV R| 00000ed0 30 2c 23 26 31 38 20 5c 20 56 45 43 54 4f 52 20 |0,#&18 \ VECTOR | 00000ee0 4e 55 4d 42 45 52 0d 07 d0 0d 41 44 52 20 52 31 |NUMBER....ADR R1| 00000ef0 2c 47 53 0d 07 da 1b 53 57 49 20 26 32 30 20 5c |,GS....SWI &20 \| 00000f00 20 52 45 4c 45 53 45 20 56 45 43 54 4f 52 0d 07 | RELESE VECTOR..| 00000f10 e4 1e 4d 4f 56 20 52 31 35 2c 52 31 34 20 5c 20 |..MOV R15,R14 \ | 00000f20 42 41 43 4b 20 b8 20 42 41 53 49 43 0d 07 ee 04 |BACK . BASIC....| 00000f30 0d 07 f8 1e 2e 54 56 41 4c 20 45 51 55 44 20 30 |.....TVAL EQUD 0| 00000f40 20 5c 20 54 52 49 47 47 45 52 20 bb 55 45 0d 08 | \ TRIGGER .UE..| 00000f50 02 1e 2e 53 50 45 31 20 45 51 55 44 20 30 20 5c |...SPE1 EQUD 0 \| 00000f60 20 4c 53 42 20 ca 20 53 50 45 45 44 0d 08 0c 1e | LSB . SPEED....| 00000f70 2e 53 50 45 32 20 45 51 55 44 20 30 20 5c 20 4d |.SPE2 EQUD 0 \ M| 00000f80 53 42 20 ca 20 53 50 45 45 44 0d 08 16 12 2e 47 |SB . SPEED.....G| 00000f90 53 20 5c 20 47 41 54 48 45 52 20 d4 0d 08 20 28 |S \ GATHER ... (| 00000fa0 54 45 51 50 20 52 31 35 2c 23 26 43 30 30 30 30 |TEQP R15,#&C0000| 00000fb0 30 33 20 5c 44 49 53 41 42 4c 45 20 a8 45 52 52 |03 \DISABLE .ERR| 00000fc0 55 50 54 53 0d 08 2a 29 4d 4f 56 20 52 30 2c 23 |UPTS..*)MOV R0,#| 00000fd0 26 33 32 30 30 30 30 30 20 5c 20 42 41 53 45 20 |&3200000 \ BASE | 00000fe0 41 44 44 52 45 53 53 20 ca 20 49 4f 43 0d 08 34 |ADDRESS . IOC..4| 00000ff0 28 41 44 44 20 52 31 2c 52 30 2c 23 26 35 30 30 |(ADD R1,R0,#&500| 00001000 30 30 20 5c 20 42 41 53 45 20 ca 20 f1 45 52 20 |00 \ BASE . .ER | 00001010 4c 41 54 43 48 0d 08 3e 04 0d 08 48 14 5c 20 48 |LATCH..>...H.\ H| 00001020 4f 4c 44 20 e3 20 54 52 49 47 47 45 52 0d 08 52 |OLD . TRIGGER..R| 00001030 0f 4c 44 52 20 52 32 2c 54 56 41 4c 0d 08 5c 0d |.LDR R2,TVAL..\.| 00001040 43 4d 50 20 52 32 2c 23 30 0d 08 66 2b 42 45 51 |CMP R2,#0..f+BEQ| 00001050 20 54 52 55 4e 20 5c 20 53 4b 49 50 20 54 48 49 | TRUN \ SKIP THI| 00001060 53 20 e7 20 54 52 49 47 47 45 52 20 bb 55 45 20 |S . TRIGGER .UE | 00001070 49 53 20 30 0d 08 70 0a 2e 54 48 4f 4c 44 0d 08 |IS 0..p..THOLD..| 00001080 7a 1f 4d 4f 56 20 52 32 2c 23 30 20 5c 20 43 48 |z.MOV R2,#0 \ CH| 00001090 49 50 20 53 45 4c 45 43 54 20 4c 4f 57 0d 08 84 |IP SELECT LOW...| 000010a0 14 53 54 52 20 52 32 2c 5b 52 31 2c 23 26 31 30 |.STR R2,[R1,#&10| 000010b0 5d 0d 08 8e 1c 4d 4f 56 20 52 33 2c 23 26 41 20 |]....MOV R3,#&A | 000010c0 5c 20 42 49 54 53 20 b8 20 f3 20 49 4e 0d 08 98 |\ BITS . . IN...| 000010d0 21 4d 4f 56 20 52 35 2c 23 30 20 5c 20 43 4f 4c |!MOV R5,#0 \ COL| 000010e0 4c 45 43 54 20 42 49 54 53 20 48 45 52 45 0d 08 |LECT BITS HERE..| 000010f0 a2 0a 2e 4c 4f 4f 50 32 0d 08 ac 1a 4c 44 52 20 |...LOOP2....LDR | 00001100 52 34 2c 5b 52 30 2c 23 26 31 30 5d 20 5c 20 a5 |R4,[R0,#&10] \ .| 00001110 20 dc 0d 08 b6 1f 4d 4f 56 20 52 32 2c 23 26 31 | .....MOV R2,#&1| 00001120 30 30 30 30 20 5c 20 43 4c 4f 43 4b 20 48 49 47 |0000 \ CLOCK HIG| 00001130 48 0d 08 c0 24 53 54 52 20 52 32 2c 5b 52 31 2c |H...$STR R2,[R1,| 00001140 23 26 31 30 5d 20 5c 20 50 55 54 20 4f 55 54 20 |#&10] \ PUT OUT | 00001150 b8 20 f1 45 52 0d 08 ca 1b 80 20 52 34 2c 52 34 |. .ER..... R4,R4| 00001160 2c 23 31 20 5c 20 4d 41 53 4b 20 dc 20 42 49 54 |,#1 \ MASK . BIT| 00001170 0d 08 d4 2e 4d 4f 56 20 52 35 2c 52 35 2c 4c 53 |....MOV R5,R5,LS| 00001180 4c 20 23 31 20 5c 20 50 52 45 50 41 52 45 20 52 |L #1 \ PREPARE R| 00001190 35 20 b8 20 52 45 43 49 45 56 45 20 49 54 0d 08 |5 . RECIEVE IT..| 000011a0 de 23 84 52 20 52 35 2c 52 35 2c 52 34 20 5c 20 |.#.R R5,R5,R4 \ | 000011b0 4d 49 58 20 49 54 20 49 4e 20 57 49 54 48 20 52 |MIX IT IN WITH R| 000011c0 35 0d 08 e8 19 4d 4f 56 20 52 32 2c 23 30 20 5c |5....MOV R2,#0 \| 000011d0 20 43 4c 4f 43 4b 20 4c 4f 57 0d 08 f2 14 53 54 | CLOCK LOW....ST| 000011e0 52 20 52 32 2c 5b 52 31 2c 23 26 31 30 5d 0d 08 |R R2,[R1,#&10]..| 000011f0 fc 11 53 55 42 53 20 52 33 2c 52 33 2c 23 31 0d |..SUBS R3,R3,#1.| 00001200 09 06 0d 42 4e 45 20 4c 4f 4f 50 32 0d 09 10 25 |...BNE LOOP2...%| 00001210 4d 4f 56 20 52 32 2c 23 26 32 30 30 30 30 20 5c |MOV R2,#&20000 \| 00001220 20 43 48 49 50 20 53 45 4c 45 43 54 20 48 49 47 | CHIP SELECT HIG| 00001230 48 0d 09 1a 14 53 54 52 20 52 32 2c 5b 52 31 2c |H....STR R2,[R1,| 00001240 23 26 31 30 5d 0d 09 24 23 80 20 52 35 2c 52 35 |#&10]..$#. R5,R5| 00001250 2c 23 26 46 46 20 5c 20 4d 41 53 4b 20 87 20 53 |,#&FF \ MASK . S| 00001260 54 41 52 54 20 42 49 54 0d 09 2e 16 5c 52 35 20 |TART BIT....\R5 | 00001270 4e 4f 57 20 48 41 53 20 53 41 4d 50 4c 45 0d 09 |NOW HAS SAMPLE..| 00001280 38 0f 4c 44 52 20 52 32 2c 54 56 41 4c 0d 09 42 |8.LDR R2,TVAL..B| 00001290 0d 43 4d 50 20 52 32 2c 52 35 0d 09 4c 0d 42 4c |.CMP R2,R5..L.BL| 000012a0 53 20 54 48 4f 4c 44 0d 09 56 04 0d 09 60 09 2e |S THOLD..V...`..| 000012b0 54 52 55 4e 0d 09 6a 1d 4c 44 52 20 52 32 2c 53 |TRUN..j.LDR R2,S| 000012c0 50 45 32 20 5c 20 54 31 20 bb 55 45 20 48 49 47 |PE2 \ T1 .UE HIG| 000012d0 48 0d 09 74 24 53 54 52 20 52 32 2c 5b 52 30 2c |H..t$STR R2,[R0,| 000012e0 23 26 35 34 5d 20 5c 20 54 31 20 4c 41 54 43 48 |#&54] \ T1 LATCH| 000012f0 20 48 49 47 48 0d 09 7e 1c 4c 44 52 20 52 32 2c | HIGH..~.LDR R2,| 00001300 53 50 45 31 20 5c 20 54 31 20 bb 55 45 20 4c 4f |SPE1 \ T1 .UE LO| 00001310 57 0d 09 88 23 53 54 52 20 52 32 2c 5b 52 30 2c |W...#STR R2,[R0,| 00001320 23 26 35 30 5d 20 5c 20 54 31 20 4c 41 54 43 48 |#&50] \ T1 LATCH| 00001330 20 4c 4f 57 0d 09 92 04 0d 09 9c 21 4c 44 52 20 | LOW.......!LDR | 00001340 52 32 2c 5b 52 30 2c 23 26 31 38 5d 20 5c 20 a5 |R2,[R0,#&18] \ .| 00001350 20 49 52 51 20 4d 41 53 4b 0d 09 a6 1d 84 52 20 | IRQ MASK.....R | 00001360 52 32 2c 52 32 2c 23 26 34 30 20 5c 20 45 4e 41 |R2,R2,#&40 \ ENA| 00001370 42 4c 45 20 54 31 0d 09 b0 16 4d 4f 56 20 20 52 |BLE T1....MOV R| 00001380 32 2c 52 32 2c 4c 53 4c 20 23 31 36 0d 09 ba 1f |2,R2,LSL #16....| 00001390 53 54 52 20 52 32 2c 5b 52 30 2c 23 26 31 38 5d |STR R2,[R0,#&18]| 000013a0 20 5c 20 4d 41 53 4b 20 52 45 47 0d 09 c4 04 0d | \ MASK REG.....| 000013b0 09 ce 22 4d 4f 56 20 52 32 2c 23 26 34 30 30 30 |.."MOV R2,#&4000| 000013c0 30 30 20 5c 20 d8 20 54 31 20 a8 45 52 52 55 50 |00 \ . T1 .ERRUP| 000013d0 54 0d 09 d8 1c 53 54 52 20 52 32 2c 5b 52 30 2c |T....STR R2,[R0,| 000013e0 23 26 31 34 5d 20 5c 20 49 52 51 20 d8 0d 09 e2 |#&14] \ IRQ ....| 000013f0 1d 53 54 52 20 20 52 32 2c 5b 52 30 2c 23 26 35 |.STR R2,[R0,#&5| 00001400 38 5d 20 5c 20 47 4f 20 54 31 0d 09 ec 04 0d 09 |8] \ GO T1......| 00001410 f6 22 2e 54 4c 4f 4f 50 20 5c 20 44 45 4c 41 59 |.".TLOOP \ DELAY| 00001420 20 4c 4f 4f 50 20 e3 20 54 49 4d 45 52 20 54 31 | LOOP . TIMER T1| 00001430 0d 0a 00 15 4c 44 52 42 20 52 32 2c 5b 52 30 2c |....LDRB R2,[R0,| 00001440 23 26 31 30 5d 0d 0a 0a 0f 54 53 54 20 52 32 2c |#&10]....TST R2,| 00001450 23 26 34 30 0d 0a 14 0d 42 45 51 20 54 4c 4f 4f |#&40....BEQ TLOO| 00001460 50 0d 0a 1e 22 4d 4f 56 20 52 32 2c 23 26 34 30 |P..."MOV R2,#&40| 00001470 30 30 30 30 20 5c 20 d8 20 54 31 20 a8 45 52 52 |0000 \ . T1 .ERR| 00001480 55 50 54 0d 0a 28 1c 53 54 52 20 52 32 2c 5b 52 |UPT..(.STR R2,[R| 00001490 30 2c 23 26 31 34 5d 20 5c 20 49 52 51 20 d8 0d |0,#&14] \ IRQ ..| 000014a0 0a 32 04 0d 0a 3c 14 5c 20 54 41 4b 45 20 ee 45 |.2...<.\ TAKE .E| 000014b0 20 53 41 4d 50 4c 45 0d 0a 46 1f 4d 4f 56 20 52 | SAMPLE..F.MOV R| 000014c0 32 2c 23 30 20 5c 20 43 48 49 50 20 53 45 4c 45 |2,#0 \ CHIP SELE| 000014d0 43 54 20 4c 4f 57 0d 0a 50 14 53 54 52 20 52 32 |CT LOW..P.STR R2| 000014e0 2c 5b 52 31 2c 23 26 31 30 5d 0d 0a 5a 1c 4d 4f |,[R1,#&10]..Z.MO| 000014f0 56 20 52 33 2c 23 26 41 20 5c 20 42 49 54 53 20 |V R3,#&A \ BITS | 00001500 b8 20 f3 20 49 4e 0d 0a 64 21 4d 4f 56 20 52 35 |. . IN..d!MOV R5| 00001510 2c 23 30 20 5c 20 43 4f 4c 4c 45 43 54 20 42 49 |,#0 \ COLLECT BI| 00001520 54 53 20 48 45 52 45 0d 0a 6e 0a 2e 4c 4f 4f 50 |TS HERE..n..LOOP| 00001530 31 0d 0a 78 1a 4c 44 52 20 52 34 2c 5b 52 30 2c |1..x.LDR R4,[R0,| 00001540 23 26 31 30 5d 20 5c 20 a5 20 dc 0d 0a 82 1f 4d |#&10] \ . .....M| 00001550 4f 56 20 52 32 2c 23 26 31 30 30 30 30 20 5c 20 |OV R2,#&10000 \ | 00001560 43 4c 4f 43 4b 20 48 49 47 48 0d 0a 8c 24 53 54 |CLOCK HIGH...$ST| 00001570 52 20 52 32 2c 5b 52 31 2c 23 26 31 30 5d 20 5c |R R2,[R1,#&10] \| 00001580 20 50 55 54 20 4f 55 54 20 b8 20 f1 45 52 0d 0a | PUT OUT . .ER..| 00001590 96 1b 80 20 52 34 2c 52 34 2c 23 31 20 5c 20 4d |... R4,R4,#1 \ M| 000015a0 41 53 4b 20 dc 20 42 49 54 0d 0a a0 2e 4d 4f 56 |ASK . BIT....MOV| 000015b0 20 52 35 2c 52 35 2c 4c 53 4c 20 23 31 20 5c 20 | R5,R5,LSL #1 \ | 000015c0 50 52 45 50 41 52 45 20 52 35 20 b8 20 52 45 43 |PREPARE R5 . REC| 000015d0 49 45 56 45 20 49 54 0d 0a aa 23 84 52 20 52 35 |IEVE IT...#.R R5| 000015e0 2c 52 35 2c 52 34 20 5c 20 4d 49 58 20 49 54 20 |,R5,R4 \ MIX IT | 000015f0 49 4e 20 57 49 54 48 20 52 35 0d 0a b4 19 4d 4f |IN WITH R5....MO| 00001600 56 20 52 32 2c 23 30 20 5c 20 43 4c 4f 43 4b 20 |V R2,#0 \ CLOCK | 00001610 4c 4f 57 0d 0a be 14 53 54 52 20 52 32 2c 5b 52 |LOW....STR R2,[R| 00001620 31 2c 23 26 31 30 5d 0d 0a c8 11 53 55 42 53 20 |1,#&10]....SUBS | 00001630 52 33 2c 52 33 2c 23 31 0d 0a d2 0d 42 4e 45 20 |R3,R3,#1....BNE | 00001640 4c 4f 4f 50 31 0d 0a dc 25 4d 4f 56 20 52 32 2c |LOOP1...%MOV R2,| 00001650 23 26 32 30 30 30 30 20 5c 20 43 48 49 50 20 53 |#&20000 \ CHIP S| 00001660 45 4c 45 43 54 20 48 49 47 48 0d 0a e6 14 53 54 |ELECT HIGH....ST| 00001670 52 20 52 32 2c 5b 52 31 2c 23 26 31 30 5d 0d 0a |R R2,[R1,#&10]..| 00001680 f0 23 80 20 52 35 2c 52 35 2c 23 26 46 46 20 5c |.#. R5,R5,#&FF \| 00001690 20 4d 41 53 4b 20 87 20 53 54 41 52 54 20 42 49 | MASK . START BI| 000016a0 54 0d 0a fa 16 5c 52 35 20 4e 4f 57 20 48 41 53 |T....\R5 NOW HAS| 000016b0 20 53 41 4d 50 4c 45 0d 0b 04 2a 53 54 52 42 20 | SAMPLE...*STRB | 000016c0 52 35 2c 5b 52 36 5d 2c 23 31 20 5c 20 50 55 54 |R5,[R6],#1 \ PUT| 000016d0 20 49 54 20 49 4e 20 54 48 45 20 42 55 46 46 45 | IT IN THE BUFFE| 000016e0 52 0d 0b 0e 29 53 55 42 53 20 52 37 2c 52 37 2c |R...)SUBS R7,R7,| 000016f0 23 31 20 20 5c 20 44 45 43 52 45 4d 45 4e 54 20 |#1 \ DECREMENT | 00001700 42 59 54 45 53 20 b8 20 47 4f 0d 0b 18 21 42 4e |BYTES . GO...!BN| 00001710 45 20 20 54 4c 4f 4f 50 20 5c 20 42 41 43 4b 20 |E TLOOP \ BACK | 00001720 fd 4c 20 41 4c 4c 20 44 4f 4e 45 0d 0b 22 04 0d |.L ALL DONE.."..| 00001730 0b 2c 13 5c 50 52 45 50 41 52 45 20 b8 20 45 58 |.,.\PREPARE . EX| 00001740 49 54 0d 0b 36 22 4d 4f 56 20 52 32 2c 23 26 34 |IT..6"MOV R2,#&4| 00001750 30 30 30 30 30 20 5c 20 d8 20 54 31 20 a8 45 52 |00000 \ . T1 .ER| 00001760 52 55 50 54 0d 0b 40 1c 53 54 52 20 52 32 2c 5b |RUPT..@.STR R2,[| 00001770 52 30 2c 23 26 31 34 5d 20 5c 20 49 52 51 20 d8 |R0,#&14] \ IRQ .| 00001780 0d 0b 4a 21 4c 44 52 20 52 32 2c 5b 52 30 2c 23 |..J!LDR R2,[R0,#| 00001790 26 31 38 5d 20 5c 20 a5 20 49 52 51 20 4d 41 53 |&18] \ . IRQ MAS| 000017a0 4b 0d 0b 54 1c 80 20 52 32 2c 52 32 2c 23 26 42 |K..T.. R2,R2,#&B| 000017b0 46 20 5c 20 45 4e 41 42 4c 45 20 54 31 0d 0b 5e |F \ ENABLE T1..^| 000017c0 16 4d 4f 56 20 20 52 32 2c 52 32 2c 4c 53 4c 20 |.MOV R2,R2,LSL | 000017d0 23 31 36 0d 0b 68 1f 53 54 52 20 52 32 2c 5b 52 |#16..h.STR R2,[R| 000017e0 30 2c 23 26 31 38 5d 20 5c 20 4d 41 53 4b 20 52 |0,#&18] \ MASK R| 000017f0 45 47 0d 0b 72 04 0d 0b 7c 2d 4c 44 4d 46 44 20 |EG..r...|-LDMFD | 00001800 52 31 33 21 2c 20 7b 50 43 7d 20 5c 20 42 41 43 |R13!, {PC} \ BAC| 00001810 4b 20 46 52 4f 4d 20 c9 53 54 20 59 4f 55 20 43 |K FROM .ST YOU C| 00001820 41 4d 45 0d 0b 86 04 0d 0b 90 1e 2e 44 49 53 50 |AME.........DISP| 00001830 20 5c 20 44 49 53 50 4c 41 59 20 54 48 45 20 42 | \ DISPLAY THE B| 00001840 55 46 46 45 52 0d 0b 9a 15 4d 4f 56 20 52 32 2c |UFFER....MOV R2,| 00001850 23 30 20 5c 20 58 20 bb 55 45 0d 0b a4 1f 4d 4f |#0 \ X .UE....MO| 00001860 56 20 52 35 2c 23 31 36 30 20 5c 20 42 59 54 45 |V R5,#160 \ BYTE| 00001870 53 20 50 45 52 20 52 4f 57 0d 0b ae 23 4d 4f 56 |S PER ROW...#MOV| 00001880 20 52 37 2c 52 30 20 5c 20 c7 99 20 53 54 41 52 | R7,R0 \ .. STAR| 00001890 54 20 ca 20 dc 20 42 55 46 46 45 52 0d 0b b8 2a |T . . BUFFER...*| 000018a0 41 44 44 20 52 37 2c 52 37 2c 23 33 32 30 20 5c |ADD R7,R7,#320 \| 000018b0 20 41 44 44 52 45 53 53 20 ca 20 48 41 4c 46 20 | ADDRESS . HALF | 000018c0 42 55 46 46 45 52 0d 0b c2 1d 41 44 44 20 52 31 |BUFFER....ADD R1| 000018d0 2c 52 31 2c 23 31 36 30 20 5c 20 ec 20 87 20 b8 |,R1,#160 \ . . .| 000018e0 50 20 86 0d 0b cc 0a 2e 44 4c 4f 4f 50 0d 0b d6 |P ......DLOOP...| 000018f0 1b 4c 44 52 42 20 52 33 2c 5b 52 30 5d 2c 23 31 |.LDRB R3,[R0],#1| 00001900 20 5c 20 59 20 bb 55 45 0d 0b e0 14 4d 4f 56 20 | \ Y .UE....MOV | 00001910 52 33 2c 52 33 2c 4c 53 52 20 23 31 0d 0b ea 22 |R3,R3,LSR #1..."| 00001920 4d 4c 41 20 52 34 2c 52 33 2c 52 35 2c 52 32 20 |MLA R4,R3,R5,R2 | 00001930 5c 20 a5 20 50 49 58 45 4c 20 87 53 45 54 0d 0b |\ . PIXEL .SET..| 00001940 f4 1f 41 44 44 20 52 34 2c 52 34 2c 52 31 20 5c |..ADD R4,R4,R1 \| 00001950 20 52 45 41 4c 20 41 44 44 52 45 53 53 0d 0b fe | REAL ADDRESS...| 00001960 1a 4c 44 52 42 20 52 36 2c 5b 52 34 5d 20 5c 20 |.LDRB R6,[R4] \ | 00001970 a5 20 50 49 58 45 4c 0d 0c 08 23 82 20 52 36 2c |. PIXEL...#. R6,| 00001980 52 36 2c 23 26 32 20 5c 20 b8 47 47 4c 45 20 46 |R6,#&2 \ .GGLE F| 00001990 49 52 53 54 20 50 49 58 45 4c 0d 0c 12 1e 53 54 |IRST PIXEL....ST| 000019a0 52 42 20 52 36 2c 5b 52 34 5d 20 5c 20 50 55 54 |RB R6,[R4] \ PUT| 000019b0 20 49 54 20 42 41 43 4b 0d 0c 1c 13 4c 44 52 42 | IT BACK....LDRB| 000019c0 20 52 33 2c 5b 52 30 5d 2c 23 31 0d 0c 26 14 4d | R3,[R0],#1..&.M| 000019d0 4f 56 20 52 33 2c 52 33 2c 4c 53 52 20 23 31 0d |OV R3,R3,LSR #1.| 000019e0 0c 30 13 4d 4c 41 20 52 34 2c 52 33 2c 52 35 2c |.0.MLA R4,R3,R5,| 000019f0 52 32 0d 0c 3a 10 41 44 44 20 52 34 2c 52 34 2c |R2..:.ADD R4,R4,| 00001a00 52 31 0d 0c 44 10 4c 44 52 42 20 52 36 2c 5b 52 |R1..D.LDRB R6,[R| 00001a10 34 5d 0d 0c 4e 25 82 20 52 36 2c 52 36 2c 23 26 |4]..N%. R6,R6,#&| 00001a20 32 30 20 5c 20 b8 47 47 4c 45 20 53 45 43 4f 4e |20 \ .GGLE SECON| 00001a30 44 20 50 49 58 45 4c 0d 0c 58 10 53 54 52 42 20 |D PIXEL..X.STRB | 00001a40 52 36 2c 5b 52 34 5d 0d 0c 62 20 41 44 44 20 52 |R6,[R4]..b ADD R| 00001a50 32 2c 52 32 2c 23 31 20 5c 20 ec 20 41 4c 4f 4e |2,R2,#1 \ . ALON| 00001a60 47 20 54 48 45 20 58 0d 0c 6c 22 43 4d 50 20 52 |G THE X..l"CMP R| 00001a70 30 2c 52 37 20 5c 20 46 49 4e 49 53 48 45 44 20 |0,R7 \ FINISHED | 00001a80 ee 45 20 42 55 46 46 45 52 0d 0c 76 1d ec 51 20 |.E BUFFER..v..Q | 00001a90 52 32 2c 23 30 20 5c 20 58 20 bb 55 45 20 e3 20 |R2,#0 \ X .UE . | 00001aa0 ed 20 50 41 53 53 0d 0c 80 1b 43 4d 50 20 52 32 |. PASS....CMP R2| 00001ab0 2c 23 31 36 30 20 5c 20 46 49 4e 49 53 48 45 44 |,#160 \ FINISHED| 00001ac0 3f 0d 0c 8a 0d 42 4e 45 20 44 4c 4f 4f 50 0d 0c |?....BNE DLOOP..| 00001ad0 94 1e 4d 4f 56 20 52 31 35 2c 52 31 34 20 5c 20 |..MOV R15,R14 \ | 00001ae0 42 41 43 4b 20 b8 20 42 41 53 49 43 0d 0c 9e 05 |BACK . BASIC....| 00001af0 5d 0d 0c a8 05 ed 0d 0c b2 13 e3 20 41 25 3d 30 |].......... A%=0| 00001b00 20 b8 20 4d 53 50 25 2d 31 0d 0c bc 0d f3 20 53 | . MSP%-1..... S| 00001b10 31 25 28 41 25 29 0d 0c c6 15 53 32 25 28 41 25 |1%(A%)....S2%(A%| 00001b20 29 3d 53 31 25 28 41 25 29 2f 32 0d 0c d0 05 ed |)=S1%(A%)/2.....| 00001b30 0d 0c da 05 e1 0d 0c e4 2c dc 20 31 30 30 2c 31 |........,. 100,1| 00001b40 34 30 2c 31 38 30 2c 32 32 30 2c 33 32 30 2c 36 |40,180,220,320,6| 00001b50 34 30 2c 31 32 38 30 2c 32 30 30 30 2c 34 30 30 |40,1280,2000,400| 00001b60 30 0d ff |0..| 00001b63