home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / angint8.s.lha / intro3s.s < prev    next >
Encoding:
Text File  |  1980-02-15  |  23.3 KB  |  1,139 lines

  1. ;Intro coded by ... Corto 
  2. ;Exclusively for Angels members (already said it ?!?)
  3.  
  4. ;as always... A,  Jrun for testing
  5. ;WI  filename  run  end  for saving
  6. ;'Ltext1:'  'Ltext:'  to go to texts
  7. ;'L***'  to see all the comments
  8.  
  9. org $40000
  10. load $40000
  11. run:
  12. ;movem.L d0-d7/a0-a6,-(sp)
  13. bsr.L save_all
  14. lea $50000,a0
  15. move #24575,d7
  16. run1:
  17. move.b #$ff,(a0)+
  18. dbra d7,run1
  19. lea $56000,a1
  20. move #37887,d7
  21. run2:clr.l (a1)+
  22. dbra d7,run2
  23. move sin+$200,sin200+2
  24. move cos+$200,cos200+2
  25. move sin+$200,sin200b+2
  26. move cos+$200,cos200b+2
  27. move sin+$600,sin600+2
  28. move cos+$600,cos600+2
  29. move sin+$600,sin600b+2
  30. move cos+$600,cos600b+2
  31. bsr.L makecopper
  32. lea $dff000,a6
  33. move #$3fff,$9a(a6)
  34. move #$3fff,$96(a6)
  35. move #$83c0,$96(a6)
  36. move.l #irq,$6c
  37. move.L #%111101111011100111101111,$56000+9982+38
  38. move.L #%100001001010100011001001,$56000+9982+46+38
  39. move.L #%100001001011100011001001,$56000+9982+92+38
  40. move.l #%100001001010010011001001,$56000+9982+138+38
  41. move.l #%111101111010010011001111,$56000+9982+184+38
  42. bsr.L makmask
  43. bsr.L suite
  44.  
  45. affiche:
  46. tst.b count1
  47. bne.s affiche1
  48. lea fonts,a1
  49. move.l bpp,a2
  50. clr.w d0
  51. lettre:
  52. move.L text1c,a0
  53. move.l (a0),a0
  54. lea quelle(pc),a3
  55. add.w (a3),a0
  56. move.b (a0),d0
  57. addq.w #1,(a3)
  58. nextline:
  59. cmpi.b #$fe,d0
  60. bne.s dernier
  61. addi.l #[46*8]-40,a2
  62. bra.s lettre
  63. dernier:
  64. tst.b    d0
  65. beq.s    suit
  66. espace:
  67. cmpi.b    #$20,d0
  68. bne.s    noespace
  69. add.w    #96,a1
  70. bra.s    affichelettre
  71. noespace:
  72. sub.b    #$2b,d0
  73. add.b    d0,d0
  74. add.w    d0,a1
  75. affichelettre:
  76. bsr.l    affichefont
  77. addq.l    #1,a2
  78. move.L a2,bpp
  79. rts
  80.  
  81. affiche1:
  82. subq.b #1,count1
  83. beq.s affiche2
  84. rts
  85. affiche2:
  86. move.L text1c,a0
  87. addq.l #4,a0
  88. cmpi #$7777,(a0)
  89. bne.s affiche2a
  90. lea textlist,a0
  91. affiche2a:
  92. move.L a0,text1c
  93. clr quelle
  94. rts
  95.  
  96. affichefont:
  97. move.b    (a1),(a2)
  98. move.b    [$62*1](a1),[46*1](a2)
  99. move.b    [$62*2](a1),[46*2](a2)
  100. move.b    [$62*3](a1),[46*3](a2)
  101. move.b    [$62*4](a1),[46*4](a2)
  102. move.b    [$62*5](a1),[46*5](a2)
  103. rts
  104. suit:lea $56000+[46*70]+2,a2
  105. move.L a2,bpp
  106. clr quelle
  107. move.b #-1,count1
  108. rts
  109.  
  110. bpp:dc.L $56000+[46*70]+2
  111.  
  112. ;    *** ici la liste des textes successifs    
  113.  
  114. textlist:dc.l text1,text2,text3,text4,text5
  115.  
  116. dc.L $77777777
  117. text1c:dc.l textlist
  118.  
  119. text1:;        *** chaque texte doit faire
  120.         ;imperativement  12 lignes de 40 caracteres !
  121.  
  122. dc.b "             --- ANGELS ---             ",$FE
  123. dc.b "                                        ",$fe
  124. DC.B "                PRESENTS                ",$FE
  125. DC.B "                                        ",$FE
  126. dc.b "                                        ",$fe
  127. dc.b "                                        ",$fe
  128. DC.B "          XXXXXX FINAL VERSION          ",$fe
  129. dc.b "                                        ",$fe
  130. dc.b "                                        ",$fe
  131. dc.b "                                        ",$fe
  132. dc.b "        PRESS RIGHT MOUSE-BUTTON        ",$fe
  133. dc.b "         TO HID/SHOW SCROLLTEXT         ",0
  134. even
  135.  
  136. text2:
  137. dc.b "            CALL OUR BOARDS:            ",$FE
  138. dc.b "                                        ",$FE
  139. DC.B "        AMIGA EAST: 804-499-2266        ",$FE
  140. DC.B "                WORLD HQ                ",$FE
  141. dc.b "                                        ",$FE
  142. dc.b "                                        ",$FE
  143. DC.B "      INSIDER BBS: +39-564-415-697      ",$FE
  144. DC.B "                EURO. HQ                ",$FE
  145. dc.b "                                        ",$FE
  146. dc.b "                                        ",$FE
  147. DC.B "   WORLD TRADE CENTER: +41-170-11323    ",$FE
  148. DC.B "                SWISS HQ                ",0
  149. even
  150.  
  151. text3:
  152. dc.b "                                        ",$FE
  153. dc.b "                                        ",$FE
  154. DC.B "      SKYFOX BBS: +49-911-353-571       ",$FE
  155. DC.B "               GERMAN  HQ               ",$FE
  156. dc.b "                                        ",$fe
  157. dc.b "                                        ",$FE
  158. DC.B "     CITY LIMITS: +44-704-501-091       ",$FE
  159. DC.B "               ENGLAND HQ               ",$FE
  160. dc.b "                                        ",$FE
  161. dc.b "                                        ",$FE
  162. DC.B "   THE DUTCH PIRATE: +31-011-723-666    ",$FE
  163. DC.B "               HOLLAND HQ               ",0
  164. EVEN
  165.  
  166. TEXT4:
  167. DC.B "       ESCAPE ZONE: 704-254-6448        ",$FE
  168. dc.b "                                        ",$FE
  169. DC.B "   DIGITAL EXPRESSION: 813-398-7393     ",$FE
  170. dc.b "                                        ",$FE
  171. DC.B "       WRECK HOUSE: 201-751-2175        ",$FE
  172. dc.b "                                        ",$FE
  173. DC.B "   REIGN IN BLOOD: +49-202-406-0981     ",$FE
  174. dc.b "                                        ",$FE
  175. DC.B "   HOUSE OF INSANITY: 813-584-6089      ",$FE
  176. dc.b "                                        ",$FE
  177. dc.b "                                        ",$FE
  178. DC.B "  OR WRITE TO THE FOLLOWING ADDRESSES:  ",0
  179. EVEN
  180.  
  181. text5:
  182. dc.b "                                        ",$fe
  183. dc.b "    - P.O. BOX 10 - 4504  OBERCORN -    ",$FE
  184. DC.B "             - LUXEMBURG -              ",$FE
  185. dc.b "                                        ",$fe
  186. DC.B "      - P.O. BOX 3 - 6040  JUMET -      ",$FE
  187. DC.B "              - BELGIUM -               ",$FE
  188. dc.b "                                        ",$fe
  189. DC.B "   - P.O. BOX 31 - 9910  MARIAKERKE -   ",$FE
  190. DC.B "              - BELGIUM -               ",$FE
  191. dc.b "                                        ",$fe
  192. DC.B "    - P.O. BOX 2568 - 4300 SANDNES -    ",$FE
  193. DC.B "              - NORWAY -                ",0
  194. even
  195.  
  196. ;    *** voici le big-scrolltext:
  197. text:
  198. dc.B "      GREETINGS TO ALL OUR FRIENDS AND CONTACTS !"
  199. DC.B " THIS INTRO WAS CODED BY CORTO",0
  200. even
  201. textptr:dc.l text
  202.  
  203. quelle:dc.w 0
  204. count1:dc.b 0
  205. even
  206.  
  207. rout1:move d0,6(a0)
  208. swap d0
  209. move d0,2(a0)
  210. addq.L #8,a0
  211. rts
  212.  
  213. suite:
  214. lea copspr,a0
  215. move.L #set1,d0
  216. bsr.s rout1
  217. move.l #set2,d0
  218. bsr.s rout1
  219. move.l #set3,d0
  220. bsr.s rout1
  221. move.l #set4,d0
  222. bsr.s rout1
  223. move.l #set5,d0
  224. bsr.s rout1
  225. move.l #set6,d0
  226. bsr.s rout1
  227. move.l #setf,d0
  228. bsr.s rout1
  229. move.l #setf,d0
  230. bsr.s rout1
  231.  
  232. lea $dff000,a6
  233. move.L #$217937c9,$8e(a6)
  234. move.l #$3000d8,$92(a6)
  235. move.L #copperlist,$80(a6)
  236. clr $88(a6)
  237. move #$c010,$9a(a6)
  238. wait:
  239. tst flag1
  240. bne.s wait1
  241. ;bsr moveball
  242. bsr.L bras
  243. move #1,flag1
  244. wait1:
  245. btst #6,$bfe001
  246. bne.s wait
  247. wb:btst #$e,2(a6)
  248. bne.s wb
  249. bsr.L restore_all
  250. ;movem.L (sp)+,d0-d7/a0-a6
  251. rts
  252. flag:dc.w -1
  253. flag1:dc.w 0
  254. juga:dc.w 0
  255. jugw:dc.w 50
  256.  
  257. makmask:
  258. lea bob1,a0
  259. lea mask1,a1
  260. bsr.s masque1
  261. lea bob2,a0
  262. lea mask2,a1
  263. bsr.s masque1
  264. lea bob8,a0
  265. lea mask8,a1
  266. bsr.s masque1
  267. move #4,d6
  268. lea bob3,a0
  269. lea mask3,a1
  270. masl1:
  271. bsr.s masque2
  272. dbra d6,masl1
  273. lea bob9,a0
  274. lea mask9,a1
  275. bsr.s masque2
  276. rts
  277.  
  278. masque1:
  279. move #31,d7
  280. masq1:
  281. move.L (a0),d0
  282. addq.L #6,a0
  283. or.l (a0),d0
  284. addq.l #6,a0
  285. or.l (a0),d0
  286. addq.L #6,a0
  287. move.l d0,(a1)+
  288. clr (a1)+
  289. move.l d0,(a1)+
  290. clr (a1)+
  291. move.l d0,(a1)+
  292. clr (a1)+
  293. dbra d7,masq1
  294. rts
  295.  
  296. masque2:
  297. move #15,d7
  298. masq2:
  299. move (a0),d0
  300. addq.L #4,a0
  301. or.w (a0),d0
  302. addq.l #4,a0
  303. or.w (a0),d0
  304. addq.L #4,a0
  305. move d0,(a1)+
  306. clr (a1)+
  307. move d0,(a1)+
  308. clr (a1)+
  309. move d0,(a1)+
  310. clr (a1)+
  311. dbra d7,masq2
  312. rts
  313.  
  314. irq:
  315. movem.L d0-d7/a0-a6,-(a7)
  316. lea $dff000,a6
  317. bsr.L altern
  318. tst jugw
  319. beq.s juga00
  320. subq #1,jugw
  321. bra.s juga0
  322. juga00:
  323. btst #$a,$16(a6)
  324. bne.s juga0
  325. bchg #0,juga
  326. move #50,jugw
  327. juga0:
  328. tst juga
  329. bne.s juga1
  330. move.L #bp1,d0
  331. sub.L scrval,d0
  332. move d0,copbpl1+6
  333. swap d0
  334. move d0,copbpl1+2
  335. move.l #$1820003,bar1
  336. move.L #$1820002,bar2
  337. move.l #$1820001,bar3
  338. move.l #$1820000,bar4
  339. move.l #$1820000,bar5
  340. bsr.L print
  341. bsr.L cycle
  342. bsr.L scroll
  343. bra.s juga2
  344. juga1:move #$b000,copbpl1+6
  345. move #6,copbpl1+2
  346. move.l #$1800002,bar1
  347. move.l #$1800004,bar2
  348. move.l #$1800007,bar3
  349. move.l #$1800004,bar4
  350. move.l #$1800002,bar5
  351. juga2:
  352. bsr.L stars
  353. lea $dff000,a6
  354. bsr.L affiche
  355. move #$8400,$96(a6)
  356. cyc:btst #$e,2(a6)
  357. bne.s cyc
  358. move #$400,$96(a6)
  359. tst flag
  360. bne.s irq1
  361. bsr.L clear
  362. bsr.L copscroll
  363. move #$8400,$96(a6)
  364. cyc2:btst #$e,2(a6)
  365. bne.s cyc2
  366. move #$400,$96(a6)
  367. move #1,flag
  368. irq4:move #$10,$9c(a6)
  369. movem.L (a7)+,d0-d7/a0-a6
  370. rte
  371.  
  372. irq1:
  373. tst flag1
  374. beq.s irq4
  375. move #$8400,$96(a6)
  376. cyc4:btst #$e,2(a6)
  377. bne.s cyc4
  378. move #$400,$96(a6)
  379. bsr.L bob
  380. ;move #$f00,$180(a6)
  381. move #$8400,$96(a6)
  382. cyc3:btst #$e,2(a6)
  383. bne.s cyc3
  384. move #$400,$96(a6)
  385. ;move #$ff0,$180(a6)
  386. move #$10,$9c(a6)
  387. clr flag
  388. clr flag1
  389. movem.L (a7)+,d0-d7/a0-a6
  390. rte
  391. t1:dc.l 0
  392. t2:dc.l 0
  393. altern:
  394. tst flag
  395. bne.s alt1
  396. move.L bpw1,d0
  397. move.L bpa1,bpw1
  398. move.l d0,bpa1
  399. move d0,copbpl3+6
  400. swap d0
  401. move d0,copbpl3+2
  402. swap d0
  403. addi.L #64,d0
  404. move d0,copbpl3+14
  405. swap d0
  406. move d0,copbpl3+10
  407. swap d0
  408. addi.L #64,d0
  409. move d0,copbpl3+22
  410. swap d0
  411. move d0,copbpl3+18
  412. alt1:rts
  413.  
  414. stars:
  415. lea set5+1,a0
  416. move #15,d7
  417. spriteloop:
  418. subq.B #5,(a0)
  419. add.l #8,a0
  420. dbra d7,spriteloop
  421. lea set6+1,a0
  422. move #15,d7
  423. spriteloopa:
  424. subq.B #6,(a0)
  425. add.l #8,a0
  426. dbra d7,spriteloopa
  427. lea set3+1,a0
  428. move #21,d7
  429. spriteloop2:
  430. subq.b #3,(a0)
  431. add.l #8,a0
  432. dbra d7,spriteloop2
  433. lea set4+1,a0
  434. move #21,d7
  435. sprite2loopa:
  436. subq.B #4,(a0)
  437. add.L #8,a0
  438. dbra d7,sprite2loopa
  439. lea set1+1,a0
  440. move #31,d7
  441. spriteloop3:
  442. subq.b #1,(a0)
  443. add.l #8,a0
  444. dbra d7,spriteloop3
  445. lea set2+1,a0
  446. move #31,d7
  447. spriteloop3a:
  448. subq.b #2,(a0)
  449. add.l #8,a0
  450. dbra d7,spriteloop3a
  451. rts
  452.  
  453. scroll:
  454. move.L scrollc,a0
  455. move.B (a0)+,d0
  456. cmpi.b #$77,(a0)
  457. bne.s scroll1
  458. lea scrol,a0
  459. scroll1:move.L a0,scrollc
  460. ext d0
  461. muls #46,d0
  462. subi.L #1426,d0
  463. move.l d0,scrval
  464. rts
  465.  
  466. scrval:dc.l 1426
  467. scrol:
  468. dc.b 0,0,0,0,0,0
  469. dc.b 1,1,1
  470. dc.b 2,2
  471. dc.b 3,4,5,7,9,11,13,16,19,23,27,31
  472. dc.b 27,23,19,16,13,11,9,7,5,4,3,2,2,1,1,1
  473. dc.b 0,0,0,0,0,0,$77
  474. even
  475. scrollc:dc.l scroll
  476.  
  477. clear:move #$34,$66(a6)
  478. move.l bpw1,d0
  479. addi.L #[10*3*64]+16,d0
  480. move.l d0,$54(a6)
  481. move.L #$1000000,$40(a6)
  482. move #[199*3*64]+6,$58(a6)
  483. rts
  484.  
  485.  
  486.  
  487. spball:dc.w 0
  488. balls:dc.w 0
  489.  
  490. moveball:
  491. lea boules+2,a0
  492. tst balls
  493. bne.s mb1
  494. add #12,spball
  495. move spball,d0
  496. sub d0,(a0)
  497. cmpi #-1400,(a0)
  498. blo.s mb2
  499. rts
  500. mb2:move #-1,balls
  501. add d0,(a0)
  502. rts
  503. mb1:
  504. sub #12,spball
  505. move spball,d0
  506. add d0,(a0)
  507. tst spball
  508. beq.s mb3
  509. rts
  510. mb3:clr balls
  511. move #$200,bra1
  512. rts
  513.  
  514. bras:
  515. bsr.s moveball
  516. lea sin,a0
  517. lea cos,a1
  518. lea hand+2,a2
  519. move bra1,d6
  520. addi #72,d6
  521. andi #$7fe,d6
  522. move d6,bra1
  523. move.L #38*8,d0
  524. muls (a1,d6.w),d0
  525. asr.L #5,d0
  526. asr.l #8,d0
  527. addi #12,d0
  528. move d0,18(a2)
  529. addq.l #6,a2
  530.  
  531. move.L #75*8,d0
  532. muls (a1,d6.w),d0
  533. asr.L #5,d0
  534. asr.l #8,d0
  535. subi #25,d0
  536. move d0,18(a2)
  537. addq.L #6,a2
  538.  
  539. move.L #100*8,d0
  540. muls (a1,d6.w),d0
  541. asr.L #5,d0
  542. asr.l #8,d0
  543. subi #50,d0
  544. move d0,18(a2)
  545.  
  546. ;*** La variable speed contient la vitesse de rotation (paire)
  547.  
  548. speed=32
  549.  
  550. calcule:
  551. addi #speed,z+2
  552. andi #$7fe,z+2
  553. lea jug,a2
  554. lea coord,a3
  555. lea val,a4
  556. sub.l a5,a5
  557. movem.L vide,d0-d7
  558. calculoop:
  559. movem.w (a2)+,d0/d1/d2
  560. move d0,d5
  561. move d1,d6
  562. sin200:muls #,d0    
  563. cos200:muls #,d1
  564. sub.l d1,d0
  565. cos200b:muls #,d5
  566. move d6,d1
  567. sin200b:muls #,d1
  568. add.l d5,d1
  569. asr.l #8,d0
  570. asr.l #2,d0
  571. asr.l #8,d1
  572. asr.l #2,d1
  573. y:move #$600,d3
  574. move d1,d5
  575. move d2,d6
  576. sin600:muls #,d1
  577. cos600:muls #,d2
  578. sub.l d2,d1
  579. cos600b:muls #,d5
  580. move d6,d2
  581. sin600b:muls #,d2
  582. add.l d5,d2
  583. asr.l #2,d1
  584. asr.l #8,d2
  585. asr.l #2,d2
  586. z:move #$200,d3
  587. move d2,d5
  588. move d0,d6
  589. muls (a0,d3),d2
  590. muls (a1,d3),d0
  591. sub.l d0,d2
  592. muls (a1,d3),d5
  593. move d6,d0
  594. muls (a0,d3),d0
  595. add.l d5,d0
  596. asr.l #2,d0
  597. asr.l #8,d2
  598. asr.l #6,d2
  599.  
  600. add #300,d2
  601. divs d2,d0
  602. divs d2,d1
  603. move d2,(a4)+
  604. cmpi #3,a5
  605. blo.s cal0
  606. addi #[41*64]+16,d0
  607. addi #[111*16],d1
  608. bra.s cal1
  609. cal0:addi #[40*64]-48,d0
  610. addi #[111*16],d1
  611. cal1:
  612. asr #4,d0
  613. asr #4,d1
  614. move d0,d2
  615. lsr #3,d0
  616. bclr #0,d0
  617. and #$f,d2
  618. lsl #6,d1
  619. move d1,d6
  620. add d6,d1
  621. add d6,d1
  622. add d1,d0
  623. swap d0
  624. clr d0
  625. swap d0
  626. move.l d0,(a3)+
  627. ror #4,d2
  628. move d2,(a3)+
  629. or #$fca,d2
  630. move d2,(a3)+
  631. add #1,a5
  632. cmpi #$7777,(a2)
  633. bne.L calculoop
  634. move #$7777,(a3)
  635. move #$7777,(a4)
  636.  
  637. lea ordre,a0
  638. lea val,a1
  639. clr.L d0
  640. loop1:
  641. move.L d0,d1
  642. add.l #2,d1
  643. loop2:
  644. move (a0,d0.w),d2
  645. move (a0,d1.w),d3
  646. lsl #1,d2
  647. lsl #1,d3
  648. move (a1,d2.w),d4
  649. move (a1,d3.w),d5
  650. cmp d5,d4
  651. bge.s noexg
  652. lsr #1,d2
  653. lsr #1,d3
  654. move d2,(a0,d1.w)
  655. move d3,(a0,d0.w)
  656. noexg:
  657. addq.L #2,d1
  658. cmpi #$7777,(a0,d1.w)
  659. bne.s loop2
  660. add.l #2,d0
  661. cmpi #$7777,2(a0,d0.w)
  662. bne.s loop1
  663. clr.l d0
  664. rts
  665.  
  666. bob:
  667. lea ordre,a1
  668. lea bo,a4
  669. lea coord,a3
  670. move.l #$ffff0000,$44(a6)
  671. clr.L $62(a6)
  672. move #$8400,$96(a6)
  673. move.l bpw1,d0
  674. bobl1:
  675. btst #$e,2(a6)
  676. bne.s bobl1
  677. move (a1)+,d2
  678. lsl #3,d2
  679. move.l (a3,d2.w),d1
  680. add.L d0,d1
  681. move.l (a4,d2.w),d4
  682. move.l d4,$4c(a6)
  683. move.L 4(a4,d2.w),$50(a6)
  684. move.l d1,$48(a6)
  685. move.L d1,$54(a6)
  686. cmpi.L #bob1,d4
  687. beq.s bobb2
  688. cmpi.L #bob2,d4
  689. beq.s bobb2
  690. cmpi.l #bob8,d4
  691. beq.s bobb2
  692. move #$3c,$60(a6)
  693. move #$3c,$66(a6)
  694. move 4(a3,d2.w),$42(a6)
  695. move 6(a3,d2.w),$40(a6)
  696. move #3074,$58(a6)
  697. cmpi #$7777,(a1)
  698. bne.s bobl1
  699. rts
  700.  
  701. bobb2:
  702. move #$3a,$60(a6)
  703. move #$3a,$66(a6)
  704. move 4(a3,d2.w),$42(a6)
  705. move 6(a3,d2.w),$40(a6)
  706. move #6147,$58(a6)
  707. cmpi #$7777,(a1)
  708. bne.L bobl1
  709. rts
  710.  
  711. var1:dc.w 15
  712. print:
  713. move #$8400,$96(a6)
  714. printwb:btst #6,2(a6)
  715. bne.s printwb
  716. move #$400,$96(a6)
  717. move.L #$9f00000,$40(a6)
  718. move.l #-1,$44(a6)
  719. clr $64(a6)
  720. move #44,$66(a6)
  721. lea fonte,a1
  722. move.L #bp1,d2
  723. add.L #44+1426,d2
  724. clr.l d0
  725. move.l textptr,a0
  726. move.b (a0),d0
  727. sub.b #$20,d0
  728. lsl.b #1,d0
  729. add.l d0,a1
  730. move #15,d6
  731. print1:
  732. move (a1),d0
  733. add.l #120,a1
  734. move var1,d7
  735. move.L d2,d1
  736. btst d7,d0
  737. beq.s print2
  738. move #$8400,$96(a6)
  739. wbl:btst #6,2(a6)
  740. bne.s wbl
  741. move.L #carre,$50(a6)
  742. move.L d1,$54(a6)
  743. move #769,$58(a6)
  744. move #$400,$96(a6)
  745. bra.s print03
  746. print2:
  747. move #$8400,$96(a6)
  748. wbl4:btst #6,2(a6)
  749. bne.s wbl4
  750. move.L #carre1,$50(a6)
  751. move.L d1,$54(a6)
  752. move #769,$58(a6)
  753. move #$400,$96(a6)
  754. print03:
  755. add.L #552,d2    ;13*46
  756. dbra d6,print1
  757. subq #1,var1
  758. cmpi #-1,var1
  759. bne.s print3
  760. move #15,var1
  761. move.L textptr,a0
  762. addq.L #1,a0
  763. move.L a0,textptr
  764. tst.B (a0)
  765. beq.s fini
  766. cmpi.b #"s",(a0)
  767. beq.s chspeed
  768. print3:rts
  769. fini:
  770. move.l #text,textptr
  771. rts
  772. chspeed:
  773. addq.L #1,textptr
  774. cmpi.B #$49,delai2+2
  775. beq.s chsp1
  776. move.l #$49f00000,delai2+2
  777. rts
  778. chsp1:
  779. move.L #$9f00000,delai2+2
  780. rts
  781.  
  782. cycle:
  783. btst #$e,$2(a6)
  784. bne.s cycle
  785. move.l #bp1,d0
  786. add.l #1426,d0
  787. move.L d0,$54(a6)
  788. addq.L #2,d0
  789. move.l d0,$50(a6)
  790. delai2:move.l #$9f00000,$40(a6)
  791. move.l #$ffffffff,$44(a6)
  792. move #2,$64(a6)
  793. move #2,$66(a6)
  794. move.w #14230,$58(a6)
  795. rts
  796.  
  797. copscroll:
  798. lea cop1+6,a0
  799. move #94,d7
  800. move (a0),d0
  801. cops1:
  802. move 20(a0),(a0)
  803. move 20(a0),4(a0)
  804. move 20(a0),8(a0)
  805. move 20(a0),12(a0)
  806. add.L #20,a0
  807. dbra d7,cops1
  808. move d0,(a0)
  809. move d0,4(a0)
  810. move d0,8(a0)
  811. move d0,12(a0)
  812. rts
  813.  
  814. fonte:
  815. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  816. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  817. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  818. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  819. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  820. dc.l $000003E0,$0E380000,$03800004,$000001C0,$00F80F80,$008003C0
  821. dc.l $00000000,$00000008,$00000000,$00000000,$00000000,$00000000
  822. dc.l $00000000,$00000000,$00000000,$00000FF0,$00000000,$00000000
  823. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  824. dc.l $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  825. dc.l $000003E0,$1F7C0000,$03801C0E,$0FF003E0,$01F007C0,$008003C0
  826. dc.l $00000000,$0000001C,$0FF00180,$0FF03FF8,$781E7FFE,$0FF07FF0
  827. dc.l $0FF007F0,$00000000,$00000000,$00003FFC,$00000FF0,$7FF00FF0
  828. dc.l $7FF00FFE,$0FFE0FF0,$781E3FFC,$001E781E,$78007C3E,$7FF00FF0
  829. dc.l $7FF00FF0,$7FF00FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
  830. dc.l $000003E0,$1F7C0000,$1FF03E1F,$3FFC03E0,$03E003E0,$01C003C0
  831. dc.l $00000000,$0000003E,$3FFC0780,$3FFC3FFE,$781E7FFE,$3FFC7FFC
  832. dc.l $3FFC3FFC,$01C001C0,$00000000,$00003FFC,$00003FFC,$7FFC3FFC
  833. dc.l $7FFC3FFE,$3FFE3FFC,$781E3FFC,$001E783E,$78007E7E,$7FFC3FFC
  834. dc.l $7FFC3FFC,$7FFC3FFE,$7FF8781E,$781E781E,$781E7878,$7FFE0000
  835. dc.l $000003E0,$1F7C0080,$3FF83E3E,$3C3C03E0,$03E003E0,$01C003C0
  836. dc.l $00000000,$0000007F,$3C3C1F80,$3C3C001E,$781E7800,$3C3C7FFC
  837. dc.l $3C3C3C3C,$03E003E0,$00007FFF,$00007FFE,$00003C3C,$783C3C3C
  838. dc.l $783C3C00,$3C003C3C,$781E03C0,$001E787C,$78007FFE,$783C3C3C
  839. dc.l $783C3C3C,$783C3C00,$0780781E,$781E781E,$7C3E7878,$001E0000
  840. dc.l $000003E0,$0F3C0140,$3FF83E7C,$781E01E0,$07C001F0,$03E003C0
  841. dc.l $00000000,$000000FE,$781E0780,$781E000F,$781E7800,$781E7FFE
  842. dc.l $781E781E,$03E003E0,$00007FFF,$0000783E,$0000781E,$781E781E
  843. dc.l $781E7800,$7800781E,$781E03C0,$001E78F8,$78007BDE,$781E781E
  844. dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3C3C7878,$001E0000
  845. dc.l $000003E0,$06180220,$3B801CF8,$781E00C0,$07C001F0,$7FFF03C0
  846. dc.l $00007FFF,$000001FC,$781E0780,$001E000F,$781E7800,$7800003E
  847. dc.l $781E781E,$03E003E0,$00007FFF,$0000003C,$0000781E,$781E781E
  848. dc.l $781E7800,$7800781E,$781E03C0,$001E79F0,$7800799E,$781E781E
  849. dc.l $781E781E,$781E7800,$0780781E,$781E781E,$3E7C7878,$001E0000
  850. dc.l $000003E0,$0C3007F0,$3FF001F0,$7C3E0180,$07C001F0,$3FFE7FFF
  851. dc.l $00007FFF,$000003F8,$781E0780,$003C001F,$781E7800,$7C00001E
  852. dc.l $7C3E3C3E,$01C001C0,$00007FFF,$0000007C,$0000781E,$783E781E
  853. dc.l $781E7800,$78007800,$781E03C0,$001E7BE0,$7800781E,$781E781E
  854. dc.l $783C781E,$783C3C00,$0780781E,$781E781E,$1FF87CF8,$003C0000
  855. dc.l $000003E0,$00000A28,$3FF803E0,$3FFC0000,$07C001F0,$1FFC7FFF
  856. dc.l $00007FFF,$000007F0,$7C1E0780,$0FFC03FE,$7FFE7FF0,$7FF0001E
  857. dc.l $3FFC3FFE,$00000000,$00000000,$000001F8,$00007FFE,$7FFC7C00
  858. dc.l $7C1E7FE0,$7FE07C7E,$7FFE07C0,$003E7FF0,$7C007C1E,$7C1E7C1E
  859. dc.l $7FFC7C1E,$7FFC3FF0,$0F807C1E,$7C3E799E,$0FF03FF0,$0FFC0000
  860. dc.l $000003E0,$00001144,$1FF807C0,$3FFC0000,$07C001F0,$0FF87FFF
  861. dc.l $01C07FFF,$00000FE0,$7E1E0780,$3FF003FE,$7FFE7FFC,$7FFC003E
  862. dc.l $3FFC0FFE,$01C001C0,$00007FFF,$000003E0,$00007FFE,$7FFC7E00
  863. dc.l $7E1E7FE0,$7FE07E7E,$7FFE0FC0,$007E7FF0,$7E007E1E,$7E1E7E1E
  864. dc.l $7FF07E1E,$7FF80FFC,$1F807E1E,$3E7C7BDE,$1FF83FF0,$3FF00000
  865. dc.l $00000000,$00003FFE,$03B80F9C,$781E0000,$07C001F0,$0FF87FFF
  866. dc.l $03E00000,$00001FC0,$7E1E0780,$3E00003F,$007E007C,$783C007E
  867. dc.l $781E001E,$03E003E0,$00007FFF,$000003C0,$00007E1E,$7E1E7E1E
  868. dc.l $7E1E7E00,$7E007E1E,$7E1E0FC0,$787E7EF8,$7E007E1E,$7E1E7E1E
  869. dc.l $7E007E1E,$7E3C003C,$1F807E1E,$3FFC7FFE,$3FFC1FE0,$3E000000
  870. dc.l $000001C0,$00000000,$3FF81F3E,$781E0000,$07C001F0,$1FFC03C0
  871. dc.l $03E00000,$01C03F80,$7E3E0780,$7C00003F,$007E003E,$783E007E
  872. dc.l $781E783E,$03E003E0,$00007FFF,$00000000,$00007E1E,$7E1E7E3E
  873. dc.l $7E3E7E00,$7E007E3E,$7E1E0FC0,$7E7E7EF8,$7E007E1E,$7E1E7E3E
  874. dc.l $7E007E3E,$7E1E003E,$1F807E3E,$1FF87FFE,$3FFC0780,$7C000000
  875. dc.l $000003E0,$00000000,$3FF83E3E,$7FFE0000,$03E003E0,$1E3C03C0
  876. dc.l $03E00000,$03E07F00,$7FFE7FF8,$7FFE3FFF,$007E7FFE,$7FFE007E
  877. dc.l $7FFE7FFE,$03E003E0,$00007FFF,$00000180,$00007E1E,$7FFE7FFE
  878. dc.l $7FFE7FFE,$7E007FFE,$7E1E3FFC,$7FFE7E7C,$7FFE7E1E,$7E1E7FFE
  879. dc.l $7E007FFE,$7E1E7FFE,$1F807FFE,$0FF07FFE,$7E7E0780,$7FFE0000
  880. dc.l $000003E0,$00000000,$1FF07C3E,$3FFF0000,$03E003E0,$380E03C0
  881. dc.l $01E00000,$03E03E00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
  882. dc.l $3FFC3FFC,$01C001E0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
  883. dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E7C,$3FFE7E1E,$7E1E3FFC
  884. dc.l $7E003FF8,$7E1E7FFC,$1F803FFC,$07E07FFE,$7E7E0780,$7FFE0000
  885. dc.l $000003E0,$00000000,$0380381C,$3FFE0000,$01F007C0,$200203C0
  886. dc.l $00C00000,$03E01C00,$3FFC7FF8,$7FFE3FFE,$007E7FFC,$3FFC007E
  887. dc.l $3FFC3FFC,$000000C0,$00000000,$000003C0,$00007E1E,$7FFC3FFC
  888. dc.l $7FFC3FFE,$7E003FFC,$7E1E3FFC,$3FFC7E3E,$3FFE7E1E,$7E1E3FFC
  889. dc.l $7E003FFE,$7E1E7FFC,$1F803FFC,$03C07E7E,$7C3E0780,$7FFE0000
  890. dc.l $000001C0,$00000000,$03801000,$0FF40000,$00F80F80,$000003C0
  891. dc.l $01800000,$01C00800,$0FF07FF8,$7FFE3FF8,$007E7FF0,$0FF0007E
  892. dc.l $0FF00FF0,$00000180,$00000000,$00000180,$00007E1E,$7FF00FF0
  893. dc.l $7FF00FFE,$7E000FF0,$7E1E3FFC,$0FF07E3E,$0FFE7E1E,$7E1E0FF0
  894. dc.l $7E000FE6,$7E1E7FF0,$1F800FF0,$01807C3E,$7C3E0780,$7FFE0000
  895.  
  896. save_all:
  897. move.L 4,a6
  898. jsr -132(a6)
  899. move.b #%10000111,$bfd100
  900. move.l $6c,save_vecteur_irq
  901. move.w $dff01c,save_intena
  902. or.w #$c000,save_intena
  903. move.w $dff002,save_dmacon
  904. or.w #$8100,save_dmacon
  905. rts
  906. restore_all:
  907. move.l save_vecteur_irq,$6c
  908. move.w #$7fff,$dff09a
  909. move.w save_intena,$dff09a
  910. move.w #$7fff,$dff096
  911. move.w save_dmacon,$dff096
  912. move.l 4,a6
  913. lea name_glib,a1
  914. moveq #0,d0
  915. jsr -552(a6)
  916. move.l d0,a0
  917. move.l 38(a0),$dff080
  918. clr.w $dff088
  919. move.L 4,a6
  920. jsr -138(a6)
  921. rts
  922. save_intena:dc.w 0
  923. save_dmacon:dc.w 0
  924. save_vecteur_irq:dc.l 0
  925. name_glib:dc.b "graphics.library",0
  926. even
  927.  
  928. makecopper:
  929. lea cop1,a0
  930. move.L #$670ffffe,d0
  931. move #95,d6
  932. mcl0:
  933. move.l d0,(a0)+
  934. move.L #$1840000,(a0)+
  935. move.l #$1860000,(a0)+
  936. move.l #$18c0000,(a0)+
  937. move.l #$18e0000,(a0)+
  938. add.L #$1000000,d0
  939. dbra d6,mcl0
  940.  
  941. lea cop1+6,a0
  942. lea deg,a1
  943. move #5,d6
  944. mcl5:
  945. move (a1)+,d0
  946. move (a1)+,d1
  947. move (a1),d2
  948. move #15,d7
  949. mcl6:
  950. move d0,(a0)
  951. move d0,4(a0)
  952. move d0,8(a0)
  953. move d0,12(a0)
  954. add.L #20,a0
  955. add d1,d0
  956. dbra d7,mcl6
  957. dbra d6,mcl5
  958.  
  959. lea copbpl2,a0
  960. move.L #logo0b,d0
  961. move d0,6(a0)
  962. swap d0
  963. move d0,2(a0)
  964. swap d0
  965. addi.L #36*44,d0
  966. move d0,14(a0)
  967. swap d0
  968. move d0,10(a0)
  969. swap d0
  970. addi.L #36*44,d0
  971. move d0,22(a0)
  972. swap d0
  973. move d0,18(a0)
  974. rts
  975. mcs1:dc.w 0
  976.  
  977. deg:dc.W $f00,$10,$ff0,-$100,$f0,1,$ff,-$10,$f,$100,$f0f,-1,$f00
  978.  
  979. copperlist:        ;quel bordel !
  980. dc.L $10ffffe,$920030,$9400d8
  981. copspr:dc.L $1200000,$1220000,$1240000,$1260000,$1280000,$12a0000
  982. dc.L $12c0000,$12e0000,$1300000,$1320000,$1340000,$1360000,$1380000
  983. dc.l $13a0000,$13c0000,$13e0000
  984. dc.l $1020000,$1040000,$1080002,$10a0094,$1000200
  985. dc.w    $0180,$0000 ,$0182,$0000
  986. dc.L $1880888,$18a0888
  987. dc.w    $0190,$0000 ,$0192,$0eca ,$0194,$035e ,$0196,$023a
  988. dc.w    $0198,$0126 ,$019a,$0cc0 ,$019c,$0c80 ,$019e,$0c50
  989.  
  990. dc.w    $01a0,$0000 ,$01a2,$0334 ,$01a4,$0778 ,$01a6,$099a
  991. dc.w    $01a8,$0000 ,$01aa,$0223 ,$01ac,$0445 ,$01ae,$0667
  992. dc.w    $01b0,$0000 ,$01b2,$0666 ,$01b4,$0aaa ,$01b6,$0fff
  993. dc.L $1b80000,$1ba0000,$1bc0000,$1be0000
  994. dc.L $200ffffe,$9683e0
  995. copbpl1:dc.W $e0,5,$e2,$0000,$e8,5,$ea,$6000,$f0,5,$f2,$602e
  996. copbpl3:dc.w $e4,6,$e6,$b000,$ec,6,$ee,$b000,$f4,6,$f6,$b000
  997. copscr1:dc.L $210ffffe,$1006600
  998. dc.L $250ffffe,$1820001
  999. dc.L $260ffffe,$1820002
  1000. dc.L $270ffffe,$1820003
  1001. dc.L $280ffffe,$1820004
  1002. dc.L $290ffffe,$1820005
  1003.  
  1004. cop1:blk.b 96*20
  1005.  
  1006. dc.L $f90ffffe,$9c8010,$1004600,$1840fff,$1860fff,$1820004;,$960020,$9683c0
  1007. dc.l $1a20000,$1a40000,$1a60000,$1aa0000,$1ac0000,$1ae0000
  1008. dc.l $1b20000,$1b40000,$1b60000
  1009. dc.L $fa0ffffe,$1840eee,$1860eee
  1010. bar1:dc.L $1820003
  1011. dc.L $fb0ffffe,$1840ddd,$1860ddd
  1012. bar2:dc.l $1820002
  1013. dc.L $fc0ffffe,$1840ccc,$1860ccc
  1014. bar3:dc.L $1820001
  1015. dc.L $fd0ffffe,$1840bbb,$1860bbb
  1016. bar4:dc.L $1820000
  1017. dc.l $fe0ffffe
  1018. bar5:dc.L $1820000
  1019.  
  1020. dc.L $ff0ffffe
  1021. dc.L $1000200,$1820000,$1800000
  1022. dc.L $ffdffffe
  1023. copbpl2:dc.l $e00006,$e2b000,$e40006,$e6b000,$e80006,$eab000
  1024. logdec:dc.L $1020000,$1080000,$10a0000    ;,$920028,$9400d8
  1025.  
  1026. dc.w    $0180,$0000 ,$0182,$0fff ,$0184,$0bcd ,$0186,$07ab
  1027. dc.w    $0188,$0589 ,$018a,$0257 ,$018c,$0145 ,$018e,$0023
  1028.  
  1029. dc.L $20ffffe,$1003200
  1030. dc.l $250ffffe,$108ff7c,$10aff7c
  1031. dc.w    $0180,$0000 ,$0182,$0888 ,$0184,$0566 ,$0186,$0455
  1032. dc.w    $0188,$0344 ,$018a,$0134 ,$018c,$0023 ,$018e,$0012
  1033. dc.L $280ffffe,$1020011
  1034. dc.l $2a0ffffe,$1020022
  1035. dc.l $2c0ffffe,$1020033
  1036. dc.L $2e0ffffe,$1020044
  1037. dc.L $300ffffe,$1020055
  1038. dc.L $320ffffe,$1020066
  1039. dc.L $340ffffe,$1020077
  1040. dc.L $360ffffe,$1020088
  1041. dc.l $370ffffe,$1000200
  1042. dc.L -2
  1043.  
  1044. bpa1:dc.L bp3
  1045. bpw1:dc.L bp4
  1046.  
  1047. setf:blk.b 4,0
  1048. set:
  1049. incbin "set"
  1050. set1=set
  1051. set2=set1+256
  1052. set3=set2+256
  1053. set4=set3+$b0
  1054. set5=set4+$b0
  1055. set6=set5+$80
  1056.  
  1057. carre:blk.b 32,0
  1058. carre1:blk.b 32,$ff
  1059. fonts:
  1060. incbin "fonts"
  1061.  
  1062. sin:
  1063. incbin "sincos"
  1064. cos=sin+$200
  1065. vide:blk.b 32,0
  1066.  
  1067.  
  1068. jug:
  1069. dc.w 0,500,0,0,0,0
  1070. dc.w 0,1180,0
  1071. dc.W 0,700,0
  1072. dc.w 350,550,0,500,380,0,650,220,0
  1073. dc.w -350,550,0,-400,300,0,-400,50,0
  1074. dc.W 300,-250,100,-300,-250,100
  1075. dc.W 300,-480,100,300,-710,100
  1076. dc.W -300,-480,100,-300,-710,100
  1077. dc.w 300,-940,90,300,-1170,60
  1078. dc.w -300,-940,90,-300,-1170,60
  1079. dc.W 300,-1400,20,-300,-1400,20
  1080. hand:dc.w 520,100,0,370,25,0,220,-50,0
  1081. dc.w -400,-25,200,-400,-100,350,-400,-150,470
  1082. boules:dc.w -400,-250,470
  1083. dc.w 110,1070,190,-110,1070,190
  1084. dc.w $7777
  1085.  
  1086. coord:blk.w 138,0
  1087. ordre:dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
  1088. dc.w 15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,$7777
  1089.  
  1090. bra1:dc.w $200
  1091.  
  1092. bo:dc.L bob1,mask1,bob2,mask2
  1093. dc.l bob8,mask8
  1094. dc.L bob3,mask3
  1095. dc.l bob5,mask5,bob5,mask5,bob5,mask5
  1096. dc.l bob5,mask5,bob5,mask5,bob5,mask5
  1097. dc.l bob4,mask4,bob4,mask4
  1098. dc.l bob5,mask5,bob5,mask5
  1099. dc.l bob5,mask5,bob5,mask5
  1100. dc.l bob5,mask5,bob5,mask5
  1101. dc.l bob5,mask5,bob5,mask5
  1102. dc.l bob5,mask5,bob5,mask5
  1103. dc.l bob5,mask5,bob6,mask6,bob7,mask7
  1104. dc.l bob5,mask5,bob6,mask6,bob7,mask7
  1105. dc.L bob9,mask9    ;boules
  1106. dc.L bob7,mask7,bob7,mask7
  1107. val:blk.w 35
  1108. bobs:
  1109. incbin "bobs"
  1110. bob1=bobs
  1111. bob2=bob1+576
  1112. bob3=bob2+576
  1113. bob4=bob3+192
  1114. bob5=bob4+192
  1115. bob6=bob5+192
  1116. bob7=bob6+192
  1117. bob8=bob7+192
  1118. bob9=bob8+576
  1119.  
  1120. logo0b:
  1121. incbin "logo44"
  1122.  
  1123. end:
  1124. masks:
  1125. mask1=masks
  1126. mask2=mask1+576
  1127. mask3=mask2+576
  1128. mask4=mask3+192
  1129. mask5=mask4+192
  1130. mask6=mask5+192
  1131. mask7=mask6+192
  1132. mask8=mask7+192
  1133. mask9=mask8+576
  1134. bp1=$50000
  1135. bp5=$56000
  1136. bp3=$60000
  1137. bp4=$70000
  1138. bpv=$6b000
  1139.