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

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