Subversion Repositories pentevo

Rev

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

  1. ;;; -*- asm -*-
  2. ;;;
  3.  
  4.         CPU     SC62015
  5.         ORG     0000H
  6.  
  7.         ;; a1 MV (Immediate)
  8.         MV      A,0
  9.         MV      BA,1024
  10.         MV      X,131072
  11.         MV      (00H),10
  12.         MVW     (BP+10H),1034
  13.         MVP     (PX-10H),131082
  14.  
  15.         ;; a2 MV (Inter-Register)
  16.         MV      B,A
  17.         MV      A,B
  18.         MV      BA,I
  19.         MV      X,Y
  20.  
  21.         ;; a3 MV (Internal RAM Direct / Indirect)
  22.         MV      IL,(BP+PX)
  23.         MV      I,(08H)
  24.         MV      U,(BP+20H)
  25.         MV      (PX-20H),A
  26.         MV      (BP+PX),BA
  27.         MV      (18H),S
  28.         MV      (BP+30H),(PY-30H)
  29.         MVW     (BP+PX),(20H)
  30.         MVP     (PX+40H),(BP+PY)
  31.         MVL     (28H),(30H)
  32.         MVLD    (BP-40H),(BP+50H)
  33.  
  34.         ;; a4 MV (Direct)
  35.         MV      IL,[12345H]
  36.         MV      I,[23456H]
  37.         MV      X,[34567H]
  38.         MV      [45678H],A
  39.         MV      [56789H],BA
  40.         MV      [6789AH],Y
  41.         MV      (38H),[789ABH]
  42.         MVW     (BP-50H),[89ABCH]
  43.         MVP     (PX+60H),[9ABCDH]
  44.         MVL     (BP+PX),[54321H]
  45.         MV      [65432H],(40H)
  46.         MVW     [76543H],(BP-60H)
  47.         MVP     [87654H],(PX+70H)
  48.         MVL     [98765H],(BP+PX)
  49.  
  50.         ;; a5 Register Indirect
  51.         MV      IL,[U]
  52.         MV      I,[S]
  53.         MV      X,[Y]
  54.         MV      [U],A
  55.         MV      [S],BA
  56.         MV      [X],Y
  57.         MV      (48H),[U]
  58.         MVW     (BP-70H),[S]
  59.         MVP     (PX-80H),[X]
  60.         MV      [Y],(BP+PX)
  61.         MVW     [U],(50H)
  62.         MVP     [S],(BP+0)
  63.  
  64.         ;; a6 MV (with Post Increment)
  65.         MV      IL,[X++]
  66.         MV      I,[Y++]
  67.         MV      U,[S++]
  68.         MV      [X++],A
  69.         MV      [Y++],BA
  70.         MV      [U++],X
  71.         MV      (PX+8),[S++]
  72.         MVW     (BP+PX),[X++]
  73.         MVP     (58H),[Y++]
  74.         MVL     (BP+16),[U++]
  75.         MV      [S++],(PX+24)
  76.         MVW     [X++],(BP+PX)
  77.         MVP     [Y++],(60H)
  78.         MVL     [U++],(BP+32)
  79.  
  80.         ;; a7 MV (with Pre Decrement)
  81.         MV      IL,[--S]
  82.         MV      I,[--X]
  83.         MV      Y,[--U]
  84.         MV      [--S],A
  85.         MV      [--X],BA
  86.         MV      [--Y],U
  87.         MV      (PX+40),[--S]
  88.         MVW     (BP+PX),[--X]
  89.         MVP     (68H),[--Y]
  90.         MVL     (BP+48),[--U]
  91.         MV      [--S],(PX+56)
  92.         MVW     [--X],(BP+PX)
  93.         MVP     [--Y],(70H)
  94.         MVL     [--U],(BP+64)
  95.  
  96.         ;; a8 MV (Register Base)
  97.         MV      IL,[S+1]
  98.         MV      I,[X-2]
  99.         MV      Y,[U+3]
  100.         MV      [S-4],A
  101.         MV      [X+5],BA
  102.         MV      [Y-6],U
  103.  
  104.         MV      (78H),[S+7]
  105.         MVW     (BP+64),[X-8]
  106.         MVP     (PX+72),[Y+9]
  107.         MVL     (BP+PX),[U-10]
  108.         MV      [S+11],(80H)
  109.         MVW     [X-12],(BP+80)
  110.         MVP     [Y+13],(PX+88)
  111.         MVL     [U-14],(BP+PX)
  112.  
  113.         ;; a9 MV (Internal RAM Indirect)
  114.         MV      IL,[(88H)]
  115.         MV      I,[(BP+96)]
  116.         MV      X,[(PX+104)]
  117.         MV      [(BP+PX)],A
  118.         MV      [(90H)],BA
  119.         MV      [(BP+112)],Y
  120.         MV      (PX+120),[(BP+PY)]
  121.         MVW     (98H),[(00H)]
  122.         MVP     (BP-128),[(PY-120)]
  123.         MVL     (BP+PX),[(04H)]
  124.         MV      [(BP-112)],(PY-104)
  125.         MVW     [(BP+PX)],(BP+PY)
  126.         MVP     [(08H)],(BP-96)
  127.         MVL     [(PX-88)],(BP+PY)
  128.  
  129.         ;; a10 MV (Internal RAM Base)
  130.         MV      A,[(0CH)+16]
  131.         MV      I,[(BP-80)-32]
  132.         MV      U,[(PX-72)+48]
  133.         MV      [(BP+PX)-64],IL
  134.         MV      [(10H)+80],BA
  135.         MV      [(BP-64)-96],X
  136.         MV      (PX-56),[(BP+PY)+112]
  137.         MVW     (14H),[(18H)-128]
  138.         MVP     (BP-48),[(BP-40)+144]
  139.         MVL     (PX-32),[(PY-24)-160]
  140.         MV      [(BP+PX)+176],(BP+PY)
  141.         MVW     [(1CH)-192],(BP-16)
  142.         MVP     [(PX-8)+208],(BP+PY)
  143.         MVL     [(20H)-224],(BP-0)
  144.  
  145.         ;; b1 EX instruction
  146.         EX      A,B
  147.         EX      BA,I
  148.         EX      X,Y
  149.         EX      (00H),(BP+10)
  150.         EXW     (PX-10),(BP+PY)
  151.         EXP     (BP+20),(PY-20)
  152.         EXL     (BP+PX),(10H)
  153.  
  154.         ;; b2 SWAP instruction
  155.         SWAP    A
  156.  
  157.         ;; c1 ADD instruction
  158.         ADD     A,20
  159.         ADD     (BP+30),30
  160.         ADD     (PX-30),A
  161.         ADD     A,(BP+PX)
  162.         ADD     A,IL
  163.         ADD     BA,A
  164.         ADD     I,BA
  165.         ADD     X,IL
  166.  
  167.         ;; c2 ADC
  168.         ADC     A,40
  169.         ADC     (20H),50
  170.         ADC     (BP+40),A
  171.         ADC     A,(PX-40)
  172.  
  173.         ;; c3 SUB
  174.         SUB     A,60
  175.         SUB     (BP+PX),70
  176.         SUB     (30H),A
  177.         SUB     A,(BP+50)
  178.         SUB     IL,A
  179.         SUB     I,IL
  180.         SUB     BA,I
  181.         SUB     Y,BA
  182.  
  183.         ;; c4 SBC
  184.         SBC     A,60
  185.         SBC     (PX-50),70
  186.         SBC     (BP+PX),A
  187.         SBC     A,(40H)
  188.  
  189.         ;;  c5 ADCL
  190.         ADCL    (BP+60),(PY-60)
  191.         ADCL    (BP+PX),A
  192.  
  193.         ;; c6 SBCL
  194.         SBCL    (BP+PX),(50H)
  195.         SBCL    (BP+70),A
  196.  
  197.         ;; c7 DADL
  198.         DADL    (PX-70),(BP+PY)
  199.         DADL    (60H),A
  200.  
  201.         ;; c8 DSBL
  202.         DSBL    (BP+80),(PY-80)
  203.         DSBL    (BP+PX),A
  204.  
  205.         ;; c9 PMDF
  206.         PMDF    (70H),80
  207.         PMDF    (BP+90),A
  208.  
  209.         ;; d1 AND
  210.         AND     A,90
  211.         AND     (PX-90),100
  212.         AND     [12345H],110
  213.         AND     (BP+PX),A
  214.         AND     A,(80H)
  215.         AND     (BP+100),(PY-100)
  216.  
  217.         ;; d2 OR
  218.         OR      A,120
  219.         OR      (BP+PX),130
  220.         OR      [23456H],140
  221.         OR      (90H),A
  222.         OR      A,(BP+110)
  223.         OR      (PX-110),(BP+PY)
  224.  
  225.         ;; d3 XOR
  226.         XOR     A,150
  227.         XOR     (08H),160
  228.         XOR     [34567H],170
  229.         XOR     (BP+120),A
  230.         XOR     A,(PX-120)
  231.         XOR     (BP+PX),(18H)
  232.  
  233.         ;; e1 INC
  234.         INC     A
  235.         INC     (BP+0)
  236.  
  237.         ;; e2 DEC
  238.         DEC     BA
  239.         DEC     (PX+8)
  240.  
  241.         ;; f1 ROR
  242.         ROR     A
  243.         ROR     (BP+PX)
  244.  
  245.         ;; f2 ROL
  246.         ROL     A
  247.         ROL     (18H)
  248.  
  249.         ;; f3 SHR
  250.         SHR     A
  251.         SHR     (BP-8)
  252.  
  253.         ;; f4 SHL
  254.         SHL     A
  255.         SHL     (PX+16)
  256.  
  257.         ;; f5 DSRL
  258.         DSRL    (BP+PX)
  259.         DSLL    (28H)
  260.  
  261.         ;; g1 CMP
  262.         CMP     A,180
  263.         CMP     (BP+24),190
  264.         CMP     [45678H],200
  265.         CMP     (PX+32),A
  266.         CMP     (BP+PX),(30H)
  267.         CMPW    (BP+40),(PY+48)
  268.         CMPW    (BP+PX),I
  269.         CMPP    (38H),(BP+56)
  270.         CMPP    (PX+64),U
  271.  
  272.         ;; g2 TEST
  273.         TEST    A,210
  274.         TEST    (BP+PX),220
  275.         TEST    [56789H],230
  276.         TEST    (40H),A
  277.  
  278.         ;; h1 JP/JPF (Direct)
  279.         JP      1234H
  280.         JPF     12345H
  281.  
  282.         ;; h2 JP (Indirect)
  283.         JP      (BP+72)
  284.         JP      S
  285.  
  286.         ;; h3 JR
  287. L1:     JR      L1
  288.  
  289.         ;; h4 JPcc
  290.         JPZ     2345H
  291.         JPNZ    3456H
  292.         JPC     4567H
  293.         JPNC    5678H
  294.  
  295.         ;; h5 JRcc
  296. L2:     JRZ     L2
  297.         JRNZ    L4
  298. L3:     JRC     L2
  299. L4:     JRNC    L4
  300.  
  301.         ;; i1 CALL/CALLF
  302.         CALL    6789H
  303.         CALLF   23456H
  304.  
  305.         ;; i2 RET
  306.         RET
  307.         RETF
  308.  
  309.         ;;  j1 PUSH
  310.         PUSHS   A
  311.         PUSHS   BA
  312.         PUSHS   X
  313.         PUSHS   F
  314.         PUSHS   IMR
  315.         PUSHU   IL
  316.         PUSHU   I
  317.         PUSHU   Y
  318.         PUSHU   F
  319.         PUSHU   IMR
  320.  
  321.         ;; j2 POP
  322.         POPS    IL
  323.         POPS    I
  324.         POPS    Y
  325.         POPS    F
  326.         POPS    IMR
  327.         POPU    A
  328.         POPU    BA
  329.         POPU    X
  330.         POPU    F
  331.         POPU    IMR
  332.  
  333.         ;; k1 NOP
  334.         NOP
  335.  
  336.         ;; k2 WAIT
  337.         WAIT
  338.  
  339.         ;; k3 SC/RC
  340.         SC
  341.         RC
  342.  
  343.         ;; k4 RETI
  344.         RETI
  345.  
  346.         ;; k5 HALT/OFF
  347.         HALT
  348.         OFF
  349.  
  350.         ;; k6 TCL/IR/RESET
  351.         TCL
  352.         IR
  353.         RESET
  354.  
  355.  
  356.         ;;
  357.         DB      100,50H
  358.         DB      'AB'
  359.         DW      1234H
  360.  
  361. ;-----------------------------------------------------
  362. ; standard Intel/MASM-style pseudo instructions
  363.  
  364.         include "../t_dx/t_dn.inc"
  365.         include "../t_dx/t_db.inc"
  366.         include "../t_dx/t_dw.inc"
  367.         include "../t_dx/t_dd.inc"
  368.         include "../t_dx/t_dq.inc"
  369.         include "../t_dx/t_dt.inc"
  370.         include "../t_dx/t_do.inc"
  371.