Rev 129 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download
# file opened: address_wrap.asm
1 0000 ; default without device will go outside into 0x10000+ address realm (with warnings)
2 0000 DEVICE NONE
3 0000 ORG $FFFF
4 FFFF 37 ta1 scf
address_wrap.asm(5): warning: RAM limit exceeded 0x10000 by ORG
5 0000 18 FE tb1 jr tb1
6 0002 18 FE tc1 jr tc1
address_wrap.asm(7): warning: value 0x10002 is truncated to 16bit value: 0x0002
7 0004 CD 02 00 call tc1
8 0007
9 0007 ORG $FFFF
address_wrap.asm(10): warning: RAM limit exceeded 0x10000 by ORG
10 FFFF 3E 37 ta2 ld a,'7' ; will reset warning-displayed flag => warnings again
11 0001 18 FE tb2 jr tb2
12 0003 18 FE tc2 jr tc2
address_wrap.asm(13): warning: value 0x10003 is truncated to 16bit value: 0x0003
13 0005 CD 03 00 call tc2
14 0008
15 0008 ; default with device will produce error (and leak into 0x10000+ address realm)
16 0008 DEVICE ZXSPECTRUM48
17 0008 ORG $FFFF
18 FFFF 37 ta3 scf
address_wrap.asm(19): error: Write outside of device memory at: 65536
19 0000 18 FE tb3 jr tb3 ; machine code is written only to OUTPUT, not to device-memory (SAVEBIN)
20 0002 18 FE tc3 jr tc3
address_wrap.asm(21): warning: value 0x10002 is truncated to 16bit value: 0x0002
21 0004 CD 02 00 call tc3
22 0007
23 0007 ORG $FFFF
address_wrap.asm(24): error: Write outside of device memory at: 65536
24 FFFF 3E 38 ta4 ld a,'8'
25 0001 18 FE tb4 jr tb4
26 0003 18 FE tc4 jr tc4
address_wrap.asm(27): warning: value 0x10003 is truncated to 16bit value: 0x0003
27 0005 CD 03 00 call tc4
28 0008
29 0008 ; produce the same machine code at $8000 (recommended way how to FFFF->0000 wrap)
30 0008 DEVICE NONE
31 0008 ORG $8000
32 8000 binStart5
33 8000 DISP $FFFF
34 FFFF 37 ta5 scf
address_wrap.asm(35): warning: RAM limit exceeded 0x10000 by DISP
35 0000 18 FE tb5 jr tb5 ; the "tb5" label will equal 0x10000 since v1.15.0 (was 0x0000 before)
36 0002 18 FE tc5 jr tc5
37 0004 CD 02 00 call tc5
38 0007
39 0007 ORG $FFFF ; ok ; while already inside DISP<->ENT block, use ORG for further changes
address_wrap.asm(40): warning: RAM limit exceeded 0x10000 by DISP
40 FFFF 3E 38 ta6 ld a,'8'
41 0001 18 FE tb6 jr tb6
42 0003 18 FE tc6 jr tc6
43 0005 CD 03 00 call tc6
44 0008 ENT
45 8011 binEnd6
46 8011
47 8011 ; machine code at $8000 and also into device memory (SAVEBIN/SAVETAP ready)
48 8011 DEVICE ZXSPECTRUM48
49 8011 binStart7
50 8011 DISP $FFFF
51 FFFF 37 ta7 scf
address_wrap.asm(52): warning: RAM limit exceeded 0x10000 by DISP
52 0000 18 FE tb7 jr tb7
53 0002 18 FE tc7 jr tc7
54 0004 CD 02 00 call tc7
55 0007
56 0007 ORG $FFFF ; ok
address_wrap.asm(57): warning: RAM limit exceeded 0x10000 by DISP
57 FFFF 3E 38 ta8 ld a,'8'
58 0001 18 FE tb8 jr tb8
59 0003 18 FE tc8 jr tc8
60 0005 CD 03 00 call tc8
61 0008 ENT
62 8022 binEnd8
63 8022
# file closed: address_wrap.asm
Value Label
------ - -----------------------------------------------------------
0xFFFF X ta1
0x10000 tb1
0x10002 tc1
0xFFFF X ta2
0x10001 tb2
0x10003 tc2
0xFFFF X ta3
0x10000 tb3
0x10002 tc3
0xFFFF X ta4
0x10001 tb4
0x10003 tc4
0x8000 X binStart5
0xFFFF X ta5
0x10000 tb5
0x0002 tc5
0xFFFF X ta6
0x0001 tb6
0x0003 tc6
0x8011 X binEnd6
0x8011 X binStart7
0xFFFF X ta7
0x10000 tb7
0x0002 tc7
0xFFFF X ta8
0x0001 tb8
0x0003 tc8
0x8022 X binEnd8