Seit ich

Code:
nop
goto	main	
nop
nop
eingefügt habe, habe ich folgende Fehlermeldung



Error - file 'D:\CANON\16f59\main.o', section '.org_0', performs a call to
symbol 'signalrueck' which is not in the lower half of a page.


habe mit pagesel probiert, programm läuft trotzdem nicht, habs wieder wegkommentiert.

Was mach ich falsch?

gruss Andi



Code:
	list		p=16f59 
	#include	<P16f5x.INC>
;----------------------------------------------------------
; Configuration Word
	__CONFIG	_CP_OFF & _WDT_OFF & _HS_OSC
;----------------------------------------------------------
; Variablen festlegen
	cblock		0x10 
	delay1		;equ	0x20	; Wartezeit für WAIT in Millisekunden
	delay2		;equ	0x21	; interner timer für wait
	value		; Delayzeit
	times1		; Anzahl der Wiederholungen bei signalrueck
	times2		; Anzahl der Wiederholungen bei signalrueck
	times3		; Anzahl der Wiederholungen bei signalrueck fuer aus
	steps		; Anzahl der Schritte bei Aufwaermen
	anzahl		; Anzahl der Aufrufe bei papiereinzug
	anzahl2		; Anzahl der Aufrufe bei papiereinzug 2
	endc

;----------------------------------------------------------
; Konstanten festlegen

#define	VorschubV	PORTA,0		; Vorschub vor
#define	VorschubR	PORTA,1		; Vorschub rueck
#define	PapierR		PORTA,2		; Papier runter
#define	PapierH		PORTA,3		; Papier hoch

	org		0x0000					; Programmanfang
	nop
	goto	main	
	nop
	nop
	
;------------------------------------------------
main
	call	Init
;-------------------- Fehlerfalle
	btfsc	VorschubV
	goto	bypass
	btfsc	VorschubR
	goto	bypass
	btfsc	PapierR
	goto	bypass
	btfsc	PapierH
	goto	bypass
;-------------------- Fehlerfalle ende
	call	printinit
initready
	clrf	PORTC
	nop
	bsf		PORTC,6
	bsf		PORTC,7
;------------------------------------------------
; Aufwaermen oder Drucken
test
	btfsc	VorschubR
	goto	warmupinit
	btfsc	PapierH
	goto	print
	goto	test
;------------------------------------------------

; delay -------------------
delay
	movwf	delay2
loop1
	movwf	delay1
loop2
	decfsz	delay1,1
	goto	loop2
	decfsz	delay2,1
	goto	loop1
	retlw	0
; delay end ---------------

; Aufwaermen
warmupinit
	movlw	0x0b
	movwf	steps
warmup
;step1
	movlw	0x0a			; Zeit bis Sensor an
	movwf	times1
	movwf	times2
	decf	steps, 1
step1
	btfss	VorschubR
	goto	step1
	bsf		PORTC,1
	movlw	0x0a
	movwf	value
	;pagesel	signalrueck
	call	signalrueck
	decfsz	times2,1
	goto	sprung1
	movlw	0x0a
	movwf	times2
	decfsz	times1,1
	goto	sprung1
	bsf		PORTB,0
sprung1
	btfsc	VorschubR
	goto	step1
;step1 end
;---------------------------
;step2
	movlw	0x0a			; Zeit bis Sensor aus
	movwf	times1
	movwf	times2
step2
	btfss	VorschubR
	goto	step2
	bsf		PORTC,2
	movlw	0x0a
	movwf	value
	;pagesel	signalrueck
	call	signalrueck
	decfsz	times2,1
	goto	sprung2
	movlw	0x0a
	movwf	times2
	decfsz	times1,1
	goto	sprung2
	bcf		PORTB,0
sprung2
	btfsc	VorschubR
	goto	step2
	
	decfsz	steps,1
	goto	step3
	goto	print
;step2 end
;---------------------------
;step3
step3
	btfss	VorschubR
	goto	step3
	bsf		PORTC,3
	movlw	0x0a
	movwf	value
	;pagesel	signalrueck
	call	signalrueck
	btfsc	PORTA,1
	goto	step3
