Subversion Repositories pentevo

Rev

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

  1.         page    0
  2.         cpu     8008
  3.  
  4.         z80syntax on
  5.  
  6. ;-----------------------------------
  7. ; CPU Control Group
  8.  
  9.         halt
  10.         hlt
  11.  
  12. ;-----------------------------------
  13. ; Input and Output Group
  14.  
  15.         inp     5
  16.         in      a,5
  17.  
  18.         out     13h
  19.         out     13h,a
  20.  
  21. ;-----------------------------------
  22. ; Jump Group
  23.  
  24.         ; in non-exclusive Z80 mode, JP with one
  25.         ; argument is interpreted as original 8008 mnemonic
  26.         ; (jump if parity even)
  27.  
  28.         jmp     1234h
  29.         jp      1234h           ; as below
  30.  
  31.         jfc     1234h
  32.         jp      nc,1234h
  33.         jfz     1234h
  34.         jp      nz,1234h
  35.         jfs     1234h
  36.         jp      p,1234h
  37.         jfp     1234h
  38.         jp      po,1234h
  39.         jc      1234h
  40.         jp      c,1234h
  41.         jz      1234h
  42.         jp      z,1234h
  43.         js      1234h
  44.         jp      m,1234h
  45.         jp      1234h
  46.         jp      pe,1234h
  47.  
  48. ;-----------------------------------
  49. ; Call and Return Group
  50.  
  51.         ; in non-exclusive Z80 mode, CP with one
  52.         ; argument is interpreted as original 8008 mnemonic
  53.         ; (call if parity even)
  54.  
  55.         cal     1234h
  56.         call    1234h
  57.  
  58.         cfc     1234h
  59.         call    nc,1234h
  60.         cfz     1234h
  61.         call    nz,1234h
  62.         cfs     1234h
  63.         call    p,1234h
  64.         cfp     1234h
  65.         call    po,1234h
  66.         cc      1234h
  67.         call    c,1234h
  68.         cz      1234h
  69.         call    z,1234h
  70.         cs      1234h
  71.         call    m,1234h
  72.         cp      1234h
  73.         call    pe,1234h
  74.  
  75.         ret
  76.  
  77.         rfc
  78.         ret     nc
  79.         rfz
  80.         ret     nz
  81.         rfs
  82.         ret     p
  83.         rfp
  84.         ret     po
  85.         rc
  86.         ret     c
  87.         rz
  88.         ret     z
  89.         rs
  90.         ret     m
  91.         rp
  92.         ret     pe
  93.  
  94.         rst     38h
  95.  
  96. ;-----------------------------------
  97. ; Load Group
  98.  
  99.         laa
  100.         ld      a,a
  101.         lab
  102.         ld      a,b
  103.         lac
  104.         ld      a,c
  105.         lad
  106.         ld      a,d
  107.         lae
  108.         ld      a,e
  109.         lah
  110.         ld      a,h
  111.         lal
  112.         ld      a,l
  113.         lba
  114.         ld      b,a
  115.         lbb
  116.         ld      b,b
  117.         lbc
  118.         ld      b,c
  119.         lbd
  120.         ld      b,d
  121.         lbe
  122.         ld      b,e
  123.         lbh
  124.         ld      b,h
  125.         lbl
  126.         ld      b,l
  127.         lca
  128.         ld      c,a
  129.         lcb
  130.         ld      c,b
  131.         lcc
  132.         ld      c,c
  133.         lcd
  134.         ld      c,d
  135.         lce
  136.         ld      c,e
  137.         lch
  138.         ld      c,h
  139.         lcl
  140.         ld      c,l
  141.         lda
  142.         ld      d,a
  143.         ldb
  144.         ld      d,b
  145.         ldc
  146.         ld      d,c
  147.         ldd
  148.         ld      d,d
  149.         lde
  150.         ld      d,e
  151.         ldh
  152.         ld      d,h
  153.         ldl
  154.         ld      d,l
  155.         lea
  156.         ld      e,a
  157.         leb
  158.         ld      e,b
  159.         lec
  160.         ld      e,c
  161.         led
  162.         ld      e,d
  163.         lee
  164.         ld      e,e
  165.         leh
  166.         ld      e,h
  167.         lel
  168.         ld      e,l
  169.         lha
  170.         ld      h,a
  171.         lhb
  172.         ld      h,b
  173.         lhc
  174.         ld      h,c
  175.         lhd
  176.         ld      h,d
  177.         lhe
  178.         ld      h,e
  179.         lhh
  180.         ld      h,h
  181.         lhl
  182.         ld      h,l
  183.         lla
  184.         ld      l,a
  185.         llb
  186.         ld      l,b
  187.         llc
  188.         ld      l,c
  189.         lld
  190.         ld      l,d
  191.         lle
  192.         ld      l,e
  193.         llh
  194.         ld      l,h
  195.         lll
  196.         ld      l,l
  197.  
  198.         lam
  199.         ld      a,(hl)
  200.         lbm
  201.         ld      b,(hl)
  202.         lcm
  203.         ld      c,(hl)
  204.         ldm
  205.         ld      d,(hl)
  206.         lem
  207.         ld      e,(hl)
  208.         lhm
  209.         ld      h,(hl)
  210.         llm
  211.         ld      l,(hl)
  212.  
  213.         lma
  214.         ld      (hl),a
  215.         lmb
  216.         ld      (hl),b
  217.         lmc
  218.         ld      (hl),c
  219.         lmd
  220.         ld      (hl),d
  221.         lme
  222.         ld      (hl),e
  223.         lmh
  224.         ld      (hl),h
  225.         lml
  226.         ld      (hl),l
  227.  
  228.         lai     55h
  229.         ld      a,55h
  230.         lbi     55h
  231.         ld      b,55h
  232.         lci     55h
  233.         ld      c,55h
  234.         ldi     55h
  235.         ld      d,55h
  236.         lei     55h
  237.         ld      e,55h
  238.         lhi     55h
  239.         ld      h,55h
  240.         lli     55h
  241.         ld      l,55h
  242.  
  243.         lmi     55h
  244.         ld      (hl),55h
  245.  
  246. ;-----------------------------------
  247. ; Arithmetic Group
  248.  
  249.         ada
  250.         add     a,a
  251.         adb
  252.         add     a,b
  253.         adc
  254.         add     a,c
  255.         add
  256.         add     a,d
  257.         ade
  258.         add     a,e
  259.         adh
  260.         add     a,h
  261.         adl
  262.         add     a,l
  263.         adm
  264.         add     a,(hl)
  265.         adi     55h
  266.         add     a,55h
  267.  
  268.         aca
  269.         adc     a,a
  270.         acb
  271.         adc     a,b
  272.         acc
  273.         adc     a,c
  274.         acd
  275.         adc     a,d
  276.         ace
  277.         adc     a,e
  278.         ach
  279.         adc     a,h
  280.         acl
  281.         adc     a,l
  282.         acm
  283.         adc     a,(hl)
  284.         aci     55h
  285.         adc     a,55h
  286.  
  287.         sua
  288.         sub     a,a
  289.         sub
  290.         sub     a,b
  291.         suc
  292.         sub     a,c
  293.         sud
  294.         sub     a,d
  295.         sue
  296.         sub     a,e
  297.         suh
  298.         sub     a,h
  299.         sul
  300.         sub     a,l
  301.         sum
  302.         sub     a,(hl)
  303.         sui     55h
  304.         sub     a,55h
  305.  
  306.         sba
  307.         sbc     a,a
  308.         sbb
  309.         sbc     a,b
  310.         sbc
  311.         sbc     a,c
  312.         sbd
  313.         sbc     a,d
  314.         sbe
  315.         sbc     a,e
  316.         sbh
  317.         sbc     a,h
  318.         sbl
  319.         sbc     a,l
  320.         sbm
  321.         sbc     a,(hl)
  322.         sbi     55h
  323.         sbc     a,55h
  324.  
  325.         nda
  326.         and     a
  327.         ndb
  328.         and     b
  329.         ndc
  330.         and     c
  331.         ndd
  332.         and     d
  333.         nde
  334.         and     e
  335.         ndh
  336.         and     h
  337.         ndl
  338.         and     l
  339.         ndm
  340.         and     (hl)
  341.         ndi     55h
  342.         and     55h
  343.  
  344.         xra
  345.         xor     a
  346.         xrb
  347.         xor     b
  348.         xrc
  349.         xor     c
  350.         xrd
  351.         xor     d
  352.         xre
  353.         xor     e
  354.         xrh
  355.         xor     h
  356.         xrl
  357.         xor     l
  358.         xrm
  359.         xor     (hl)
  360.         xri     55h
  361.         xor     55h
  362.  
  363.         ora
  364.         or      a
  365.         orb
  366.         or      b
  367.         orc
  368.         or      c
  369.         ord
  370.         or      d
  371.         ore
  372.         or      e
  373.         orh
  374.         or      h
  375.         orl
  376.         or      l
  377.         orm
  378.         or      (hl)
  379.         ori     55h
  380.         or      55h
  381.  
  382.         ; in non-exclusive Z80 syntax, CP with one
  383.         ; argument is call-if-parity-even
  384.  
  385.         cpa
  386.         if      mompass>1
  387.         expect  1010
  388.         endif
  389.         cp      a
  390.         if      mompass>1
  391.         endexpect
  392.         endif
  393.         cpb
  394.         if      mompass>1
  395.         expect  1010
  396.         endif
  397.         cp      b
  398.         if      mompass>1
  399.         endexpect
  400.         endif
  401.         cpc
  402.         if      mompass>1
  403.         expect  1010
  404.         endif
  405.         cp      c
  406.         if      mompass>1
  407.         endexpect
  408.         endif
  409.         cpd
  410.         if      mompass>1
  411.         expect  1010
  412.         endif
  413.         cp      d
  414.         if      mompass>1
  415.         endexpect
  416.         endif
  417.         cpe
  418.         if      mompass>1
  419.         expect  1010
  420.         endif
  421.         cp      e
  422.         if      mompass>1
  423.         endexpect
  424.         endif
  425.         cph
  426.         if      mompass>1
  427.         expect  1010
  428.         endif
  429.         cp      h
  430.         if      mompass>1
  431.         endexpect
  432.         endif
  433.         cpl
  434.         if      mompass>1
  435.         expect  1010
  436.         endif
  437.         cp      l
  438.         if      mompass>1
  439.         endexpect
  440.         endif
  441.         cpm
  442.         if      mompass>1
  443.         expect  1010
  444.         endif
  445.         cp      (hl)
  446.         if      mompass>1
  447.         endexpect
  448.         endif
  449.         cpi     55h
  450.         cp      55h             ; -> call if parity even in non-exclusive mode
  451.  
  452.         inb
  453.         inc     b
  454.         inc
  455.         inc     c
  456.         ind
  457.         inc     d
  458.         ine
  459.         inc     e
  460.         inh
  461.         inc     h
  462.         inl
  463.         inc     l
  464.  
  465.         dcb
  466.         dec     b
  467.         dcc
  468.         dec     c
  469.         dcd
  470.         dec     d
  471.         dce
  472.         dec     e
  473.         dch
  474.         dec     h
  475.         dcl
  476.         dec     l
  477.  
  478. ;-----------------------------------
  479. ; Rotate Group
  480.  
  481.         rlc
  482.         rlca
  483.         rrc
  484.         rrca
  485.         ral
  486.         rla
  487.         rar
  488.         rra
  489.  
  490. ;===================================
  491. ; we repeat only the instructions different in new 8008 syntax
  492.  
  493.         cpu     8008new
  494.  
  495.         z80syntax on
  496.  
  497. ;-----------------------------------
  498. ; Input and Output Group
  499.  
  500.         in      5
  501.         in      a,5
  502.  
  503. ;-----------------------------------
  504. ; Jump Group
  505.  
  506.         ; in non-exclusive Z80 mode, JP with one
  507.         ; argument is interpreted as original 8008
  508.         ; mnemonic (jump if positive)
  509.  
  510.         jmp     1234h
  511.         jp      1234h
  512.  
  513.         jnc     1234h
  514.         jp      nc,1234h
  515.         jnz     1234h
  516.         jp      nz,1234h
  517.         jp      1234h
  518.         jp      p,1234h
  519.         jpo     1234h
  520.         jp      po,1234h
  521.         jc      1234h
  522.         jp      c,1234h
  523.         jz      1234h
  524.         jp      z,1234h
  525.         jm      1234h
  526.         jp      m,1234h
  527.         jpe     1234h
  528.         jp      pe,1234h
  529.  
  530. ;-----------------------------------
  531. ; Call and Return Group
  532.  
  533.         call    1234h
  534.  
  535.         cnc     1234h
  536.         call    nc,1234h
  537.         cnz     1234h
  538.         call    nz,1234h
  539.         cp      1234h
  540.         call    p,1234h
  541.         cpo     1234h
  542.         call    po,1234h
  543.         cc      1234h
  544.         call    c,1234h
  545.         cz      1234h
  546.         call    z,1234h
  547.         cm      1234h
  548.         call    m,1234h
  549.         cpe     1234h
  550.         call    pe,1234h
  551.  
  552.         ret
  553.  
  554.         rnc
  555.         ret     nc
  556.         rnz
  557.         ret     nz
  558.         rp
  559.         ret     p
  560.         rpo
  561.         ret     po
  562.         rc
  563.         ret     c
  564.         rz
  565.         ret     z
  566.         rm
  567.         ret     m
  568.         rpe
  569.         ret     pe
  570.  
  571.         rst     38h
  572.  
  573. ;-----------------------------------
  574. ; Load Group
  575.  
  576.         mov     a,a
  577.         ld      a,a
  578.         mov     a,b
  579.         ld      a,b
  580.         mov     a,c
  581.         ld      a,c
  582.         mov     a,d
  583.         ld      a,d
  584.         mov     a,e
  585.         ld      a,e
  586.         mov     a,h
  587.         ld      a,h
  588.         mov     a,l
  589.         ld      a,l
  590.         mov     b,a
  591.         ld      b,a
  592.         mov     b,b
  593.         ld      b,b
  594.         mov     b,c
  595.         ld      b,c
  596.         mov     b,d
  597.         ld      b,d
  598.         mov     b,e
  599.         ld      b,e
  600.         mov     b,h
  601.         ld      b,h
  602.         mov     b,l
  603.         ld      b,l
  604.         mov     c,a
  605.         ld      c,a
  606.         mov     c,b
  607.         ld      c,b
  608.         mov     c,c
  609.         ld      c,c
  610.         mov     c,d
  611.         ld      c,d
  612.         mov     c,e
  613.         ld      c,e
  614.         mov     c,h
  615.         ld      c,h
  616.         mov     c,l
  617.         ld      c,l
  618.         mov     d,a
  619.         ld      d,a
  620.         mov     d,b
  621.         ld      d,b
  622.         mov     d,c
  623.         ld      d,c
  624.         mov     d,d
  625.         ld      d,d
  626.         mov     d,e
  627.         ld      d,e
  628.         mov     d,h
  629.         ld      d,h
  630.         mov     d,l
  631.         ld      d,l
  632.         mov     e,a
  633.         ld      e,a
  634.         mov     e,b
  635.         ld      e,b
  636.         mov     e,c
  637.         ld      e,c
  638.         mov     e,d
  639.         ld      e,d
  640.         mov     e,e
  641.         ld      e,e
  642.         mov     e,h
  643.         ld      e,h
  644.         mov     e,l
  645.         ld      e,l
  646.         mov     h,a
  647.         ld      h,a
  648.         mov     h,b
  649.         ld      h,b
  650.         mov     h,c
  651.         ld      h,c
  652.         mov     h,d
  653.         ld      h,d
  654.         mov     h,e
  655.         ld      h,e
  656.         mov     h,h
  657.         ld      h,h
  658.         mov     h,l
  659.         ld      h,l
  660.         mov     l,a
  661.         ld      l,a
  662.         mov     l,b
  663.         ld      l,b
  664.         mov     l,c
  665.         ld      l,c
  666.         mov     l,d
  667.         ld      l,d
  668.         mov     l,e
  669.         ld      l,e
  670.         mov     l,h
  671.         ld      l,h
  672.         mov     l,l
  673.         ld      l,l
  674.  
  675.         mov     a,m
  676.         ld      a,(hl)
  677.         mov     b,m
  678.         ld      b,(hl)
  679.         mov     c,m
  680.         ld      c,(hl)
  681.         mov     d,m
  682.         ld      d,(hl)
  683.         mov     e,m
  684.         ld      e,(hl)
  685.         mov     h,m
  686.         ld      h,(hl)
  687.         mov     l,m
  688.         ld      l,(hl)
  689.  
  690.         mov     m,a
  691.         ld      (hl),a
  692.         mov     m,b
  693.         ld      (hl),b
  694.         mov     m,c
  695.         ld      (hl),c
  696.         mov     m,d
  697.         ld      (hl),d
  698.         mov     m,e
  699.         ld      (hl),e
  700.         mov     m,h
  701.         ld      (hl),h
  702.         mov     m,l
  703.         ld      (hl),l
  704.  
  705.         mvi     a,55h
  706.         ld      a,55h
  707.         mvi     b,55h
  708.         ld      b,55h
  709.         mvi     c,55h
  710.         ld      c,55h
  711.         mvi     d,55h
  712.         ld      d,55h
  713.         mvi     e,55h
  714.         ld      e,55h
  715.         mvi     h,55h
  716.         ld      h,55h
  717.         mvi     l,55h
  718.         ld      l,55h
  719.  
  720.         mvi     m,55h
  721.         ld      (hl),55h
  722.  
  723.         lxi     b,1234h         ; convenience built-in macro:
  724.         ld      bc,1234h
  725.         lxi     d,1234h         ; LXI is assembled as 2 x MVI
  726.         ld      de,1234h
  727.         lxi     h,1234h
  728.         ld      hl,1234h
  729.  
  730. ;-----------------------------------
  731. ; Arithmetic Group
  732.  
  733.         add     a
  734.         add     a,a
  735.         add     b
  736.         add     a,b
  737.         add     c
  738.         add     a,c
  739.         add     d
  740.         add     a,d
  741.         add     e
  742.         add     a,e
  743.         add     h
  744.         add     a,h
  745.         add     l
  746.         add     a,l
  747.         add     m
  748.         add     a,(hl)
  749.         adi     55h
  750.         add     a,55h
  751.  
  752.         adc     a
  753.         adc     a,a
  754.         adc     b
  755.         adc     a,b
  756.         adc     c
  757.         adc     a,c
  758.         adc     d
  759.         adc     a,d
  760.         adc     e
  761.         adc     a,e
  762.         adc     h
  763.         adc     a,h
  764.         adc     l
  765.         adc     a,l
  766.         adc     m
  767.         adc     a,(hl)
  768.         aci     55h
  769.         adc     a,55h
  770.  
  771.         ; note that A as destination is optional in Z80 syntax,
  772.         ; since Z80 cannot use anything else as dest for SUB.
  773.         ; However, M as source or SUI remains unallowed in
  774.         ; pure Z80 mode.  The 'unknown symbol' error for M will
  775.         ; not occur in pass 1:
  776.  
  777.         sub     a
  778.         sub     a,a
  779.         sub     b
  780.         sub     a,b
  781.         sub     c
  782.         sub     a,c
  783.         sub     d
  784.         sub     a,d
  785.         sub     e
  786.         sub     a,e
  787.         sub     h
  788.         sub     a,h
  789.         sub     l
  790.         sub     a,l
  791.         sub     m
  792.         sub     (hl)
  793.         sub     a,(hl)
  794.         sui     55h
  795.         sub     a,55h
  796.  
  797.         sbb     a
  798.         sbc     a,a
  799.         sbb     b
  800.         sbc     a,b
  801.         sbb     c
  802.         sbc     a,c
  803.         sbb     d
  804.         sbc     a,d
  805.         sbb     e
  806.         sbc     a,e
  807.         sbb     h
  808.         sbc     a,h
  809.         sbb     l
  810.         sbc     a,l
  811.         sbb     m
  812.         sbc     a,(hl)
  813.         sbi     55h
  814.         sbc     a,55h
  815.  
  816.         ana     a
  817.         and     a,a
  818.         ana     b
  819.         and     a,b
  820.         ana     c
  821.         and     a,c
  822.         ana     d
  823.         and     a,d
  824.         ana     e
  825.         and     a,e
  826.         ana     h
  827.         and     a,h
  828.         ana     l
  829.         and     a,l
  830.         ana     m
  831.         and     a,(hl)
  832.         ani     55h
  833.         and     a,55h
  834.  
  835.         xra     a
  836.         xor     a,a
  837.         xra     b
  838.         xor     a,b
  839.         xra     c
  840.         xor     a,c
  841.         xra     d
  842.         xor     a,d
  843.         xra     e
  844.         xor     a,e
  845.         xra     h
  846.         xor     a,h
  847.         xra     l
  848.         xor     a,l
  849.         xra     m
  850.         xor     a,(hl)
  851.         xri     55h
  852.         xor     a,55h
  853.  
  854.         ora     a
  855.         or      a,a
  856.         ora     b
  857.         or      a,b
  858.         ora     c
  859.         or      a,c
  860.         ora     d
  861.         or      a,d
  862.         ora     e
  863.         or      a,e
  864.         ora     h
  865.         or      a,h
  866.         ora     l
  867.         or      a,l
  868.         ora     m
  869.         or      a,(hl)
  870.         ori     55h
  871.         or      a,55h
  872.  
  873.         cmp     a
  874.         cp      a,a
  875.         cmp     b
  876.         cp      a,b
  877.         cmp     c
  878.         cp      a,c
  879.         cmp     d
  880.         cp      a,d
  881.         cmp     e
  882.         cp      a,e
  883.         cmp     h
  884.         cp      a,h
  885.         cmp     l
  886.         cp      a,l
  887.         cmp     m
  888.         cp      a,(hl)
  889.         cpi     55h
  890.         cp      a,55h
  891.  
  892.         inr     b
  893.         inc     b
  894.         inr     c
  895.         inc     c
  896.         inr     d
  897.         inc     d
  898.         inr     e
  899.         inc     e
  900.         inr     h
  901.         inc     h
  902.         inr     l
  903.         inc     l
  904.  
  905.         dcr     b
  906.         dec     b
  907.         dcr     c
  908.         dec     c
  909.         dcr     d
  910.         dec     d
  911.         dcr     e
  912.         dec     e
  913.         dcr     h
  914.         dec     h
  915.         dcr     l
  916.         dec     l
  917.