;   /\\\\\\\\\
;  /\\\///////\\\
;  \/\\\     \/\\\                                                 /\\\          /\\\
;   \/\\\\\\\\\\\/        /\\\\\     /\\\\\\\\\\     /\\\\\\\\   /\\\\\\\\\\\  /\\\\\\\\\\\  /\\\\\\\\\
;    \/\\\//////\\\      /\\\///\\\  \/\\\//////    /\\\/////\\\ \////\\\////  \////\\\////  \////////\\\
;     \/\\\    \//\\\    /\\\  \//\\\ \/\\\\\\\\\\  /\\\\\\\\\\\     \/\\\         \/\\\        /\\\\\\\\\\
;      \/\\\     \//\\\  \//\\\  /\\\  \////////\\\ \//\\///////      \/\\\ /\\     \/\\\ /\\   /\\\/////\\\
;       \/\\\      \//\\\  \///\\\\\/    /\\\\\\\\\\  \//\\\\\\\\\\    \//\\\\\      \//\\\\\   \//\\\\\\\\/\\
;        \///        \///     \/////     \//////////    \//////////      \/////        \/////     \////////\//
;                                  Let's find out together what makes a PIC Tick!
;
; Code Produced by the Positron8 Compiler. Version 4.0.1.0
; Created and Written by Les Johnson. 
; Compiler version for Godfried-Willem Raes
;----------------------------------------------------------
;
#define config_req 1
#define debug_req 1
 LIST  P = 18F2620, F = INHX32, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255, T = ON
; MICROCONTROLLER'S SFRS
; START OF ACCESS SFRS
PORTA equ 0X0F80
PORTB equ 0X0F81
PORTC equ 0X0F82
PORTE equ 0X0F84
LATA equ 0X0F89
LATB equ 0X0F8A
LATC equ 0X0F8B
DDRA equ 0X0F92
TRISA equ 0X0F92
DDRB equ 0X0F93
TRISB equ 0X0F93
DDRC equ 0X0F94
TRISC equ 0X0F94
OSCTUNE equ 0X0F9B
PIE1 equ 0X0F9D
PIR1 equ 0X0F9E
IPR1 equ 0X0F9F
PIE2 equ 0X0FA0
PIR2 equ 0X0FA1
IPR2 equ 0X0FA2
EECON1 equ 0X0FA6
EECON2 equ 0X0FA7
EEDATL equ 0X0FA8
EEDATA equ 0X0FA8
EEADR equ 0X0FA9
EEADRH equ 0X0FAA
RCSTA equ 0X0FAB
TXSTA equ 0X0FAC
TXREG equ 0X0FAD
RCREG equ 0X0FAE
SPBRG equ 0X0FAF
SPBRGH equ 0X0FB0
T3CON equ 0X0FB1
TMR3L equ 0X0FB2
TMR3LH equ 0X0FB3
TMR3H equ 0X0FB3
CMCON equ 0X0FB4
CVRCON equ 0X0FB5
BAUDCON equ 0X0FB8
BAUDCTL equ 0X0FB8
CCP2CON equ 0X0FBA
CCPR2 equ 0X0FBB
CCPR2L equ 0X0FBB
CCPR2LH equ 0X0FBC
CCPR2H equ 0X0FBC
CCP1CON equ 0X0FBD
CCPR1 equ 0X0FBE
CCPR1L equ 0X0FBE
CCPR1LH equ 0X0FBF
CCPR1H equ 0X0FBF
ADCON2 equ 0X0FC0
ADCON1 equ 0X0FC1
ADCON0 equ 0X0FC2
ADRES equ 0X0FC3
ADRESL equ 0X0FC3
ADRESLH equ 0X0FC4
ADRESH equ 0X0FC4
SSPCON2 equ 0X0FC5
SSPCON1 equ 0X0FC6
SSPSTAT equ 0X0FC7
SSPADD equ 0X0FC8
SSPBUF equ 0X0FC9
T2CON equ 0X0FCA
PR2 equ 0X0FCB
TMR2 equ 0X0FCC
T1CON equ 0X0FCD
TMR1L equ 0X0FCE
TMR1LH equ 0X0FCF
TMR1H equ 0X0FCF
RCON equ 0X0FD0
WDTCON equ 0X0FD1
HLVDCON equ 0X0FD2
LVDCON equ 0X0FD2
OSCCON equ 0X0FD3
DEBUG equ 0X0FD4
T0CON equ 0X0FD5
TMR0L equ 0X0FD6
TMR0LH equ 0X0FD7
TMR0H equ 0X0FD7
STATUS equ 0X0FD8
FSR2L equ 0X0FD9
FSR2LH equ 0X0FDA
FSR2H equ 0X0FDA
PLUSW2 equ 0X0FDB
PREINC2 equ 0X0FDC
POSTDEC2 equ 0X0FDD
POSTINC2 equ 0X0FDE
INDF2 equ 0X0FDF
BSR equ 0X0FE0
FSR1L equ 0X0FE1
FSR1LH equ 0X0FE2
FSR1H equ 0X0FE2
PLUSW1 equ 0X0FE3
PREINC1 equ 0X0FE4
POSTDEC1 equ 0X0FE5
POSTINC1 equ 0X0FE6
INDF1 equ 0X0FE7
WREG equ 0X0FE8
FSR0L equ 0X0FE9
FSR0LH equ 0X0FEA
FSR0H equ 0X0FEA
PLUSW0 equ 0X0FEB
PREINC0 equ 0X0FEC
POSTDEC0 equ 0X0FED
POSTINC0 equ 0X0FEE
INDF0 equ 0X0FEF
INTCON3 equ 0X0FF0
INTCON2 equ 0X0FF1
INTCON equ 0X0FF2
PRODL equ 0X0FF3
PRODLH equ 0X0FF4
PRODH equ 0X0FF4
TABLAT equ 0X0FF5
TBLPTRL equ 0X0FF6
TBLPTRLH equ 0X0FF7
TBLPTRH equ 0X0FF7
TBLPTRU equ 0X0FF8
TBLPTRLHH equ 0X0FF8
PC equ 0X0FF9
PCL equ 0X0FF9
PCLATH equ 0X0FFA
PCLATU equ 0X0FFB
STKPTR equ 0X0FFC
TOS equ 0X0FFD
TOSL equ 0X0FFD
TOSLH equ 0X0FFE
TOSH equ 0X0FFE
TOSU equ 0X0FFF
; I2C PINS USED BY HBUSIN AND HBUSOUT
_I2C_SCL_port=TRISC
_I2C_SCL_pin=3
_I2C_SDA_port=TRISC
_I2C_SDA_pin=4
; SFR BITS USED INTERNALLY BY THE COMPILER
C=0
DC=1
Z=2
OV=3
N=4
PD=5
To=6
PP_TXIF=4
PP_RCIF=5
PP_RD=0
PP_WR=1
PP_WREN=2
PP_WRERR=3
PP_EEPGD=7
PP_OERR=1
PP_CREN=4
PP_BRGH=2
PP_SENDB=3
PP_T3CCP1=3
PP_T3CCP2=6
PP_RD16=7
PP_BRG16=3
PP_ADON=0
PP_GO_DONE=1
PP_SEN=0
PP_RSEN=1
PP_PEN=2
PP_RCEN=3
PP_ACKEN=4
PP_ACKDT=5
PP_R_W=2
PP_T2CKPS0=0
PP_T2CKPS1=1
PP_TMR2ON=2
PP_TMR1ON=0
PP_RBPU=7
; MEMORY MAP OF THE DEVICE
  __MAXRAM  0X0FFF
  __BADRAM  0X0F83
  __BADRAM  0X0F85-0X0F88
  __BADRAM  0X0F8C-0X0F91
  __BADRAM  0X0F95-0X0F9A
  __BADRAM  0X0F9C
  __BADRAM  0X0FA3-0X0FA5
  __BADRAM  0X0FB6-0X0FB7
  __BADRAM  0X0FB9
