Main:
	jsr    Kopieren
	rts
Start:
	move.w #$0610,d0        ;  RGB
	bsr    Blink
	move.l 4.w,a6
	lea    -456(a6),a5
	cmp.w  #20217,(a5)
	bne.s  Fehler
	btst   #06,$bfe001
	beq.s  Fehler            ; abschalten bei LMB
	lea    Adresse(pc),a4
	move.l 2(a5),-4(a4)
	lea    DoIO(pc),a4
	move.l a4,2(a5)
	move.w #$0F00,d0
	bsr    Blink               ; Rot
Fehler:
	moveq  #00,d0
	move.l d0,$2e(a6)
	rts

Daten:  dc.b   'DOS',0
	dc.l   0,$0370
	lea    dosname(pc),a1
	jsr    -96(a6)             ; Find Resident
	tst.l  d0
	beq.s  BootError
	move.l d0,a0
	move.l 22(a0),a0
	moveq  #0,d0
	rts
BootError:
	moveq  #-1,d0
	rts
DosName:  dc.b 'dos.library',0
Autor:    dc.b 'Programm von Harald Zacharias 1989',0
even

DoIO:
	movem.l d0-d7/a0-a6,-(sp)
	cmp.l  #$00,$2c(a1)          ; df0:
	bne.s  Irrtum
	cmp.l  #$0400,$24(a1)        ; 1 KByte
	bne.s  Irrtum
	move.w #$0070,d0             ; Grün
	bsr    Blink
	move.l 4.w,a6
	lea    -456(a6),a5
	lea    Adresse(pc),a4
	move.l -4(a4),2(a5)

	move.l $28(a1),a2
	lea    Daten(pc),a3
	moveq  #127,d1             ; Bytes kopieren
Kop:	move.l (a3)+,(a2)+
	dbf    d1,Kop

	move.l $28(a1),a0
	move.l (a0),d0
	add.l  #8,a0
	move.l #1016/4-1,d7
Schleife:
	add.l  (a0)+,d0
	bcc.s  ueberende
	addq.l #1,d0
ueberende:
	dbra   d7,Schleife
	addq.l #1,d0
	neg.l  d0
	bra.s  Checkeintrag
checkeintrag:
	move.l $28(a1),a0
	addq.l #4,a0
	move.l d0,(a0)

	bsr    Kopieren              ; Prg Resetfest

	movem.l (sp)+,d0-d7/a0-a6
	rts

Irrtum: 
	movem.l (sp)+,d0-d7/a0-a6	
	jmp    $00f80002		
Adresse:  

Vektor:				; CoolCapture auf (a0)
	move.l a0,$2e(a6)
	lea    $22(a6),a0
	moveq  #0,d0
	moveq  #$17,d1
VLoop:	add.w  (a0)+,d0
	dbf    d1,VLoop
	not.w  d0
	move.w d0,(a0)
	moveq  #00,d0
	rts

Blink:
	lea    $dff000,a0
	move.w d0,$180(a0)
	moveq  #$7f,d0
BLoop:  cmp.b  #0,06(a0)
	bne.s  BLoop
	dbf    d0,BLoop
	rts

Kopieren:
	move.l 4.w,a6
	move.l #Ende-Start+1,d0
	moveq  #01,d1              ; beliebiger Speicher
	jsr    -198(a6)            ; AllocMem
	tst.l  d0
	beq    Fehler
	lea    Start(pc),a1
	move.l d0,a0
	cmp.l  a1,a0
	beq.s  Kend
	move.l #Ende-Start+1,d1
KLoop:  move.b (a1)+,(a0)+
	dbf    d1,KLoop	
	move.l d0,a0
Kend:	bsr    Vektor
	rts
Ende:
