This is the ASM file for the 12F683 chip on the timer board.
Code:
;nyemicdi2T PIC 12F683 4Mhz.
LIST P=12F683, F=INHX8M
include "P12F683.inc"
ORG 0x0000
GOTO Label_0001
ORG 0x0004
MOVWF 0x70
SWAPF STATUS , W
CLRF STATUS
MOVWF 0x71
INCF 0x27 , F ;TMR0 interrupt 0x27=TMR0 overflow registers
BCF INTCON , T0IF
SWAPF 0x71 , W
MOVWF STATUS
SWAPF 0x70 , F
SWAPF 0x70 , W
RETFIE
NOP ;ignition advance table
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0000
RETLW 0001
RETLW 0001
RETLW 0001
RETLW 0001
RETLW 0001
RETLW 0001
RETLW 0002
RETLW 0002
RETLW 0002
RETLW 0002
RETLW 0002
RETLW 0003
RETLW 0003
RETLW 0003
RETLW 0003
RETLW 0003
RETLW 0004
RETLW 0004
RETLW 0004
RETLW 0004
RETLW 0004
RETLW 0004
RETLW 0005
RETLW 0005
RETLW 0005
RETLW 0005
RETLW 0005
RETLW 0006
RETLW 0006
RETLW 0006
RETLW 0006
RETLW 0006
RETLW 0007
RETLW 0007
RETLW 0007
RETLW 0007
RETLW 0007
RETLW 0007
RETLW 0009
RETLW 000A
RETLW 000C
RETLW 000C
RETLW 000F
RETLW 0010
RETLW 0012
RETLW 0013
RETLW 0015
RETLW 0016
RETLW 0018
RETLW 0019
RETLW 001A
RETLW 001B
RETLW 001E
RETLW 0020
RETLW 0021
RETLW 0023
RETLW 0024
RETLW 0025
RETLW 0027
RETLW 0028
RETLW 002A
RETLW 002B
RETLW 002D
RETLW 002F
RETLW 0030
RETLW 0032
RETLW 0032
RETLW 0034
RETLW 0036
RETLW 0037
RETLW 0039
RETLW 0039
RETLW 003C
RETLW 003D
RETLW 003F
RETLW 0040
RETLW 0042
RETLW 0044
RETLW 0045
RETLW 0047
RETLW 0049
RETLW 004A
RETLW 004B
RETLW 004D
RETLW 004E
RETLW 004F
RETLW 0051
RETLW 0052
RETLW 0054
RETLW 0055
RETLW 0057
RETLW 0058
RETLW 005A
RETLW 005B
RETLW 005D
RETLW 005E
RETLW 0060
RETLW 0061
RETLW 0063
RETLW 0064
RETLW 0066
RETLW 0067
RETLW 0069
RETLW 006A
RETLW 006D
RETLW 006E
RETLW 006E
RETLW 0071
RETLW 0071
RETLW 0074
RETLW 0075
RETLW 0077
RETLW 0078
RETLW 0078
RETLW 007A
RETLW 007B
RETLW 007C
RETLW 007D
RETLW 007E
RETLW 007F
RETLW 0080
RETLW 0081
RETLW 0082
RETLW 0083
RETLW 0084
RETLW 0085
RETLW 0086
RETLW 0087
RETLW 0088
RETLW 0089
RETLW 008A
RETLW 008B
RETLW 008C
RETLW 008D
RETLW 008E
RETLW 008F
RETLW 008F
RETLW 0090
RETLW 0091
RETLW 0092
RETLW 0093
RETLW 0094
RETLW 0095
RETLW 0096
RETLW 0097
RETLW 0098
RETLW 0099
RETLW 009A
RETLW 009B
RETLW 009C
RETLW 009D
RETLW 009E
RETLW 009F
RETLW 00A0
RETLW 00A1
RETLW 00A2
RETLW 00A3
RETLW 00A4
RETLW 00A5
RETLW 00A6
RETLW 00A7
RETLW 00A8
RETLW 00A9
RETLW 00AA
RETLW 00AB
RETLW 00AC
RETLW 00AD
RETLW 00AE
RETLW 00AF
RETLW 00B0
RETLW 00B1
RETLW 00B2
RETLW 00B3
RETLW 00B3
RETLW 00B4
RETLW 00B5
RETLW 00B6
RETLW 00B7
RETLW 00B8
RETLW 00B9
RETLW 00BA
RETLW 00BB
RETLW 00BC
RETLW 00BD
RETLW 00BE
RETLW 00BF
RETLW 00C0
RETLW 00C1
RETLW 00C2
RETLW 00C3
RETLW 00C4
RETLW 00C5
RETLW 00C6
RETLW 00C7
RETLW 00C8
RETLW 00C9
RETLW 00CA
RETLW 00CB
RETLW 00CC
RETLW 00CD
RETLW 00CE
RETLW 00CF
RETLW 00D0
RETLW 00D1
RETLW 00D1
RETLW 00D3
RETLW 00D4
RETLW 00D5
RETLW 00D6
RETLW 00D7
RETLW 00D7
RETLW 00D7
RETLW 00D8
RETLW 00DA
RETLW 00DB
RETLW 00DC
RETLW 00DD
RETLW 00DE
RETLW 00DE
RETLW 00DF
RETLW 00E1
RETLW 00E2
RETLW 00E3
RETLW 00E4
RETLW 00E5
RETLW 00E5
RETLW 00E6
RETLW 00E8
RETLW 00E9
RETLW 00EA
RETLW 00EB
RETLW 00EC
RETLW 00EC
RETLW 00ED
RETLW 00EF
RETLW 00F0
RETLW 00F1
RETLW 00F2
RETLW 00F3
RETLW 00F3
RETLW 00F5
RETLW 00F6
RETLW 00F7
RETURN
Label_0006 BCF STATUS , RP1
BCF STATUS , RP0
MOVF 0x22 , W
MOVWF PCLATH
MOVF 0x21 , W
MOVWF PCL
RETURN
Label_0001 BCF STATUS , RP1
BSF STATUS , RP0
MOVLW 0X61
MOVWF OSCCON
Label_0013 BTFSS OSCCON , HTS
GOTO Label_0013
BCF STATUS , RP1
BCF STATUS , RP0
CLRF GPIO
MOVLW 0x07
MOVWF CMCON0 ;comparator module Initialization
BCF STATUS , RP1
BSF STATUS , RP0
CLRF ANSEL
MOVLW 0x0C
MOVWF TRISIO ;GP2= HALL sensor input. GP0-GP1, ouput
MOVLW 0x07
MOVWF OPTION_REG ;OPTION_REG 07=256uS prescaler
BCF STATUS , RP1
BCF STATUS , RP0
MOVLW 0x02
MOVWF GPIO
CLRF 0x24
CLRF 0x27
CLRF TMR0 ;clear TMR0
MOVLW 0xA0
MOVWF INTCON ;interrupt Initialization
Label_0003 BTFSC GPIO ,GP2 ;BTFSC = wait for high pulse on Hall switch (-_+).
GOTO Label_0002 ;BTFSS = wait for low pulse on Hall switch (+_-) Alterable!!
MOVLW 0x01
MOVWF 0x24
GOTO Label_0003
Label_0002 MOVF 0x24 , F
BTFSC STATUS , Z
GOTO Label_0003
CLRF INTCON
MOVF TMR0 , W
MOVWF 0x25
CLRF TMR0
MOVLW 0x01
SUBWF 0x27 , W
BTFSC STATUS , Z
GOTO Label_0011 ;458917 RPM Yes (~-26°degree)
BTFSS STATUS , C
GOTO Label_0005 ;917RPM< Table values
MOVLW 0xFF ;0-458 RPM Yes
MOVWF 0x25
Label_0011 NOP ;458-917 RPM Yes (~-26°degree)
NOP ;delay time value=458-917RPM~-26°degree Initialization
NOP
NOP ;delay time
NOP ;((12NOP)18uS × TMR0)+RETLW 255 at current value (00F7=-26degree)Alterable!!
NOP ;EXCEL=I-515, value (blue)
NOP
NOP
NOP
NOP
NOP
NOP
MOVF 0x25 , F
BTFSC STATUS , Z
GOTO Label_0010
DECF 0x25 , F
GOTO Label_0011
Label_0010 MOVLW 0xFF
MOVWF 0x25
Label_0005 MOVF 0x25 , W
ADDLW 00F4 ;RPM limiter F4=20380 RPM Alterable!!
BTFSS STATUS , C
GOTO Label_0012
MOVF 0x25 , W
ADDLW 0x10
MOVWF 0x21
MOVLW 0x00
BTFSC STATUS , C
ADDLW 0x01
MOVWF 0x22
MOVF PCLATH , W
MOVWF 0x20
CALL Label_0006
MOVWF 0x23
MOVF 0x20 , W
MOVWF PCLATH
MOVF 0x23 , F
BTFSC STATUS , Z
GOTO Label_0007
Label_0008 NOP
NOP
NOP
NOP
NOP
NOP ;RETLW value(0x23 registers) x 19uS=16 NOP Alterable!!
NOP ;EXCEL=K-1, value (orange).
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ 0x23 , F
GOTO Label_0008
Label_0007 MOVLW 0x03
XORWF GPIO , F ;Output OFF: GP1,
MOVLW 0xD8 ;Output ON: GP0,
MOVWF 0x26
Label_0009 NOP ;Output time(dwell):(3NOP)6uS x 0x26 registers ((D8=216)x6=1296uS)
NOP
NOP
DECFSZ 0x26 , F
GOTO Label_0009
MOVLW 0x03 ;Output ON: GP1,
XORWF GPIO , F ;Output OFF: GP0,
Label_0012 CLRF 0x24
CLRF 0x27 ; TMR0 overflow registers(0x27) clear
MOVLW 0xA0
MOVWF INTCON ;interrupt Initialization
GOTO Label_0003
GOTO Label_0001
ORG 0x2007
DATA 33C4 ;Config Bytes
END