Advertisement
glokyfull

test de temps machine d'instructions

Jan 1st, 2018
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. ;
  3. ;
  4. ; test de temps machine
  5. ;
  6. ;
  7. ;
  8.    
  9.     rept 2
  10.     nop
  11.     endr
  12.  
  13.  
  14.     pea 0.w
  15.     move.w #$20,-(sp)
  16.     trap #1
  17.     addq.l #6,sp
  18.    
  19.     move.l $44e.w,a0
  20.     moveq #0,d0
  21.     move.w #3999,d1
  22. cls move.l D0,(a0)+
  23.     dbf d1,cls
  24.        
  25. main
  26.     lea reg,a6
  27.     movem.l (a6)+,d0-d7/a0-a5
  28.  
  29.     jsr wvbl
  30.     ;move.w #$2700,sr   ; a ne metre que si sur que
  31.             ; les instruction insere ne font pas planter
  32.             ; la machine
  33.    
  34. .wait   move.b $ffff8209,d0
  35.     beq.s .wait
  36.     not.b d0
  37.     lsr.b d0,d0
  38.  
  39.    
  40.     move.w #80,d0
  41.    
  42. .bcl:
  43.     not.w $ffff8240.w
  44.     not.w $ffff8240.w
  45.     move.w d0,-(sp)
  46.     jsr nop128
  47.     moveq #0,d0
  48. ;; ************************************************
  49. ;;  ici on insere les instruction
  50.  
  51.        
  52.  
  53. ;; ************************************************
  54.    
  55.     move.w (sp)+,d0
  56.     dbra.w d0,.bcl
  57.     jsr affiche
  58.    
  59.    
  60.     move.b $fffffc02.w,d0
  61.    
  62.     move.b d0,d5
  63.     *and.b #$7F,d0
  64.     cmp.b #$4d,d0   ; touche - du clavier numerique
  65.     beq.s moins
  66.     cmp.b #$4b,d0   ; touche + du clavier numerique
  67.     beq.s plus
  68.     move.b d5,d0
  69.     cmp.b #$b9,d0
  70.     bne main
  71.     move.w #$2300,sr
  72.  
  73.     jmp fin
  74. .dummyrout:
  75.     dc.l 0
  76.     ;   jmp .etiquette
  77. moins   move.w nbNop,d0
  78.     beq.s .maxMoins
  79.     subq.w #1,d0
  80.     move.w d0,nbNop
  81.  
  82.     jsr subEtat
  83. .maxMoins
  84.     jsr flush_key_cd
  85.     jmp main
  86.    
  87. plus    move.w nbNop,d0
  88.     cmp.w #128-34-10+5,d0
  89.     bpl.s .1
  90.    
  91.    
  92.     addq.w #1,d0
  93.     move.w d0,nbNop
  94.     jsr addEtat
  95.     jsr flush_key_cb
  96. .1  jmp main
  97.  
  98. fin
  99.     clr.w -(sp)
  100.     trap #1
  101.  
  102. flush_key_cd:
  103.     move.l $466.w,d1        ; compteur vvbl
  104. .flush  move.l $466.w,d2
  105.     move.b $fffffc02.w,d0
  106.     move.l d2,d3
  107.     sub.l d1,d3
  108.     cmp.w #16,d3            ; 6 vbl deja ?
  109.     beq.s .fin
  110.      
  111.     cmp.b #$cd,d0
  112.     bne.s .flush
  113. .fin    rts
  114.  
  115. flush_key_cb:
  116.     move.l $466.w,d1        ; compteur vvbl
  117. .flush  move.l $466.w,d2
  118.     move.b $fffffc02.w,d0
  119.     move.l d2,d3
  120.     sub.l d1,d3
  121.     cmp.w #16,d3            ; 6 vbl deja ?
  122.     beq.s .fin
  123.     *move.b $fffffc02.w,d0
  124.     cmp.b #$cb,d0
  125.     bne.s flush_key_cb
  126. .fin    rts
  127.    
  128.  
  129. nop128
  130.    
  131.     move.w nbNop,d1
  132.     lsl #1,d1
  133.     lea ptr,a0
  134.     jmp (a0,d1.w)
  135. ptr
  136.     rept 128-33-10+5
  137.     nop
  138.     endr
  139.     rts
  140.    
  141.    
  142.    
  143.    
  144.     rts
  145. nbNop   dc.w 0
  146. etat    dc.b 0,0,0,0    ; = 10
  147.    
  148. wvbl:   move.w $468.w,d0
  149. .loop   move.w $468.w,d1
  150.     cmp.w d0,d1
  151.     beq.s .loop
  152.     rts
  153.    
  154. affiche
  155.  
  156.     lea chiffre,a0
  157.     lea etat,a1
  158.     move.l $44e.w,a2
  159.     lea 180*160+16(a2),a2
  160.    
  161.     move.w #3,d0
  162. .aff   
  163.     move.b (a1)+,d2
  164.     lsl #3,d2   ; *8 octet
  165.     lea (a0,d2),a3  ; a3 = buffer chiffre bitmap
  166.    
  167.     move.b (a3)+,(a2)
  168.     move.b (a3)+,160(a2)
  169.     move.b (a3)+,320(a2)
  170.     move.b (a3)+,480(a2)
  171.     move.b (a3)+,640(a2)
  172.     move.b (a3)+,800(a2)
  173.     move.b (a3)+,960(a2)
  174.     move.b (a3)+,1120(a2)
  175.    
  176.     addq.l #8,a2
  177.     dbra.w d0,.aff
  178.    
  179.     rts
  180.  
  181. subEtat
  182.     move.w #3,d1
  183.     lea etat+3,a1
  184.            
  185. .sub    move.b (a1),d0
  186.     ext.w d0
  187.     subq.w #1,d0
  188.     bmi.s .retenu
  189.     move.b d0,(a1)
  190.     rts
  191. .retenu
  192.     move.b #9,(a1)
  193.     subq.l #1,a1
  194.     dbra.w d1,.sub
  195.     rts
  196.  
  197. addEtat
  198.     move.w #3,d1
  199.     lea etat+3,a1
  200. .add    move.b (a1),d0
  201.     ext.w d0
  202.     addq.l #1,d0
  203.     cmp.b #10,d0
  204.     beq.s .retenu
  205.     move.b d0,(a1)
  206.     rts
  207. .retenu
  208.     move.b #0,(a1)
  209.     subq.l #1,a1
  210.     dbra.w d1,.add
  211.  
  212.     rts
  213.    
  214.    
  215.     DATA
  216. reg dc.l 0
  217.     dc.l 0
  218.     dc.l 1
  219.     dc.l 0
  220.     dcb.l 4,0
  221.     dc.l buffer
  222.     dc.l buffer
  223.     dc.l buffer
  224.     dc.l buffer
  225.     dc.l buffer
  226.     dc.l buffer
  227.     dc.l buffer
  228.     dc.l buffer
  229.    
  230. chiffre
  231.     dc.b %00111100
  232.     dc.b %01000010
  233.     dc.b %01000010
  234.     dc.b %01000010
  235.     dc.b %01000010
  236.     dc.b %01000010
  237.     dc.b %00111100
  238.     dc.b 0
  239.  
  240.     dc.b %00010000
  241.     dc.b %00010000
  242.     dc.b %00010000
  243.     dc.b %00010000
  244.     dc.b %00010000
  245.     dc.b %00010000
  246.     dc.b %00010000
  247.     dc.b 0
  248.    
  249.     dc.b %00111100
  250.     dc.b %01000010
  251.     dc.b %00000100
  252.     dc.b %00001000
  253.     dc.b %00010000
  254.     dc.b %00100000
  255.     dc.b %01111110
  256.     dc.b 0
  257.    
  258.     dc.b %01111100
  259.     dc.b %00000010
  260.     dc.b %00000010
  261.     dc.b %00111100
  262.     dc.b %00000010
  263.     dc.b %00000010
  264.     dc.b %01111100
  265.     dc.b 0
  266.  
  267.     dc.b %00001000
  268.     dc.b %00010000
  269.     dc.b %00100100
  270.     dc.b %01000100
  271.     dc.b %01111110
  272.     dc.b %00000100
  273.     dc.b %00000100
  274.     dc.b 0
  275.  
  276.     dc.b %01111110
  277.     dc.b %01000000
  278.     dc.b %01000000
  279.     dc.b %01111100
  280.     dc.b %00000010
  281.     dc.b %00000010
  282.     dc.b %01111100
  283.     dc.b 0
  284.    
  285.     dc.b %00001110
  286.     dc.b %00010000
  287.     dc.b %00100000
  288.     dc.b %01111100
  289.     dc.b %01000010
  290.     dc.b %01000010
  291.     dc.b %00111100
  292.     dc.b 0
  293.    
  294.     dc.b %01111110
  295.     dc.b %01000100
  296.     dc.b %00000100
  297.     dc.b %00001000
  298.     dc.b %00010000
  299.     dc.b %00010000
  300.     dc.b %00010000
  301.     dc.b 0
  302.    
  303.     dc.b %00111100
  304.     dc.b %01000010
  305.     dc.b %01000010
  306.     dc.b %00111100
  307.     dc.b %01000010
  308.     dc.b %01000010
  309.     dc.b %00111100
  310.     dc.b 0
  311.    
  312.    
  313.     dc.b %00111100
  314.     dc.b %01000010
  315.     dc.b %01000010
  316.     dc.b %00111110
  317.     dc.b %00000010
  318.     dc.b %00000100
  319.     dc.b %00111000
  320.     dc.b 0
  321.  
  322.    
  323.  
  324.     BSS
  325.     even
  326.     ds.l 18000
  327. buffer  ds.l 18000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement