Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ;
- ; test de temps machine
- ;
- ;
- ;
- rept 2
- nop
- endr
- pea 0.w
- move.w #$20,-(sp)
- trap #1
- addq.l #6,sp
- move.l $44e.w,a0
- moveq #0,d0
- move.w #3999,d1
- cls move.l D0,(a0)+
- dbf d1,cls
- main
- lea reg,a6
- movem.l (a6)+,d0-d7/a0-a5
- jsr wvbl
- ;move.w #$2700,sr ; a ne metre que si sur que
- ; les instruction insere ne font pas planter
- ; la machine
- .wait move.b $ffff8209,d0
- beq.s .wait
- not.b d0
- lsr.b d0,d0
- move.w #80,d0
- .bcl:
- not.w $ffff8240.w
- not.w $ffff8240.w
- move.w d0,-(sp)
- jsr nop128
- moveq #0,d0
- ;; ************************************************
- ;; ici on insere les instruction
- ;; ************************************************
- move.w (sp)+,d0
- dbra.w d0,.bcl
- jsr affiche
- move.b $fffffc02.w,d0
- move.b d0,d5
- *and.b #$7F,d0
- cmp.b #$4d,d0 ; touche - du clavier numerique
- beq.s moins
- cmp.b #$4b,d0 ; touche + du clavier numerique
- beq.s plus
- move.b d5,d0
- cmp.b #$b9,d0
- bne main
- move.w #$2300,sr
- jmp fin
- .dummyrout:
- dc.l 0
- ; jmp .etiquette
- moins move.w nbNop,d0
- beq.s .maxMoins
- subq.w #1,d0
- move.w d0,nbNop
- jsr subEtat
- .maxMoins
- jsr flush_key_cd
- jmp main
- plus move.w nbNop,d0
- cmp.w #128-34-10+5,d0
- bpl.s .1
- addq.w #1,d0
- move.w d0,nbNop
- jsr addEtat
- jsr flush_key_cb
- .1 jmp main
- fin
- clr.w -(sp)
- trap #1
- flush_key_cd:
- move.l $466.w,d1 ; compteur vvbl
- .flush move.l $466.w,d2
- move.b $fffffc02.w,d0
- move.l d2,d3
- sub.l d1,d3
- cmp.w #16,d3 ; 6 vbl deja ?
- beq.s .fin
- cmp.b #$cd,d0
- bne.s .flush
- .fin rts
- flush_key_cb:
- move.l $466.w,d1 ; compteur vvbl
- .flush move.l $466.w,d2
- move.b $fffffc02.w,d0
- move.l d2,d3
- sub.l d1,d3
- cmp.w #16,d3 ; 6 vbl deja ?
- beq.s .fin
- *move.b $fffffc02.w,d0
- cmp.b #$cb,d0
- bne.s flush_key_cb
- .fin rts
- nop128
- move.w nbNop,d1
- lsl #1,d1
- lea ptr,a0
- jmp (a0,d1.w)
- ptr
- rept 128-33-10+5
- nop
- endr
- rts
- rts
- nbNop dc.w 0
- etat dc.b 0,0,0,0 ; = 10
- wvbl: move.w $468.w,d0
- .loop move.w $468.w,d1
- cmp.w d0,d1
- beq.s .loop
- rts
- affiche
- lea chiffre,a0
- lea etat,a1
- move.l $44e.w,a2
- lea 180*160+16(a2),a2
- move.w #3,d0
- .aff
- move.b (a1)+,d2
- lsl #3,d2 ; *8 octet
- lea (a0,d2),a3 ; a3 = buffer chiffre bitmap
- move.b (a3)+,(a2)
- move.b (a3)+,160(a2)
- move.b (a3)+,320(a2)
- move.b (a3)+,480(a2)
- move.b (a3)+,640(a2)
- move.b (a3)+,800(a2)
- move.b (a3)+,960(a2)
- move.b (a3)+,1120(a2)
- addq.l #8,a2
- dbra.w d0,.aff
- rts
- subEtat
- move.w #3,d1
- lea etat+3,a1
- .sub move.b (a1),d0
- ext.w d0
- subq.w #1,d0
- bmi.s .retenu
- move.b d0,(a1)
- rts
- .retenu
- move.b #9,(a1)
- subq.l #1,a1
- dbra.w d1,.sub
- rts
- addEtat
- move.w #3,d1
- lea etat+3,a1
- .add move.b (a1),d0
- ext.w d0
- addq.l #1,d0
- cmp.b #10,d0
- beq.s .retenu
- move.b d0,(a1)
- rts
- .retenu
- move.b #0,(a1)
- subq.l #1,a1
- dbra.w d1,.add
- rts
- DATA
- reg dc.l 0
- dc.l 0
- dc.l 1
- dc.l 0
- dcb.l 4,0
- dc.l buffer
- dc.l buffer
- dc.l buffer
- dc.l buffer
- dc.l buffer
- dc.l buffer
- dc.l buffer
- dc.l buffer
- chiffre
- dc.b %00111100
- dc.b %01000010
- dc.b %01000010
- dc.b %01000010
- dc.b %01000010
- dc.b %01000010
- dc.b %00111100
- dc.b 0
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b 0
- dc.b %00111100
- dc.b %01000010
- dc.b %00000100
- dc.b %00001000
- dc.b %00010000
- dc.b %00100000
- dc.b %01111110
- dc.b 0
- dc.b %01111100
- dc.b %00000010
- dc.b %00000010
- dc.b %00111100
- dc.b %00000010
- dc.b %00000010
- dc.b %01111100
- dc.b 0
- dc.b %00001000
- dc.b %00010000
- dc.b %00100100
- dc.b %01000100
- dc.b %01111110
- dc.b %00000100
- dc.b %00000100
- dc.b 0
- dc.b %01111110
- dc.b %01000000
- dc.b %01000000
- dc.b %01111100
- dc.b %00000010
- dc.b %00000010
- dc.b %01111100
- dc.b 0
- dc.b %00001110
- dc.b %00010000
- dc.b %00100000
- dc.b %01111100
- dc.b %01000010
- dc.b %01000010
- dc.b %00111100
- dc.b 0
- dc.b %01111110
- dc.b %01000100
- dc.b %00000100
- dc.b %00001000
- dc.b %00010000
- dc.b %00010000
- dc.b %00010000
- dc.b 0
- dc.b %00111100
- dc.b %01000010
- dc.b %01000010
- dc.b %00111100
- dc.b %01000010
- dc.b %01000010
- dc.b %00111100
- dc.b 0
- dc.b %00111100
- dc.b %01000010
- dc.b %01000010
- dc.b %00111110
- dc.b %00000010
- dc.b %00000100
- dc.b %00111000
- dc.b 0
- BSS
- even
- ds.l 18000
- buffer ds.l 18000
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement