Subversion Repositories pentevo

Rev

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

  1.         cpu     mb90500
  2.         page    0
  3.  
  4. ;----------------------------------------------------------------
  5. ; some preliminaries to keep the source code in acceptable size
  6. ; you didn't see this - you didn't see this - ignore it
  7.  
  8. #define R8MODES r0,r1,r2,r3,r4,r5,r6,r7
  9. #define R16MODES rw0,rw1,rw2,rw3,rw4,rw5,rw6,rw7
  10. #define R32MODES rl0,(rl0),rl1,(rl1),rl2,(rl2),rl3,(rl3)
  11. #define MEM1MODES @rw0,@rw1,@rw2,@rw3
  12. #define MEM1AMODES @rw0+,@rw1+,@rw2+,@rw3+
  13. #define MEM2MODES @rw0+10,@rw1-10,@rw2+20,@rw3-30,@rw4+40,@rw5-50,@rw6+60,@rw7-70,@rw0+1000,@rw1-1000,@rw2+2000,@rw3-3000,@rw0+rw7,@rw1+rw7,@pc+5,1234h
  14.  
  15. enum8_x macro memo
  16.         irp     var,R8MODES
  17.         memo    var
  18.         endm
  19.         irp     var,MEM1MODES,MEM1AMODES
  20.         memo    var
  21.         endm
  22.         irp     var,MEM2MODES
  23.         memo    var
  24.         endm
  25.         endm
  26.  
  27. enum16_x macro memo
  28.         irp     var,R16MODES
  29.         memo    var
  30.         endm
  31.         irp     var,MEM1MODES,MEM1AMODES
  32.         memo    var
  33.         endm
  34.         irp     var,MEM2MODES
  35.         memo    var
  36.         endm
  37.         endm
  38.  
  39. enum32_x macro memo
  40.         irp     var,R32MODES
  41.         memo    var
  42.         endm
  43.         irp     var,MEM1MODES,MEM1AMODES
  44.         memo    var
  45.         endm
  46.         irp     var,MEM2MODES
  47.         memo    var
  48.         endm
  49.         endm
  50.  
  51. enum8_px macro memo,par
  52.         irp     var,R8MODES
  53.         memo    par,var
  54.         endm
  55.         irp     var,MEM1MODES,MEM1AMODES
  56.         memo    par,var
  57.         endm
  58.         irp     var,MEM2MODES
  59.         memo    par,var
  60.         endm
  61.         endm
  62.  
  63. enum16_px macro memo,par
  64.         irp     var,R16MODES
  65.         memo    par,var
  66.         endm
  67.         irp     var,MEM1MODES,MEM1AMODES
  68.         memo    par,var
  69.         endm
  70.         irp     var,MEM2MODES
  71.         memo    par,var
  72.         endm
  73.         endm
  74.  
  75. enum32_px macro memo,par
  76.         irp     var,R32MODES
  77.         memo    par,var
  78.         endm
  79.         irp     var,MEM1MODES,MEM1AMODES
  80.         memo    par,var
  81.         endm
  82.         irp     var,MEM2MODES
  83.         memo    par,var
  84.         endm
  85.         endm
  86.  
  87. enum8_xp macro memo,par
  88.         irp     var,R8MODES
  89.         memo    var,par
  90.         endm
  91.         irp     var,MEM1MODES,MEM1AMODES
  92.         memo    var,par
  93.         endm
  94.         irp     var,MEM2MODES
  95.         memo    var,par
  96.         endm
  97.         endm
  98.  
  99. enum16_xp macro memo,par
  100.         irp     var,R16MODES
  101.         memo    var,par
  102.         endm
  103.         irp     var,MEM1MODES,MEM1AMODES
  104.         memo    var,par
  105.         endm
  106.         irp     var,MEM2MODES
  107.         memo    var,par
  108.         endm
  109.         endm
  110.  
  111. enum32_xp macro memo,par
  112.         irp     var,R32MODES
  113.         memo    var,par
  114.         endm
  115.         irp     var,MEM1MODES,MEM1AMODES
  116.         memo    var,par
  117.         endm
  118.         irp     var,MEM2MODES
  119.         memo    var,par
  120.         endm
  121.         endm
  122.  
  123. enum8_xpp macro memo,par1,par2
  124.         irp     var,R8MODES
  125.         memo    var,par1,par2
  126.         endm
  127.         irp     var,MEM1MODES
  128.         memo    var,par1,par2
  129.         endm
  130.         irp     var,MEM2MODES
  131.         memo    var,par1,par2
  132.         endm
  133.         endm
  134.  
  135. enum16_xpp macro memo,par1,par2
  136.         irp     var,R16MODES
  137.         memo    var,par1,par2
  138.         endm
  139.         irp     var,MEM1MODES
  140.         memo    var,par1,par2
  141.         endm
  142.         irp     var,MEM2MODES
  143.         memo    var,par1,par2
  144.         endm
  145.         endm
  146.  
  147. enumseg macro   memo
  148.         irp     var,pcb,dtb,adb,spb
  149.         memo    var
  150.         endm
  151.         endm
  152.  
  153. ;----------------------------------------------------------------
  154. ; let's go...
  155.  
  156.         add     a,#12h
  157.         add     a,123h
  158.         enum8_px add,a
  159.         enum8_xp add,a
  160.  
  161.         addc    a
  162.         enum8_px addc,a
  163.  
  164.         enum16_px addcw,a
  165.  
  166.         adddc   a
  167.  
  168.         addl    a,#12345678h
  169.         enum32_px addl,a
  170.  
  171.         addsp   #20
  172.         addsp   #-20
  173.         addsp   #200
  174.         addsp   #-200
  175.  
  176.         addw    a
  177.         addw    a,#1234h
  178.         enum16_px addw,a
  179.         enum16_xp addw,a
  180.  
  181.         and     a,#12h
  182.         and     a,123h          ; translates to 16 bit!
  183.         enum8_px and,a
  184.         enum8_px and,a
  185.         and     ccr,#12h
  186.  
  187.         enum32_px andl,a
  188.  
  189.         andw    a
  190.         andw    a,#1234h
  191.         enum16_px andw,a
  192.         enum16_xp andw,a
  193.  
  194.         asr     a,r0
  195.         asrl    a,r0
  196.         asrw    a
  197.         asrw    a,r0
  198.  
  199.         bbc     80h:4,$+2
  200.         bbc     180h:4,$+2
  201.         bbc     280h:4,$+2
  202.  
  203.         bbs     80h:4,$+2
  204.         bbs     180h:4,$+2
  205.         bbs     280h:4,$+2
  206.  
  207.         bz      $+2
  208.         beq     $+2
  209.         bnz     $+2
  210.         bne     $+2
  211.         bc      $+2
  212.         blo     $+2
  213.         bnc     $+2
  214.         bhs     $+2
  215.         bn      $+2
  216.         bp      $+2
  217.         bv      $+2
  218.         bnv     $+2
  219.         bt      $+2
  220.         bnt     $+2
  221.         blt     $+2
  222.         bge     $+2
  223.         ble     $+2
  224.         bgt     $+2
  225.         bls     $+2
  226.         bhi     $+2
  227.         bra     $+2
  228.  
  229.         call    0ff1234h
  230.         call    @rw0
  231.         call    @rw1
  232.         call    @rw2
  233.         call    @rw3
  234.         call    @rw4
  235.         call    @rw5
  236.         call    @rw6
  237.         call    @rw7
  238.         call    @@rw0
  239.         call    @@rw1
  240.         call    @@rw2
  241.         call    @@rw3
  242.         call    @@rw0+
  243.         call    @@rw1+
  244.         call    @@rw2+
  245.         call    @@rw3+
  246.         call    @@rw0+10
  247.         call    @@rw1-10
  248.         call    @@rw2+20
  249.         call    @@rw3-30
  250.         call    @@rw4+40
  251.         call    @@rw5-50
  252.         call    @@rw6+60
  253.         call    @@rw7-70
  254.         call    @@rw0+1000
  255.         call    @@rw1-1000
  256.         call    @@rw2+2000
  257.         call    @@rw3-3000
  258.         call    @@rw0+rw7
  259.         call    @@rw1+rw7
  260.         call    @@pc+5
  261.         call    @1234h
  262.  
  263.         callp   0123456h
  264.         callp   @rl0
  265.         callp   @(rl0)
  266.         callp   @rl1
  267.         callp   @(rl1)
  268.         callp   @rl2
  269.         callp   @(rl2)
  270.         callp   @rl3
  271.         callp   @(rl3)
  272.         callp   @@rw0
  273.         callp   @@rw1
  274.         callp   @@rw2
  275.         callp   @@rw3
  276.         callp   @@rw0+
  277.         callp   @@rw1+
  278.         callp   @@rw2+
  279.         callp   @@rw3+
  280.         callp   @@rw0+10
  281.         callp   @@rw1-10
  282.         callp   @@rw2+20
  283.         callp   @@rw3-30
  284.         callp   @@rw4+40
  285.         callp   @@rw5-50
  286.         callp   @@rw6+60
  287.         callp   @@rw7-70
  288.         callp   @@rw0+1000
  289.         callp   @@rw1-1000
  290.         callp   @@rw2+2000
  291.         callp   @@rw3-3000
  292.         callp   @@rw0+rw7
  293.         callp   @@rw1+rw7
  294.         callp   @@pc+5
  295.         callp   @1234h
  296.  
  297.         callv   #10
  298.  
  299.         cbne    a,#12,$
  300.         enum8_xpp cbne,#12,$
  301.  
  302.         clrb    80h:4
  303.         clrb    180h:4
  304.         clrb    280h:4
  305.  
  306.         cmp     a
  307.         cmp     a,#12h
  308.         enum8_px cmp,a
  309.  
  310.         cmpl    a,#12345678h
  311.         enum32_px cmpl,a
  312.  
  313.         cmpw    a
  314.         cmpw    a,#1234h
  315.         enum16_px cmpw,a
  316.  
  317.         cmr
  318.  
  319.         cwbne   a,#1234,$
  320.         enum16_xpp cwbne,#1234,$
  321.  
  322.         enum8_xp dbnz,$
  323.  
  324.         enum8_x dec
  325.  
  326.         enum32_x decl
  327.  
  328.         enum16_x decw
  329.  
  330.         div     a
  331.         enum8_px div,a
  332.  
  333.         enum16_px divw,a
  334.  
  335.         divu    a
  336.         enum8_px divu,a
  337.  
  338.         enum16_px divuw,a
  339.  
  340.         enum16_xp dwbnz,$
  341.  
  342.         ext
  343.         extw
  344.  
  345.         enum8_x inc
  346.  
  347.         enum32_x incl
  348.  
  349.         enum16_x incw
  350.  
  351.         enumseg fils
  352.         enumseg filsi
  353.         enumseg filsw
  354.         enumseg filswi
  355.  
  356.         int     0ff1234h
  357.         int     #11
  358.  
  359.         int9
  360.  
  361.         intp    123456h
  362.  
  363.         jctx    @a
  364.  
  365.         jmp     @a
  366.         jmp     0ff1234h
  367.         jmp     @rw0
  368.         jmp     @rw1
  369.         jmp     @rw2
  370.         jmp     @rw3
  371.         jmp     @rw4
  372.         jmp     @rw5
  373.         jmp     @rw6
  374.         jmp     @rw7
  375.         jmp     @@rw0
  376.         jmp     @@rw1
  377.         jmp     @@rw2
  378.         jmp     @@rw3
  379.         jmp     @@rw0+
  380.         jmp     @@rw1+
  381.         jmp     @@rw2+
  382.         jmp     @@rw3+
  383.         jmp     @@rw0+10
  384.         jmp     @@rw1-10
  385.         jmp     @@rw2+20
  386.         jmp     @@rw3-30
  387.         jmp     @@rw4+40
  388.         jmp     @@rw5-50
  389.         jmp     @@rw6+60
  390.         jmp     @@rw7-70
  391.         jmp     @@rw0+1000
  392.         jmp     @@rw1-1000
  393.         jmp     @@rw2+2000
  394.         jmp     @@rw3-3000
  395.         jmp     @@rw0+rw7
  396.         jmp     @@rw1+rw7
  397.         jmp     @@pc+5
  398.         jmp     @1234h
  399.  
  400.         jmpp    0123456h
  401.         jmpp    @rl0
  402.         jmpp    @(rl0)
  403.         jmpp    @rl1
  404.         jmpp    @(rl1)
  405.         jmpp    @rl2
  406.         jmpp    @(rl2)
  407.         jmpp    @rl3
  408.         jmpp    @(rl3)
  409.         jmpp    @@rw0
  410.         jmpp    @@rw1
  411.         jmpp    @@rw2
  412.         jmpp    @@rw3
  413.         jmpp    @@rw0+
  414.         jmpp    @@rw1+
  415.         jmpp    @@rw2+
  416.         jmpp    @@rw3+
  417.         jmpp    @@rw0+10
  418.         jmpp    @@rw1-10
  419.         jmpp    @@rw2+20
  420.         jmpp    @@rw3-30
  421.         jmpp    @@rw4+40
  422.         jmpp    @@rw5-50
  423.         jmpp    @@rw6+60
  424.         jmpp    @@rw7-70
  425.         jmpp    @@rw0+1000
  426.         jmpp    @@rw1-1000
  427.         jmpp    @@rw2+2000
  428.         jmpp    @@rw3-3000
  429.         jmpp    @@rw0+rw7
  430.         jmpp    @@rw1+rw7
  431.         jmpp    @@pc+5
  432.         jmpp    @1234h
  433.  
  434.         link    #10
  435.  
  436.         lsl     a,r0
  437.         lsll    a,r0
  438.         lslw    a
  439.         lslw    a,r0
  440.  
  441.         lsr     a,r0
  442.         lsrl    a,r0
  443.         lsrw    a
  444.         lsrw    a,r0
  445.  
  446.         mov     a,#123
  447.         mov     a,@a
  448.         mov     a,@rl0+10
  449.         mov     a,@rl1-20
  450.         mov     a,@rl2+30
  451.         mov     a,@rl3-40
  452.         mov     a,12h
  453.         mov     a,123h
  454.         mov     a,dtb
  455.         mov     a,adb
  456.         mov     a,ssb
  457.         mov     a,usb
  458.         mov     a,dpr
  459.         mov     a,pcb
  460.         enum8_px mov,a
  461.         mov     123h,a
  462.         mov     @rl0+10,a
  463.         mov     @rl1-20,a
  464.         mov     @rl2+30,a
  465.         mov     @rl3-40,a
  466.         mov     12h,a
  467.         mov     dtb,a
  468.         mov     adb,a
  469.         mov     ssb,a
  470.         mov     usb,a
  471.         mov     dpr,a
  472.         enum8_xp mov,a
  473.         mov     rp,#12
  474.         mov     ilm,#12
  475.         mov     123h,#12
  476.         mov     23h,#12
  477.         enum8_xp mov,#12
  478.         enum8_px mov,r2
  479.         enum8_xp mov,r2
  480.         mov     @a,t
  481.         mov     @al,ah
  482.  
  483.         movb    a,123h:4
  484.         movb    a,23h:4
  485.         movb    a,1234h:4
  486.         movb    123h:4,a
  487.         movb    23h:4,a
  488.         movb    1234h:4,a
  489.  
  490.         enum16_px movea,a
  491.         enum16_px movea,rw2
  492.  
  493.         movl    a,#12345678h
  494.         enum32_px movl,a
  495.         enum32_xp movl,a
  496.  
  497.         movn    a,#4
  498.  
  499.         irp     reg2,pcb,dtb,adb,spb
  500.          irp     reg1,pcb,dtb,adb,spb
  501.           movs    reg1,reg2
  502.           movsi   reg1,reg2
  503.           movsd   reg1,reg2
  504.           movsw   reg1,reg2
  505.           movswi  reg1,reg2
  506.           movswd  reg1,reg2
  507.          endm
  508.         endm
  509.  
  510.         movw    a,#1234h
  511.         movw    a,@a
  512.         movw    a,sp
  513.         movw    a,@rl0+10
  514.         movw    a,@rl1-20
  515.         movw    a,@rl2+30
  516.         movw    a,@rl3-40
  517.         movw    a,23h
  518.         movw    a,123h
  519.         enum16_px movw,a
  520.         movw    @rl0+10,a
  521.         movw    @rl1-20,a
  522.         movw    @rl2+30,a
  523.         movw    @rl3-40,a
  524.         movw    sp,a
  525.         movw    23h,a
  526.         movw    123h,a
  527.         enum16_xp movw,a
  528.         enum16_xp movw,#1234h
  529.         enum16_px movw,rw2
  530.         enum16_xp movw,rw2
  531.         movw    23h,#1234h
  532.         movw    @a,t
  533.         movw    @al,ah
  534.  
  535.         movx    a,#12h
  536.         movx    a,@a
  537.         movx    a,@rl0+10
  538.         movx    a,@rl1-20
  539.         movx    a,@rl2+30
  540.         movx    a,@rl3-40
  541.         movx    a,23h
  542.         movx    a,123h
  543.         enum8_px movx,a
  544.  
  545.         mul     a
  546.         enum8_px mul,a
  547.  
  548.         mulw    a
  549.         enum16_px mulw,a
  550.  
  551.         mulu    a
  552.         enum8_px mulu,a
  553.  
  554.         muluw   a
  555.         enum16_px muluw,a
  556.  
  557.         ncc
  558.  
  559.         neg     a
  560.         enum8_x neg
  561.  
  562.         negw    a
  563.         enum16_x negw
  564.  
  565.         nop
  566.  
  567.         not     a
  568.         enum8_x not
  569.  
  570.         notw    a
  571.         enum16_x notw
  572.  
  573.         nrml    a,r0
  574.  
  575.         or      a,#12h
  576.         or      a,123h          ; translates to 16 bit!
  577.         enum8_px or,a
  578.         enum8_xp or,a
  579.         or      ccr,#12h
  580.  
  581.         enum32_px orl,a
  582.  
  583.         orw     a
  584.         orw     a,#1234h
  585.         enum16_px orw,a
  586.         enum16_xp orw,a
  587.  
  588.         popw    a
  589.         popw    ah
  590.         popw    ps
  591.         popw    rw4
  592.         popw    rw4,rw6
  593.         popw    rw1,rw3-rw4
  594.         popw    rw6-rw2,rw4
  595.  
  596.         pushw   a
  597.         pushw   ah
  598.         pushw   ps
  599.         pushw   rw4
  600.         pushw   rw4,rw6
  601.         pushw   rw1,rw3-rw4
  602.         pushw   rw6-rw2,rw4
  603.  
  604.         ret
  605.         reti
  606.         retp
  607.  
  608.         rolc    a
  609.         enum8_x rolc
  610.  
  611.         rorc    a
  612.         enum8_x rorc
  613.  
  614.         sbbs    1234h:4,$
  615.  
  616.         enumseg sceqd
  617.         enumseg sceqi
  618.         enumseg scweqd
  619.         enumseg scweqi
  620.  
  621.         setb    80h:4
  622.         setb    180h:4
  623.         setb    280h:4
  624.  
  625.         sub     a,#12h
  626.         sub     a,123h
  627.         enum8_px sub,a
  628.         enum8_xp sub,a
  629.  
  630.         subc    a
  631.         enum8_px subc,a
  632.  
  633.         enum16_px subcw,a
  634.  
  635.         subdc   a
  636.  
  637.         subl    a,#12345678h
  638.         enum32_px subl,a
  639.  
  640.         subw    a
  641.         subw    a,#1234h
  642.         enum16_px subw,a
  643.         enum16_xp subw,a
  644.  
  645.         swap
  646.         swapw
  647.  
  648.         unlink
  649.  
  650.         wbtc    34h:7
  651.  
  652.         wbts    34h:7
  653.  
  654.         enum8_px xch,a
  655.         enum8_xp xch,a
  656.         enum8_px xch,r2
  657.         enum8_xp xch,r2
  658.  
  659.         enum16_px xchw,a
  660.         enum16_xp xchw,a
  661.         enum16_px xchw,rw2
  662.         enum16_xp xchw,rw2
  663.  
  664.         xor     a,#12h
  665.         xor     a,123h          ; translates to 16 bit!
  666.         enum8_px xor,a
  667.         enum8_xp xor,a
  668.  
  669.         enum8_px xorl,a
  670.  
  671.         xorw    a
  672.         xorw    a,#1234h
  673.         enum16_px xorw,a
  674.         enum16_xp xorw,a
  675.  
  676.         zext
  677.         zextw
  678.  
  679. ;-------------------------------------------------------------------------
  680. ; automatic extension
  681.  
  682.         mov     1234h,r4        ; normal
  683.         mov     123h,r4         ; extend dir->abs
  684.         mov     12h,r4          ; extend io->abs
  685.  
  686.         movw    1234h,rw4       ; normal
  687.         movw    123h,rw4        ; extend dir->abs
  688.         movw    12h,rw4         ; extend io->abs
  689.  
  690.         movw    1234h,#5678h    ; normal
  691.         movw    123h,#5678h     ; extend dir->abs
  692.         movw    12h,#5678h      ; normal, exception!
  693.  
  694. ;-------------------------------------------------------------------------
  695. ; check banking
  696.  
  697.         assume  pcb:0
  698.         assume  dtb:1
  699.         assume  adb:2
  700.         assume  usb:3
  701.         assume  ssb:4
  702.  
  703.         pcb
  704.         mov     a,02000h
  705.         mov     a,12000h
  706.         adb
  707.         mov     a,22000h
  708.         spb
  709.         mov     a,32000h
  710.         supmode on
  711.         spb
  712.         mov     a,42000h
  713.