home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 4: Demo 1
/
almathera_demo1.bin
/
sourcecode
/
german
/
pallader.s
< prev
next >
Wrap
Text File
|
1995-03-17
|
5KB
|
318 lines
BitPlane1=$68000 ;Adresse Bitplane 1
bitplane2=$6b000
bitplane3=$6e000
bitplane4=$71000
bitplane5=$74000
Exec=4 ;Basisadresse Execbase
Permit=-138 ;Stop Multitasking
Open= -30 -0
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
RectFill= -30 -276
ScrollRaster= -30 -366
WritePixel= -30 -294
SetAPen= -30 -312
setbpen= -30 -318
WaitTOF= -30 -240
text= -30 -30
start:
jsr setup ;Initialisiert die Bitmaps und
;oeffnet benoetigte Libraries
grafik:
jsr setcopper
move.l dos_base,a6
move.l #bild,d1
move.l #1005,d2
jsr open(a6)
beq ende
move.l d0,fn
move.l dos_base,a6
move.l fn,d1
move.l #dummy,d2
move.l #42,d3
jsr read(a6)
beq ende
move.l dos_base,a6
move.l fn,d1
move.l #col_buf,d2
move.l #64,d3
jsr read(a6)
beq ende
move.l #col_buf,a0
move.l #co0,a1
move.b #32,d0
col1: move.w (a0)+,(a1)
add.l #4,a1
sub.b #1,d0
bne col1
move.l #bitplane1,d2
jsr laden
move.l #bitplane2,d2
jsr laden
move.l #bitplane3,d2
jsr laden
move.l #bitplane4,d2
jsr laden
move.l #bitplane5,d2
jsr laden
move.l dos_base,a6
move.l fn,d1
jsr close(a6)
jmp wait
laden: move.l dos_base,a6
move.l fn,d1
move.l #11528,d3
jsr read(a6)
beq ende
rts
wait:
andi.b #64,$bfe001 ;Bit 7 (linke Maustaste)
bne wait
ende: 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 dos_base,a1
jsr closelibrary(a6)
jsr Permit(a6) ;Multitasking wieder zulassen
ILLEGAL ;Rueckkehr zum SEKA
rts ;ende
setup:
move.l Exec,a6 ;Exebase-Adresse nach a6
jsr permit(a6) ;Stop Multitasking
move.l exec,a6
lea.l dosname,a1
jsr Openlibrary(a6)
move.l d0,dos_base
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
lea BitMap,a0 ;Bitmapstruktur nach a0
moveq #5,d0 ;Tiefe (5 Bitplanes)
move.l #352,d1 ;320 Pixel nach x
move.l #262,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 #3000,d0 ;8000 Bytes fuer Bitplane bele-
cl1: clr.l (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 #3000,d0
cl2: clr.l (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 #3000,d0
cl3: clr.l (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 #3000,d0
cl4: clr.l (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 #3000,d0
cl5: clr.l (a0)+
dbf d0,cl5
rts
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
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 $00
DC.W $0108,0
DC.W $010a,0
DC.W $0092,$002e
DC.W $0094,$00d0
DC.W $008e,$1c81
DC.W $0090,$22ff
DC.W $ffff,$fffe
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
Dosname: DC.B 'dos.library',0
even
copptr: blk.l 1,0
oldcop: blk.l 1,0
GfxBase: blk.l 1,0
Dos_base: blk.l 1,0
fn: blk.l 1,0
col_buf: blk.l 16,0
bild: dc.b 'df1:farbe',0
dummy: blk.l 1,0