home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 4: Demo 1 / almathera_demo1.bin / sourcecode / german / line.s < prev    next >
Text File  |  1995-03-17  |  5KB  |  291 lines

  1. BitPlane1=$50000    ;Adresse Bitplane 1
  2. bitplane2=$52000
  3. bitplane3=$54000
  4. bitplane4=$56000
  5. bitplane5=$58000
  6. Exec=4            ;Basisadresse Execbase
  7. Permit=-138        ;Stop Multitasking
  8. Forbid=-132        ;Start Multitasking
  9. OpenLibrary=-408    
  10. CloseLibrary=-414
  11. InitRastPort=-198
  12. InitBitMap=-390
  13. bltcon0=$dff040
  14. bltcon1=$dff042
  15. bltafwm=$dff044
  16. bltalwm=$dff046
  17. bltcpth=$dff048
  18. bltcptl=$dff04a
  19. bltbpth=$dff04c
  20. bltbptl=$dff04e
  21. bltapth=$dff050
  22. bltaptl=$dff052
  23. bltdpth=$dff054
  24. bltdptl=$dff056
  25. bltsize=$dff058
  26. bltcmod=$dff060
  27. bltbmod=$dff062
  28. bltamod=$dff064
  29. bltdmod=$dff066
  30. bltadat=$dff074
  31. bltbdat=$dff072
  32. bltcdat=$dff070
  33.  
  34. start:
  35.     jsr setup    ;Initialisiert die Bitmaps und
  36.     jsr setcopper
  37.  
  38. blit:
  39.     jsr waitblt
  40.     move.l #bitplane1,bltcpth
  41.     move.l #bitplane1,bltdpth
  42.     move.l #bitplane1+1000,bltapth
  43.     move.w #%0000101111110000,bltcon0
  44.     move.w #%0000000000011001,bltcon1
  45.     move.w #$8000,bltadat
  46.     move.w #40,bltcmod
  47.     move.w #40,bltdmod
  48.     jmp wait
  49.  
  50.  
  51. waitblt:    
  52.     btst #14,$dff002
  53.     bne waitblt
  54.     rts        
  55.  
  56. wait:
  57.     andi.b    #64,$bfe001    ;Bit 7 (linke Maustaste)
  58.     bne wait
  59.     move.l copptr,a0
  60.     move.l    oldcop,(a0)    ;Alte Copperliste wieder bereit-
  61.     move.l exec,a6
  62.     move.l    GfxBase,a1    ;stellen und Gfxlibrary
  63.     jsr    CloseLibrary(a6);schliessen
  64.     move.l dos_base,a1
  65.     jsr closelibrary(a6)
  66.     jsr    Permit(a6)    ;Multitasking wieder zulassen
  67.     ILLEGAL            ;Rueckkehr zum SEKA
  68.     rts            ;ende
  69.  
  70. setup:
  71.     move.l    Exec,a6        ;Exebase-Adresse nach a6
  72.     jsr    permit(a6)    ;Stop Multitasking
  73.  
  74.     move.l exec,a6
  75.     lea.l dosname,a1
  76.     jsr Openlibrary(a6)
  77.     move.l d0,dos_base
  78.  
  79.     lea    GrName,a1    ;Gfxname nach a1
  80.     jsr    OpenLibrary(a6)    ;Gfxlibrary oeffnen
  81.     move.l    d0,GfxBase    ;Basisadresse buffern
  82.     move.l    d0,a6
  83.     add.l    #$32,d0
  84.     move.l    d0,copptr
  85.  
  86.     lea    BitMap,a0    ;Bitmapstruktur nach a0
  87.     moveq    #5,d0        ;Tiefe (5 Bitplanes)
  88.     move.l    #320,d1        ;320 Pixel nach x
  89.     move.l    #200,d2        ;200 Pixel nach y
  90.     jsr    InitBitMap(a6)    ;Bitmap Initialisieren
  91.     lea    RastPort,a1    ;erhaltenen Rastport nach a1
  92.     jsr    InitRastPort(a6);Rastport initialisieren    
  93.     move.l    #BitMap,R_BitMap
  94.  
  95.  
  96.     move.l    #BitPlane1,d0    ;Adresse Bitplane nach d0
  97.     move.l    d0,Plane1    ;Adresse auch nach Plane1
  98.     move.l    d0,a0        ;und nach Adressregister a0
  99.     move.w    d0,lo1        ;sowie in Copperliste speichern
  100.     swap    d0        ;Hi-Nibble isolieren und eben-
  101.     move.w    d0,hi1        ;falls nach Copperliste
  102.     move.l    #8000,d0    ;8000 Bytes fuer Bitplane bele-
  103.     move.b    #$00,d1        ;gen
  104. cl1:    move.b    d1,(a0)+
  105.     dbf    d0,cl1
  106.  
  107.     move.l    #BitPlane2,d0
  108.     move.l d0,Plane2
  109.     move.l d0,a0
  110.     move.w d0,lo2
  111.     swap d0
  112.     move.w d0,hi2
  113.     move.l #8000,d0
  114.     move.b #$00,d1
  115. cl2:    move.b d1,(a0)+
  116.     dbf d0,cl2
  117.  
  118.     move.l    #BitPlane3,d0
  119.     move.l    d0,Plane3
  120.     move.l    d0,a0
  121.     move.w    d0,lo3
  122.     swap    d0
  123.     move.w    d0,hi3
  124.     move.l    #8000,d0
  125.     move.b    #$00,d1
  126. cl3:    move.b    d1,(a0)+
  127.     dbf    d0,cl3
  128.  
  129.     move.l    #BitPlane4,d0
  130.     move.l    d0,Plane4
  131.     move.l    d0,a0
  132.     move.w    d0,lo4
  133.     swap    d0
  134.     move.w    d0,hi4
  135.     move.l    #8000,d0
  136.     move.b    #$00,d1
  137. cl4:    move.b    d1,(a0)+
  138.     dbf    d0,cl4
  139.  
  140.     move.l    #BitPlane5,d0
  141.     move.l    d0,Plane5
  142.     move.l    d0,a0
  143.     move.w    d0,lo5
  144.     swap    d0
  145.     move.w    d0,hi5
  146.     move.l    #8000,d0
  147.     move.b    #$00,d1
  148. cl5:    move.b    d1,(a0)+
  149.     dbf    d0,cl5
  150.     rts
  151.  
  152. setcopper:
  153.     move.l    copptr,a0    ;Adresse der Copperliste nach a0
  154.     move.l    (a0),oldcop    ;Alte Liste zwischenspeichern
  155.     move.l    #Copper,(a0)    ;Neue Liste fue Copper
  156.     rts
  157.  
  158.  
  159. Copper:
  160.     DC.W    $0180
  161. co0:    dc.w    $0000
  162.     DC.W    $0182
  163. co1:    dc.w    $0fff
  164.     DC.W    $0184
  165. co2:    dc.w    $000f
  166.     DC.W    $0186    
  167. co3:    dc.w    $0f00
  168.     DC.W    $0188
  169. co4:    dc.w    $000f
  170.     DC.W    $018a
  171. co5:    dc.w    $0f0f
  172.     DC.W    $018c
  173. co6:    dc.w    $00ff
  174.     DC.W    $018e
  175. co7:    dc.w    $f0ff
  176.     DC.W    $0190
  177. co8:    dc.w    $0620
  178.     DC.W    $0192
  179. co9:    dc.w    $0e50
  180.     DC.W    $0194
  181. co10:    dc.w    $09f1
  182.     DC.W    $0196    
  183. co11:    dc.w    $0eb0
  184.     dc.w    $0198
  185. co12:    dc.w    $055f
  186.     dc.w    $019a
  187. co13:    dc.w    $092f
  188.     dc.w    $019c
  189. co14:    dc.w    $00f8
  190.     dc.w    $019e
  191. co15:    dc.w    $0ccc
  192.     dc.w    $01a0
  193. co16:    dc.w    $0000        
  194.     dc.w    $01a2
  195. co17:    dc.w    $0d22
  196.     dc.w    $01a4
  197. co18:    dc.w    $0000
  198.     dc.w    $01a6
  199. co19:    dc.w    $0fca
  200.     dc.w    $01a8
  201. co20:    dc.w    $0444    
  202.     dc.w    $01aa
  203. co21:    dc.w    $0555
  204.     dc.w    $01ac
  205. co22:    dc.w    $0666
  206.     dc.w    $01ae
  207. co23:    dc.w    $0777
  208.     dc.w    $01b0
  209. co24:    dc.w    $0888
  210.     dc.w    $01b2
  211. co25:    dc.w    $0999
  212.     dc.w    $01b4
  213. co26:    dc.w    $0aaa
  214.     dc.w    $01b6
  215. co27:    dc.w    $0bbb
  216.     dc.w    $01b8
  217. co28:    dc.w    $0ccc
  218.     dc.w    $01ba
  219. co29:    dc.w    $0ddd
  220.     dc.w    $01bc
  221. co30:    dc.w    $0eee
  222.     dc.w    $01be
  223. co31:    dc.w    $0fff
  224.     DC.W    $00e0
  225. hi1:    DC.W    $0002
  226.     DC.W    $00e2
  227. lo1:    DC.W    $1000
  228.     DC.W    $00e4
  229. hi2:    DC.W    $0002
  230.     DC.W    $00e6
  231. lo2:    DC.W    $1000
  232.     DC.W    $00e8
  233. hi3:    DC.W    $0002
  234.     DC.W    $00ea
  235. lo3:    DC.W    $1000
  236.     DC.W    $00ec
  237. hi4:    DC.W    $0002
  238.     DC.W    $00ee
  239. lo4:    DC.W    $1000
  240.     DC.W    $00f0
  241. hi5:    DC.W    $0002
  242.     DC.W    $00f2
  243. lo5:    DC.W    $1000
  244.     DC.W    $0100,%0101000000000000
  245.     DC.W    $0102
  246. delay:    DC.W    $00
  247.     DC.W    $0108,0
  248.     DC.W    $010a,0
  249.     DC.W    $0092,$0038
  250.     DC.W    $0094,$00d0
  251.     DC.W    $008e,$3681
  252.     DC.W    $0090,$fdc1
  253.     DC.W    $ffff,$fffe
  254.  
  255.  
  256.  
  257. BitMap:
  258. BytesPerRow:     blk.w 1,0
  259. Bytes:        blk.w 1,0
  260. Flags:         blk.b 1,0
  261. Depth:         blk.b 1,0
  262. Pad:          blk.w 1,0
  263. Plane1:        blk.l 1,0
  264. Plane2:        blk.l 1,0
  265. Plane3:        blk.l 1,0
  266. Plane4:        blk.l 1,0
  267. Plane5:        blk.l 1,0
  268. Planes:        blk.l 1,0
  269.  
  270. RastPort:
  271.         blk.l 1,0
  272. R_BitMap:    blk.l 1,0
  273.         blk.b 2+4+4+4+8,0
  274.         blk.b 4,0
  275. cp_x:        blk.w 1,0
  276. cp_y:        blk.w 1,0
  277.            blk.b 8+22+[7*2]+[2*4]+8,0
  278.         blk.w 6,0
  279. even
  280. GrName:        DC.B 'graphics.library',0
  281. Dosname:    DC.B 'dos.library',0
  282. even
  283.  
  284. copptr:        blk.l 1,0
  285. oldcop:        blk.l 1,0
  286. GfxBase:    blk.l 1,0
  287. Dos_base:    blk.l 1,0
  288. x:        blk.w 1,0
  289.  
  290.  
  291.