fc12_ge_dt.awl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770
  1. DATA_BLOCK DB 1
  2. STRUCT
  3. TEST1_A : DATE_AND_TIME;
  4. TEST1_B : DATE_AND_TIME;
  5. TEST2_A : DATE_AND_TIME;
  6. TEST2_B : DATE_AND_TIME;
  7. TEST3_A : DATE_AND_TIME;
  8. TEST3_B : DATE_AND_TIME;
  9. TEST4_A : DATE_AND_TIME;
  10. TEST4_B : DATE_AND_TIME;
  11. TEST5_A : DATE_AND_TIME;
  12. TEST5_B : DATE_AND_TIME;
  13. TEST6_A : DATE_AND_TIME;
  14. TEST6_B : DATE_AND_TIME;
  15. TEST7_A : DATE_AND_TIME;
  16. TEST7_B : DATE_AND_TIME;
  17. TEST8_A : DATE_AND_TIME;
  18. TEST8_B : DATE_AND_TIME;
  19. TEST9_A : DATE_AND_TIME;
  20. TEST9_B : DATE_AND_TIME;
  21. TEST10_A : DATE_AND_TIME;
  22. TEST10_B : DATE_AND_TIME;
  23. TEST11_A : DATE_AND_TIME;
  24. TEST11_B : DATE_AND_TIME;
  25. TEST12_A : DATE_AND_TIME;
  26. TEST12_B : DATE_AND_TIME;
  27. TEST13_A : DATE_AND_TIME;
  28. TEST13_B : DATE_AND_TIME;
  29. TEST14_A : DATE_AND_TIME;
  30. TEST14_B : DATE_AND_TIME;
  31. TEST15_A : DATE_AND_TIME;
  32. TEST15_B : DATE_AND_TIME;
  33. TEST16_A : DATE_AND_TIME;
  34. TEST16_B : DATE_AND_TIME;
  35. TEST17_A : DATE_AND_TIME;
  36. TEST17_B : DATE_AND_TIME;
  37. TEST18_A : DATE_AND_TIME;
  38. TEST18_B : DATE_AND_TIME;
  39. TEST19_A : DATE_AND_TIME;
  40. TEST19_B : DATE_AND_TIME;
  41. TEST20_A : DATE_AND_TIME;
  42. TEST20_B : DATE_AND_TIME;
  43. TEST21_A : DATE_AND_TIME;
  44. TEST21_B : DATE_AND_TIME;
  45. TEST22_A : DATE_AND_TIME;
  46. TEST22_B : DATE_AND_TIME;
  47. TEST23_A : DATE_AND_TIME;
  48. TEST23_B : DATE_AND_TIME;
  49. TEST24_A : DATE_AND_TIME;
  50. TEST24_B : DATE_AND_TIME;
  51. TEST25_A : DATE_AND_TIME;
  52. TEST25_B : DATE_AND_TIME;
  53. TEST26_A : DATE_AND_TIME;
  54. TEST26_B : DATE_AND_TIME;
  55. TEST27_A : DATE_AND_TIME;
  56. TEST27_B : DATE_AND_TIME;
  57. TEST28_A : DATE_AND_TIME;
  58. TEST28_B : DATE_AND_TIME;
  59. TEST29_A : DATE_AND_TIME;
  60. TEST29_B : DATE_AND_TIME;
  61. TEST30_A : DATE_AND_TIME;
  62. TEST30_B : DATE_AND_TIME;
  63. TEST31_A : DATE_AND_TIME;
  64. TEST31_B : DATE_AND_TIME;
  65. TEST32_A : DATE_AND_TIME;
  66. TEST32_B : DATE_AND_TIME;
  67. TEST33_A : DATE_AND_TIME;
  68. TEST33_B : DATE_AND_TIME;
  69. TEST34_A : DATE_AND_TIME;
  70. TEST34_B : DATE_AND_TIME;
  71. END_STRUCT;
  72. BEGIN
  73. TEST1_A := DT#1990-1-1-0:0:0.000;
  74. TEST1_B := DT#1990-1-1-0:0:0.000;
  75. TEST2_A := DT#2089-12-31-23:59:59.999;
  76. TEST2_B := DT#2089-12-31-23:59:59.999;
  77. TEST3_A := DT#1990-1-1-0:0:0.0;
  78. TEST3_B := DT#2089-12-31-23:59:59.999;
  79. TEST4_A := DT#1991-1-2-3:4:5.679;
  80. TEST4_B := DT#1991-1-2-3:4:5.678;
  81. TEST5_A := DT#1991-1-2-3:4:6.678;
  82. TEST5_B := DT#1991-1-2-3:4:5.678;
  83. TEST6_A := DT#1991-1-2-3:5:5.678;
  84. TEST6_B := DT#1991-1-2-3:4:5.678;
  85. TEST7_A := DT#1991-1-2-4:4:5.678;
  86. TEST7_B := DT#1991-1-2-3:4:5.678;
  87. TEST8_A := DT#1991-1-3-3:4:5.678;
  88. TEST8_B := DT#1991-1-2-3:4:5.678;
  89. TEST9_A := DT#1991-2-2-3:4:5.678;
  90. TEST9_B := DT#1991-1-2-3:4:5.678;
  91. TEST10_A := DT#1992-1-2-3:4:5.678;
  92. TEST10_B := DT#1991-1-2-3:4:5.678;
  93. TEST11_A := DT#1991-1-2-3:4:5.678;
  94. TEST11_B := DT#1991-1-2-3:4:5.679;
  95. TEST12_A := DT#1991-1-2-3:4:5.678;
  96. TEST12_B := DT#1991-1-2-3:4:6.678;
  97. TEST13_A := DT#1991-1-2-3:4:5.678;
  98. TEST13_B := DT#1991-1-2-3:5:5.678;
  99. TEST14_A := DT#1991-1-2-3:4:5.678;
  100. TEST14_B := DT#1991-1-2-4:4:5.678;
  101. TEST15_A := DT#1991-1-2-3:4:5.678;
  102. TEST15_B := DT#1991-1-3-3:4:5.678;
  103. TEST16_A := DT#1991-1-2-3:4:5.678;
  104. TEST16_B := DT#1991-2-2-3:4:5.678;
  105. TEST17_A := DT#1991-1-2-3:4:5.678;
  106. TEST17_B := DT#1992-1-2-3:4:5.678;
  107. TEST18_A := DT#2001-1-2-3:4:5.679;
  108. TEST18_B := DT#2001-1-2-3:4:5.678;
  109. TEST19_A := DT#2001-1-2-3:4:6.678;
  110. TEST19_B := DT#2001-1-2-3:4:5.678;
  111. TEST20_A := DT#2001-1-2-3:5:5.678;
  112. TEST20_B := DT#2001-1-2-3:4:5.678;
  113. TEST21_A := DT#2001-1-2-4:4:5.678;
  114. TEST21_B := DT#2001-1-2-3:4:5.678;
  115. TEST22_A := DT#2001-1-3-3:4:5.678;
  116. TEST22_B := DT#2001-1-2-3:4:5.678;
  117. TEST23_A := DT#2001-2-2-3:4:5.678;
  118. TEST23_B := DT#2001-1-2-3:4:5.678;
  119. TEST24_A := DT#2002-1-2-3:4:5.678;
  120. TEST24_B := DT#2001-1-2-3:4:5.678;
  121. TEST25_A := DT#2001-1-2-3:4:5.678;
  122. TEST25_B := DT#2001-1-2-3:4:5.679;
  123. TEST26_A := DT#2001-1-2-3:4:5.678;
  124. TEST26_B := DT#2001-1-2-3:4:6.678;
  125. TEST27_A := DT#2001-1-2-3:4:5.678;
  126. TEST27_B := DT#2001-1-2-3:5:5.678;
  127. TEST28_A := DT#2001-1-2-3:4:5.678;
  128. TEST28_B := DT#2001-1-2-4:4:5.678;
  129. TEST29_A := DT#2001-1-2-3:4:5.678;
  130. TEST29_B := DT#2001-1-3-3:4:5.678;
  131. TEST30_A := DT#2001-1-2-3:4:5.678;
  132. TEST30_B := DT#2001-2-2-3:4:5.678;
  133. TEST31_A := DT#2001-1-2-3:4:5.678;
  134. TEST31_B := DT#2002-1-2-3:4:5.678;
  135. TEST32_A := DT#2002-1-2-3:4:5.678;
  136. TEST32_B := DT#2001-2-2-3:4:5.678;
  137. TEST33_A := DT#2001-1-3-3:4:5.678;
  138. TEST33_B := DT#2001-1-2-3:4:5.679;
  139. TEST34_A := DT#2001-1-2-3:4:6.678;
  140. TEST34_B := DT#2001-1-2-3:4:5.679;
  141. END_DATA_BLOCK
  142. ORGANIZATION_BLOCK OB 1
  143. VAR_TEMP
  144. TMP_DT1 : DATE_AND_TIME;
  145. TMP_DT2 : DATE_AND_TIME;
  146. END_VAR
  147. BEGIN
  148. CLR
  149. = M 0.0
  150. CALL "GE_DT" (
  151. DT1 := DB1.TEST1_A,
  152. DT2 := DB1.TEST1_B,
  153. RET_VAL := M 0.0,
  154. )
  155. __ASSERT== __STW BIE, 1
  156. __ASSERT== M 0.0, 1
  157. CLR
  158. = M 0.0
  159. CALL "GE_DT" (
  160. DT1 := DB1.TEST2_A,
  161. DT2 := DB1.TEST2_B,
  162. RET_VAL := M 0.0,
  163. )
  164. __ASSERT== __STW BIE, 1
  165. __ASSERT== M 0.0, 1
  166. SET
  167. = M 0.0
  168. CALL "GE_DT" (
  169. DT1 := DB1.TEST3_A,
  170. DT2 := DB1.TEST3_B,
  171. RET_VAL := M 0.0,
  172. )
  173. __ASSERT== __STW BIE, 1
  174. __ASSERT== M 0.0, 0
  175. CLR
  176. = M 0.0
  177. CALL "GE_DT" (
  178. DT1 := DB1.TEST4_A,
  179. DT2 := DB1.TEST4_B,
  180. RET_VAL := M 0.0,
  181. )
  182. __ASSERT== __STW BIE, 1
  183. __ASSERT== M 0.0, 1
  184. CLR
  185. = M 0.0
  186. CALL "GE_DT" (
  187. DT1 := DB1.TEST5_A,
  188. DT2 := DB1.TEST5_B,
  189. RET_VAL := M 0.0,
  190. )
  191. __ASSERT== __STW BIE, 1
  192. __ASSERT== M 0.0, 1
  193. CLR
  194. = M 0.0
  195. CALL "GE_DT" (
  196. DT1 := DB1.TEST6_A,
  197. DT2 := DB1.TEST6_B,
  198. RET_VAL := M 0.0,
  199. )
  200. __ASSERT== __STW BIE, 1
  201. __ASSERT== M 0.0, 1
  202. CLR
  203. = M 0.0
  204. CALL "GE_DT" (
  205. DT1 := DB1.TEST7_A,
  206. DT2 := DB1.TEST7_B,
  207. RET_VAL := M 0.0,
  208. )
  209. __ASSERT== __STW BIE, 1
  210. __ASSERT== M 0.0, 1
  211. CLR
  212. = M 0.0
  213. CALL "GE_DT" (
  214. DT1 := DB1.TEST8_A,
  215. DT2 := DB1.TEST8_B,
  216. RET_VAL := M 0.0,
  217. )
  218. __ASSERT== __STW BIE, 1
  219. __ASSERT== M 0.0, 1
  220. CLR
  221. = M 0.0
  222. CALL "GE_DT" (
  223. DT1 := DB1.TEST9_A,
  224. DT2 := DB1.TEST9_B,
  225. RET_VAL := M 0.0,
  226. )
  227. __ASSERT== __STW BIE, 1
  228. __ASSERT== M 0.0, 1
  229. CLR
  230. = M 0.0
  231. CALL "GE_DT" (
  232. DT1 := DB1.TEST10_A,
  233. DT2 := DB1.TEST10_B,
  234. RET_VAL := M 0.0,
  235. )
  236. __ASSERT== __STW BIE, 1
  237. __ASSERT== M 0.0, 1
  238. SET
  239. = M 0.0
  240. CALL "GE_DT" (
  241. DT1 := DB1.TEST11_A,
  242. DT2 := DB1.TEST11_B,
  243. RET_VAL := M 0.0,
  244. )
  245. __ASSERT== __STW BIE, 1
  246. __ASSERT== M 0.0, 0
  247. SET
  248. = M 0.0
  249. CALL "GE_DT" (
  250. DT1 := DB1.TEST12_A,
  251. DT2 := DB1.TEST12_B,
  252. RET_VAL := M 0.0,
  253. )
  254. __ASSERT== __STW BIE, 1
  255. __ASSERT== M 0.0, 0
  256. SET
  257. = M 0.0
  258. CALL "GE_DT" (
  259. DT1 := DB1.TEST13_A,
  260. DT2 := DB1.TEST13_B,
  261. RET_VAL := M 0.0,
  262. )
  263. __ASSERT== __STW BIE, 1
  264. __ASSERT== M 0.0, 0
  265. SET
  266. = M 0.0
  267. CALL "GE_DT" (
  268. DT1 := DB1.TEST14_A,
  269. DT2 := DB1.TEST14_B,
  270. RET_VAL := M 0.0,
  271. )
  272. __ASSERT== __STW BIE, 1
  273. __ASSERT== M 0.0, 0
  274. SET
  275. = M 0.0
  276. CALL "GE_DT" (
  277. DT1 := DB1.TEST15_A,
  278. DT2 := DB1.TEST15_B,
  279. RET_VAL := M 0.0,
  280. )
  281. __ASSERT== __STW BIE, 1
  282. __ASSERT== M 0.0, 0
  283. SET
  284. = M 0.0
  285. CALL "GE_DT" (
  286. DT1 := DB1.TEST16_A,
  287. DT2 := DB1.TEST16_B,
  288. RET_VAL := M 0.0,
  289. )
  290. __ASSERT== __STW BIE, 1
  291. __ASSERT== M 0.0, 0
  292. SET
  293. = M 0.0
  294. CALL "GE_DT" (
  295. DT1 := DB1.TEST17_A,
  296. DT2 := DB1.TEST17_B,
  297. RET_VAL := M 0.0,
  298. )
  299. __ASSERT== __STW BIE, 1
  300. __ASSERT== M 0.0, 0
  301. CLR
  302. = M 0.0
  303. CALL "GE_DT" (
  304. DT1 := DB1.TEST18_A,
  305. DT2 := DB1.TEST18_B,
  306. RET_VAL := M 0.0,
  307. )
  308. __ASSERT== __STW BIE, 1
  309. __ASSERT== M 0.0, 1
  310. CLR
  311. = M 0.0
  312. CALL "GE_DT" (
  313. DT1 := DB1.TEST19_A,
  314. DT2 := DB1.TEST19_B,
  315. RET_VAL := M 0.0,
  316. )
  317. __ASSERT== __STW BIE, 1
  318. __ASSERT== M 0.0, 1
  319. CLR
  320. = M 0.0
  321. CALL "GE_DT" (
  322. DT1 := DB1.TEST20_A,
  323. DT2 := DB1.TEST20_B,
  324. RET_VAL := M 0.0,
  325. )
  326. __ASSERT== __STW BIE, 1
  327. __ASSERT== M 0.0, 1
  328. CLR
  329. = M 0.0
  330. CALL "GE_DT" (
  331. DT1 := DB1.TEST21_A,
  332. DT2 := DB1.TEST21_B,
  333. RET_VAL := M 0.0,
  334. )
  335. __ASSERT== __STW BIE, 1
  336. __ASSERT== M 0.0, 1
  337. CLR
  338. = M 0.0
  339. CALL "GE_DT" (
  340. DT1 := DB1.TEST22_A,
  341. DT2 := DB1.TEST22_B,
  342. RET_VAL := M 0.0,
  343. )
  344. __ASSERT== __STW BIE, 1
  345. __ASSERT== M 0.0, 1
  346. CLR
  347. = M 0.0
  348. CALL "GE_DT" (
  349. DT1 := DB1.TEST23_A,
  350. DT2 := DB1.TEST23_B,
  351. RET_VAL := M 0.0,
  352. )
  353. __ASSERT== __STW BIE, 1
  354. __ASSERT== M 0.0, 1
  355. CLR
  356. = M 0.0
  357. CALL "GE_DT" (
  358. DT1 := DB1.TEST24_A,
  359. DT2 := DB1.TEST24_B,
  360. RET_VAL := M 0.0,
  361. )
  362. __ASSERT== __STW BIE, 1
  363. __ASSERT== M 0.0, 1
  364. SET
  365. = M 0.0
  366. CALL "GE_DT" (
  367. DT1 := DB1.TEST25_A,
  368. DT2 := DB1.TEST25_B,
  369. RET_VAL := M 0.0,
  370. )
  371. __ASSERT== __STW BIE, 1
  372. __ASSERT== M 0.0, 0
  373. SET
  374. = M 0.0
  375. CALL "GE_DT" (
  376. DT1 := DB1.TEST26_A,
  377. DT2 := DB1.TEST26_B,
  378. RET_VAL := M 0.0,
  379. )
  380. __ASSERT== __STW BIE, 1
  381. __ASSERT== M 0.0, 0
  382. SET
  383. = M 0.0
  384. CALL "GE_DT" (
  385. DT1 := DB1.TEST27_A,
  386. DT2 := DB1.TEST27_B,
  387. RET_VAL := M 0.0,
  388. )
  389. __ASSERT== __STW BIE, 1
  390. __ASSERT== M 0.0, 0
  391. SET
  392. = M 0.0
  393. CALL "GE_DT" (
  394. DT1 := DB1.TEST28_A,
  395. DT2 := DB1.TEST28_B,
  396. RET_VAL := M 0.0,
  397. )
  398. __ASSERT== __STW BIE, 1
  399. __ASSERT== M 0.0, 0
  400. SET
  401. = M 0.0
  402. CALL "GE_DT" (
  403. DT1 := DB1.TEST29_A,
  404. DT2 := DB1.TEST29_B,
  405. RET_VAL := M 0.0,
  406. )
  407. __ASSERT== __STW BIE, 1
  408. __ASSERT== M 0.0, 0
  409. SET
  410. = M 0.0
  411. CALL "GE_DT" (
  412. DT1 := DB1.TEST30_A,
  413. DT2 := DB1.TEST30_B,
  414. RET_VAL := M 0.0,
  415. )
  416. __ASSERT== __STW BIE, 1
  417. __ASSERT== M 0.0, 0
  418. SET
  419. = M 0.0
  420. CALL "GE_DT" (
  421. DT1 := DB1.TEST31_A,
  422. DT2 := DB1.TEST31_B,
  423. RET_VAL := M 0.0,
  424. )
  425. __ASSERT== __STW BIE, 1
  426. __ASSERT== M 0.0, 0
  427. CLR
  428. = M 0.0
  429. CALL "GE_DT" (
  430. DT1 := DB1.TEST32_A,
  431. DT2 := DB1.TEST32_B,
  432. RET_VAL := M 0.0,
  433. )
  434. __ASSERT== __STW BIE, 1
  435. __ASSERT== M 0.0, 1
  436. CLR
  437. = M 0.0
  438. CALL "GE_DT" (
  439. DT1 := DB1.TEST33_A,
  440. DT2 := DB1.TEST33_B,
  441. RET_VAL := M 0.0,
  442. )
  443. __ASSERT== __STW BIE, 1
  444. __ASSERT== M 0.0, 1
  445. CLR
  446. = M 0.0
  447. CALL "GE_DT" (
  448. DT1 := DB1.TEST34_A,
  449. DT2 := DB1.TEST34_B,
  450. RET_VAL := M 0.0,
  451. )
  452. __ASSERT== __STW BIE, 1
  453. __ASSERT== M 0.0, 1
  454. // Invalid BCD values are ok, except for year field
  455. LAR1 P##TMP_DT1
  456. L DW#16#00FFFFFF
  457. T D [AR1, P#0.0]
  458. L DW#16#FFFFFFFF
  459. T D [AR1, P#4.0]
  460. LAR2 P##TMP_DT2
  461. L 0
  462. T D [AR2, P#0.0]
  463. T D [AR2, P#4.0]
  464. CLR
  465. = M 0.0
  466. CALL "GE_DT" (
  467. DT1 := #TMP_DT1,
  468. DT2 := #TMP_DT2,
  469. RET_VAL := M 0.0
  470. )
  471. __ASSERT== __STW BIE, 1
  472. __ASSERT== M 0.0, 1
  473. LAR1 P##TMP_DT1
  474. L 0
  475. T D [AR1, P#0.0]
  476. T D [AR1, P#4.0]
  477. LAR2 P##TMP_DT2
  478. L DW#16#00FFFFFF
  479. T D [AR2, P#0.0]
  480. L DW#16#FFFFFFFF
  481. T D [AR2, P#4.0]
  482. SET
  483. = M 0.0
  484. CALL "GE_DT" (
  485. DT1 := #TMP_DT1,
  486. DT2 := #TMP_DT2,
  487. RET_VAL := M 0.0
  488. )
  489. __ASSERT== __STW BIE, 1
  490. __ASSERT== M 0.0, 0
  491. // Check invalid year BCD value
  492. LAR1 P##TMP_DT1
  493. L DW#16#FF000000
  494. T D [AR1, P#0.0]
  495. L 0
  496. T D [AR1, P#4.0]
  497. LAR2 P##TMP_DT2
  498. L 0
  499. T D [AR2, P#0.0]
  500. T D [AR2, P#4.0]
  501. CLR
  502. = M 0.0
  503. CALL "GE_DT" (
  504. DT1 := #TMP_DT1,
  505. DT2 := #TMP_DT2,
  506. RET_VAL := M 0.0
  507. )
  508. __ASSERT== __STW BIE, 0
  509. __ASSERT== M 0.0, 0
  510. LAR1 P##TMP_DT1
  511. L 0
  512. T D [AR1, P#0.0]
  513. T D [AR1, P#4.0]
  514. LAR2 P##TMP_DT2
  515. L DW#16#FF000000
  516. T D [AR2, P#0.0]
  517. L 0
  518. T D [AR2, P#4.0]
  519. CLR
  520. = M 0.0
  521. CALL "GE_DT" (
  522. DT1 := #TMP_DT1,
  523. DT2 := #TMP_DT2,
  524. RET_VAL := M 0.0
  525. )
  526. __ASSERT== __STW BIE, 0
  527. __ASSERT== M 0.0, 0
  528. LAR1 P##TMP_DT1
  529. L DW#16#FF000000
  530. T D [AR1, P#0.0]
  531. L 0
  532. T D [AR1, P#4.0]
  533. LAR2 P##TMP_DT2
  534. L 0
  535. T D [AR2, P#0.0]
  536. T D [AR2, P#4.0]
  537. SET
  538. = M 0.0
  539. CALL "GE_DT" (
  540. DT1 := #TMP_DT1,
  541. DT2 := #TMP_DT2,
  542. RET_VAL := M 0.0
  543. )
  544. __ASSERT== __STW BIE, 0
  545. __ASSERT== M 0.0, 1
  546. LAR1 P##TMP_DT1
  547. L 0
  548. T D [AR1, P#0.0]
  549. T D [AR1, P#4.0]
  550. LAR2 P##TMP_DT2
  551. L DW#16#FF000000
  552. T D [AR2, P#0.0]
  553. L 0
  554. T D [AR2, P#4.0]
  555. SET
  556. = M 0.0
  557. CALL "GE_DT" (
  558. DT1 := #TMP_DT1,
  559. DT2 := #TMP_DT2,
  560. RET_VAL := M 0.0
  561. )
  562. __ASSERT== __STW BIE, 0
  563. __ASSERT== M 0.0, 1
  564. // Check each byte invididually with invalid BCD value and upper bit set.
  565. // This checks for a signedness bug in comparison.
  566. LAR1 P##TMP_DT1
  567. L DW#16#00FF0000
  568. T D [AR1, P#0.0]
  569. L DW#16#00000000
  570. T D [AR1, P#4.0]
  571. LAR2 P##TMP_DT2
  572. L 0
  573. T D [AR2, P#0.0]
  574. T D [AR2, P#4.0]
  575. CLR
  576. = M 0.0
  577. CALL "GE_DT" (
  578. DT1 := #TMP_DT1,
  579. DT2 := #TMP_DT2,
  580. RET_VAL := M 0.0
  581. )
  582. __ASSERT== __STW BIE, 1
  583. __ASSERT== M 0.0, 1
  584. LAR1 P##TMP_DT1
  585. L DW#16#0000FF00
  586. T D [AR1, P#0.0]
  587. L DW#16#00000000
  588. T D [AR1, P#4.0]
  589. LAR2 P##TMP_DT2
  590. L 0
  591. T D [AR2, P#0.0]
  592. T D [AR2, P#4.0]
  593. CLR
  594. = M 0.0
  595. CALL "GE_DT" (
  596. DT1 := #TMP_DT1,
  597. DT2 := #TMP_DT2,
  598. RET_VAL := M 0.0
  599. )
  600. __ASSERT== __STW BIE, 1
  601. __ASSERT== M 0.0, 1
  602. LAR1 P##TMP_DT1
  603. L DW#16#000000FF
  604. T D [AR1, P#0.0]
  605. L DW#16#00000000
  606. T D [AR1, P#4.0]
  607. LAR2 P##TMP_DT2
  608. L 0
  609. T D [AR2, P#0.0]
  610. T D [AR2, P#4.0]
  611. CLR
  612. = M 0.0
  613. CALL "GE_DT" (
  614. DT1 := #TMP_DT1,
  615. DT2 := #TMP_DT2,
  616. RET_VAL := M 0.0
  617. )
  618. __ASSERT== __STW BIE, 1
  619. __ASSERT== M 0.0, 1
  620. LAR1 P##TMP_DT1
  621. L DW#16#00000000
  622. T D [AR1, P#0.0]
  623. L DW#16#FF000000
  624. T D [AR1, P#4.0]
  625. LAR2 P##TMP_DT2
  626. L 0
  627. T D [AR2, P#0.0]
  628. T D [AR2, P#4.0]
  629. CLR
  630. = M 0.0
  631. CALL "GE_DT" (
  632. DT1 := #TMP_DT1,
  633. DT2 := #TMP_DT2,
  634. RET_VAL := M 0.0
  635. )
  636. __ASSERT== __STW BIE, 1
  637. __ASSERT== M 0.0, 1
  638. LAR1 P##TMP_DT1
  639. L DW#16#00000000
  640. T D [AR1, P#0.0]
  641. L DW#16#00FF0000
  642. T D [AR1, P#4.0]
  643. LAR2 P##TMP_DT2
  644. L 0
  645. T D [AR2, P#0.0]
  646. T D [AR2, P#4.0]
  647. CLR
  648. = M 0.0
  649. CALL "GE_DT" (
  650. DT1 := #TMP_DT1,
  651. DT2 := #TMP_DT2,
  652. RET_VAL := M 0.0
  653. )
  654. __ASSERT== __STW BIE, 1
  655. __ASSERT== M 0.0, 1
  656. LAR1 P##TMP_DT1
  657. L DW#16#00000000
  658. T D [AR1, P#0.0]
  659. L DW#16#0000FF00
  660. T D [AR1, P#4.0]
  661. LAR2 P##TMP_DT2
  662. L 0
  663. T D [AR2, P#0.0]
  664. T D [AR2, P#4.0]
  665. CLR
  666. = M 0.0
  667. CALL "GE_DT" (
  668. DT1 := #TMP_DT1,
  669. DT2 := #TMP_DT2,
  670. RET_VAL := M 0.0
  671. )
  672. __ASSERT== __STW BIE, 1
  673. __ASSERT== M 0.0, 1
  674. LAR1 P##TMP_DT1
  675. L DW#16#00000000
  676. T D [AR1, P#0.0]
  677. L DW#16#000000FF
  678. T D [AR1, P#4.0]
  679. LAR2 P##TMP_DT2
  680. L 0
  681. T D [AR2, P#0.0]
  682. T D [AR2, P#4.0]
  683. CLR
  684. = M 0.0
  685. CALL "GE_DT" (
  686. DT1 := #TMP_DT1,
  687. DT2 := #TMP_DT2,
  688. RET_VAL := M 0.0
  689. )
  690. __ASSERT== __STW BIE, 1
  691. __ASSERT== M 0.0, 1
  692. CALL SFC 46 // Stop CPU
  693. END_ORGANIZATION_BLOCK