home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / bbintro.lha / BootIntro2.s / booty4.S next >
Encoding:
Text File  |  1980-01-01  |  9.9 KB  |  645 lines

  1. s:
  2. lea    $52000,a0
  3. lea    $61000,a1
  4. l1:
  5. clr.l    (a0)+
  6. cmp.l    a0,a1
  7. bne    l1
  8. lea    $70000,a0
  9. lea    $71000,a1
  10. l2:
  11. clr.l    (a0)+
  12. cmp.l    a0,a1
  13. bne    l2
  14.  
  15. lea    coppar,a0
  16. move.l    #$7811fffe,d0
  17. move.w    #$0182,d1
  18. lea    color,a1
  19. move.w    #6,d3
  20. nt:
  21. move.w    #16,d2
  22. makec1:
  23. move.l    d0,(a0)+
  24. move.w    d1,(a0)+
  25. move.w    (a1)+,(a0)+
  26. add.l    #$01000000,d0
  27. sub.w    #1,d2
  28. bne    makec1
  29. add.l    #$02000000,d0
  30. sub.w    #1,d3
  31. bne    nt
  32.  
  33. lea    $76000,a0
  34. lea    $50000,a1
  35. bsr    unpack
  36. bsr    setupcol
  37. bsr    mb
  38.  
  39. move.l    $04,a6
  40. jsr    -132(a6)
  41. lea    gfxname,a1
  42. jsr    -408(a6)
  43. move.l    d0,gfxbase
  44. move.l    d0,a0
  45. move.l    50(a0),oldclist
  46. move.l    #newclist,50(a0)
  47. move.l    $6c,oldirq+2
  48. move.l    #newirq,$6c
  49. wait:
  50. btst    #6,$bfe001
  51. bne.s    wait
  52. move.l    oldirq+2,$6c
  53. move.l    gfxbase,a0
  54. move.l    oldclist,50(a0)
  55. move.l    $04,a6
  56. move.l    gfxbase,a1
  57. jsr    -414(a6)
  58. jsr    -138(a6)
  59. rts
  60.  
  61. newirq:
  62. movem.l    d0-d7/a0-a6,-(sp)
  63.  
  64. bsr    makeall
  65. bsr    blittall
  66. bsr    makescrolly
  67. bsr    scroll
  68. bsr    stars
  69. bsr    blittotti
  70. sub.w    #1,w2
  71. bne    exit
  72. move.w    #4,w2
  73. sub.l    #8,wert
  74. cmp.l    #$51ef0,wert
  75. bpl    exit
  76. move.l    #$51f10,wert
  77. exit:
  78. movem.l    (sp)+,d0-d7/a0-a6
  79. oldirq:
  80. jmp    $00000000
  81.  
  82. newclist:
  83. dc.w    $008e,$2c81,$0090,$30c1,$0092,$0038,$0094,$00d0
  84. dc.w    $0102,$0000,$0104,$0000,$0108,40,$010a,0
  85. dc.w    $0100,$3400
  86. dc.w    $00e0,$0005,$00e2,$3000,$00e4,$0006,$00e6,$0000
  87. dc.w    $00e8,$0005,$00ea,$3028
  88. copcol:
  89. blk.l    4,0
  90. dc.w    $1011,$fffe,$180,1
  91. dc.w    $7611,$fffe,$0100,$2200
  92. dc.w    $e0,$5,$e2,$3000+[74*80],$e4,$5,$e6,$3028+[74*80],$10a,40
  93. dc.w    $192,$fff
  94. coppar:
  95. blk.w    6*16*4,0
  96. dc.w    $e511,$fffe,$180,1
  97. dc.w    $e611,$fffe,$180,2
  98. dc.w    $e711,$fffe,$180,3
  99. dc.w    $e811,$fffe,$180,4
  100. dc.w    $e911,$fffe,$e2,$8000,$e6,$8028,$180,5,$182,$fff,$184,$0
  101. dc.w    $186,$e4e
  102. dc.w    $ffe1,$fffe,$190,0
  103. dc.w    $1a11,$fffe,$00e0,$0007,$00e4,$0007,$00e2,$0002
  104. dc.w    $00e6,$002e,$182,$999,$108,48,$010a,48
  105.  
  106. dc.w    $1c11,$fffe,$180,$400
  107. dc.w    $1d11,$fffe,$180,$600
  108. dc.w    $1e11,$fffe,$180,$800
  109. dc.w    $1f11,$fffe,$180,$600
  110. dc.w    $2011,$fffe,$180,$400
  111. dc.w    $2111,$fffe,$180,$4
  112.  
  113. dc.w    $2411,$fffe,$180,$400
  114. dc.w    $2511,$fffe,$180,$600
  115. dc.w    $2611,$fffe,$180,$800
  116. dc.w    $2711,$fffe,$180,$600
  117. dc.w    $2811,$fffe,$180,$400
  118. dc.w    $2911,$fffe,$180,$4
  119.  
  120. dc.w    $2c11,$fffe,$180,4
  121. dc.w    $2d11,$fffe,$180,3
  122. dc.w    $2e11,$fffe,$180,2
  123. dc.w    $2f11,$fffe,$180,1
  124. dc.w    $3011,$fffe,$180,0
  125. dc.w    $ffff,$fffe
  126.  
  127. oldclist:
  128. dc.l    0
  129. gfxbase:
  130. dc.l    0
  131. gfxname:
  132. dc.b    "graphics.library",0
  133. even
  134. unpack:
  135.     add.l    #12,a0
  136.     move.l    4(a0),d0
  137.     add.l    d0,a0
  138.     add.l    #8,a0
  139.     move.l    a0,cmapchunk
  140.  
  141. iff1:    cmp.l    #$424f4459,(a0)
  142.     beq    iff0
  143.     add.l    #2,a0
  144.     bra    iff1
  145.  
  146. iff0:    move.l    4(a0),d0    ; Anzahl Bytes
  147.     add.l    #1,d0
  148.     and.l    #$fffffffe,d0
  149.  
  150.     add.l    #8,a0        ; Pointer to first Byte
  151.  
  152. iff4:    clr.l    d2
  153.     move.b    (a0)+,d2
  154.     bmi    iff6
  155.  
  156. iff5:    move.b    (a0)+,(a1)+
  157.     subi.l    #1,d0
  158.     subi.b    #1,d2
  159.     bpl    iff5
  160.     bra    iff7
  161.     
  162. iff6:    neg.b    d2
  163.     beq    iff7
  164.  
  165. iff61:    move.b    (a0),(a1)+
  166.     subi.b    #1,d2
  167.     bpl    iff61
  168.     subi.l    #1,d0
  169.     add.l    #1,a0
  170.  
  171. iff7:    subi.l    #1,d0
  172.     bmi    iff8
  173.     beq    iff8
  174.     bra    iff4
  175.  
  176. iff8:    move.l    cmapchunk,a0
  177.     move.l    cmap,a1
  178.     add.l    #8,a0
  179.     move.l    #8,d0
  180.  
  181. cmaploop:
  182.     clr.l    d1
  183.     move.b    (a0),d1
  184.     lsl.w    #4,d1
  185.     move.b    2(a0),d1
  186.     lsr.b    #4,d1
  187.     or.b    1(a0),d1
  188.     move.w    d1,(a1)+
  189.     add.l    #3,a0
  190.     sub.w    #1,d0
  191.     bne    cmaploop
  192.     rts
  193.  
  194. cmapchunk:
  195.     dc.l    0
  196.  
  197. cmap:    dc.l    color1
  198.  
  199. color1:    blk.w    8,0
  200.  
  201. setupcol:        ; Set Colors
  202. lea    color1,a0
  203. lea    copcol,a1
  204. move.l    #$01800000,d0
  205. move.l    #4,d1
  206.  
  207. suc1:
  208. move.w    (a0)+,d0
  209. move.l    d0,(a1)+
  210. add.l    #$00020000,d0
  211. sub.w    #1,d1
  212. bne    suc1
  213. rts
  214. adr:
  215. dc.l    $500f8,$500fc,$50100,$50104,$50108,$5010c
  216. badr:
  217. dc.l    $53008,$5300c,$53010+160,$53014+320,$53018+480
  218. dc.l    $5301c+640
  219. blittall:
  220. move.w    #6,d2
  221. lea    adr,a0
  222. lea    badr,a1
  223. notblittet:
  224. move.l    (a0)+,d0
  225. move.l    (a1)+,d1
  226. bsr    blittp
  227. sub.w    #1,d2
  228. bne    notblittet
  229. rts
  230.  
  231. blittp:
  232. move.l    d0,$dff050
  233. move.l    d1,$dff054
  234. move.w    #36,$dff064
  235. move.w    #36,$dff066
  236. move.w    #$ffff,$dff044
  237. move.w    #$ffff,$dff046
  238. move.l    #$09f00000,$dff040
  239. move.w    #$1702,$dff058
  240. waitp:
  241. btst    #6,$dff002
  242. bne    waitp
  243. rts
  244.  
  245. makeall:
  246. lea    badr,a1
  247. move.l    sz1,a0
  248. bsr    getsinus
  249. move.l    a0,sz1
  250.  
  251. move.l    sz2,a0
  252. bsr    getsinus
  253. move.l    a0,sz2
  254.  
  255. move.l    sz3,a0
  256. bsr    getsinus
  257. move.l    a0,sz3
  258.  
  259. move.l    sz4,a0
  260. bsr    getsinus
  261. move.l    a0,sz4
  262.  
  263. move.l    sz5,a0
  264. bsr    getsinus
  265. move.l    a0,sz5
  266.  
  267. move.l    sz6,a0
  268. bsr    getsinus
  269. move.l    a0,sz6
  270. rts
  271.  
  272. getsinus:
  273. move.l    (a0)+,d0
  274. cmp.l    #$ffff,d0
  275. bne    notf
  276. lea    sd,a0
  277. move.l    (a0)+,d0
  278. notf:
  279. add.l    d0,(a1)+
  280. rts
  281. sd:
  282. dc.l    0,0,0,80,80,80,80,80,80,160,160,160,160,240,240,320,320
  283. dc.l    -320,-320,-240,-240,-160,-160,-160,-160,-80,-80,-80,-80
  284. dc.l    -80,-80
  285. dc.l    $ffff
  286. sz1:    dc.l    sd
  287. sz2:    dc.l    sd+[2*4]
  288. sz3:    dc.l    sd+[4*4]
  289. sz4:    dc.l    sd+[6*4]
  290. sz5:    dc.l    sd+[8*4]
  291. sz6:    dc.l    sd+[10*4]
  292.  
  293. mb:
  294. lea    board,a3
  295. move.l    #$546d0+[3*80],d3
  296. move.w    #6,d5
  297. nnar:
  298. move.w    #20,d4
  299. notall:
  300. move.b    (a3)+,d0
  301. bsr    makesen
  302. add.l    #2,d3
  303. sub.w    #1,d4
  304. bne    notall
  305. add.l    #[35*40],d3
  306. sub.w    #1,d5
  307. bne    nnar
  308. rts
  309.  
  310. makesen:
  311. move.l    #45,d1
  312. lea    ascii,a0
  313. nrc:
  314. cmp.b    (a0,d1.l),d0
  315. beq    printit
  316. sub.l    #1,d1
  317. bpl    nrc
  318. printit:
  319. lsl.l    #2,d1
  320. add.l    #atab,d1
  321. move.l    d1,a2
  322. move.l    (a2),d0
  323. move.l    d3,d1
  324. bsr    getchar
  325. rts
  326.  
  327. getchar:
  328. move.l    d0,$dff050
  329. move.l    d1,$dff054
  330. move.w    #38,$dff064
  331. move.w    #38,$dff066
  332. move.w    #$ffff,$dff044
  333. move.w    #$ffff,$dff046
  334. move.l    #$09f00000,$dff040
  335. move.w    #$0801,$dff058
  336. waitforchar:
  337. btst    #6,$dff002
  338. bne    waitforchar
  339. rts
  340. b = $50ff0
  341. c = $514f0
  342. d = $519f0
  343. atab:
  344. dc.l    b,b+2,b+4,b+6,b+8,b+10,b+12,b+14,b+16,b+18,b+20,b+22
  345. dc.l    b+24,b+26,b+28,b+30,b+32,b+34,b+36,b+38
  346. dc.l    c,c+2,c+4,c+6,c+8,c+10,c+12,c+14,c+16,c+18,c+20,c+22
  347. dc.l    c+24,c+26,c+28,c+30,c+32,c+34,c+36,c+38
  348. dc.l    d,d+2,d+4,d+6,d+8,d+10,d+12,d+14,d+16,d+18,d+20,d+22
  349. dc.l    d+24,d+26,d+28,d+30,d+32
  350. ascii:
  351. dc.b    "abcdefghijklmnopqrst"
  352. dc.b    "uvwxyz0123456789,-./"
  353. dc.b    ":! (*)"
  354. board:
  355. dc.b    "presents : new stuff"
  356. dc.b    " we are looking for "
  357. dc.b    "   new members !!!  "
  358. dc.b    " contact us under : "
  359. dc.b    "    plk 073908 c    "
  360. dc.b    "5060 berg.gladbach 2"
  361. text:
  362. dc.b    "sargon ...  there*s a new mighty place on earth ... "
  363. dc.b    "plk 073908 c    5060 berg.gladbach 2       we were the "
  364. dc.b    "best alpha flighters ....    watch out for our demos and "
  365. dc.b    "cracks ...   we are looking for new gouys to join    "
  366. dc.b    "if you are a coder send your best demo to us   "
  367. dc.b    "if you are a swapper send hottest stuff to us   "
  368. dc.b    "and if you are a musican then send your best song to us  "
  369. dc.b    "we also need great graphicans ....       "
  370. dc.b    "there*s a good chace to get famous .... it*s called sargon"
  371. dc.b    " ....          "
  372. dc.b    0
  373. even
  374. textzeiger:    dc.l    text
  375.  
  376. makescrolly:
  377. sub.w    #1,shift
  378. bne    return
  379. move.w    #4,shift
  380. move.l    textzeiger,a0
  381. move.b    (a0)+,d0
  382. bne    notff
  383. lea    text,a0
  384. move.b    (a0)+,d0
  385. notff:
  386. move.l    #$7002a,d3
  387. move.l    a0,textzeiger
  388. bsr    searchchar
  389. return:
  390. rts
  391.  
  392. searchchar:
  393. move.l    #45,d1
  394. lea    ascii,a0
  395. nrc2:
  396. cmp.b    (a0,d1.l),d0
  397. beq    printit2
  398. sub.l    #1,d1
  399. bpl    nrc2
  400. printit2:
  401. lsl.l    #2,d1
  402. add.l    #atab,d1
  403. move.l    d1,a2
  404. move.l    (a2),d0
  405. move.l    d3,d1
  406. bsr    getchar2
  407. rts
  408.  
  409. getchar2:
  410. move.l    d0,$dff050
  411. move.l    d1,$dff054
  412. move.w    #38,$dff064
  413. move.w    #42,$dff066
  414. move.w    #$ffff,$dff044
  415. move.w    #$ffff,$dff046
  416. move.l    #$09f00000,$dff040
  417. move.w    #$0801,$dff058
  418. waitforchar2:
  419. btst    #6,$dff002
  420. bne    waitforchar2
  421. rts
  422. scroll:
  423. move.l    #$70002,$dff050
  424. move.l    #$70000,$dff054
  425. move.w    #40,$dff064
  426. move.w    #40,$dff066
  427. move.w    #$ffff,$dff044
  428. move.w    #$0,$dff046
  429. move.l    #$c9f00000,$dff040
  430. move.w    #$0818,$dff058
  431. wait2getchar:
  432. btst    #6,$dff002
  433. bne    wait2getchar
  434. rts
  435. shift:    dc.w    8
  436. color:
  437. dc.w    $404,$505,$606,$707,$808,$909,$a0a,$b0b,$b0b,$a0a,$909,$808
  438. dc.w    $707,$606,$505,$404
  439. dc.w    4,5,6,7,8,9,10,11,11,10,9,8,7,6,5,4
  440. dc.w    $440,$550,$660,$770,$880,$990,$aa0,$bb0,$bb0,$aa0,$990,$880
  441. dc.w    $770,$660,$550,$440
  442. dc.w    $444,$555,$666,$777,$888,$999,$aaa,$bbb,$bbb,$aaa,$999,$888
  443. dc.w    $777,$666,$555,$444
  444. dc.w    $400,$500,$600,$700,$800,$900,$a00,$b00,$b00,$a00,$900,$800
  445. dc.w    $700,$600,$500,$400
  446. dc.w    $40,$50,$60,$70,$80,$90,$a0,$b0,$b0,$a0,$90,$80,$70,$60,$50
  447. dc.w    $40
  448. blittotti:
  449. move.l    wert,$dff050
  450. move.l    #$58010,$dff054
  451. move.w    #32,$dff064
  452. move.w    #32,$dff066
  453. move.w    #$ffff,$dff044
  454. move.w    #$ffff,$dff046
  455. move.l    #$09f00000,$dff040
  456. move.w    #$1804,$dff058
  457. waitforotti:
  458. btst    #6,$dff002
  459. bne    waitforotti
  460. rts
  461. wert:    dc.l    $51f10
  462. w2:    dc.w    3
  463. stars:
  464. lea    startab,a5
  465. move.w    #138,d5
  466.  
  467. lea    $60000,a0
  468. clr.l    d7
  469. clr.l    d0
  470. sub.w    #1,d5
  471.  
  472. nextstar:
  473. move.w    (a5),d0
  474. move.w    2(a5),d1
  475. move.w    4(a5),d3
  476. add.w    d3,(a5)
  477.  
  478. mulu    #40,d1
  479. move.w    d1,d7
  480. move.w    d0,d2
  481. lsr    #3,d0
  482. add.w    d0,d7
  483. and.w    #7,d2
  484. moveq    #7,d0
  485. sub.w    d2,d0
  486. bclr    d0,(a0,d7.w)
  487. cmp.w    #320,(a5)
  488. bcs    contsp
  489. sub.w    #320,(a5)
  490.  
  491. contsp:
  492. move.w    (a5),d0
  493. move.w    d0,d2
  494. lsr.w    #3,d0
  495. add.w    d0,d1
  496. and.w    #7,d0
  497. moveq    #7,d0
  498. sub.w    d2,d0
  499. bset    d0,(a0,d1.w)
  500. add.w    #6,a5
  501. dbf    d5,nextstar
  502. rts
  503.  
  504. startab:
  505. dc.w    182,0,10
  506. dc.w    89,0,8
  507. dc.w    120,1,7
  508. dc.w    262,1,1
  509. dc.w    165,2,7
  510. dc.w    171,2,9
  511. dc.w    251,3,6
  512. dc.w    54,3,10
  513. dc.w    143,4,9
  514. dc.w    103,4,6
  515. dc.w    85,5,8
  516. dc.w    240,5,7
  517. dc.w    2,6,9
  518. dc.w    46,6,1
  519. dc.w    119,7,10
  520. dc.w    9,7,4
  521. dc.w    177,8,9
  522. dc.w    191,8,8
  523. dc.w    121,9,6
  524. dc.w    33,9,10
  525. dc.w    94,10,2
  526. dc.w    287,10,1
  527. dc.w    247,11,8
  528. dc.w    124,11,10
  529. dc.w    204,12,3
  530. dc.w    279,12,8
  531. dc.w    180,13,8
  532. dc.w    237,13,7
  533. dc.w    221,14,7
  534. dc.w    163,14,6
  535. dc.w    44,15,4
  536. dc.w    238,15,9
  537. dc.w    273,16,4
  538. dc.w    226,16,1
  539. dc.w    20,17,5
  540. dc.w    135,17,5
  541. dc.w    101,18,3
  542. dc.w    139,18,10
  543. dc.w    258,19,1
  544. dc.w    127,19,3
  545. dc.w    167,20,10
  546. dc.w    135,20,4
  547. dc.w    101,21,8
  548. dc.w    123,21,4
  549. dc.w    131,22,9
  550. dc.w    153,22,4
  551. dc.w    177,23,1
  552. dc.w    8,23,5
  553. dc.w    34,24,8
  554. dc.w    219,24,4
  555. dc.w    146,25,4
  556. dc.w    26,25,3
  557. dc.w    273,26,4
  558. dc.w    232,26,7
  559. dc.w    159,27,8
  560. dc.w    260,27,4
  561. dc.w    286,28,2
  562. dc.w    122,28,9
  563. dc.w    251,29,5
  564. dc.w    252,29,7
  565. dc.w    130,30,9
  566. dc.w    118,30,9
  567. dc.w    272,31,8
  568. dc.w    181,31,2
  569. dc.w    64,32,2
  570. dc.w    122,32,8
  571. dc.w    74,33,2
  572. dc.w    68,33,7
  573. dc.w    43,34,9
  574. dc.w    314,34,6
  575. dc.w    256,35,3
  576. dc.w    102,35,2
  577. dc.w    205,36,3
  578. dc.w    109,36,4
  579. dc.w    277,37,9
  580. dc.w    48,37,8
  581. dc.w    264,38,5
  582. dc.w    45,38,9
  583. dc.w    238,39,6
  584. dc.w    249,39,1
  585. dc.w    182,40,1
  586. dc.w    89,40,3
  587. dc.w    120,41,5
  588. dc.w    262,41,1
  589. dc.w    165,42,7
  590. dc.w    171,42,3
  591. dc.w    251,43,6
  592. dc.w    54,43,2
  593. dc.w    143,44,5
  594. dc.w    103,44,6
  595. dc.w    85,45,3
  596. dc.w    240,45,7
  597. dc.w    2,46,4
  598. dc.w    46,46,1
  599. dc.w    119,47,4
  600. dc.w    9,47,5
  601. dc.w    177,48,8
  602. dc.w    191,48,2
  603. dc.w    121,49,6
  604. dc.w    33,49,1
  605. dc.w    68,50,5
  606. dc.w    43,50,1
  607. dc.w    314,51,3
  608. dc.w    256,51,5
  609. dc.w    102,52,6
  610. dc.w    205,52,3
  611. dc.w    109,53,3
  612. dc.w    277,53,2
  613. dc.w    48,54,6
  614. dc.w    264,54,1
  615. dc.w    45,55,5
  616. dc.w    238,55,2
  617. dc.w    249,56,6
  618. dc.w    182,56,8
  619. dc.w    89,57,1
  620. dc.w    120,57,5
  621. dc.w    262,58,2
  622. dc.w    165,58,6
  623. dc.w    171,59,4
  624. dc.w    251,59,3
  625. dc.w    130,60,1
  626. dc.w    118,60,7
  627. dc.w    272,61,8
  628. dc.w    181,61,2
  629. dc.w    64,62,1
  630. dc.w    122,62,8
  631. dc.w    74,63,2
  632. dc.w    68,63,7
  633. dc.w    43,64,3
  634. dc.w    314,64,6
  635. dc.w    256,65,5
  636. dc.w    102,65,2
  637. dc.w    205,66,3
  638. dc.w    109,66,4
  639. dc.w    277,67,7
  640. dc.w    48,67,8
  641. dc.w    264,68,5
  642. dc.w    45,68,3
  643. dc.w    238,69,2
  644. dc.w    249,69,1
  645.