;---------------------------------------------------------- ; Code Produced by the Proton 3.5.0.6 ; Copyright Rosetta Technologies/Crownhill Associates Ltd ; Written by Les Johnson. June 2010 ;---------------------------------------------------------- ; #DEFINE CONFIG_REQ 1 #DEFINE DEBUG@REQ 1 LIST P = 18F2525, F = INHX32, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255, T=ON 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_SCL_PORT = TRISC _I2C_SCL_PIN = 3 _I2C_SDA_PORT = TRISC _I2C_SDA_PIN = 4 RA0=0 RA1=1 RA2=2 RA3=3 RA4=4 RA5=5 RA6=6 RA7=7 T0CKI=4 AN4=5 SS=5 NOT_SS=5 LVDIN=5 HLVDIN=5 RB0=0 RB1=1 RB2=2 RB3=3 RB4=4 RB5=5 RB6=6 RB7=7 INT0=0 INT1=1 INT2=2 CCP2_PORTB=3 KBI0=4 KBI1=5 KBI2=6 KBI3=7 AN12=0 AN10=1 AN8=2 AN9=3 AN11=4 PGM=5 PGC=6 PGD=7 RC0=0 RC1=1 RC2=2 RC3=3 RC4=4 RC5=5 RC6=6 RC7=7 T1OSO=0 T1OSI=1 CCP1=2 SCK=3 SDI=4 SDO=5 TX=6 RX=7 T13CKI=0 CCP2_PORTC=1 SCL=3 SDA=4 CK=6 T1CKI=0 RE3=3 MCLR=3 NOT_MCLR=3 VPP=3 LATA0=0 LATA1=1 LATA2=2 LATA3=3 LATA4=4 LATA5=5 LATA6=6 LATA7=7 LATB0=0 LATB1=1 LATB2=2 LATB3=3 LATB4=4 LATB5=5 LATB6=6 LATB7=7 LATC0=0 LATC1=1 LATC2=2 LATC3=3 LATC4=4 LATC5=5 LATC6=6 LATC7=7 TRISA0=0 TRISA1=1 TRISA2=2 TRISA3=3 TRISA4=4 TRISA5=5 TRISA6=6 TRISA7=7 TRISB0=0 TRISB1=1 TRISB2=2 TRISB3=3 TRISB4=4 TRISB5=5 TRISB6=6 TRISB7=7 TRISC0=0 TRISC1=1 TRISC2=2 TRISC3=3 TRISC4=4 TRISC5=5 TRISC6=6 TRISC7=7 TUN0=0 TUN1=1 TUN2=2 TUN3=3 TUN4=4 PLLEN=6 INTSRC=7 TMR1IE=0 TMR2IE=1 CCP1IE=2 SSPIE=3 TXIE=4 RCIE=5 ADIE=6 TMR1IF=0 TMR2IF=1 CCP1IF=2 SSPIF=3 TXIF=4 PP_TXIF=4 RCIF=5 PP_RCIF=5 ADIF=6 TMR1IP=0 TMR2IP=1 CCP1IP=2 SSPIP=3 TXIP=4 RCIP=5 ADIP=6 CCP2IE=0 TMR3IE=1 LVDIE=2 BCLIE=3 EEIE=4 CMIE=6 OSCFIE=7 HLVDIE=2 CCP2IF=0 TMR3IF=1 LVDIF=2 BCLIF=3 EEIF=4 CMIF=6 OSCFIF=7 HLVDIF=2 CCP2IP=0 TMR3IP=1 LVDIP=2 BCLIP=3 EEIP=4 CMIP=6 OSCFIP=7 HLVDIP=2 RD=0 PP_RD=0 WR=1 PP_WR=1 WREN=2 PP_WREN=2 WRERR=3 FREE=4 CFGS=6 EEPGD=7 PP_EEPGD=7 RX9D=0 OERR=1 PP_OERR=1 FERR=2 ADEN=3 CREN=4 PP_CREN=4 SREN=5 RX9=6 SPEN=7 ADDEN=3 TX9D=0 TRMT=1 BRGH=2 SENDB=3 SYNC=4 TXEN=5 TX9=6 CSRC=7 TMR3ON=0 TMR3CS=1 T3SYNC=2 T3CCP1=3 T3CKPS0=4 T3CKPS1=5 T3CCP2=6 RD16=7 NOT_T3SYNC=2 CM0=0 CM1=1 CM2=2 CIS=3 C1INV=4 C2INV=5 C1OUT=6 C2OUT=7 CVR0=0 CVR1=1 CVR2=2 CVR3=3 CVRSS=4 CVRR=5 CVROE=6 CVREN=7 ABDEN=0 WUE=1 BRG16=3 SCKP=4 RCIDL=6 ABDOVF=7 TXCKP=4 RXDTP=5 RCMT=6 CCP2M0=0 CCP2M1=1 CCP2M2=2 CCP2M3=3 CCP2Y=4 CCP2X=5 DC2B0=4 DC2B1=5 CCP1M0=0 CCP1M1=1 CCP1M2=2 CCP1M3=3 CCP1Y=4 CCP1X=5 DC1B0=4 DC1B1=5 ADCS0=0 ADCS1=1 ADCS2=2 ACQT0=3 ACQT1=4 ACQT2=5 ADFM=7 PCFG0=0 PCFG1=1 PCFG2=2 PCFG3=3 VCFG0=4 VCFG1=5 ADON=0 PP_ADON=0 GO=1 CHS0=2 CHS1=3 CHS2=4 CHS3=5 DONE=1 NOT_DONE=1 GO_DONE=1 PP_GO_DONE=1 SEN=0 PP_SEN=0 RSEN=1 PP_RSEN=1 PEN=2 PP_PEN=2 RCEN=3 PP_RCEN=3 ACKEN=4 PP_ACKEN=4 ACKDT=5 PP_ACKDT=5 ACKSTAT=6 GCEN=7 SSPM0=0 SSPM1=1 SSPM2=2 SSPM3=3 CKP=4 SSPEN=5 SSPOV=6 WCOL=7 BF=0 UA=1 R=2 S=3 P=4 D=5 CKE=6 SMP=7 NOT_W=2 NOT_A=5 R_W=2 PP_R_W=2 D_A=5 NOT_WRITE=2 NOT_ADDRESS=5 T2CKPS0=0 PP_T2CKPS0=0 T2CKPS1=1 PP_T2CKPS1=1 TMR2ON=2 PP_TMR2ON=2 T2OUTPS0=3 T2OUTPS1=4 T2OUTPS2=5 T2OUTPS3=6 TOUTPS0=3 TOUTPS1=4 TOUTPS2=5 TOUTPS3=6 TMR1ON=0 TMR1CS=1 T1SYNC=2 T1OSCEN=3 T1CKPS0=4 T1CKPS1=5 T1RUN=6 NOT_T1SYNC=2 BOR=0 POR=1 PD=2 TO=3 RI=4 SBOREN=6 IPEN=7 NOT_BOR=0 NOT_POR=1 NOT_PD=2 NOT_TO=3 NOT_RI=4 SWDTEN=0 SWDTE=0 LVDL0=0 LVDL1=1 LVDL2=2 LVDL3=3 LVDEN=4 IRVST=5 LVV0=0 LVV1=1 LVV2=2 LVV3=3 BGST=5 HLVDL0=0 HLVDL1=1 HLVDL2=2 HLVDL3=3 HLVDEN=4 VDIRMAG=7 IVRST=5 SCS0=0 SCS1=1 IOFS=2 OSTS=3 IRCF0=4 IRCF1=5 IRCF2=6 IDLEN=7 FLTS=2 T0PS0=0 T0PS1=1 T0PS2=2 PSA=3 T0SE=4 T0CS=5 T016BIT=6 TMR0ON=7 T08BIT=6 C=0 DC=1 Z=2 OV=3 N=4 INT1F=0 INT2F=1 INT1E=3 INT2E=4 INT1P=6 INT2P=7 INT1IF=0 INT2IF=1 INT1IE=3 INT2IE=4 INT1IP=6 INT2IP=7 RBIP=0 TMR0IP=2 INTEDG2=4 INTEDG1=5 INTEDG0=6 RBPU=7 NOT_RBPU=7 RBIF=0 INT0F=1 TMR0IF=2 RBIE=3 INT0E=4 TMR0IE=5 PEIE=6 GIE=7 INT0IF=1 T0IF=2 INT0IE=4 T0IE=5 GIEL=6 GIEH=7 STKPTR0=0 STKPTR1=1 STKPTR2=2 STKPTR3=3 STKPTR4=4 STKUNF=6 STKOVF=7 SP0=0 SP1=1 SP2=2 SP3=3 SP4=4 STKFUL=7 __MAXRAM 0X0FFF __BADRAM 0X0F83 __BADRAM 0X0F85-0X0F88 __BADRAM 0X0F8C-0X0F91 __BADRAM 0X0F95-0X0F9A __BADRAM 0X0F9C __BADRAM 0X0FA3-0X0FA5 __BADRAM 0X0FB6-0X0FB7 __BADRAM 0X0FB9 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 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 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 EBTRB_ON_7 EQU 0XBF EBTRB_OFF_7 EQU 0XFF DEVID1 EQU 0X3FFFFE DEVID2 EQU 0X3FFFFF IDLOC0 EQU 0X200000 __IDLOC0 EQU 0X200000 IDLOC1 EQU 0X200001 __IDLOC1 EQU 0X200001 IDLOC2 EQU 0X200002 __IDLOC2 EQU 0X200002 IDLOC3 EQU 0X200003 __IDLOC3 EQU 0X200003 IDLOC4 EQU 0X200004 __IDLOC4 EQU 0X200004 IDLOC5 EQU 0X200005 __IDLOC5 EQU 0X200005 IDLOC6 EQU 0X200006 __IDLOC6 EQU 0X200006 IDLOC7 EQU 0X200007 __IDLOC7 EQU 0X200007 #DEFINE __18F2525 1 #DEFINE XTAL 40 #DEFINE _CORE 16 #DEFINE _MAXRAM 3687 #DEFINE _RAM_END 3968 #DEFINE _MAXMEM 49152 #DEFINE _ADC 10 #DEFINE _ADC_RES 10 #DEFINE _EEPROM 1024 #DEFINE RAM_BANKS 15 #DEFINE _USART 1 #DEFINE _USB 0 #DEFINE _USB#RAM_START 0 #DEFINE _FLASH 1 #DEFINE _CWRITE_BLOCK 64 #DEFINE BANK0_START 128 #DEFINE BANK0_END 255 #DEFINE BANK1_START 256 #DEFINE BANK1_END 511 #DEFINE BANK2_START 512 #DEFINE BANK2_END 767 #DEFINE BANK3_START 768 #DEFINE BANK3_END 1023 #DEFINE BANK4_START 1024 #DEFINE BANK4_END 1279 #DEFINE BANK5_START 1280 #DEFINE BANK5_END 1535 #DEFINE BANK6_START 1536 #DEFINE BANK6_END 1791 #DEFINE BANK7_START 1792 #DEFINE BANK7_END 2047 #DEFINE BANK8_START 2048 #DEFINE BANK8_END 2303 #DEFINE BANK9_START 2304 #DEFINE BANK9_END 2559 #DEFINE BANK10_START 2560 #DEFINE BANK10_END 2815 #DEFINE BANK11_START 2816 #DEFINE BANK11_END 3071 #DEFINE BANK12_START 3072 #DEFINE BANK12_END 3327 #DEFINE BANK13_START 3328 #DEFINE BANK13_END 3583 #DEFINE BANK14_START 3584 #DEFINE BANK14_END 3839 #DEFINE BANKA_START 0 #DEFINE BANKA_END 127 #DEFINE _SYSTEM_VARIABLE_COUNT 64 #DEFINE LCD#TYPE 0 #DEFINE __HIGH_INTERRUPTS_ENABLED 1 #DEFINE _HIGH_INT_SUB_ADDRESS 3688 #DEFINE _HIGH_INT_SUB_AMOUNT 13 #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 #DEFINE _OPENTIMER0#REQ 1 GEN = 0 GENH = 1 GENL = 2 PBP#VAR0 = 3 PBP#VAR0H = 4 PP0 = 5 PP0H = 6 PP1 = 7 PP1H = 8 PP2 = 9 PP2H = 10 PP3 = 11 PP3H = 12 PP4 = 13 PP4H = 14 PP7 = 15 PP7H = 16 BYTEIN = 17 _I = 18 STATUSBYTE = 19 NOTEUIT = 20 RELEASE = 21 NOTEAAN = 22 VELO = 23 NOTEPRES = 24 PRES = 25 CTRL = 26 VALUE = 27 PROG = 28 AFT = 29 PBLSB = 30 PBMSB = 31 VELTIM = 32 VELTIMH = 33 VELTIMHH = 34 VELTIMHHH = 35 VELFLAGS = 36 VELFLAGSH = 37 CC66 = 38 ST = 39 B1 = 40 B2 = 41 CNT = 42 CNTH = 43 CNTHH = 44 CNTHHH = 45 MOTPOS = 46 MINPOS = 47 MAXPOS = 48 CENTERPOS = 49 SOLLPOS = 50 PIRPOS = 51 CC90 = 52 MOTORPERIOD = 53 MOTORPERIODH = 54 LEFTPIRCNT = 55 RIGHTPIRCNT = 56 TMP = 57 TMPH = 58 PERCLOCK = 59 USART_FSR1_SAVE = 60 USART_FSR1_SAVEH = 61 INDEXIN = 62 INDEXOUT = 63 TASK_RSI = 64 TASK_RSIH = 65 VARIABLE TASK_RSI#0=64,TASK_RSI#0H=65,TASK_RSI#1=66,TASK_RSI#1H=67 VARIABLE TASK_RSI#2=68,TASK_RSI#2H=69,TASK_RSI#3=70,TASK_RSI#3H=71 VARIABLE TASK_RSI#4=72,TASK_RSI#4H=73,TASK_RSI#5=74,TASK_RSI#5H=75 VARIABLE TASK_RSI#6=76,TASK_RSI#6H=77,TASK_RSI#7=78,TASK_RSI#7H=79 VELMSB = 80 VELMSBH = 81 VARIABLE VELMSB#0=80,VELMSB#0H=81,VELMSB#1=82,VELMSB#1H=83 VARIABLE VELMSB#2=84,VELMSB#2H=85,VELMSB#3=86,VELMSB#3H=87 VARIABLE VELMSB#4=88,VELMSB#4H=89,VELMSB#5=90,VELMSB#5H=91 VARIABLE VELMSB#6=92,VELMSB#6H=93,VELMSB#7=94,VELMSB#7H=95 VELLSB = 96 VELLSBH = 97 VARIABLE VELLSB#0=96,VELLSB#0H=97,VELLSB#1=98,VELLSB#1H=99 VARIABLE VELLSB#2=100,VELLSB#2H=101,VELLSB#3=102,VELLSB#3H=103 VARIABLE VELLSB#4=104,VELLSB#4H=105,VELLSB#5=106,VELLSB#5H=107 VARIABLE VELLSB#6=108,VELLSB#6H=109,VELLSB#7=110,VELLSB#7H=111 RINGBUFFER = 3712 VARIABLE RINGBUFFER#0=3712,RINGBUFFER#1=3713,RINGBUFFER#2=3714,RINGBUFFER#3=3715 VARIABLE RINGBUFFER#4=3716,RINGBUFFER#5=3717,RINGBUFFER#6=3718,RINGBUFFER#7=3719 VARIABLE RINGBUFFER#8=3720,RINGBUFFER#9=3721,RINGBUFFER#10=3722,RINGBUFFER#11=3723 VARIABLE RINGBUFFER#12=3724,RINGBUFFER#13=3725,RINGBUFFER#14=3726,RINGBUFFER#15=3727 VARIABLE RINGBUFFER#16=3728,RINGBUFFER#17=3729,RINGBUFFER#18=3730,RINGBUFFER#19=3731 VARIABLE RINGBUFFER#20=3732,RINGBUFFER#21=3733,RINGBUFFER#22=3734,RINGBUFFER#23=3735 VARIABLE RINGBUFFER#24=3736,RINGBUFFER#25=3737,RINGBUFFER#26=3738,RINGBUFFER#27=3739 VARIABLE RINGBUFFER#28=3740,RINGBUFFER#29=3741,RINGBUFFER#30=3742,RINGBUFFER#31=3743 VARIABLE RINGBUFFER#32=3744,RINGBUFFER#33=3745,RINGBUFFER#34=3746,RINGBUFFER#35=3747 VARIABLE RINGBUFFER#36=3748,RINGBUFFER#37=3749,RINGBUFFER#38=3750,RINGBUFFER#39=3751 VARIABLE RINGBUFFER#40=3752,RINGBUFFER#41=3753,RINGBUFFER#42=3754,RINGBUFFER#43=3755 VARIABLE RINGBUFFER#44=3756,RINGBUFFER#45=3757,RINGBUFFER#46=3758,RINGBUFFER#47=3759 VARIABLE RINGBUFFER#48=3760,RINGBUFFER#49=3761,RINGBUFFER#50=3762,RINGBUFFER#51=3763 VARIABLE RINGBUFFER#52=3764,RINGBUFFER#53=3765,RINGBUFFER#54=3766,RINGBUFFER#55=3767 VARIABLE RINGBUFFER#56=3768,RINGBUFFER#57=3769,RINGBUFFER#58=3770,RINGBUFFER#59=3771 VARIABLE RINGBUFFER#60=3772,RINGBUFFER#61=3773,RINGBUFFER#62=3774,RINGBUFFER#63=3775 VARIABLE RINGBUFFER#64=3776,RINGBUFFER#65=3777,RINGBUFFER#66=3778,RINGBUFFER#67=3779 VARIABLE RINGBUFFER#68=3780,RINGBUFFER#69=3781,RINGBUFFER#70=3782,RINGBUFFER#71=3783 VARIABLE RINGBUFFER#72=3784,RINGBUFFER#73=3785,RINGBUFFER#74=3786,RINGBUFFER#75=3787 VARIABLE RINGBUFFER#76=3788,RINGBUFFER#77=3789,RINGBUFFER#78=3790,RINGBUFFER#79=3791 VARIABLE RINGBUFFER#80=3792,RINGBUFFER#81=3793,RINGBUFFER#82=3794,RINGBUFFER#83=3795 VARIABLE RINGBUFFER#84=3796,RINGBUFFER#85=3797,RINGBUFFER#86=3798,RINGBUFFER#87=3799 VARIABLE RINGBUFFER#88=3800,RINGBUFFER#89=3801,RINGBUFFER#90=3802,RINGBUFFER#91=3803 VARIABLE RINGBUFFER#92=3804,RINGBUFFER#93=3805,RINGBUFFER#94=3806,RINGBUFFER#95=3807 VARIABLE RINGBUFFER#96=3808,RINGBUFFER#97=3809,RINGBUFFER#98=3810,RINGBUFFER#99=3811 VARIABLE RINGBUFFER#100=3812,RINGBUFFER#101=3813,RINGBUFFER#102=3814,RINGBUFFER#103=3815 VARIABLE RINGBUFFER#104=3816,RINGBUFFER#105=3817,RINGBUFFER#106=3818,RINGBUFFER#107=3819 VARIABLE RINGBUFFER#108=3820,RINGBUFFER#109=3821,RINGBUFFER#110=3822,RINGBUFFER#111=3823 VARIABLE RINGBUFFER#112=3824,RINGBUFFER#113=3825,RINGBUFFER#114=3826,RINGBUFFER#115=3827 VARIABLE RINGBUFFER#116=3828,RINGBUFFER#117=3829,RINGBUFFER#118=3830,RINGBUFFER#119=3831 VARIABLE RINGBUFFER#120=3832,RINGBUFFER#121=3833,RINGBUFFER#122=3834,RINGBUFFER#123=3835 VARIABLE RINGBUFFER#124=3836,RINGBUFFER#125=3837,RINGBUFFER#126=3838,RINGBUFFER#127=3839 VARIABLE RINGBUFFER#128=3840,RINGBUFFER#129=3841,RINGBUFFER#130=3842,RINGBUFFER#131=3843 VARIABLE RINGBUFFER#132=3844,RINGBUFFER#133=3845,RINGBUFFER#134=3846,RINGBUFFER#135=3847 VARIABLE RINGBUFFER#136=3848,RINGBUFFER#137=3849,RINGBUFFER#138=3850,RINGBUFFER#139=3851 VARIABLE RINGBUFFER#140=3852,RINGBUFFER#141=3853,RINGBUFFER#142=3854,RINGBUFFER#143=3855 VARIABLE RINGBUFFER#144=3856,RINGBUFFER#145=3857,RINGBUFFER#146=3858,RINGBUFFER#147=3859 VARIABLE RINGBUFFER#148=3860,RINGBUFFER#149=3861,RINGBUFFER#150=3862,RINGBUFFER#151=3863 VARIABLE RINGBUFFER#152=3864,RINGBUFFER#153=3865,RINGBUFFER#154=3866,RINGBUFFER#155=3867 VARIABLE RINGBUFFER#156=3868,RINGBUFFER#157=3869,RINGBUFFER#158=3870,RINGBUFFER#159=3871 VARIABLE RINGBUFFER#160=3872,RINGBUFFER#161=3873,RINGBUFFER#162=3874,RINGBUFFER#163=3875 VARIABLE RINGBUFFER#164=3876,RINGBUFFER#165=3877,RINGBUFFER#166=3878,RINGBUFFER#167=3879 VARIABLE RINGBUFFER#168=3880,RINGBUFFER#169=3881,RINGBUFFER#170=3882,RINGBUFFER#171=3883 VARIABLE RINGBUFFER#172=3884,RINGBUFFER#173=3885,RINGBUFFER#174=3886,RINGBUFFER#175=3887 VARIABLE RINGBUFFER#176=3888,RINGBUFFER#177=3889,RINGBUFFER#178=3890,RINGBUFFER#179=3891 VARIABLE RINGBUFFER#180=3892,RINGBUFFER#181=3893,RINGBUFFER#182=3894,RINGBUFFER#183=3895 VARIABLE RINGBUFFER#184=3896,RINGBUFFER#185=3897,RINGBUFFER#186=3898,RINGBUFFER#187=3899 VARIABLE RINGBUFFER#188=3900,RINGBUFFER#189=3901,RINGBUFFER#190=3902,RINGBUFFER#191=3903 VARIABLE RINGBUFFER#192=3904,RINGBUFFER#193=3905,RINGBUFFER#194=3906,RINGBUFFER#195=3907 VARIABLE RINGBUFFER#196=3908,RINGBUFFER#197=3909,RINGBUFFER#198=3910,RINGBUFFER#199=3911 VARIABLE RINGBUFFER#200=3912,RINGBUFFER#201=3913,RINGBUFFER#202=3914,RINGBUFFER#203=3915 VARIABLE RINGBUFFER#204=3916,RINGBUFFER#205=3917,RINGBUFFER#206=3918,RINGBUFFER#207=3919 VARIABLE RINGBUFFER#208=3920,RINGBUFFER#209=3921,RINGBUFFER#210=3922,RINGBUFFER#211=3923 VARIABLE RINGBUFFER#212=3924,RINGBUFFER#213=3925,RINGBUFFER#214=3926,RINGBUFFER#215=3927 VARIABLE RINGBUFFER#216=3928,RINGBUFFER#217=3929,RINGBUFFER#218=3930,RINGBUFFER#219=3931 VARIABLE RINGBUFFER#220=3932,RINGBUFFER#221=3933,RINGBUFFER#222=3934,RINGBUFFER#223=3935 VARIABLE RINGBUFFER#224=3936,RINGBUFFER#225=3937,RINGBUFFER#226=3938,RINGBUFFER#227=3939 VARIABLE RINGBUFFER#228=3940,RINGBUFFER#229=3941,RINGBUFFER#230=3942,RINGBUFFER#231=3943 VARIABLE RINGBUFFER#232=3944,RINGBUFFER#233=3945,RINGBUFFER#234=3946,RINGBUFFER#235=3947 VARIABLE RINGBUFFER#236=3948,RINGBUFFER#237=3949,RINGBUFFER#238=3950,RINGBUFFER#239=3951 VARIABLE RINGBUFFER#240=3952,RINGBUFFER#241=3953,RINGBUFFER#242=3954,RINGBUFFER#243=3955 VARIABLE RINGBUFFER#244=3956,RINGBUFFER#245=3957,RINGBUFFER#246=3958,RINGBUFFER#247=3959 VARIABLE RINGBUFFER#248=3960,RINGBUFFER#249=3961,RINGBUFFER#250=3962,RINGBUFFER#251=3963 VARIABLE RINGBUFFER#252=3964,RINGBUFFER#253=3965,RINGBUFFER#254=3966,RINGBUFFER#255=3967 #DEFINE CNTL TMR0L #DEFINE CNTLH TMR0LH #DEFINE STBIT BYTEIN,7 #DEFINE VELFLAGS0 VELFLAGS #DEFINE VELFLAGS1 VELFLAGSH #DEFINE PIRCLOCKBIT PERCLOCK,0 #DEFINE PIRMOVEBIT PERCLOCK,1 #DEFINE FSR0SAVEINT PP0 #DEFINE FSR0SAVEINTH PP0H #DEFINE USART_FSR0_SAVE FSR0SAVEINT #DEFINE USART_FSR0_SAVEH FSR0SAVEINTH #DEFINE USART_FSR0 FSR0L #DEFINE USART_FSR0H FSR0LH #DEFINE USART_FSR1 FSR1L #DEFINE USART_FSR1H FSR1LH #DEFINE _WTIMER1M TMR1L #DEFINE _WTIMER1MH TMR1LH #DEFINE _WTIMER3M TMR3L #DEFINE _WTIMER3MH TMR3LH #DEFINE __OPTIMISER_LEVEL 3 #DEFINE __XTAL 40 #DEFINE MIDICHANNEL 13 #DEFINE NOTEOFF_STATUS 141 #DEFINE NOTEON_STATUS 157 #DEFINE KEYPRES_STATUS 173 #DEFINE CONTROL_STATUS 189 #DEFINE PROGCHANGE_STATUS 205 #DEFINE AFTERTOUCH_STATUS 221 #DEFINE PITCHBEND_STATUS 237 #DEFINE NRTASKS 8 #DEFINE __HSERIAL_BAUD 31250 #DEFINE __HSERIAL_TXSTA 36 #DEFINE __START_OF_RESERVE_RAM 3712 #DEFINE __RESERVE_RAM_SIZE 256 HSERIAL_SPBRG = 79 HSERIAL_TXSTA = 36 HSERIAL_RCSTA = 144 HSERIAL_BAUD = 31250 PROTON#CODE#START ORG 0X000000 GOTO PROTON#MAIN#START ORG 0X000008 BRA HIGH_PRIOR_INTERRUPT HRSIN#REQ = 1 HRSINX#REQ = 1 HRSIN#CLROERR = 1 H@PWM MOVWF 14 MOVLW 150 MOVWF 5 MOVLW 152 MOVWF 6 RCALL D@VD BTFSC 4056,2 BCF 4042,PP_T2CKPS0 BTFSS 4056,2 BSF 4042,PP_T2CKPS0 ADDLW 252 BTFSS 4056,0 BCF 4042,PP_T2CKPS1 BTFSC 4056,0 BSF 4042,PP_T2CKPS1 MOVLW 128 MOVWF 5 MOVLW 150 MOVWF 6 MOVLW 152 MOVWF 9 CLRF 10 BTFSC 4042,PP_T2CKPS0 RCALL HPW@2S BTFSC 4042,PP_T2CKPS1 RCALL HPW@2S RCALL D@VD2 DECF 5,W MOVWF 4043 MOVFF 5,7 MOVFF 6,8 MOVF 0,W MOVWF 11 MOVWF 12 INCFSZ 0,W CLRF 12 RCALL M@PY MOVF 10,W DECFSZ 14,F BRA HPW@SK1 MOVWF 4030 MOVLW 12 MOVWF 4029 BTFSC 9,7 BSF 4029,5 BTFSC 9,6 BSF 4029,4 BCF TRISB,2 HPWM@FIN BSF 4042,PP_TMR2ON RETURN HPW@SK1 MOVWF 4027 MOVLW 12 MOVWF 4026 BTFSC 9,7 BSF 4026,5 BTFSC 9,6 BSF 4026,4 BCF TRISC,1 BRA HPWM@FIN HPW@2S RCALL HPW@2L HPW@2L BCF 4056,0 RRCF 9,F RRCF 6,F RRCF 5,F RETURN P@OUT MOVLW 15 MOVWF 4074 MOVFF 0,4073 COMF 1,W BSF 4073,4 INCF 4073,F ANDWF 4076,F MOVF 5,W IORWF 6,W BTFSC 4056,2 RETURN RCALL N@GT MOVFF 0,4073 MOVF 1,W XORWF 4079,F NOP BRA $ + 2 BRA $ + 2 INCF 5,F BTFSC 4056,2 INCFSZ 6,F BRA $ - 12 XORWF 4079,F RETURN DL@MS CLRF 8 DLY@W MOVWF 7 DLY@P MOVLW 255 ADDWF 7,F ADDWFC 8,F BRA $ + 2 BTFSS 4056,0 RETURN MOVLW 3 MOVWF 6 MOVLW 231 RCALL DLUS@W BRA DLY@P DL@US CLRF 6 DLUS@W ADDLW 254 MOVWF 5 CLRF 4072 SUBWFB 6,F BTFSS 4056,0 RETURN NOP DECF 5,F BRA $ + 2 BRA $ - 14 D@VD CLRF 10 CLRF 9 D@VD2 MOVLW 16 MOVWF 4083 DV@LP RLCF 6,W RLCF 9,F RLCF 10,F MOVF 7,W SUBWF 9,W MOVF 8,W SUBWFB 10,W BNC D@K MOVF 7,W SUBWF 9,F MOVF 8,W SUBWFB 10,F BSF 4056,0 D@K RLCF 5,F RLCF 6,F DECFSZ 4083,F BRA DV@LP MOVF 5,W RETURN M@PY MOVF 7,W MULWF 11 MOVFF 4083,9 MOVFF 4084,10 MOVF 8,W MULWF 11 MOVF 4083,W ADDWF 10,F MOVF 7,W MULWF 12 MOVF 4083,W ADDWF 10,F MOVF 9,W RETURN N@GT COMF 5,F COMF 6,F INFSNZ 5,F INCF 6,F RETURN PROTON#MAIN#START CLRF 4088 MOVLW 79 MOVWF 4015 MOVLW 36 MOVWF 4012 MOVLW 144 MOVWF 4011 MOVLB 0 F2_SOF EQU $ ; PUFF-EYES.PRP F2_EOF EQU $ ; PUFF-EYES.PRP F1_SOF EQU $ ; PUFF-EYES.BAS F3_SOF EQU $ ; 18F2525.INC F3_EOF EQU $ ; 18F2525.INC F4_SOF EQU $ ; MIDI_IRQ.INC F4_000045 EQU $ ; IN [MIDI_IRQ.INC] GOTO _OVER_IRQ_HANDLER BRA _OVER_IRQ_HANDLER HIGH_PRIOR_INTERRUPT F4_000056 EQU $ ; IN [MIDI_IRQ.INC] IF PIR1.5 = 1 THEN BTFSS PIR1,5 BRA BC@LL2 F4_000057 EQU $ ; IN [MIDI_IRQ.INC] MOVLW 6 MOVLW 6 F4_000058 EQU $ ; IN [MIDI_IRQ.INC] ANDWF RCSTA,W ANDWF RCSTA,W F4_000059 EQU $ ; IN [MIDI_IRQ.INC] BNZ _UART_ERROR BNZ _UART_ERROR F4_000060 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR1_SAVE = USART_FSR1 MOVFF FSR1L,USART_FSR1_SAVE MOVFF FSR1LH,USART_FSR1_SAVEH F4_000061 EQU $ ; IN [MIDI_IRQ.INC] INC INDEXIN INCF INDEXIN,F,0 F4_000065 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR1 = VARPTR RINGBUFFER LFSR 1,RINGBUFFER F4_000066 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR1 = USART_FSR1 + INDEXIN MOVF INDEXIN,W,0 ADDWF FSR1L,F,0 MOVLW 0 ADDWFC FSR1LH,F,0 F4_000067 EQU $ ; IN [MIDI_IRQ.INC] INDF1 = RCREG MOVFF RCREG,INDF1 F4_000068 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR1 = USART_FSR1_SAVE MOVFF USART_FSR1_SAVE,FSR1L MOVFF USART_FSR1_SAVEH,FSR1LH F4_000070 EQU $ ; IN [MIDI_IRQ.INC] RETFIE FAST RETFIE 1 _UART_ERROR F4_000072 EQU $ ; IN [MIDI_IRQ.INC] WREG = RCREG MOVF RCREG,W,0 F4_000073 EQU $ ; IN [MIDI_IRQ.INC] WREG = RCREG MOVF RCREG,W,0 F4_000074 EQU $ ; IN [MIDI_IRQ.INC] CLEAR RCSTA.4 BCF RCSTA,4,0 F4_000075 EQU $ ; IN [MIDI_IRQ.INC] SET RCSTA.4 BSF RCSTA,4,0 F4_000076 EQU $ ; IN [MIDI_IRQ.INC] RETFIE FAST RETFIE 1 BRA BC@LL3 BC@LL2 F4_000077 EQU $ ; IN [MIDI_IRQ.INC] ELSE _TIMER0_IRQ F4_000079 EQU $ ; IN [MIDI_IRQ.INC] IF INTCON.2 = 1 THEN BTFSS INTCON,2 BRA BC@LL5 F4_000080 EQU $ ; IN [MIDI_IRQ.INC] CLEAR INTCON.2 BCF INTCON,2,0 F4_000083 EQU $ ; IN [MIDI_IRQ.INC] IF VELFLAGS > 0 THEN INC CNT.HIGHWORD MOVF VELFLAGS,F,0 BNZ CP@LB2 MOVF VELFLAGSH,F,0 BZ BC@LL7 CP@LB2 INFSNZ CNTHH,F,0 INCF CNTHHH,F,0 BC@LL7 F4_000084 EQU $ ; IN [MIDI_IRQ.INC] IF VELFLAGS = 0 THEN CLEAR CNT.HIGHWORD MOVF VELFLAGSH,W,0 IORWF VELFLAGS,W,0 BNZ BC@LL9 CLRF CNTHH,0 CLRF CNTHHH,0 BC@LL9 F4_000087 EQU $ ; IN [MIDI_IRQ.INC] TOGGLE PORTB.5 BTG PORTB,5,0 BCF TRISB,5,0 F4_000088 EQU $ ; IN [MIDI_IRQ.INC] RETFIE FAST RETFIE 1 F4_000089 EQU $ ; IN [MIDI_IRQ.INC] ENDIF BC@LL5 F4_000090 EQU $ ; IN [MIDI_IRQ.INC] ENDIF BC@LL3 F4_000091 EQU $ ; IN [MIDI_IRQ.INC] RETFIE FAST RETFIE 1 HRSIN: F4_000096 EQU $ ; IN [MIDI_IRQ.INC] IF INDEXIN <> INDEXOUT THEN MOVF INDEXIN,W,0 SUBWF INDEXOUT,W,0 BZ BC@LL11 F4_000097 EQU $ ; IN [MIDI_IRQ.INC] INC INDEXOUT INCF INDEXOUT,F,0 F4_000101 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR0_SAVE = USART_FSR0 MOVFF FSR0L,FSR0SAVEINT MOVFF FSR0LH,FSR0SAVEINTH F4_000102 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR0 = VARPTR RINGBUFFER LFSR 0,RINGBUFFER F4_000103 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR0 = USART_FSR0 + INDEXOUT MOVF INDEXOUT,W,0 ADDWF FSR0L,F,0 MOVLW 0 ADDWFC FSR0LH,F,0 F4_000104 EQU $ ; IN [MIDI_IRQ.INC] WREG = INDF0 MOVF INDF0,W,0 F4_000105 EQU $ ; IN [MIDI_IRQ.INC] PP0 = WREG MOVWF PP0,0 F4_000106 EQU $ ; IN [MIDI_IRQ.INC] USART_FSR0 = USART_FSR0_SAVE MOVFF FSR0SAVEINT,FSR0L MOVFF FSR0SAVEINTH,FSR0LH F4_000107 EQU $ ; IN [MIDI_IRQ.INC] SET STATUS.0 BSF STATUS,0,0 F4_000108 EQU $ ; IN [MIDI_IRQ.INC] RET RETURN 0 BRA BC@LL12 BC@LL11 F4_000109 EQU $ ; IN [MIDI_IRQ.INC] ELSE F4_000110 EQU $ ; IN [MIDI_IRQ.INC] WREG = 255 SETF WREG,0 F4_000111 EQU $ ; IN [MIDI_IRQ.INC] PP0 = WREG MOVWF PP0,0 F4_000112 EQU $ ; IN [MIDI_IRQ.INC] BTFSS STATUS,C BTFSS STATUS,C F4_000113 EQU $ ; IN [MIDI_IRQ.INC] RET RETURN 0 F4_000114 EQU $ ; IN [MIDI_IRQ.INC] ENDIF BC@LL12 F4_000115 EQU $ ; IN [MIDI_IRQ.INC] RET RETURN 0 _INIT_USART F4_000161 EQU $ ; IN [MIDI_IRQ.INC] CLEAR INDEXIN CLRF INDEXIN,0 F4_000162 EQU $ ; IN [MIDI_IRQ.INC] CLEAR INDEXOUT CLRF INDEXOUT,0 F4_000163 EQU $ ; IN [MIDI_IRQ.INC] SET PIE1.5 BSF PIE1,5,0 F4_000167 EQU $ ; IN [MIDI_IRQ.INC] SET INTCON.7 BSF INTCON,7,0 F4_000168 EQU $ ; IN [MIDI_IRQ.INC] SET INTCON.6 BSF INTCON,6,0 F4_000170 EQU $ ; IN [MIDI_IRQ.INC] RETURN RETURN 0 _CLEAR_USART_BUFFER F4_000185 EQU $ ; IN [MIDI_IRQ.INC] PIE1.5 = 0 BCF PIE1,5,0 F4_000186 EQU $ ; IN [MIDI_IRQ.INC] CLEAR RINGBUFFER LFSR 0,RINGBUFFER MOVLW 0 CLRF POSTINC0,0 DECFSZ WREG,F,0 BRA $ - 4 F4_000187 EQU $ ; IN [MIDI_IRQ.INC] CLEAR INDEXIN CLRF INDEXIN,0 F4_000188 EQU $ ; IN [MIDI_IRQ.INC] CLEAR INDEXOUT CLRF INDEXOUT,0 F4_000189 EQU $ ; IN [MIDI_IRQ.INC] SET PIE1.5 BSF PIE1,5,0 F4_000190 EQU $ ; IN [MIDI_IRQ.INC] RETURN RETURN 0 HRSOUT F4_000231 EQU $ ; IN [MIDI_IRQ.INC] BTFSS PIR1.4 BTFSS PIR1,4 F4_000232 EQU $ ; IN [MIDI_IRQ.INC] BRA ($ - 2) BRA ($ - 2) F4_000233 EQU $ ; IN [MIDI_IRQ.INC] MOVWF TXREG MOVWF TXREG F4_000234 EQU $ ; IN [MIDI_IRQ.INC] RETURN RETURN 0 _OVER_IRQ_HANDLER F4_EOF EQU $ ; MIDI_IRQ.INC F5_SOF EQU $ ; TIMERS.INC F5_EOF EQU $ ; TIMERS.INC F1_000145 EQU $ ; IN [PUFF-EYES.BAS] TRISA = %01111100 MOVLW 124 MOVWF TRISA,0 F1_000146 EQU $ ; IN [PUFF-EYES.BAS] TRISB = %11100000 MOVLW 224 MOVWF TRISB,0 F1_000147 EQU $ ; IN [PUFF-EYES.BAS] TRISC = %11000000 MOVLW 192 MOVWF TRISC,0 F1_000150 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 F1_000151 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 F1_000152 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000153 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.4 BCF TRISC,4,0 BSF LATC,4,0 F1_000154 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.0 BCF TRISB,0,0 BCF LATB,0,0 F1_000155 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.1 BCF TRISB,1,0 BCF LATB,1,0 F1_000156 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.5 BCF TRISB,5,0 BCF LATB,5,0 F1_000157 EQU $ ; IN [PUFF-EYES.BAS] INPUT PORTA.5 BSF TRISA,5,0 F1_000158 EQU $ ; IN [PUFF-EYES.BAS] INPUT PORTA.4 BSF TRISA,4,0 F1_000159 EQU $ ; IN [PUFF-EYES.BAS] INPUT PORTA.3 BSF TRISA,3,0 F1_000160 EQU $ ; IN [PUFF-EYES.BAS] INPUT PORTA.2 BSF TRISA,2,0 MAIN F1_000166 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTB.5 BCF TRISB,5,0 BSF LATB,5,0 F1_000167 EQU $ ; IN [PUFF-EYES.BAS] DELAYMS 100 MOVLW 100 RCALL DL@MS F1_000168 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.5 BCF TRISB,5,0 BCF LATB,5,0 F1_000169 EQU $ ; IN [PUFF-EYES.BAS] INIT_USART_INTERRUPT VARIABLE MAX_PARAMS=10,INIT_USART_INTERRUPT_RETURN=0,PRM_COUNT=0 RCALL _INIT_USART F1_000171 EQU $ ; IN [PUFF-EYES.BAS] CLEAR_SERIAL_BUFFER VARIABLE MAX_PARAMS=10,CLEAR_SERIAL_BUFFER_RETURN=0,PRM_COUNT=0 RCALL _CLEAR_USART_BUFFER F1_000184 EQU $ ; IN [PUFF-EYES.BAS] _OPENTIMER0 %11111111 & %10111111 & %11011111 & %11110111 VARIABLE MAX_PARAMS=10,_OPENTIMER0_RETURN=0,PRM_COUNT=1 MOVLW 23 MOVWF T0CON CLRF TMR0H,0 CLRF TMR0L,0 BCF INTCON,2,0 BSF INTCON,5,0 BSF T0CON,7,0 F1_000186 EQU $ ; IN [PUFF-EYES.BAS] GOSUB INIT_PUFF CALL INIT_PUFF START_LOOP F1_000189 EQU $ ; IN [PUFF-EYES.BAS] BYTEIN = HRSIN RCALL HRSIN MOVWF BYTEIN,0 MIDI_PARSE F1_000192 EQU $ ; IN [PUFF-EYES.BAS] IF BYTEIN > PROGCHANGE_STATUS THEN MOVLW 206 SUBWF BYTEIN,W,0 BNC BC@LL14 F1_000193 EQU $ ; IN [PUFF-EYES.BAS] IF BYTEIN > 253 THEN MOVLW 254 SUBWF BYTEIN,W,0 BNC BC@LL16 F1_000197 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL17 BC@LL16 F1_000198 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000199 EQU $ ; IN [PUFF-EYES.BAS] CLEAR STATUSBYTE CLRF STATUSBYTE,0 F1_000200 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END F1_000201 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL17 F1_000202 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL14 F1_000203 EQU $ ; IN [PUFF-EYES.BAS] IF STBIT =1 THEN BTFSS BYTEIN,7 BRA BC@LL19 F1_000205 EQU $ ; IN [PUFF-EYES.BAS] CLEAR STATUSBYTE CLRF STATUSBYTE,0 F1_000206 EQU $ ; IN [PUFF-EYES.BAS] SELECT BYTEIN F1_000207 EQU $ ; IN [PUFF-EYES.BAS] CASE NOTEOFF_STATUS MOVLW 141 SUBWF BYTEIN,W,0 BNZ BC@LL21 F1_000208 EQU $ ; IN [PUFF-EYES.BAS] STATUSBYTE = BYTEIN MOVFF BYTEIN,STATUSBYTE F1_000209 EQU $ ; IN [PUFF-EYES.BAS] NOTEUIT = 255 SETF NOTEUIT,0 F1_000210 EQU $ ; IN [PUFF-EYES.BAS] RELEASE = 255 SETF RELEASE,0 BRA BC@LL20 BC@LL21 F1_000211 EQU $ ; IN [PUFF-EYES.BAS] CASE NOTEON_STATUS MOVLW 157 SUBWF BYTEIN,W,0 BNZ BC@LL24 F1_000212 EQU $ ; IN [PUFF-EYES.BAS] STATUSBYTE = BYTEIN MOVFF BYTEIN,STATUSBYTE F1_000213 EQU $ ; IN [PUFF-EYES.BAS] NOTEAAN = 255 SETF NOTEAAN,0 F1_000214 EQU $ ; IN [PUFF-EYES.BAS] VELO = 255 SETF VELO,0 BRA BC@LL20 BC@LL24 F1_000215 EQU $ ; IN [PUFF-EYES.BAS] CASE KEYPRES_STATUS MOVLW 173 SUBWF BYTEIN,W,0 BNZ BC@LL26 F1_000216 EQU $ ; IN [PUFF-EYES.BAS] STATUSBYTE = BYTEIN MOVFF BYTEIN,STATUSBYTE F1_000217 EQU $ ; IN [PUFF-EYES.BAS] NOTEPRES = 255 SETF NOTEPRES,0 F1_000218 EQU $ ; IN [PUFF-EYES.BAS] PRES = 255 SETF PRES,0 BRA BC@LL20 BC@LL26 F1_000219 EQU $ ; IN [PUFF-EYES.BAS] CASE CONTROL_STATUS MOVLW 189 SUBWF BYTEIN,W,0 BNZ BC@LL28 F1_000220 EQU $ ; IN [PUFF-EYES.BAS] STATUSBYTE = BYTEIN MOVFF BYTEIN,STATUSBYTE F1_000221 EQU $ ; IN [PUFF-EYES.BAS] CTRL = 255 SETF CTRL,0 F1_000222 EQU $ ; IN [PUFF-EYES.BAS] VALUE = 255 SETF VALUE,0 BRA BC@LL20 BC@LL28 F1_000223 EQU $ ; IN [PUFF-EYES.BAS] CASE PROGCHANGE_STATUS MOVLW 205 SUBWF BYTEIN,W,0 BNZ BC@LL30 F1_000224 EQU $ ; IN [PUFF-EYES.BAS] STATUSBYTE = BYTEIN MOVFF BYTEIN,STATUSBYTE F1_000225 EQU $ ; IN [PUFF-EYES.BAS] PROG = 255 SETF PROG,0 F1_000233 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL30 BC@LL20 BRA BC@LL31 BC@LL19 F1_000234 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000235 EQU $ ; IN [PUFF-EYES.BAS] SELECT STATUSBYTE F1_000236 EQU $ ; IN [PUFF-EYES.BAS] CASE 0 MOVF STATUSBYTE,F,0 BNZ BC@LL33 F1_000237 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL32 BC@LL33 F1_000238 EQU $ ; IN [PUFF-EYES.BAS] CASE NOTEOFF_STATUS MOVLW 141 SUBWF STATUSBYTE,W,0 BNZ BC@LL36 F1_000239 EQU $ ; IN [PUFF-EYES.BAS] IF NOTEUIT = 255 THEN INCF NOTEUIT,W,0 BNZ BC@LL38 F1_000240 EQU $ ; IN [PUFF-EYES.BAS] NOTEUIT = BYTEIN MOVFF BYTEIN,NOTEUIT BRA BC@LL39 BC@LL38 F1_000241 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000242 EQU $ ; IN [PUFF-EYES.BAS] RELEASE = BYTEIN MOVFF BYTEIN,RELEASE F1_000243 EQU $ ; IN [PUFF-EYES.BAS] SELECT NOTEUIT F1_000244 EQU $ ; IN [PUFF-EYES.BAS] CASE 120 MOVLW 120 SUBWF NOTEUIT,W,0 BNZ BC@LL41 F1_000245 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.1 BCF TRISB,1,0 BCF LATB,1,0 BRA BC@LL40 BC@LL41 F1_000246 EQU $ ; IN [PUFF-EYES.BAS] CASE 121 MOVLW 121 SUBWF NOTEUIT,W,0 BNZ BC@LL44 F1_000247 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 BRA BC@LL40 BC@LL44 F1_000248 EQU $ ; IN [PUFF-EYES.BAS] CASE 122 MOVLW 122 SUBWF NOTEUIT,W,0 BNZ BC@LL46 F1_000249 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 BRA BC@LL40 BC@LL46 F1_000250 EQU $ ; IN [PUFF-EYES.BAS] CASE 123 MOVLW 123 SUBWF NOTEUIT,W,0 BNZ BC@LL48 F1_000251 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NO6 RCALL NO6 BRA BC@LL40 BC@LL48 F1_000252 EQU $ ; IN [PUFF-EYES.BAS] CASE 124 MOVLW 124 SUBWF NOTEUIT,W,0 BTFSC STATUS,2 F1_000253 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NO7 RCALL NO7 F1_000254 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL50 BC@LL40 F1_000255 EQU $ ; IN [PUFF-EYES.BAS] NOTEUIT = 255 SETF NOTEUIT,0 F1_000256 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL39 F1_000257 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL32 BC@LL36 F1_000258 EQU $ ; IN [PUFF-EYES.BAS] CASE NOTEON_STATUS MOVLW 157 SUBWF STATUSBYTE,W,0 BTFSS STATUS,2 BRA BC@LL52 F1_000259 EQU $ ; IN [PUFF-EYES.BAS] IF NOTEAAN = 255 THEN INCF NOTEAAN,W,0 BNZ BC@LL54 F1_000260 EQU $ ; IN [PUFF-EYES.BAS] NOTEAAN = BYTEIN MOVFF BYTEIN,NOTEAAN BRA BC@LL55 BC@LL54 F1_000261 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000262 EQU $ ; IN [PUFF-EYES.BAS] VELO = BYTEIN MOVFF BYTEIN,VELO F1_000263 EQU $ ; IN [PUFF-EYES.BAS] IF VELO = 0 THEN MOVF VELO,F,0 BNZ BC@LL57 F1_000264 EQU $ ; IN [PUFF-EYES.BAS] SELECT NOTEAAN F1_000265 EQU $ ; IN [PUFF-EYES.BAS] CASE 120 MOVLW 120 SUBWF NOTEAAN,W,0 BNZ BC@LL59 F1_000266 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.1 BCF TRISB,1,0 BCF LATB,1,0 BRA BC@LL58 BC@LL59 F1_000267 EQU $ ; IN [PUFF-EYES.BAS] CASE 121 MOVLW 121 SUBWF NOTEAAN,W,0 BNZ BC@LL62 F1_000268 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 BRA BC@LL58 BC@LL62 F1_000269 EQU $ ; IN [PUFF-EYES.BAS] CASE 122 MOVLW 122 SUBWF NOTEAAN,W,0 BNZ BC@LL64 F1_000270 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 BRA BC@LL58 BC@LL64 F1_000271 EQU $ ; IN [PUFF-EYES.BAS] CASE 123 MOVLW 123 SUBWF NOTEAAN,W,0 BNZ BC@LL66 F1_000272 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NO6 RCALL NO6 BRA BC@LL58 BC@LL66 F1_000273 EQU $ ; IN [PUFF-EYES.BAS] CASE 124 MOVLW 124 SUBWF NOTEAAN,W,0 BTFSC STATUS,2 F1_000274 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NO7 RCALL NO7 F1_000275 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL68 BC@LL58 F1_000276 EQU $ ; IN [PUFF-EYES.BAS] NOTEAAN = 255 SETF NOTEAAN,0 F1_000277 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END F1_000278 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL57 F1_000279 EQU $ ; IN [PUFF-EYES.BAS] SELECT NOTEAAN F1_000280 EQU $ ; IN [PUFF-EYES.BAS] CASE 120 MOVLW 120 SUBWF NOTEAAN,W,0 BNZ BC@LL70 F1_000281 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTB.1 BCF TRISB,1,0 BSF LATB,1,0 BRA BC@LL69 BC@LL70 F1_000282 EQU $ ; IN [PUFF-EYES.BAS] CASE 121 MOVLW 121 SUBWF NOTEAAN,W,0 BNZ BC@LL73 F1_000283 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 BRA BC@LL69 BC@LL73 F1_000284 EQU $ ; IN [PUFF-EYES.BAS] CASE 122 MOVLW 122 SUBWF NOTEAAN,W,0 BNZ BC@LL75 F1_000285 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 BRA BC@LL69 BC@LL75 F1_000286 EQU $ ; IN [PUFF-EYES.BAS] CASE 123 MOVLW 123 SUBWF NOTEAAN,W,0 BNZ BC@LL77 F1_000287 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NA6 RCALL NA6 BRA BC@LL69 BC@LL77 F1_000288 EQU $ ; IN [PUFF-EYES.BAS] CASE 124 MOVLW 124 SUBWF NOTEAAN,W,0 BNZ BC@LL79 F1_000289 EQU $ ; IN [PUFF-EYES.BAS] GOSUB NA7 RCALL NA7 F1_000290 EQU $ ; IN [PUFF-EYES.BAS] CASE ELSE BRA BC@LL81 BC@LL79 F1_000291 EQU $ ; IN [PUFF-EYES.BAS] NOTEAAN = 255 SETF NOTEAAN,0 F1_000292 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END F1_000293 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL81 BC@LL69 F1_000294 EQU $ ; IN [PUFF-EYES.BAS] NOTEAAN = 255 SETF NOTEAAN,0 F1_000295 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL55 F1_000296 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL32 BC@LL52 F1_000297 EQU $ ; IN [PUFF-EYES.BAS] CASE KEYPRES_STATUS MOVLW 173 SUBWF STATUSBYTE,W,0 BNZ BC@LL83 F1_000298 EQU $ ; IN [PUFF-EYES.BAS] IF NOTEPRES = 255 THEN INCF NOTEPRES,W,0 BNZ BC@LL85 F1_000299 EQU $ ; IN [PUFF-EYES.BAS] NOTEPRES = BYTEIN MOVFF BYTEIN,NOTEPRES BRA BC@LL86 BC@LL85 F1_000300 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000301 EQU $ ; IN [PUFF-EYES.BAS] PRES = BYTEIN MOVFF BYTEIN,PRES F1_000302 EQU $ ; IN [PUFF-EYES.BAS] GOSUB KEYPRES RCALL KEYPRES F1_000303 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL86 F1_000304 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL32 BC@LL83 F1_000305 EQU $ ; IN [PUFF-EYES.BAS] CASE CONTROL_STATUS MOVLW 189 SUBWF STATUSBYTE,W,0 BNZ BC@LL88 F1_000306 EQU $ ; IN [PUFF-EYES.BAS] IF CTRL = 255 THEN INCF CTRL,W,0 BNZ BC@LL90 F1_000307 EQU $ ; IN [PUFF-EYES.BAS] CTRL = BYTEIN MOVFF BYTEIN,CTRL BRA BC@LL91 BC@LL90 F1_000308 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000309 EQU $ ; IN [PUFF-EYES.BAS] VALUE = BYTEIN MOVFF BYTEIN,VALUE F1_000310 EQU $ ; IN [PUFF-EYES.BAS] GOSUB CONTROLLER RCALL CONTROLLER F1_000311 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL91 F1_000312 EQU $ ; IN [PUFF-EYES.BAS] GOTO MIDI_PARSE_END BRA MIDI_PARSE_END BRA BC@LL32 BC@LL88 F1_000313 EQU $ ; IN [PUFF-EYES.BAS] CASE PROGCHANGE_STATUS MOVLW 205 SUBWF STATUSBYTE,W,0 BNZ BC@LL93 F1_000314 EQU $ ; IN [PUFF-EYES.BAS] IF PROG = 255 THEN INCF PROG,W,0 BNZ BC@LL95 F1_000315 EQU $ ; IN [PUFF-EYES.BAS] PROG = BYTEIN MOVFF BYTEIN,PROG F1_000316 EQU $ ; IN [PUFF-EYES.BAS] GOSUB PROGCHANGE RCALL PROGCHANGE F1_000317 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL95 F1_000318 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL93 BC@LL32 F1_000319 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL31 MIDI_PARSE_END PIR_SENSORS F1_000323 EQU $ ; IN [PUFF-EYES.BAS] IF CC90 > 0 THEN MOVF CC90,F,0 BTFSC STATUS,2 BRA BC@LL97 F1_000324 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000325 EQU $ ; IN [PUFF-EYES.BAS] IF PIRCLOCKBIT <> CNT.8 THEN MOVF PERCLOCK,W,0 XORWF CNTH,W,0 ANDLW 1 BZ BC@LL99 F1_000326 EQU $ ; IN [PUFF-EYES.BAS] PIRCLOCKBIT = CNT.8 BSF PERCLOCK,0,0 BTFSS CNTH,0,0 BCF PERCLOCK,0,0 F1_000327 EQU $ ; IN [PUFF-EYES.BAS] ON CC90 - 1 GOSUB TASK_PIR1, TASK_PIR2, TASK_PIR3, TASK_PIR4 DECF CC90,W,0 MOVWF PP0,0 SUBLW 3 BNC JE@LB1 CLRF PCLATH,0 BCF STATUS,0,0 RLCF PP0,F,0 RLCF PCLATH,F,0 RLCF PP0,F,0 RLCF PCLATH,F,0 MOVLW 84 ADDWF PP0,F,0 MOVLW 4 ADDWFC PCLATH,F,0 PUSH MOVLW 4 MOVWF TOSH,0 MOVLW 100 MOVWF TOSL,0 MOVF PP0,W,0 MOVWF PCL,0 JP@LB2 GOTO TASK_PIR1 GOTO TASK_PIR2 GOTO TASK_PIR3 GOTO TASK_PIR4 JE@LB1 F1_000328 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL99 F1_000329 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000330 EQU $ ; IN [PUFF-EYES.BAS] IF PIRMOVEBIT <> CNT.14 THEN CLRF WREG,0 BTFSC PERCLOCK,1,0 ADDLW 1 BTFSC CNTH,6,0 SUBLW 1 BZ BC@LL101 F1_000331 EQU $ ; IN [PUFF-EYES.BAS] PIRMOVEBIT = CNT.14 BSF PERCLOCK,1,0 BTFSS CNTH,6,0 BCF PERCLOCK,1,0 F1_000332 EQU $ ; IN [PUFF-EYES.BAS] ON CC90 - 1 GOSUB PIRMOVE1, PIRMOVE2, PIRMOVE3, PIRMOVE4 DECF CC90,W,0 MOVWF PP0,0 SUBLW 3 BNC JE@LB4 CLRF PCLATH,0 BCF STATUS,0,0 RLCF PP0,F,0 RLCF PCLATH,F,0 RLCF PP0,F,0 RLCF PCLATH,F,0 MOVLW 168 ADDWF PP0,F,0 MOVLW 4 ADDWFC PCLATH,F,0 PUSH MOVLW 4 MOVWF TOSH,0 MOVLW 184 MOVWF TOSL,0 MOVF PP0,W,0 MOVWF PCL,0 JP@LB5 GOTO PIRMOVE1 GOTO PIRMOVE2 GOTO PIRMOVE3 GOTO PIRMOVE4 JE@LB4 F1_000333 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL101 F1_000334 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL97 CHECK_TIMERS F1_000464 EQU $ ; IN [PUFF-EYES.BAS] IF VELFLAGS > 0 THEN MOVF VELFLAGS,F,0 BNZ CP@LB6 MOVF VELFLAGSH,F,0 BTFSC STATUS,2 BRA BC@LL103 CP@LB6 F1_000465 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000466 EQU $ ; IN [PUFF-EYES.BAS] CLEAR I CLRF _I,0 F1_000467 EQU $ ; IN [PUFF-EYES.BAS] REPEAT BC@LL104 F1_000468 EQU $ ; IN [PUFF-EYES.BAS] IF GETBIT VELFLAGS, I = 1 THEN MOVFF VELFLAGS,PP0 MOVFF VELFLAGSH,PP0H MOVF _I,W,0 INCF WREG,F,0 RRCF PP0H,F,0 RRCF PP0,F,0 DECFSZ WREG,F,0 BRA $ - 6 MOVLW 1 BTFSS STATUS,0,0 CLRF WREG,0 MOVWF PBP#VAR0,0 MOVLW 1 SUBWF PBP#VAR0,W,0 BTFSS STATUS,2 BRA BC@LL107 F1_000469 EQU $ ; IN [PUFF-EYES.BAS] VELTIM.WORD1 = VELMSB[I] LFSR 0,VELMSB BCF STATUS,0,0 RLCF _I,W,0 MOVFF PLUSW0,VELTIMHH INCF WREG,F,0 MOVFF PLUSW0,VELTIMHHH F1_000470 EQU $ ; IN [PUFF-EYES.BAS] VELTIM.WORD0 = VELLSB[I] LFSR 0,VELLSB BCF STATUS,0,0 RLCF _I,W,0 MOVFF PLUSW0,VELTIM INCF WREG,F,0 MOVFF PLUSW0,VELTIMH F1_000471 EQU $ ; IN [PUFF-EYES.BAS] IF CNT >= VELTIM THEN MOVF VELTIM,W,0 SUBWF CNT,W,0 MOVF VELTIMH,W,0 SUBWFB CNTH,W,0 MOVF VELTIMHH,W,0 SUBWFB CNTHH,W,0 MOVF VELTIMHHH,W,0 SUBWFB CNTHHH,W,0 MOVF CNTHHH,W,0 XORWF VELTIMHHH,W,0 BTFSC STATUS,0,0 XORLW 128 BNN BC@LL109 F1_000472 EQU $ ; IN [PUFF-EYES.BAS] ON I GOSUB TASK0,TASK1,TASK2,TASK3,TASK4,TASK5,TASK6,TASK7 MOVF _I,W,0 MOVWF PP0,0 SUBLW 7 BNC JE@LB7 CLRF PCLATH,0 BCF STATUS,0,0 RLCF PP0,F,0 RLCF PCLATH,F,0 RLCF PP0,F,0 RLCF PCLATH,F,0 MOVLW 88 ADDWF PP0,F,0 MOVLW 5 ADDWFC PCLATH,F,0 PUSH MOVLW 5 MOVWF TOSH,0 MOVLW 120 MOVWF TOSL,0 MOVF PP0,W,0 MOVWF PCL,0 JP@LB8 GOTO TASK0 GOTO TASK1 GOTO TASK2 GOTO TASK3 GOTO TASK4 GOTO TASK5 GOTO TASK6 GOTO TASK7 JE@LB7 F1_000475 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL109 F1_000476 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL107 F1_000477 EQU $ ; IN [PUFF-EYES.BAS] INC I INCF _I,F,0 F1_000478 EQU $ ; IN [PUFF-EYES.BAS] UNTIL I = NRTASKS MOVLW 8 SUBWF _I,W,0 BTFSS STATUS,2 BRA BC@LL104 BC@LL105 F1_000479 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL103 F1_000480 EQU $ ; IN [PUFF-EYES.BAS] GOTO START_LOOP BRA START_LOOP NO6 F1_000485 EQU $ ; IN [PUFF-EYES.BAS] HPWM 1, 0, 3906 CLRF GEN,0 MOVLW 66 MOVWF PP1,0 MOVLW 15 MOVWF PP1H,0 MOVLW 1 CALL H@PWM F1_000486 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.1 BCF TRISC,1,0 BCF LATC,1,0 F1_000487 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 NO7 F1_000490 EQU $ ; IN [PUFF-EYES.BAS] HPWM 0, 0, 3906 CLRF GEN,0 MOVLW 66 MOVWF PP1,0 MOVLW 15 MOVWF PP1H,0 MOVLW 0 CALL H@PWM F1_000491 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.2 BCF TRISC,2,0 BCF LATC,2,0 F1_000492 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 NA6 F1_000498 EQU $ ; IN [PUFF-EYES.BAS] IF VELO < 127 THEN MOVLW 127 SUBWF VELO,W,0 BC BC@LL111 F1_000499 EQU $ ; IN [PUFF-EYES.BAS] HPWM 1, VELO + VELO, 3906 MOVF VELO,W,0 ADDWF VELO,W,0 MOVWF GEN,0 MOVLW 66 MOVWF PP1,0 MOVLW 15 MOVWF PP1H,0 MOVLW 1 CALL H@PWM BRA BC@LL112 BC@LL111 F1_000500 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000501 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.1 BCF TRISC,1,0 BSF LATC,1,0 F1_000502 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL112 F1_000503 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 NA7 F1_000506 EQU $ ; IN [PUFF-EYES.BAS] IF VELO < 127 THEN MOVLW 127 SUBWF VELO,W,0 BC BC@LL114 F1_000507 EQU $ ; IN [PUFF-EYES.BAS] HPWM 0, VELO + VELO, 3906 MOVF VELO,W,0 ADDWF VELO,W,0 MOVWF GEN,0 MOVLW 66 MOVWF PP1,0 MOVLW 15 MOVWF PP1H,0 MOVLW 0 CALL H@PWM BRA BC@LL115 BC@LL114 F1_000508 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000509 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.2 BCF TRISC,2,0 BSF LATC,2,0 F1_000510 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL115 F1_000511 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 KEYPRES F1_000517 EQU $ ; IN [PUFF-EYES.BAS] NOTEPRES = 255 SETF NOTEPRES,0 F1_000518 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PROGCHANGE F1_000521 EQU $ ; IN [PUFF-EYES.BAS] PROG = 255 SETF PROG,0 F1_000522 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PITCHBEND F1_000526 EQU $ ; IN [PUFF-EYES.BAS] PBLSB = 255 SETF PBLSB,0 F1_000527 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 AFTERTOUCH F1_000531 EQU $ ; IN [PUFF-EYES.BAS] AFT = 255 SETF AFT,0 F1_000532 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 CONTROLLER F1_000535 EQU $ ; IN [PUFF-EYES.BAS] SELECT CTRL F1_000536 EQU $ ; IN [PUFF-EYES.BAS] CASE 30 MOVLW 30 SUBWF CTRL,W,0 BNZ BC@LL117 F1_000537 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = VALUE + VALUE MOVF VALUE,W,0 ADDWF VALUE,W,0 MOVWF SOLLPOS,0 F1_000538 EQU $ ; IN [PUFF-EYES.BAS] IF SOLLPOS < MOTPOS THEN MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BC BC@LL120 F1_000539 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.1 BCF VELFLAGS,1,0 F1_000541 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT F1_000542 EQU $ ; IN [PUFF-EYES.BAS] CTRL = 255 SETF CTRL,0 F1_000543 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 F1_000544 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL120 F1_000545 EQU $ ; IN [PUFF-EYES.BAS] IF SOLLPOS > MOTPOS THEN MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BC BC@LL122 F1_000547 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.0 BCF VELFLAGS,0,0 F1_000548 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT F1_000549 EQU $ ; IN [PUFF-EYES.BAS] CTRL = 255 SETF CTRL,0 F1_000550 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 F1_000551 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL122 BRA BC@LL116 BC@LL117 F1_000552 EQU $ ; IN [PUFF-EYES.BAS] CASE 31 MOVLW 31 SUBWF CTRL,W,0 BNZ BC@LL124 F1_000554 EQU $ ; IN [PUFF-EYES.BAS] MOTORPERIOD = 2048 - (VALUE << 4) SWAPF VALUE,W,0 MOVWF PP7,0 MOVWF PP7H,0 MOVLW 240 ANDWF PP7,F,0 MOVLW 15 ANDWF PP7H,F,0 MOVF PP7,W,0 SUBLW 0 MOVWF MOTORPERIOD,0 MOVLW 8 SUBFWB PP7H,W,0 MOVWF MOTORPERIODH,0 F1_000555 EQU $ ; IN [PUFF-EYES.BAS] CTRL = 255 SETF CTRL,0 F1_000556 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 BRA BC@LL116 BC@LL124 F1_000557 EQU $ ; IN [PUFF-EYES.BAS] CASE 66 MOVLW 66 SUBWF CTRL,W,0 BNZ BC@LL126 F1_000559 EQU $ ; IN [PUFF-EYES.BAS] IF VALUE = 0 THEN MOVF VALUE,F,0 BTFSC STATUS,2 F1_000560 EQU $ ; IN [PUFF-EYES.BAS] GOSUB ALLNOTESOFF RCALL ALLNOTESOFF F1_000561 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL128 F1_000562 EQU $ ; IN [PUFF-EYES.BAS] CC66 = VALUE MOVFF VALUE,CC66 BRA BC@LL116 BC@LL126 F1_000564 EQU $ ; IN [PUFF-EYES.BAS] CASE 67 MOVLW 67 SUBWF CTRL,W,0 BNZ BC@LL130 F1_000566 EQU $ ; IN [PUFF-EYES.BAS] IF VALUE = 64 THEN MOVLW 64 SUBWF VALUE,W,0 BTFSC STATUS,2 F1_000567 EQU $ ; IN [PUFF-EYES.BAS] GOSUB CALIBRATELEFT RCALL CALIBRATELEFT F1_000568 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL132 BRA BC@LL116 BC@LL130 F1_000570 EQU $ ; IN [PUFF-EYES.BAS] CASE 68 MOVLW 68 SUBWF CTRL,W,0 BNZ BC@LL134 F1_000571 EQU $ ; IN [PUFF-EYES.BAS] IF VALUE = 64 THEN MOVLW 64 SUBWF VALUE,W,0 BTFSC STATUS,2 F1_000572 EQU $ ; IN [PUFF-EYES.BAS] GOSUB CALIBRATERIGHT RCALL CALIBRATERIGHT F1_000573 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL136 BRA BC@LL116 BC@LL134 F1_000574 EQU $ ; IN [PUFF-EYES.BAS] CASE 69 MOVLW 69 SUBWF CTRL,W,0 BNZ BC@LL138 F1_000575 EQU $ ; IN [PUFF-EYES.BAS] IF VALUE = 64 THEN MOVLW 64 SUBWF VALUE,W,0 BTFSC STATUS,2 F1_000576 EQU $ ; IN [PUFF-EYES.BAS] GOSUB CALIBRATECENTER RCALL CALIBRATECENTER F1_000577 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL140 BRA BC@LL116 BC@LL138 F1_000578 EQU $ ; IN [PUFF-EYES.BAS] CASE 90 MOVLW 90 SUBWF CTRL,W,0 BNZ BC@LL142 F1_000579 EQU $ ; IN [PUFF-EYES.BAS] CC90 = VALUE MOVFF VALUE,CC90 F1_000580 EQU $ ; IN [PUFF-EYES.BAS] IF VALUE > 0 THEN MOVF VALUE,F,0 BZ BC@LL144 F1_000581 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.5 BCF TRISC,5,0 BCF LATC,5,0 F1_000582 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL144 BRA BC@LL116 BC@LL142 F1_000583 EQU $ ; IN [PUFF-EYES.BAS] CASE 123 MOVLW 123 SUBWF CTRL,W,0 BTFSC STATUS,2 F1_000585 EQU $ ; IN [PUFF-EYES.BAS] GOSUB ALLNOTESOFF RCALL ALLNOTESOFF F1_000586 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL146 BC@LL116 CTRL_PARSE_END F1_000588 EQU $ ; IN [PUFF-EYES.BAS] CTRL = 255 SETF CTRL,0 F1_000589 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 ALLNOTESOFF F1_000592 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 F1_000593 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 F1_000594 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000595 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.1 BCF TRISB,1,0 BCF LATB,1,0 F1_000596 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.1 BCF TRISC,1,0 BCF LATC,1,0 F1_000597 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.2 BCF TRISC,2,0 BCF LATC,2,0 F1_000598 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.0 BCF TRISB,0,0 BCF LATB,0,0 F1_000599 EQU $ ; IN [PUFF-EYES.BAS] CLEAR CC90 CLRF CC90,0 F1_000600 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS CLRF VELFLAGS,0 CLRF VELFLAGSH,0 F1_000601 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 INIT_PUFF F1_000604 EQU $ ; IN [PUFF-EYES.BAS] CLEAR CC90 CLRF CC90,0 F1_000605 EQU $ ; IN [PUFF-EYES.BAS] MINPOS = 0 CLRF MINPOS,0 F1_000606 EQU $ ; IN [PUFF-EYES.BAS] MAXPOS = 255 SETF MAXPOS,0 F1_000607 EQU $ ; IN [PUFF-EYES.BAS] CENTERPOS = 128 MOVLW 128 MOVWF CENTERPOS,0 F1_000608 EQU $ ; IN [PUFF-EYES.BAS] MOTORPERIOD = 1024 CLRF MOTORPERIOD,0 MOVLW 4 MOVWF MOTORPERIODH,0 F1_000609 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 F1_000610 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 F1_000611 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000612 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.1 BCF TRISB,1,0 BCF LATB,1,0 F1_000613 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.1 BCF TRISC,1,0 BCF LATC,1,0 F1_000614 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.2 BCF TRISC,2,0 BCF LATC,2,0 F1_000615 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTB.0 BCF TRISB,0,0 BCF LATB,0,0 F1_000616 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS CLRF VELFLAGS,0 CLRF VELFLAGSH,0 F1_000617 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 MOVELEFT F1_000620 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.3 = 0 THEN BTFSC PORTA,3 BRA BC@LL148 F1_000621 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.5 BCF TRISC,5,0 BCF LATC,5,0 F1_000622 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.4 BCF TRISC,4,0 BSF LATC,4,0 F1_000624 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.0 BSF VELFLAGS,0,0 F1_000625 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000626 EQU $ ; IN [PUFF-EYES.BAS] VELTIM = CNT + MOTORPERIOD MOVF MOTORPERIOD,W,0 ADDWF CNT,W,0 MOVWF VELTIM,0 MOVF MOTORPERIODH,W,0 ADDWFC CNTH,W,0 MOVWF VELTIMH,0 MOVLW 0 ADDWFC CNTHH,W,0 MOVWF VELTIMHH,0 MOVLW 0 ADDWFC CNTHHH,W,0 MOVWF VELTIMHHH,0 F1_000627 EQU $ ; IN [PUFF-EYES.BAS] VELMSB[0] = VELTIM.WORD1 MOVFF VELTIMHH,VELMSB#0 MOVFF VELTIMHHH,VELMSB#0H F1_000628 EQU $ ; IN [PUFF-EYES.BAS] VELLSB[0] = VELTIM.WORD0 MOVFF VELTIM,VELLSB#0 MOVFF VELTIMH,VELLSB#0H F1_000629 EQU $ ; IN [PUFF-EYES.BAS] PULSEOUT PORTB.0 , 10, HIGH MOVLW 10 MOVWF PP0,0 CLRF PP0H,0 BCF TRISB,0,0 BCF PORTB,0,0 MOVLW 129 MOVWF GEN,0 MOVLW 1 MOVWF GENH,0 CALL P@OUT F1_000630 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS > 0 THEN DEC MOTPOS MOVF MOTPOS,F,0 BTFSS STATUS,2 DECF MOTPOS,F,0 BC@LL150 BRA BC@LL151 BC@LL148 F1_000631 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000632 EQU $ ; IN [PUFF-EYES.BAS] MINPOS = MOTPOS MOVFF MOTPOS,MINPOS F1_000633 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = MOTPOS MOVFF MOTPOS,SOLLPOS F1_000634 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000635 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.0 BCF VELFLAGS,0,0 F1_000636 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL151 F1_000637 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 MOVERIGHT F1_000640 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.2 = 0 THEN BTFSC PORTA,2 BRA BC@LL153 F1_000641 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.5 BCF TRISC,5,0 BCF LATC,5,0 F1_000642 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.4 BCF TRISC,4,0 BCF LATC,4,0 F1_000644 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.1 BSF VELFLAGS,1,0 F1_000645 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000646 EQU $ ; IN [PUFF-EYES.BAS] VELTIM = CNT + MOTORPERIOD MOVF MOTORPERIOD,W,0 ADDWF CNT,W,0 MOVWF VELTIM,0 MOVF MOTORPERIODH,W,0 ADDWFC CNTH,W,0 MOVWF VELTIMH,0 MOVLW 0 ADDWFC CNTHH,W,0 MOVWF VELTIMHH,0 MOVLW 0 ADDWFC CNTHHH,W,0 MOVWF VELTIMHHH,0 F1_000647 EQU $ ; IN [PUFF-EYES.BAS] VELMSB[1] = VELTIM.WORD1 MOVFF VELTIMHH,VELMSB#1 MOVFF VELTIMHHH,VELMSB#1H F1_000648 EQU $ ; IN [PUFF-EYES.BAS] VELLSB[1] = VELTIM.WORD0 MOVFF VELTIM,VELLSB#1 MOVFF VELTIMH,VELLSB#1H F1_000649 EQU $ ; IN [PUFF-EYES.BAS] PULSEOUT PORTB.0 , 10, HIGH MOVLW 10 MOVWF PP0,0 CLRF PP0H,0 BCF TRISB,0,0 BCF PORTB,0,0 MOVLW 129 MOVWF GEN,0 MOVLW 1 MOVWF GENH,0 CALL P@OUT F1_000650 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS < 255 THEN INC MOTPOS MOVLW 255 SUBWF MOTPOS,W,0 BTFSS STATUS,0 INCF MOTPOS,F,0 BC@LL155 BRA BC@LL156 BC@LL153 F1_000651 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000652 EQU $ ; IN [PUFF-EYES.BAS] MAXPOS = MOTPOS MOVFF MOTPOS,MAXPOS F1_000653 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = MOTPOS MOVFF MOTPOS,SOLLPOS F1_000654 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.1 BCF VELFLAGS,1,0 F1_000655 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000656 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL156 F1_000657 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 CALIBRATELEFT F1_000663 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = 0 CLRF SOLLPOS,0 F1_000664 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.0 BSF VELFLAGS,0,0 F1_000665 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.1 BCF VELFLAGS,1,0 F1_000666 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT BRA MOVELEFT CALIBRATERIGHT F1_000670 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = 255 SETF SOLLPOS,0 F1_000671 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.1 BSF VELFLAGS,1,0 F1_000672 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.0 BCF VELFLAGS,0,0 F1_000673 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT F1_000674 EQU $ ; IN [PUFF-EYES.BAS] CENTERPOS = (MAXPOS - MINPOS) << 1 MOVF MINPOS,W,0 SUBWF MAXPOS,W,0 MOVWF PP7,0 CLRF PP7H,0 BTFSS STATUS,0,0 DECF PP7H,F,0 BCF STATUS,0,0 RLCF PP7,W,0 MOVWF CENTERPOS,0 F1_000675 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 CALIBRATECENTER F1_000678 EQU $ ; IN [PUFF-EYES.BAS] CENTERPOS = (MAXPOS - MINPOS) >> 1 MOVF MINPOS,W,0 SUBWF MAXPOS,W,0 MOVWF PP7,0 CLRF PP7H,0 BTFSS STATUS,0,0 DECF PP7H,F,0 RRCF PP7H,W,0 RRCF PP7,W,0 MOVWF CENTERPOS,0 F1_000679 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK0 F1_000687 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS = SOLLPOS THEN MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BNZ BC@LL158 F1_000688 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.0 BCF VELFLAGS,0,0 F1_000689 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 F1_000690 EQU $ ; IN [PUFF-EYES.BAS] END IF BC@LL158 F1_000691 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.3 = 0 THEN BTFSC PORTA,3 BRA BC@LL160 F1_000693 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.0 BSF VELFLAGS,0,0 F1_000694 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000695 EQU $ ; IN [PUFF-EYES.BAS] VELTIM = CNT + MOTORPERIOD MOVF MOTORPERIOD,W,0 ADDWF CNT,W,0 MOVWF VELTIM,0 MOVF MOTORPERIODH,W,0 ADDWFC CNTH,W,0 MOVWF VELTIMH,0 MOVLW 0 ADDWFC CNTHH,W,0 MOVWF VELTIMHH,0 MOVLW 0 ADDWFC CNTHHH,W,0 MOVWF VELTIMHHH,0 F1_000696 EQU $ ; IN [PUFF-EYES.BAS] VELMSB[0] = VELTIM.WORD1 MOVFF VELTIMHH,VELMSB#0 MOVFF VELTIMHHH,VELMSB#0H F1_000697 EQU $ ; IN [PUFF-EYES.BAS] VELLSB[0] = VELTIM.WORD0 MOVFF VELTIM,VELLSB#0 MOVFF VELTIMH,VELLSB#0H F1_000698 EQU $ ; IN [PUFF-EYES.BAS] PULSEOUT PORTB.0 , 10, HIGH MOVLW 10 MOVWF PP0,0 CLRF PP0H,0 BCF TRISB,0,0 BCF PORTB,0,0 MOVLW 129 MOVWF GEN,0 MOVLW 1 MOVWF GENH,0 CALL P@OUT F1_000699 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS > 0 THEN DEC MOTPOS MOVF MOTPOS,F,0 BTFSS STATUS,2 DECF MOTPOS,F,0 BC@LL162 BRA BC@LL163 BC@LL160 F1_000700 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000701 EQU $ ; IN [PUFF-EYES.BAS] MINPOS = MOTPOS MOVFF MOTPOS,MINPOS F1_000702 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = MOTPOS MOVFF MOTPOS,SOLLPOS F1_000703 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000704 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.0 BCF VELFLAGS,0,0 F1_000705 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL163 F1_000706 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK1 F1_000711 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS = SOLLPOS THEN MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BNZ BC@LL165 F1_000712 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.1 BCF VELFLAGS,1,0 F1_000713 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 F1_000714 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL165 F1_000715 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.2 = 0 THEN BTFSC PORTA,2 BRA BC@LL167 F1_000717 EQU $ ; IN [PUFF-EYES.BAS] SET VELFLAGS.1 BSF VELFLAGS,1,0 F1_000718 EQU $ ; IN [PUFF-EYES.BAS] CNT.LOWWORD = CNTL MOVFF TMR0L,CNT MOVFF TMR0LH,CNTH F1_000719 EQU $ ; IN [PUFF-EYES.BAS] VELTIM = CNT + MOTORPERIOD MOVF MOTORPERIOD,W,0 ADDWF CNT,W,0 MOVWF VELTIM,0 MOVF MOTORPERIODH,W,0 ADDWFC CNTH,W,0 MOVWF VELTIMH,0 MOVLW 0 ADDWFC CNTHH,W,0 MOVWF VELTIMHH,0 MOVLW 0 ADDWFC CNTHHH,W,0 MOVWF VELTIMHHH,0 F1_000720 EQU $ ; IN [PUFF-EYES.BAS] VELMSB[1] = VELTIM.WORD1 MOVFF VELTIMHH,VELMSB#1 MOVFF VELTIMHHH,VELMSB#1H F1_000721 EQU $ ; IN [PUFF-EYES.BAS] VELLSB[1] = VELTIM.WORD0 MOVFF VELTIM,VELLSB#1 MOVFF VELTIMH,VELLSB#1H F1_000722 EQU $ ; IN [PUFF-EYES.BAS] PULSEOUT PORTB.0 , 10, HIGH MOVLW 10 MOVWF PP0,0 CLRF PP0H,0 BCF TRISB,0,0 BCF PORTB,0,0 MOVLW 129 MOVWF GEN,0 MOVLW 1 MOVWF GENH,0 CALL P@OUT F1_000723 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS < 255 THEN INC MOTPOS MOVLW 255 SUBWF MOTPOS,W,0 BTFSS STATUS,0 INCF MOTPOS,F,0 BC@LL169 BRA BC@LL170 BC@LL167 F1_000724 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000725 EQU $ ; IN [PUFF-EYES.BAS] MAXPOS = MOTPOS MOVFF MOTPOS,MAXPOS F1_000726 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = MOTPOS MOVFF MOTPOS,SOLLPOS F1_000727 EQU $ ; IN [PUFF-EYES.BAS] CLEAR VELFLAGS.1 BCF VELFLAGS,1,0 F1_000728 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.5 BCF TRISC,5,0 BSF LATC,5,0 F1_000729 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL170 F1_000730 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK2 F1_000735 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK3 F1_000738 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK4 F1_000741 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK5 F1_000744 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK6 F1_000747 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK7 F1_000750 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK_PIR1 F1_000753 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.5 = 0 THEN BTFSC PORTA,5 BRA BC@LL172 F1_000754 EQU $ ; IN [PUFF-EYES.BAS] IF LEFTPIRCNT < 255 THEN INC LEFTPIRCNT MOVLW 255 SUBWF LEFTPIRCNT,W,0 BTFSS STATUS,0 INCF LEFTPIRCNT,F,0 BC@LL174 BRA BC@LL175 BC@LL172 F1_000755 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000756 EQU $ ; IN [PUFF-EYES.BAS] IF LEFTPIRCNT > 0 THEN MOVF LEFTPIRCNT,F,0 BZ BC@LL177 F1_000757 EQU $ ; IN [PUFF-EYES.BAS] DEC LEFTPIRCNT DECF LEFTPIRCNT,F,0 BRA BC@LL178 BC@LL177 F1_000758 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000759 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 F1_000760 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL178 F1_000761 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL175 F1_000762 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.4 = 0 THEN BTFSC PORTA,4 BRA BC@LL180 F1_000763 EQU $ ; IN [PUFF-EYES.BAS] IF RIGHTPIRCNT < 255 THEN INC RIGHTPIRCNT MOVLW 255 SUBWF RIGHTPIRCNT,W,0 BTFSS STATUS,0 INCF RIGHTPIRCNT,F,0 BC@LL182 BRA BC@LL183 BC@LL180 F1_000764 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000765 EQU $ ; IN [PUFF-EYES.BAS] IF RIGHTPIRCNT > 0 THEN MOVF RIGHTPIRCNT,F,0 BZ BC@LL185 F1_000766 EQU $ ; IN [PUFF-EYES.BAS] DEC RIGHTPIRCNT DECF RIGHTPIRCNT,F,0 BRA BC@LL186 BC@LL185 F1_000767 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000768 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 F1_000769 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL186 F1_000770 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL183 F1_000771 EQU $ ; IN [PUFF-EYES.BAS] TMP = 256 + RIGHTPIRCNT - LEFTPIRCNT MOVFF RIGHTPIRCNT,PP7 MOVLW 1 MOVWF PP7H,0 MOVF LEFTPIRCNT,W,0 SUBWF PP7,W,0 MOVWF TMP,0 MOVLW 0 SUBWFB PP7H,W,0 MOVWF TMPH,0 F1_000772 EQU $ ; IN [PUFF-EYES.BAS] PIRPOS = TMP >> 1 RRCF TMPH,W,0 RRCF TMP,W,0 MOVWF PIRPOS,0 F1_000773 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK_PIR2 F1_000777 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.5 & PORTA.4 = 0 THEN MOVLW 1 BTFSS PORTA,5,0 CLRF WREG,0 BTFSS PORTA,4,0 CLRF WREG,0 MOVWF PBP#VAR0,0 CLRF PBP#VAR0H,0 MOVF PBP#VAR0H,W,0 IORWF PBP#VAR0,W,0 BNZ BC@LL188 F1_000779 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS < CENTERPOS THEN MOVF CENTERPOS,W,0 SUBWF MOTPOS,W,0 BC BC@LL190 F1_000780 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = 128 MOVLW 128 MOVWF SOLLPOS,0 F1_000781 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT F1_000782 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL190 F1_000783 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS > CENTERPOS THEN MOVF MOTPOS,W,0 SUBWF CENTERPOS,W,0 BC BC@LL192 F1_000784 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = 128 MOVLW 128 MOVWF SOLLPOS,0 F1_000785 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT F1_000786 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL192 F1_000787 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000788 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 BRA BC@LL193 BC@LL188 F1_000789 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000790 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.5 = 0 THEN BTFSC PORTA,5 BRA BC@LL195 F1_000791 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS > 0 THEN SOLLPOS = MOTPOS -1 MOVF MOTPOS,F,0 BZ BC@LL197 DECF MOTPOS,W,0 MOVWF SOLLPOS,0 BC@LL197 F1_000792 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT F1_000793 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000794 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 BRA BC@LL198 BC@LL195 F1_000795 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000796 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 F1_000797 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL198 F1_000798 EQU $ ; IN [PUFF-EYES.BAS] IF PORTA.4 = 0 THEN BTFSC PORTA,4 BRA BC@LL200 F1_000799 EQU $ ; IN [PUFF-EYES.BAS] IF MOTPOS < 255 THEN SOLLPOS = MOTPOS + 1 MOVLW 255 SUBWF MOTPOS,W,0 BC BC@LL202 INCF MOTPOS,W,0 MOVWF SOLLPOS,0 BC@LL202 F1_000800 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT F1_000801 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000802 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.3 BCF TRISC,3,0 BCF LATC,3,0 BRA BC@LL203 BC@LL200 F1_000803 EQU $ ; IN [PUFF-EYES.BAS] ELSE F1_000804 EQU $ ; IN [PUFF-EYES.BAS] LOW PORTC.0 BCF TRISC,0,0 BCF LATC,0,0 F1_000805 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL203 F1_000806 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL193 F1_000807 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK_PIR3 F1_000811 EQU $ ; IN [PUFF-EYES.BAS] LEFTPIRCNT = LEFTPIRCNT >> 1 BCF STATUS,0,0 RRCF LEFTPIRCNT,F,0 F1_000812 EQU $ ; IN [PUFF-EYES.BAS] LEFTPIRCNT.7 = PORTA.5 BSF LEFTPIRCNT,7,0 BTFSS PORTA,5,0 BCF LEFTPIRCNT,7,0 F1_000813 EQU $ ; IN [PUFF-EYES.BAS] RIGHTPIRCNT = RIGHTPIRCNT >> 1 BCF STATUS,0,0 RRCF RIGHTPIRCNT,F,0 F1_000814 EQU $ ; IN [PUFF-EYES.BAS] RIGHTPIRCNT.7 = PORTA.4 BSF RIGHTPIRCNT,7,0 BTFSS PORTA,4,0 BCF RIGHTPIRCNT,7,0 F1_000815 EQU $ ; IN [PUFF-EYES.BAS] TMP = 256 + RIGHTPIRCNT - LEFTPIRCNT MOVFF RIGHTPIRCNT,PP7 MOVLW 1 MOVWF PP7H,0 MOVF LEFTPIRCNT,W,0 SUBWF PP7,W,0 MOVWF TMP,0 MOVLW 0 SUBWFB PP7H,W,0 MOVWF TMPH,0 F1_000817 EQU $ ; IN [PUFF-EYES.BAS] PIRPOS = TMP >> 1 RRCF TMPH,W,0 RRCF TMP,W,0 MOVWF PIRPOS,0 F1_000818 EQU $ ; IN [PUFF-EYES.BAS] PIRPOS = ~ PIRPOS COMF PIRPOS,F,0 F1_000820 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 TASK_PIR4 F1_000824 EQU $ ; IN [PUFF-EYES.BAS] LEFTPIRCNT = LEFTPIRCNT << 1 BCF STATUS,0,0 RLCF LEFTPIRCNT,F,0 F1_000825 EQU $ ; IN [PUFF-EYES.BAS] LEFTPIRCNT.0 = PORTA.5 BSF LEFTPIRCNT,0,0 BTFSS PORTA,5,0 BCF LEFTPIRCNT,0,0 F1_000826 EQU $ ; IN [PUFF-EYES.BAS] RIGHTPIRCNT = RIGHTPIRCNT << 1 BCF STATUS,0,0 RLCF RIGHTPIRCNT,F,0 F1_000827 EQU $ ; IN [PUFF-EYES.BAS] RIGHTPIRCNT.0 = PORTA.4 BSF RIGHTPIRCNT,0,0 BTFSS PORTA,4,0 BCF RIGHTPIRCNT,0,0 F1_000828 EQU $ ; IN [PUFF-EYES.BAS] TMP = 256 + RIGHTPIRCNT - LEFTPIRCNT MOVFF RIGHTPIRCNT,PP7 MOVLW 1 MOVWF PP7H,0 MOVF LEFTPIRCNT,W,0 SUBWF PP7,W,0 MOVWF TMP,0 MOVLW 0 SUBWFB PP7H,W,0 MOVWF TMPH,0 F1_000829 EQU $ ; IN [PUFF-EYES.BAS] PIRPOS = TMP >> 1 RRCF TMPH,W,0 RRCF TMP,W,0 MOVWF PIRPOS,0 F1_000831 EQU $ ; IN [PUFF-EYES.BAS] PIRPOS = ~ PIRPOS COMF PIRPOS,F,0 F1_000832 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PIRMOVE1 F1_000835 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = PIRPOS MOVFF PIRPOS,SOLLPOS F1_000836 EQU $ ; IN [PUFF-EYES.BAS] IF SOLLPOS < MOTPOS THEN MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BC BC@LL205 F1_000837 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000838 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT F1_000839 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL205 F1_000840 EQU $ ; IN [PUFF-EYES.BAS] IF SOLLPOS > MOTPOS THEN MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BC BC@LL207 F1_000841 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000842 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT F1_000843 EQU $ ; IN [PUFF-EYES.BAS] ENDIF BC@LL207 F1_000844 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PIRMOVE2 F1_000848 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PIRMOVE3 F1_000851 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = PIRPOS MOVFF PIRPOS,SOLLPOS F1_000852 EQU $ ; IN [PUFF-EYES.BAS] SELECT SOLLPOS F1_000853 EQU $ ; IN [PUFF-EYES.BAS] CASE < MOTPOS MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BC BC@LL209 F1_000854 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000855 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT BRA BC@LL208 BC@LL209 F1_000856 EQU $ ; IN [PUFF-EYES.BAS] CASE > MOTPOS MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BC BC@LL212 F1_000857 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000858 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT BRA BC@LL208 BC@LL212 F1_000859 EQU $ ; IN [PUFF-EYES.BAS] CASE = MOTPOS MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BNZ BC@LL214 F1_000860 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000861 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000862 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL214 BC@LL208 F1_000865 EQU $ ; IN [PUFF-EYES.BAS] IF LEFTPIRCNT = 255 THEN LOW PORTC.3 INCF LEFTPIRCNT,W,0 BNZ BC@LL216 BCF TRISC,3,0 BCF LATC,3,0 BC@LL216 F1_000866 EQU $ ; IN [PUFF-EYES.BAS] IF RIGHTPIRCNT = 255 THEN LOW PORTC.0 INCF RIGHTPIRCNT,W,0 BNZ BC@LL218 BCF TRISC,0,0 BCF LATC,0,0 BC@LL218 F1_000867 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 PIRMOVE4 F1_000870 EQU $ ; IN [PUFF-EYES.BAS] SOLLPOS = PIRPOS MOVFF PIRPOS,SOLLPOS F1_000871 EQU $ ; IN [PUFF-EYES.BAS] SELECT SOLLPOS F1_000872 EQU $ ; IN [PUFF-EYES.BAS] CASE < MOTPOS MOVF MOTPOS,W,0 SUBWF SOLLPOS,W,0 BC BC@LL220 F1_000873 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000874 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVELEFT RCALL MOVELEFT BRA BC@LL219 BC@LL220 F1_000875 EQU $ ; IN [PUFF-EYES.BAS] CASE > MOTPOS MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BC BC@LL223 F1_000876 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000877 EQU $ ; IN [PUFF-EYES.BAS] GOSUB MOVERIGHT RCALL MOVERIGHT BRA BC@LL219 BC@LL223 F1_000878 EQU $ ; IN [PUFF-EYES.BAS] CASE = MOTPOS MOVF SOLLPOS,W,0 SUBWF MOTPOS,W,0 BNZ BC@LL225 F1_000879 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.0 BCF TRISC,0,0 BSF LATC,0,0 F1_000880 EQU $ ; IN [PUFF-EYES.BAS] HIGH PORTC.3 BCF TRISC,3,0 BSF LATC,3,0 F1_000881 EQU $ ; IN [PUFF-EYES.BAS] END SELECT BC@LL225 BC@LL219 F1_000884 EQU $ ; IN [PUFF-EYES.BAS] IF LEFTPIRCNT = 255 THEN LOW PORTC.3 INCF LEFTPIRCNT,W,0 BNZ BC@LL227 BCF TRISC,3,0 BCF LATC,3,0 BC@LL227 F1_000885 EQU $ ; IN [PUFF-EYES.BAS] IF RIGHTPIRCNT = 255 THEN LOW PORTC.0 INCF RIGHTPIRCNT,W,0 BNZ BC@LL229 BCF TRISC,0,0 BCF LATC,0,0 BC@LL229 F1_000886 EQU $ ; IN [PUFF-EYES.BAS] RETURN RETURN 0 F1_EOF EQU $ ; PUFF-EYES.BAS PB@LB231 BRA PB@LB231 __EOF 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 END