home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / BDSC / BDSC-4 / ACRL.LBR / TEST3.CZM / TEST3.CSM
Text File  |  2000-06-30  |  2KB  |  112 lines

  1. ;CRL Assembler Test File
  2. ;
  3. ;Error checks and Reporting
  4.  
  5.     &^!#%        ;(I)llegal characters
  6. val    set    102b    ;       digit for radix
  7. val    set    1A    ;
  8.  
  9.     not        ;(Q)uestionable syntax: no directive
  10. val    set    0,    ;            extra tokens
  11.     nop        ;         instuction external
  12.  
  13. val    set    1+    ;(E)xpression error: missing operand
  14. val    set    $+2    ;             '$' external
  15.  
  16. val    set    (2+3    ;un(B)alanced parentheses
  17.  
  18. und    equ    undef    ;(U)ndefined symbol referance
  19.  
  20. mul    equ    1    ;(M)ultiply defined symbols
  21. mul    equ    2    ;
  22.  
  23. extra            ;(L)abel not used
  24.     equ    1    ;     missing
  25.  
  26.  
  27.  
  28. error    FUNCTION ext
  29.  
  30.     db    1FFh    ;(V)alue too large
  31.     db    -300    ;     too small
  32.  
  33.     dw    ext+2    ;e(X)ternal referance in expression
  34.     dw    3*ext    ;
  35.  
  36.     ds    $    ;(T)ype relocatable illegal in ds
  37.  
  38.     ds    local    ;
  39. label:            ;(P)hase error
  40. local    equ    5    ;  because 'local' was undefined
  41.             ;  in the ds (above) during pass 1
  42.     FEND
  43.  
  44.  
  45. ;Mixed Absolute and Relocatable expressions
  46.  
  47. mixed    FUNCTION
  48.  
  49.     dw    -$    ;unarys
  50.     dw    NOT $
  51.     dw    HIGH $
  52.     dw    LOW $
  53.  
  54.     dw    1 * $    ;abs op rel
  55.     dw    1 / $
  56.     dw    1 + $    ;OK
  57.     dw    1 - $
  58.     dw    1 MOD $
  59.     dw    1 SHR $
  60.     dw    1 SHL $
  61.     dw    1 AND $
  62.     dw    1 OR $
  63.     dw    1 XOR $
  64.  
  65.     dw    $ * 1    ;rel op abs
  66.     dw    $ / 1
  67.     dw    $ + 1    ;OK
  68.     dw    $ - 1    ;OK
  69.     dw    $ MOD 1
  70.     dw    $ SHR 1
  71.     dw    $ SHL 1
  72.     dw    $ AND 1
  73.     dw    $ OR 1
  74.     dw    $ XOR 1
  75.  
  76. label:    dw    label * $    ;rel op rel
  77.     dw    label / $
  78.     dw    label + $
  79.     dw    label - $    ;OK
  80.     dw    label MOD $
  81.     dw    label SHR $
  82.     dw    label SHL $
  83.     dw    label AND $
  84.     dw    label OR $
  85.     dw    label XOR $
  86.  
  87.     FEND
  88.  
  89.  
  90. ;Register errors
  91.  
  92. code    FUNCTION
  93.  
  94.     lxi    c,0    ;(R)egister error
  95.     ldax    h    ;
  96.     mov    m,m    ;         (hlt)
  97.  
  98.     mov    a b    ;Q - missing comma
  99.  
  100.     FEND
  101.  
  102.  
  103. ;Nesting Errors
  104.  
  105. nest    FUNCTION
  106. bad    FUNCTION    ;(N)est error:  already in function
  107.     FEND
  108.     FEND        ;(N)est error:  not in function
  109.  
  110. last    FUNCTION
  111.     end        ;(N)est error:  in function
  112.