home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / apps / desktop / a / asp / !ASP / SwitchCode (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1990-03-27  |  3.0 KB  |  152 lines

  1.  >SwitchCode Machine code to drive switches
  2.  must return &FF in R0 if active OR 0 if not
  3. Press_shift:=
  4. pressed_key(&FF)
  5. Press_ctrl:=
  6. pressed_key(&FE)
  7. pressed_key(key)
  8.  pass= 0 
  9. P%=code
  10. [OPT pass
  11. .test_button
  12. STMFD 13!,{14}
  13. MOV R0,#129
  14. MOV R1,#key
  15. MOV R2,#&FF
  16. SWI "OS_Byte"
  17. LDRB R0,test_button_flag
  18. CMP R0,R1
  19. BEQ test_button_not_changed
  20. STRB R1,test_button_flag
  21. CMP R1,#&FF
  22. BNE test_button_not_changed
  23. MOV R0,#&FF
  24. LDMFD 13!,{PC}^
  25. .test_button_not_changed
  26. MOV R0,#0
  27. LDMFD 13!,{15}^
  28. .test_button_flag EQUB 0
  29. Release_shift:=
  30. released_key(&FF)
  31. Release_ctrl:=
  32. released_key(&FE)
  33. released_key(key)
  34.  pass= 0 
  35. P%=code
  36. [OPT pass
  37. .test_button
  38. STMFD 13!,{14}
  39. MOV R0,#129
  40. MOV R1,#key
  41. MOV R2,#&FF
  42. SWI "OS_Byte"
  43. LDRB R0,test_button_flag
  44. CMP R0,R1
  45. BEQ test_button_not_changed
  46. STRB R1,test_button_flag
  47. CMP R1,#0
  48. BNE test_button_not_changed
  49. MOV R0,#&FF
  50. LDMFD 13!,{PC}^
  51. .test_button_not_changed
  52. MOV R0,#0
  53. LDMFD 13!,{15}^
  54. .test_button_flag EQUB 0
  55. Change_shift:=
  56. changed_key(&FF)
  57. Change_ctrl:=
  58. changed_key(&FE)
  59. changed_key(key)
  60.  pass= 0 
  61. P%=code
  62. [OPT pass
  63. .test_button
  64. STMFD 13!,{14}
  65. MOV R0,#129
  66. MOV R1,#key
  67. MOV R2,#&FF
  68. SWI "OS_Byte"
  69. LDRB R0,test_button_flag
  70. CMP R0,R1
  71. BEQ test_button_not_changed
  72. STRB R1,test_button_flag
  73. MOV R0,#&FF
  74. LDMFD 13!,{PC}^
  75. .test_button_not_changed
  76. MOV R0,#0
  77. LDMFD 13!,{15}^
  78. .test_button_flag EQUB 0
  79. Change_UserPort(n)
  80.  pass= 0 
  81. P%=code
  82. [OPT pass
  83. .test_button
  84. STMFD 13!,{14}
  85. MOV R0,#150
  86. MOV R1,#&60
  87. MOV R2,#&FF
  88. SWI "XOS_Byte"
  89. TST R2,#1<<n
  90. MOVNE R1,#0
  91. Q R1,#&FF
  92. LDRB R0,test_button_flag
  93. CMP R0,R1
  94. BEQ test_button_not_changed
  95. STRB R1,test_button_flag
  96. MOV R0,#&FF
  97. LDMFD 13!,{PC}^
  98. .test_button_not_changed
  99. MOV R0,#0
  100. LDMFD 13!,{15}^
  101. .test_button_flag EQUB 0
  102. Release_UserPort(n)
  103.  pass= 0 
  104. P%=code
  105. [OPT pass
  106. .test_button
  107. STMFD 13!,{14}
  108. MOV R0,#150
  109. MOV R1,#&60
  110. MOV R2,#&FF
  111. SWI "XOS_Byte"
  112. TST R2,#1<<n
  113. MOVNE R1,#0
  114. Q R1,#&FF
  115. LDRB R0,test_button_flag
  116. CMP R0,R1
  117. BEQ test_button_not_changed
  118. STRB R1,test_button_flag
  119. CMP R1,#0
  120. BNE test_button_not_changed
  121. MOV R0,#&FF
  122. LDMFD 13!,{PC}^
  123. .test_button_not_changed
  124. MOV R0,#0
  125. LDMFD 13!,{15}^
  126. .test_button_flag EQUB 0
  127. Press_UserPort(n)
  128.  pass= 0 
  129. P%=code
  130. [OPT pass
  131. .test_button
  132. STMFD 13!,{14}
  133. MOV R0,#150
  134. MOV R1,#&60
  135. MOV R2,#&FF
  136. SWI "XOS_Byte"
  137. TST R2,#1<<n
  138. MOVNE R1,#0
  139. Q R1,#&FF
  140. LDRB R0,test_button_flag
  141. CMP R0,R1
  142. BEQ test_button_not_changed
  143. STRB R1,test_button_flag
  144. CMP R1,#&FF
  145. BNE test_button_not_changed
  146. MOV R0,#&FF
  147. LDMFD 13!,{PC}^
  148. .test_button_not_changed
  149. MOV R0,#0
  150. LDMFD 13!,{15}^
  151. .test_button_flag EQUB 0
  152.