/[projet1]/public/atari/tools/MOULINEX/PRES6.S
Defence Force logotype

Contents of /public/atari/tools/MOULINEX/PRES6.S

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1389 - (show annotations)
Tue Mar 7 19:16:33 2017 UTC (2 years, 6 months ago) by dbug
File size: 10977 byte(s)
Added Moulinex, old tool to convert MOD files to LOW format and vice versa
1 opt d+,o+,w-
2 move #0,-(sp)
3 move.l #-1,-(sp)
4 move.l #-1,-(sp)
5 move #5,-(sp)
6 trap #14
7 lea 12(sp),sp
8
9 output pres.prg
10 ; org $80+28
11 pea debut0
12 move #$26,-(sp)
13 trap #14
14 addq.l #6,sp
15 move #1,-(sp)
16 move.l #-1,-(sp)
17 move.l #-1,-(sp)
18 move #5,-(sp)
19 trap #14
20 lea 12(sp),sp
21 clr -(sp)
22 trap #1
23
24 even
25 debut0
26 move #$2700,sr
27 lea garf,a0
28 movem.l $ffff8240.w,d0-d7
29 movem.l d0-d7,(a0)
30 lea $ffff8240.w,a1
31 rept 8
32 clr.l (a1)+
33 endr
34 lea 8*4(a0),a0
35 move.l $70.w,(a0)+
36 move.b $fffffa07.w,(a0)+
37 move.b $fffffa09.w,(a0)+
38 move.b $fffffa13.w,(a0)+
39 move.b $fffffa17.w,(a0)+
40
41 jsr debut
42
43 move #$2700,sr
44 lea garf,a0
45 movem.l (a0)+,d0-d7
46 movem.l d0-d7,$ffff8240.w
47 move.l (a0)+,$70.w
48 move.b (a0)+,$fffffa07.w
49 move.b (a0)+,$fffffa09.w
50 move.b (a0)+,$fffffa13.w
51 move.b (a0)+,$fffffa17.w
52 move #$2300,sr
53 rts
54
55 garf ds.l 4+8
56
57 wait macro
58 move d0,-(sp)
59 moveq #\1,d0
60 .\@
61 bsr vsync
62 dbra d0,.\@
63 move (sp)+,d0
64 endm
65
66 debut
67 move #$2700,sr
68 move.l a7,spile
69 lea npile,a7
70 lea $fffffa00.w,a0
71 clr.b 7(a0)
72 clr.b 9(a0)
73 clr.b 17(a0)
74 move.l #screen,d0
75 clr.b d0
76 add.l #256,d0
77 lea $ffff8201.w,a0
78 move.l d0,buf1
79 add.l #32000,d0
80 move.l d0,buf2
81 lsr.l #8,d0
82 movep d0,(a0)
83 move.l #nvbl,$70.w
84 moveq #7,d0
85 lea $ffff8240.w,a0
86 .arg
87 clr.l (a0)+
88 dbra d0,.arg
89 move.l buf1,a0
90 move #(64000/8)-1,d0
91 .eff
92 clr.l (a0)+
93 clr.l (a0)+
94 dbra d0,.eff
95
96 move #$2300,sr
97 *
98 lea data,a6 * ne plus topucher a a6
99 movem.l (a6)+,d0-d7
100 *
101 move.l buf1,a0
102 move #199,d0
103 .rf
104 move.l 1600(a6),160-8(a0)
105 move.l (a6)+,(a0)+
106 move.l 1600(a6),160-8(a0)
107 move.l (a6)+,(a0)+
108 lea 160-8(a0),a0
109 dbra d0,.rf
110 move.l buf1,a0
111
112 lea data+3232,a6 * ne plus topucher a a6
113 moveq #6,d1
114 moveq #18*2-1,d0
115 addq.l #8,a0
116 .rf1
117 move.l (a6)+,(a0)+
118 dbra d0,.rf1
119 moveq #18*2-1,d0
120 lea 16(a0),a0
121 dbra d1,.rf1
122 lea 160*(200-17-7)(a0),a0
123
124 moveq #16,d1
125 moveq #18*2-1,d0
126 .rf2
127 move.l (a6)+,(a0)+
128 dbra d0,.rf2
129 moveq #18*2-1,d0
130 lea 16(a0),a0
131 dbra d1,.rf2
132
133 move.l buf1,a0
134 lea 7*160+8(a0),a0
135 move #(200-7-17)-1,d0
136 moveq #17,d1
137 .rf3
138 move.l #$ffff0000,(a0)+
139 move.l #0,(a0)+
140 dbra d1,.rf3
141 lea 16(a0),a0
142 moveq #17,d1
143 dbra d0,.rf3
144
145 lea datasnurf,a6
146 move.l buf1,a1
147 bsr copie_gris
148 move.l buf1,a1
149 bsr sprmerde
150
151 move.l buf1,a0
152 move.l buf2,a1
153 move #(32000/4)-1,d0
154 .aff0
155 move.l (a0)+,(a1)+
156 dbra d0,.aff0
157
158 *
159 lea $ffff8240.w,a0
160 lea palettes,a1
161 moveq #15,d0
162 .scroll
163 wait 2
164 movem.l 8(a1),d2-d7
165 movem.l d2-d7,8(a0)
166 lea 8*4(a1),a1
167 dbra d0,.scroll
168 *
169 wait 100
170
171 lea $ffff8240.w,a0
172 lea palettes,a1
173 moveq #15,d0
174 .scroll1
175 wait 2
176 move.l (a1),(a0)
177 move.l 4(a1),4(a0)
178 lea 8*4(a1),a1
179 dbra d0,.scroll1
180
181
182 *--------------------------
183 *
184 * aparition de la pyramide
185 bsr pyramide
186 *
187 *
188 *
189 * ALEANG Jean Marc
190 * 27 rue Eggerickx
191 * 1150 BRUXELLE
192 * TEL : 762-22-67 .....
193 * Accessible .
194 *
195 *
196 *--------------------------
197
198 * tout tremble
199 bsr tremble
200
201 * les eclair surgissent
202 bsr ecl
203
204 * a la fin , apparition des flammes
205 bsr flamme
206
207 wait
208 bsr vsync
209 cmp.b #$b9,$fffffc02.w
210 bne.s wait
211
212 * fin...
213 move.l spile,a7
214 move #$2700,sr
215 rts
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231 **********************************************************************
232 ******* routine ki vont etre apele durant la presente ***************
233 **********************************************************************
234
235 exscreen
236 movem.l a0/d0,-(sp)
237 lea $ffff8201.w,a0
238 move.l buf2,d0
239 move.l buf1,buf2
240 move.l d0,buf1
241 lsr.l #8,d0
242 movep d0,0(a0)
243 movem.l (sp)+,a0/d0
244 rts
245
246 pyramide
247 wait 101
248 * on affiche la pyramide en transparent inverse
249 moveq #99,d7
250 lea datasnurf,a6
251
252 .loop
253
254 move.l buf2,a1
255 bsr copie_gris
256
257 lea data+8928,a0
258 move.l buf2,a1
259 lea 7*8+104*160(a1),a1 * au mex de haut de x_ray sprite
260 adda.w (a6)+,a1
261 move (a6)+,d0
262 .temple
263
264 x set 0
265 rept 4
266 movem.l (a0)+,d1-d4
267
268 move.l x(a1),d5
269 move.l d5,d6
270 swap d5
271 or.l d6,d5
272 not.l d5
273 and.l d5,d1
274 and.l d5,d2
275 or.l d6,d1
276
277 move.l x+8(a1),d5
278 move.l d5,d6
279 swap d5
280 or.l d6,d5
281 not.l d5
282 and.l d5,d3
283 and.l d5,d4
284 or.l d6,d3
285
286 movem.l d1-d4,x(a1)
287 x set x+16
288 endr
289
290 lea 160(a1),a1
291 dbra d0,.temple
292
293 * merde en haut a gauche...
294 move.l buf2,a1
295 bsr sprmerde
296 *
297 bsr exscreen
298
299 * attente
300 bsr vsync
301 *
302 dbra d7,.loop
303
304 wait 71
305 rts
306
307
308 ecl
309 bsr peclair
310 bsr peclair
311
312 bsr eff_eclair
313
314 wait 100
315
316 bsr geclair
317 rts
318
319
320 tremble
321 moveq #4,d1
322 .vs0a
323 wait 11
324 bsr exscreen
325 dbra d1,.vs0a
326
327 moveq #4,d1
328 .vs0b
329 wait 8
330 bsr exscreen
331 dbra d1,.vs0b
332
333 moveq #15,d1
334 .vs0c
335 wait 5
336 bsr exscreen
337 dbra d1,.vs0c
338
339
340 move.l buf1,a0
341 move.l buf2,a1
342 move #(32000/4)-1,d0
343 .rexc2
344 move.l (a0)+,(a1)+
345 dbra d0,.rexc2
346 rts
347
348
349 flamme
350 lea data+25600,a0
351 moveq #8,d7
352 .hui0
353 move.l buf2,a2
354 lea 66*160+11*8(a2),a2
355
356 moveq #42-4,d6
357 .hui
358 ; rept 4
359 moveq #0,d4
360 moveq #0,d5
361 rept 2
362 lsr (a0)
363 roxr 8(a0)
364 swap d4
365 roxr d4
366 swap d4
367 lsr 2(a0)
368 roxr 8+2(a0)
369 roxr d4
370 lsr 4(a0)
371 roxr 8+4(a0)
372 swap d5
373 roxr d5
374 swap d5
375 lsr 6(a0)
376 roxr 8+6(a0)
377 roxr d5
378 endr
379
380 movem.l (a0)+,d0-d3
381 movem.l d0-d5,(a2)
382 ; endr
383
384 lea 64-16(a1),a1
385 lea 160(a2),a2
386 dbra d6,.hui
387
388 lea data+8928+4*8,a1
389 moveq #3,d6
390 .hui1
391 ; rept 4
392 moveq #0,d4
393 moveq #0,d5
394 movem.l (a1)+,d0-d3
395 rept 2
396 lsr (a0)
397 roxr 8(a0)
398 swap d4
399 roxr d4
400 swap d4
401 lsr 2(a0)
402 roxr 8+2(a0)
403 roxr d4
404 lsr 4(a0)
405 roxr 8+4(a0)
406 swap d5
407 roxr d5
408 swap d5
409 lsr 6(a0)
410 roxr 8+6(a0)
411 roxr d5
412 endr
413
414 or.l (a0)+,d0
415 or.l (a0)+,d1
416 or.l (a0)+,d2
417 or.l (a0)+,d3
418 movem.l d0-d5,(a2)
419 ; endr
420
421 lea 64-16(a1),a1
422 lea 160(a2),a2
423 dbra d6,.hui1
424 bsr exscreen
425 wait 13
426 dbra d7,.hui0
427 rts
428
429
430
431 sprmerde
432 lea data+13088,a0
433 lea 7*160+8(a1),a1
434 moveq #7,d6
435 .afmerde
436 movem.l (a0)+,d0-d3
437 move.l d0,d4
438 or.l d1,d4
439 swap d4
440 or.l d1,d4
441 or.l d0,d4
442 move.l d2,d5
443 or.l d3,d5
444 swap d5
445 or.l d2,d5
446 or.l d3,d5
447 not.l d4
448 not.l d5
449 *
450 and.l d4,(a1)
451 and.l d4,4(a1)
452 or.l d0,(a1)+
453 or.l d1,(a1)+
454 and.l d5,(a1)
455 and.l d5,4(a1)
456 or.l d2,(a1)+
457 or.l d3,(a1)+
458 lea 160-16(a1),a1
459 dbra d6,.afmerde
460
461 rts
462
463 copie_gris
464 lea data+13216,a0
465 adda.w (a6)+,a0
466 lea 7*160+8(a1),a1
467 move (a6)+,d0
468 .recopiebeu
469 x set 0
470 rept 18
471 move.l (a0)+,x(a1)
472 x set x+8
473 endr
474 lea 160(a1),a1
475 dbra d0,.recopiebeu
476 rts
477
478 eclair
479 move.l buf2,a1
480 lea 17*160+64(a1),a1
481 lea data,a3
482 *
483
484 moveq #19,d7
485 .aff_eclair0
486 moveq #2,d6
487 .prenub
488 movem.l (a1),d0-d3
489 movem.l d0-d3,(a3)
490 ;
491 move.l d0,d4
492 swap d4
493 or.l d0,d4
494 not.l d4
495 move.l d2,d5
496 swap d5
497 or.l d2,d5
498 not.l d5
499 movem.l (a0)+,d0-d3
500 and.l d4,d0
501 and.l d4,d1
502 and.l d5,d2
503 and.l d5,d3
504 or.l d0,(a1)+
505 or.l d1,(a1)+
506 or.l d2,(a1)+
507 or.l d3,(a1)+
508 lea 4*4(a3),a3
509 dbra d6,.prenub
510 move.l (a1),d0
511 move.l 4(a1),d1
512 move.l d0,(a3)+
513 move.l d1,(a3)+
514 ;
515 move.l d0,d4
516 swap d4
517 or.l d0,d4
518 not.l d4
519 move.l (a0)+,d0
520 move.l (a0)+,d1
521 and.l d4,d0
522 and.l d4,d1
523 or.l d0,(a1)+
524 or.l d1,(a1)+
525 ;
526
527
528 lea 160-(14*4)(a1),a1
529 dbra d7,.aff_eclair0
530
531 moveq #87-20,d7
532 .aff_eclair
533 movem.l (a0)+,d0-d6
534 movem.l d0-d6,(a1)
535 movem.l (a0)+,d0-d6
536 movem.l d0-d6,7*4(a1)
537 lea 160(a1),a1
538 dbra d7,.aff_eclair
539 rts
540
541 eff_eclair
542 move.l buf2,a1
543 move.l buf1,a2
544 lea 17*160+64(a1),a1
545 lea 17*160+64(a2),a2
546 lea data,a3
547 *
548 moveq #19,d7
549 .aff_eclair0
550 movem.l (a3)+,d0-d6
551 movem.l d0-d6,(a1)
552 movem.l d0-d6,(a2)
553 movem.l (a3)+,d0-d6
554 movem.l d0-d6,7*4(a1)
555 movem.l d0-d6,7*4(a2)
556 lea 160(a1),a1
557 lea 160(a2),a2
558 dbra d7,.aff_eclair0
559 moveq #0,d0
560 moveq #0,d1
561 moveq #0,d2
562 moveq #0,d3
563 moveq #0,d4
564 moveq #0,d5
565 moveq #0,d6
566 moveq #87-20,d7
567 .aff_eclair
568 movem.l d0-d6,(a1)
569 movem.l d0-d6,(a2)
570 movem.l d0-d6,7*4(a1)
571 movem.l d0-d6,7*4(a2)
572 lea 160(a1),a1
573 lea 160(a2),a2
574 dbra d7,.aff_eclair
575 rts
576
577 eff_eclair0
578 move.l buf2,a1
579 lea 17*160+64(a1),a1
580 lea data,a3
581 *
582 moveq #19,d7
583 .aff_eclair0
584 movem.l (a3)+,d0-d6
585 movem.l d0-d6,(a1)
586 movem.l (a3)+,d0-d6
587 movem.l d0-d6,7*4(a1)
588 lea 160(a1),a1
589 dbra d7,.aff_eclair0
590 moveq #0,d0
591 moveq #0,d1
592 moveq #0,d2
593 moveq #0,d3
594 moveq #0,d4
595 moveq #0,d5
596 moveq #0,d6
597 moveq #87-20,d7
598 .aff_eclair
599 movem.l d0-d6,(a1)
600 movem.l d0-d6,7*4(a1)
601 lea 160(a1),a1
602 dbra d7,.aff_eclair
603 rts
604
605
606 peclair
607 lea data+31792,a0
608 moveq #5,d7
609 .peclair
610 move d7,-(sp)
611 bsr eclair
612 move (sp)+,d7
613 bsr exscreen
614 move d7,-(sp)
615 bsr eff_eclair0
616 move (sp)+,d7
617 wait 9
618 dbra d7,.peclair
619 wait 10
620
621 bsr eff_eclair
622 wait 24
623 rts
624
625 bouge macro
626 moveq #0,d0
627 moveq #15,d1
628 .\@
629 lsr (a1)
630 roxl d0
631 dbra d1,.\@
632 move d0,(a1)+
633 endm
634
635 bouge1 macro
636 move.l \1(a1),d0
637 move.l \2(a1),\1(a1)
638 move.l d0,\2(a1)
639 endm
640
641 ret_g_eclair
642 lea data+61360,a1
643 moveq #90,d7
644 .ret0
645
646 moveq #(9*4)-1,d2
647 .ret1
648 bouge
649 dbra d2,.ret1
650
651 lea -9*8(a1),a1
652
653 bouge1 0,8*8
654 bouge1 4,8*8+4
655
656 bouge1 8,7*8
657 bouge1 8+4,7*8+4
658
659 bouge1 8*2,6*8
660 bouge1 8*2+4,6*8+4
661
662 bouge1 8*3,5*8
663 bouge1 8*3+4,5*8+4
664 lea 9*8(a1),a1
665 dbra d7,.ret0
666 rts
667
668 aff_g_eclair
669 lea data+61360,a0
670 lea data,a3
671 *
672 moveq #90,d7
673 .aff_eclair0
674 moveq #8,d6
675 .prenub
676 move.l (a1),d0
677 move.l 4(a1),d1
678 move.l d0,(a3)+
679 move.l d1,(a3)+
680 ;
681 move.l d0,d2
682 swap d2
683 or.l d0,d2
684 not.l d2
685 move.l (a0)+,d0
686 move.l (a0)+,d1
687 and.l d2,d0
688 and.l d2,d1
689 or.l d0,(a1)+
690 or.l d1,(a1)+
691 dbra d6,.prenub
692 lea 160-(9*8)(a1),a1
693 dbra d7,.aff_eclair0
694 rts
695
696
697 eff_g_eclair
698 lea data,a3
699 *
700 moveq #90,d7
701 .eff_eclair0
702 moveq #8,d6
703 .prenub
704 move.l (a3),(a2)+
705 move.l (a3)+,(a1)+
706 move.l (a3),(a2)+
707 move.l (a3)+,(a1)+
708 dbra d6,.prenub
709 lea 160-(9*8)(a1),a1
710 lea 160-(9*8)(a2),a2
711 dbra d7,.eff_eclair0
712 rts
713
714 geclair
715 move.l buf2,a1
716 lea 18*160+80(a1),a1
717 bsr aff_g_eclair
718 bsr exscreen
719 wait 15
720 bsr exscreen
721 wait 5
722 bsr exscreen
723
724 bsr ret_g_eclair
725 wait 2
726
727 move.l buf2,a1
728 move.l buf1,a2
729 lea 18*160+80(a1),a1
730 lea 18*160+80(a2),a2
731 bsr eff_g_eclair
732
733 move.l buf2,a1
734 lea 16*160+32(a1),a1
735 bsr aff_g_eclair
736 bsr exscreen
737 wait 10
738
739
740 ; bsr ret_g_eclair
741 wait 20
742
743 move.l buf2,a1
744 move.l buf1,a2
745 lea 16*160+32(a1),a1
746 lea 16*160+32(a2),a2
747 bsr eff_g_eclair
748 move.l buf2,a1
749 lea 39*160+16(a1),a1
750 bsr aff_g_eclair
751 bsr exscreen
752 wait 10
753
754
755 move.l buf2,a1
756 move.l buf1,a2
757 lea 39*160+16(a1),a1
758 lea 39*160+16(a2),a2
759 bsr eff_g_eclair
760
761 wait 50
762 rts
763
764 nvbl
765 eor #1,vs
766 rte
767
768 vsync
769 move d0,-(sp)
770 move vs,d0
771 .loop
772 cmp vs,d0
773 beq.s .loop
774 move (sp)+,d0
775 rts
776
777 palettes
778 incbin palettes.dat"
779 even
780 data
781 incbin da1.dat"
782 even
783
784 even
785 datasnurf
786 x set 0
787 rept 100-65
788 dc.w 72*(172-72-x),71+x,65*160,0
789 x set x+1
790 endr
791 rept 65
792 dc.w 72*(172-72-x),71+x,65*160-((x-(100-65))*160),x-(100-65)
793 x set x+1
794 endr
795
796 section bss
797 even
798 screen ds.b 32000*2+256
799 vs ds.w 1
800 buf1 ds.l 1
801 buf2 ds.l 1
802 spile ds.l 1
803 ds.l 400
804 npile

  ViewVC Help
Powered by ViewVC 1.1.26