📄 fuzzy11a.lst
字号:
00064 + ENDC
00064 + IFEQ 2*50-2*40 ;Check for divide by zero
00064 + ENDC
00064 +A b622 78 A FCB 2*60 ;Third inflection point
00064 + IFNE 2*70-2*60 ;Check for divide by zero
00064 +A b623 0d A FCB ($FF+((2*70-2*60)/3))/(2*70-2*60) ;If not, calc slope
00064 + ENDC
00064 + IFEQ 2*70-2*60 ;Check for divide by zero
00064 + ENDC
00064 +
00065 MACRO INV INMF 2*60,2*70,2*80,2*90 ; (2) WARM
00065 +A b624 78 A FCB 2*60 ;First inflection point
00065 + IFNE 2*70-2*60 ;Check for divide by zero
00065 +A b625 0d A FCB ($FF+((2*70-2*60)/3))/(2*70-2*60) ;If not, calc slope
00065 + ENDC
00065 + IFEQ 2*70-2*60 ;Check for divide by zero
00065 + ENDC
00065 +A b626 a0 A FCB 2*80 ;Third inflection point
00065 + IFNE 2*90-2*80 ;Check for divide by zero
00065 +A b627 0d A FCB ($FF+((2*90-2*80)/3))/(2*90-2*80) ;If not, calc slope
00065 + ENDC
00065 + IFEQ 2*90-2*80 ;Check for divide by zero
00065 + ENDC
00065 +
00066 MACRO INV INMF 2*80,2*90,2*95,2*110 ; (3) HOT
00066 +A b628 a0 A FCB 2*80 ;First inflection point
00066 + IFNE 2*90-2*80 ;Check for divide by zero
00066 +A b629 0d A FCB ($FF+((2*90-2*80)/3))/(2*90-2*80) ;If not, calc slope
00066 + ENDC
00066 + IFEQ 2*90-2*80 ;Check for divide by zero
00066 + ENDC
00066 +A b62a be A FCB 2*95 ;Third inflection point
00066 + IFNE 2*110-2*95 ;Check for divide by zero
00066 +A b62b 08 A FCB ($FF+((2*110-2*95)/3))/(2*110-2*95) ;If not, calc slope
00066 + ENDC
00066 + IFEQ 2*110-2*95 ;Check for divide by zero
00066 + ENDC
M68HC11 Portable Cross Assembler 0.05 FUZZY11A.ASM Page 5
Thu Oct 10 16:08:33 1991
Options - MD,MC,NOG,NOU,W,MEX,CL,FMT,O
LINE S PC OPCO OPERANDS S LABEL MNEMO OPERANDS COMMENT
00066 +
00067 MACRO INV INMF 2*90,2*110,$FF,$FF ; (4) VERY_HOT
00067 +A b62c b4 A FCB 2*90 ;First inflection point
00067 + IFNE 2*110-2*90 ;Check for divide by zero
00067 +A b62d 06 A FCB ($FF+((2*110-2*90)/3))/(2*110-2*90) ;If not, calc slope
00067 + ENDC
00067 + IFEQ 2*110-2*90 ;Check for divide by zero
00067 + ENDC
00067 +A b62e ff A FCB $FF ;Third inflection point
00067 + IFNE $FF-$FF ;Check for divide by zero
00067 + ENDC
00067 + IFEQ $FF-$FF ;Check for divide by zero
00067 +A b62f 00 A FCB $00 ;Indicates vertical slope
00067 + ENDC
00067 +
00068
00069 A b630 b630 A IN3MF EQU * ;(3) DAYS_SINCE_RAIN
00070 MACRO INV INMF $00,$00,$00,$08 ; (0) NONE
00070 +A b630 00 A FCB $00 ;First inflection point
00070 + IFNE $00-$00 ;Check for divide by zero
00070 + ENDC
00070 + IFEQ $00-$00 ;Check for divide by zero
00070 +A b631 00 A FCB $00 ;Indicates vertical slope
00070 + ENDC
00070 +A b632 00 A FCB $00 ;Third inflection point
00070 + IFNE $08-$00 ;Check for divide by zero
00070 +A b633 20 A FCB ($FF+(($08-$00)/3))/($08-$00) ;If not, calc slope
00070 + ENDC
00070 + IFEQ $08-$00 ;Check for divide by zero
00070 + ENDC
00070 +
00071 MACRO INV INMF $00,$10,$10,$18 ; (1) SHORT
00071 +A b634 00 A FCB $00 ;First inflection point
00071 + IFNE $10-$00 ;Check for divide by zero
00071 +A b635 10 A FCB ($FF+(($10-$00)/3))/($10-$00) ;If not, calc slope
00071 + ENDC
00071 + IFEQ $10-$00 ;Check for divide by zero
00071 + ENDC
00071 +A b636 10 A FCB $10 ;Third inflection point
00071 + IFNE $18-$10 ;Check for divide by zero
00071 +A b637 20 A FCB ($FF+(($18-$10)/3))/($18-$10) ;If not, calc slope
00071 + ENDC
00071 + IFEQ $18-$10 ;Check for divide by zero
00071 + ENDC
00071 +
00072 MACRO INV INMF $10,$20,$28,$40 ; (2) MEDIUM
00072 +A b638 10 A FCB $10 ;First inflection point
00072 + IFNE $20-$10 ;Check for divide by zero
00072 +A b639 10 A FCB ($FF+(($20-$10)/3))/($20-$10) ;If not, calc slope
00072 + ENDC
00072 + IFEQ $20-$10 ;Check for divide by zero
00072 + ENDC
M68HC11 Portable Cross Assembler 0.05 FUZZY11A.ASM Page 6
Thu Oct 10 16:08:33 1991
Options - MD,MC,NOG,NOU,W,MEX,CL,FMT,O
LINE S PC OPCO OPERANDS S LABEL MNEMO OPERANDS COMMENT
00072 +A b63a 28 A FCB $28 ;Third inflection point
00072 + IFNE $40-$28 ;Check for divide by zero
00072 +A b63b 0a A FCB ($FF+(($40-$28)/3))/($40-$28) ;If not, calc slope
00072 + ENDC
00072 + IFEQ $40-$28 ;Check for divide by zero
00072 + ENDC
00072 +
00073 MACRO INV INMF $30,$40,$50,$60 ; (3) LONG
00073 +A b63c 30 A FCB $30 ;First inflection point
00073 + IFNE $40-$30 ;Check for divide by zero
00073 +A b63d 10 A FCB ($FF+(($40-$30)/3))/($40-$30) ;If not, calc slope
00073 + ENDC
00073 + IFEQ $40-$30 ;Check for divide by zero
00073 + ENDC
00073 +A b63e 50 A FCB $50 ;Third inflection point
00073 + IFNE $60-$50 ;Check for divide by zero
00073 +A b63f 10 A FCB ($FF+(($60-$50)/3))/($60-$50) ;If not, calc slope
00073 + ENDC
00073 + IFEQ $60-$50 ;Check for divide by zero
00073 + ENDC
00073 +
00074 MACRO INV INMF $50,$70,$FF,$FF ; (4) VERY_LONG
00074 +A b640 50 A FCB $50 ;First inflection point
00074 + IFNE $70-$50 ;Check for divide by zero
00074 +A b641 08 A FCB ($FF+(($70-$50)/3))/($70-$50) ;If not, calc slope
00074 + ENDC
00074 + IFEQ $70-$50 ;Check for divide by zero
00074 + ENDC
00074 +A b642 ff A FCB $FF ;Third inflection point
00074 + IFNE $FF-$FF ;Check for divide by zero
00074 + ENDC
00074 + IFEQ $FF-$FF ;Check for divide by zero
00074 +A b643 00 A FCB $00 ;Indicates vertical slope
00074 + ENDC
00074 +
00075
00076 A b644 b644 A IN4MF EQU * ;Not used
00077 A b644 b644 A IN5MF EQU * ;Not used
00078 A b644 b644 A IN6MF EQU * ;Not used
00079 A b644 b644 A IN7MF EQU * ;Not used
00080
00081 A b644 b644 A SGLTN_POS EQU * ;Output singleton positions
00082 A b644 b644 A OUT0MF EQU * ;(0) WATERING_TIME
00083 A b644 00 A FCB $00 ;(0) CUT_OFF
00084 A b645 10 A FCB $10 ;(1) DECREASE_GREATLY
00085 A b646 40 A FCB $40 ;(2) DECREASE
00086 A b647 80 A FCB $80 ;(3) NORMAL
00087 A b648 b0 A FCB $B0 ;(4) INCREASE
00088 A b649 f0 A FCB $F0 ;(5) INCREASE_GREATLY
00089 A b64a 0000 A FCB 0,0 ;Unused; Must fill 8 per output
00090 A b64c 0000000000A OUT1MF FCB 0,0,0,0,0,0,0,0 ;Not used
00091 A b654 0000000000A OUT2MF FCB 0,0,0,0,0,0,0,0 ;Not used
M68HC11 Portable Cross Assembler 0.05 FUZZY11A.ASM Page 7
Thu Oct 10 16:08:33 1991
Options - MD,MC,NOG,NOU,W,MEX,CL,FMT,O
LINE S PC OPCO OPERANDS S LABEL MNEMO OPERANDS COMMENT
00092 A b65c 0000000000A OUT3MF FCB 0,0,0,0,0,0,0,0 ;Not used
00093 *
00094 * Each If part is of the form 00AA AXXX where AAA is a label (0-7)
00095 * and XXX is an input (0-7). If parts are connected by ANDs. A rule
00096 * may have any number of if parts (usually 2-8). Then parts are of
00097 * the form 100Y YCCC where the MSB set indicates a then part, YY is
00098 * the output number (0-3), and CCC is the output label (singleton
00099 * 0-7). A rule may have any number of then parts (usually 1 or 2).
00100 * A $FF indicates the end of a series of rules (number not limited).
00101 *
00102 * FCB INx + 8*LABa ;If input XXX is label AAA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -