⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fuzzy11a.lst

📁 Embedded magazine soure code for the year 1991
💻 LST
📖 第 1 页 / 共 3 页
字号:
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 + -