; CONFIG FUSE NAME VALUES
config1h equ 0X300001
config2l equ 0X300002
config2h equ 0X300003
config3h equ 0X300005
config4l equ 0X300006
config5l equ 0X300008
config5h equ 0X300009
config6l equ 0X30000A
config6h equ 0X30000B
config7l equ 0X30000C
config7h equ 0X30000D
OSC_LP_1 equ 0XF0
OSC_XT_1 equ 0XF1
OSC_HS_1 equ 0XF2
OSC_RC_1 equ 0XF3
OSC_EC_1 equ 0XF4
OSC_ECIO6_1 equ 0XF5
OSC_HSPLL_1 equ 0XF6
OSC_RCIO6_1 equ 0XF7
OSC_INTIO67_1 equ 0XF8
OSC_INTIO7_1 equ 0XF9
FCMEN_OFF_1 equ 0XBF
FCMEN_ON_1 equ 0xFF
IESO_OFF_1 equ 0X7F
IESO_ON_1 equ 0xFF
PWRT_ON_2 equ 0XFE
PWRT_OFF_2 equ 0xFF
BOREN_OFF_2 equ 0XF9
BOREN_ON_2 equ 0XFB
BOREN_NOSLP_2 equ 0XFD
BOREN_SBORDIS_2 equ 0xFF
BORV_0_2 equ 0XE7
BORV_1_2 equ 0XEF
BORV_2_2 equ 0XF7
BORV_3_2 equ 0xFF
WDT_OFF_2 equ 0XFE
WDT_ON_2 equ 0xFF
WDTPS_1_2 equ 0XE1
WDTPS_2_2 equ 0XE3
WDTPS_4_2 equ 0XE5
WDTPS_8_2 equ 0XE7
WDTPS_16_2 equ 0XE9
WDTPS_32_2 equ 0XEB
WDTPS_64_2 equ 0XED
WDTPS_128_2 equ 0XEF
WDTPS_256_2 equ 0XF1
WDTPS_512_2 equ 0XF3
WDTPS_1024_2 equ 0XF5
WDTPS_2048_2 equ 0XF7
WDTPS_4096_2 equ 0XF9
WDTPS_8192_2 equ 0XFB
WDTPS_16384_2 equ 0XFD
WDTPS_32768_2 equ 0xFF
MCLRE_OFF_3 equ 0X7F
MCLRE_ON_3 equ 0xFF
LPT1OSC_OFF_3 equ 0XFB
LPT1OSC_ON_3 equ 0xFF
PBADEN_OFF_3 equ 0XFD
PBADEN_ON_3 equ 0xFF
CCP2MX_PORTBE_3 equ 0XFE
CCP2MX_PORTC_3 equ 0xFF
STVREN_OFF_4 equ 0XFE
STVREN_ON_4 equ 0xFF
LVP_OFF_4 equ 0XFB
LVP_ON_4 equ 0xFF
XINST_OFF_4 equ 0XBF
XINST_ON_4 equ 0xFF
DEBUG_ON_4 equ 0X7F
DEBUG_OFF_4 equ 0xFF
CP0_ON_5 equ 0XFE
CP0_OFF_5 equ 0xFF
CP1_ON_5 equ 0XFD
CP1_OFF_5 equ 0xFF
CP2_ON_5 equ 0XFB
CP2_OFF_5 equ 0xFF
CP3_ON_5 equ 0XF7
CP3_OFF_5 equ 0xFF
CPB_ON_5 equ 0XBF
CPB_OFF_5 equ 0xFF
CPD_ON_5 equ 0X7F
CPD_OFF_5 equ 0xFF
WRT0_ON_6 equ 0XFE
WRT0_OFF_6 equ 0xFF
WRT1_ON_6 equ 0XFD
WRT1_OFF_6 equ 0xFF
WRT2_ON_6 equ 0XFB
WRT2_OFF_6 equ 0xFF
WRT3_ON_6 equ 0XF7
WRT3_OFF_6 equ 0xFF
WRTB_ON_6 equ 0XBF
WRTB_OFF_6 equ 0xFF
WRTC_ON_6 equ 0XDF
WRTC_OFF_6 equ 0xFF
WRTD_ON_6 equ 0X7F
WRTD_OFF_6 equ 0xFF
EBTR0_ON_7 equ 0XFE
EBTR0_OFF_7 equ 0xFF
EBTR1_ON_7 equ 0XFD
EBTR1_OFF_7 equ 0xFF
EBTR2_ON_7 equ 0XFB
EBTR2_OFF_7 equ 0xFF
EBTR3_ON_7 equ 0XF7
EBTR3_OFF_7 equ 0xFF
EBTRB_ON_7 equ 0XBF
EBTRB_OFF_7 equ 0xFF
DEVID1 equ 0X3FFFFE
DEVID2 equ 0X3FFFFF
; COMPILER'S INTERNAL CONSTANTS AND ALIASES
#define __18F2620 1
#define xtal 40
#define _core 16
#define _MaxRAM 3955
#define _Ram_End 0X0F7F
#define _MaxMem 0X010000
#define _ADC 10
#define _ADC_res 10
#define _eeprom 1024
#define ram_banks 15
#define _USART 1
#define _USB 0
#define _flash 1
#define _cwrite_block 64
#define _TRIS_offset 18
#define __EE_RW_type 1
#define __MSSP_type 1
#define __HPWM_type 1
#define __adin_type 1
#define __UART_type 1
#define BankA_Start 0x00
#define BankA_End 0X7F
#define __Interrupts_Enabled 1
#define __high_interrupts_enabled 1
#define __low_interrupts_enabled 1
#define clrw clrf WREG
#define negw negf WREG
#define skpc btfss STATUS,0
#define skpnc btfsc STATUS,0
#define clrc bcf STATUS,0
#define setc bsf STATUS,0
#define skpz btfss STATUS,2
#define skpnz btfsc STATUS,2
#define clrz bcf STATUS,2
#define setz bsf STATUS,2
#define INIT_USART_INTERRUPT#REQ 1
#define CLEAR_SERIAL_BUFFER#REQ 1
; COMPILER SYSTEM VARIABLES
BPF equ 0x00
BPFH equ 0X01
GEN equ 0X02
PBS_VAR0 equ 0X03
PBS_VAR0H equ 0X04
PBS_VAR0HH equ 0X05
PBS_VAR0HHH equ 0X06
PBS_VAR1 equ 0X07
PBS_VAR1H equ 0X08
PP0 equ 0X09
PP0H equ 0X0A
PP1 equ 0X0B
PP1H equ 0X0C
PP2 equ 0X0D
PP2H equ 0X0E
PP3 equ 0X0F
PP3H equ 0X10
PP4 equ 0X11
PP4H equ 0X12
PP5 equ 0X13
PP5H equ 0X14
PP6H equ 0X15
PP7 equ 0X16
PP7H equ 0X17
PP7HH equ 0X18
PP7HHH equ 0X19
PPZ equ 0X1A
PPZH equ 0X1B
PPZHH equ 0X1C
PP_AARG equ 0X1D
PP_AARGH equ 0X1E
PP_AARGHH equ 0X1F
PP_AARGHHH equ 0X20
PP_BARG equ 0X21
PP_BARGH equ 0X22
PP_BARGHH equ 0X23
PP_BARGHHH equ 0X24
_AEXP equ 0X25
_BEXP equ 0X26
_FP_FLAGS equ 0X27
_FP_SIGN equ 0X28
_FP_TEMP equ 0X29
; BIT HOLDER VARIABLES
_B__VR1 equ 0X2A
; USER ACCESS RAM VARIABLES
Cnt equ 0X2B
CntH equ 0X2C
CntHH equ 0X2D
CntHHH equ 0X2E
Bytein equ 0X2F
_I equ 0X30
statusbyte equ 0X31
noteUit equ 0X32
release equ 0X33
noteAan equ 0X34
velo equ 0X35
notePres equ 0X36
pres equ 0X37
Ctrl equ 0X38
value equ 0X39
prog equ 0X3A
aft equ 0X3B
pblsb equ 0X3C
pbmsb equ 0X3D
CC66 equ 0X3E
MotPer equ 0X3F
MotPerH equ 0X40
Volume equ 0X41
Motspeed equ 0X42
Period equ 0X43
PeriodH equ 0X44
MotorFlags equ 0X45
Nxt equ 0X46
NxtH equ 0X47
NxtHH equ 0X48
NxtHHH equ 0X49
idx equ 0X4A
USART_FSR1_Save equ 0X4B
USART_FSR1_SaveH equ 0X4C
IndexIn equ 0X4D
IndexOut equ 0X4E
; STANDARD VARIABLES
MotTim equ 0X4F
MotCnt equ 0X50
oldVolume equ 0X51
CC19 equ 0X52
CC67 equ 0X53
CC68 equ 0X54
TimVals equ 0X55
TimValsH equ 0X56
TimValsHH equ 0X57
TimValsHHH equ 0X58
variable TimVals#0=0X55,TimVals#0H=0X56,TimVals#0HH=0X57,TimVals#0HHH=0X58
_J equ 0X59
_JH equ 0X5A
_JHH equ 0X5B
_JHHH equ 0X5C
Liflags equ 0X5D
OldLiFlags equ 0X5E
Ringbuffer equ 0X5F
variable Ringbuffer#0=0X5F,Ringbuffer#1=0X60,Ringbuffer#2=0X61,Ringbuffer#3=0X62
variable Ringbuffer#4=0X63,Ringbuffer#5=0X64,Ringbuffer#6=0X65,Ringbuffer#7=0X66
variable Ringbuffer#8=0X67,Ringbuffer#9=0X68,Ringbuffer#10=0X69,Ringbuffer#11=0X6A
variable Ringbuffer#12=0X6B,Ringbuffer#13=0X6C,Ringbuffer#14=0X6D,Ringbuffer#15=0X6E
variable Ringbuffer#16=0X6F,Ringbuffer#17=0X70,Ringbuffer#18=0X71,Ringbuffer#19=0X72
variable Ringbuffer#20=0X73,Ringbuffer#21=0X74,Ringbuffer#22=0X75,Ringbuffer#23=0X76
variable Ringbuffer#24=0X77,Ringbuffer#25=0X78,Ringbuffer#26=0X79,Ringbuffer#27=0X7A
variable Ringbuffer#28=0X7B,Ringbuffer#29=0X7C,Ringbuffer#30=0X7D,Ringbuffer#31=0X7E
variable Ringbuffer#32=0X7F,Ringbuffer#33=0X80,Ringbuffer#34=0X81,Ringbuffer#35=0X82
variable Ringbuffer#36=0X83,Ringbuffer#37=0X84,Ringbuffer#38=0X85,Ringbuffer#39=0X86
variable Ringbuffer#40=0X87,Ringbuffer#41=0X88,Ringbuffer#42=0X89,Ringbuffer#43=0X8A
variable Ringbuffer#44=0X8B,Ringbuffer#45=0X8C,Ringbuffer#46=0X8D,Ringbuffer#47=0X8E
variable Ringbuffer#48=0X8F,Ringbuffer#49=0X90,Ringbuffer#50=0X91,Ringbuffer#51=0X92
variable Ringbuffer#52=0X93,Ringbuffer#53=0X94,Ringbuffer#54=0X95,Ringbuffer#55=0X96
variable Ringbuffer#56=0X97,Ringbuffer#57=0X98,Ringbuffer#58=0X99,Ringbuffer#59=0X9A
variable Ringbuffer#60=0X9B,Ringbuffer#61=0X9C,Ringbuffer#62=0X9D,Ringbuffer#63=0X9E
variable Ringbuffer#64=0X9F,Ringbuffer#65=0XA0,Ringbuffer#66=0XA1,Ringbuffer#67=0XA2
variable Ringbuffer#68=0XA3,Ringbuffer#69=0XA4,Ringbuffer#70=0XA5,Ringbuffer#71=0XA6
variable Ringbuffer#72=0XA7,Ringbuffer#73=0XA8,Ringbuffer#74=0XA9,Ringbuffer#75=0XAA
variable Ringbuffer#76=0XAB,Ringbuffer#77=0XAC,Ringbuffer#78=0XAD,Ringbuffer#79=0XAE
variable Ringbuffer#80=0XAF,Ringbuffer#81=0XB0,Ringbuffer#82=0XB1,Ringbuffer#83=0XB2
variable Ringbuffer#84=0XB3,Ringbuffer#85=0XB4,Ringbuffer#86=0XB5,Ringbuffer#87=0XB6
variable Ringbuffer#88=0XB7,Ringbuffer#89=0XB8,Ringbuffer#90=0XB9,Ringbuffer#91=0XBA
variable Ringbuffer#92=0XBB,Ringbuffer#93=0XBC,Ringbuffer#94=0XBD,Ringbuffer#95=0XBE
variable Ringbuffer#96=0XBF,Ringbuffer#97=0XC0,Ringbuffer#98=0XC1,Ringbuffer#99=0XC2
variable Ringbuffer#100=0XC3,Ringbuffer#101=0XC4,Ringbuffer#102=0XC5,Ringbuffer#103=0XC6
variable Ringbuffer#104=0XC7,Ringbuffer#105=0XC8,Ringbuffer#106=0XC9,Ringbuffer#107=0XCA
variable Ringbuffer#108=0XCB,Ringbuffer#109=0XCC,Ringbuffer#110=0XCD,Ringbuffer#111=0XCE
variable Ringbuffer#112=0XCF,Ringbuffer#113=0XD0,Ringbuffer#114=0XD1,Ringbuffer#115=0XD2
variable Ringbuffer#116=0XD3,Ringbuffer#117=0XD4,Ringbuffer#118=0XD5,Ringbuffer#119=0XD6
variable Ringbuffer#120=0XD7,Ringbuffer#121=0XD8,Ringbuffer#122=0XD9,Ringbuffer#123=0XDA
variable Ringbuffer#124=0XDB,Ringbuffer#125=0XDC,Ringbuffer#126=0XDD,Ringbuffer#127=0XDE
variable Ringbuffer#128=0XDF,Ringbuffer#129=0XE0,Ringbuffer#130=0XE1,Ringbuffer#131=0XE2
variable Ringbuffer#132=0XE3,Ringbuffer#133=0XE4,Ringbuffer#134=0XE5,Ringbuffer#135=0XE6
variable Ringbuffer#136=0XE7,Ringbuffer#137=0XE8,Ringbuffer#138=0XE9,Ringbuffer#139=0XEA
variable Ringbuffer#140=0XEB,Ringbuffer#141=0XEC,Ringbuffer#142=0XED,Ringbuffer#143=0XEE
variable Ringbuffer#144=0XEF,Ringbuffer#145=0XF0,Ringbuffer#146=0XF1,Ringbuffer#147=0XF2
variable Ringbuffer#148=0XF3,Ringbuffer#149=0XF4,Ringbuffer#150=0XF5,Ringbuffer#151=0XF6
variable Ringbuffer#152=0XF7,Ringbuffer#153=0XF8,Ringbuffer#154=0XF9,Ringbuffer#155=0XFA
variable Ringbuffer#156=0XFB,Ringbuffer#157=0XFC,Ringbuffer#158=0XFD,Ringbuffer#159=0XFE
variable Ringbuffer#160=0xFF,Ringbuffer#161=0X100,Ringbuffer#162=0X101,Ringbuffer#163=0X102
variable Ringbuffer#164=0X103,Ringbuffer#165=0X104,Ringbuffer#166=0X105,Ringbuffer#167=0X106
variable Ringbuffer#168=0X107,Ringbuffer#169=0X108,Ringbuffer#170=0X109,Ringbuffer#171=0X10A
variable Ringbuffer#172=0X10B,Ringbuffer#173=0X10C,Ringbuffer#174=0X10D,Ringbuffer#175=0X10E
variable Ringbuffer#176=0X10F,Ringbuffer#177=0X110,Ringbuffer#178=0X111,Ringbuffer#179=0X112
variable Ringbuffer#180=0X113,Ringbuffer#181=0X114,Ringbuffer#182=0X115,Ringbuffer#183=0X116
variable Ringbuffer#184=0X117,Ringbuffer#185=0X118,Ringbuffer#186=0X119,Ringbuffer#187=0X11A
variable Ringbuffer#188=0X11B,Ringbuffer#189=0X11C,Ringbuffer#190=0X11D,Ringbuffer#191=0X11E
variable Ringbuffer#192=0X11F,Ringbuffer#193=0X120,Ringbuffer#194=0X121,Ringbuffer#195=0X122
variable Ringbuffer#196=0X123,Ringbuffer#197=0X124,Ringbuffer#198=0X125,Ringbuffer#199=0X126
variable Ringbuffer#200=0X127,Ringbuffer#201=0X128,Ringbuffer#202=0X129,Ringbuffer#203=0X12A
variable Ringbuffer#204=0X12B,Ringbuffer#205=0X12C,Ringbuffer#206=0X12D,Ringbuffer#207=0X12E
variable Ringbuffer#208=0X12F,Ringbuffer#209=0X130,Ringbuffer#210=0X131,Ringbuffer#211=0X132
variable Ringbuffer#212=0X133,Ringbuffer#213=0X134,Ringbuffer#214=0X135,Ringbuffer#215=0X136
variable Ringbuffer#216=0X137,Ringbuffer#217=0X138,Ringbuffer#218=0X139,Ringbuffer#219=0X13A
variable Ringbuffer#220=0X13B,Ringbuffer#221=0X13C,Ringbuffer#222=0X13D,Ringbuffer#223=0X13E
variable Ringbuffer#224=0X13F,Ringbuffer#225=0X140,Ringbuffer#226=0X141,Ringbuffer#227=0X142
variable Ringbuffer#228=0X143,Ringbuffer#229=0X144,Ringbuffer#230=0X145,Ringbuffer#231=0X146
variable Ringbuffer#232=0X147,Ringbuffer#233=0X148,Ringbuffer#234=0X149,Ringbuffer#235=0X14A
variable Ringbuffer#236=0X14B,Ringbuffer#237=0X14C,Ringbuffer#238=0X14D,Ringbuffer#239=0X14E
variable Ringbuffer#240=0X14F,Ringbuffer#241=0X150,Ringbuffer#242=0X151,Ringbuffer#243=0X152
variable Ringbuffer#244=0X153,Ringbuffer#245=0X154,Ringbuffer#246=0X155,Ringbuffer#247=0X156
variable Ringbuffer#248=0X157,Ringbuffer#249=0X158,Ringbuffer#250=0X159,Ringbuffer#251=0X15A
variable Ringbuffer#252=0X15B,Ringbuffer#253=0X15C,Ringbuffer#254=0X15D,Ringbuffer#255=0X15E
Dur5 equ 0X15F
Dur5H equ 0X160
variable Dur5#0=0X15F,Dur5#0H=0X160,Dur5#1=0X161,Dur5#1H=0X162
variable Dur5#2=0X163,Dur5#2H=0X164,Dur5#3=0X165,Dur5#3H=0X166
variable Dur5#4=0X167,Dur5#4H=0X168,Dur5#5=0X169,Dur5#5H=0X16A
variable Dur5#6=0X16B,Dur5#6H=0X16C,Dur5#7=0X16D,Dur5#7H=0X16E
variable Dur5#8=0X16F,Dur5#8H=0X170,Dur5#9=0X171,Dur5#9H=0X172
variable Dur5#10=0X173,Dur5#10H=0X174,Dur5#11=0X175,Dur5#11H=0X176
variable Dur5#12=0X177,Dur5#12H=0X178,Dur5#13=0X179,Dur5#13H=0X17A
variable Dur5#14=0X17B,Dur5#14H=0X17C,Dur5#15=0X17D,Dur5#15H=0X17E
variable Dur5#16=0X17F,Dur5#16H=0X180,Dur5#17=0X181,Dur5#17H=0X182
variable Dur5#18=0X183,Dur5#18H=0X184,Dur5#19=0X185,Dur5#19H=0X186
variable Dur5#20=0X187,Dur5#20H=0X188,Dur5#21=0X189,Dur5#21H=0X18A
variable Dur5#22=0X18B,Dur5#22H=0X18C,Dur5#23=0X18D,Dur5#23H=0X18E
variable Dur5#24=0X18F,Dur5#24H=0X190,Dur5#25=0X191,Dur5#25H=0X192
variable Dur5#26=0X193,Dur5#26H=0X194,Dur5#27=0X195,Dur5#27H=0X196
variable Dur5#28=0X197,Dur5#28H=0X198,Dur5#29=0X199,Dur5#29H=0X19A
variable Dur5#30=0X19B,Dur5#30H=0X19C,Dur5#31=0X19D,Dur5#31H=0X19E
variable Dur5#32=0X19F,Dur5#32H=0X1A0,Dur5#33=0X1A1,Dur5#33H=0X1A2
variable Dur5#34=0X1A3,Dur5#34H=0X1A4,Dur5#35=0X1A5,Dur5#35H=0X1A6
variable Dur5#36=0X1A7,Dur5#36H=0X1A8,Dur5#37=0X1A9,Dur5#37H=0X1AA
variable Dur5#38=0X1AB,Dur5#38H=0X1AC,Dur5#39=0X1AD,Dur5#39H=0X1AE
variable Dur5#40=0X1AF,Dur5#40H=0X1B0,Dur5#41=0X1B1,Dur5#41H=0X1B2
variable Dur5#42=0X1B3,Dur5#42H=0X1B4,Dur5#43=0X1B5,Dur5#43H=0X1B6
variable Dur5#44=0X1B7,Dur5#44H=0X1B8,Dur5#45=0X1B9,Dur5#45H=0X1BA
variable Dur5#46=0X1BB,Dur5#46H=0X1BC,Dur5#47=0X1BD,Dur5#47H=0X1BE
variable Dur5#48=0X1BF,Dur5#48H=0X1C0,Dur5#49=0X1C1,Dur5#49H=0X1C2
variable Dur5#50=0X1C3,Dur5#50H=0X1C4,Dur5#51=0X1C5,Dur5#51H=0X1C6
variable Dur5#52=0X1C7,Dur5#52H=0X1C8,Dur5#53=0X1C9,Dur5#53H=0X1CA
variable Dur5#54=0X1CB,Dur5#54H=0X1CC,Dur5#55=0X1CD,Dur5#55H=0X1CE
variable Dur5#56=0X1CF,Dur5#56H=0X1D0,Dur5#57=0X1D1,Dur5#57H=0X1D2
variable Dur5#58=0X1D3,Dur5#58H=0X1D4,Dur5#59=0X1D5,Dur5#59H=0X1D6
variable Dur5#60=0X1D7,Dur5#60H=0X1D8,Dur5#61=0X1D9,Dur5#61H=0X1DA
variable Dur5#62=0X1DB,Dur5#62H=0X1DC,Dur5#63=0X1DD,Dur5#63H=0X1DE
variable Dur5#64=0X1DF,Dur5#64H=0X1E0,Dur5#65=0X1E1,Dur5#65H=0X1E2
variable Dur5#66=0X1E3,Dur5#66H=0X1E4,Dur5#67=0X1E5,Dur5#67H=0X1E6
variable Dur5#68=0X1E7,Dur5#68H=0X1E8,Dur5#69=0X1E9,Dur5#69H=0X1EA
variable Dur5#70=0X1EB,Dur5#70H=0X1EC,Dur5#71=0X1ED,Dur5#71H=0X1EE
variable Dur5#72=0X1EF,Dur5#72H=0X1F0,Dur5#73=0X1F1,Dur5#73H=0X1F2
variable Dur5#74=0X1F3,Dur5#74H=0X1F4,Dur5#75=0X1F5,Dur5#75H=0X1F6
variable Dur5#76=0X1F7,Dur5#76H=0X1F8,Dur5#77=0X1F9,Dur5#77H=0X1FA
variable Dur5#78=0X1FB,Dur5#78H=0X1FC,Dur5#79=0X1FD,Dur5#79H=0X1FE
variable Dur5#80=0X1FF,Dur5#80H=0X200,Dur5#81=0X201,Dur5#81H=0X202
variable Dur5#82=0X203,Dur5#82H=0X204,Dur5#83=0X205,Dur5#83H=0X206
variable Dur5#84=0X207,Dur5#84H=0X208,Dur5#85=0X209,Dur5#85H=0X20A
variable Dur5#86=0X20B,Dur5#86H=0X20C,Dur5#87=0X20D,Dur5#87H=0X20E
variable Dur5#88=0X20F,Dur5#88H=0X210,Dur5#89=0X211,Dur5#89H=0X212
variable Dur5#90=0X213,Dur5#90H=0X214,Dur5#91=0X215,Dur5#91H=0X216
variable Dur5#92=0X217,Dur5#92H=0X218,Dur5#93=0X219,Dur5#93H=0X21A
variable Dur5#94=0X21B,Dur5#94H=0X21C,Dur5#95=0X21D,Dur5#95H=0X21E
variable Dur5#96=0X21F,Dur5#96H=0X220,Dur5#97=0X221,Dur5#97H=0X222
variable Dur5#98=0X223,Dur5#98H=0X224,Dur5#99=0X225,Dur5#99H=0X226
variable Dur5#100=0X227,Dur5#100H=0X228,Dur5#101=0X229,Dur5#101H=0X22A
variable Dur5#102=0X22B,Dur5#102H=0X22C,Dur5#103=0X22D,Dur5#103H=0X22E
variable Dur5#104=0X22F,Dur5#104H=0X230,Dur5#105=0X231,Dur5#105H=0X232
variable Dur5#106=0X233,Dur5#106H=0X234,Dur5#107=0X235,Dur5#107H=0X236
variable Dur5#108=0X237,Dur5#108H=0X238,Dur5#109=0X239,Dur5#109H=0X23A
variable Dur5#110=0X23B,Dur5#110H=0X23C,Dur5#111=0X23D,Dur5#111H=0X23E
variable Dur5#112=0X23F,Dur5#112H=0X240,Dur5#113=0X241,Dur5#113H=0X242
variable Dur5#114=0X243,Dur5#114H=0X244,Dur5#115=0X245,Dur5#115H=0X246
variable Dur5#116=0X247,Dur5#116H=0X248,Dur5#117=0X249,Dur5#117H=0X24A
variable Dur5#118=0X24B,Dur5#118H=0X24C,Dur5#119=0X24D,Dur5#119H=0X24E
variable Dur5#120=0X24F,Dur5#120H=0X250,Dur5#121=0X251,Dur5#121H=0X252
variable Dur5#122=0X253,Dur5#122H=0X254,Dur5#123=0X255,Dur5#123H=0X256
variable Dur5#124=0X257,Dur5#124H=0X258,Dur5#125=0X259,Dur5#125H=0X25A
variable Dur5#126=0X25B,Dur5#126H=0X25C,Dur5#127=0X25D,Dur5#127H=0X25E
Toff equ 0X25F
variable Toff#0=0X25F,Toff#1=0X260,Toff#2=0X261,Toff#3=0X262
variable Toff#4=0X263,Toff#5=0X264,Toff#6=0X265,Toff#7=0X266
variable Toff#8=0X267,Toff#9=0X268,Toff#10=0X269,Toff#11=0X26A
variable Toff#12=0X26B,Toff#13=0X26C,Toff#14=0X26D,Toff#15=0X26E
variable Toff#16=0X26F,Toff#17=0X270,Toff#18=0X271,Toff#19=0X272
variable Toff#20=0X273,Toff#21=0X274,Toff#22=0X275,Toff#23=0X276
variable Toff#24=0X277,Toff#25=0X278,Toff#26=0X279,Toff#27=0X27A
variable Toff#28=0X27B,Toff#29=0X27C,Toff#30=0X27D,Toff#31=0X27E
variable Toff#32=0X27F,Toff#33=0X280,Toff#34=0X281,Toff#35=0X282
variable Toff#36=0X283,Toff#37=0X284,Toff#38=0X285,Toff#39=0X286
variable Toff#40=0X287,Toff#41=0X288,Toff#42=0X289,Toff#43=0X28A
variable Toff#44=0X28B,Toff#45=0X28C,Toff#46=0X28D,Toff#47=0X28E
variable Toff#48=0X28F,Toff#49=0X290,Toff#50=0X291,Toff#51=0X292
variable Toff#52=0X293,Toff#53=0X294,Toff#54=0X295,Toff#55=0X296
variable Toff#56=0X297,Toff#57=0X298,Toff#58=0X299,Toff#59=0X29A
variable Toff#60=0X29B,Toff#61=0X29C,Toff#62=0X29D,Toff#63=0X29E
variable Toff#64=0X29F,Toff#65=0X2A0,Toff#66=0X2A1,Toff#67=0X2A2
variable Toff#68=0X2A3,Toff#69=0X2A4,Toff#70=0X2A5,Toff#71=0X2A6
variable Toff#72=0X2A7,Toff#73=0X2A8,Toff#74=0X2A9,Toff#75=0X2AA
variable Toff#76=0X2AB,Toff#77=0X2AC,Toff#78=0X2AD,Toff#79=0X2AE
variable Toff#80=0X2AF,Toff#81=0X2B0,Toff#82=0X2B1,Toff#83=0X2B2
variable Toff#84=0X2B3,Toff#85=0X2B4,Toff#86=0X2B5,Toff#87=0X2B6
variable Toff#88=0X2B7,Toff#89=0X2B8,Toff#90=0X2B9,Toff#91=0X2BA
variable Toff#92=0X2BB,Toff#93=0X2BC,Toff#94=0X2BD,Toff#95=0X2BE
variable Toff#96=0X2BF,Toff#97=0X2C0,Toff#98=0X2C1,Toff#99=0X2C2
variable Toff#100=0X2C3,Toff#101=0X2C4,Toff#102=0X2C5,Toff#103=0X2C6
variable Toff#104=0X2C7,Toff#105=0X2C8,Toff#106=0X2C9,Toff#107=0X2CA
variable Toff#108=0X2CB,Toff#109=0X2CC,Toff#110=0X2CD,Toff#111=0X2CE
variable Toff#112=0X2CF,Toff#113=0X2D0,Toff#114=0X2D1,Toff#115=0X2D2
variable Toff#116=0X2D3,Toff#117=0X2D4,Toff#118=0X2D5,Toff#119=0X2D6
variable Toff#120=0X2D7,Toff#121=0X2D8,Toff#122=0X2D9,Toff#123=0X2DA
variable Toff#124=0X2DB,Toff#125=0X2DC,Toff#126=0X2DD,Toff#127=0X2DE
Ton equ 0X2DF
variable Ton#0=0X2DF,Ton#1=0X2E0,Ton#2=0X2E1,Ton#3=0X2E2
variable Ton#4=0X2E3,Ton#5=0X2E4,Ton#6=0X2E5,Ton#7=0X2E6
variable Ton#8=0X2E7,Ton#9=0X2E8,Ton#10=0X2E9,Ton#11=0X2EA
variable Ton#12=0X2EB,Ton#13=0X2EC,Ton#14=0X2ED,Ton#15=0X2EE
variable Ton#16=0X2EF,Ton#17=0X2F0,Ton#18=0X2F1,Ton#19=0X2F2
variable Ton#20=0X2F3,Ton#21=0X2F4,Ton#22=0X2F5,Ton#23=0X2F6
variable Ton#24=0X2F7,Ton#25=0X2F8,Ton#26=0X2F9,Ton#27=0X2FA
variable Ton#28=0X2FB,Ton#29=0X2FC,Ton#30=0X2FD,Ton#31=0X2FE
variable Ton#32=0X2FF,Ton#33=0X300,Ton#34=0X301,Ton#35=0X302
variable Ton#36=0X303,Ton#37=0X304,Ton#38=0X305,Ton#39=0X306
variable Ton#40=0X307,Ton#41=0X308,Ton#42=0X309,Ton#43=0X30A
variable Ton#44=0X30B,Ton#45=0X30C,Ton#46=0X30D,Ton#47=0X30E
variable Ton#48=0X30F,Ton#49=0X310,Ton#50=0X311,Ton#51=0X312
variable Ton#52=0X313,Ton#53=0X314,Ton#54=0X315,Ton#55=0X316
variable Ton#56=0X317,Ton#57=0X318,Ton#58=0X319,Ton#59=0X31A
variable Ton#60=0X31B,Ton#61=0X31C,Ton#62=0X31D,Ton#63=0X31E
variable Ton#64=0X31F,Ton#65=0X320,Ton#66=0X321,Ton#67=0X322
variable Ton#68=0X323,Ton#69=0X324,Ton#70=0X325,Ton#71=0X326
variable Ton#72=0X327,Ton#73=0X328,Ton#74=0X329,Ton#75=0X32A
variable Ton#76=0X32B,Ton#77=0X32C,Ton#78=0X32D,Ton#79=0X32E
variable Ton#80=0X32F,Ton#81=0X330,Ton#82=0X331,Ton#83=0X332
variable Ton#84=0X333,Ton#85=0X334,Ton#86=0X335,Ton#87=0X336
variable Ton#88=0X337,Ton#89=0X338,Ton#90=0X339,Ton#91=0X33A
variable Ton#92=0X33B,Ton#93=0X33C,Ton#94=0X33D,Ton#95=0X33E
variable Ton#96=0X33F,Ton#97=0X340,Ton#98=0X341,Ton#99=0X342
variable Ton#100=0X343,Ton#101=0X344,Ton#102=0X345,Ton#103=0X346
variable Ton#104=0X347,Ton#105=0X348,Ton#106=0X349,Ton#107=0X34A
variable Ton#108=0X34B,Ton#109=0X34C,Ton#110=0X34D,Ton#111=0X34E
variable Ton#112=0X34F,Ton#113=0X350,Ton#114=0X351,Ton#115=0X352
variable Ton#116=0X353,Ton#117=0X354,Ton#118=0X355,Ton#119=0X356
variable Ton#120=0X357,Ton#121=0X358,Ton#122=0X359,Ton#123=0X35A
variable Ton#124=0X35B,Ton#125=0X35C,Ton#126=0X35D,Ton#127=0X35E
GetMidiInResult equ 0X35F
SortTimersResult equ 0X360
; HEAP VARIABLES
; LOW PRIORITY INTERRUPT CONTEXT STORAGE
_Low__Context_Store equ 0X361
variable _Low__Context_Store_0=0X361,_Low__Context_Store_1=0X362,_Low__Context_Store_2=0X363,_Low__Context_Store_3=0X364
variable _Low__Context_Store_4=0X365
; ALIAS VARIABLES
#define __CCP1_PORT PORTC
#define __HPWM1_PORT PORTC
#define __CCP1_PORT_PIN PORTC,2
#define __HPWM1_PORT_PIN PORTC,2
#define __CCP2_PORT PORTC
#define __HPWM2_PORT PORTC
#define __CCP2_PORT_PIN PORTC,1
#define __HPWM2_PORT_PIN PORTC,1
#define CntHw CntHH
#define CntHwH CntHHH
#define CntLw TMR0L
#define CntLwH TMR0LH
#define time Cnt
#define timeH CntH
#define timeHH CntHH
#define timeHHH CntHHH
#define MaxTim timeHHH,4
#define Tim3 TMR3L
#define Tim3H TMR3LH
#define StBit Bytein,7
#define PowerOn CC66,0
#define Mtog CC66,2
#define CC7 Volume
#define MotorOn MotorFlags,0
#define MotWait MotorFlags,1
#define NrNotes _B__VR1,0
#define LiTog _B__VR1,1
#define CC69 _B__VR1,2
#define BassFlag Liflags,0
#define MidFlag Liflags,1
#define HighFlag Liflags,2
#define FSR0SaveInt PP0
#define FSR0SaveIntH PP0H
#define USART_FSR0_Save FSR0SaveInt
#define USART_FSR0_SaveH PP0H
#define USART_FSR0 FSR0L
#define USART_FSR0H FSR0LH
#define USART_FSR1 FSR1L
#define USART_FSR1H FSR1LH
; CONSTANTS
#define __optimiser_level 3
#define __xtal 40
#define __CCP1_PIN 2
#define __HPWM1_PIN 2
#define __CCP2_PIN 1
#define __HPWM2_PIN 1
#define PWMminF 2442
#define PWMminFH 9
#define fPwm 21000
#define fPwmH 82
#define White1_note 120
#define White2_note 121
#define Red1_note 122
#define Red2_note 123
#define Green_Note 124
#define lowest_note 54
#define highest_note 105
#define NrTasks 1
#define LastTask 0
#define True 1
#define False 0
#define Period10 53039
#define Period10H 207
#define Period5 59288
#define Period5H 231
#define Period25 62412
#define Period25H 243
#define Period125 63974
#define Period125H 249
#define Period_default 59288
#define Period_defaultH 231
#define Midichannel 6
#define NoteOff_Status 134
#define NoteOn_Status 150
#define Keypres_Status 166
#define Control_Status 182
#define ProgChange_Status 198
#define Aftertouch_Status 214
#define Pitchbend_Status 230
#define HSERIAL_TXSTA 36
;---------------------------------------------
; START OF THE COMPILER'S LIBRARY ROUTINES
_compiler__start_
    org 0X000000
    nop
    nop
    goto _compiler_main_start_
    org 0X000008
    goto High_Prior_Interrupt
    org 0X000018
    goto Low_Prior_Interrupt
