home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / bbintro.lha / BootIntro2.s / Write_Boot.S < prev   
Encoding:
Text File  |  1980-01-01  |  10.0 KB  |  648 lines

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