SHAREBANK NAME=gpr0 START=0xC END=0x4F
SHAREBANK NAME=gpr0 START=0x8C END=0xCF PROTECTED
DATABANK NAME=gpr0 START=0x20 END=0x6F
DATABANK NAME=gpr1 START=0xA0 END=0xEF
DATABANK NAME=gpr2 START=0x110 END=0x16F
DATABANK NAME=gpr3 START=0x190 END=0x1EF
SHAREBANK NAME=gprnobnk START=0x70 END=0x7F
SHAREBANK NAME=gprnobnk START=0xF0 END=0xFF PROTECTED
SHAREBANK NAME=gprnobnk START=0x170 END=0x17F PROTECTED
SHAREBANK NAME=gprnobnk START=0x1F0 END=0x1FF PROTECTED
LIBPATH .
CODEPAGE NAME=page0 START=0x0 END=0x7FF
CODEPAGE NAME=page1 START=0x800 END=0xFFF
CODEPAGE NAME=.idlocs START=0x2000 END=0x2003 PROTECTED
CODEPAGE NAME=devid START=0x2006 END=0x2006 PROTECTED
CODEPAGE NAME=.config START=0x2007 END=0x2007 PROTECTED
CODEPAGE NAME=eedata START=0x2100 END=0x217F PROTECTED
DATABANK NAME=sfr0 START=0x0 END=0x1F PROTECTED
DATABANK NAME=sfr1 START=0x80 END=0x9F PROTECTED
DATABANK NAME=sfr2 START=0x100 END=0x10F PROTECTED
DATABANK NAME=sfr3 START=0x180 END=0x18F PROTECTED
SHAREBANK NAME=gpr0 START=0x20 END=0x7F
SHAREBANK NAME=gpr0 START=0x120 END=0x17F PROTECTED
SHAREBANK NAME=gpr1 START=0xA0 END=0xFF
SHAREBANK NAME=gpr1 START=0x1A0 END=0x1FF PROTECTED
SECTION NAME=PROG1 ROM=page0 // ROM code space - page0
SECTION NAME=PROG2 ROM=page1 // ROM code space - page1
SECTION NAME=IDLOCS ROM=.idlocs // ID locations
SECTION NAME=DEEPROM ROM=eedata // Data EEPROM
Por ahora mi solución es declarar las variables con equ, pero por lo que leí, UDATA puede ser de hasta 256 y en éste caso es sólo de 6.
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00001 list
00002 ;************************************************
00003 ; Definicion de variables
00004 ;************************************************
00005
0000 00006 global Var1
0000 00007 extern _Suma, Var3
00008
00009 Bank0: udata_acs
000000 00010 Var1: res 1
000001 00011 Var2: res 1
00012
00013 ;************************************************
00014 ; Vectores de reset e interrupcion
00015 ;************************************************
00016
00017 Rst: code 0x00 ;Vector de Reset
000000 EF?? F??? 00018 GOTO Main
00019
00020 org 0x08 ;Vector de Interrupcion Alta Prioridad
000008 0012 00021 RETURN
00022
00023 org 0x18 ;Vector de Interrupcion Baja Prioridad
000018 0012 00024 RETURN
00025
00026 ;************************************************
00027 ; Programa Principal
00028 ;************************************************
00001A 00029 Main:
00001A EC?? F??? 00030 CALL _Suma
00001E 0000 00031 NOP
000020 0E78 00032 MOVLW 0x78
000022 12?? 00033 IORWF Var3
000024 0000 00034 NOP
000026 EF?? F??? 00035 GOTO $ ;Loop infinito
00036
00037 ;----------- Fin de programa ---------------------
00038 ENDéste complemento se refiere a que agrega instrucciones para pasar de un banco a otro cuando se acceden a las variables que no son SHARE?