Subversion Repositories pentevo

Rev

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

  1. #define B8Regs a,w,c,b,e,d,l,h
  2. #define B16Regs wa,bc,de,hl,ix,iy,sp
  3. #define SrcMem (12h),(1234h),(de),(hl),(ix),(iy),(ix-3),(4+iy),(sp+4),(hl-2),(hl+c),(+sp),(pc+a)
  4. #define DestMem (12h),(1234h),(de),(hl),(ix),(iy),(ix-3),(4+iy),(sp+4),(hl-2),(hl+c),(sp-)
  5.  
  6.         cpu     tlcs-870/c
  7.         page    0
  8.  
  9.         irp     reg1, B8Regs
  10.         irp     reg2, B8Regs
  11.         ld      reg1,reg2
  12.         endm
  13.         endm
  14.  
  15.         irp     reg1, B16Regs
  16.         irp     reg2, B16Regs
  17.         ld      reg1,reg2
  18.         endm
  19.         endm
  20.  
  21.         ld      a,(12h)
  22.         ld      a,(hl)
  23.  
  24.         irp     reg, B8Regs
  25.         irp     mem, SrcMem
  26.         ld      reg,mem
  27.         endm
  28.         endm
  29.  
  30.         irp     reg, B8Regs
  31.         ld      reg,12h
  32.         endm
  33.  
  34.         irp     reg, B16Regs
  35.         irp     mem, SrcMem
  36.         ld      reg,mem
  37.         endm
  38.         endm
  39.  
  40.         irp     reg, B16Regs
  41.         ld      reg,1234h
  42.         endm
  43.  
  44.         ld      (hl),a
  45.         ld      (12h),a
  46.  
  47.         irp     reg, B8Regs
  48.         irp     mem, DestMem
  49.         ld      mem,reg
  50.         endm
  51.         endm
  52.  
  53.         irp     reg, B16Regs
  54.         irp     mem, DestMem
  55.         ld      mem,reg
  56.         endm
  57.         endm
  58.  
  59.         irp     mem, DestMem
  60.         ld      mem,0aah
  61.         endm
  62.  
  63.         irp     reg, B16Regs
  64.         ldw     reg,55aah
  65.         endm
  66.         ldw     (12h),55aah
  67.         ldw     (hl),55aah
  68.  
  69.         irp     op,push,pop
  70.         op      psw
  71.         irp     reg,B16Regs
  72.         op      reg
  73.         endm
  74.         endm
  75.  
  76.         ld      psw, 0ddh
  77.  
  78.         ld      rbs,0
  79.         ld      rbs,1
  80.  
  81.         ld      sp,sp+2
  82.         ld      sp,sp+0
  83.         ld      sp,sp-5
  84.  
  85.         irp     reg1,B8Regs
  86.         irp     reg2,B8Regs
  87.         xch     reg1,reg2
  88.         endm
  89.         irp     mem,SrcMem
  90.         xch     reg1,mem
  91.         xch     mem,reg1
  92.         endm
  93.         endm
  94.  
  95.         irp     reg1,B16Regs
  96.         irp     reg2,B16Regs
  97.         xch     reg1,reg2
  98.         endm
  99.         irp     mem,SrcMem
  100.         xch     reg1,mem
  101.         xch     mem,reg1
  102.         endm
  103.         endm
  104.  
  105.         irp     instr,cmp,add,addc,sub,subb,and,or,xor
  106.          irp     reg1,B8Regs
  107.           instr   reg1,0aah
  108.           irp     reg2,B8Regs
  109.            instr   reg1,reg2
  110.           endm
  111.           irp     mem,SrcMem
  112.            instr   reg1,mem
  113.           endm
  114.          endm
  115.          irp     reg1,B16Regs
  116.           instr   reg1,0aa55h
  117.           irp     reg2,B16Regs
  118.            instr   reg1,reg2
  119.           endm
  120.           irp     mem,SrcMem
  121.            instr   reg1,mem
  122.           endm
  123.          endm
  124.          irp      mem,SrcMem
  125.           instr    mem,66h
  126.          endm
  127.         endm
  128.  
  129.         irp     instr,inc,dec
  130.          irp     op,B8Regs,B16Regs
  131.           instr   op
  132.          endm
  133.          irp     op,SrcMem
  134.           instr   op
  135.          endm
  136.         endm
  137.  
  138.         irp     instr,daa,das,shlc,shrc,rolc,rorc,swap
  139.          irp     reg,B8Regs
  140.           instr   reg
  141.          endm
  142.         endm
  143.  
  144.         mul     w,a
  145.         mul     a,w
  146.         mul     b,c
  147.         mul     c,b
  148.         mul     d,e
  149.         mul     e,d
  150.         mul     h,l
  151.         mul     l,h
  152.  
  153.         div     wa,c
  154.         div     de,c
  155.         div     hl,c
  156.  
  157.         irp     reg, B16Regs
  158.          neg     cs,reg
  159.         endm
  160.  
  161.         irp     instr,shlca,shrca
  162.          irp     reg,B16Regs
  163.           instr   reg
  164.          endm
  165.         endm
  166.  
  167.         irp     instr,rold,rord
  168.          irp     mem,SrcMem
  169.           instr   a,mem
  170.          endm
  171.         endm
  172.  
  173.         irp     instr,set,clr,test,cpl
  174.          irp     reg,B8Regs
  175.           instr   reg.2
  176.          endm
  177.          irp     mem,SrcMem
  178.           instr   mem.5
  179.          endm
  180.          irp     mem,SrcMem
  181.           instr   mem.a
  182.          endm
  183.         endm
  184.  
  185.         irp     reg,B8Regs
  186.          ld      cf,reg.3
  187.         endm
  188.         irp     mem,SrcMem
  189.          ld      cf,mem.4
  190.         endm
  191.         irp     mem,SrcMem
  192.          ld      cf,mem.a
  193.         endm
  194.  
  195.         irp     reg,B8Regs
  196.          ld      reg.3,cf
  197.         endm
  198.         irp     mem,SrcMem
  199.          ld      mem.4,cf
  200.         endm
  201.         irp     mem,SrcMem
  202.          ld      mem.a,cf
  203.         endm
  204.  
  205.         irp     reg,B8Regs
  206.          xor     cf,reg.1
  207.         endm
  208.         irp     mem,SrcMem
  209.          xor     cf,mem.6
  210.         endm
  211.  
  212.         clr     cf
  213.         cpl     cf
  214.         set     cf
  215.  
  216.         ei
  217.         di
  218.  
  219.         jr      targ
  220.         irp     cond,t,f,eq,z,ne,nz,cs,lt,cc,ge,le,gt
  221.          jr      cond,targ
  222.         endm
  223.         irp     cond,m,p,slt,sge,sle,sgt,vs,vc
  224.          jr      cond,targ
  225.         endm
  226. targ:
  227.  
  228.         jrs     t,targ2
  229. targ2:
  230.         jrs     f,targ2
  231.  
  232.         jp      1234h
  233.         irp     reg,B16Regs
  234.          jp      reg
  235.         endm
  236.         irp     mem,SrcMem
  237.          jp      mem
  238.         endm
  239.  
  240.         j       $+10            ; coded as JR
  241.         j       $-10            ; coded as JR
  242.         j       $+100           ; coded as JR
  243.         j       $-100           ; coded as JR
  244.         j       $+1000          ; coded as JP
  245.         j       $-1000          ; coded as JP
  246.  
  247.         j       t,$+10          ; coded as JRS
  248.         j       t,$-10          ; coded as JRS
  249.         j       t,$+100         ; coded as JR
  250.         j       t,$-100         ; coded as JR
  251.         j       t,$+1000        ; coded as skipped JP
  252.         j       t,$-1000        ; coded as skipped JP
  253.  
  254.         j       f,$+10          ; coded as JRS
  255.         j       f,$-10          ; coded as JRS
  256.         j       f,$+100         ; coded as JR
  257.         j       f,$-100         ; coded as JR
  258.         j       f,$+1000        ; coded as skipped JP
  259.         j       f,$-1000        ; coded as skipped JP
  260.  
  261.         j       slt,$+10        ; coded as JR
  262.         j       slt,$-10        ; coded as JR
  263.         j       slt,$+100       ; coded as JR
  264.         j       slt,$-100       ; coded as JR
  265.         j       slt,$+1000      ; coded as skipped JP
  266.         j       slt,$-1000      ; coded as skipped JP
  267.  
  268.         callv   9
  269.  
  270.         call    1234h
  271.         irp     reg,B16Regs
  272.          call    reg
  273.         endm
  274.         irp     mem,SrcMem
  275.          call    mem
  276.         endm
  277.  
  278.         ret
  279.         reti
  280.         retn
  281.         swi
  282.         nop
  283.