Example for the 'External.asm' file, assuming that it contains all the called routines above:
list p=PIC16F690 ; Target processor device
list r=dec ; Use decimal radix
include "PROCESSOR.ASM" ; Device specifics include file
errorlevel -302
; procedure ExternalProc1A(N: byte); external 'Externals';
__EXTERNALS_0 code
Externals.ExternalProc1A:
global Externals.ExternalProc1A
extern Externals.ExternalProc1A.N
banksel Externals.ExternalProc1A.N ; current bank is unknown
movf Externals.ExternalProc1A.N, W
banksel PORTA
movwf PORTA
banksel 0 ; restore bank
return
; function ExternalFunc1B: BYTE; external 'Externals';
__EXTERNALS_1 code
Externals.ExternalFunc1B:
global Externals.ExternalFunc1B
extern Externals.ExternalFunc1B.Result
banksel PORTA ; current bank is unknown
movf PORTA, W
banksel Externals.ExternalFunc1B.Result
movwf Externals.ExternalFunc1B.Result ; result in internal AND in W
banksel 0 ; restore bank
return
; procedure ExternalProc2; external;
__EXTERNALS_2 code
ExternalProc2:
global ExternalProc2
banksel PORTA ; current bank is unknown
clrf PORTA
banksel 0 ; restore bank
return
end