__hrsout1__
    btfss PIR1,PP_TXIF
    bra $ - 2
    movwf TXREG
    return
__hpwm_
    movwf PP4H
    movlw 150
    movwf PP0
    movlw 152
    movwf PP0H
    rcall __divide_u1616_
    btfsc STATUS,2
    bcf T2CON,PP_T2CKPS0
    btfss STATUS,2
    bsf T2CON,PP_T2CKPS0
    addlw 252
    btfss STATUS,0
    bcf T2CON,PP_T2CKPS1
    btfsc STATUS,0
    bsf T2CON,PP_T2CKPS1
    movlw 128
    movwf PP0
    movlw 150
    movwf PP0H
    movlw 152
    movwf PP2
    clrf PP2H
    btfsc T2CON,PP_T2CKPS0
    rcall __hpw_2s__
    btfsc T2CON,PP_T2CKPS1
    rcall __hpw_2s__
    rcall __divide_int_u1616_
    decf PP0,W
    movwf PR2
    movff PP0,PP1
    movff PP0H,PP1H
    movf GEN,W
    movwf PP3
    movwf PP3H
    incfsz GEN,W
    clrf PP3H
    rcall __multiply_u1616_
    movf PP2H,W
    decfsz PP4H,F
    bra __hpw_sk1__
    movwf CCPR1L
    movlw 12
    movwf CCP1CON
    btfsc PP2,7
    bsf CCP1CON,5
    btfsc PP2,6
    bsf CCP1CON,4
    bcf TRISC,2
__HPWM_Exit__
    bsf T2CON,PP_TMR2ON
    return
__hpw_sk1__
    movwf CCPR2L
    movlw 12
    movwf CCP2CON
    btfsc PP2,7
    bsf CCP2CON,5
    btfsc PP2,6
    bsf CCP2CON,4
    bcf TRISC,1
    bra __HPWM_Exit__
__hpw_2s__
    rcall __hpw_2l__
__hpw_2l__
    bcf STATUS,0
    rrcf PP2,F
    rrcf PP0H,F
    rrcf PP0,F
    return
__divide_u1616_
    clrf PP2H
    clrf PP2
__divide_int_u1616_
    movlw 16
    movwf PRODL
__divide_u1616_loop_
    rlcf PP0H,W
    rlcf PP2,F
    rlcf PP2H,F
    movf PP1,W
    subwf PP2,W
    movf PP1H,W
    subwfb PP2H,W
    bnc __divide_u1616_k_
    movf PP1,W
    subwf PP2,F
    movf PP1H,W
    subwfb PP2H,F
    bsf STATUS,0
__divide_u1616_k_
    rlcf PP0,F
    rlcf PP0H,F
    decfsz PRODL,F
    bra __divide_u1616_loop_
    movf PP0,W
    return
__multiply_u1616_
    movf PP1,W
    mulwf PP3,0
    movff PRODL,PP2
    movff PRODH,PP2H
    movf PP1H,W
    mulwf PP3,0
    movf PRODL,W
    addwf PP2H,F
    movf PP1,W
    mulwf PP3H,0
    movf PRODL,W
    addwf PP2H,F
    movf PP2,W
    return
__fpsub_32__
    movlw 128
    xorwf PP_BARGH,F
__fpadd_32__
    movf PP_BARG,W
    subwf PP_AARG,W
    movwf _BEXP
    bc __fpadd_32_1
    negf _BEXP,0
    movf PP_AARG,W
    movff PP_BARG,PP_AARG
    movwf PP_BARG
    movf PP_AARGH,W
    movff PP_BARGH,PP_AARGH
    movwf PP_BARGH
    movf PP_AARGHH,W
    movff PP_BARGHH,PP_AARGHH
    movwf PP_BARGHH
    movf PP_AARGHHH,W
    movff PP_BARGHHH,PP_AARGHHH
    movwf PP_BARGHHH
__fpadd_32_1
    movlw 26
    cpfslt _BEXP,0
    bra __fpadd_32_ret
    movf PP_BARG,F
    bz __fpadd_32_ret
    clrf _AEXP
    movf PP_AARGH,W
    movwf _FP_TEMP
    xorwf PP_BARGH,W
    movwf _FP_SIGN
    bsf PP_AARGH,7
    bsf PP_BARGH,7
__fpadd_32_2
    movlw 8
    subwf _BEXP,F
    bnc __fpadd_32_3
    movff PP_BARGHHH,_AEXP
    movff PP_BARGHH,PP_BARGHHH
    movff PP_BARGH,PP_BARGHH
    clrf PP_BARGH
    bra __fpadd_32_2
__fpadd_32_3
    addwf _BEXP,F
    bz __fpadd_32_5
__fpadd_32_4
    bcf STATUS,0
    rrcf PP_BARGH,F
    rrcf PP_BARGHH,F
    rrcf PP_BARGHHH,F
    rrcf _AEXP,F
    decfsz _BEXP,F
    bra __fpadd_32_4
__fpadd_32_5
    btfss _FP_SIGN,7
    bra __fpadd_32_11
    movf PP_BARGHHH,W
    subwf PP_AARGHHH,F
    movf PP_BARGHH,W
    subwfb PP_AARGHH,F
    movf PP_BARGH,W
    subwfb PP_AARGH,F
    bc __fpadd_32_6
    bsf STATUS,0
    movlw 0
    subfwb PP_AARGHHH,F
    subfwb PP_AARGHH,F
    subfwb PP_AARGH,F
    movlw 128
    xorwf _FP_TEMP,F
