123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661 |
- ORGANIZATION_BLOCK OB 1
- VAR_TEMP
- BVAL_TMP : ANY;
- BLK_TMP : ANY;
- RET_TMP : INT;
- LOCALDW0 : DWORD;
- END_VAR
- BEGIN
- // Test SFC 21: FILL
- // Invalid BVAL ANY magic.
- LAR1 P##BVAL_TMP
- L B#16#01 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 50.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 100.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8124
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Invalid BLK ANY magic.
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 50.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#01 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 100.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8325
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Invalid BVAL ANY repetition count for BOOL
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 15 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 50.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 100.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8122
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Invalid BLK ANY repetition count for BOOL
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 50.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 100.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8323
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // System-DB BVAL DB number
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 100.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#813A
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // System-DB BLK DB number
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#833A
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Invalid BVAL DB number
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 999 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#813A
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Invalid BLK DB number
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 1 // Repetition
- T W [AR1, P#2.0]
- L 999 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#833A
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Out of range BVAL pointer
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 4 // Repetition
- T W [AR1, P#2.0]
- L 1 // DB
- T W [AR1, P#4.0]
- L P#DBX 4.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 10.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8124
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Out of range BLK pointer
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 4 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 10.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 1 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8325
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Unaligned BVAL pointer
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.1 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 10.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8128
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Unaligned BLK pointer
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#01 // Data type (BOOL)
- T B [AR1, P#1.0]
- L 8 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 10.7 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#8329
- __ASSERT== __STW BIE, 0
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- // Copy data from DBx to DBy
- L W#16#ABCD
- T DB1.VAR0
- L W#16#1234
- T DB1.VAR1
- L W#16#9988
- T DB1.VAR2
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#04 // Data type (WORD)
- T B [AR1, P#1.0]
- L 3 // Repetition
- T W [AR1, P#2.0]
- L 1 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#04 // Data type (WORD)
- T B [AR1, P#1.0]
- L 6 // Repetition
- T W [AR1, P#2.0]
- L 3 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#0000
- __ASSERT== __STW BIE, 1
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- L DB3.VAR0
- __ASSERT== __ACCU 1, W#16#ABCD
- L DB3.VAR1
- __ASSERT== __ACCU 1, W#16#1234
- L DB3.VAR2
- __ASSERT== __ACCU 1, W#16#9988
- L DB3.VAR3
- __ASSERT== __ACCU 1, W#16#ABCD
- L DB3.VAR4
- __ASSERT== __ACCU 1, W#16#1234
- L DB3.VAR5
- __ASSERT== __ACCU 1, W#16#9988
- // Copy data from DBx to L
- L W#16#ABCD
- T DB1.VAR0
- L W#16#1234
- T DB1.VAR1
- L W#16#9988
- T DB1.VAR2
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#04 // Data type (WORD)
- T B [AR1, P#1.0]
- L 3 // Repetition
- T W [AR1, P#2.0]
- L 1 // DB
- T W [AR1, P#4.0]
- L P#DBX 0.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #LOCALDW0,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#0000
- __ASSERT== __STW BIE, 1
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- L #LOCALDW0
- __ASSERT== __ACCU 1, DW#16#ABCD1234
- // Copy data from L to DBx
- L DW#16#98761122
- T #LOCALDW0
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#04 // Data type (WORD)
- T B [AR1, P#1.0]
- L 3 // Repetition
- T W [AR1, P#2.0]
- L 3 // DB
- T W [AR1, P#4.0]
- L P#DBX 6.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #LOCALDW0,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#0000
- __ASSERT== __STW BIE, 1
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- L #LOCALDW0
- __ASSERT== __ACCU 1, DW#16#98761122
- L DB3.VAR3
- __ASSERT== __ACCU 1, W#16#9876
- L DB3.VAR4
- __ASSERT== __ACCU 1, W#16#1122
- L DB3.VAR5
- __ASSERT== __ACCU 1, W#16#9876
- // Copy data bytes from M to M
- L W#16#ABCD
- T MW 0
- L 0
- T MD 10
- LAR1 P##BVAL_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 2 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 0.0 // Pointer
- T D [AR1, P#6.0]
- LAR1 P##BLK_TMP
- L B#16#10 // Magic
- T B [AR1, P#0.0]
- L B#16#02 // Data type (BYTE)
- T B [AR1, P#1.0]
- L 4 // Repetition
- T W [AR1, P#2.0]
- L 0 // DB
- T W [AR1, P#4.0]
- L P#M 10.0 // Pointer
- T D [AR1, P#6.0]
- AUF DB 2
- AUF DI 2
- CALL SFC 21 (
- BVAL := #BVAL_TMP,
- RET_VAL := #RET_TMP,
- BLK := #BLK_TMP,
- )
- L #RET_TMP
- __ASSERT== __ACCU 1, W#16#0000
- __ASSERT== __STW BIE, 1
- __ASSERT== DBNO, 2
- __ASSERT== DINO, 2
- L MW 0
- __ASSERT== __ACCU 1, W#16#ABCD
- L MD 10
- __ASSERT== __ACCU 1, DW#16#ABCDABCD
- CALL SFC 46 // STOP CPU
- END_ORGANIZATION_BLOCK
- DATA_BLOCK DB 1
- STRUCT
- VAR0 : WORD;
- VAR1 : WORD;
- VAR2 : WORD;
- END_STRUCT
- BEGIN
- END_DATA_BLOCK
- DATA_BLOCK DB 2
- STRUCT
- VAR0 : WORD;
- END_STRUCT
- BEGIN
- END_DATA_BLOCK
- DATA_BLOCK DB 3
- STRUCT
- VAR0 : WORD;
- VAR1 : WORD;
- VAR2 : WORD;
- VAR3 : WORD;
- VAR4 : WORD;
- VAR5 : WORD;
- END_STRUCT
- BEGIN
- END_DATA_BLOCK
|