Found this :code crosses boundary @800
what is problem of my code
Code:
DEFINE LOADER_USED 1

INCLUDE "modedefs.bas"
                               
'-------------------------- Ports settings ---------------------------------
                                                                   
TRISA = %00000001
PORTA = %00000001 
TRISB = %00000111  
PORTB = %00000111                                                                 
'-------------------------- Special function registers -------------------
'-------------------------- Variables ---------------------------
'*****74HC595 DE???KENLER?N? TANIMLA*****
DTA var PORTB.5     '21--14 b7
Latch var PORTB.6  '22--12 b6
CLK var PORTB.7   '23--11  b5                                                                 
Digit_1 var PORTB.4
Digit_2 var PORTB.0

IN_1 var PORTA.3
IN_2 var PORTA.1
IN_3 var PORTA.2
IN_4 var PORTA.4
sw_mode var PORTA.0
sw_up var PORTB.1
sw_down var PORTB.2
sw_Mode_data VAR Byte
sw_up_data var  Byte
sw_down_data VAR Byte
Data_mode VAR Byte

I VAR Byte
M VAR Byte    ' delay for motro step
N  VAR  Byte
P  VAR  Byte
T1  VAR  Word
loaddata VAR Word


Dataorg VAR Byte			' keep data position
Dataorg_ADDRESS con 0
DATA_MOTOR VAR Byte
DATA_MOTORx VAR Byte
DATA_MOTOR_ADDRESS con 2
VALUE VAR Byte
DATA_save_ADDRESS con 4
DATA_power_ADDRESS con 6
                                                                 
'-------------------------- Main program -------------------------
pause 200
 M = 10       ' delay for motro step
 N = 0         ' data motor conter
 P = 0
' Write Dataorg_ADDRESS , 13
' 'EWRITE DATA_MOTOR_ADDRESS , [100]
' Write DATA_save_ADDRESS , 2
' Write DATA_power_ADDRESS , 15
 
 Read  DATA_MOTOR_ADDRESS,DATA_MOTOR                                                                

MainProgram:
   
  If sw_mode = 0 Then 
     GoTo  sw_m
  EndIf  
 CHK_sw:
 
  GoSub  Show_7seg 
  
  If sw_up = 0 Then
      pause 150
      GoTo T_Right    'up OPEN
      PORTA = %00000001
  Else
      If sw_down = 0 Then
          pause 150
          GoSub T_left     
          PORTA = %00000001
      EndIf
  EndIf
                                                                    
GoTo  MainProgram   ' Return to main program
'++++++++++++++++++++++ mode ++++++++                                                                   
Mode_option:
T1 = 2300
loopa:
If T1 = 0 Then GoTo Select_A
T1 = t1-1

   If sw_mode = 0 Then 
sw_m:
      sw_Mode_data = sw_Mode_data+10
      pause 200     ' delay 3 sec
      T1=2300             'T1 ******
      VALUE = sw_Mode_data
      GoSub Show_7segx
   EndIf  
   If sw_up_data <> 2 Then
       If sw_up = 0 Then 
          pause 150
          sw_up_data = 2
          T1=2300         'T1 ******
          Data_mode = sw_Mode_data + sw_up_data
          VALUE = Data_mode
          GoSub Show_7segx
       EndIf 
   EndIf
   If sw_down_data <> 1 Then 
       If sw_down = 0 Then 
          pause 150
          sw_down_data = 1
          T1=2300           'T1******
          Data_mode = sw_Mode_data + sw_down_data
          VALUE = Data_mode
          GoSub Show_7segx
       EndIf
   EndIf 
   Data_mode = sw_Mode_data + sw_up_data + sw_down_data
   VALUE = Data_mode
   If Data_mode >= 40 Then
      pause 150
      Data_mode =0
      VALUE = DATA_MOTOR
      sw_Mode_data=0
      sw_up_data = 0
      sw_down_data = 0
      GoTo CHK_sw
   EndIf
   GoSub Show_7segx
   'DELAYMS 10
GoTo loopa


Select_A: 
Select case Data_mode       ' mode 10  preset
     
Case 11                    'Read save data
     If sw_up = 0 Then
         sw_Mode_data=0
         sw_up_data = 0
         Read  DATA_save_ADDRESS,DATA_MOTORx
         'EWrite 15 , [ DATA_MOTORx ]
         If DATA_MOTOR > DATA_MOTORx Then
         'n = 13 - 2  = 11
         P = DATA_MOTOR - DATA_MOTORx                                                                 
         'Write 16 , P 
         GoSub MOVE_down          'load data                                                       
         EndIf
      Else
          sw_Mode_data=0
          sw_up_data = 0
      EndIf   
        
Case 12                      'Read power data
      If sw_down =0 Then
         sw_Mode_data=0
         sw_down_data = 0
         Read  DATA_power_ADDRESS, DATA_MOTORx
         If DATA_MOTORx < DATA_MOTOR Then
         'n = 50 - 8  = 48
         P = DATA_MOTORx - DATA_MOTOR                                                                 
          'N=30
         GoSub MOVE_up          'load data
         EndIf
      Else
         sw_Mode_data=0
         sw_down_data = 0
      EndIf
     

Case 21
     If sw_up =0 Then
         sw_Mode_data=0
         sw_up_data = 0
         DATA_MOTOR = DATA_MOTOR +1
        Write DATA_save_ADDRESS , DATA_MOTOR
     Else
         sw_Mode_data=0
         sw_up_data = 0
     EndIf
         