__fpadd_32_6
    negf _AEXP,0
    bz __fpadd_32_7
    decf PP_AARGHHH,F
    movlw 0
    subwfb PP_AARGHH,F
    subwfb PP_AARGH,F
__fpadd_32_7
    movlw 4
    movwf _BEXP
__fpadd_32_8
    tstfsz PP_AARGH,0
    bra __fpadd_32_9
    movff PP_AARGHH,PP_AARGH
    movff PP_AARGHHH,PP_AARGHH
    movff _AEXP,PP_AARGHHH
    clrf _AEXP
    movlw 8
    subwf PP_AARG,F
    bnc __fpadd_32_Res0
    decfsz _BEXP,F
    bra __fpadd_32_8
    bra __fpadd_32_Res0
__fpadd_32_9
    btfsc PP_AARGH,7
    bra __fpadd_32_10
    bcf STATUS,0
    rlcf _AEXP,F
    rlcf PP_AARGHHH,F
    rlcf PP_AARGHH,F
    rlcf PP_AARGH,F
    decfsz PP_AARG,F
    bra __fpadd_32_9
    bra __fpadd_32_Res0
__fpadd_32_10
    btfss _AEXP,7
    bra __fpadd_32_Set_Sign
    clrf _AEXP
    bra __fpadd_32_increment
__fpadd_32_11
    movf PP_BARGHHH,W
    addwf PP_AARGHHH,F
    movf PP_BARGHH,W
    addwfc PP_AARGHH,F
    movf PP_BARGH,W
    addwfc PP_AARGH,F
    bnc __fpadd_32_13
__fpadd_32_adjust_right
    rrcf PP_AARGH,F
    rrcf PP_AARGHH,F
    rrcf PP_AARGHHH,F
    rrcf _AEXP,F
    infsnz PP_AARG,F
    bra __fpadd_32_Overflow
__fpadd_32_13
    btfss _AEXP,7
    bra __fpadd_32_Set_Sign
__fpadd_32_increment
    incfsz PP_AARGHHH,F
    bra __fpadd_32_Set_Sign
    incfsz PP_AARGHH,F
    bra __fpadd_32_Set_Sign
    incfsz PP_AARGH,F
    bra __fpadd_32_Set_Sign
    bsf STATUS,0
    bcf PP_AARGHHH,0
    bra __fpadd_32_adjust_right
__fpadd_32_Res0
    clrf PP_AARG
    bra __fpadd_32_Mantissa
__fpadd_32_Overflow
    bsf _FP_FLAGS,1
    setf PP_AARG
__fpadd_32_Mantissa
    clrf PP_AARGHHH
    clrf PP_AARGHH
    movlw 128
    movwf PP_AARGH
__fpadd_32_Set_Sign
    btfss _FP_TEMP,7
    bcf PP_AARGH,7
__fpadd_32_ret
    movf PP_AARGHHH,W
    return
__fpdiv_32__
    movf PP_AARGH,W
    movwf PPZHH
    xorwf PP_BARGH,W
    movwf _FP_SIGN
    movf PP_BARG,W
    bz __fpdiv_32_Div0
    movf PP_AARG,F
    bz __fpdiv_32_Res0
    subwf PP_AARG,F
    movlw 127
    bc __fpdiv_32_1
    addwf PP_AARG,F
    bc __fpdiv_32_2
    bra __fpdiv_32_Underflow
__fpdiv_32_1
    addwf PP_AARG,F
    bc __fpdiv_32_Overflow1
__fpdiv_32_2
    movff PP_AARGHHH,PPZ
    movff PP_AARGHH,PPZH
    bsf PPZHH,7
    bsf PP_BARGH,7
    movlw 24
    movwf _FP_TEMP
    clrf PP_AARGHHH
    clrf PP_AARGHH
    clrf PP_AARGH
    bra __Fpdiv_32_Start
__fpdiv_32_Test_Zero_L
    movf PP_BARGHHH,W
    subwf PPZ,W
    movf PP_BARGHH,W
    subwfb PPZH,W
    bnc __fpdiv_32_Shift_In_C
    movwf PPZH
    clrf PPZHH
    movf PP_BARGHHH,W
    subwf PPZ,F
    bra __fpdiv_32_Set_And_Shift_In_C
__fpdiv_32_Loop
    bc __fpdiv_32_6
__Fpdiv_32_Start
    movf PP_BARGH,W
    subwf PPZHH,W
    bz __fpdiv_32_Test_Zero_L
    bnc __fpdiv_32_Shift_In_C
__fpdiv_32_6
    movf PP_BARGHHH,W
    subwf PPZ,F
    movf PP_BARGHH,W
    subwfb PPZH,F
    movf PP_BARGH,W
    subwfb PPZHH,F
__fpdiv_32_Set_And_Shift_In_C
    bsf STATUS,0
__fpdiv_32_Shift_In_C
    rlcf PP_AARGHHH,F
    rlcf PP_AARGHH,F
    rlcf PP_AARGH,F
    rlcf PPZ,F
    rlcf PPZH,F
    rlcf PPZHH,F
    decfsz _FP_TEMP,F
    bra __fpdiv_32_Loop
    btfsc PP_AARGH,7
    bra __fpdiv_32_9
    movf PP_AARG,F
    bz __fpdiv_32_Underflow
    rrcf _FP_SIGN,F
    decf PP_AARG,F
    incf _FP_TEMP,F
    rlcf _FP_SIGN,F
    bra __fpdiv_32_Loop
__fpdiv_32_9
    bc __fpdiv_32_10
    movf PP_BARGHHH,W
    subwf PPZ,F
    movf PP_BARGHH,W
    subwfb PPZH,F
    movf PP_BARGH,W
    subwfb PPZHH,F
    bnc __fpdiv_32_Set_Sign
__fpdiv_32_10
    incfsz PP_AARGHHH,F
    bra __fpdiv_32_Set_Sign
    incfsz PP_AARGHH,F
    bra __fpdiv_32_Set_Sign
    incfsz PP_AARGH,F
    bra __fpdiv_32_Set_Sign
    rrcf PP_AARGH,F
    rrcf PP_AARGHH,F
    rrcf PP_AARGHHH,F
    incfsz PP_AARG,F
    bra __fpdiv_32_Set_Sign
    bra __fpdiv_32_Overflow1
__fpdiv_32_Div0
    bsf _FP_FLAGS,3
    bra __fpdiv_32_Saturate
__fpdiv_32_Underflow
    bsf _FP_FLAGS,2
__fpdiv_32_Res0
    clrf PP_AARG
    bra __fpdiv_32_Mantissa
__fpdiv_32_Overflow1
    bsf _FP_FLAGS,1
__fpdiv_32_Saturate
    setf PP_AARG
__fpdiv_32_Mantissa
    clrf PP_AARGHHH
    clrf PP_AARGHH
    movlw 128
    movwf PP_AARGH
__fpdiv_32_Set_Sign
    btfss _FP_SIGN,7
    bcf PP_AARGH,7
    movf PP_AARGHHH,W
    return
__fpmult_32__
    movf PP_AARGH,W
    movwf PPZHH
    xorwf PP_BARGH,W
    movwf _FP_SIGN
    movf PP_AARG,W
    btfss STATUS,2
    movf PP_BARG,W
    bz __fpmult_32_Res0
    addwf PP_AARG,F
    movlw 126
    bnc __fpmult_32_1
    subwf PP_AARG,F
    bnc __fpmult_32_2
    bra __fpmult_32_Overflow
__fpmult_32_1
    subwf PP_AARG,F
    bnc __fpmult_32_Underflow
__fpmult_32_2
    movff PP_AARGHHH,PPZ
    movff PP_AARGHH,PPZH
    bsf PPZHH,7
    bsf PP_BARGH,7
    clrf PP_AARGHHH
    clrf PP_AARGHH
    clrf PP_AARGH
    movlw 24
    movwf _FP_TEMP
__fpmult_32_3
    rrcf PPZHH,F
    rrcf PPZH,F
    rrcf PPZ,F
    bnc __fpmult_32_4
    movf PP_BARGHHH,W
    addwf PP_AARGHHH,F
    movf PP_BARGHH,W
    addwfc PP_AARGHH,F
    movf PP_BARGH,W
    addwfc PP_AARGH,F
__fpmult_32_4
    rrcf PP_AARGH,F
    rrcf PP_AARGHH,F
    rrcf PP_AARGHHH,F
    decfsz _FP_TEMP,F
    bra __fpmult_32_3
    btfsc PP_AARGH,7
    bra __fpmult_32_5
    rlcf PP_AARGHHH,F
    rlcf PP_AARGHH,F
    rlcf PP_AARGH,F
    movf PP_AARG,F
    bz __fpmult_32_Underflow
    decf PP_AARG,F
    rlcf PPZHH,W
__fpmult_32_5
    bnc __fpmult_32_Set_Sign
    incfsz PP_AARGHHH,F
    bra __fpmult_32_Set_Sign
    incfsz PP_AARGHH,F
    bra __fpmult_32_Set_Sign
    incfsz PP_AARGH,F
    bra __fpmult_32_Set_Sign
    bsf STATUS,0
    rrcf PP_AARGH,F
    rrcf PP_AARGHH,F
    rrcf PP_AARGHHH,F
    incfsz PP_AARG,F
    bra __fpmult_32_Set_Sign
    bra __fpmult_32_Overflow
__fpmult_32_Underflow
    bsf _FP_FLAGS,2
__fpmult_32_Res0
    clrf PP_AARG
    bra __fpmult_32_Mantissa
__fpmult_32_Overflow
    bsf _FP_FLAGS,1
    setf PP_AARG
__fpmult_32_Mantissa
    clrf PP_AARGHHH
    clrf PP_AARGHH
    movlw 128
    movwf PP_AARGH
__fpmult_32_Set_Sign
    btfss _FP_SIGN,7
    bcf PP_AARGH,7
    movf PP_AARGHHH,W
    return
_Fl32_To_Int32
    movff PP_AARG,_FP_TEMP
    movf PP_AARGH,W
    movff PP_AARGHHH,PP_AARGH
    movwf PP_AARGHHH
    rlcf PP_AARGHHH,F
    rrcf _FP_TEMP,F
    rrcf PP_AARGHHH,F
    clrf _FP_FLAGS
    rlcf PP_AARGHHH,F
    rlcf _FP_TEMP,F
    bnc _Fl32Int__UnpkA1
    bsf _FP_FLAGS,2
    btg _FP_FLAGS,7,0
_Fl32Int__UnpkA1
    bnz _Fl32Int__UnpkANZ
    bsf _FP_FLAGS,0
    clrf _FP_TEMP
    clrf PP_AARGHHH
    clrf PP_AARGHH
    clrf PP_AARGH
    bra _Fl32IntUnp__Exit
_Fl32Int__UnpkANZ
    incf _FP_TEMP,W
    bz _Fl32Int__UnpkA2
    bsf STATUS,0
    rrcf PP_AARGHHH,F
    bra _Fl32IntUnp__Exit
_Fl32Int__UnpkA2
    bcf STATUS,0
    rrcf PP_AARGHHH,F
    bnz _Fl32Int__UnpkNaN
    bsf _FP_FLAGS,1
    bra _Fl32IntUnp__Exit
_Fl32Int__UnpkNaN
    bsf _FP_FLAGS,3
_Fl32IntUnp__Exit
    btfsc _FP_FLAGS,3
    bra _Fl32Int__MaxPos
    btfss _FP_FLAGS,1
    bra _Fl32Int__NotInf
_Fl32Int__Max
    btfsc _FP_FLAGS,2
    bra _Fl32Int__MaxNeg
_Fl32Int__MaxPos
    movlw 127
    movwf PP_AARGHHH
    movlw 255
_Fl32Int__Wr123
    movwf PP_AARGHH
    movwf PP_AARGH
    movwf PP_AARG
    bra _Fl32Int__Exit
_Fl32Int__MaxNeg
    movlw 128
    movwf PP_AARGHHH
    bra _Fl32Int__WrZ123
_Fl32Int__Zero
    clrf PP_AARGHHH
_Fl32Int__WrZ123
    movlw 0
    bra _Fl32Int__Wr123
_Fl32Int__NotInf
    btfsc _FP_FLAGS,0
    bra _Fl32Int__Zero
    clrf PP_AARG
    movlw 159
    cpfslt _FP_TEMP,0
    bra _Fl32Int__Max
    movlw 126
    cpfsgt _FP_TEMP,0
    bra _Fl32Int__Zero
_Fl32Int__Loop
    movlw 158
    subwf _FP_TEMP,W
    bz _Fl32Int__LoopExit
    bcf STATUS,0
    rrcf PP_AARGHHH,F
    rrcf PP_AARGHH,F
    rrcf PP_AARGH,F
    rrcf PP_AARG,F
    incf _FP_TEMP,F
    bra _Fl32Int__Loop
_Fl32Int__LoopExit
    btfss _FP_FLAGS,2
    bra _Fl32Int__Exit
    bsf STATUS,0
    movlw 0
    subfwb PP_AARG,F
    subfwb PP_AARGH,F
    subfwb PP_AARGHH,F
    subfwb PP_AARGHHH,F
    btfss PP_AARGHHH,7
    bra _Fl32Int__Zero
_Fl32Int__Exit
    movf PP_AARG,W
    return
_Uns_Int08_ToFl32
    movwf PP_AARG
    clrf PP_AARGH
_Uns_Int16_ToFl32
    clrf PP_AARGHH
    clrf PP_AARGHHH
_UnSgn_Int32_ToFl32
    bcf _FP_SIGN,7
    bra __Int32_ToFl32_L5
_Sgn_Int32_ToFl32
    bcf _FP_SIGN,7
    btfss PP_AARGHHH,7
    bra __Int32_ToFl32_L5
    bsf STATUS,0
    movlw 0
    subfwb PP_AARG,F
    subfwb PP_AARGH,F
    subfwb PP_AARGHH,F
    subfwb PP_AARGHHH,F
    bsf _FP_SIGN,7
__Int32_ToFl32_L5
    movlw 150
    movwf _FP_TEMP
    movf PP_AARGHHH,F
    bz __Int32_ToFl32_L7
__Int32_ToFl32_L17
    movlw 8
    addwf _FP_TEMP,F
    movff PP_AARGH,PP_AARG
    movff PP_AARGHH,PP_AARGH
    movff PP_AARGHHH,PP_AARGHH
    bra __Int32_ToFl32_L18
__Int32_ToFl32_L7
    movf PP_AARGHH,F
    bnz __Int32_ToFl32_L18
    movlw 8
    subwf _FP_TEMP,F
    movf PP_AARGH,W
    bnz __Int32_ToFl32_L20
    movlw 8
    subwf _FP_TEMP,F
    movf PP_AARG,W
    bnz __Int32_ToFl32_L22
    movf PP_AARGHHH,W
    bra __Int32_ToFl32_Exit
__Int32_ToFl32_L22
    clrf PP_AARG
__Int32_ToFl32_L20
    movwf PP_AARGHH
    movff PP_AARG,PP_AARGH
    clrf PP_AARG
__Int32_ToFl32_L18
    btfsc PP_AARGHH,7
    bra __Int32_ToFl32_L24
    bcf STATUS,0
    rlcf PP_AARG,F
    rlcf PP_AARGH,F
    rlcf PP_AARGHH,F
    decf _FP_TEMP,F
    bra __Int32_ToFl32_L18
__Int32_ToFl32_L24
    btfss _FP_SIGN,7
    bcf PP_AARGHH,7
__Int32_ToFl32_L26
    movf _FP_TEMP,W
__Int32_ToFl32_Exit
    movff PP_AARG,PP_AARGHHH
    movwf PP_AARG
    movf PP_AARGHH,W
    movff PP_AARGH,PP_AARGHH
    movwf PP_AARGH
    return
_compiler_main_start_
    movlw 64
    movwf _FP_FLAGS
    clrf BPF
; UART1_ACTUALBAUD = 31250
; UART1_BAUDERROR = 0
    bcf BAUDCON,PP_BRG16
    movlw 79
    movwf SPBRG
    clrf SPBRGH
    movlw 36
    movwf TXSTA
    movlw 144
    movwf RCSTA
    movlb 0
;---------------------------------------------
; START OF THE USER'S PROGRAM CODE
F1_SOF equ $ ; EKLA_HUB.BAS
F2_SOF equ $ ; 18F2620.Inc
    movlw 15
    movwf ADCON1,0
    movlw 7
    movwf CMCON,0
F2_EOF equ $ ; 18F2620.Inc
F1_000057 equ $ ; in [EKLA_HUB.BAS] Clear
    lfsr 0,0X0F7E
_pblb__2
    clrf POSTDEC0,0
    movf FSR0L,W,0
    iorwf FSR0H,W,0
    bnz _pblb__2
    clrf INDF0,0
F1_000081 equ $ ; in [EKLA_HUB.BAS] DECLARE ALL_DIGITAL = True
F1_000082 equ $ ; in [EKLA_HUB.BAS] Clear SSPCON1.5
    bcf SSPCON1,5,0
