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

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