Subversion Repositories pentevo

Rev

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

  1.         cpu     4004
  2.  
  3.         nop
  4.  
  5.         jcn     z, Next
  6.         jcn     4, Next
  7.         jcn     nz, Next
  8.         jcn     12, Next
  9.         jcn     c, Next
  10.         jcn     2, Next
  11.         jcn     nc, Next
  12.         jcn     10, Next
  13.         jcn     t, Next
  14.         jcn     1, Next
  15.         jcn     nt, Next
  16.         jcn     9, Next
  17.         jcm     z, Next
  18.         jcm     4, Next
  19.         jcm     nz, Next
  20.         jcm     12, Next
  21.         jcm     c, Next
  22.         jcm     2, Next
  23.         jcm     nc, Next
  24.         jcm     10, Next
  25.         jcm     t, Next
  26.         jcm     1, Next
  27.         jcm     nt, Next
  28.         jcm     9, Next
  29. Next:
  30.         fim     r0r1, 12h
  31.         fim     r0p, 12h
  32.         fim     r2r3, 23h
  33.         fim     r1p, 23h
  34.         fim     r4r5, 34h
  35.         fim     r2p, 34h
  36.         fim     r6r7, 45h
  37.         fim     r3p, 45h
  38.         fim     r8r9, 56h
  39.         fim     r4p, 56h
  40.         fim     rarb, 67h
  41.         fim     r5p, 67h
  42.         fim     r10r11, 67h
  43.         fim     r5p, 67h
  44.         fim     rcrd, 78h
  45.         fim     r6p, 78h
  46.         fim     r12r13, 78h
  47.         fim     r6p, 78h
  48.         fim     rerf, 89h
  49.         fim     r7p, 89h
  50.         fim     r14r15, 89h
  51.         fim     r7p, 89h
  52.  
  53.         ; some broken register names
  54.         ; note that this target supports register aliases,
  55.         ; and the assembler will assume a forward definition
  56.         ; of these names in pass 1.  Therefore, delay the
  57.         ; negative test to pass 2:
  58.  
  59.         if      mompass > 1
  60.         expect  1445
  61.         fim     rr,12h          ; both numbers missing
  62.         endexpect
  63.         expect  1445
  64.         fim     r1r3,12h        ; numbers not consecutive
  65.         endexpect
  66.         expect  1445
  67.         fim     r3r4,12h        ; invalid even/odd pairing
  68.         endexpect
  69.         expect  1445
  70.         fim     rr3,12h         ; first number missing
  71.         endexpect
  72.         expect  1445
  73.         fim     r2r,12h         ; second number missing
  74.         endexpect
  75.         expect  1445
  76.         fim     r16r17,12h      ; number out of range
  77.         endexpect
  78.         expect  1445
  79.         fim     r9p,12h         ; number out of range
  80.         endexpect
  81.         endif
  82.  
  83.         src     r0r1
  84.         src     r2r3
  85.         src     r4r5
  86.         src     r6r7
  87.         src     r8r9
  88.         src     rarb
  89.         src     rcrd
  90.         src     rerf
  91.  
  92.         fin     r0r1
  93.         fin     r2r3
  94.         fin     r4r5
  95.         fin     r6r7
  96.         fin     r8r9
  97.         fin     rarb
  98.         fin     rcrd
  99.         fin     rerf
  100.  
  101.         jin     r0r1
  102.         jin     r2r3
  103.         jin     r4r5
  104.         jin     r6r7
  105.         jin     r8r9
  106.         jin     rarb
  107.         jin     rcrd
  108.         jin     rerf
  109.  
  110.         jun     123h
  111.         jms     456h
  112.  
  113.         inc     r0
  114.         inc     r1
  115.         inc     r2
  116.         inc     r3
  117.         inc     r4
  118.         inc     r5
  119.         inc     r6
  120.         inc     r7
  121.         inc     r8
  122.         inc     r9
  123.         inc     ra
  124.         inc     rb
  125.         inc     rc
  126.         inc     rd
  127.         inc     re
  128.         inc     rf
  129.  
  130. loop:
  131.         isz     r0, loop
  132.         isz     r1, loop
  133.         isz     r2, loop
  134.         isz     r3, loop
  135.         isz     r4, loop
  136.         isz     r5, loop
  137.         isz     r6, loop
  138.         isz     r7, loop
  139.         isz     r8, loop
  140.         isz     r9, loop
  141.         isz     ra, loop
  142.         isz     rb, loop
  143.         isz     rc, loop
  144.         isz     rd, loop
  145.         isz     re, loop
  146.         isz     rf, loop
  147.  
  148.         add     a, r0
  149.         add     a, r1
  150.         add     a, r2
  151.         add     a, r3
  152.         add     a, r4
  153.         add     a, r5
  154.         add     a, r6
  155.         add     a, r7
  156.         add     a, r8
  157.         add     a, r9
  158.         add     a, ra
  159.         add     a, rb
  160.         add     a, rc
  161.         add     a, rd
  162.         add     a, re
  163.         add     a, rf
  164.  
  165.         sub     a, r0
  166.         sub     a, r1
  167.         sub     a, r2
  168.         sub     a, r3
  169.         sub     a, r4
  170.         sub     a, r5
  171.         sub     a, r6
  172.         sub     a, r7
  173.         sub     a, r8
  174.         sub     a, r9
  175.         sub     a, ra
  176.         sub     a, rb
  177.         sub     a, rc
  178.         sub     a, rd
  179.         sub     a, re
  180.         sub     a, rf
  181.  
  182.         ld      a, r0
  183.         ld      a, r1
  184.         ld      a, r2
  185.         ld      a, r3
  186.         ld      a, r4
  187.         ld      a, r5
  188.         ld      a, r6
  189.         ld      a, r7
  190.         ld      a, r8
  191.         ld      a, r9
  192.         ld      a, ra
  193.         ld      a, rb
  194.         ld      a, rc
  195.         ld      a, rd
  196.         ld      a, re
  197.         ld      a, rf
  198.  
  199.         xch     r0
  200.         xch     r1
  201.         xch     r2
  202.         xch     r3
  203.         xch     r4
  204.         xch     r5
  205.         xch     r6
  206.         xch     r7
  207.         xch     r8
  208.         xch     r9
  209.         xch     ra
  210.         xch     rb
  211.         xch     rc
  212.         xch     rd
  213.         xch     re
  214.         xch     rf
  215.  
  216.         bbl     1
  217.         bbl     3
  218.         bbl     0dh
  219.  
  220.         ldm     1
  221.         ldm     3
  222.         ldm     0dh
  223.  
  224.         wrm
  225.         wmp
  226.         wrr
  227.         wpm
  228.         wr0
  229.         wr1
  230.         wr2
  231.         wr3
  232.         sbm
  233.         rdm
  234.         rdr
  235.         adm
  236.         ad0
  237.         ad1
  238.         ad2
  239.         ad3
  240.         rd0
  241.         rd1
  242.         rd2
  243.         rd3
  244.  
  245.         clb
  246.         clc
  247.         iac
  248.         cmc
  249.         cma
  250.         ral
  251.         rar
  252.         tcc
  253.         dac
  254.         tcs
  255.         stc
  256.         daa
  257.         kbp
  258.         dcl
  259.  
  260. ; test register aliases
  261.  
  262. myreg4e         equ     r9
  263. myreg8e1        equ     r6p
  264. myreg8e2        equ     r12r13
  265.  
  266. myreg4r         reg     r9
  267. myreg4re        reg     myreg4e
  268. myreg8r1        reg     r6p
  269. myreg8re1       reg     myreg8e1
  270. myreg8r2        reg     r12r13
  271. myreg8re2       reg     myreg8e2
  272.  
  273.                 src     r12r13
  274.                 src     myreg8e1
  275.                 src     myreg8r1
  276.                 src     myreg8re1
  277.                 src     r6p
  278.                 src     myreg8e2
  279.                 src     myreg8r2
  280.                 src     myreg8re2
  281.  
  282.                 inc     r9
  283.                 inc     myreg4e
  284.                 inc     myreg4r
  285.                 inc     myreg4re
  286.                 inc     ra
  287.                 inc     r10
  288.  
  289.         data    1,2,3,4,5
  290.         data    "This is a test"
  291.