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

  1. PicBuffer=$40000
  2. SndBuffer=$40000
  3. BitPlane1=$60000    ;Adresse Bitplane 1
  4. BitPlane2=$64000    ;Adresse Bitplane 2
  5. BitPlane3=$68000    ;Adresse Bitplane 3
  6. BitPlane4=$6c000    ;Adresse Bitplane 4
  7. BitPlane5=$70000    ;Adresse BItplane 5
  8. Exec=4            ;Basisadresse Execbase
  9. Permit=-138        ;Stop Multitasking
  10. Open= -30
  11. Close= -30 -6
  12. Read= -30 -12
  13. Forbid=-132        ;Start Multitasking
  14. OpenLibrary=-408    
  15. CloseLibrary=-414
  16. InitRastPort=-198
  17. InitBitMap=-390
  18. SetRast= -30 -204
  19. Move= -30 -210
  20. Draw= -30 -216
  21. Text= -30 -30
  22. RectFill= -30 -276
  23. ScrollRaster= -30 -366
  24. WritePixel= -30 -294
  25. SetAPen= -30 -312
  26. WaitTOF= -30 -240
  27. exit= -30 -114
  28. polydraw= -30 -306
  29.  
  30. start:
  31.  
  32.     jsr setup    ;Initialisiert die Bitmaps und
  33.  
  34.     jsr setcopper
  35.  
  36.     move.l #40,d4
  37.  
  38. loop:
  39.     move.w d4,count
  40.  
  41.     move.l gfxbase,a6
  42.     lea.l rastport,a1
  43.     move.l #0,d0
  44.     jsr setapen(a6)
  45.  
  46.     move.l gfxbase,a6
  47.     lea.l rastport,a1
  48.     move.w x0,d0
  49.     move.w #20,d1
  50.     jsr draw(a6)
  51.  
  52.     move.l gfxbase,a6
  53.     lea.l rastport,a1
  54.     move.l #30,d0
  55.     jsr setapen(a6)
  56.  
  57.     move.l gfxbase,a6    
  58.     lea.l rastport,a1
  59.     move.w #4,d0
  60.     move.w #20,pxyarray
  61.     move.w y1,pxyarray+2
  62.     move.w x1,pxyarray+4
  63.     move.w #180,pxyarray+6
  64.     move.w #300,pxyarray+8
  65.     move.w y0,pxyarray+10
  66.     move.w x0,pxyarray+12
  67.     move.w #20,pxyarray+14
  68.     lea.l pxyarray,a0
  69.     jsr polydraw(a6)
  70.  
  71.     add.w #7,x0
  72.     sub.w #7,x1
  73.     add.w #4,y0
  74.     sub.w #4,y1
  75.  
  76.     move.w count,d4
  77.     dbra d4,loop
  78.  
  79. wait:
  80.     andi.b    #64,$bfe001    ;Bit 7 (linke Maustaste)
  81.     bne wait
  82.  
  83. stop:
  84.  
  85.     move.l  copptr,a0
  86.     move.l    oldcop,(a0)    ;Alte Copperliste wieder bereit-
  87.     move.l     exec,a6
  88.     move.l    GfxBase,a1    ;stellen und Gfxlibrary
  89.     jsr    CloseLibrary(a6);schliessen
  90.     move.l exec,a6
  91.     jsr    Permit(a6)    ;Multitasking wieder zulassen
  92.     rts            ;ende
  93.  
  94. setup:
  95.     move.l    Exec,a6        ;Exebase-Adresse nach a6
  96.     jsr    Forbid(a6)    ;Stop Multitasking
  97.     lea    GrName,a1    ;Gfxname nach a1
  98.     jsr    OpenLibrary(a6)    ;Gfxlibrary oeffnen
  99.     move.l    d0,GfxBase    ;Basisadresse buffern
  100.     move.l    d0,a6
  101.     add.l    #$32,d0
  102.     move.l    d0,copptr
  103.  
  104. ; ---- Setup the BitMap
  105.  
  106.     lea    BitMap,a0    ;Bitmapstruktur nach a0
  107.     moveq    #5,d0        ;Tiefe (5 Bitplanes)
  108.     move.l    #640,d1        ;320 Pixel nach x
  109.     move.l    #200,d2        ;200 Pixel nach y
  110.     jsr    InitBitMap(a6)    ;Bitmap Initialisieren
  111.     lea    RastPort,a1    ;erhaltenen Rastport nach a1
  112.     jsr    InitRastPort(a6);Rastport initialisieren    
  113.     move.l    #BitMap,R_BitMap
  114.  
  115.     move.l    #BitPlane1,d0    ;Adresse Bitplane nach d0
  116.     move.l    d0,Plane1    ;Adresse auch nach Plane1
  117.     move.l    d0,a0        ;und nach Adressregister a0
  118.     move.w    d0,lo1        ;sowie in Copperliste speichern
  119.     swap    d0        ;Hi-Nibble isolieren und eben-
  120.     move.w    d0,hi1        ;falls nach Copperliste
  121.     move.l    #16000,d0    ;8000 Bytes fuer Bitplane bele-
  122.     move.b    #$00,d1        ;gen
  123. cl1:    move.b    d1,(a0)+
  124.     dbf    d0,cl1
  125.  
  126.     move.l    #BitPlane2,d0
  127.     move.l d0,Plane2
  128.     move.l d0,a0
  129.     move.w d0,lo2
  130.     swap d0
  131.     move.w d0,hi2
  132.     move.l #16000,d0
  133.     move.b #$00,d1
  134. cl2:    move.b d1,(a0)+
  135.     dbf d0,cl2
  136.  
  137.     move.l    #BitPlane3,d0
  138.     move.l    d0,Plane3
  139.     move.l    d0,a0
  140.     move.w    d0,lo3
  141.     swap    d0
  142.     move.w    d0,hi3
  143.     move.l    #16000,d0
  144.     move.b    #$00,d1
  145. cl3:    move.b    d1,(a0)+
  146.     dbf    d0,cl3
  147.  
  148.     move.l    #BitPlane4,d0
  149.     move.l    d0,Plane4
  150.     move.l    d0,a0
  151.     move.w    d0,lo4
  152.     swap    d0
  153.     move.w    d0,hi4
  154.     move.l    #16000,d0
  155.     move.b    #$00,d1
  156. cl4:    move.b    d1,(a0)+
  157.     dbf    d0,cl4
  158.  
  159.     move.l    #BitPlane5,d0
  160.     move.l    d0,Plane5
  161.     move.l    d0,a0
  162.     move.w    d0,lo5
  163.     swap    d0
  164.     move.w    d0,hi5
  165.     move.l    #16000,d0
  166.     move.b    #$00,d1
  167. cl5:    move.b    d1,(a0)+
  168.     dbf    d0,cl5
  169.  
  170. setcopper:
  171.     move.l    copptr,a0    ;Adresse der Copperliste nach a0
  172.     move.l    (a0),oldcop    ;Alte Liste zwischenspeichern
  173.     move.l    #Copper,(a0)    ;Neue Liste fue Copper
  174.     rts
  175.  
  176. x0: dc.w 20
  177. y0: dc.w 20
  178. x1: dc.w 300
  179. y1: dc.w 180
  180. count: dc.w 0
  181.  
  182. pxyarray: blk.w 10
  183.  
  184. Copper:
  185.     DC.W    $0180
  186. co0:    dc.w    $0000
  187.     DC.W    $0182
  188. co1:    dc.w    $0fff
  189.     DC.W    $0184
  190. co2:    dc.w    $000f
  191.     DC.W    $0186    
  192. co3:    dc.w    $0f00
  193.     DC.W    $0188
  194. co4:    dc.w    $000f
  195.     DC.W    $018a
  196. co5:    dc.w    $0f0f
  197.     DC.W    $018c
  198. co6:    dc.w    $00ff
  199.     DC.W    $018e
  200. co7:    dc.w    $f0ff
  201.     DC.W    $0190
  202. co8:    dc.w    $0620
  203.     DC.W    $0192
  204. co9:    dc.w    $0e50
  205.     DC.W    $0194
  206. co10:    dc.w    $09f1
  207.     DC.W    $0196    
  208. co11:    dc.w    $0eb0
  209.     dc.w    $0198
  210. co12:    dc.w    $055f
  211.     dc.w    $019a
  212. co13:    dc.w    $092f
  213.     dc.w    $019c
  214. co14:    dc.w    $00f8
  215.     dc.w    $019e
  216. co15:    dc.w    $0ccc
  217.     dc.w    $01a0
  218. co16:    dc.w    $0000        
  219.     dc.w    $01a2
  220. co17:    dc.w    $0d22
  221.     dc.w    $01a4
  222. co18:    dc.w    $0000
  223.     dc.w    $01a6
  224. co19:    dc.w    $0fca
  225.     dc.w    $01a8
  226. co20:    dc.w    $0444    
  227.     dc.w    $01aa
  228. co21:    dc.w    $0555
  229.     dc.w    $01ac
  230. co22:    dc.w    $0666
  231.     dc.w    $01ae
  232. co23:    dc.w    $0777
  233.     dc.w    $01b0
  234. co24:    dc.w    $0888
  235.     dc.w    $01b2
  236. co25:    dc.w    $0999
  237.     dc.w    $01b4
  238. co26:    dc.w    $0aaa
  239.     dc.w    $01b6
  240. co27:    dc.w    $0bbb
  241.     dc.w    $01b8
  242. co28:    dc.w    $0ccc
  243.     dc.w    $01ba
  244. co29:    dc.w    $0ddd
  245.     dc.w    $01bc
  246. co30:    dc.w    $0eee
  247.     dc.w    $01be
  248. co31:    dc.w    $0fff
  249.     DC.W    $00e0
  250. hi1:    DC.W    $0002
  251.     DC.W    $00e2
  252. lo1:    DC.W    $1000
  253.     DC.W    $00e4
  254. hi2:    DC.W    $0002
  255.     DC.W    $00e6
  256. lo2:    DC.W    $1000
  257.     DC.W    $00e8
  258. hi3:    DC.W    $0002
  259.     DC.W    $00ea
  260. lo3:    DC.W    $1000
  261.     DC.W    $00ec
  262. hi4:    DC.W    $0002
  263.     DC.W    $00ee
  264. lo4:    DC.W    $1000
  265.     DC.W    $00f0
  266. hi5:    DC.W    $0002
  267.     DC.W    $00f2
  268. lo5:    DC.W    $1000
  269.     DC.W    $0100,%0101000000000000
  270.     DC.W    $0102
  271. delay:    DC.W    $ff
  272.     DC.W    $0108,38
  273.     DC.W    $010a,38
  274.     DC.W    $0092,$0030
  275.     DC.W    $0094,$00d0
  276.     DC.W    $008e,$3681
  277.     DC.W    $0090,$fdc1
  278.     dc.w    $0120
  279.  
  280. BitMap:
  281. BytesPerRow:     blk.w 1,0
  282. Bytes:        blk.w 1,0
  283. Flags:         blk.b 1,0
  284. Depth:         blk.b 1,0
  285. Pad:          blk.w 1,0
  286. Plane1:        blk.l 1,0
  287. Plane2:        blk.l 1,0
  288. Plane3:        blk.l 1,0
  289. Plane4:        blk.l 1,0
  290. Plane5:        blk.l 1,0
  291. Planes:        blk.l 1,0
  292.  
  293.  
  294. RastPort:
  295.         blk.l 1,0
  296. R_BitMap:    blk.l 1,0
  297.         blk.b 2+4+4+4+8,0
  298.         blk.b 4,0
  299. cp_x:        blk.w 1,0
  300. cp_y:        blk.w 1,0
  301.            blk.b 8+22+[7*2]+[2*4]+8,0
  302.         blk.w 6,0
  303. even
  304. grname:        dc.b 'graphics.library',0
  305. even
  306. copptr:        blk.l 1,0
  307. oldcop:        blk.l 1,0
  308. GfxBase:    blk.l 1,0
  309. bif:        blk.l 1,0
  310. Disk_buf:    blk.l 1,0
  311. col_buf:    blk.l 25,0
  312. buffer1:    blk.l 25,0
  313.  
  314. align 4
  315.  
  316.