sfb1.awl 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343
  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. // Check Preset
  9. CALL SFB 1, DB 1 (
  10. CD := TRUE,
  11. LOAD := TRUE,
  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, 2
  19. U M 0.0
  20. __ASSERT== __STW VKE, 0
  21. U DB1.DBX 8.0 // CDO
  22. __ASSERT== __STW VKE, 1
  23. CALL SFB 1, DB 1 (
  24. CD := FALSE,
  25. LOAD := TRUE,
  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, -2
  33. U M 0.0
  34. __ASSERT== __STW VKE, 1
  35. U DB1.DBX 8.0 // CDO
  36. __ASSERT== __STW VKE, 0
  37. CALL SFB 1, DB 1 (
  38. CD := TRUE,
  39. LOAD := TRUE,
  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, 2
  47. U M 0.0
  48. __ASSERT== __STW VKE, 0
  49. U DB1.DBX 8.0 // CDO
  50. __ASSERT== __STW VKE, 1
  51. CALL SFB 1, DB 1 (
  52. CD := FALSE,
  53. LOAD := FALSE,
  54. PV := 0,
  55. Q := M 0.0,
  56. CV := MW 2,
  57. )
  58. __ASSERT== __STW BIE, 1
  59. L MW 2
  60. __ASSERT== __ACCU 1, 2
  61. U M 0.0
  62. __ASSERT== __STW VKE, 0
  63. U DB1.DBX 8.0 // CDO
  64. __ASSERT== __STW VKE, 0
  65. // Test CTD counter
  66. CALL SFB 1, DB 1 (
  67. CD := FALSE,
  68. LOAD := FALSE,
  69. PV := 10,
  70. Q := M 0.0,
  71. CV := MW 2,
  72. )
  73. __ASSERT== __STW BIE, 1
  74. L MW 2
  75. __ASSERT== __ACCU 1, 2
  76. U M 0.0
  77. __ASSERT== __STW VKE, 0
  78. U DB1.DBX 8.0 // CDO
  79. __ASSERT== __STW VKE, 0
  80. CALL SFB 1, DB 1 (
  81. CD := FALSE,
  82. LOAD := FALSE,
  83. PV := 10,
  84. Q := M 0.0,
  85. CV := MW 2,
  86. )
  87. __ASSERT== __STW BIE, 1
  88. L MW 2
  89. __ASSERT== __ACCU 1, 2
  90. U M 0.0
  91. __ASSERT== __STW VKE, 0
  92. U DB1.DBX 8.0 // CDO
  93. __ASSERT== __STW VKE, 0
  94. CALL SFB 1, DB 1 (
  95. CD := TRUE,
  96. LOAD := FALSE,
  97. PV := 10,
  98. Q := M 0.0,
  99. CV := MW 2,
  100. )
  101. __ASSERT== __STW BIE, 1
  102. L MW 2
  103. __ASSERT== __ACCU 1, 1
  104. U M 0.0
  105. __ASSERT== __STW VKE, 0
  106. U DB1.DBX 8.0 // CDO
  107. __ASSERT== __STW VKE, 1
  108. CALL SFB 1, DB 1 (
  109. CD := FALSE,
  110. LOAD := FALSE,
  111. PV := 10,
  112. Q := M 0.0,
  113. CV := MW 2,
  114. )
  115. __ASSERT== __STW BIE, 1
  116. L MW 2
  117. __ASSERT== __ACCU 1, 1
  118. U M 0.0
  119. __ASSERT== __STW VKE, 0
  120. U DB1.DBX 8.0 // CDO
  121. __ASSERT== __STW VKE, 0
  122. CALL SFB 1, DB 1 (
  123. CD := TRUE,
  124. LOAD := FALSE,
  125. PV := 10,
  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, 1
  134. U DB1.DBX 8.0 // CDO
  135. __ASSERT== __STW VKE, 1
  136. CALL SFB 1, DB 1 (
  137. CD := FALSE,
  138. LOAD := FALSE,
  139. PV := 10,
  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, 1
  148. U DB1.DBX 8.0 // CDO
  149. __ASSERT== __STW VKE, 0
  150. CALL SFB 1, DB 1 (
  151. CD := TRUE,
  152. LOAD := FALSE,
  153. PV := 10,
  154. Q := M 0.0,
  155. CV := MW 2,
  156. )
  157. __ASSERT== __STW BIE, 1
  158. L MW 2
  159. __ASSERT== __ACCU 1, -1
  160. U M 0.0
  161. __ASSERT== __STW VKE, 1
  162. U DB1.DBX 8.0 // CDO
  163. __ASSERT== __STW VKE, 1
  164. CALL SFB 1, DB 1 (
  165. CD := FALSE,
  166. LOAD := FALSE,
  167. PV := 10,
  168. Q := M 0.0,
  169. CV := MW 2,
  170. )
  171. __ASSERT== __STW BIE, 1
  172. L MW 2
  173. __ASSERT== __ACCU 1, -1
  174. U M 0.0
  175. __ASSERT== __STW VKE, 1
  176. U DB1.DBX 8.0 // CDO
  177. __ASSERT== __STW VKE, 0
  178. CALL SFB 1, DB 1 (
  179. CD := TRUE,
  180. LOAD := FALSE,
  181. PV := 10,
  182. Q := M 0.0,
  183. CV := MW 2,
  184. )
  185. __ASSERT== __STW BIE, 1
  186. L MW 2
  187. __ASSERT== __ACCU 1, -2
  188. U M 0.0
  189. __ASSERT== __STW VKE, 1
  190. U DB1.DBX 8.0 // CDO
  191. __ASSERT== __STW VKE, 1
  192. CALL SFB 1, DB 1 (
  193. CD := FALSE,
  194. LOAD := FALSE,
  195. PV := 10,
  196. Q := M 0.0,
  197. CV := MW 2,
  198. )
  199. __ASSERT== __STW BIE, 1
  200. L MW 2
  201. __ASSERT== __ACCU 1, -2
  202. U M 0.0
  203. __ASSERT== __STW VKE, 1
  204. U DB1.DBX 8.0 // CDO
  205. __ASSERT== __STW VKE, 0
  206. // Test limit
  207. L -32767
  208. T DB1.DBW 6 // CV
  209. CALL SFB 1, DB 1 (
  210. CD := FALSE,
  211. LOAD := FALSE,
  212. PV := 0,
  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 // CDO
  222. __ASSERT== __STW VKE, 0
  223. CALL SFB 1, DB 1 (
  224. CD := TRUE,
  225. LOAD := FALSE,
  226. PV := 0,
  227. Q := M 0.0,
  228. CV := MW 2,
  229. )
  230. __ASSERT== __STW BIE, 1
  231. L MW 2
  232. __ASSERT== __ACCU 1, -32768
  233. U M 0.0
  234. __ASSERT== __STW VKE, 1
  235. U DB1.DBX 8.0 // CDO
  236. __ASSERT== __STW VKE, 1
  237. CALL SFB 1, DB 1 (
  238. CD := FALSE,
  239. LOAD := FALSE,
  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, -32768
  247. U M 0.0
  248. __ASSERT== __STW VKE, 1
  249. U DB1.DBX 8.0 // CDO
  250. __ASSERT== __STW VKE, 0
  251. CALL SFB 1, DB 1 (
  252. CD := TRUE,
  253. LOAD := FALSE,
  254. PV := 0,
  255. Q := M 0.0,
  256. CV := MW 2,
  257. )
  258. __ASSERT== __STW BIE, 1
  259. L MW 2
  260. __ASSERT== __ACCU 1, -32768
  261. U M 0.0
  262. __ASSERT== __STW VKE, 1
  263. U DB1.DBX 8.0 // CDO
  264. __ASSERT== __STW VKE, 1
  265. CALL SFB 1, DB 1 (
  266. CD := FALSE,
  267. LOAD := FALSE,
  268. PV := 0,
  269. Q := M 0.0,
  270. CV := MW 2,
  271. )
  272. __ASSERT== __STW BIE, 1
  273. L MW 2
  274. __ASSERT== __ACCU 1, -32768
  275. U M 0.0
  276. __ASSERT== __STW VKE, 1
  277. U DB1.DBX 8.0 // CDO
  278. __ASSERT== __STW VKE, 0
  279. CALL SFB 1, DB 1 (
  280. CD := TRUE,
  281. LOAD := FALSE,
  282. PV := 0,
  283. Q := M 0.0,
  284. CV := MW 2,
  285. )
  286. __ASSERT== __STW BIE, 1
  287. L MW 2
  288. __ASSERT== __ACCU 1, -32768
  289. U M 0.0
  290. __ASSERT== __STW VKE, 1
  291. U DB1.DBX 8.0 // CDO
  292. __ASSERT== __STW VKE, 1
  293. CALL SFB 1, DB 1 (
  294. CD := FALSE,
  295. LOAD := TRUE,
  296. PV := 10,
  297. Q := M 0.0,
  298. CV := MW 2,
  299. )
  300. __ASSERT== __STW BIE, 1
  301. L MW 2
  302. __ASSERT== __ACCU 1, 10
  303. U M 0.0
  304. __ASSERT== __STW VKE, 0
  305. U DB1.DBX 8.0 // CDO
  306. __ASSERT== __STW VKE, 0
  307. CALL SFC 46 // STOP CPU
  308. END_ORGANIZATION_BLOCK
  309. DATA_BLOCK DB 1
  310. SFB 1
  311. BEGIN
  312. END_DATA_BLOCK