Home » Archimedes archive » Acorn User » AU 1998-09.adf » Regulars » RTR/Bonus/InfraRed/IR1

RTR/Bonus/InfraRed/IR1

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-09.adf » Regulars
Filename: RTR/Bonus/InfraRed/IR1
Read OK:
File size: 0397 bytes
Load address: 0000
Exec address: 0000
File contents
   10PRINT"IR Remote control reader"
   20DIM CODE% 200
   60PROC_INIT
   70REPEAT
   80CALL IR
   90FOR A%=STORE TO STORE+52 STEP 4
   95T%=&FFFF-(?A%+256*(?(A%+1)))
  100PRINT;T%;" ";
  101?A%=&FF:A%?1=&FF
  110NEXT
  120PRINT
  130UNTIL FALSE
  140END
  150DEF PROC_INIT
  160FOR A%=0 TO 3 STEP 3
  170P%=CODE%
  180[
  190OPT A%
  200.IR
  210SEI
  220LDA &FE6B \ TIMER CONTROL REG
  230AND #&3F:ORA #&40
  240STA &FE6B
  250.LP0 \ HOLD UNTIL IR SENSED
  260LDA &FE60:AND #&1
  270BNE LP0
  280LDX #&FE \ PLACE TO WRITE TIMING
  290LDY #13 \ CYCLES TO READ
  300LDA #&FF \ SET UP T1
  310STA &FE66:STA &FE67
  320STA &FE65 \ START OFF T1
  330.CLP
  340JSR LP \ MEASURE ONE CYCLE
  350DEY
  360BNE CLP
  370CLI
  380RTS
  390.LP
  400INX:INX
  410.LP1
  420LDA &FE60:AND #&1
  430BEQ LP1
  440LDA &FE64 \ GET LOW BYTE
  450STA STORE,X
  460LDA &FE65 \ HIGH BYTE
  470STA STORE+1,X
  480LDA #&FF
  490STA &FE65 \ RESET T1
  500INX:INX
  510.LP2
  520LDA &FE60:AND #&1
  530BNE LP2
  540LDA &FE64 \ GET LOW BYTE
  550STA STORE,X
  560LDA &FE65 \ HIGH BYTE
  570STA STORE+1,X
  580RTS
  581.STORE
  590]
  600NEXT
  610ENDPROC

