home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / debug / ddtz27.ark / XTDOPS.MAC < prev    next >
Text File  |  1988-05-29  |  2KB  |  103 lines

  1. ; Demo. file of undocumented Z80 opcodes. (numerical order)
  2. ; These allow use of xh,xl,yh,yl as byte registers.
  3. ;
  4. ; nlist/list for SLRMAC, .xlist/.list for M80
  5.  nlist
  6.  include XTDOPS.LIB
  7.  list
  8. ;
  9. nn    equ    20h;    a value
  10. n    equ    05h;    displacement
  11.  
  12.     inrx    h;    xh := xh+1
  13.     dcrx    h;    xh := xh-1
  14.     mvix    h,nn;    xh := nn
  15.     inrx    l;    xl := xl+1
  16.     dcrx    l;    xl := xl-1
  17.     mvix    l,nn;    xl := nn
  18.     movx    b,h;    b := xh
  19.     movx    b,l;    b := xl
  20.     movx    c,h;    c := xh
  21.     movx    c,l;    c := xl
  22.     movx    d,h;    d := xh
  23.     movx    d,l;    d := xl
  24.     movx    e,h;    e := xh
  25.     movx    e,l;    e := xl
  26.     movx    h,b;    xh := b
  27.     movx    h,c;    xh := c
  28.     movx    h,d;    xh := d
  29.     movx    h,e;    xh := e
  30.     movx    h,a;    xh := a
  31.     movx    l,b;    xl := b
  32.     movx    l,c;    xl := c
  33.     movx    l,d;    xl := d
  34.     movx    l,e;    xl := e
  35.     movx    l,a;;    xl := a
  36.     movx    a,h;    a := xh
  37.     movx    a,l;    a := xl
  38.     adxr    h;    a := a + xh
  39.     adxr    l;    a := a + xl
  40.     acxr    h;    a := a + xh + cy
  41.     acxr    l;    a := a + xl + cy
  42.     suxr    h;    a := a - xh
  43.     suxr    l;    a := a - xl
  44.     sbxr    h;    a := a - xh - cy
  45.     sbxr    l;    a := a - xl - cy
  46.     ndxr    h;    a := a AND xh
  47.     ndxr    l;    a := a AND xl
  48.     xrxr    h;    a := a XOR xh
  49.     xrxr    l;    a := a XOR xl
  50.     orxr    h;    a := a OR xh
  51.     orxr    l;    a := a OR xl
  52.     cpxr    h;    flags on a-xh
  53.     cpxr    l;    flags on a-xl
  54. ;
  55. ; equivalent set for y
  56.     inry    h;    yh := yh+1
  57.     dcry    h;    yh := yh-1
  58.     mviy    h,nn;    yh := nn
  59.     inry    l;    yl := yl+1
  60.     dcry    l;    yl := yl-1
  61.     mviy    l,nn;    yl := nn
  62.     movy    b,h;    b := yh
  63.     movy    b,l;    b := yl
  64.     movy    c,h;    c := yh
  65.     movy    c,l;    c := yl
  66.     movy    d,h;    d := yh
  67.     movy    d,l;    d := yl
  68.     movy    e,h;    e := yh
  69.     movy    e,l;    e := yl
  70.     movy    h,b;    yh := b
  71.     movy    h,c;    yh := c
  72.     movy    h,d;    yh := d
  73.     movy    h,e;    yh := e
  74.     movy    h,a;    yh := a
  75.     movy    l,b;    yl := b
  76.     movy    l,c;    yl := c
  77.     movy    l,d;    yl := d
  78.     movy    l,e;    yl := e
  79.     movy    l,a;;    yl := a
  80.     movy    a,h;    a := yh
  81.     movy    a,l;    a := yl
  82.     adyr    h;    a := a + yh
  83.     adyr    l;    a := a + yl
  84.     acyr    h;    a := a + yh + cy
  85.     acyr    l;    a := a + yl + cy
  86.     suyr    h;    a := a - yh
  87.     suyr    l;    a := a - yl
  88.     sbyr    h;    a := a - yh - cy
  89.     sbyr    l;    a := a - yl - cy
  90.     ndyr    h;    a := a AND yh
  91.     ndyr    l;    a := a AND yl
  92.     xryr    h;    a := a XOR yh
  93.     xryr    l;    a := a XOR yl
  94.     oryr    h;    a := a OR yh
  95.     oryr    l;    a := a OR yl
  96.     cpyr    h;    flags on a-yh
  97.     cpyr    l;    flags on a-yl
  98.  
  99. ; Check that overloaded mvix/mviy still create original code
  100.     mvix    n,nn;    [x+n] := nn;    (now overloaded)
  101.     mviy    n,nn;    [y+n] := nn;    (now overloaded)
  102.     end
  103. ëⁿ