;step3 end
	bcf		PORTC,1
	nop
	bcf		PORTC,2
	nop
	bcf		PORTC,3
	decf	steps,1
	goto	warmup


;---------------------------------------------------------
;********************* DRUCKEN ***************************
print
;----LEDs----
	clrf	PORTC
	bsf		PORTC,0
	bsf		PORTC,4
	bsf		PORTC,5
;----Vorschub
printloop
	btfss	PapierH		; wenn PapierH gesetzt ...
	goto	printloop	; ... sonst warten
	movlw	0x12		; Dauer der Schleife bis Papier unten geladen ist
	movwf	anzahl2		; Dauer der Schleife uebergeben
einzug
	decfsz	anzahl2		; Dekrementieren					
	goto	jump		; bei 0 ueberspringen sonst Sprung auf jump
	bcf		PORTB,2		; ... PORTB,2 -> Papier geladen
	;bcf		PORTB,1		; nur ein test, loeschen ###############
	;bsf		PORTB,2		; nur ein test, loeschen ###############
	goto	bypass		; wenn Papier geladen Sprung auf bypass
jump
	movlw	0xff		; Dauer2 der Schleife
	movfw	anzahl		; Dauer2 der Schleife uebergeben
	movlw	0x03		; Parameteruebergabe ...
	movwf	value		; ... fuer papiereinzug
	call	papiereinzug; papiereinzug aufrufen
	bcf		PORTB,1		; Papier oben angekommen (PORTB,1)


;-------Bypass
bypass
	movlw	0xff
	movwf	anzahl
	movwf	PORTC
bypass1
	movlw	0xff
	movwf	anzahl2
bypass2
	decfsz	anzahl2
	goto	jump2
	decfsz	anzahl
	goto	jump2
	;bsf		PORTB,2		; Papier unten durch (PORTB,2) ...
	goto	laststep	; ... sprung auf den letzten Schritt
jump2
	movfw	PORTE
	movwf	PORTD
	goto	bypass2
laststep				; Letzter Schritt
	movfw	PORTE
	movwf	PORTD
	btfsc	PapierH
	goto	print
	goto	laststep

;********************* DRUCKEN ENDE **********************
;------------------------------------------------
papiereinzug
	call	signalrunter
	decfsz	anzahl
	goto	papiereinzug
	goto	einzug
	retlw	0


Init
	movlw	b'1111'
	TRIS	PORTA

	movlw	b'00000000'
	TRIS	PORTB
	clrf	PORTB
	bsf		PORTB,1
	bsf		PORTB,2

	movlw	b'00000000'
	TRIS	PORTC
	clrf	PORTC

	movlw	b'00000000'
	tris	PORTD
	clrf	PORTD

	movlw	b'11111111'
	TRIS	PORTE
	retlw	0

printinit
	bsf		PORTC,7
printinit1
	btfss	VorschubV
	goto	printinit1
	btfsc	PapierH
	;pagesel	papierraus
	goto	papierraus
	bsf		PORTC,0
	movlw	0x0a
	movwf	value
	call	signalvor
	btfsc	PORTA,0
	goto	printinit1
printinit2
	btfss	PapierR
	goto	printinit2
	bsf		PORTC,1
	movlw	0x0c
	movwf	value
	call	signalhoch
	btfsc	PapierR
	goto	printinit2
printinit3
	btfss	PapierH
	goto	printinit3
	bsf		PORTC,2
	movlw	0x0c
	movwf	value
	call	signalrunter
	btfsc	PapierH
	goto	printinit3
printinit4
	btfss	PapierR
	goto	printinit4
	bsf		PORTC,3
	movlw	0x05
	movwf	value
	call	signalhoch
	btfsc	PapierR
	goto	printinit4
printinit5
	btfss	VorschubV
	goto	printinit5
	bsf		PORTC,4
	movlw	0x0a
	movwf	value
	call	signalvor
	btfsc	VorschubV
	goto	printinit5