�"IR Remote control reader"
� CODE% 200
<
�_INIT
F�
P� IR
Z� A%=STORE � STORE+52 � 4
_ T%=&FFFF-(?A%+256*(?(A%+1)))
d
�;T%;" ";
e?A%=&FF:A%?1=&FF
n�
x�
�� �
��
�� �_INIT
�� A%=0 � 3 � 3
�P%=CODE%
�[
�
OPT A%
�.IR
�SEI
�!LDA &FE6B \ TIMER CONTROL REG
�� #&3F:�A #&40
�
STA &FE6B
�.LP0 \ HOLD � IR SENSED
LDA &FE60:� #&1
BNE LP0
#LDX #&FE \ PLACE � WRITE TIMING
"LDY #13 \ CYCLES � �
,LDA #&FF \ SET UP T1
6STA &FE66:STA &FE67
@STA &FE65 \ START � T1
J.CLP
TJSR LP \ MEASURE �E CYCLE
^DEY
hBNE CLP
rCLI
|RTS
�.LP
�INX:INX
�.LP1
�LDA &FE60:� #&1
�BEQ LP1
�LDA &FE64 \ � LOW BYTE
�STA STORE,X
�LDA &FE65 \ HIGH BYTE
�STA STORE+1,X
�LDA #&FF
�STA &FE65 \ RESET T1
�INX:INX
�.LP2
LDA &FE60:� #&1
BNE LP2
LDA &FE64 \ � LOW BYTE
&STA STORE,X
0LDA &FE65 \ HIGH BYTE
:STA STORE+1,X
DRTS
E
.STORE
N]
X�
b�
�
00000000  0d 00 0a 1f f1 22 49 52  20 52 65 6d 6f 74 65 20  |....."IR Remote |
00000010  63 6f 6e 74 72 6f 6c 20  72 65 61 64 65 72 22 0d  |control reader".|
00000020  00 14 0f de 20 43 4f 44  45 25 20 32 30 30 0d 00  |.... CODE% 200..|
00000030  3c 0a f2 5f 49 4e 49 54  0d 00 46 05 f5 0d 00 50  |<.._INIT..F....P|
00000040  08 d6 20 49 52 0d 00 5a  1d e3 20 41 25 3d 53 54  |.. IR..Z.. A%=ST|
00000050  4f 52 45 20 b8 20 53 54  4f 52 45 2b 35 32 20 88  |ORE . STORE+52 .|
00000060  20 34 0d 00 5f 20 54 25  3d 26 46 46 46 46 2d 28  | 4.._ T%=&FFFF-(|
00000070  3f 41 25 2b 32 35 36 2a  28 3f 28 41 25 2b 31 29  |?A%+256*(?(A%+1)|
00000080  29 29 0d 00 64 0d f1 3b  54 25 3b 22 20 22 3b 0d  |))..d..;T%;" ";.|
00000090  00 65 14 3f 41 25 3d 26  46 46 3a 41 25 3f 31 3d  |.e.?A%=&FF:A%?1=|
000000a0  26 46 46 0d 00 6e 05 ed  0d 00 78 05 f1 0d 00 82  |&FF..n....x.....|
000000b0  07 fd 20 a3 0d 00 8c 05  e0 0d 00 96 0c dd 20 f2  |.. ........... .|
000000c0  5f 49 4e 49 54 0d 00 a0  12 e3 20 41 25 3d 30 20  |_INIT..... A%=0 |
000000d0  b8 20 33 20 88 20 33 0d  00 aa 0c 50 25 3d 43 4f  |. 3 . 3....P%=CO|
000000e0  44 45 25 0d 00 b4 05 5b  0d 00 be 0a 4f 50 54 20  |DE%....[....OPT |
000000f0  41 25 0d 00 c8 07 2e 49  52 0d 00 d2 07 53 45 49  |A%.....IR....SEI|
00000100  0d 00 dc 21 4c 44 41 20  26 46 45 36 42 20 5c 20  |...!LDA &FE6B \ |
00000110  54 49 4d 45 52 20 43 4f  4e 54 52 4f 4c 20 52 45  |TIMER CONTROL RE|
00000120  47 0d 00 e6 12 80 20 23  26 33 46 3a 84 41 20 23  |G..... #&3F:.A #|
00000130  26 34 30 0d 00 f0 0d 53  54 41 20 26 46 45 36 42  |&40....STA &FE6B|
00000140  0d 00 fa 1b 2e 4c 50 30  20 5c 20 48 4f 4c 44 20  |.....LP0 \ HOLD |
00000150  fd 20 49 52 20 53 45 4e  53 45 44 0d 01 04 13 4c  |. IR SENSED....L|
00000160  44 41 20 26 46 45 36 30  3a 80 20 23 26 31 0d 01  |DA &FE60:. #&1..|
00000170  0e 0b 42 4e 45 20 4c 50  30 0d 01 18 23 4c 44 58  |..BNE LP0...#LDX|
00000180  20 23 26 46 45 20 5c 20  50 4c 41 43 45 20 b8 20  | #&FE \ PLACE . |
00000190  57 52 49 54 45 20 54 49  4d 49 4e 47 0d 01 22 18  |WRITE TIMING..".|
000001a0  4c 44 59 20 23 31 33 20  5c 20 43 59 43 4c 45 53  |LDY #13 \ CYCLES|
000001b0  20 b8 20 f3 0d 01 2c 18  4c 44 41 20 23 26 46 46  | . ...,.LDA #&FF|
000001c0  20 5c 20 53 45 54 20 55  50 20 54 31 0d 01 36 17  | \ SET UP T1..6.|
000001d0  53 54 41 20 26 46 45 36  36 3a 53 54 41 20 26 46  |STA &FE66:STA &F|
000001e0  45 36 37 0d 01 40 1a 53  54 41 20 26 46 45 36 35  |E67..@.STA &FE65|
000001f0  20 5c 20 53 54 41 52 54  20 87 20 54 31 0d 01 4a  | \ START . T1..J|
00000200  08 2e 43 4c 50 0d 01 54  1d 4a 53 52 20 4c 50 20  |..CLP..T.JSR LP |
00000210  5c 20 4d 45 41 53 55 52  45 20 ee 45 20 43 59 43  |\ MEASURE .E CYC|
00000220  4c 45 0d 01 5e 07 44 45  59 0d 01 68 0b 42 4e 45  |LE..^.DEY..h.BNE|
00000230  20 43 4c 50 0d 01 72 07  43 4c 49 0d 01 7c 07 52  | CLP..r.CLI..|.R|
00000240  54 53 0d 01 86 07 2e 4c  50 0d 01 90 0b 49 4e 58  |TS.....LP....INX|
00000250  3a 49 4e 58 0d 01 9a 08  2e 4c 50 31 0d 01 a4 13  |:INX.....LP1....|
00000260  4c 44 41 20 26 46 45 36  30 3a 80 20 23 26 31 0d  |LDA &FE60:. #&1.|
00000270  01 ae 0b 42 45 51 20 4c  50 31 0d 01 b8 1a 4c 44  |...BEQ LP1....LD|
00000280  41 20 26 46 45 36 34 20  5c 20 a5 20 4c 4f 57 20  |A &FE64 \ . LOW |
00000290  42 59 54 45 0d 01 c2 0f  53 54 41 20 53 54 4f 52  |BYTE....STA STOR|
000002a0  45 2c 58 0d 01 cc 19 4c  44 41 20 26 46 45 36 35  |E,X....LDA &FE65|
000002b0  20 5c 20 48 49 47 48 20  42 59 54 45 0d 01 d6 11  | \ HIGH BYTE....|
000002c0  53 54 41 20 53 54 4f 52  45 2b 31 2c 58 0d 01 e0  |STA STORE+1,X...|
000002d0  0c 4c 44 41 20 23 26 46  46 0d 01 ea 18 53 54 41  |.LDA #&FF....STA|
000002e0  20 26 46 45 36 35 20 5c  20 52 45 53 45 54 20 54  | &FE65 \ RESET T|
000002f0  31 0d 01 f4 0b 49 4e 58  3a 49 4e 58 0d 01 fe 08  |1....INX:INX....|
00000300  2e 4c 50 32 0d 02 08 13  4c 44 41 20 26 46 45 36  |.LP2....LDA &FE6|
00000310  30 3a 80 20 23 26 31 0d  02 12 0b 42 4e 45 20 4c  |0:. #&1....BNE L|
00000320  50 32 0d 02 1c 1a 4c 44  41 20 26 46 45 36 34 20  |P2....LDA &FE64 |
00000330  5c 20 a5 20 4c 4f 57 20  42 59 54 45 0d 02 26 0f  |\ . LOW BYTE..&.|
00000340  53 54 41 20 53 54 4f 52  45 2c 58 0d 02 30 19 4c  |STA STORE,X..0.L|
00000350  44 41 20 26 46 45 36 35  20 5c 20 48 49 47 48 20  |DA &FE65 \ HIGH |
00000360  42 59 54 45 0d 02 3a 11  53 54 41 20 53 54 4f 52  |BYTE..:.STA STOR|
00000370  45 2b 31 2c 58 0d 02 44  07 52 54 53 0d 02 45 0a  |E+1,X..D.RTS..E.|
00000380  2e 53 54 4f 52 45 0d 02  4e 05 5d 0d 02 58 05 ed  |.STORE..N.]..X..|
00000390  0d 02 62 05 e1 0d ff                              |..b....|
00000397