Blame | Last modification | View Log | Download
# file opened: block_in_struct.asm
1 0000 STRUCT shortBlock
2 0000 ~ byte BYTE 'A'
3 0000 ~ block BLOCK 5, 'B'
4 0000 ~ word WORD 'DC'
5 0000 ENDS
6 0000
7 0000 STRUCT onLimitBlock
8 0000 ~ byte BYTE 'A'
9 0000 ~ block BLOCK 8, 'B' ; should be emitted without ellipsis
10 0000 ~ word WORD 'DC'
11 0000 ENDS
12 0000
13 0000 STRUCT longBlock
14 0000 ~ byte BYTE 'A'
15 0000 ~ block BLOCK 9, 'B' ; listed with ellipsis, needs fix of following address
16 0000 ~ word WORD 'DC'
17 0000 ENDS
18 0000
19 0000 ; verify offsets
20 0000 ASSERT 6 == shortBlock.word
21 0000 ASSERT 9 == onLimitBlock.word
22 0000 ASSERT 10 == longBlock.word
23 0000
24 0000 ORG $1000
25 1000 ; this should list normally
26 1000 41 42 42 42 sb shortBlock ; should produce continuous 1+5+2 = 8 bytes listing
26 1004 42 42 43 44
27 1008
28 1008 ORG $2000
29 2000 41 42 42 42 mb onLimitBlock ; should produce continuous 1+8+2 = 11 bytes listing
29 2004 42 42 42 42
29 2008 42 43 44
30 200B
31 200B ORG $3000
32 3000 41 42 42 42 lb longBlock ; should produce ellipsis after "block" + extra "ListFile()" call
32 3004 42 42 42 42
32 3008...
32 300A 43 44
33 300C ; and advance address for "word"
34 300C
35 300C ; one more ellipsis not aligning to the very beginning of MC byte quartet in LST
36 300C STRUCT longBlock2
37 300C ~ byte BYTE 'A'
38 300C ~ block1 BLOCK 9, '!'
39 300C ~ block2 BLOCK 9, 'B'
40 300C ~ word WORD 'DC'
41 300C ENDS
42 300C
43 300C ORG $8000
44 8000 41 21 21 21 lb2 longBlock2 ; some eol comment
44 8004 21 21 21 21
44 8008...
44 800A 42 42 42 42
44 800E 42 42 42...
44 8013 43 44
45 8015
46 8015 ; verify final addresses
47 8015 ASSERT $1006 == sb.word
48 8015 ASSERT $2009 == mb.word
49 8015 ASSERT $300A == lb.word
50 8015 ASSERT $8001 == lb2.block1 && $800A == lb2.block2 && $8013 == lb2.word
51 8015
# file closed: block_in_struct.asm
Value Label
------ - -----------------------------------------------------------
0x3000 X lb
0x3001 X lb.block
0x3000 X lb.byte
0x300A lb.word
0x8000 X lb2
0x8001 lb2.block1
0x800A lb2.block2
0x8000 X lb2.byte
0x8013 lb2.word
0x000C X longBlock
0x0001 X longBlock.block
0x0000 X longBlock.byte
0x000A longBlock.word
0x0015 X longBlock2
0x0001 X longBlock2.block1
0x000A X longBlock2.block2
0x0000 X longBlock2.byte
0x0013 X longBlock2.word
0x2000 X mb
0x2001 X mb.block
0x2000 X mb.byte
0x2009 mb.word
0x000B X onLimitBlock
0x0001 X onLimitBlock.block
0x0000 X onLimitBlock.byte
0x0009 onLimitBlock.word
0x1000 X sb
0x1001 X sb.block
0x1000 X sb.byte
0x1006 sb.word
0x0008 X shortBlock
0x0001 X shortBlock.block
0x0000 X shortBlock.byte
0x0006 shortBlock.word