There must be a more elegant way to do this

DELAY_1K
      MOVLW   	D'250'
      MOVWF   	TIMER
LOOP_1K
      NOP
      DECFSZ	TIMER, 1
      GOTO 	LOOP_1K
      RETURN

DELAY_250K
      MOVLW   	D'250'
      MOVWF   	TIMER1
LOOP_250K
      NOP
      CALL	DELAY_1K
      DECFSZ	TIMER1, 1
      GOTO 	LOOP_250K
      RETURN

DELAY_3M
      MOVLW   	D'12'
      MOVWF   	TIMER2
LOOP_3M
      NOP
      CALL	DELAY_250K
      DECFSZ	TIMER, 1
      GOTO 	LOOP_3M
      RETURN