?login_element?

Subversion Repositories NedoOS

Rev

Rev 126 | Blame | Compare with Previous | Last modification | View Log | Download

  1. ; Based on documentation example (definitions same as tests/docs_examples/c_structures.asm)
  2. ; But this test does focus on stressing initializers syntax
  3.  
  4.         STRUCT substr1
  5. sm00    BYTE    '1'
  6.         ENDS
  7.  
  8.         STRUCT substr2
  9.         byte    '2'
  10. sub0    substr1 '3'
  11.         byte    '4'
  12. sub1    substr1 '5'
  13.         byte    '6'
  14.         ENDS
  15.  
  16.  
  17.         STRUCT  str, 1
  18. m00     byte    'A'
  19. m01     db      'B'
  20. m02     defb    'C'
  21. m03     word    'ED'
  22. m04     dw      'GF'
  23. m05     defw    'IH'
  24. m06     d24     'LKJ'
  25. m07     dword   'PONM'
  26. m08     dd      'TSRQ'
  27. m09     defd    'XWVU'
  28. m10     block   1, 'Y'
  29. m11     ds      1, 'Z'
  30. m12     defs    1, 'a'
  31. m13     #       1, 'b'
  32. m14     align   2, 'c'
  33. m15     ##      4, 'd'  ; 2x 'd'
  34. m16     substr2
  35.         ENDS
  36.  
  37.         DEVICE ZXSPECTRUM48
  38.  
  39.         ORG 0x8000
  40.         ds  0x4000, '_'     ; fill memory with '_'
  41.         ORG 0x8000
  42. ;; first set testing init-values list structure parsing
  43. d01     str                                                         : ALIGN   4, "\n"
  44.     ; "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdd23456\n\n\n"
  45. d02     str     {{{'!'}}}                                           : ALIGN   4, "\n"
  46.     ; "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!456\n\n\n"
  47. d03     str     {'!'{'!'{'!'}}}                                     : ALIGN   4, "\n"
  48.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!456\n\n\n"
  49. d04     str     {'!'{'!',{'!'}}}                                    : ALIGN   4, "\n"
  50.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!456\n\n\n"
  51. d05     str     {'!'{'!',,{'!'}}}                                   : ALIGN   4, "\n"
  52.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!34!6\n\n\n"
  53. d06     str     {'!'{,'!',{'!'}}}                                   : ALIGN   4, "\n"
  54.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!4!6\n\n\n"
  55. d07     str     {'!'{,'!','!'}}                                     : ALIGN   4, "\n"
  56.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!!56\n\n\n"
  57. d08     str     {'!'{'!',,{'!'},'!'}}                               : ALIGN   4, "\n"
  58.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!34!!\n\n\n"
  59. d09     str     {'!'{'!',{'!'},'!'}}                                : ALIGN   4, "\n"
  60.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!!56\n\n\n"
  61. d10     str     {,'!',,'!!',{{'!'}}}                                : ALIGN   4, "\n"
  62.     ; "_A!C!!FGHIJKLMNOPQRSTUVWXYZabcdd2!456\n\n\n"
  63. d11     str     {,'!',,'!!',{'!'}}                                  : ALIGN   4, "\n"
  64.     ; "_A!C!!FGHIJKLMNOPQRSTUVWXYZabcdd!3456\n\n\n"
  65.  
  66. ;; identical test cases as d02..d11, but without the top-level enclosing {}
  67. d12     str     ,{{'!'}}                                            : ALIGN   4, "\n"
  68.     ; ^^^ Needs at least some hint the first { is not global level => "," added
  69.     ; "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!456\n\n\n"
  70. d13     str     '!'{'!'{'!'}}                                       : ALIGN   4, "\n"
  71.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!456\n\n\n"
  72. d14     str     '!'{'!',{'!'}}                                      : ALIGN   4, "\n"
  73.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!456\n\n\n"
  74. d15     str     '!'{'!',,{'!'}}                                     : ALIGN   4, "\n"
  75.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!34!6\n\n\n"
  76. d16     str     '!'{,'!',{'!'}}                                     : ALIGN   4, "\n"
  77.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!4!6\n\n\n"
  78. d17     str     '!'{,'!','!'}                                       : ALIGN   4, "\n"
  79.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd2!!56\n\n\n"
  80. d18     str     '!'{'!',,{'!'},'!'}                                 : ALIGN   4, "\n"
  81.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!34!!\n\n\n"
  82. d19     str     '!'{'!',{'!'},'!'}                                  : ALIGN   4, "\n"
  83.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!!56\n\n\n"
  84. d20     str     ,'!',,'!!',{{'!'}}                                  : ALIGN   4, "\n"
  85.     ; "_A!C!!FGHIJKLMNOPQRSTUVWXYZabcdd2!456\n\n\n"
  86. d21     str     ,'!',,'!!',{'!'}                                    : ALIGN   4, "\n"
  87.     ; "_A!C!!FGHIJKLMNOPQRSTUVWXYZabcdd!3456\n\n\n"
  88.  
  89. ;; few more extra tests
  90. d22     str     {'!'{'!',{'!'}'!'}}                                 : ALIGN   4, "\n"
  91.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!!!56\n\n\n"
  92. d23     str     {'!'{'!',{}'!'}}                                    : ALIGN   4, "\n"
  93.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!3!56\n\n\n"
  94. @d24    str     {'!'{'!',{},'!'}}                                   : ALIGN   4, "\n"
  95.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd!3!56\n\n\n"
  96.  
  97. ;; value warnings
  98. w0     str     '!!'                                : ALIGN   4, "\n"
  99.     ; "_!BCDEFGHIJKLMNOPQRSTUVWXYZabcdd23456\n\n\n"
  100.  
  101.         SAVEBIN  "fields_types.bin", 0x8000, $-0x8000