Login

Subversion Repositories NedoOS

Rev

Rev 539 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

# 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       ; displacedorg-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       ; displacedorg-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
------ - -----------------------------------------------------------
0x8011 X binEnd6
0x8022 X binEnd8
0x8000 X binStart5
0x8011 X binStart7
0xFFFF X ta1
0xFFFF X ta2
0xFFFF X ta3
0xFFFF X ta4
0xFFFF X ta5
0xFFFF X ta6
0xFFFF X ta7
0xFFFF X ta8
0x10000   tb1
0x10001   tb2
0x10000   tb3
0x10001   tb4
0x10000   tb5
0x0001   tb6
0x10000   tb7
0x0001   tb8
0x10002   tc1
0x10003   tc2
0x10002   tc3
0x10003   tc4
0x0002   tc5
0x0003   tc6
0x0002   tc7
0x0003   tc8