F1_000084 equ $ ; in [EKLA_HUB.BAS] TRISA = %11000011
    movlw 195
    movwf TRISA,0
F1_000085 equ $ ; in [EKLA_HUB.BAS] TRISB = %11100000
    movlw 224
    movwf TRISB,0
F1_000086 equ $ ; in [EKLA_HUB.BAS] TRISC = %11000000
    movlw 192
    movwf TRISC,0
F3_SOF equ $ ; EKLA_HUB_IRQ.Inc
F3_000029 equ $ ; in [EKLA_HUB_IRQ.Inc] goto _Over_IRQ_Handler
    bra _Over_IRQ_Handler
;---------------------------------------------
; HIGH PRIORITY INTERRUPT HANDLER
High_Prior_Interrupt
_Timer0_IRQ
F3_000033 equ $ ; in [EKLA_HUB_IRQ.Inc] if INTCON.2 = 1 Then
    btfss INTCON,2,0
    bra _lbl__4
F3_000034 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear INTCON.2
    bcf INTCON,2,0
F3_000035 equ $ ; in [EKLA_HUB_IRQ.Inc] Inc Cnt.Word1
    infsnz CntHH,F,0
    incf CntHHH,F,0
F3_000036 equ $ ; in [EKLA_HUB_IRQ.Inc] Cnt.Word0 = CntLw
    movff TMR0L,Cnt
    movff TMR0LH,CntH
F3_000037 equ $ ; in [EKLA_HUB_IRQ.Inc] btg PORTB.5
    btg PORTB,5
F3_000038 equ $ ; in [EKLA_HUB_IRQ.Inc] retfie fast
    retfie 1
F3_000039 equ $ ; in [EKLA_HUB_IRQ.Inc] endif
_lbl__4
_UART_IRQ
F3_000041 equ $ ; in [EKLA_HUB_IRQ.Inc] if PIR1.5 = 1 Then
    btfss PIR1,5,0
    bra _lbl__6
F3_000042 equ $ ; in [EKLA_HUB_IRQ.Inc] movlw 6
    movlw 6
F3_000043 equ $ ; in [EKLA_HUB_IRQ.Inc] andwf RCSTA,W
    andwf RCSTA,W
F3_000044 equ $ ; in [EKLA_HUB_IRQ.Inc] bnz _Uart_Error
    bnz _Uart_Error
F3_000045 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR1_Save = USART_FSR1
    movff FSR1LH,USART_FSR1_SaveH
    movff FSR1L,USART_FSR1_Save
F3_000046 equ $ ; in [EKLA_HUB_IRQ.Inc] Inc IndexIn
    incf IndexIn,F,0
F3_000053 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR1 = VarPtr Ringbuffer
    lfsr 1,95
F3_000054 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR1 = USART_FSR1 + IndexIn
    movf IndexIn,W,0
    addwf FSR1L,F,0
    movlw 0
    addwfc FSR1LH,F,0
F3_000055 equ $ ; in [EKLA_HUB_IRQ.Inc] INDF1 = RCREG
    movff RCREG,INDF1
F3_000056 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR1 = USART_FSR1_Save
    movff USART_FSR1_SaveH,FSR1LH
    movff USART_FSR1_Save,FSR1L
F3_000058 equ $ ; in [EKLA_HUB_IRQ.Inc] retfie fast
    retfie 1
_Uart_Error
F3_000060 equ $ ; in [EKLA_HUB_IRQ.Inc] WREG = RCREG
    movf RCREG,W,0
F3_000061 equ $ ; in [EKLA_HUB_IRQ.Inc] WREG = RCREG
    movf RCREG,W,0
F3_000062 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear RCSTA.4
    bcf RCSTA,4,0
F3_000063 equ $ ; in [EKLA_HUB_IRQ.Inc] Set RCSTA.4
    bsf RCSTA,4,0
F3_000064 equ $ ; in [EKLA_HUB_IRQ.Inc] endif
_lbl__6
F3_000065 equ $ ; in [EKLA_HUB_IRQ.Inc] retfie fast
    retfie 1
_Init_Usart
F3_000100 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear IndexIn
    clrf IndexIn,0
F3_000101 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear IndexOut
    clrf IndexOut,0
F3_000102 equ $ ; in [EKLA_HUB_IRQ.Inc] Set PIE1.5
    bsf PIE1,5,0
F3_000104 equ $ ; in [EKLA_HUB_IRQ.Inc] Set IPR1.5
    bsf IPR1,5,0
F3_000106 equ $ ; in [EKLA_HUB_IRQ.Inc] Set INTCON.7
    bsf INTCON,7,0
F3_000107 equ $ ; in [EKLA_HUB_IRQ.Inc] Set INTCON.6
    bsf INTCON,6,0
F3_000109 equ $ ; in [EKLA_HUB_IRQ.Inc] return
    return 0
_Clear_Usart_Buffer
F3_000123 equ $ ; in [EKLA_HUB_IRQ.Inc] PIE1.5 = 0
    bcf PIE1,5,0
F3_000124 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear Ringbuffer
    lfsr 0,Ringbuffer
    movlw 1
    movwf PRODLH,0
    clrf PRODL,0
_pblb__7
    decf PRODL,F,0
    movlw 0
    subwfb PRODLH,F,0
    clrf POSTINC0,0
    movf PRODH,W,0
    iorwf PRODL,W,0
    bnz _pblb__7
F3_000125 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear IndexIn
    clrf IndexIn,0
F3_000126 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear IndexOut
    clrf IndexOut,0
F3_000127 equ $ ; in [EKLA_HUB_IRQ.Inc] Set PIE1.5
    bsf PIE1,5,0
F3_000128 equ $ ; in [EKLA_HUB_IRQ.Inc] return
    return 0
;---------------------------------------------
; LOW PRIORITY INTERRUPT HANDLER
Low_Prior_Interrupt
Timer3_ISR
F3_000136 equ $ ; in [EKLA_HUB_IRQ.Inc] Context Save
    bcf INTCON,7,0
    movff BSR,_Low__Context_Store_0
    movff FSR0H,_Low__Context_Store_1
    movff FSR0L,_Low__Context_Store_2
    movff STATUS,_Low__Context_Store_3
    movff WREG,_Low__Context_Store_4
    bsf INTCON,7,0
    movlb 0
F3_000137 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear PIR2.1
    bcf PIR2,1,0
F3_000138 equ $ ; in [EKLA_HUB_IRQ.Inc] Inc MotCnt
    incf MotCnt,F,0
F3_000142 equ $ ; in [EKLA_HUB_IRQ.Inc] Tim3 = Period
    movff PeriodH,TMR3LH
    movff Period,TMR3L
F3_000143 equ $ ; in [EKLA_HUB_IRQ.Inc] if MotCnt >= MotTim Then
    movf MotTim,W,0
    subwf MotCnt,W,0
    bnc _lbl__9
F3_000144 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear MotCnt
    clrf MotCnt,0
F3_000145 equ $ ; in [EKLA_HUB_IRQ.Inc] if Mtog = 1 Then
    btfss CC66,2,0
    bra _lbl__11
F3_000146 equ $ ; in [EKLA_HUB_IRQ.Inc] MotTim = Toff[Motspeed]
    lfsr 0,Toff
    movf Motspeed,W,0
    movf PLUSW0,W,0
    movwf MotTim,0
F3_000147 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear PORTA.3
    bcf LATA,3,0
F3_000148 equ $ ; in [EKLA_HUB_IRQ.Inc] Clear PORTB.1
    bcf LATB,1,0
    bra _lbl__12
_lbl__11
F3_000149 equ $ ; in [EKLA_HUB_IRQ.Inc] else
F3_000150 equ $ ; in [EKLA_HUB_IRQ.Inc] MotTim = Ton[Motspeed]
    lfsr 0,Ton
    movf Motspeed,W,0
    movf PLUSW0,W,0
    movwf MotTim,0
F3_000151 equ $ ; in [EKLA_HUB_IRQ.Inc] Set PORTA.3
    bsf LATA,3,0
F3_000152 equ $ ; in [EKLA_HUB_IRQ.Inc] Set PORTB.1
    bsf LATB,1,0
F3_000153 equ $ ; in [EKLA_HUB_IRQ.Inc] endif
_lbl__12
F3_000154 equ $ ; in [EKLA_HUB_IRQ.Inc] btg Mtog
    btg CC66,2
F3_000155 equ $ ; in [EKLA_HUB_IRQ.Inc] endif
_lbl__9
F3_000162 equ $ ; in [EKLA_HUB_IRQ.Inc] Context Restore
    bcf INTCON,7,0
    movff _Low__Context_Store_0,BSR
    movff _Low__Context_Store_1,FSR0H
    movff _Low__Context_Store_2,FSR0L
    movff _Low__Context_Store_3,STATUS
    movff _Low__Context_Store_4,WREG
    bsf INTCON,7,0
    retfie
_Over_IRQ_Handler
F3_EOF equ $ ; EKLA_HUB_IRQ.Inc
F1_000207 equ $ ; in [EKLA_HUB.BAS] low PORTA.4
    bcf TRISA,4,0
    bcf LATA,4,0
F1_000208 equ $ ; in [EKLA_HUB.BAS] low PORTA.3
    bcf TRISA,3,0
    bcf LATA,3,0
F1_000209 equ $ ; in [EKLA_HUB.BAS] high PORTB.5
    bcf TRISB,5,0
    bsf LATB,5,0
F1_000210 equ $ ; in [EKLA_HUB.BAS] Clear CC66
    clrf CC66,0
F1_000211 equ $ ; in [EKLA_HUB.BAS] Clear MotorFlags
    clrf MotorFlags,0
F1_000212 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
MAIN
F1_000216 equ $ ; in [EKLA_HUB.BAS] low PORTB.2
    bcf TRISB,2,0
    bcf LATB,2,0
F1_000217 equ $ ; in [EKLA_HUB.BAS] low PORTB.1
    bcf TRISB,1,0
    bcf LATB,1,0
F1_000218 equ $ ; in [EKLA_HUB.BAS] low PORTA.5
    bcf TRISA,5,0
    bcf LATA,5,0
F1_000219 equ $ ; in [EKLA_HUB.BAS] low PORTC.0
    bcf TRISC,0,0
    bcf LATC,0,0
F1_000220 equ $ ; in [EKLA_HUB.BAS] low PORTC.3
    bcf TRISC,3,0
    bcf LATC,3,0
F1_000221 equ $ ; in [EKLA_HUB.BAS] low PORTC.2
    bcf TRISC,2,0
    bcf LATC,2,0
F1_000222 equ $ ; in [EKLA_HUB.BAS] low PORTC.1
    bcf TRISC,1,0
    bcf LATC,1,0
F1_000223 equ $ ; in [EKLA_HUB.BAS] low PORTC.4
    bcf TRISC,4,0
    bcf LATC,4,0
F1_000224 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
F1_000225 equ $ ; in [EKLA_HUB.BAS] Set TimVals
    lfsr 0,TimVals
    movlw 4
_pblb__13
    setf POSTINC0,0
    decfsz WREG,F,0
    bra _pblb__13
F1_000227 equ $ ; in [EKLA_HUB.BAS] Init_Usart_Interrupt
variable max_params=10,INIT_USART_INTERRUPT_RETURN=0,prm_count=0
    rcall _Init_Usart
F1_000229 equ $ ; in [EKLA_HUB.BAS] Clear_Serial_Buffer
variable max_params=10,CLEAR_SERIAL_BUFFER_RETURN=0,prm_count=0
    rcall _Clear_Usart_Buffer
F1_000238 equ $ ; in [EKLA_HUB.BAS] Clear T1CON
    clrf T1CON,0
F1_000239 equ $ ; in [EKLA_HUB.BAS] Clear INTCON.2
    bcf INTCON,2,0
F1_000240 equ $ ; in [EKLA_HUB.BAS] Set INTCON.5
    bsf INTCON,5,0
F1_000241 equ $ ; in [EKLA_HUB.BAS] T0CON = %10000111
    movlw 135
    movwf T0CON,0
F1_000266 equ $ ; in [EKLA_HUB.BAS] Period = Period_default
    movlw 231
    movwf PeriodH,0
    movlw 152
    movwf Period,0
F1_000269 equ $ ; in [EKLA_HUB.BAS] Clear T3CON
    clrf T3CON,0
F1_000270 equ $ ; in [EKLA_HUB.BAS] Clear PIR2.1
    bcf PIR2,1,0
F1_000271 equ $ ; in [EKLA_HUB.BAS] Set PIE2.1
    bsf PIE2,1,0
F1_000273 equ $ ; in [EKLA_HUB.BAS] Tim3 = Period
    movff PeriodH,TMR3LH
    movff Period,TMR3L
F1_000274 equ $ ; in [EKLA_HUB.BAS] Set RCON.7
    bsf RCON,7,0
F1_000275 equ $ ; in [EKLA_HUB.BAS] Clear IPR2.1
    bcf IPR2,1,0
F1_000277 equ $ ; in [EKLA_HUB.BAS] T3CON = %10110001
    movlw 177
    movwf T3CON,0
F1_000289 equ $ ; in [EKLA_HUB.BAS] Clear PIE2.1
    bcf PIE2,1,0
F1_000290 equ $ ; in [EKLA_HUB.BAS] Clear T3CON.0
    bcf T3CON,0,0
F1_000291 equ $ ; in [EKLA_HUB.BAS] Dur_Lookup ()
    call Dur_Lookup
F1_000292 equ $ ; in [EKLA_HUB.BAS] Motor_PWM_Lookup ()
    call Motor_PWM_Lookup
F1_000294 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    call SortTimers
    movff SortTimersResult,idx
F1_000295 equ $ ; in [EKLA_HUB.BAS] Set CC69
    bsf _B__VR1,2,0
F1_000299 equ $ ; in [EKLA_HUB.BAS] HRsout Control_Status, 66, 0
    movlw 182
    call __hrsout1__
    movlw 66
    call __hrsout1__
    movlw 0
    call __hrsout1__
F1_000302 equ $ ; in [EKLA_HUB.BAS] Do
_lbl__14
F1_000303 equ $ ; in [EKLA_HUB.BAS] Cnt.Word0 = CntLw
    movff TMR0L,Cnt
    movff TMR0LH,CntH
F1_000305 equ $ ; in [EKLA_HUB.BAS] Bytein = GetMidiIn ()
    rcall GetMidiIn
    movff GetMidiInResult,Bytein
Midi_Parse
F1_000308 equ $ ; in [EKLA_HUB.BAS] if Bytein > Control_Status Then
    movlw 183
    subwf Bytein,W,0
    bnc _lbl__18
F1_000309 equ $ ; in [EKLA_HUB.BAS] if Bytein > 253 Then
    movlw 254
    subwf Bytein,W,0
    bnc _lbl__20
    bra _lbl__21
_lbl__20
F1_000313 equ $ ; in [EKLA_HUB.BAS] else
F1_000314 equ $ ; in [EKLA_HUB.BAS] Clear statusbyte
    clrf statusbyte,0
F1_000315 equ $ ; in [EKLA_HUB.BAS] end if
_lbl__21
F1_000316 equ $ ; in [EKLA_HUB.BAS] goto Check_Timers
    bra Check_Timers
F1_000317 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__18
F1_000318 equ $ ; in [EKLA_HUB.BAS] if StBit =1 Then
    btfss Bytein,7,0
    bra _lbl__23
F1_000320 equ $ ; in [EKLA_HUB.BAS] Clear statusbyte
    clrf statusbyte,0
F1_000321 equ $ ; in [EKLA_HUB.BAS] Select Bytein
F1_000322 equ $ ; in [EKLA_HUB.BAS] Case NoteOff_Status
    movlw 134
    subwf Bytein,W,0
    bnz _lbl__25
F1_000323 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000324 equ $ ; in [EKLA_HUB.BAS] Set noteUit
    setf noteUit,0
F1_000325 equ $ ; in [EKLA_HUB.BAS] Set release
    setf release,0
    bra _lbl__24
_lbl__25
F1_000326 equ $ ; in [EKLA_HUB.BAS] Case NoteOn_Status
    movlw 150
    subwf Bytein,W,0
    bnz _lbl__28
F1_000327 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000328 equ $ ; in [EKLA_HUB.BAS] Set noteAan
    setf noteAan,0
F1_000329 equ $ ; in [EKLA_HUB.BAS] Set velo
    setf velo,0
    bra _lbl__24
_lbl__28
F1_000330 equ $ ; in [EKLA_HUB.BAS] Case Keypres_Status
    movlw 166
    subwf Bytein,W,0
    bnz _lbl__30
F1_000331 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000332 equ $ ; in [EKLA_HUB.BAS] Set notePres
    setf notePres,0