Case 22
     If sw_down = 0 Then
         sw_Mode_data=0
         sw_down_data = 0
         DATA_MOTOR = DATA_MOTOR +1
         Write DATA_power_ADDRESS , DATA_MOTOR
     Else
         sw_Mode_data=0
         sw_down_data = 0
     EndIf
Case 23      
     If sw_up = 0 And sw_down = 0 Then
         sw_Mode_data=0
         sw_up_data = 0 
         sw_down_data = 0
         DATA_MOTOR = DATA_MOTOR +1
         Write Dataorg_ADDRESS , DATA_MOTOR
     Else
         sw_Mode_data=0
         sw_up_data = 0 
         sw_down_data = 0
     EndIf

Case 33
     If sw_up = 0 And sw_down = 0 Then
         sw_Mode_data=0
         sw_up_data = 0
         sw_down_data = 0
         GoSub Reset_motor
     Else
         sw_Mode_data=0
         sw_up_data = 0
         sw_down_data = 0
     EndIf
Case else
     sw_Mode_data=0
     sw_up_data = 0
     sw_down_data = 0
End Select
GoSub Show_7seg

sw_up_data = 0
sw_down_data = 0
GoTo CHK_sw 
                                                                   
'-------------------------- User subroutine_1--------------------------
                                                                   
Show_7seg:
VALUE = DATA_MOTOR

Show_7segx:
For I = 0 To 1		' Loop through 4 digits
		N = VALUE Dig I	' Get digit to display
		GoSub Display1	' Display the digit
		If sw_Mode_data > 1 Then
		   loaddata = loaddata  | %10000000     ' led on setup
        EndIf
        If I = 0 Then
            
            SHIFTOUT DTA,CLK,1,[loaddata\8]
            High Latch
            Low Digit_1
            High Digit_2
            Low Latch
        Else
           
            SHIFTOUT DTA,CLK,1,[loaddata\8]
            High Latch
            High Digit_1
            Low Digit_2
            Low Latch 
                                                                 
        EndIf
      
    Next			' Do next digit
	
    Return    ' Return from subroutine


              
Display1:  ' looup data for 7 seg                                               
LookUp N, [$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F],loaddata
Return                                                                   
''-------------------------- User subroutine_2--------------------------
                                                 
T_Right:                     ' 3 1 2 4     'up OPEN

PORTA =%00001011   '2
pause M
PORTA =%00000111   '4
pause M 
PORTA =%00010101   '6
pause M
PORTA =%00011001   '8
pause M

DATA_MOTOR = DATA_MOTOR+1
If DATA_MOTOR >= 60 Then
DATA_MOTOR = 60

Else
Write DATA_MOTOR_ADDRESS , DATA_MOTOR
EndIf
Toggle Digit_2                            
Toggle Digit_1
Return

'---------------------
T_left:                 'down CLOSE

PORTA =%00011001   '8
pause M
PORTA =%00010101   '6
pause M
PORTA =%00000111   '4
pause M
PORTA =%00001011   '2
pause M

DATA_MOTOR = DATA_MOTOR - 1
If DATA_MOTOR <= 0 Then
DATA_MOTOR = 0
'EWRITE DATA_MOTOR_ADDRESS , [ DATA_MOTOR ]
Else
Write DATA_MOTOR_ADDRESS ,  DATA_MOTOR 
EndIf
Toggle Digit_2
Toggle Digit_1
Return

'=============================
'Original position 
Reset_motor:  ' move down
N = N + 1

PORTA =%00011001   '8
pause M
PORTA =%00010101   '6
pause M
PORTA =%00000111   '4
pause M
PORTA =%00001011   '2
pause M

If N < 65 Then
Toggle Digit_1
GoTo Reset_motor
EndIf
'======================= 
'Variable = EREAD Address 
Read  Dataorg_ADDRESS  , n
DATA_MOTOR = 0      'KEEP DATA FOR SHOW DISPLAY
'=======================
MOVE1:

PORTA =%00001011   '2
pause M
PORTA =%00000111   '4
pause M
PORTA =%00010101   '6
pause M
PORTA =%00011001   '8
pause M

If N <> 0 Then
N = N - 1
Toggle Digit_1
DATA_MOTOR = DATA_MOTOR + 1
GoTo MOVE1
EndIf
PORTA = %00000001
Write DATA_MOTOR_ADDRESS , DATA_MOTOR 
'return
GoTo CHK_sw

'=====================================
MOVE_down:        'per-set save

PORTA =%00011001   '8
pause M
PORTA =%00010101   '6
pause M
PORTA =%00000111   '4
pause M
PORTA =%00001011   '2
pause M

If P > 0 Then
P = P - 1
Toggle Digit_1
DATA_MOTOR = DATA_MOTOR - 1
GoSub Show_7seg
GoTo MOVE_down
EndIf
PORTA = %00000001
Write DATA_MOTOR_ADDRESS , DATA_MOTOR 
Return

'===================================
MOVE_up:        'per-set power

PORTA =%00001011   '2
pause M
PORTA =%00000111   '4
pause M
PORTA =%00010101   '6
pause M
PORTA =%00011001   '8
pause M

If P > 0 Then 
P = P - 1
Toggle Digit_1
DATA_MOTOR = DATA_MOTOR + 1
GoTo MOVE_up
EndIf
PORTA = %00000001
Write DATA_MOTOR_ADDRESS , DATA_MOTOR 
Return


end