home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 4: Demo 1
/
almathera_demo1.bin
/
sourcecode
/
german
/
gr-demo.s
< prev
next >
Wrap
Text File
|
1995-03-17
|
5KB
|
316 lines
PicBuffer=$40000
SndBuffer=$40000
BitPlane1=$60000 ;Adresse Bitplane 1
BitPlane2=$64000 ;Adresse Bitplane 2
BitPlane3=$68000 ;Adresse Bitplane 3
BitPlane4=$6c000 ;Adresse Bitplane 4
BitPlane5=$70000 ;Adresse BItplane 5
Exec=4 ;Basisadresse Execbase
Permit=-138 ;Stop Multitasking
Open= -30
Close= -30 -6
Read= -30 -12
Forbid=-132 ;Start Multitasking
OpenLibrary=-408
CloseLibrary=-414
InitRastPort=-198
InitBitMap=-390
SetRast= -30 -204
Move= -30 -210
Draw= -30 -216
Text= -30 -30
RectFill= -30 -276
ScrollRaster= -30 -366
WritePixel= -30 -294
SetAPen= -30 -312
WaitTOF= -30 -240
exit= -30 -114
polydraw= -30 -306
start:
jsr setup ;Initialisiert die Bitmaps und
jsr setcopper
move.l #40,d4
loop:
move.w d4,count
move.l gfxbase,a6
lea.l rastport,a1
move.l #0,d0
jsr setapen(a6)
move.l gfxbase,a6
lea.l rastport,a1
move.w x0,d0
move.w #20,d1
jsr draw(a6)
move.l gfxbase,a6
lea.l rastport,a1
move.l #30,d0
jsr setapen(a6)
move.l gfxbase,a6
lea.l rastport,a1
move.w #4,d0
move.w #20,pxyarray
move.w y1,pxyarray+2
move.w x1,pxyarray+4
move.w #180,pxyarray+6
move.w #300,pxyarray+8
move.w y0,pxyarray+10
move.w x0,pxyarray+12
move.w #20,pxyarray+14
lea.l pxyarray,a0
jsr polydraw(a6)
add.w #7,x0
sub.w #7,x1
add.w #4,y0
sub.w #4,y1
move.w count,d4
dbra d4,loop
wait:
andi.b #64,$bfe001 ;Bit 7 (linke Maustaste)
bne wait
stop:
move.l copptr,a0
move.l oldcop,(a0) ;Alte Copperliste wieder bereit-
move.l exec,a6
move.l GfxBase,a1 ;stellen und Gfxlibrary
jsr CloseLibrary(a6);schliessen
move.l exec,a6
jsr Permit(a6) ;Multitasking wieder zulassen
rts ;ende
setup:
move.l Exec,a6 ;Exebase-Adresse nach a6
jsr Forbid(a6) ;Stop Multitasking
lea GrName,a1 ;Gfxname nach a1
jsr OpenLibrary(a6) ;Gfxlibrary oeffnen
move.l d0,GfxBase ;Basisadresse buffern
move.l d0,a6
add.l #$32,d0
move.l d0,copptr
; ---- Setup the BitMap
lea BitMap,a0 ;Bitmapstruktur nach a0
moveq #5,d0 ;Tiefe (5 Bitplanes)
move.l #640,d1 ;320 Pixel nach x
move.l #200,d2 ;200 Pixel nach y
jsr InitBitMap(a6) ;Bitmap Initialisieren
lea RastPort,a1 ;erhaltenen Rastport nach a1
jsr InitRastPort(a6);Rastport initialisieren
move.l #BitMap,R_BitMap
move.l #BitPlane1,d0 ;Adresse Bitplane nach d0
move.l d0,Plane1 ;Adresse auch nach Plane1
move.l d0,a0 ;und nach Adressregister a0
move.w d0,lo1 ;sowie in Copperliste speichern
swap d0 ;Hi-Nibble isolieren und eben-
move.w d0,hi1 ;falls nach Copperliste
move.l #16000,d0 ;8000 Bytes fuer Bitplane bele-
move.b #$00,d1 ;gen
cl1: move.b d1,(a0)+
dbf d0,cl1
move.l #BitPlane2,d0
move.l d0,Plane2
move.l d0,a0
move.w d0,lo2
swap d0
move.w d0,hi2
move.l #16000,d0
move.b #$00,d1
cl2: move.b d1,(a0)+
dbf d0,cl2
move.l #BitPlane3,d0
move.l d0,Plane3
move.l d0,a0
move.w d0,lo3
swap d0
move.w d0,hi3
move.l #16000,d0
move.b #$00,d1
cl3: move.b d1,(a0)+
dbf d0,cl3
move.l #BitPlane4,d0
move.l d0,Plane4
move.l d0,a0
move.w d0,lo4
swap d0
move.w d0,hi4
move.l #16000,d0
move.b #$00,d1
cl4: move.b d1,(a0)+
dbf d0,cl4
move.l #BitPlane5,d0
move.l d0,Plane5
move.l d0,a0
move.w d0,lo5
swap d0
move.w d0,hi5
move.l #16000,d0
move.b #$00,d1
cl5: move.b d1,(a0)+
dbf d0,cl5
setcopper:
move.l copptr,a0 ;Adresse der Copperliste nach a0
move.l (a0),oldcop ;Alte Liste zwischenspeichern
move.l #Copper,(a0) ;Neue Liste fue Copper
rts
x0: dc.w 20
y0: dc.w 20
x1: dc.w 300
y1: dc.w 180
count: dc.w 0
pxyarray: blk.w 10
Copper:
DC.W $0180
co0: dc.w $0000
DC.W $0182
co1: dc.w $0fff
DC.W $0184
co2: dc.w $000f
DC.W $0186
co3: dc.w $0f00
DC.W $0188
co4: dc.w $000f
DC.W $018a
co5: dc.w $0f0f
DC.W $018c
co6: dc.w $00ff
DC.W $018e
co7: dc.w $f0ff
DC.W $0190
co8: dc.w $0620
DC.W $0192
co9: dc.w $0e50
DC.W $0194
co10: dc.w $09f1
DC.W $0196
co11: dc.w $0eb0
dc.w $0198
co12: dc.w $055f
dc.w $019a
co13: dc.w $092f
dc.w $019c
co14: dc.w $00f8
dc.w $019e
co15: dc.w $0ccc
dc.w $01a0
co16: dc.w $0000
dc.w $01a2
co17: dc.w $0d22
dc.w $01a4
co18: dc.w $0000
dc.w $01a6
co19: dc.w $0fca
dc.w $01a8
co20: dc.w $0444
dc.w $01aa
co21: dc.w $0555
dc.w $01ac
co22: dc.w $0666
dc.w $01ae
co23: dc.w $0777
dc.w $01b0
co24: dc.w $0888
dc.w $01b2
co25: dc.w $0999
dc.w $01b4
co26: dc.w $0aaa
dc.w $01b6
co27: dc.w $0bbb
dc.w $01b8
co28: dc.w $0ccc
dc.w $01ba
co29: dc.w $0ddd
dc.w $01bc
co30: dc.w $0eee
dc.w $01be
co31: dc.w $0fff
DC.W $00e0
hi1: DC.W $0002
DC.W $00e2
lo1: DC.W $1000
DC.W $00e4
hi2: DC.W $0002
DC.W $00e6
lo2: DC.W $1000
DC.W $00e8
hi3: DC.W $0002
DC.W $00ea
lo3: DC.W $1000
DC.W $00ec
hi4: DC.W $0002
DC.W $00ee
lo4: DC.W $1000
DC.W $00f0
hi5: DC.W $0002
DC.W $00f2
lo5: DC.W $1000
DC.W $0100,%0101000000000000
DC.W $0102
delay: DC.W $ff
DC.W $0108,38
DC.W $010a,38
DC.W $0092,$0030
DC.W $0094,$00d0
DC.W $008e,$3681
DC.W $0090,$fdc1
dc.w $0120
BitMap:
BytesPerRow: blk.w 1,0
Bytes: blk.w 1,0
Flags: blk.b 1,0
Depth: blk.b 1,0
Pad: blk.w 1,0
Plane1: blk.l 1,0
Plane2: blk.l 1,0
Plane3: blk.l 1,0
Plane4: blk.l 1,0
Plane5: blk.l 1,0
Planes: blk.l 1,0
RastPort:
blk.l 1,0
R_BitMap: blk.l 1,0
blk.b 2+4+4+4+8,0
blk.b 4,0
cp_x: blk.w 1,0
cp_y: blk.w 1,0
blk.b 8+22+[7*2]+[2*4]+8,0
blk.w 6,0
even
grname: dc.b 'graphics.library',0
even
copptr: blk.l 1,0
oldcop: blk.l 1,0
GfxBase: blk.l 1,0
bif: blk.l 1,0
Disk_buf: blk.l 1,0
col_buf: blk.l 25,0
buffer1: blk.l 25,0
align 4