F1_000333 equ $ ; in [EKLA_HUB.BAS] Set pres
    setf pres,0
    bra _lbl__24
_lbl__30
F1_000334 equ $ ; in [EKLA_HUB.BAS] Case Control_Status
    movlw 182
    subwf Bytein,W,0
    bnz _lbl__32
F1_000335 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000336 equ $ ; in [EKLA_HUB.BAS] Set Ctrl
    setf Ctrl,0
F1_000337 equ $ ; in [EKLA_HUB.BAS] Set value
    setf value,0
    bra _lbl__24
_lbl__32
F1_000338 equ $ ; in [EKLA_HUB.BAS] Case ProgChange_Status
    movlw 198
    subwf Bytein,W,0
    bnz _lbl__34
F1_000339 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000340 equ $ ; in [EKLA_HUB.BAS] Set prog
    setf prog,0
    bra _lbl__24
_lbl__34
F1_000341 equ $ ; in [EKLA_HUB.BAS] Case Aftertouch_Status
    movlw 214
    subwf Bytein,W,0
    bnz _lbl__36
F1_000342 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000343 equ $ ; in [EKLA_HUB.BAS] Set aft
    setf aft,0
    bra _lbl__24
_lbl__36
F1_000344 equ $ ; in [EKLA_HUB.BAS] Case Pitchbend_Status
    movlw 230
    subwf Bytein,W,0
    bnz _lbl__38
F1_000345 equ $ ; in [EKLA_HUB.BAS] statusbyte = Bytein
    movff Bytein,statusbyte
F1_000346 equ $ ; in [EKLA_HUB.BAS] Set pblsb
    setf pblsb,0
F1_000347 equ $ ; in [EKLA_HUB.BAS] Set pbmsb
    setf pbmsb,0
F1_000348 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__38
_lbl__24
    bra _lbl__39
_lbl__23
F1_000349 equ $ ; in [EKLA_HUB.BAS] else
F1_000350 equ $ ; in [EKLA_HUB.BAS] Select statusbyte
F1_000351 equ $ ; in [EKLA_HUB.BAS] Case 0
    movf statusbyte,F,0
    bnz _lbl__41
F1_000352 equ $ ; in [EKLA_HUB.BAS] goto Check_Timers
    bra Check_Timers
    bra _lbl__40
_lbl__41
F1_000353 equ $ ; in [EKLA_HUB.BAS] Case NoteOff_Status
    movlw 134
    subwf statusbyte,W,0
    btfss STATUS,2,0
    bra _lbl__44
F1_000354 equ $ ; in [EKLA_HUB.BAS] if noteUit = 255 Then
    incf noteUit,W,0
    bnz _lbl__46
F1_000355 equ $ ; in [EKLA_HUB.BAS] noteUit = Bytein
    movff Bytein,noteUit
    bra _lbl__47
_lbl__46
F1_000356 equ $ ; in [EKLA_HUB.BAS] else
F1_000357 equ $ ; in [EKLA_HUB.BAS] release = Bytein
    movff Bytein,release
F1_000358 equ $ ; in [EKLA_HUB.BAS] Select noteUit
F1_000359 equ $ ; in [EKLA_HUB.BAS] Case lowest_note To highest_note
    movlw 54
    subwf noteUit,W,0
    bnc _lbl__49
    movlw 106
    subwf noteUit,W,0
    bc _lbl__49
F1_000360 equ $ ; in [EKLA_HUB.BAS] if release = 0 Then release = CC19
    movf release,F,0
    bnz _lbl__52
    movff CC19,release
_lbl__52
F1_000361 equ $ ; in [EKLA_HUB.BAS] HRsout NoteOff_Status, noteUit, release
    movlw 134
    call __hrsout1__
    movf noteUit,W,0
    call __hrsout1__
    movf release,W,0
    call __hrsout1__
F1_000362 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
F1_000363 equ $ ; in [EKLA_HUB.BAS] if MotorOn = 1 Then
    btfss MotorFlags,0,0
    bra _lbl__54
F1_000365 equ $ ; in [EKLA_HUB.BAS] TimVals[0] = time + 500
    movlw 244
    addwf Cnt,W,0
    movwf PBS_VAR0,0
    movlw 1
    addwfc CntH,W,0
    movwf PBS_VAR0H,0
    movlw 0
    addwfc CntHH,W,0
    movwf PBS_VAR0HH,0
    movlw 0
    addwfc CntHHH,W,0
    movwf PBS_VAR0HHH,0
    movff PBS_VAR0,TimVals#0
    movff PBS_VAR0H,TimVals#0H
    movff PBS_VAR0HH,TimVals#0HH
    movff PBS_VAR0HHH,TimVals#0HHH
F1_000366 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
F1_000367 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__54
    bra _lbl__48
_lbl__49
F1_000370 equ $ ; in [EKLA_HUB.BAS] Case White1_note
    movlw 120
    subwf noteUit,W,0
    bnz _lbl__56
F1_000371 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
    bra _lbl__48
_lbl__56
F1_000372 equ $ ; in [EKLA_HUB.BAS] Case White2_note
    movlw 121
    subwf noteUit,W,0
    bnz _lbl__58
F1_000373 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
    bra _lbl__48
_lbl__58
F1_000374 equ $ ; in [EKLA_HUB.BAS] Case Red1_note
    movlw 122
    subwf noteUit,W,0
    bnz _lbl__60
F1_000375 equ $ ; in [EKLA_HUB.BAS] HPWM 2, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
    bra _lbl__48
_lbl__60
F1_000377 equ $ ; in [EKLA_HUB.BAS] Case Red2_note
    movlw 123
    subwf noteUit,W,0
    bnz _lbl__62
F1_000379 equ $ ; in [EKLA_HUB.BAS] HPWM 1, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
F1_000380 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__62
_lbl__48
F1_000381 equ $ ; in [EKLA_HUB.BAS] Set noteUit
    setf noteUit,0
F1_000382 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__47
    bra _lbl__40
_lbl__44
F1_000383 equ $ ; in [EKLA_HUB.BAS] Case NoteOn_Status
    movlw 150
    subwf statusbyte,W,0
    btfss STATUS,2,0
    bra _lbl__64
F1_000384 equ $ ; in [EKLA_HUB.BAS] if noteAan = 255 Then
    incf noteAan,W,0
    bnz _lbl__66
F1_000385 equ $ ; in [EKLA_HUB.BAS] noteAan = Bytein
    movff Bytein,noteAan
    bra _lbl__67
_lbl__66
F1_000386 equ $ ; in [EKLA_HUB.BAS] else
F1_000387 equ $ ; in [EKLA_HUB.BAS] velo = Bytein
    movff Bytein,velo
F1_000388 equ $ ; in [EKLA_HUB.BAS] if velo = 0 Then
    movf velo,F,0
    btfss STATUS,2,0
    bra _lbl__69
F1_000389 equ $ ; in [EKLA_HUB.BAS] Select noteAan
F1_000390 equ $ ; in [EKLA_HUB.BAS] Case lowest_note To highest_note
    movlw 54
    subwf noteAan,W,0
    bnc _lbl__71
    movlw 106
    subwf noteAan,W,0
    bc _lbl__71
F1_000391 equ $ ; in [EKLA_HUB.BAS] HRsout NoteOff_Status, noteAan, CC19
    movlw 134
    call __hrsout1__
    movf noteAan,W,0
    call __hrsout1__
    movf CC19,W,0
    call __hrsout1__
F1_000392 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
F1_000393 equ $ ; in [EKLA_HUB.BAS] if MotorOn = 1 Then
    btfss MotorFlags,0,0
    bra _lbl__74
F1_000395 equ $ ; in [EKLA_HUB.BAS] TimVals[0] = time + 500
    movlw 244
    addwf Cnt,W,0
    movwf PBS_VAR0,0
    movlw 1
    addwfc CntH,W,0
    movwf PBS_VAR0H,0
    movlw 0
    addwfc CntHH,W,0
    movwf PBS_VAR0HH,0
    movlw 0
    addwfc CntHHH,W,0
    movwf PBS_VAR0HHH,0
    movff PBS_VAR0,TimVals#0
    movff PBS_VAR0H,TimVals#0H
    movff PBS_VAR0HH,TimVals#0HH
    movff PBS_VAR0HHH,TimVals#0HHH
F1_000396 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
F1_000397 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__74
    bra _lbl__70
_lbl__71
F1_000400 equ $ ; in [EKLA_HUB.BAS] Case White1_note
    movlw 120
    subwf noteAan,W,0
    bnz _lbl__76
F1_000401 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
    bra _lbl__70
_lbl__76
F1_000402 equ $ ; in [EKLA_HUB.BAS] Case White2_note
    movlw 121
    subwf noteAan,W,0
    bnz _lbl__78
F1_000403 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
    bra _lbl__70
_lbl__78
F1_000404 equ $ ; in [EKLA_HUB.BAS] Case Red2_note
    movlw 123
    subwf noteAan,W,0
    bnz _lbl__80
F1_000406 equ $ ; in [EKLA_HUB.BAS] HPWM 1, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
    bra _lbl__70
_lbl__80
F1_000407 equ $ ; in [EKLA_HUB.BAS] Case Red1_note
    movlw 122
    subwf noteAan,W,0
    bnz _lbl__82
F1_000409 equ $ ; in [EKLA_HUB.BAS] HPWM 2, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
F1_000410 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__82
_lbl__70
    bra _lbl__83
_lbl__69
F1_000411 equ $ ; in [EKLA_HUB.BAS] else
F1_000412 equ $ ; in [EKLA_HUB.BAS] if PowerOn = 1 Then
    btfss CC66,0,0
    bra _lbl__85
F1_000413 equ $ ; in [EKLA_HUB.BAS] Select noteAan
F1_000414 equ $ ; in [EKLA_HUB.BAS] Case lowest_note To highest_note
    movlw 54
    subwf noteAan,W,0
    bnc _lbl__87
    movlw 106
    subwf noteAan,W,0
    bc _lbl__87
F1_000415 equ $ ; in [EKLA_HUB.BAS] HRsout NoteOn_Status, noteAan, velo
    movlw 150
    call __hrsout1__
    movf noteAan,W,0
    call __hrsout1__
    movf velo,W,0
    call __hrsout1__
F1_000416 equ $ ; in [EKLA_HUB.BAS] Set NrNotes
    bsf _B__VR1,0,0
F1_000418 equ $ ; in [EKLA_HUB.BAS] if MotorOn = 0 Then MotorCtrl ()
    btfss MotorFlags,0,0
    rcall MotorCtrl
_lbl__90
    bra _lbl__86
_lbl__87
F1_000421 equ $ ; in [EKLA_HUB.BAS] Case White1_note
    movlw 120
    subwf noteAan,W,0
    bnz _lbl__92
F1_000422 equ $ ; in [EKLA_HUB.BAS] Set PORTA.5
    bsf LATA,5,0
    bra _lbl__86
_lbl__92
F1_000423 equ $ ; in [EKLA_HUB.BAS] Case White2_note
    movlw 121
    subwf noteAan,W,0
    bnz _lbl__94
F1_000424 equ $ ; in [EKLA_HUB.BAS] Set PORTC.0
    bsf LATC,0,0
    bra _lbl__86
_lbl__94
F1_000425 equ $ ; in [EKLA_HUB.BAS] Case Red1_note
    movlw 122
    subwf noteAan,W,0
    bnz _lbl__96
F1_000427 equ $ ; in [EKLA_HUB.BAS] if velo < 127 Then
    movlw 127
    subwf velo,W,0
    bc _lbl__98
F1_000428 equ $ ; in [EKLA_HUB.BAS] velo = velo + velo
    movf velo,W,0
    addwf velo,F,0
F1_000429 equ $ ; in [EKLA_HUB.BAS] HPWM 2,velo, fPwm
    movff velo,GEN
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
    bra _lbl__99
_lbl__98
F1_000430 equ $ ; in [EKLA_HUB.BAS] else
F1_000431 equ $ ; in [EKLA_HUB.BAS] HPWM 2, 255, fPwm
    setf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
F1_000432 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__99
    bra _lbl__86
_lbl__96
F1_000433 equ $ ; in [EKLA_HUB.BAS] Case Red2_note
    movlw 123
    subwf noteAan,W,0
    bnz _lbl__101
F1_000434 equ $ ; in [EKLA_HUB.BAS] if velo < 127 Then
    movlw 127
    subwf velo,W,0
    bc _lbl__103
F1_000435 equ $ ; in [EKLA_HUB.BAS] velo = velo + velo
    movf velo,W,0
    addwf velo,F,0
F1_000436 equ $ ; in [EKLA_HUB.BAS] HPWM 1, velo, fPwm
    movff velo,GEN
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
    bra _lbl__104
_lbl__103
F1_000437 equ $ ; in [EKLA_HUB.BAS] else
F1_000438 equ $ ; in [EKLA_HUB.BAS] HPWM 1, 255, fPwm
    setf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
F1_000439 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__104
F1_000446 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__101
_lbl__86
F1_000447 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__85
F1_000448 equ $ ; in [EKLA_HUB.BAS] Set noteAan
    setf noteAan,0
F1_000449 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__83
F1_000450 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__67
    bra _lbl__40
_lbl__64
F1_000451 equ $ ; in [EKLA_HUB.BAS] Case Keypres_Status
    movlw 166
    subwf statusbyte,W,0
    bnz _lbl__106
F1_000452 equ $ ; in [EKLA_HUB.BAS] if notePres = 255 Then
    incf notePres,W,0
    bnz _lbl__108
F1_000453 equ $ ; in [EKLA_HUB.BAS] notePres = Bytein
    movff Bytein,notePres
    bra _lbl__109
_lbl__108
F1_000454 equ $ ; in [EKLA_HUB.BAS] else
F1_000455 equ $ ; in [EKLA_HUB.BAS] pres = Bytein
    movff Bytein,pres
F1_000456 equ $ ; in [EKLA_HUB.BAS] KeyPres ()
    rcall KeyPres
F1_000458 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__109
    bra _lbl__40
_lbl__106
F1_000459 equ $ ; in [EKLA_HUB.BAS] Case Control_Status
    movlw 182
    subwf statusbyte,W,0
    bnz _lbl__111
F1_000460 equ $ ; in [EKLA_HUB.BAS] if Ctrl = 255 Then
    incf Ctrl,W,0
    bnz _lbl__113
F1_000461 equ $ ; in [EKLA_HUB.BAS] Ctrl = Bytein
    movff Bytein,Ctrl
    bra _lbl__114
_lbl__113
F1_000462 equ $ ; in [EKLA_HUB.BAS] else
F1_000463 equ $ ; in [EKLA_HUB.BAS] value = Bytein
    movff Bytein,value
F1_000464 equ $ ; in [EKLA_HUB.BAS] Select Ctrl
F1_000465 equ $ ; in [EKLA_HUB.BAS] Case 1 To 7
    movf Ctrl,F,0
    bz _lbl__116
    movlw 8
    subwf Ctrl,W,0
    bc _lbl__116
F1_000466 equ $ ; in [EKLA_HUB.BAS] HRsout Control_Status, Ctrl, value
    movlw 182
    call __hrsout1__
    movf Ctrl,W,0
    call __hrsout1__
    movf value,W,0
    call __hrsout1__
    bra _lbl__115
_lbl__116
F1_000467 equ $ ; in [EKLA_HUB.BAS] Case 19
    movlw 19
    subwf Ctrl,W,0
    bnz _lbl__119
F1_000468 equ $ ; in [EKLA_HUB.BAS] CC19 = value
    movff value,CC19
F1_000469 equ $ ; in [EKLA_HUB.BAS] HRsout Control_Status, Ctrl, value
    movlw 182
    call __hrsout1__
    movf Ctrl,W,0
    call __hrsout1__
    movf value,W,0
    call __hrsout1__
    bra _lbl__115
_lbl__119
F1_000470 equ $ ; in [EKLA_HUB.BAS] Case 68
    movlw 68
    subwf Ctrl,W,0
    bnz _lbl__121
F1_000471 equ $ ; in [EKLA_HUB.BAS] CC68 = value
    movff value,CC68
F1_000472 equ $ ; in [EKLA_HUB.BAS] Motspeed = CC68
    movff CC68,Motspeed
    bra _lbl__115
_lbl__121
F1_000473 equ $ ; in [EKLA_HUB.BAS] Case 66, 69, 123
    movlw 66
    subwf Ctrl,W,0
    bz _lbl__122
    movlw 69
    subwf Ctrl,W,0
    bz _lbl__122
    movlw 123
    subwf Ctrl,W,0
    bnz _lbl__123
_lbl__122
F1_000474 equ $ ; in [EKLA_HUB.BAS] HRsout Control_Status, Ctrl, value
    movlw 182
    call __hrsout1__
    movf Ctrl,W,0
    call __hrsout1__
    movf value,W,0
    call __hrsout1__
F1_000479 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__123
_lbl__115
F1_000480 equ $ ; in [EKLA_HUB.BAS] Controller ()
    rcall Controller
