/[projet1]/public/atari/demos/next/phaleon-gigademo/fast-menu/FUME_044.S
Defence Force logotype

Contents of /public/atari/demos/next/phaleon-gigademo/fast-menu/FUME_044.S

Parent Directory Parent Directory | Revision Log Revision Log


Revision 144 - (show annotations)
Fri Aug 14 17:16:35 2009 UTC (10 years, 1 month ago) by dbug
File size: 27118 byte(s)
Renamed a file with an accent specially for MMU_MAN who has an operating system who miserably fail to read UTF-8 filenames :p
1 finale=0
2 fast=0
3 n_ligne=8
4 n_car=28
5 ;
6 ; Ze Mega Strange Plasma...
7 ; ...Some of Us call It ze Unnamed Effect !
8 ;
9 ; Devenu: Le main menu r‚sident !!! (Waouhhh... !!!)
10 ;
11 ; (c) 1991,92 Dbug II
12 ;
13
14 ifne finale
15 bgt
16 ligne_point‚e = ($600+12) * 2 ---> #4.w
17 txt_pos = ($600+12+2) * 4 ---> #-1.l
18 code_retour = ($600+12+6) * 4
19 org $5000
20 endc
21
22 opt o+,w-
23
24 ifne fast
25 pause macro
26 dcb.w \1,$4e71
27 endm
28 elseif
29 pause macro
30 t6 set (\1)/6
31 t5 set (\1-t6*6)/5
32 t4 set (\1-t6*6-t5*5)/4
33 t3 set (\1-t6*6-t5*5-t4*4)/3
34 t2 set (\1-t6*6-t5*5-t4*4-t3*3)/2
35 t1 set (\1-t6*6-t5*5-t4*4-t3*3-t2*2)
36 dcb.w t6,$e188
37 dcb.w t5,$ed88
38 dcb.w t4,$e988 ;
39 dcb.w t3,$1090 ; move.b (a0),(a0)
40 dcb.w t2,$8080 ; move.b d0,d0
41 dcb.w t1,$4e71 ; nop
42 endm
43 endc
44
45 attend macro
46 t set \1
47 t set t-6
48 b set t/3
49 n set t-(b*3)
50 move.w #b,d7
51 .boucle_tempo
52 dbra d7,.boucle_tempo
53 pause n
54 endm
55
56 opt o+,w-
57
58 ifeq finale
59 pea programme_principal
60 move.w #$26,-(sp)
61 trap #14
62 addq #6,sp
63 clr.w -(sp)
64 trap #1
65 elseif
66 bsr programme_principal
67 move.l code_retour,a0
68 moveq #0,d0
69 move.b (a0),d0
70 rts
71 endc
72 ; dc.b "Tu peux pocker ici, si cela t'amuse !"
73 ; dc.b "- ½2 Dbug II -"
74 even
75
76
77
78
79 programme_principal
80 move.w #$2700,sr
81 bra efface_bss
82 retourne_la_ou_il_le_faut_sale_con
83 move.l sp,sauve_ssp
84 move.l usp,a0
85 move.l a0,sauve_usp
86 lea ma_pile,sp
87
88 ;
89 ; Sauvegardes diverses
90 ;
91 lea $ffff8201.w,a0
92 movep.w (a0),d0
93 move.w d0,sauve_ecran
94 movem.l $ffff8240.w,d0-d7
95 movem.l d0-d7,sauve_palette
96 move.b $fffffa13.w,sauve_imra
97 move.b $fffffa15.w,sauve_imrb
98 move.b $ffff8260.w,sauve_rez
99 clr.b $fffffa13.w
100 clr.b $fffffa15.w
101 clr.b $ffff8260.w
102 move.b #2,$ffff820a.w
103 move.l $70.w,sauve_70
104 move.l #routine_vbl,$70.w
105 ;
106 ; Quelques inits
107 ;
108 move.l #table_distort,distort_ptr
109 move.l #table_rebond,rebond_ptr
110 st x_sens
111 clr.l x_pos
112 move.l #ecrans,txt_old
113 ifeq finale
114 move.l #-1,txt_pos
115 move.w #4,ligne_point‚e
116 endc
117 tst.l txt_pos
118 bpl.s .pas_la_premiŠre_fois
119 move.l #message+n_car+(n_car+1)*4,code_retour
120 clr.l txt_pos
121 .pas_la_premiŠre_fois
122 bsr affiche_logo
123 bsr convertion_table
124 bsr prepare_palettes
125 bsr prepare_message
126 bsr genere_code
127 moveq #1,d0
128 bsr musique
129 move.w #$2300,sr
130
131 opt o-
132
133 boucle_attente
134 stop #$2300
135 ;
136 ; On affiche le message
137 ;
138 move.l txt_old,a6 ; 5
139 lea buffer_message,a0 ; 3
140 add.l txt_pos,a0 ; 5
141 jsr routine_affiche ; 5+4+(896*4)=3606
142
143 attend 4288-3606 *-2703
144 ;
145 ; Avant tout, un border haut
146 ;
147 lea $ffff8260.w,a0
148 lea $ffff820a.w,a1
149 lea $ffff8240.w,a2
150
151 moveq #0,d0
152 move.b d0,(a1)
153 pause 18
154 moveq #2,d1
155 move.b d1,(a1)
156
157 *
158 .sync
159 move.b $ffff8209.w,d2
160 beq.s .sync
161 moveq #16,d3
162 sub.w d2,d3
163 lsl.w d3,d3
164 *
165 * 91 nops libres apres la syncro ecran
166 *
167 pause 90
168 _auto_modif
169 rept 6
170 jsr _ligne_230
171 endr
172 ;
173 ; Et un petit liseret !
174 ;
175 bsr liseret
176 pause 50
177 ;
178 ; On charge les couleurs !
179 ;
180 lea palettes_plasma2,a1
181 lea adresse_routines,a4
182 move.l distort_ptr,a3
183
184 moveq #121-1,d7
185 affiche_ligne_suivante
186 exg d7,a6 ; 2
187 move.w (a3)+,d1
188 move.l (a4,d1.w),a5
189 movem.w (a1)+,d1-d7 ; 12+4*7=12+28=40/ 10 nops
190 pause 4
191 jsr (a5)
192 exg a6,d7 ; 2
193 dbra d7,affiche_ligne_suivante ; 3
194 pause 35
195
196 pause 10
197 bsr liseret
198 pause 123
199 clr.w (a2)
200 ;
201 ; Ici on fait des choses...
202 ;
203 lea $ffff820a.w,a1
204 moveq #2,d1
205 moveq #86-1,d2
206 *
207 lea buffer_palettes_1,a3
208 lea buffer_palettes_2,a5
209 pause 6-3-3
210 move.b d1,(a0)
211 nop
212 move.b d0,(a0)
213 pause 49
214 *
215 boucle_full
216 pause 40
217 move.b d0,(a1)
218 move.b d1,(a1)
219 pause 13-2
220 lea $ffff8240.w,a4
221 move.b d1,(a0)
222 nop
223 move.b d0,(a0)
224 move.l (a3)+,(a4)+
225 move.l (a3)+,(a4)+
226 pause 12-10
227 move.b d1,(a0)
228 nop
229 move.b d0,(a0)
230 move.l (a3)+,(a4)+
231 move.l (a3)+,(a4)+
232 move.l (a5)+,(a4)+
233 move.l (a5)+,(a4)+
234 move.l (a5)+,(a4)+
235 move.l (a5)+,(a4)+
236 pause 49-30-3
237 dbra d2,boucle_full
238 ;
239 ; On termine la ligne
240 ;
241 pause 36
242 move.b d0,(a1)
243 move.b d1,(a1)
244 pause 13
245 move.b d1,(a0)
246 nop
247 move.b d0,(a0)
248 ;
249 ; Et un petit liseret !
250 ;
251 bsr liseret
252 attend 120-1
253 ;
254 ; On re-charge les couleurs !
255 ;
256 move.l txt_old,a0 ; 5
257 lea palettes_plasma,a1
258 lea adresse_routines,a4
259 move.l distort_ptr,a3
260
261 moveq #99,d7
262 jsr routine_efface
263 dernier
264 attend 50
265 bsr liseret
266 clr.w (a2)
267
268 opt o+
269
270 move.l distort_ptr,a3
271 lea 2(a3),a3
272 tst.w 200*2(a3)
273 bpl.s .ok
274 lea table_distort,a3
275 .ok
276 move.l a3,distort_ptr
277 ;
278 ; Calcul des trajectoires
279 ;
280 bsr calcule_hard
281 bsr musique+14
282 **********
283 tst.b compteur_options
284 beq.s pas_de_scroll
285 move.l flag_options,d0
286 add.l d0,txt_pos
287 subq.b #1,compteur_options
288 pas_de_scroll
289
290 *
291 move.b $fffffc02.w,d0
292 * cmp.b #$39,d0
293 * beq.s validation
294 cmp.b #$1c,d0
295 beq.s validation
296 cmp.b #$72,d0
297 beq.s validation
298 bra.s pas_validation
299 validation
300 move.l code_retour,a0
301 cmp.b #-1,(a0)
302 bne.s sort_boucle_attente
303 pas_validation
304 *
305 tst.b compteur_options
306 bne scroll_pas_fini
307 cmpi.b #$48,d0
308 bne.s pas_haut
309 tst.w ligne_point‚e
310 beq.s pas_haut
311 move.l #-n_car,flag_options
312 move.b #8,compteur_options
313 subq.w #1,ligne_point‚e
314 sub.l #n_car+1,code_retour
315 pas_haut
316 cmpi.b #$50,d0
317 bne.s pas_bas
318 cmp.w #(longueur_message/n_car-4),ligne_point‚e
319 bge.s pas_bas
320 move.l #n_car,flag_options
321 move.b #8,compteur_options
322 addq.w #1,ligne_point‚e
323 add.l #n_car+1,code_retour
324 pas_bas
325 scroll_pas_fini
326 *
327 bra boucle_attente
328
329 sort_boucle_attente
330 move.w #$2700,sr
331 move.l sauve_70,$70.w
332 move.b sauve_imra,$fffffa13.w
333 move.b sauve_imrb,$fffffa15.w
334 move.w sauve_ecran,d0
335 lea $ffff8201.w,a0
336 movep.w d0,(a0)
337 move.b sauve_rez,$ffff8260.w
338 movem.l sauve_palette,d0-d7
339 movem.l d0-d7,$ffff8240.w
340 move.l #$08000000,$ffff8800.w
341 move.l #$09000000,$ffff8800.w
342 move.l #$0a000000,$ffff8800.w
343 move.l sauve_ssp,sp
344 move.l sauve_usp,a0
345 move.l a0,usp
346 move.w #$2300,sr
347 rts
348
349 ****************************************
350 * *
351 * Ici se trouve la programme principal *
352 * *
353 ****************************************
354
355 opt o-
356
357 routine_vbl
358 rte
359
360 liseret
361 move.w #$111,(a2) ; 3
362 attend 125
363 l2
364 move.w #$222,(a2) ; 3
365 attend 125
366 l3
367 move.w #$333,(a2) ; 3
368 attend 125
369 l4
370 move.w #$444,(a2) ; 3
371 attend 125
372 l5
373 move.w #$333,(a2) ; 3
374 attend 125
375 move.w #$222,(a2) ; 3
376 l6
377 attend 125
378 move.w #$111,(a2) ; 3
379 rts
380
381 ; Codage du : move.w dx,(a2)
382 ; : $308x ($3080-$3087)
383 ;
384 routine_0
385 nop
386 move.w d0,(a2)
387 move.w d0,(a2)
388 move.w d0,(a2)
389 move.w d0,(a2)
390 move.w d0,(a2)
391 move.w d0,(a2)
392 move.w d0,(a2)
393 move.w d0,(a2)
394 move.w d0,(a2)
395 move.w d1,(a2)
396 move.w d0,(a2)
397 move.w d0,(a2)
398 move.w d0,(a2)
399 move.w d0,(a2)
400 move.w d0,(a2)
401 move.w d0,(a2)
402 move.w d0,(a2)
403 move.w d0,(a2)
404 move.w d0,(a2)
405 rts
406
407 routine_1
408 move.w d0,(a2)
409 move.w d0,(a2)
410 move.w d0,(a2)
411 move.w d0,(a2)
412 move.w d0,(a2)
413 move.w d0,(a2)
414 move.w d0,(a2)
415 move.w d0,(a2)
416 move.w d0,(a2)
417 move.w d1,(a2)
418 move.w d1,(a2)
419 move.w d0,(a2)
420 move.w d0,(a2)
421 move.w d0,(a2)
422 move.w d0,(a2)
423 move.w d0,(a2)
424 move.w d0,(a2)
425 move.w d0,(a2)
426 move.w d0,(a2)
427 nop
428 rts
429
430 routine_2
431 nop
432 move.w d0,(a2)
433 move.w d0,(a2)
434 move.w d0,(a2)
435 move.w d0,(a2)
436 move.w d0,(a2)
437 move.w d0,(a2)
438 move.w d0,(a2)
439 move.w d0,(a2)
440 move.w d1,(a2)
441 move.w d2,(a2)
442 move.w d1,(a2)
443 move.w d0,(a2)
444 move.w d0,(a2)
445 move.w d0,(a2)
446 move.w d0,(a2)
447 move.w d0,(a2)
448 move.w d0,(a2)
449 move.w d0,(a2)
450 move.w d0,(a2)
451 rts
452
453 routine_3
454 move.w d0,(a2)
455 move.w d0,(a2)
456 move.w d0,(a2)
457 move.w d0,(a2)
458 move.w d0,(a2)
459 move.w d0,(a2)
460 move.w d0,(a2)
461 move.w d0,(a2)
462 move.w d1,(a2)
463 move.w d2,(a2)
464 move.w d2,(a2)
465 move.w d1,(a2)
466 move.w d0,(a2)
467 move.w d0,(a2)
468 move.w d0,(a2)
469 move.w d0,(a2)
470 move.w d0,(a2)
471 move.w d0,(a2)
472 move.w d0,(a2)
473 nop
474 rts
475
476 routine_4
477 nop
478 move.w d0,(a2)
479 move.w d0,(a2)
480 move.w d0,(a2)
481 move.w d0,(a2)
482 move.w d0,(a2)
483 move.w d0,(a2)
484 move.w d0,(a2)
485 move.w d1,(a2)
486 move.w d2,(a2)
487 move.w d3,(a2)
488 move.w d2,(a2)
489 move.w d1,(a2)
490 move.w d0,(a2)
491 move.w d0,(a2)
492 move.w d0,(a2)
493 move.w d0,(a2)
494 move.w d0,(a2)
495 move.w d0,(a2)
496 move.w d0,(a2)
497 rts
498
499 routine_5
500 move.w d0,(a2)
501 move.w d0,(a2)
502 move.w d0,(a2)
503 move.w d0,(a2)
504 move.w d0,(a2)
505 move.w d0,(a2)
506 move.w d0,(a2)
507 move.w d1,(a2)
508 move.w d2,(a2)
509 move.w d3,(a2)
510 move.w d3,(a2)
511 move.w d2,(a2)
512 move.w d1,(a2)
513 move.w d0,(a2)
514 move.w d0,(a2)
515 move.w d0,(a2)
516 move.w d0,(a2)
517 move.w d0,(a2)
518 move.w d0,(a2)
519 nop
520 rts
521
522 routine_6
523 nop
524 move.w d0,(a2)
525 move.w d0,(a2)
526 move.w d0,(a2)
527 move.w d0,(a2)
528 move.w d0,(a2)
529 move.w d0,(a2)
530 move.w d1,(a2)
531 move.w d2,(a2)
532 move.w d3,(a2)
533 move.w d4,(a2)
534 move.w d3,(a2)
535 move.w d2,(a2)
536 move.w d1,(a2)
537 move.w d0,(a2)
538 move.w d0,(a2)
539 move.w d0,(a2)
540 move.w d0,(a2)
541 move.w d0,(a2)
542 move.w d0,(a2)
543 rts
544
545 routine_7
546 move.w d0,(a2)
547 move.w d0,(a2)
548 move.w d0,(a2)
549 move.w d0,(a2)
550 move.w d0,(a2)
551 move.w d0,(a2)
552 move.w d1,(a2)
553 move.w d2,(a2)
554 move.w d3,(a2)
555 move.w d4,(a2)
556 move.w d4,(a2)
557 move.w d3,(a2)
558 move.w d2,(a2)
559 move.w d1,(a2)
560 move.w d0,(a2)
561 move.w d0,(a2)
562 move.w d0,(a2)
563 move.w d0,(a2)
564 move.w d0,(a2)
565 nop
566 rts
567
568 routine_8
569 nop
570 move.w d0,(a2)
571 move.w d0,(a2)
572 move.w d0,(a2)
573 move.w d0,(a2)
574 move.w d0,(a2)
575 move.w d1,(a2)
576 move.w d2,(a2)
577 move.w d3,(a2)
578 move.w d4,(a2)
579 move.w d5,(a2)
580 move.w d4,(a2)
581 move.w d3,(a2)
582 move.w d2,(a2)
583 move.w d1,(a2)
584 move.w d0,(a2)
585 move.w d0,(a2)
586 move.w d0,(a2)
587 move.w d0,(a2)
588 move.w d0,(a2)
589 rts
590
591 routine_9
592 move.w d0,(a2)
593 move.w d0,(a2)
594 move.w d0,(a2)
595 move.w d0,(a2)
596 move.w d0,(a2)
597 move.w d1,(a2)
598 move.w d2,(a2)
599 move.w d3,(a2)
600 move.w d4,(a2)
601 move.w d5,(a2)
602 move.w d5,(a2)
603 move.w d4,(a2)
604 move.w d3,(a2)
605 move.w d2,(a2)
606 move.w d1,(a2)
607 move.w d0,(a2)
608 move.w d0,(a2)
609 move.w d0,(a2)
610 move.w d0,(a2)
611 nop
612 rts
613
614 routine_10
615 nop
616 move.w d0,(a2)
617 move.w d0,(a2)
618 move.w d0,(a2)
619 move.w d0,(a2)
620 move.w d1,(a2)
621 move.w d2,(a2)
622 move.w d3,(a2)
623 move.w d4,(a2)
624 move.w d5,(a2)
625 move.w d6,(a2)
626 move.w d5,(a2)
627 move.w d4,(a2)
628 move.w d3,(a2)
629 move.w d2,(a2)
630 move.w d1,(a2)
631 move.w d0,(a2)
632 move.w d0,(a2)
633 move.w d0,(a2)
634 move.w d0,(a2)
635 rts
636
637 routine_11
638 move.w d0,(a2)
639 move.w d0,(a2)
640 move.w d0,(a2)
641 move.w d0,(a2)
642 move.w d1,(a2)
643 move.w d2,(a2)
644 move.w d3,(a2)
645 move.w d4,(a2)
646 move.w d5,(a2)
647 move.w d6,(a2)
648 move.w d6,(a2)
649 move.w d5,(a2)
650 move.w d4,(a2)
651 move.w d3,(a2)
652 move.w d2,(a2)
653 move.w d1,(a2)
654 move.w d0,(a2)
655 move.w d0,(a2)
656 move.w d0,(a2)
657 nop
658 rts
659
660 routine_12
661 nop
662 move.w d0,(a2)
663 move.w d0,(a2)
664 move.w d0,(a2)
665 move.w d1,(a2)
666 move.w d2,(a2)
667 move.w d3,(a2)
668 move.w d4,(a2)
669 move.w d5,(a2)
670 move.w d6,(a2)
671 move.w d7,(a2)
672 move.w d6,(a2)
673 move.w d5,(a2)
674 move.w d4,(a2)
675 move.w d3,(a2)
676 move.w d2,(a2)
677 move.w d1,(a2)
678 move.w d0,(a2)
679 move.w d0,(a2)
680 move.w d0,(a2)
681 rts
682
683 routine_13
684 move.w d0,(a2)
685 move.w d0,(a2)
686 move.w d0,(a2)
687 move.w d1,(a2)
688 move.w d2,(a2)
689 move.w d3,(a2)
690 move.w d4,(a2)
691 move.w d5,(a2)
692 move.w d6,(a2)
693 move.w d7,(a2)
694 move.w d7,(a2)
695 move.w d6,(a2)
696 move.w d5,(a2)
697 move.w d4,(a2)
698 move.w d3,(a2)
699 move.w d2,(a2)
700 move.w d1,(a2)
701 move.w d0,(a2)
702 move.w d0,(a2)
703 nop
704 rts
705
706 routine_14
707 nop
708 move.w d0,(a2)
709 move.w d0,(a2)
710 move.w d1,(a2)
711 move.w d2,(a2)
712 move.w d3,(a2)
713 move.w d4,(a2)
714 move.w d5,(a2)
715 move.w d6,(a2)
716 move.w d7,(a2)
717 move.w d7,(a2)
718 move.w d7,(a2)
719 move.w d6,(a2)
720 move.w d5,(a2)
721 move.w d4,(a2)
722 move.w d3,(a2)
723 move.w d2,(a2)
724 move.w d1,(a2)
725 move.w d0,(a2)
726 move.w d0,(a2)
727 rts
728
729 routine_15
730 move.w d0,(a2)
731 move.w d0,(a2)
732 move.w d1,(a2)
733 move.w d2,(a2)
734 move.w d3,(a2)
735 move.w d4,(a2)
736 move.w d5,(a2)
737 move.w d6,(a2)
738 move.w d7,(a2)
739 move.w d7,(a2)
740 move.w d7,(a2)
741 move.w d7,(a2)
742 move.w d6,(a2)
743 move.w d5,(a2)
744 move.w d4,(a2)
745 move.w d3,(a2)
746 move.w d2,(a2)
747 move.w d1,(a2)
748 move.w d0,(a2)
749 nop
750 rts
751
752 routine_16
753 nop
754 move.w d0,(a2)
755 move.w d1,(a2)
756 move.w d2,(a2)
757 move.w d3,(a2)
758 move.w d4,(a2)
759 move.w d5,(a2)
760 move.w d6,(a2)
761 move.w d7,(a2)
762 move.w d7,(a2)
763 move.w d7,(a2)
764 move.w d7,(a2)
765 move.w d7,(a2)
766 move.w d6,(a2)
767 move.w d5,(a2)
768 move.w d4,(a2)
769 move.w d3,(a2)
770 move.w d2,(a2)
771 move.w d1,(a2)
772 move.w d0,(a2)
773 rts
774
775 opt o+
776
777 *****************************
778 *****************************
779 *****************************
780
781 calcule_hard
782 ;
783 ; Le vas et vient lat‚ral
784 ;
785 move.l x_pos,d0
786 tst.b x_sens
787 bne.s vers_gauche
788 vers_droite
789 subq.l #2,d0
790 bne.s fin_lat‚ral
791 st x_sens
792 bra fin_lat‚ral
793
794 vers_gauche
795 addq.l #2,d0
796 cmp.l #280,d0
797 blt.s fin_lat‚ral
798 sf x_sens
799
800 fin_lat‚ral
801 move.l d0,x_pos
802 move.l d0,d3
803 and.l #15,d3
804 lsr.l d3
805 mulu #232*160,d3
806
807 move.l d0,d2
808 lsr.l d2
809 and.b #%11111000,d2
810
811 ;
812 ; Le rebonds
813 ;
814 moveq #0,d1
815 move.l rebond_ptr,a0
816 move.b (a0)+,d1
817 bpl.s .pas_raz_rebond
818 lea table_rebond,a0
819 move.b (a0)+,d1
820 .pas_raz_rebond
821 move.l a0,rebond_ptr
822 mulu #230,d1
823 ;
824 ; Puis le hard lui-meme
825 ;
826 move.l #ecrans,d0
827 add.l #160,d0
828 add.l d1,d0 Y
829 add.l d2,d0 X
830 add.l d3,d0
831 *
832 move.l d0,a6 *********** Base ‚cran !!!
833 add.l #160*137-230*20+40+6,a6
834 move.l a6,txt_old
835 *
836 moveq #0,d1
837 move.b d0,d1
838
839 lea syncscro,a0
840 lsl.w #4,d1
841 lea 0(a0,d1.w),a0
842
843 lea _auto_modif+2,a1
844 moveq #6-1,d1
845 change_code
846 move.l (a0)+,(a1)
847 addq.w #6,a1
848 dbra d1,change_code
849
850 moveq #0,d1
851 move.w (a0)+,d1
852 ext.l d1 ; Die Biggest Uperhauᙚtsse Gammelle
853 add.l d1,d0
854 lsr.l #8,d0
855 lea $ffff8201.w,a0
856 movep.w d0,(a0)
857 rts
858
859 memo macro
860 Format de sauvegarde:
861 128 blocs de 32 octets (de 0 … 256 par pas de 2)
862
863 32 octets r‚partis ainsi:
864 --> 6.l de 0 … 5
865 0 ==> Ligne 160 : 0
866 1 ==> Ligne 186 : 26
867 2 ==> Ligne 204 : 44
868 3 ==> Ligne 230 : 70
869 4 ==> Ligne 54 : -106
870 5 ==> Ligne 158 : -2
871 6 ==> Ligne 184 : 24
872 --> 1.w offset x256 … ajouter sur la m‚moire ‚cran
873 --> 1.w ==> 0
874 --> 1.l ==> 0
875
876 endm
877
878 ; Note: Le JSR prends 5 nops et le RTS 4 nops
879
880 opt o-
881
882 _ligne_160
883 attend 119
884 rts
885
886 _ligne_186
887 nop
888 move.b d1,(a0)
889 nop
890 move.b d0,(a0)
891 attend 113
892 rts
893
894 _ligne_204
895 attend 95
896 move.b d0,(a1)
897 nop
898 move.b d1,(a1)
899 pause 12
900 move.b d1,(a0)
901 nop
902 move.b d0,(a0)
903 pause 2
904 rts
905
906 _ligne_230
907 nop
908 move.b d1,(a0)
909 nop
910 move.b d0,(a0)
911 attend 89
912 move.b d0,(a1)
913 nop
914 move.b d1,(a1)
915 pause 13-1
916 move.b d1,(a0)
917 nop
918 move.b d0,(a0)
919 pause 2
920 rts
921
922 _ligne_54
923 attend 42
924 move.b d1,(a0)
925 a1
926 attend 42
927 move.b d0,(a0)
928 a2
929 attend 31
930 rts
931
932 _ligne_158
933 attend 34
934 move.b d0,(a1)
935 a3
936 attend 68
937 move.b d1,(a1)
938 pause 13
939 rts
940
941 _ligne_184
942 nop
943 move.b d1,(a0)
944 nop
945 move.b d0,(a0)
946 pause 28
947 move.b d0,(a1)
948 attend 68
949 move.b d1,(a1)
950 pause 13
951 rts
952
953 opt o+
954
955 convertion_table
956 lea syncscro_2(pc),a0
957 lea syncscro,a2
958 lea table_lignes(pc),a1
959 moveq #127,d0
960 .bloc_suivant
961 move.b (a0)+,d3
962 swap d3
963 move.b (a0)+,d3
964 lsl.w #8,d3
965 move.b (a0)+,d3 ;, on … toutes les valeurs... (3 octets)
966
967 moveq #5,d1
968 .taille_suivante
969 moveq #0,d2
970 moveq #2,d4
971 .bit_suivant
972 roxr.l d3
973 addx.b d2,d2
974 dbra d4,.bit_suivant
975 add.l d2,d2
976 add.l d2,d2
977 move.l 0(a1,d2.w),(a2)+
978 dbra d1,.taille_suivante
979 ;
980 moveq #0,d2 ; Puis l'offset vid‚o sur 2 bits
981 roxr.l d3
982 addx.b d2,d2
983 roxr.l d3
984 addx.b d2,d2
985 cmp.b #2,d2
986 bne.s .pas_negatif
987 moveq #-1,d2
988 .pas_negatif
989 move.b d2,(a2)
990 ;
991 addq.w #8,a2
992 dbra d0,.bloc_suivant
993 rts
994
995 table_lignes
996 dc.l _ligne_160,_ligne_186,_ligne_204,_ligne_230
997 dc.l _ligne_54,_ligne_158,_ligne_184
998
999 syncscro_2 incbin syncsco.pak
1000
1001 *****************************
1002 *****************************
1003 *****************************
1004
1005 prepare_palettes
1006 lea logo_palette,a0
1007 lea buffer_palettes_1,a1
1008 moveq #16-1,d0
1009 .fade_in
1010 bsr recopie_couleurs
1011 lea 16(a0),a0
1012 dbra d0,.fade_in
1013
1014 lea -32(a0),a0
1015 moveq #58-1,d0
1016 .no_fade
1017 bsr recopie_couleurs
1018 lea -16(a0),a0
1019 dbra d0,.no_fade
1020
1021 moveq #16-1,d0
1022 .fade_out
1023 bsr recopie_couleurs
1024 lea -32-16(a0),a0
1025 dbra d0,.fade_out
1026
1027 suivant
1028 lea logo_palette+16,a0
1029 lea buffer_palettes_2+16*11,a1
1030 moveq #16-1,d0
1031 .fade_in
1032 bsr recopie_couleurs
1033 lea 16(a0),a0
1034 dbra d0,.fade_in
1035
1036 lea -32(a0),a0
1037 moveq #58-22-1,d0
1038 .no_fade
1039 bsr recopie_couleurs
1040 lea -16(a0),a0
1041 dbra d0,.no_fade
1042
1043 moveq #16-1,d0
1044 .fade_out
1045 bsr recopie_couleurs
1046 lea -32-16(a0),a0
1047 dbra d0,.fade_out
1048
1049 znortrtert
1050 move.w #$301,buffer_palettes_1+16*43
1051 move.w #$301,buffer_palettes_1+16*(43+8)
1052 lea buffer_palettes_2+16*43,a2
1053 moveq #8*8-1,d0
1054 .fade_in
1055 move.w #$567,(a2)+
1056 dbra d0,.fade_in
1057 rts
1058
1059 recopie_couleurs
1060 move.l (a0)+,(a1)+
1061 move.l (a0)+,(a1)+
1062 move.l (a0)+,(a1)+
1063 move.l (a0)+,(a1)+
1064 rts
1065
1066 prepare_message
1067 lea message,a0
1068 lea buffer_message,a1
1069 lea fonte-8,a2
1070 moveq #0,d1
1071 .lettre_suivante
1072 move.b (a0)+,d0
1073 beq .fin_codage
1074 ; On convertit la lettre
1075 move.l #fonte_conv,d2
1076 move.l d2,a3
1077 .cherche_encore
1078 cmp.b (a3)+,d0
1079 bne.s .cherche_encore
1080 sub.l d2,a3
1081 move.l a3,d2
1082 lsl.w #3,d2
1083 lea (a2,d2.w),a3
1084 ; On ‚crit la lettre puis on incr‚mente les position
1085 moveq #8-1,d2
1086 .ligne_suivante
1087 move.b (a3)+,0(a1,d1.w)
1088 lea n_car(a1),a1
1089 dbra d2,.ligne_suivante
1090 lea -n_car*8(a1),a1
1091 addq.b #1,d1
1092 cmp.b #n_car,d1
1093 blt.s .lettre_suivante
1094 moveq #0,d1
1095 lea n_car*8(a1),a1
1096 addq.w #1,a0
1097 bra.s .lettre_suivante
1098 .fin_codage
1099 rts
1100
1101 ******************
1102 ******************
1103
1104 x_offset=-32+128
1105
1106 affiche_logo
1107 lea ecrans,a2
1108 lea 160*167+x_offset(a2),a2
1109 moveq #8-1,d7
1110 .logo_suivant
1111 lea logo_next,a0
1112 move.l a2,a1
1113 add.l #232*160,a2
1114 moveq #35-1,d6
1115 .ligne_suivante
1116 moveq #72/8-1,d5
1117 .mot_suivant
1118 move.l (a0)+,(a1)+
1119 move.w (a0)+,(a1)+
1120 clr.w (a1)+
1121 dbra d5,.mot_suivant
1122 lea 230-72(a1),a1
1123 dbra d6,.ligne_suivante
1124 dbra d7,.logo_suivant
1125
1126 predecalle_logo
1127 moveq #14,d5
1128 lea ecrans,a2
1129 add.l #160*167+34*230+72+8+x_offset,a2
1130 .bloc_suivant
1131 move.l a2,a0
1132 add.l #232*160,a2
1133 move.l d5,d3
1134 moveq #16,d0
1135 sub.l d3,d0
1136
1137 moveq #35-1,d6
1138 .ligne_suivante
1139 move.w #(88/2)-1,d1
1140 .predecalle_ligne
1141 move.w (a0),d4
1142 move.w -8(a0),d2
1143 lsr.w d3,d4 ; decalle de D3 rotations
1144 lsl.w d0,d2
1145 add.w d2,d4
1146 move.w d4,(a0)
1147 subq.l #2,a0
1148 dbra d1,.predecalle_ligne
1149 lea -(230-88)(a0),a0
1150 dbra d6,.ligne_suivante
1151
1152 subq.w #2,d5
1153 bpl.s .bloc_suivant
1154 rts
1155
1156 **********************
1157 nb_instructions=10
1158
1159 genere_code
1160 movem.l routine_type,d5-d7
1161 lea routine_efface,a0
1162 lea routine_affiche,a1
1163 move.w #896-1,d0
1164 moveq #0,d1
1165 moveq #0,d2
1166 moveq #nb_instructions,d3
1167 .instruction_suivante
1168 move.w #$3140,(a0)+
1169 move.w #$3d58,(a1)+
1170 move.w d1,(a0)
1171 move.w d1,(a1)
1172 add.w d2,(a0)+
1173 add.w d2,(a1)+
1174 addq.b #8,d1
1175 cmp.b #104,d1
1176 ble.s .pas_fini
1177 moveq #0,d1
1178 add.w #230,d2
1179 .pas_fini
1180 sub.b #1,d3
1181 bne.s .pas_9_pass‚s
1182 moveq #nb_instructions,d3
1183 movem.l d5-d7,(a0)
1184 lea 12(a0),a0
1185 .pas_9_pass‚s
1186 dbra d0,.instruction_suivante
1187 move.w #$4e75,(a0)
1188 move.w #$4e75,(a1)
1189 rts
1190
1191 routine_type
1192 move.w (a3)+,d1
1193 move.l (a4,d1.w),a5
1194 movem.w (a1)+,d1-d7
1195 jsr (a5)
1196
1197 efface_bss
1198 lea debut_bss,a0
1199 lea fin_bss,a1
1200 efface_suivant
1201 clr.l (a0)+
1202 cmpa.l a1,a0
1203 bmi.s efface_suivant
1204 bra retourne_la_ou_il_le_faut_sale_con
1205
1206 SECTION DATA
1207
1208 logo_next incbin logonext.gfx
1209 logo_palette incbin logonext.pal
1210 fonte incbin 8x8.fnt
1211 table_rebond incbin rebond.tbl
1212 even
1213
1214 musique incbin mi*.snd
1215 even
1216
1217 palettes_plasma
1218 rept 9
1219 dc.w $001,$002,$003,$004,$005,$006,$007 ; Bleu
1220 dc.w $001,$002,$003,$014,$015,$016,$017
1221 dc.w $001,$012,$013,$024,$025,$026,$027
1222 dc.w $001,$012,$013,$024,$035,$036,$037
1223 dc.w $011,$012,$023,$034,$045,$046,$047
1224 dc.w $011,$022,$023,$034,$045,$056,$057
1225 dc.w $011,$022,$033,$044,$055,$066,$067
1226
1227 dc.w $011,$022,$023,$034,$045,$056,$057
1228 dc.w $011,$012,$023,$034,$045,$046,$047
1229 dc.w $001,$012,$013,$024,$035,$036,$037
1230 dc.w $001,$012,$013,$024,$025,$026,$027
1231 dc.w $001,$002,$003,$014,$015,$016,$017
1232 endr
1233
1234 palettes_plasma2
1235 rept 3
1236 dc.w $010,$020,$030,$040,$050,$060,$070 ; Vert
1237 dc.w $010,$020,$030,$140,$150,$160,$170
1238 dc.w $010,$120,$130,$240,$250,$260,$270
1239 dc.w $010,$120,$130,$240,$350,$360,$370
1240 dc.w $110,$120,$230,$340,$450,$360,$470
1241 dc.w $110,$220,$230,$340,$450,$460,$570
1242 dc.w $110,$220,$330,$440,$550,$560,$670
1243
1244 dc.w $110,$220,$330,$440,$550,$660,$770 ; Jaune
1245 dc.w $110,$220,$330,$440,$550,$660,$760
1246 dc.w $110,$220,$320,$430,$540,$650,$750
1247 dc.w $110,$210,$320,$430,$540,$640,$740
1248 dc.w $100,$210,$310,$420,$530,$630,$730
1249 dc.w $100,$210,$310,$420,$520,$620,$720
1250 dc.w $100,$200,$300,$410,$510,$610,$710
1251
1252 dc.w $100,$200,$300,$400,$500,$600,$700 ; Rouge
1253 dc.w $100,$200,$301,$401,$501,$601,$701
1254 dc.w $100,$201,$301,$402,$502,$602,$702
1255 dc.w $100,$201,$302,$402,$503,$603,$703
1256 dc.w $101,$201,$302,$403,$504,$604,$704
1257 dc.w $101,$202,$303,$403,$504,$605,$705
1258 dc.w $101,$202,$303,$404,$505,$606,$706
1259
1260 dc.w $101,$202,$303,$404,$505,$606,$707 ; Violet
1261 dc.w $101,$202,$303,$404,$505,$606,$607
1262 dc.w $101,$202,$203,$304,$405,$506,$507
1263 dc.w $101,$102,$203,$304,$405,$406,$407
1264 dc.w $001,$102,$103,$204,$305,$306,$307
1265 dc.w $001,$102,$103,$204,$205,$206,$207
1266 dc.w $001,$002,$003,$104,$105,$106,$107
1267
1268 dc.w $001,$002,$003,$004,$005,$006,$007 ; Bleu
1269 dc.w $001,$002,$003,$014,$015,$016,$017
1270 dc.w $001,$012,$013,$024,$025,$026,$027
1271 dc.w $001,$012,$013,$024,$035,$036,$037
1272 dc.w $011,$012,$023,$034,$045,$046,$047
1273 dc.w $011,$022,$023,$034,$045,$056,$057
1274 dc.w $011,$022,$033,$044,$055,$066,$067
1275
1276 dc.w $011,$022,$033,$044,$055,$066,$077 ; Ciel
1277 dc.w $011,$022,$033,$044,$055,$066,$076
1278 dc.w $011,$022,$032,$043,$054,$065,$075
1279 dc.w $011,$021,$032,$043,$054,$064,$074
1280 dc.w $010,$021,$031,$042,$053,$063,$073
1281 dc.w $010,$021,$031,$042,$052,$062,$072
1282 dc.w $010,$020,$030,$041,$051,$061,$071
1283 endr
1284
1285 table_distort incbin distort.tbl
1286 var set 0
1287 rept 17
1288 dc.w var*4
1289 dc.w var*4
1290 var set var+1
1291 endr
1292 rept 50
1293 dc.w 15*4,16*4
1294 endr
1295 rept 17
1296 var set var-1
1297 dc.w var*4
1298 endr
1299 dcb.w 200,0
1300
1301 adresse_routines
1302 dc.l routine_0
1303 dc.l routine_1
1304 dc.l routine_2
1305 dc.l routine_3
1306 dc.l routine_4
1307 dc.l routine_5
1308 dc.l routine_6
1309 dc.l routine_7
1310 dc.l routine_8
1311 dc.l routine_9
1312 dc.l routine_10
1313 dc.l routine_11
1314 dc.l routine_12
1315 dc.l routine_13
1316 dc.l routine_14
1317 dc.l routine_15
1318 dc.l routine_16
1319
1320 ; ** ** * * *
1321 ; * * ** ** * **
1322 ;
1323 fonte_conv
1324 dc.b "ABCDEFGHIJKLMNOPQRSTUVWXYZ?½!., 0123456789-:@/\[]|_()'"
1325
1326 even
1327
1328 message
1329 DC.B " ",-1
1330 DC.B "/__________________________\",-1
1331 DC.B "| |",-1
1332 DC.B "|  AND  TO SELECT SCREEN |",-1
1333 DC.B "| AND RETURN TO VALIDATE |",-1
1334 DC.B "| |",-1
1335 DC.B "[__________________________]",-1
1336 DC.B " ",-1
1337 DC.B " ----- FIRST DISK ----- ",-1
1338 DC.B " NEXT (ULTIMATE LAMER TEST) ",34
1339 DC.B " ",-1
1340 DC.B " ----- SECOND DISK ----- ",-1
1341 DC.B " ACF DESIGN TEAM ",1
1342 DC.B " AGGRESSION ",2
1343 DC.B " CHAOTIC MOTION (FULLTRACK) ",3
1344 DC.B " CHAOTIC MOTION (INTERFER) ",4
1345 DC.B " DELTA FORCE ",5
1346 DC.B " FUTUR MINDS ",6
1347 DC.B " FRAGGLE'S ",7
1348 DC.B " THE HEMOROIDS ",8
1349 DC.B " LEGACY ",9
1350 DC.B " MEGABUSTERS ",10
1351 DC.B " MJJ PROD ",11
1352 DC.B " MYSTIC ",12
1353 DC.B " NAOS ",13
1354 DC.B " NEWLINE ",14
1355 DC.B " NEW SYSTEM ",15
1356 DC.B " THE CAREBEARS ",16
1357 DC.B " THE CORPORATION ",17
1358 DC.B " ",-1
1359 DC.B " ----- THIRD DISK ----- ",-1
1360 DC.B " THE STORM BROTHERS ",18
1361 DC.B " AENIGMATICA ",19
1362 DC.B " CHAOTIC MOTION (BOOTMAKER) ",20
1363 DC.B " DNT CREW ",21
1364 DC.B " FIREHAWKS ",22
1365 DC.B " FOXX ",23
1366 DC.B " NEXT (FULLBALL) ",24
1367 DC.B " KROM ",25
1368 DC.B " NEXT (LEM,RSI CONVERSION) ",26
1369 DC.B " NIGHT FORCE ",27
1370 DC.B " THE NERVE CENTER (2 PARTS) ",28
1371 DC.B " ",-1
1372 DC.B " ----- FOURTH DISK ----- ",-1
1373 DC.B " EXPOSE SOFTWARE - PREVIEWS ",29
1374 DC.B " NEXT (BUDNEXT) ",30
1375 DC.B " LONEWOLF (MINES) ",31
1376 DC.B " THE NERVE CENTER (3D DOTS) ",32
1377 DC.B " NEXT (ILLUSION) ",33
1378 DC.B " ",-1
1379 DC.B "/__________________________\",-1
1380 DC.B "| |",-1
1381 DC.B "| THIS MENU: |",-1
1382 DC.B "| |",-1
1383 DC.B "| ORIGINAL IDEA, CODE AND |",-1
1384 DC.B "| DESIGN BY - DBUG II - |",-1
1385 DC.B "| |",-1
1386 DC.B "| NEXT LOGO WAS DRAWN BY |",-1
1387 DC.B "| - PULSAR - |",-1
1388 DC.B "| |",-1
1389 DC.B "| THIS LITTLE FONT BY |",-1
1390 DC.B "| - CHROMIX - |",-1
1391 DC.B "| FROM AN ORIGINAL BY |",-1
1392 DC.B "| - ANDI INGRAM - |",-1
1393 DC.B "| USED IN 'LEANDER' |",-1
1394 DC.B "| |",-1
1395 DC.B "| THE NICE TUNE COMPOSED |",-1
1396 DC.B "| BY - DAVID WHITTAKER - |",-1
1397 DC.B "| |",-1
1398 DC.B "| AND LAST BUT NOT LEAST |",-1
1399 DC.B "| SOME AESTHETIC ADVICES |",-1
1400 DC.B "| BY THE GUY WHO HAS CODED |",-1
1401 DC.B "| THE 'MINE SWEEPER' GAME. |",-1
1402 DC.B "| (SOME CALL HIM LONEWOLF) |",-1
1403 DC.B "| |",-1
1404 DC.B "[__________________________]",-1
1405 DC.B " ",-1
1406 fin_message
1407 DC.B 0
1408
1409 longueur_message equ fin_message-message
1410
1411 SECTION BSS
1412
1413 even
1414 mit
1415 debut_bss
1416
1417 palette_noire ds.l 32
1418
1419 sauve_usp ds.l 1
1420 sauve_ssp ds.l 1
1421 sauve_a7 ds.l 1
1422 sauve_70 ds.l 1
1423 sauve_ecran ds.w 1
1424
1425 ds.l 200
1426 ma_pile ds.l 1
1427
1428 sauve_rez ds.b 1
1429 sauve_imra ds.b 1
1430 sauve_imrb ds.b 1
1431
1432 even
1433
1434 sauve_palette ds.w 16
1435
1436 routine_efface ds.l (3588+(896/nb_instructions+1)*12)/4
1437 routine_affiche ds.l 3588/4
1438 ecrans ds.l (43900*8)/4
1439 buffer_message ds.l longueur_message*8
1440 buffer_palettes_1 ds.l 4*86
1441 buffer_palettes_2 ds.l 4*86
1442 syncscro ds.l 4096/4
1443
1444 distort_ptr ds.l 1
1445
1446 rebond_ptr ds.l 1
1447 x_pos ds.l 1
1448 x_sens ds.w 1
1449
1450 txt_old ds.l 1
1451 txt_cpt ds.l 1
1452
1453 ifeq finale
1454 ligne_point‚e ds.w 1
1455 txt_pos ds.l 1
1456 code_retour ds.l 1
1457 endc
1458
1459 flag_options ds.l 1
1460 compteur_options ds.w 1
1461
1462 fin_bss ds.b 4
1463 end

  ViewVC Help
Powered by ViewVC 1.1.26