home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Assembler / dse-src5.dms / in.adf / scroller.s < prev    next >
Encoding:
Text File  |  1990-05-07  |  6.9 KB  |  434 lines

  1.  
  2. ; RI   Font  $60000
  3.  
  4. org    $6a000
  5. load    $6a000
  6.  
  7. begin:
  8. move.l    $4,a6
  9. jsr    -132(a6)
  10.  
  11. move.b    #$ff,$bfd100
  12. move.b    #$87,$bfd100
  13.  
  14. lea    gfxname,a1
  15. jsr    -408(a6)
  16. move.l    d0,gfxbase
  17.  
  18. lea    $70000,a0
  19. lea    $80000,a1
  20.  
  21. clloop:
  22. clr.l    (a0)+
  23. cmp.l    a0,a1
  24. bne    clloop
  25.  
  26. ;lea    $65000,a0
  27. ;lea    $70000,a1
  28. ;bsr    unpack
  29. bsr    setupcol
  30.  
  31. lea    font,a0
  32. lea    $77000,a1
  33. bsr    unpack
  34.  
  35. bsr    setcop
  36.  
  37. move.l    $6c,oldirq+2
  38.  
  39. move.l    gfxbase,a0
  40. move.l    38(a0),oldclist
  41.  
  42. move.w    #$8180,$dff096
  43. move.l    #newclist,$dff080
  44. move.w    #0,$dff088
  45.  
  46. move.l    #newirq,$6c
  47.  
  48. wait:
  49. btst    #6,$bfe001
  50. bne    wait
  51. eor.b #02,$bfe001
  52. move.l    oldirq+2,$6c
  53. move.l    oldclist,$dff080
  54. move.w    #0,$dff088
  55.  
  56. move.w    #$f,$dff096
  57. move.w    #0,$dff0a8
  58. move.w    #0,$dff0b8
  59. move.w    #0,$dff0c8
  60. move.w    #0,$dff0d8
  61.  
  62. move.l    $4,a6
  63. move.l    gfxbase,a1
  64. jsr    -414(a6)
  65. jsr    -138(a6)
  66. rts
  67.  
  68. nextchr:
  69. move.w    #26,newchar
  70. move.l    textzeiger,a6
  71.  
  72. nextchr1:
  73. move.b    (a6)+,d0
  74. bne    nextchr2
  75. move.l    #text,a6
  76. bra    nextchr1
  77.  
  78. nextchr2:
  79. cmp.b    #'+',d0
  80. bne    nextchr3
  81. move.b    (a6)+,d0
  82. sub.b    #'0',d0
  83. move.b    d0,xshft+1
  84. bra    nextchr1
  85.  
  86. nextchr3:
  87. move.l    #38,d1
  88. lea    asc,a0
  89.  
  90. lprint:
  91. cmp.b    (a0,d1.l),d0
  92. beq    okprint
  93. sub.l    #1,d1
  94. bpl    lprint
  95. add.l    #1,a6
  96. move.l    a6,textzeiger
  97. rts
  98.  
  99. okprint:
  100. lsl.l    #2,d1
  101. add.l    #atable,d1
  102. move.l    d1,a2
  103. move.l    (a2),a0
  104. lea    $7b028,a1
  105.  
  106. move.l    a6,textzeiger
  107. return:
  108. move.l    #32,d0
  109.  
  110. loopset:
  111. move.b    (a0),(a1)
  112. move.b    1(a0),1(a1)
  113. move.b    2(a0),2(a1)
  114. clr.b    3(a1)
  115. move.b    $28(a0),$2c(a1)
  116. move.b    $29(a0),$2d(a1)
  117. move.b    $2a(a0),$2e(a1)
  118. clr.b    $2f(a1)
  119. move.b    $50(a0),$58(a1)
  120. move.b    $51(a0),$59(a1)
  121. move.b    $52(a0),$5a(a1)
  122. clr.b    $5b(a1)
  123. add.l    #$78,a0
  124. add.l    #$84,a1
  125. sub.w    #1,d0
  126. bne    loopset
  127. rts
  128.  
  129. a = $77000
  130. b = $77000 + [$28*3*32]
  131. c = $77000 + [$28*3*64]
  132. d = $77000 + [$28*3*96]
  133.  
  134. asc:    dc.b    "abcdefghijklmnopqrstuvwxyz0123456789!- "
  135.  
  136. even
  137. atable:    dc.l    a,a+3,a+6,a+9,a+12,a+15,a+18,a+21,a+24,a+27
  138.     dc.l    a+30,a+33,a+36
  139.     dc.l    b,b+3,b+6,b+9,b+12,b+15,b+18,b+21,b+24,b+27
  140.     dc.l    b+30,b+33,b+36
  141.     dc.l    c,c+3,c+6,c+9,c+12,c+15,c+18,c+21,c+24,c+27
  142.     dc.l    c+30,c+33,c+36
  143.  
  144. textzeiger:    dc.l    text
  145.  
  146. font:           blk.b   7194,0
  147.  
  148. clear1:
  149. btst    #6,$dff002
  150. bne    clear1
  151. rts
  152.  
  153. newirq:
  154. movem.l    d0-d7/a0-a6,-(a7)
  155.  
  156.  
  157. move.l    #$7b000,d0
  158. bsr    scroll
  159. tst.w    newchar
  160. bpl    irq1
  161. eor.b #02,$bfe001
  162. bsr    nextchr
  163. eor.b #02,$bfe001
  164. irq1:
  165.  
  166. endirq:
  167. movem.l    (sp)+,d0-d7/a0-a6
  168. oldirq:
  169. jmp    $000000
  170.  
  171. unpack:    add.l    #12,a0
  172.     move.l    4(a0),d0
  173.     add.l    d0,a0
  174.     add.l    #8,a0
  175.     move.l    a0,cmapchunk
  176.  
  177. iff1:    cmp.l    #$424f4459,(a0)
  178.     beq    iff0
  179.     add.l    #2,a0
  180.     bra    iff1
  181.  
  182. iff0:    move.l    4(a0),d0    ; Anzahl Bytes
  183.     add.l    #1,d0
  184.     and.l    #$fffffffe,d0
  185.  
  186.     add.l    #8,a0        ; Pointer to first Byte
  187.  
  188. iff4:    clr.l    d2
  189.     move.b    (a0)+,d2
  190.     bmi    iff6
  191.  
  192. iff5:    move.b    (a0)+,(a1)+
  193.     subi.l    #1,d0
  194.     subi.b    #1,d2
  195.     bpl    iff5
  196.     bra    iff7
  197.     
  198. iff6:    neg.b    d2
  199.     beq    iff7
  200.  
  201. iff61:    move.b    (a0),(a1)+
  202.     subi.b    #1,d2
  203.     bpl    iff61
  204.     subi.l    #1,d0
  205.     add.l    #1,a0
  206.  
  207. iff7:    subi.l    #1,d0
  208.     bmi    iff8
  209.     beq    iff8
  210.     bra    iff4
  211.  
  212. iff8:    move.l    cmapchunk,a0
  213.     move.l    cmap,a1
  214.     add.l    #8,a0
  215.     move.l    #16,d0
  216.  
  217. cmaploop:
  218.     clr.l    d1
  219.     move.b    (a0),d1
  220.     lsl.w    #4,d1
  221.     move.b    2(a0),d1
  222.     lsr.b    #4,d1
  223.     or.b    1(a0),d1
  224.     move.w    d1,(a1)+
  225.     add.l    #3,a0
  226.     sub.w    #1,d0
  227.     bne    cmaploop
  228.     rts
  229.  
  230. cmapchunk:
  231.     dc.l    0
  232.  
  233. cmap:    dc.l    color1
  234.  
  235. color1:    blk.w    16,0
  236.  
  237. setupcol:
  238. lea    color1,a0
  239. lea    copcol,a1
  240. move.l    #$01800000,d0
  241. move.l    #16,d1
  242.  
  243. suc1:
  244. move.w    (a0)+,d0
  245. move.l    d0,(a1)+
  246. add.l    #$00020000,d0
  247. sub.w    #1,d1
  248. bne    suc1
  249. bchg #1,$bfe001
  250. rts
  251.  
  252. newchar:dc.w    24
  253. xshft:    dc.w    1
  254.  
  255. scroll:    tst.w    xshft
  256.     bne    scroll2
  257.     rts
  258.  
  259. scroll2:move.w    xshft,d1
  260.     sub.w    d1,newchar
  261.     move.l    d0,$dff054
  262.     add.l    #2,d0
  263.     move.l    d0,$dff050
  264.     move.w    #0,$dff064
  265.     move.w    #0,$dff066
  266.     move.l    #$ffffffff,$dff044
  267.     move.w    #16,d1
  268.     sub.w    xshft,d1
  269.     lsl.w    #8,d1
  270.     lsl.w    #4,d1
  271.     or.w    #$09f0,d1
  272.     move.w    d1,$dff040
  273.     move.w    #0,$dff042
  274.     move.w    #$1816,$dff058
  275.     bra    clear1
  276.  
  277. newclist:
  278. dc.w    $008e,$2e81,$0090,$0ac1,$0092,$0038,$0094,$00d0
  279. dc.w    $0102,$0000,$0104,$001f,$0108,$0078,$010a,$0078
  280. dc.w    $0100,$4200,$0180,$0000
  281.  
  282. adr:
  283. dc.w    $00e0,$0007,$00e2,$00,$00e4,$0007,$00e6,$28
  284. dc.w    $00e8,$0007,$00ea,$50,$00ec,$0007,$00ee,$78
  285. dc.w    $120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0
  286. dc.w    $12e,0,$130,0,$132,0,$134,0,$136,0,$138,0,$13a,0
  287. dc.w    $13c,0,$13e,0
  288. copcol:
  289. blk.l    16,0
  290. dc.w    $4011,$fffe,$180,$fff
  291. dc.w    $4111,$fffe,$180,$000
  292. dc.w    $5811,$fffe,$180,$fff
  293. dc.w    $5911,$fffe,$180,$000
  294. frcol:
  295. blk.w    32,0
  296. dc.w    $d811,$fffe,$180,0,$182,$aaa,$184,$400
  297. dc.w    $186,$004,$188,$040,$18a,$080,$18c,$800,$18e,$008
  298. dc.w    $0100,$0200,$e0,$7,$e2,$b000
  299. dc.w    $e4,$7,$e6,$b02c,$e8,$7,$ea,$b058,$102,0
  300. dc.w    $108,$5c,$10a,$5c
  301. ;dc.w    $d911,$fffe,$180,$fff
  302. dc.w    $da11,$fffe,$180,0,$0100,$3200
  303. dc.w    $e011,$fffe,$180,$b00
  304. dc.w    $e111,$fffe,$180,$f00
  305. dc.w    $e411,$fffe,$180,$b00
  306. dc.w    $e511,$fffe,$180,$000
  307. dc.w    $e811,$fffe,$180,$00b
  308. dc.w    $e911,$fffe,$180,$00f
  309. dc.w    $ec11,$fffe,$180,$00b
  310. dc.w    $ed11,$fffe,$180,$000
  311. dc.w    $f011,$fffe,$180,$0b0
  312. dc.w    $f111,$fffe,$180,$0f0
  313. dc.w    $f411,$fffe,$180,$0b0
  314. dc.w    $f511,$fffe,$180,$000
  315. end:
  316.  
  317. oldclist:
  318. dc.l    0
  319. gfxbase:
  320. dc.l    0
  321. gfxname:
  322. dc.b    "graphics.library",0
  323. even
  324.  
  325. yko:    dc.b    $54,0
  326.  
  327. setcol:
  328. move.l    a1,a3
  329. add.l    #4,a3
  330. move.w    (a4),2(a3)
  331. rts
  332.  
  333. setcop:
  334. lea    table,a6
  335. lea    frcol,a2
  336. lea    frcol,a1
  337. move.l    trck1,a4
  338. move.l    #8,d3
  339. nsc:
  340. move.b    (a6)+,d5
  341. add.b    yko,d5
  342. move.b    d5,(a2)+
  343. move.b    #$11,(a2)+
  344. move.w    #$fffe,(a2)+
  345. move.l    #$01020000,(a2)+
  346. bsr    setcol
  347. add.l    #8,a1
  348. add.l    #2,a4
  349. subi.l    #1,d3
  350. bne    nsc
  351. rts
  352.  
  353. copscroll:
  354. clr.l    d6
  355. move.b    1(a2),d0
  356. add.b    d0,(a2)
  357. bcc    scrl1
  358. add.l    #2,a3
  359. cmp.l    a3,a5
  360. bne    scrl2
  361. lea    track1,a3
  362.  
  363. scrl2:
  364. move.l    a3,a4
  365. move.l    #7,d2
  366. move.l    a1,a0
  367. add.l    #4,a0
  368.  
  369. scrl3:
  370. move.w    50(a0),58(a0)
  371. sub.l    #8,a0
  372. sub.l    #1,d2
  373. bne    scrl3
  374. move.l    a3,zwsp
  375. jsr    setcol
  376. move.l    zwsp,a3
  377.  
  378. scrl1:
  379. clr.l    d0
  380. move.b    (a2),d0
  381. lsr.w    #2,d0
  382. and.w    #$fff8,d0
  383. lea    table,a0
  384. add.l    d0,a0
  385. move.l    #8,d2
  386.  
  387. scrl4:
  388. move.b    (a0)+,d0
  389. add.b    yko,d0
  390. move.b    d0,(a1)
  391. add.l    #8,a1
  392. sub.l    #1,d2
  393. bne    scrl4
  394. rts
  395.  
  396. zwsp:    dc.l    0
  397. count1:    dc.b    0,80
  398. trck1:    dc.l    track1
  399. etrck1:    dc.l    etrack1
  400.  
  401. table:    dc.b 13,21,29,37,45,53,61,69
  402.     dc.b 14,22,30,38,46,54,62,70
  403.     dc.b 15,23,31,39,47,55,63,71
  404.     dc.b 16,24,32,40,48,56,64,72
  405.     dc.b 17,25,33,41,49,57,65,73
  406.     dc.b 18,26,34,42,50,58,66,74
  407.     dc.b 19,27,35,43,51,59,67,75
  408.     dc.b 20,28,36,44,52,60,68,76
  409.  
  410. track1:    dc.w    0,0,0,0,0,0,0,0 
  411.         dc.w    0,0,0,0,0,0,0,0
  412.         dc.w    $f00,$e00,$d00,$c00,$b00,$a00,$900,$800
  413.     dc.w    $710,$620,$530,$440,$350,$260,$170
  414.     dc.w    $080,$090,$0a0,$0b0,$0c0,$0d0,$0e0,$0f0
  415.     dc.w    $e0,$d0,$c0,$b0,$a0,$90,$80
  416.     dc.w    $71,$62,$53,$44,$35,$26,$17
  417.     dc.w    $008,$009,$00a,$00b,$00c,$00d,$00e,$00f
  418.     dc.w    $00e,$00d,$00c,$00b,$00a,$009,$008
  419.     dc.w    $117,$226,$335,$444,$555,$666,$777
  420.     dc.w    $888,$999,$aaa,$bbb,$ccc,$ddd,$eee,$ddd
  421.     dc.w    $ccc,$bbb,$aaa,$999,$888,$887
  422.     dc.w    $886,$885,$884,$883,$882,$881
  423.     dc.w    $880,$990,$aa0,$bb0,$cc0,$dd0,$ee0,$ff0
  424.     dc.w    $fe0,$fd0,$fc0,$fb1,$fa2,$f93,$f84,$f75
  425.     dc.w    $f66,$f55,$f44,$f33,$f22,$f11
  426. etrack1:
  427.  
  428. text:   dc.b    "+3yo! check this out! this is the ultimate team called+9    -"
  429.         dc.b    "sigma-+1   +3with their first intro on this wonderful machine"
  430.         dc.b    "  here is some info about our group  our group was founded by"
  431.         dc.b    " megastar! that is me and mastermind! my pal  right now we "
  432.         dc.b    "are three members  - megastar - mastermind - mr f -  the end "
  433.         dc.b    "+9      +5bye!    +910  9  8  7  6  5  4  3  2  1  0       ",0
  434.