F1_000481 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__114
    bra _lbl__40
_lbl__111
F1_000482 equ $ ; in [EKLA_HUB.BAS] Case ProgChange_Status
    movlw 198
    subwf statusbyte,W,0
    bnz _lbl__125
F1_000483 equ $ ; in [EKLA_HUB.BAS] if prog = 255 Then
    incf prog,W,0
    bnz _lbl__127
F1_000484 equ $ ; in [EKLA_HUB.BAS] prog = Bytein
    movff Bytein,prog
F1_000489 equ $ ; in [EKLA_HUB.BAS] Set prog
    setf prog,0
F1_000490 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__127
    bra _lbl__40
_lbl__125
F1_000491 equ $ ; in [EKLA_HUB.BAS] Case Aftertouch_Status
    movlw 214
    subwf statusbyte,W,0
    bnz _lbl__129
F1_000492 equ $ ; in [EKLA_HUB.BAS] if aft = 255 Then
    incf aft,W,0
    bnz _lbl__131
F1_000493 equ $ ; in [EKLA_HUB.BAS] aft = Bytein
    movff Bytein,aft
F1_000494 equ $ ; in [EKLA_HUB.BAS] Aftertouch ()
    rcall Aftertouch
F1_000495 equ $ ; in [EKLA_HUB.BAS] Set aft
    setf aft,0
F1_000496 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__131
    bra _lbl__40
_lbl__129
F1_000497 equ $ ; in [EKLA_HUB.BAS] Case Pitchbend_Status
    movlw 230
    subwf statusbyte,W,0
    bnz _lbl__133
F1_000498 equ $ ; in [EKLA_HUB.BAS] if pblsb = 255 Then
    incf pblsb,W,0
    bnz _lbl__135
F1_000499 equ $ ; in [EKLA_HUB.BAS] pblsb = Bytein
    movff Bytein,pblsb
    bra _lbl__136
_lbl__135
F1_000500 equ $ ; in [EKLA_HUB.BAS] else
F1_000501 equ $ ; in [EKLA_HUB.BAS] pbmsb = Bytein
    movff Bytein,pbmsb
F1_000502 equ $ ; in [EKLA_HUB.BAS] Pitchbend ()
    rcall Pitchbend
F1_000503 equ $ ; in [EKLA_HUB.BAS] Set pblsb
    setf pblsb,0
F1_000504 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__136
F1_000506 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__133
_lbl__40
F1_000507 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__39
Check_Timers
F1_000510 equ $ ; in [EKLA_HUB.BAS] if idx < NrTasks Then
    movlw 1
    subwf idx,W,0
    bc _lbl__138
F1_000511 equ $ ; in [EKLA_HUB.BAS] if time >= Nxt Then
    movf Nxt,W,0
    subwf Cnt,W,0
    movf NxtH,W,0
    subwfb CntH,W,0
    movf NxtHH,W,0
    subwfb CntHH,W,0
    movf NxtHHH,W,0
    subwfb CntHHH,W,0
    bnc _lbl__140
F1_000513 equ $ ; in [EKLA_HUB.BAS] Set Nxt.31
    bsf NxtHHH,7,0
F1_000515 equ $ ; in [EKLA_HUB.BAS] Select idx
F1_000516 equ $ ; in [EKLA_HUB.BAS] Case 0
    movf idx,F,0
    bnz _lbl__142
F1_000518 equ $ ; in [EKLA_HUB.BAS] Clear MotorOn
    bcf MotorFlags,0,0
F1_000519 equ $ ; in [EKLA_HUB.BAS] Clear MotWait
    bcf MotorFlags,1,0
F1_000520 equ $ ; in [EKLA_HUB.BAS] Set TimVals[0]
    setf TimVals#0HHH,0
    setf TimVals#0HH,0
    setf TimVals#0H,0
    setf TimVals#0,0
F1_000521 equ $ ; in [EKLA_HUB.BAS] Clear PIR2.1
    bcf PIR2,1,0
F1_000522 equ $ ; in [EKLA_HUB.BAS] Clear T3CON.0
    bcf T3CON,0,0
F1_000523 equ $ ; in [EKLA_HUB.BAS] Clear PIE2.1
    bcf PIE2,1,0
F1_000524 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.3
    bcf LATA,3,0
F1_000525 equ $ ; in [EKLA_HUB.BAS] Clear PORTB.1
    bcf LATB,1,0
F1_000526 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
    bra _lbl__141
_lbl__142
F1_000529 equ $ ; in [EKLA_HUB.BAS] Case 1
    movlw 1
    subwf idx,W,0
    bnz _lbl__145
    bra _lbl__141
_lbl__145
F1_000538 equ $ ; in [EKLA_HUB.BAS] Case 2
    movlw 2
    subwf idx,W,0
    bnz _lbl__147
F1_000550 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__147
_lbl__141
F1_000551 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__140
F1_000554 equ $ ; in [EKLA_HUB.BAS] if MaxTim = 1 Then
    btfss timeHHH,4,0
    bra _lbl__149
F1_000555 equ $ ; in [EKLA_HUB.BAS] Clear time
    clrf CntHHH,0
    clrf CntHH,0
    clrf CntH,0
    clrf Cnt,0
F1_000557 equ $ ; in [EKLA_HUB.BAS] Set TimVals
    lfsr 0,TimVals
    movlw 4
_pblb__150
    setf POSTINC0,0
    decfsz WREG,F,0
    bra _pblb__150
F1_000558 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__149
    bra _lbl__151
_lbl__138
F1_000559 equ $ ; in [EKLA_HUB.BAS] else
F1_000563 equ $ ; in [EKLA_HUB.BAS] if MaxTim = 1 Then Clear time
    btfss timeHHH,4,0
    bra _lbl__153
    clrf CntHHH,0
    clrf CntHH,0
    clrf CntH,0
    clrf Cnt,0
_lbl__153
F1_000564 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__151
F1_000568 equ $ ; in [EKLA_HUB.BAS] if CC69 = 1 Then
    btfss _B__VR1,2,0
    bra _lbl__155
F1_000569 equ $ ; in [EKLA_HUB.BAS] if time.13 <> LiTog  Then
    clrf WREG,0
    btfsc CntH,5,0
    addlw 1
    btfsc _B__VR1,1,0
    sublw 1
    bz _lbl__157
F1_000570 equ $ ; in [EKLA_HUB.BAS] Toggle LiTog
    btg _B__VR1,1,0
F1_000571 equ $ ; in [EKLA_HUB.BAS] Select Case NrNotes
F1_000572 equ $ ; in [EKLA_HUB.BAS] Case 0
    btfsc _B__VR1,0,0
    bra _lbl__159
F1_000573 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
F1_000574 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
F1_000575 equ $ ; in [EKLA_HUB.BAS] Case else
    bra _lbl__162
_lbl__159
F1_000576 equ $ ; in [EKLA_HUB.BAS] Set PORTA.5
    bsf LATA,5,0
F1_000577 equ $ ; in [EKLA_HUB.BAS] Set PORTC.0
    bsf LATC,0,0
F1_000578 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__162
_lbl__158
F1_000579 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__157
F1_000580 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__155
F1_000583 equ $ ; in [EKLA_HUB.BAS] btg PORTB.0
    btg PORTB,0
_lbl__16
F1_000587 equ $ ; in [EKLA_HUB.BAS] Loop
    bra _lbl__14
_lbl__15
F1_000002 equ $ ; in [EKLA_HUB.BAS] Stop
_pblb__163
    bra _pblb__163
;---------------------------------------------
F3_000067 equ $ ; in [EKLA_HUB_IRQ.Inc] Proc GetMidiIn (), byte
GetMidiIn
F3_000068 equ $ ; in [EKLA_HUB_IRQ.Inc] if IndexIn <> IndexOut Then
    movf IndexIn,W,0
    subwf IndexOut,W,0
    bz _lbl__165
F3_000069 equ $ ; in [EKLA_HUB_IRQ.Inc] Inc IndexOut
    incf IndexOut,F,0
F3_000070 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR0_Save = USART_FSR0
    movff FSR0LH,FSR0SaveIntH
    movff FSR0L,FSR0SaveInt
F3_000071 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR0 = VarPtr Ringbuffer
    lfsr 0,95
F3_000072 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR0 = USART_FSR0 + IndexOut
    movf IndexOut,W,0
    addwf FSR0L,F,0
    movlw 0
    addwfc FSR0LH,F,0
F3_000073 equ $ ; in [EKLA_HUB_IRQ.Inc] WREG = INDF0
    movf INDF0,W,0
F3_000074 equ $ ; in [EKLA_HUB_IRQ.Inc] Result = WREG
    movlb 3
    movwf GetMidiInResult,1
F3_000075 equ $ ; in [EKLA_HUB_IRQ.Inc] USART_FSR0 = USART_FSR0_Save
    movff FSR0SaveIntH,FSR0LH
    movff FSR0SaveInt,FSR0L
F3_000076 equ $ ; in [EKLA_HUB_IRQ.Inc] Set STATUS.0
    bsf STATUS,0,0
F3_000077 equ $ ; in [EKLA_HUB_IRQ.Inc] RET
    return 0
    movlb 0
    bra _lbl__166
_lbl__165
F3_000078 equ $ ; in [EKLA_HUB_IRQ.Inc] else
F3_000079 equ $ ; in [EKLA_HUB_IRQ.Inc] WREG = 255
    setf WREG,0
F3_000080 equ $ ; in [EKLA_HUB_IRQ.Inc] Result = WREG
    movlb 3
    movwf GetMidiInResult,1
F3_000081 equ $ ; in [EKLA_HUB_IRQ.Inc] btfss STATUS,C
    btfss STATUS,C
F3_000082 equ $ ; in [EKLA_HUB_IRQ.Inc] RET
    return 0
F3_000083 equ $ ; in [EKLA_HUB_IRQ.Inc] endif
_lbl__166
    movlb 0
F3_000084 equ $ ; in [EKLA_HUB_IRQ.Inc] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000590 equ $ ; in [EKLA_HUB.BAS] Proc SortTimers (),byte
SortTimers
F1_000593 equ $ ; in [EKLA_HUB.BAS] Set Result
    movlb 3
    setf SortTimersResult,1
F1_000594 equ $ ; in [EKLA_HUB.BAS] Set Nxt.31
    bsf NxtHHH,7,0
F1_000595 equ $ ; in [EKLA_HUB.BAS] For I = 0 To LastTask
    clrf _I,0
_frlb__167
    movlb 0
    movf _I,F,0
    bnz _nxlb__168
F1_000596 equ $ ; in [EKLA_HUB.BAS] if TimVals[I] < Nxt Then
    bcf STATUS,0,0
    rlcf _I,W,0
    movwf FSR0L,0
    clrf FSR0H,0
    rlcf FSR0H,F,0
    rlcf FSR0L,F,0
    rlcf FSR0H,F,0
    movlw 85
    addwf FSR0L,F,0
    movlw 0
    addwfc FSR0H,F,0
    movff INDF0,PBS_VAR0
    movff PREINC0,PBS_VAR0H
    movff PREINC0,PBS_VAR0HH
    movff PREINC0,PBS_VAR0HHH
    movf Nxt,W,0
    subwf PBS_VAR0,W,0
    movf NxtH,W,0
    subwfb PBS_VAR0H,W,0
    movf NxtHH,W,0
    subwfb PBS_VAR0HH,W,0
    movf NxtHHH,W,0
    subwfb PBS_VAR0HHH,W,0
    bc _lbl__171
F1_000597 equ $ ; in [EKLA_HUB.BAS] Nxt = TimVals[I]
    bcf STATUS,0,0
    rlcf _I,W,0
    movwf FSR0L,0
    clrf FSR0H,0
    rlcf FSR0H,F,0
    rlcf FSR0L,F,0
    rlcf FSR0H,F,0
    movlw 85
    addwf FSR0L,F,0
    movlw 0
    addwfc FSR0H,F,0
    movff INDF0,Nxt
    movff PREINC0,NxtH
    movff PREINC0,NxtHH
    movff PREINC0,NxtHHH
F1_000598 equ $ ; in [EKLA_HUB.BAS] Result = I
    movff _I,SortTimersResult
F1_000599 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__171
_ctlb__169
F1_000600 equ $ ; in [EKLA_HUB.BAS] Next I
    incf _I,F,0
    bnc _frlb__167
_nxlb__168
F1_000601 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000603 equ $ ; in [EKLA_HUB.BAS] Proc MotorCtrl ()
MotorCtrl
F1_000608 equ $ ; in [EKLA_HUB.BAS] if MotWait = True Then
    btfss MotorFlags,1,0
    bra _lbl__173
F1_000610 equ $ ; in [EKLA_HUB.BAS] Clear MotWait
    bcf MotorFlags,1,0
F1_000611 equ $ ; in [EKLA_HUB.BAS] Set TimVals[0]
    setf TimVals#0HHH,0
    setf TimVals#0HH,0
    setf TimVals#0H,0
    setf TimVals#0,0
F1_000612 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
F1_000613 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__173
F1_000615 equ $ ; in [EKLA_HUB.BAS] Select Motspeed
F1_000616 equ $ ; in [EKLA_HUB.BAS] Case < 1
    movlw 1
    subwf Motspeed,W,0
    bc _lbl__175
F1_000617 equ $ ; in [EKLA_HUB.BAS] Clear PIR2.1
    bcf PIR2,1,0
F1_000618 equ $ ; in [EKLA_HUB.BAS] Clear T3CON.0
    bcf T3CON,0,0
F1_000619 equ $ ; in [EKLA_HUB.BAS] Clear PIE2.1
    bcf PIE2,1,0
F1_000620 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.3
    bcf LATA,3,0
F1_000621 equ $ ; in [EKLA_HUB.BAS] Clear PORTB.1
    bcf LATB,1,0
F1_000622 equ $ ; in [EKLA_HUB.BAS] Clear MotorOn
    bcf MotorFlags,0,0
    bra _lbl__174
_lbl__175
F1_000623 equ $ ; in [EKLA_HUB.BAS] Case > 99
    movlw 100
    subwf Motspeed,W,0
    bnc _lbl__178
F1_000624 equ $ ; in [EKLA_HUB.BAS] Clear PIR2.1
    bcf PIR2,1,0
F1_000625 equ $ ; in [EKLA_HUB.BAS] Clear T3CON.0
    bcf T3CON,0,0
F1_000626 equ $ ; in [EKLA_HUB.BAS] Clear PIE2.1
    bcf PIE2,1,0
F1_000627 equ $ ; in [EKLA_HUB.BAS] Set PORTA.3
    bsf LATA,3,0
F1_000628 equ $ ; in [EKLA_HUB.BAS] Set PORTB.1
    bsf LATB,1,0
F1_000629 equ $ ; in [EKLA_HUB.BAS] Set MotorOn
    bsf MotorFlags,0,0
F1_000630 equ $ ; in [EKLA_HUB.BAS] Case else
    bra _lbl__180
_lbl__178
F1_000631 equ $ ; in [EKLA_HUB.BAS] if T3CON.0 = 0 Then
    btfsc T3CON,0,0
    bra _lbl__182
F1_000632 equ $ ; in [EKLA_HUB.BAS] Clear PIR2.1
    bcf PIR2,1,0
F1_000633 equ $ ; in [EKLA_HUB.BAS] Set Mtog
    bsf CC66,2,0
F1_000634 equ $ ; in [EKLA_HUB.BAS] Clear MotCnt
    clrf MotCnt,0
F1_000635 equ $ ; in [EKLA_HUB.BAS] MotTim = Ton[Motspeed]
    lfsr 0,Ton
    movf Motspeed,W,0
    movf PLUSW0,W,0
    movwf MotTim,0
F1_000636 equ $ ; in [EKLA_HUB.BAS] Set T3CON.0
    bsf T3CON,0,0
F1_000637 equ $ ; in [EKLA_HUB.BAS] Set PIE2.1
    bsf PIE2,1,0
F1_000638 equ $ ; in [EKLA_HUB.BAS] Tim3 = Period
    movff PeriodH,TMR3LH
    movff Period,TMR3L
F1_000639 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__182
F1_000640 equ $ ; in [EKLA_HUB.BAS] Set MotorOn
    bsf MotorFlags,0,0
F1_000641 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__180
_lbl__174
F1_000642 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000644 equ $ ; in [EKLA_HUB.BAS] Proc KeyPres ()
KeyPres
F1_000646 equ $ ; in [EKLA_HUB.BAS] Select notePres
F1_000647 equ $ ; in [EKLA_HUB.BAS] Case lowest_note To highest_note
    movlw 54
    subwf notePres,W,0
    bnc _lbl__184
    movlw 106
    subwf notePres,W,0
    bc _lbl__184
F1_000648 equ $ ; in [EKLA_HUB.BAS] HRsout Keypres_Status, notePres, pres
    movlw 166
    call __hrsout1__
    movf notePres,W,0
    call __hrsout1__
    movf pres,W,0
    call __hrsout1__
    bra _lbl__183
