home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / INC_MAG / INC_3.MSA / SOURCER_H_SCROLL_HARDSCRL.S < prev    next >
Text File  |  2006-02-18  |  6KB  |  244 lines

  1. *
  2. * Hardware scroller
  3. * Source (C) 1990 Galivan
  4. *
  5.     opt    o+ ; By using this line I don't have to place .S after the shoft branshes etc, the code will be optimized automatically
  6.  
  7.     move.w #0,-(sp)
  8.     move.l #-1,-(sp)
  9.     move.l #-1,-(sp)
  10.     move.w #5,-(sp)
  11.     trap #14
  12.     add.l #12,sp
  13.  
  14.  
  15.  
  16.     MOVE.W    #32,-(SP)
  17.     TRAP    #1
  18.     ADDQ.W    #2,SP
  19.  
  20.     move.l    $120,oldtb ; this inits the hardware scroller to only the lowest 32 lines with a raster rout, the routine is a modifyed ST-News thing.
  21.     move.l    $70,old4
  22.     move.l    $70,new4b+2
  23.     move.b    $fffffa07,old07
  24.     move.b    $fffffa09,old09
  25.     move.b    $fffffa0f,old0f
  26.     move.b    $fffffa11,old11
  27.     move.b    $fffffa1b,old1b
  28.     and.b     #$df,$fffa09
  29.     and.b     #$fe,$fffa07
  30.     move.l    #newtb1,$120
  31.     move.l    #new4,$70
  32.     or.b      #1,$fffffa07
  33.     or.b      #1,$fffffa13
  34.  
  35.     PEA    FONT+2
  36.     MOVE.W    #6,-(SP)
  37.     TRAP    #14
  38.     ADDQ.W    #6,SP
  39.  
  40. AGAIN:    MOVE.W    #37,-(SP)
  41.     TRAP    #14
  42.     ADDQ.W    #2,SP
  43.  
  44.     CMP.B    #0,SHIFT
  45.     BEQ    TECKEN
  46.  
  47.     CMP.B    #12,SHIFT
  48.     BEQ    CLIT
  49.  
  50. CNTIT:    ADDQ.B    #4,SHIFT
  51.     CMP.B    #16,SHIFT
  52.     BEQ    TOM
  53. CNOFF:    MOVE.L    #BIGBUFF,A0
  54.     MOVE.L    $44E,A1
  55.     ADD.L    #26880,A1
  56.     MOVEQ.L    #29,D0
  57. ULL:    MOVEM.L    (A0)+,D1-D7/A2-A5
  58.     MOVEM.L    D1-D7/A2-A5,(A1)
  59.     LEA    44(A1),A1
  60.     MOVEM.L    (A0)+,D1-D7/A2-A5
  61.     MOVEM.L    D1-D7/A2-A5,(A1)
  62.     LEA    44(A1),A1
  63.     MOVEM.L    (A0)+,D1-D7/A2-A5
  64.     MOVEM.L    D1-D7/A2-A5,(A1)
  65.     LEA    44(A1),A1
  66.     MOVEM.L    (A0)+,D1-D7/A2-A5
  67.     MOVEM.L    D1-D7/A2-A5,(A1)
  68.     LEA    44(A1),A1
  69.     DBF    D0,ULL
  70.     BRA    MORE
  71.  
  72. TOM:    MOVE.B    #0,SHIFT
  73.     MOVE.B    #0,$FF8264
  74.     BRA    CNOFF
  75.  
  76. TECKEN:    MOVE.L    #BIGBUFF,A0
  77.     MOVE.L    A0,A1
  78.     ADDQ.L    #8,A0
  79.     MOVEQ.L    #23,D0
  80. SLLP:    MOVEM.L    (A0)+,D1-D7/A2-A5
  81.     MOVEM.L    D1-D7/A2-A5,(A1)
  82.     LEA    44(A1),A1
  83.     MOVEM.L    (A0)+,D1-D7/A2-A5
  84.     MOVEM.L    D1-D7/A2-A5,(A1)
  85.     LEA    44(A1),A1
  86.     MOVEM.L    (A0)+,D1-D7/A2-A5
  87.     MOVEM.L    D1-D7/A2-A5,(A1)
  88.     LEA    44(A1),A1
  89.     MOVEM.L    (A0)+,D1-D7/A2-A5
  90.     MOVEM.L    D1-D7/A2-A5,(A1)
  91.     LEA    44(A1),A1
  92.     MOVEM.L    (A0)+,D1-D7/A2-A5
  93.     MOVEM.L    D1-D7/A2-A5,(A1)
  94.     LEA    44(A1),A1
  95.     DBF    D0,SLLP
  96.     CMP.L    #1,PART
  97.     BEQ    _2ND
  98.     MOVE.L    #1,PART
  99. AFFE:    MOVE.L    #BIGBUFF,A0
  100.     ADD.L    #152,A0
  101.     MOVE.L    PLACE,A1
  102.     ADD.L    CHAR,A1
  103.     MOVEQ.L    #0,D0
  104.     MOVE.B    (A1),D0
  105.     CMP.B    #-1,D0
  106.     BEQ    STANEW
  107.     LSL    #2,D0
  108.     MOVE.L    #ASCII,A1
  109.     ADD.L    D0,A1
  110.     MOVE.L    (A1),A1
  111.     ADD.L    #FONT+34,A1
  112.     MOVE.L    A1,SA1
  113.     MOVE.L    A0,SA0
  114.     ADDQ.L    #1,CHAR
  115.  
  116.     MOVE.L    #32,D0
  117. DLP:    MOVEM.L    (A1),D1-D2
  118.     MOVEM.L    D1-D2,(A0)
  119.     LEA    160(A0),A0
  120.     LEA    160(A1),A1
  121.     DBF    D0,DLP
  122.  
  123.     BRA    CNTIT
  124.  
  125. MORE:    MOVE.W    #11,-(SP)
  126.     TRAP    #1
  127.     ADDQ.W    #2,SP
  128.  
  129.     CMP.B    #0,D0
  130.     BEQ    AGAIN
  131.  
  132.     move.w    sr,-(sp)
  133.     move.w    #$2700,sr
  134.     Move.b    old07(pc),$fffffa07
  135.     move.b    old09(pc),$fffffa09
  136.     move.b    old0f(pc),$fffffa0f
  137.     move.b    old11(pc),$fffffa11
  138.     move.b    old1b(pc),$fffffa1b
  139.     move.l    oldtb,$120
  140.     move.l    old4,$70
  141.     move.w    (sp)+,sr
  142.  
  143.     MOVE.B    #0,$FFFF8264.W
  144.     MOVE.W    #$FFF,$FFFF8240.W
  145.     MOVE.W    #0,$FFFF825E.W
  146.  
  147.     CLR.W    -(SP)
  148.     TRAP    #1
  149.  
  150. STANEW:    MOVE.L    #0,CHAR
  151.     MOVE.L    #TEXT,PLACE
  152.     BRA    AFFE
  153.  
  154. _2ND:    MOVE.L    #0,PART
  155.     MOVE.L    SA1,A1
  156.     MOVE.L    SA0,A0
  157.     MOVE.L    #32,D0
  158.     ADDQ.L    #8,A1
  159. CLLP:    MOVEM.L    (A1),D1-D2
  160.     MOVEM.L    D1-D2,(A0)
  161.     LEA    160(A0),A0
  162.     LEA    160(A1),A1
  163.     DBF    D0,CLLP
  164.     BRA    CNTIT
  165.  
  166. CLIT:    MOVE.L    #BIGBUFF,A0
  167.     MOVEQ.L    #32,D0
  168.     MOVEQ.L    #0,D1
  169.     MOVEQ.L    #0,D2
  170. WHIP:    MOVEM.L    D1-D2,(A0)
  171.     LEA    160(A0),A0
  172.     DBF    D0,WHIP
  173.     BRA    CNTIT
  174.  
  175. new4:     MOVE.B    #0,$FF8264
  176.     clr.b    $fffffa1b.w
  177.     move.b    #167,$fffffa21
  178.     move.b    #8,$fffffa1b
  179.     move.w    #$0,$ff8240
  180.     move.l    #newtb1,$120
  181. new4b:    jmp        $11111111
  182.  
  183. newtb1:    clr.b        $fffffa1b.w
  184.     movem.l    d0-d7/a0-a2,-(sp)
  185.     move.w    #$fa21,a1
  186.     move.b    #200,(a1)
  187.     move.b    #8,$fffffa1b.w
  188.     MOVE.B    SHIFT,$FF8264
  189.  
  190. loop    move.b    (a1),d0
  191. wait:    cmp.b    (a1),d0
  192.     beq    wait
  193.  
  194. loopx    move.b    (a1),d0
  195. waitx    cmp.b    (a1),d0
  196.     beq    waitx
  197.  
  198.     movem.l    (sp)+,d0-d7/a0-a2
  199.     bclr    #0,$fffffa0f.w
  200.     rte
  201.  
  202. old4:    dc.l    0
  203. oldtb:    dc.l    0
  204. old07:    dc.b    0
  205. old09:    dc.b    0
  206. old0f:    dc.b    0
  207. old11:    dc.b    0
  208. old1b:    dc.b    0
  209.  
  210. ASCII:    DC.L 10384,10384,10384,10384,10384,10384,10384,10384,10384,10384,10384,10384
  211.     DC.L 10384,10384,10384,10384,10384,10384,10384,10384,10384,10384
  212.     DC.L 10384,10384,10384,10384,10384,10384,10384,10384,10384,10384
  213.     DC.L 10384,20480,20496,10384,10384,10384,10384,20512,20528,20544
  214.     DC.L 20560,10368,20576,20592,20608,10384                    ;20624,20640
  215.     DC.L 15360,15376,15392,15408,15424,15440,15456,15472,15488,15504,10384
  216.     DC.L 10352,10368,10384,10384,10384,10384
  217.     DC.L 0,16,32,48,64,80,96,112,128,144
  218.     DC.L 5120,5136,5152,5168,5184,5200,5216,5232,5248,5264
  219.     DC.L 10240,10256,10272,10288,10304,10320,10336
  220.  
  221. CHAR:    DC.L    0
  222. PART:    DC.L    0
  223. SA1:    DC.L    0
  224. SA0:    DC.L    0
  225. SHIFT:    DC.L    0
  226. PLACE:    DC.L     TEXT
  227.  
  228. TEXT:    DC.B    "THIS SCROLLER WAS CODED BY -GALIVAN- OF -STEEL WINGS- AND THE SAME ABOUT THIS GREAT FONT. AND IT'S ALL DONE FOR THE INC MAGAZINE. THIS SCROLLER ISN'T TOTALY OPTIMIZED YET, IT CAN BE REWRITTEN SO IT USES THE BLITTER"
  229.     DC.B    " AND THAT WOULD ALLMOST HALF THE REQUIRED CPU TIME. THIS SCROLLER IS FIRST SCROLLED IN A BUFFER AND THEN COPYED UP ONTO THE SCREEN FOR MAXIMAL FLEXABILITY"
  230.     DC.B    " BY CHANGING THE DESTINATION VALUE CAN THE SCROLLER VERY SIMPLY GO UP AND DOWN AFTER A SINE OR A SAW WAVE. BUT SOMETHING MUST BE LEFT FOR THE USERS (YOU!)"
  231.     DC.B    " THIS SOURCE IS VERY BADLY DOCUMENTED AND IS THEREFOR NOTHING FOR LAMERS (A LAMERS IS A PRESON THAT STILL USES THE PLASTIC BAGS THAT THE DISKS COMES IN"
  232.     DC.B    " WHEN YOU BUYS THEM OR GOES AROUND AND SAYS:",34,"I'M A ASSEMBLER CODER",34," AND AFTER HE HAS TOLD THE WORLD THAT, HE RUNS AWAY TO A CODER AND SAYS ",34,"HEY! CAN I HAVE SOME"
  233.     DC.B    " SOURCES.",34," AND THEN HE ASKS FOR SPRITE ROUTS, ADVANCED SCROLLERS, HIGH SPEED GRAPHIC PLOTTING ROUTS ETC., NOW I HOPE YOU KNOW WHAT A LAMER IS!) AND PEOPLE THAT"
  234.     DC.B    " DON'T KNOW HOW TO ASSEMBLE AND RUN A PROGRAM WITH DEVPAC II SINCE THEY CAN'T HAVE ANY USE OF THIS SOURCE THEN... CALL 090-139994 (+46(0)90139994) IF YA HAVES ANY PROBLEMS.....WRAP....",-1
  235.  
  236. FONT:    INCBIN    A:\SOURCER\H_SCROLL\FONT_1.PI1
  237. BIGBUFF:    DS.L 5120/4
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.