?login_element?

Subversion Repositories NedoOS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1.     DEVICE ZXSPECTRUMNEXT
  2.  
  3.     MACRO testMacro arg1?
  4.         IF 0 == arg1? : testMacro 1 : ENDIF
  5. .macro_local.1:
  6. .smc+1:
  7.         ret
  8.     ENDM
  9.  
  10.     ORG $8000
  11. .no_main_local.1e: EQU 123
  12. .no_main_local.1:   ; has no main label, will become "_.no_main_local"
  13.         xor a
  14.         jr nz,.no_main_local.1
  15.         jr z,main.1.local.1
  16. main.smc1+1:
  17. main.1e: EQU 234
  18. main.1:
  19.         halt
  20.         testMacro 0
  21. .local.smc1+1:
  22. .local.1e: EQU 345
  23. .local.1:
  24.         xor a
  25.         jr nz,.local.1
  26.         jr nz,_.no_main_local.1
  27.  
  28.     MODULE module@1
  29.         RELOCATE_START HIGH
  30. .no_main_local.2e: EQU 456
  31. .no_main_local.2:  EQU high $
  32.         xor a
  33.         jr nz,$+.no_main_local.2
  34.         jr z,main.2.local.2
  35. main.smc2+1:
  36. main.2e: EQU 567
  37. main.2:
  38.         RELOCATE_END
  39.         halt
  40.         testMacro 0
  41. .local.smc2+1:
  42. .local.2e: EQU 678
  43. .local.2:
  44.         xor a
  45. @main.1.local.2e: EQU 789   ; fake global label looking like another local
  46. @main.1.local.2:    ; fake global label looking like another local
  47.         jr nz,main.2.local.2
  48.         jr nz,$+_.no_main_local.2
  49.     ENDMODULE
  50.  
  51.     DW _.no_main_local.1e, module@1.main.2.local.2e
  52.  
  53.     STRUCT S_TEST, 10
  54. byte    BYTE    0x12
  55. word    WORD    0x3456
  56.     ENDS
  57.  
  58. data:
  59. .s1     S_TEST
  60. .s2     S_TEST { 0x78, 0x9ABC }
  61. s3      S_TEST { 0xDE, 0xF023 }
  62.  
  63.     ld  ix,data.s2
  64.     ld  a,(ix+S_TEST.word)
  65.     ld  (s3.word),a
  66.     ld  de,S_TEST
  67.     add ix,de
  68.  
  69.     ; same stuff, but in module m2 (!)
  70.     MODULE m2
  71.     STRUCT S_TEST, 10
  72. byte    BYTE    0x12
  73. word    WORD    0x3456
  74.     ENDS
  75.  
  76. data:
  77. .s1     S_TEST
  78. .s2     S_TEST { 0x78, 0x9ABC }
  79. s3      S_TEST { 0xDE, 0xF023 }
  80.  
  81.     ld  ix,data.s2
  82.     ld  a,(ix+S_TEST.word)
  83.     ld  (s3.word),a
  84.     ld  de,S_TEST
  85.     add ix,de
  86.     ENDMODULE
  87.