_lbl__184
F1_000649 equ $ ; in [EKLA_HUB.BAS] Case Red1_note
    movlw 122
    subwf notePres,W,0
    bnz _lbl__187
F1_000650 equ $ ; in [EKLA_HUB.BAS] pres = pres + pres
    movf pres,W,0
    addwf pres,F,0
F1_000651 equ $ ; in [EKLA_HUB.BAS] HPWM 2, pres, fPwm
    movff pres,GEN
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
    bra _lbl__183
_lbl__187
F1_000652 equ $ ; in [EKLA_HUB.BAS] Case Red2_note
    movlw 123
    subwf notePres,W,0
    bnz _lbl__189
F1_000653 equ $ ; in [EKLA_HUB.BAS] pres = pres + pres
    movf pres,W,0
    addwf pres,F,0
F1_000654 equ $ ; in [EKLA_HUB.BAS] HPWM 1, pres, fPwm
    movff pres,GEN
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
    bra _lbl__183
_lbl__189
F1_000655 equ $ ; in [EKLA_HUB.BAS] Case Green_Note
    movlw 124
    subwf notePres,W,0
    bnz _lbl__191
F1_000656 equ $ ; in [EKLA_HUB.BAS] HRsout Keypres_Status, Green_Note, pres
    movlw 166
    call __hrsout1__
    movlw 124
    call __hrsout1__
    movf pres,W,0
    call __hrsout1__
F1_000657 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__191
_lbl__183
F1_000658 equ $ ; in [EKLA_HUB.BAS] Set notePres
    setf notePres,0
F1_000659 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000666 equ $ ; in [EKLA_HUB.BAS] Proc Pitchbend ()
Pitchbend
F1_000668 equ $ ; in [EKLA_HUB.BAS] Set pblsb
    setf pblsb,0
F1_000669 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000671 equ $ ; in [EKLA_HUB.BAS] Proc Aftertouch ()
Aftertouch
F1_000674 equ $ ; in [EKLA_HUB.BAS] Set aft
    setf aft,0
F1_000675 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000677 equ $ ; in [EKLA_HUB.BAS] Proc Controller ()
Controller
F1_000678 equ $ ; in [EKLA_HUB.BAS] Select Ctrl
F1_000679 equ $ ; in [EKLA_HUB.BAS] Case 7
    movlw 7
    subwf Ctrl,W,0
    bnz _lbl__193
F1_000680 equ $ ; in [EKLA_HUB.BAS] Volume = value
    movff value,Volume
F1_000730 equ $ ; in [EKLA_HUB.BAS] oldVolume = Volume
    movff Volume,oldVolume
    bra _lbl__192
_lbl__193
F1_000731 equ $ ; in [EKLA_HUB.BAS] Case 66
    movlw 66
    subwf Ctrl,W,0
    bnz _lbl__196
F1_000734 equ $ ; in [EKLA_HUB.BAS] if value = 0 Then
    movf value,F,0
    bnz _lbl__198
F1_000735 equ $ ; in [EKLA_HUB.BAS] PowerDown ()
    rcall PowerDown
    bra _lbl__199
_lbl__198
F1_000736 equ $ ; in [EKLA_HUB.BAS] else
F1_000737 equ $ ; in [EKLA_HUB.BAS] Set PORTA.4
    bsf LATA,4,0
F1_000738 equ $ ; in [EKLA_HUB.BAS] Set PORTB.2
    bsf LATB,2,0
F1_000739 equ $ ; in [EKLA_HUB.BAS] Set PowerOn
    bsf CC66,0,0
F1_000740 equ $ ; in [EKLA_HUB.BAS] Set CC69
    bsf _B__VR1,2,0
F1_000741 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__199
    bra _lbl__192
_lbl__196
F1_000742 equ $ ; in [EKLA_HUB.BAS] Case 67
    movlw 67
    subwf Ctrl,W,0
    bnz _lbl__201
F1_000744 equ $ ; in [EKLA_HUB.BAS] CC67 = value
    movff value,CC67
F1_000745 equ $ ; in [EKLA_HUB.BAS] Select CC67
F1_000746 equ $ ; in [EKLA_HUB.BAS] Case 0
    movf CC67,F,0
    bnz _lbl__203
F1_000747 equ $ ; in [EKLA_HUB.BAS] Period = Period_default
    movlw 231
    movwf PeriodH,0
    movlw 152
    movwf Period,0
    bra _lbl__202
_lbl__203
F1_000748 equ $ ; in [EKLA_HUB.BAS] Case 1
    movlw 1
    subwf CC67,W,0
    bnz _lbl__206
F1_000749 equ $ ; in [EKLA_HUB.BAS] Period = Period10
    movlw 207
    movwf PeriodH,0
    movlw 47
    movwf Period,0
    bra _lbl__202
_lbl__206
F1_000750 equ $ ; in [EKLA_HUB.BAS] Case 2
    movlw 2
    subwf CC67,W,0
    bnz _lbl__208
F1_000751 equ $ ; in [EKLA_HUB.BAS] Period = Period5
    movlw 231
    movwf PeriodH,0
    movlw 152
    movwf Period,0
    bra _lbl__202
_lbl__208
F1_000752 equ $ ; in [EKLA_HUB.BAS] Case 3
    movlw 3
    subwf CC67,W,0
    bnz _lbl__210
F1_000753 equ $ ; in [EKLA_HUB.BAS] Period = Period25
    movlw 243
    movwf PeriodH,0
    movlw 204
    movwf Period,0
    bra _lbl__202
_lbl__210
F1_000754 equ $ ; in [EKLA_HUB.BAS] Case 4
    movlw 4
    subwf CC67,W,0
    bnz _lbl__212
F1_000755 equ $ ; in [EKLA_HUB.BAS] Period = Period125
    movlw 249
    movwf PeriodH,0
    movlw 230
    movwf Period,0
F1_000756 equ $ ; in [EKLA_HUB.BAS] Case else
    bra _lbl__214
_lbl__212
F1_000758 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__214
_lbl__202
    bra _lbl__192
_lbl__201
F1_000759 equ $ ; in [EKLA_HUB.BAS] Case 68
    movlw 68
    subwf Ctrl,W,0
    bnz _lbl__216
F1_000760 equ $ ; in [EKLA_HUB.BAS] CC68 = value
    movff value,CC68
F1_000761 equ $ ; in [EKLA_HUB.BAS] if Motspeed <> CC68 Then
    movf Motspeed,W,0
    subwf CC68,W,0
    bz _lbl__218
F1_000762 equ $ ; in [EKLA_HUB.BAS] Motspeed = CC68
    movff CC68,Motspeed
F1_000763 equ $ ; in [EKLA_HUB.BAS] MotorCtrl ()
    rcall MotorCtrl
F1_000764 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__218
    bra _lbl__192
_lbl__216
F1_000765 equ $ ; in [EKLA_HUB.BAS] Case 69
    movlw 69
    subwf Ctrl,W,0
    bnz _lbl__220
F1_000766 equ $ ; in [EKLA_HUB.BAS] if value > 0 Then
    movf value,F,0
    bz _lbl__222
F1_000767 equ $ ; in [EKLA_HUB.BAS] CC69 = True
    bsf _B__VR1,2,0
F1_000768 equ $ ; in [EKLA_HUB.BAS] Clear LiTog
    bcf _B__VR1,1,0
F1_000769 equ $ ; in [EKLA_HUB.BAS] Set CC69
    bsf _B__VR1,2,0
    bra _lbl__223
_lbl__222
F1_000770 equ $ ; in [EKLA_HUB.BAS] else
F1_000771 equ $ ; in [EKLA_HUB.BAS] Clear CC69
    bcf _B__VR1,2,0
F1_000772 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
F1_000773 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
F1_000774 equ $ ; in [EKLA_HUB.BAS] endif
_lbl__223
    bra _lbl__192
_lbl__220
F1_000775 equ $ ; in [EKLA_HUB.BAS] Case 123
    movlw 123
    subwf Ctrl,W,0
    bnz _lbl__225
F1_000777 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
F1_000778 equ $ ; in [EKLA_HUB.BAS] HPWM 1, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
F1_000779 equ $ ; in [EKLA_HUB.BAS] HPWM 2, 0, fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
F1_000780 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
F1_000781 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
F1_000782 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
F1_000783 equ $ ; in [EKLA_HUB.BAS] EndSelect
_lbl__225
_lbl__192
F1_000784 equ $ ; in [EKLA_HUB.BAS] Set Ctrl
    setf Ctrl,0
F1_000785 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000809 equ $ ; in [EKLA_HUB.BAS] Proc Dur_Lookup ()
Dur_Lookup
F1_000811 equ $ ; in [EKLA_HUB.BAS] Set Dur5[0]
    movlb 1
    setf Dur5#0H,1
    setf Dur5#0,1
F1_000812 equ $ ; in [EKLA_HUB.BAS] Dur5[127] =  17218
    movlb 2
    movlw 67
    movwf Dur5#127H,1
    movlw 66
    movwf Dur5#127,1
F1_000813 equ $ ; in [EKLA_HUB.BAS] J = Dur5[127] / 127
    movff Dur5#127,PBS_VAR0
    movff Dur5#127H,PBS_VAR0H
    clrf PP_BARGHHH,0
    clrf PP_BARGHH,0
    movlw 126
    movwf PP_BARGH,0
    movlw 133
    movwf PP_BARG,0
    movff PBS_VAR0H,PP_AARGH
    movff PBS_VAR0,PP_AARG
    call _Uns_Int16_ToFl32
    call __fpdiv_32__
    movff PP_AARG,_J
    movff PP_AARGH,_JH
    movff PP_AARGHH,_JHH
    movff PP_AARGHHH,_JHHH
F1_000814 equ $ ; in [EKLA_HUB.BAS] For I = 1 To 127
    movlw 1
    movwf _I,0
_frlb__226
    movlb 0
    movlw 128
    subwf _I,W,0
    bc _nxlb__227
F1_000815 equ $ ; in [EKLA_HUB.BAS] Dur5[I] = Dur5[0] - (J * I)
    movff Dur5#0,PBS_VAR1
    movff Dur5#0H,PBS_VAR1H
    movf _I,W,0
    call _Uns_Int08_ToFl32
    movff _J,PP_BARG
    movff _JH,PP_BARGH
    movff _JHH,PP_BARGHH
    movff _JHHH,PP_BARGHHH
    call __fpmult_32__
    movff PP_AARG,PP7
    movff PP_AARGH,PP7H
    movff PP_AARGHH,PP7HH
    movff PP_AARGHHH,PP7HHH
    movff PBS_VAR1,PP_AARG
    movff PBS_VAR1H,PP_AARGH
    call _Uns_Int16_ToFl32
    movff PP7,PP_BARG
    movff PP7H,PP_BARGH
    movff PP7HH,PP_BARGHH
    movff PP7HHH,PP_BARGHHH
    call __fpsub_32__
    call _Fl32_To_Int32
    movwf PBS_VAR0,0
    movff PP_AARGH,PBS_VAR0H
    lfsr 0,Dur5
    bcf STATUS,0,0
    rlcf _I,W,0
    addwf FSR0L,F,0
    movlw 0
    addwfc FSR0H,F,0
    movff PBS_VAR0,POSTINC0
    movff PBS_VAR0H,INDF0
_ctlb__228
F1_000816 equ $ ; in [EKLA_HUB.BAS] Next I
    incf _I,F,0
    bnc _frlb__226
_nxlb__227
F1_000817 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000819 equ $ ; in [EKLA_HUB.BAS] Proc Motor_PWM_Lookup ()
Motor_PWM_Lookup
F1_000827 equ $ ; in [EKLA_HUB.BAS] Ton[0] = 0
    movlb 2
    clrf Ton#0,1
F1_000828 equ $ ; in [EKLA_HUB.BAS] Toff[0] = 100
    movlw 100
    movwf Toff#0,1
F1_000829 equ $ ; in [EKLA_HUB.BAS] For I  = 1 To 99 Step 1
    movlw 1
    movwf _I,0
_frlb__229
    movlb 0
    movlw 100
    subwf _I,W,0
    bc _nxlb__230
F1_000830 equ $ ; in [EKLA_HUB.BAS] Ton[I] = I
    lfsr 0,Ton
    movf _I,W,0
    movff _I,PLUSW0
F1_000831 equ $ ; in [EKLA_HUB.BAS] Toff[I] = 100 - I
    movf _I,W,0
    sublw 100
    movwf PBS_VAR0,0
    lfsr 0,Toff
    movf _I,W,0
    movff PBS_VAR0,PLUSW0
_ctlb__231
F1_000832 equ $ ; in [EKLA_HUB.BAS] Next I
    incf _I,F,0
    bnc _frlb__229
_nxlb__230
F1_000833 equ $ ; in [EKLA_HUB.BAS] For I = 100 To 127
    movlw 100
    movwf _I,0
_frlb__232
    movlw 128
    subwf _I,W,0
    bc _nxlb__233
F1_000834 equ $ ; in [EKLA_HUB.BAS] Ton[I] = 100
    movlw 100
    movwf PRODL,0
    lfsr 0,Ton
    movf _I,W,0
    movff PRODL,PLUSW0
F1_000835 equ $ ; in [EKLA_HUB.BAS] Toff[I] = 0
    clrf PRODL,0
    lfsr 0,Toff
    movf _I,W,0
    movff PRODL,PLUSW0
_ctlb__234
F1_000836 equ $ ; in [EKLA_HUB.BAS] Next I
    incf _I,F,0
    bnc _frlb__232
_nxlb__233
F1_000837 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_000788 equ $ ; in [EKLA_HUB.BAS] Proc PowerDown ()
PowerDown
F1_000789 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.4
    bcf LATA,4,0
F1_000790 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.3
    bcf LATA,3,0
F1_000791 equ $ ; in [EKLA_HUB.BAS] Clear PowerOn
    bcf CC66,0,0
F1_000792 equ $ ; in [EKLA_HUB.BAS] Clear MotorOn
    bcf MotorFlags,0,0
F1_000793 equ $ ; in [EKLA_HUB.BAS] Set TimVals
    lfsr 0,TimVals
    movlw 4
_pblb__235
    setf POSTINC0,0
    decfsz WREG,F,0
    bra _pblb__235
F1_000794 equ $ ; in [EKLA_HUB.BAS] Clear time
    clrf CntHHH,0
    clrf CntHH,0
    clrf CntH,0
    clrf Cnt,0
F1_000795 equ $ ; in [EKLA_HUB.BAS] Clear NrNotes
    bcf _B__VR1,0,0
F1_000796 equ $ ; in [EKLA_HUB.BAS] Clear PORTB.2
    bcf LATB,2,0
F1_000797 equ $ ; in [EKLA_HUB.BAS] Clear PORTB.1
    bcf LATB,1,0
F1_000798 equ $ ; in [EKLA_HUB.BAS] Clear PORTA.5
    bcf LATA,5,0
F1_000799 equ $ ; in [EKLA_HUB.BAS] Clear PORTC.0
    bcf LATC,0,0
F1_000801 equ $ ; in [EKLA_HUB.BAS] HPWM 2,0,fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 2
    call __hpwm_
F1_000802 equ $ ; in [EKLA_HUB.BAS] HPWM 1,0,fPwm
    clrf GEN,0
    movlw 82
    movwf PP1H,0
    movlw 8
    movwf PP1,0
    movlw 1
    call __hpwm_
F1_000803 equ $ ; in [EKLA_HUB.BAS] Clear T3CON.0
    bcf T3CON,0,0
F1_000804 equ $ ; in [EKLA_HUB.BAS] Clear PIE2.1
    bcf PIE2,1,0
F1_000805 equ $ ; in [EKLA_HUB.BAS] Clear MotWait
    bcf MotorFlags,1,0
F1_000806 equ $ ; in [EKLA_HUB.BAS] idx = SortTimers ()
    rcall SortTimers
    movff SortTimersResult,idx
F1_000807 equ $ ; in [EKLA_HUB.BAS] EndProc
    return 0 ; EndProc
;---------------------------------------------
F1_EOF equ $ ; EKLA_HUB.BAS
__eof
;---------------------------------------------
; CONFIG FUSES
config DEBUG = off
config XINST = off
config STVREN = off
config FCMEN = off
config OSC = HSPLL
config IESO = off
config WDT = off
config WDTPS = 128
config BOREN = SBORDIS
config BORV = 2
config MCLRE = on
config LPT1OSC = on
config PBADEN = off
config CCP2MX = PORTC
config LVP = off
config CP0 = off
config CP1 = off
config CPB = off
config CPD = off
config WRT0 = off
config WRT1 = off
config WRTB = off
config WRTC = off
config WRTD = off
config EBTR0 = off
config EBTR1 = off
config EBTRB = off
config PWRT = on
    end
