sfb0.awl 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330
  1. ORGANIZATION_BLOCK OB 1
  2. BEGIN
  3. // Check instance-DB length
  4. AUF DB 1
  5. L DBLG
  6. __ASSERT== __ACCU 1, 10
  7. AUF DB 0
  8. // Test CTU counter
  9. CALL SFB 0, DB 1 (
  10. CU := FALSE,
  11. R := FALSE,
  12. PV := 2,
  13. Q := M 0.0,
  14. CV := MW 2,
  15. )
  16. __ASSERT== __STW BIE, 1
  17. L MW 2
  18. __ASSERT== __ACCU 1, 0
  19. U M 0.0
  20. __ASSERT== __STW VKE, 0
  21. U DB1.DBX 8.0 // CUO
  22. __ASSERT== __STW VKE, 0
  23. CALL SFB 0, DB 1 (
  24. CU := FALSE,
  25. R := FALSE,
  26. PV := 2,
  27. Q := M 0.0,
  28. CV := MW 2,
  29. )
  30. __ASSERT== __STW BIE, 1
  31. L MW 2
  32. __ASSERT== __ACCU 1, 0
  33. U M 0.0
  34. __ASSERT== __STW VKE, 0
  35. U DB1.DBX 8.0 // CUO
  36. __ASSERT== __STW VKE, 0
  37. CALL SFB 0, DB 1 (
  38. CU := TRUE,
  39. R := FALSE,
  40. PV := 2,
  41. Q := M 0.0,
  42. CV := MW 2,
  43. )
  44. __ASSERT== __STW BIE, 1
  45. L MW 2
  46. __ASSERT== __ACCU 1, 1
  47. U M 0.0
  48. __ASSERT== __STW VKE, 0
  49. U DB1.DBX 8.0 // CUO
  50. __ASSERT== __STW VKE, 1
  51. CALL SFB 0, DB 1 (
  52. CU := FALSE,
  53. R := FALSE,
  54. PV := 2,
  55. Q := M 0.0,
  56. CV := MW 2,
  57. )
  58. __ASSERT== __STW BIE, 1
  59. L MW 2
  60. __ASSERT== __ACCU 1, 1
  61. U M 0.0
  62. __ASSERT== __STW VKE, 0
  63. U DB1.DBX 8.0 // CUO
  64. __ASSERT== __STW VKE, 0
  65. CALL SFB 0, DB 1 (
  66. CU := TRUE,
  67. R := FALSE,
  68. PV := 2,
  69. Q := M 0.0,
  70. CV := MW 2,
  71. )
  72. __ASSERT== __STW BIE, 1
  73. L MW 2
  74. __ASSERT== __ACCU 1, 2
  75. U M 0.0
  76. __ASSERT== __STW VKE, 1
  77. U DB1.DBX 8.0 // CUO
  78. __ASSERT== __STW VKE, 1
  79. CALL SFB 0, DB 1 (
  80. CU := FALSE,
  81. R := FALSE,
  82. PV := 2,
  83. Q := M 0.0,
  84. CV := MW 2,
  85. )
  86. __ASSERT== __STW BIE, 1
  87. L MW 2
  88. __ASSERT== __ACCU 1, 2
  89. U M 0.0
  90. __ASSERT== __STW VKE, 1
  91. U DB1.DBX 8.0 // CUO
  92. __ASSERT== __STW VKE, 0
  93. // Check Reset
  94. CALL SFB 0, DB 1 (
  95. CU := TRUE,
  96. R := TRUE,
  97. PV := 2,
  98. Q := M 0.0,
  99. CV := MW 2,
  100. )
  101. __ASSERT== __STW BIE, 1
  102. L MW 2
  103. __ASSERT== __ACCU 1, 0
  104. U M 0.0
  105. __ASSERT== __STW VKE, 0
  106. U DB1.DBX 8.0 // CUO
  107. __ASSERT== __STW VKE, 1
  108. CALL SFB 0, DB 1 (
  109. CU := FALSE,
  110. R := TRUE,
  111. PV := 2,
  112. Q := M 0.0,
  113. CV := MW 2,
  114. )
  115. __ASSERT== __STW BIE, 1
  116. L MW 2
  117. __ASSERT== __ACCU 1, 0
  118. U M 0.0
  119. __ASSERT== __STW VKE, 0
  120. U DB1.DBX 8.0 // CUO
  121. __ASSERT== __STW VKE, 0
  122. CALL SFB 0, DB 1 (
  123. CU := TRUE,
  124. R := TRUE,
  125. PV := 2,
  126. Q := M 0.0,
  127. CV := MW 2,
  128. )
  129. __ASSERT== __STW BIE, 1
  130. L MW 2
  131. __ASSERT== __ACCU 1, 0
  132. U M 0.0
  133. __ASSERT== __STW VKE, 0
  134. U DB1.DBX 8.0 // CUO
  135. __ASSERT== __STW VKE, 1
  136. CALL SFB 0, DB 1 (
  137. CU := FALSE,
  138. R := FALSE,
  139. PV := 2,
  140. Q := M 0.0,
  141. CV := MW 2,
  142. )
  143. __ASSERT== __STW BIE, 1
  144. L MW 2
  145. __ASSERT== __ACCU 1, 0
  146. U M 0.0
  147. __ASSERT== __STW VKE, 0
  148. U DB1.DBX 8.0 // CUO
  149. __ASSERT== __STW VKE, 0
  150. // Test limit
  151. L 32766
  152. T DB1.DBW 6 // CV
  153. CALL SFB 0, DB 1 (
  154. CU := FALSE,
  155. R := FALSE,
  156. PV := 32767,
  157. Q := M 0.0,
  158. CV := MW 2,
  159. )
  160. __ASSERT== __STW BIE, 1
  161. L MW 2
  162. __ASSERT== __ACCU 1, 32766
  163. U M 0.0
  164. __ASSERT== __STW VKE, 0
  165. U DB1.DBX 8.0 // CUO
  166. __ASSERT== __STW VKE, 0
  167. CALL SFB 0, DB 1 (
  168. CU := TRUE,
  169. R := FALSE,
  170. PV := 32767,
  171. Q := M 0.0,
  172. CV := MW 2,
  173. )
  174. __ASSERT== __STW BIE, 1
  175. L MW 2
  176. __ASSERT== __ACCU 1, 32767
  177. U M 0.0
  178. __ASSERT== __STW VKE, 1
  179. U DB1.DBX 8.0 // CUO
  180. __ASSERT== __STW VKE, 1
  181. CALL SFB 0, DB 1 (
  182. CU := FALSE,
  183. R := FALSE,
  184. PV := 32767,
  185. Q := M 0.0,
  186. CV := MW 2,
  187. )
  188. __ASSERT== __STW BIE, 1
  189. L MW 2
  190. __ASSERT== __ACCU 1, 32767
  191. U M 0.0
  192. __ASSERT== __STW VKE, 1
  193. U DB1.DBX 8.0 // CUO
  194. __ASSERT== __STW VKE, 0
  195. CALL SFB 0, DB 1 (
  196. CU := TRUE,
  197. R := FALSE,
  198. PV := 32767,
  199. Q := M 0.0,
  200. CV := MW 2,
  201. )
  202. __ASSERT== __STW BIE, 1
  203. L MW 2
  204. __ASSERT== __ACCU 1, 32767
  205. U M 0.0
  206. __ASSERT== __STW VKE, 1
  207. U DB1.DBX 8.0 // CUO
  208. __ASSERT== __STW VKE, 1
  209. CALL SFB 0, DB 1 (
  210. CU := FALSE,
  211. R := FALSE,
  212. PV := 32767,
  213. Q := M 0.0,
  214. CV := MW 2,
  215. )
  216. __ASSERT== __STW BIE, 1
  217. L MW 2
  218. __ASSERT== __ACCU 1, 32767
  219. U M 0.0
  220. __ASSERT== __STW VKE, 1
  221. U DB1.DBX 8.0 // CUO
  222. __ASSERT== __STW VKE, 0
  223. CALL SFB 0, DB 1 (
  224. CU := TRUE,
  225. R := FALSE,
  226. PV := 32767,
  227. Q := M 0.0,
  228. CV := MW 2,
  229. )
  230. __ASSERT== __STW BIE, 1
  231. L MW 2
  232. __ASSERT== __ACCU 1, 32767
  233. U M 0.0
  234. __ASSERT== __STW VKE, 1
  235. U DB1.DBX 8.0 // CUO
  236. __ASSERT== __STW VKE, 1
  237. CALL SFB 0, DB 1 (
  238. CU := FALSE,
  239. R := TRUE,
  240. PV := 0,
  241. Q := M 0.0,
  242. CV := MW 2,
  243. )
  244. __ASSERT== __STW BIE, 1
  245. L MW 2
  246. __ASSERT== __ACCU 1, 0
  247. U M 0.0
  248. __ASSERT== __STW VKE, 1
  249. U DB1.DBX 8.0 // CUO
  250. __ASSERT== __STW VKE, 0
  251. CALL SFB 0, DB 1 (
  252. CU := FALSE,
  253. R := FALSE,
  254. PV := -1,
  255. Q := M 0.0,
  256. CV := MW 2,
  257. )
  258. __ASSERT== __STW BIE, 1
  259. L MW 2
  260. __ASSERT== __ACCU 1, 0
  261. U M 0.0
  262. __ASSERT== __STW VKE, 1
  263. U DB1.DBX 8.0 // CUO
  264. __ASSERT== __STW VKE, 0
  265. L -1
  266. T DB1.DBW 6 // CV
  267. CALL SFB 0, DB 1 (
  268. CU := FALSE,
  269. R := FALSE,
  270. PV := 0,
  271. Q := M 0.0,
  272. CV := MW 2,
  273. )
  274. __ASSERT== __STW BIE, 1
  275. L MW 2
  276. __ASSERT== __ACCU 1, -1
  277. U M 0.0
  278. __ASSERT== __STW VKE, 0
  279. U DB1.DBX 8.0 // CUO
  280. __ASSERT== __STW VKE, 0
  281. CALL SFB 0, DB 1 (
  282. CU := FALSE,
  283. R := TRUE,
  284. PV := 0,
  285. Q := M 0.0,
  286. CV := MW 2,
  287. )
  288. __ASSERT== __STW BIE, 1
  289. L MW 2
  290. __ASSERT== __ACCU 1, 0
  291. U M 0.0
  292. __ASSERT== __STW VKE, 1
  293. U DB1.DBX 8.0 // CUO
  294. __ASSERT== __STW VKE, 0
  295. CALL SFC 46 // STOP CPU
  296. END_ORGANIZATION_BLOCK
  297. DATA_BLOCK DB 1
  298. SFB 0
  299. BEGIN
  300. END_DATA_BLOCK