;----------------------------
cleaning
	movlw	0x0a			; Zeit bis Impuls
	movwf	times1
	movwf	times2
printinit6
	btfss	VorschubR
	goto	printinit6
	bsf	PORTC,5
	movlw	0x0a
	movwf	value
	;pagesel	signalrueck
	call	signalrueck
	decfsz	times2,1
	goto	sprung
	movlw	0x0a
	movwf	times2
	decfsz	times1,1
	goto	sprung
	bsf		PORTB,0
	movlw	0x7f			; Impulsdauer
	movwf	times3
sprung
	decfsz	times3,1
	goto	sens
	bcf		PORTB,0
sens
	btfsc	VorschubR
	goto	printinit6
	
;----------------------------
printinit7
	btfss	VorschubV
	goto	printinit7
	bsf		PORTC,6
	movlw	0x0a
	movwf	value
	call	signalvor
	btfsc	VorschubV
	goto	printinit7
;	..



	goto	initready
; init ende



signalvor
	bsf		PORTD,7
	movfw	value
	call	delay
	bsf		PORTD,6
	movfw	value
	call	delay
	bcf		PORTD,7
	movfw	value
	call	delay
	bcf		PORTD,6
	movfw	value
	call	delay
	retlw	0

signalhoch
	bsf		PORTD,5
	movfw	value
	call	delay
	bsf		PORTD,4
	movfw	value
	call	delay
	bcf		PORTD,5
	movfw	value
	call	delay
	bcf		PORTD,4
	movfw	value
	call	delay
	retlw	0

signalrunter
	bsf		PORTD,4
	movfw	value
	call	delay
	bsf		PORTD,5
	movfw	value
	call	delay
	bcf		PORTD,4
	movfw	value
	call	delay
	bcf		PORTD,5
	movfw	value
	call	delay
	retlw	0
	
	;org		0x200
signalrueck
	bsf		PORTD,6
	movfw	value
	call	delay
	bsf		PORTD,7
	movfw	value
	call	delay
	bcf		PORTD,6
	movfw	value
	call	delay
	bcf		PORTD,7
	movfw	value
	call	delay
	retlw	0



;--------Papierauswurf bei Fehler-----------
papierraus
	btfss	PapierH
	;pagesel	papierraus1
	goto	papierraus1

	bsf		PORTD,4
	bsf		PORTD,7
	movfw	value
	call	delay
	bsf		PORTD,5
	bsf		PORTD,6
	movfw	value
	call	delay
	bcf		PORTD,4
	bcf		PORTD,7
	movfw	value
	call	delay
	bcf		PORTD,5
	bcf		PORTD,6
	movfw	value
	call	delay
	bsf		PORTB,1
	;pagesel	papierraus
	goto	papierraus

	;Vorschub Rueck
	movlw	0x0a			; Zeit bis Impuls
	movwf	times1
	movwf	times2
papierraus1
	btfss	VorschubR
	;pagesel	papierraus1
	goto	papierraus1
	bsf		PORTC,5
	movlw	0x0a
	movwf	value
	;pagesel	signalrueck
	call	signalrueck
	decfsz	times2,1
	;pagesel	papierraus11
	goto	papierraus11
	movlw	0x0a
	movwf	times2
	decfsz	times1,1
	;pagesel	papierraus11
	goto	papierraus11
	bsf		PORTB,0
	movlw	0x7f			; Impulsdauer
	movwf	times3
papierraus11
	decfsz	times3,1
	;pagesel	papierraus12
	goto	papierraus12
	bcf		PORTB,0
papierraus12
	btfsc	VorschubR
	;pagesel	papierraus1
	goto	papierraus1

papierraus2
	btfss	VorschubV
	;pagesel	papierraus2
	goto	papierraus2
	bsf		PORTC,6
	movlw	0x0a
	movwf	value
	call	signalvor
	btfsc	VorschubV
	;pagesel	papierraus2
	goto	papierraus2
	goto print
;--------Papierauswurf bei Fehler end-------

	end