Subversion Repositories pentevo

Rev

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

  1.         cpu     78310
  2.         page    0
  3.  
  4.         include "reg78310.inc"
  5.  
  6. saddr   equ     0ff02h
  7. saddr2  equ     0fe80h
  8. sfr     equ     cric00
  9. psw     equ     pswl
  10.  
  11.         mov     c,#55h
  12.         mov     r7,#0aah
  13.  
  14.         mov     a,r0
  15.         mov     a,c
  16.         mov     h,c
  17.         mov     h,r4
  18.         mov     r7,r5
  19.  
  20.         mov     a,[de+]
  21.         mov     a,[hl+]
  22.         mov     a,[de-]
  23.         mov     a,[hl-]
  24.         mov     a,[de]
  25.         mov     a,[hl]
  26.         mov     a,[vp]
  27.         mov     a,[up]
  28.         mov     a,[rp6+]
  29.         mov     a,[rp7+]
  30.         mov     a,[rp6-]
  31.         mov     a,[rp7-]
  32.         mov     a,[rp6]
  33.         mov     a,[rp7]
  34.         mov     a,[rp4]
  35.         mov     a,[rp5]
  36.         mov     a,[de+a]
  37.         mov     a,[hl+a]
  38.         mov     a,[de+b]
  39.         mov     a,[hl+b]
  40.         mov     a,[vp+de]
  41.         mov     a,[vp+hl]
  42.         mov     a,[de+17]
  43.         mov     a,[sp-2]
  44.         mov     a,[hl+55h+2]
  45.         mov     a,[up-7]
  46.         mov     a,[vp+13]
  47.         mov     a,1234h[de]
  48.         mov     a,2345h[a]
  49.         mov     a,3456h[hl]
  50.         mov     a,4567h[b]
  51.         mov     r1,1234h
  52.         mov     r1,saddr2
  53.         mov     r1,pswl
  54.         mov     a,pswh
  55.         mov     a,[saddr]
  56.         mov     saddr,#57h
  57.         mov     saddr,r1
  58.         mov     saddr,saddr2
  59.         mov     pswl,#55h
  60.         mov     pswh,a
  61.         mov     [hl],a
  62.         mov     1234[hl],a
  63.         mov     1234h,r1
  64.         mov     [saddr],a
  65.  
  66. ; note you do not need to explicitly use MOVW, as long as the operand
  67. ; size can be deduced from the arguments
  68.  
  69.         mov     ax,#1
  70.         movw    rp0,#1
  71.         movw    saddr,#9876h
  72.         movw    psw,#0ffeeh
  73.         mov     bc,hl
  74.         movw    bc,hl
  75.         mov     rp6,rp7
  76.         movw    rp6,rp7
  77.         mov     ax,saddr
  78.         movw    ax,saddr
  79.         mov     saddr,rp0
  80.         movw    saddr,rp0
  81.         movw    saddr,saddr+2
  82.         mov     ax,psw
  83.         movw    ax,psw
  84.         mov     psw,ax
  85.         movw    psw,ax
  86.  
  87.         xch     a,c
  88.         xch     r3,r1
  89.         xch     b,c
  90.         xch     b,h
  91.         xch     r6,r2
  92.         xch     a,[de]
  93.         xch     a,saddr
  94.         xch     a,pswh
  95.         xch     a,[saddr]
  96.         xch     saddr,a
  97.         xch     saddr,saddr2
  98.         xch     pswh,a
  99.         xch     [de],a
  100.         xch     [saddr],a
  101.  
  102. ; again, xchw only needed if op size unknown
  103.  
  104.         xch     ax,hl
  105.         xchw    ax,hl
  106.         xch     rp0,saddr
  107.         xchw    rp0,saddr
  108.         xch     rp0,psw
  109.         xchw    rp0,psw
  110.         xch     saddr,rp0
  111.         xchw    saddr,rp0
  112.         xchw    saddr,saddr2
  113.         xch     psw,rp0
  114.         xchw    psw,rp0
  115.  
  116.         irp     op,add,sub,addc,subc,and,or,xor,cmp
  117.         op      a,#67h
  118.         op      saddr,#99
  119.         op      pswl,#'a'
  120.         op      h,c
  121.         op      c,b
  122.         op      r1,saddr2
  123.         op      r1,pswh
  124.         op      saddr2,saddr
  125.         op      a,[de+5]
  126.         op      10[hl],a
  127.  
  128.         endm
  129.  
  130.         irp     op,add,sub,cmp
  131.         op      ax,#1234h
  132.         op      hl,bc
  133.         op      ax,saddr
  134.         op      ax,psw
  135.  
  136.         endm
  137.  
  138.         irp     opw,addw,subw,cmpw
  139.         opw     ax,#1234h
  140.         opw     saddr,#1234h
  141.         opw     psw,#55aah
  142.         opw     hl,bc
  143.         opw     ax,saddr
  144.         opw     ax,psw
  145.         opw     saddr2,saddr2
  146.  
  147.         endm
  148.  
  149.         mulu    c
  150.         mulu    r1
  151.         divu    x
  152.         divu    r3
  153.         mulu    ax
  154.         muluw   ax
  155.         divu    hl
  156.         divux   hl
  157.  
  158.         inc     c
  159.         inc     saddr
  160.         dec     b
  161.         dec     saddr
  162.         inc     vp
  163.         incw    vp
  164.         incw    saddr
  165.         dec     hl
  166.         decw    hl
  167.         decw    saddr
  168.  
  169.         ror     c,1
  170.         rol     b,2
  171.         rorc    c,3
  172.         rolc    b,4
  173.         shr     c,5
  174.         shl     b,6
  175.         shr     ax,7
  176.         shrw    ax,7
  177.         shl     hl,1
  178.         shlw    hl,1
  179.  
  180.         rol4    [de]
  181.         ror4    [ax]
  182.         adj4
  183.  
  184.         mov1    cy,saddr.2
  185.         mov1    cy,sfr.4
  186.         mov1    cy,a.1
  187.         mov1    cy,x.5
  188.         mov1    cy,pswh.3
  189.         mov1    cy,pswl.6
  190.         mov1    saddr.2,cy
  191.         mov1    sfr.4,cy
  192.         mov1    a.1,cy
  193.         mov1    x.5,cy
  194.         mov1    pswh.3,cy
  195.         mov1    pswl.6,cy
  196.  
  197.         irp     op1,and1,or1
  198.         op1     cy,saddr.2
  199.         op1     cy,/saddr.2
  200.         op1     cy,sfr.4
  201.         op1     cy,/sfr.4
  202.         op1     cy,a.1
  203.         op1     cy,/a.1
  204.         op1     cy,x.5
  205.         op1     cy,/x.5
  206.         op1     cy,pswh.3
  207.         op1     cy,/pswh.3
  208.         op1     cy,pswl.6
  209.         op1     cy,/pswl.6
  210.  
  211.         endm
  212.  
  213.         xor1    cy,saddr.2
  214.         xor1    cy,sfr.4
  215.         xor1    cy,a.1
  216.         xor1    cy,x.5
  217.         xor1    cy,pswh.3
  218.         xor1    cy,pswl.6
  219.  
  220.         irp     op1,set1,clr1,not1
  221.         op1     cy
  222.         op1     saddr.2
  223.         op1     sfr.4
  224.         op1     a.1
  225.         op1     x.5
  226.         op1     pswh.3
  227.         op1     pswl.6
  228.  
  229.         endm
  230.  
  231.         call    6666h
  232.         call    de
  233.         call    [de]
  234.         callf   900h
  235.         callt   [42h]
  236.         brk
  237.         ret
  238.         reti
  239.  
  240.         push    rp0,rp2,rp4
  241.         push    psw
  242.         pushu   ax,hl
  243.         pop     rp0,rp2,rp4
  244.         pop     psw
  245.         popu    ax,hl
  246.  
  247.         mov     sp,#8000h
  248.         movw    sp,#8000h
  249.         mov     sp,ax
  250.         movw    sp,ax
  251.         mov     ax,sp
  252.         movw    ax,sp
  253.         inc     sp
  254.         incw    sp
  255.         dec     sp
  256.         decw    sp
  257.  
  258.         br      !pc+10
  259.         br      8000h
  260.         br      bc
  261.         br      [hl]
  262.         br      pc+10
  263.         br      pc-150
  264.  
  265.         irp     op,bc,bl,bnc,bnl,bz,be,bnz,bne,bv,bpe,bnv,bpo,bn,bp
  266.         op      pc+5
  267.         endm
  268.         irp     op,bgt,bge,blt,ble,bh,bnh
  269.         op      pc+5
  270.         endm
  271.  
  272.         bt      saddr.1,pc+5
  273.         bt      sfr.2,pc+5
  274.         bt      a.3,pc+5
  275.         bt      x.4,pc+5
  276.         bt      pswh.5,pc+5
  277.         bt      pswl.6,pc+5
  278.  
  279.         bf      saddr.1,pc+5
  280.         bf      sfr.2,pc+5
  281.         bf      a.3,pc+5
  282.         bf      x.4,pc+5
  283.         bf      pswh.5,pc+5
  284.         bf      pswl.6,pc+5
  285.  
  286.         btclr   saddr.1,pc+5
  287.         btclr   sfr.2,pc+5
  288.         btclr   a.3,pc+5
  289.         btclr   x.4,pc+5
  290.         btclr   pswh.5,pc+5
  291.         btclr   pswl.6,pc+5
  292.  
  293.         bfset   saddr.1,pc+5
  294.         bfset   sfr.2,pc+5
  295.         bfset   a.3,pc+5
  296.         bfset   x.4,pc+5
  297.         bfset   pswh.5,pc+5
  298.         bfset   pswl.6,pc+5
  299.  
  300.         dbnz    b,pc+5
  301.         dbnz    c,pc+5
  302.         dbnz    saddr,pc+5
  303.  
  304.         brkcs   rb4
  305.         retcs   8001h
  306.  
  307.         irp     instr,movm,xchm,cmpme,cmpmne,cmpmc,cmpmnc
  308.         instr   [de+],a
  309.         instr   [de-],a
  310.         endm
  311.  
  312.         irp     instr,movbk,xchbk,cmpbke,cmpbke,cmpbkne,cmpbkc,cmpbknc
  313.         instr   [de+],[hl+]
  314.         instr   [de-],[hl-]
  315.         endm
  316.  
  317.         mov     stbc,#34h
  318.         mov     wdm,#0cbh
  319.  
  320.         swrs
  321.         sel     rb5
  322.         sel     rb7,alt
  323.         nop
  324.         ei
  325.         di
  326.  
  327. ; ----------------------------------------------------------------------
  328. ; alternative register bank: A/X and B/C map to R4..R7 instead of R0..R3
  329.  
  330.         assume  rss:1
  331.  
  332.         mov     a,[de+]         ; just like with RSS=0
  333.         mov     a,c             ; codes in R6 instead of R2
  334.         mov     r5,1234h        ; R5 is A with RSS=1
  335.  
  336.         mov     ax,#1           ; codes in RP2 instead of RP0
  337.         mov     rp2,saddr       ; only allowed with A which is RP2
  338.