global ?_atan global ?_atof global ?_cos global ?_diag global ?_exp global ?_fabt global ?_fatn global ?_fcos global ?_fexp global ?_fitr global ?_flog global ?_floor global ?_fran global ?_fsgn global ?_fsin global ?_fsqt global ?_log global ?_lookup global ?_malloc global ?_pow global ?_sin global ?_sqrt global ?_strcmp global ?_strcpy global ?_strlen global ?a_eval global ?a_getsym global ?a_lookup global ?a_primary global ?a_term global __ctype_ global _atan signat _atan,4211 global _atof signat _atof,4211 global _cos signat _cos,4211 global _ctp global _diag signat _diag,4216 global _drand48 signat _drand48,83 global _eval signat _eval,83 FNSIZE _eval,8,0 FNCALL _eval,_getnb FNCALL _eval,_primary FNCALL _eval,ftneg FNCALL _eval,ftadd_f FNCALL _eval,ftsub_f global _exp signat _exp,4211 global _fabt signat _fabt,4211 FNSIZE _fabt,0,3 FNCALL _fabt,ftcmp FNCALL _fabt,ftneg global _fatn signat _fatn,4211 FNSIZE _fatn,0,3 FNCALL _fatn,_atan global _fcos signat _fcos,4211 FNSIZE _fcos,0,3 FNCALL _fcos,_cos global _fexp signat _fexp,4211 FNSIZE _fexp,0,3 FNCALL _fexp,_exp global _fitr signat _fitr,4211 FNSIZE _fitr,0,3 FNCALL _fitr,_floor FNCALL _fitr,ftcmp FNCALL _fitr,ftneg global _flog signat _flog,4211 FNSIZE _flog,0,3 FNCALL _flog,_log global _floor signat _floor,4211 global _fran signat _fran,4211 FNSIZE _fran,0,3 FNCALL _fran,_drand48 global _fsgn signat _fsgn,4211 FNSIZE _fsgn,0,3 FNCALL _fsgn,ftcmp global _fsin signat _fsin,4211 FNSIZE _fsin,0,3 FNCALL _fsin,_sin global _fsqt signat _fsqt,4211 FNSIZE _fsqt,0,3 FNCALL _fsqt,_diag FNCALL _fsqt,_sqrt FNCALL _fsqt,ftcmp global _getnb signat _getnb,66 global _getsym signat _getsym,89 FNSIZE _getsym,26,0 FNCALL _getsym,_getnb FNCALL _getsym,_diag FNCALL _getsym,_eval FNCALL _getsym,_lookup FNCALL _getsym,_strlen FNCALL _getsym,_malloc FNCALL _getsym,_strcpy FNCALL _getsym,string_table FNCALL _getsym,fttol global _log signat _log,4211 global _lookup signat _lookup,12409 FNSIZE _lookup,4,4 FNCALL _lookup,_strcmp global _malloc signat _malloc,4217 global _pow signat _pow,8307 global _primary signat _primary,83 FNSIZE _primary,8,0 FNCALL _primary,_term FNCALL _primary,_pow FNCALL _primary,_getnb FNCALL _primary,ftmul_f FNCALL _primary,ftdiv_f global _sin signat _sin,4211 global _sqrt signat _sqrt,4211 global _strcmp signat _strcmp,8290 global _strcpy signat _strcpy,8297 global _strlen signat _strlen,4202 global _symv global _term signat _term,83 FNSIZE _term,55,0 FNCALL _term,_getnb FNCALL _term,_eval FNCALL _term,_diag FNCALL _term,_atof FNCALL _term,_lookup FNCALL _term,string_table FNCALL _term,fttol FNINDIR _term,4211 global code_ptr global ftadd_f global ftcmp global ftdiv_f global ftmul_f global ftneg global ftsub_f global fttol global string_table global used_btemp0 global used_btemp1 global used_btemp2 global used_btemp3 global used_btemp4 global used_btemp5 global used_code_ptr processor 12F629 psect text0,local,class=CODE,delta=2 psect text1,local,class=CODE,delta=2 psect text2,local,class=CODE,delta=2 psect text3,local,class=CODE,delta=2 psect text4,local,class=CODE,delta=2 psect text5,local,class=CODE,delta=2 psect text6,local,class=CODE,delta=2 psect text7,local,class=CODE,delta=2 psect text8,local,class=CODE,delta=2 psect text9,local,class=CODE,delta=2 psect text10,local,class=CODE,delta=2 psect text11,local,class=CODE,delta=2 psect text12,local,class=CODE,delta=2 psect text13,local,class=CODE,delta=2 psect text14,local,class=CODE,delta=2 psect strings,global,class=STRING,delta=2 psect temp,global,ovrld,class=BANK0,space=1 file "c:\DOCUME~1\Vince\LOCALS~1\Temp\s1fc." psect text0 file "focal1.c" line 12 _eval ; _c assigned to ?a_eval+0 _eval$c set ?a_eval ; _rop assigned to ?a_eval+2 _eval$rop set ?a_eval+2 ; _val assigned to ?a_eval+5 _eval$val set ?a_eval+5 line 17 ;focal1.c: 10: double bcf 3,5 call _getnb movf btemp,w movwf ?a_eval movf btemp+1,w movwf ?a_eval+1 movwf btemp+1 movf ?a_eval,w movwf btemp xorlw 43 iorwf btemp+1,w btfsc 3,2 goto u30 movf ?a_eval,w xorlw 45 iorwf ?a_eval+1,w btfss 3,2 goto l13 u30 line 18 ;focal1.c: 18: val = primary(); call _primary movf btemp,w movwf ?a_eval+5 movf btemp+1,w movwf ?a_eval+6 movf btemp+2,w movwf ?a_eval+7 line 19 ;focal1.c: 19: if (c == '-') movf ?a_eval,w xorlw 45 iorwf ?a_eval+1,w btfss 3,2 goto l16 line 20 ;focal1.c: 20: val = -val; movf ?a_eval+5,w movwf btemp movf ?a_eval+6,w movwf btemp+1 movf ?a_eval+7,w movwf btemp+2 call ftneg goto L1 line 21 ;focal1.c: 21: } else { l13 line 22 ;focal1.c: 22: --ctp; decf _ctp line 23 ;focal1.c: 23: val = primary(); call _primary L1 movf btemp,w movwf ?a_eval+5 movf btemp+1,w movwf ?a_eval+6 movf btemp+2,w movwf ?a_eval+7 line 25 ;focal1.c: 24: } goto l16 l17 line 26 ;focal1.c: 26: rop = primary(); call _primary movf btemp,w movwf ?a_eval+2 movf btemp+1,w movwf ?a_eval+3 movf btemp+2,w movwf ?a_eval+4 line 27 ;focal1.c: 27: if (c == '+') movf ?a_eval,w xorlw 43 iorwf ?a_eval+1,w btfss 3,2 goto l19 line 28 ;focal1.c: 28: val = val + rop; movf ?a_eval+2,w movwf btemp+3 movf ?a_eval+3,w movwf btemp+4 movf ?a_eval+4,w movwf btemp+5 movlw ?a_eval+5 movwf 4 call ftadd_f goto l16 line 29 l19 line 30 ;focal1.c: 29: else movf ?a_eval+2,w movwf btemp+3 movf ?a_eval+3,w movwf btemp+4 movf ?a_eval+4,w movwf btemp+5 movlw ?a_eval+5 movwf 4 call ftsub_f line 31 l16 line 25 bcf 3,5 call _getnb movf btemp,w movwf ?a_eval movf btemp+1,w movwf ?a_eval+1 movwf btemp+1 movf ?a_eval,w movwf btemp xorlw 43 iorwf btemp+1,w btfsc 3,2 goto l17 movf ?a_eval,w xorlw 45 iorwf ?a_eval+1,w btfsc 3,2 goto l17 line 32 ;focal1.c: 31: } decf _ctp line 33 ;focal1.c: 33: return (val); movf ?a_eval+5,w movwf btemp movf ?a_eval+6,w movwf btemp+1 movf ?a_eval+7,w movwf btemp+2 line 34 ;focal1.c: 34: } return ;W free psect text1 line 38 _primary ; _c assigned to ?a_primary+0 _primary$c set ?a_primary ; _rop assigned to ?a_primary+2 _primary$rop set ?a_primary+2 ; _val assigned to ?a_primary+5 _primary$val set ?a_primary+5 line 43 ;focal1.c: 36: double bcf 3,5 call _term movf btemp,w movwf ?a_primary+5 movf btemp+1,w movwf ?a_primary+6 movf btemp+2,w movwf ?a_primary+7 line 44 ;focal1.c: 44: while ((c = getnb())=='*' || c=='/' || c=='^') { goto l22 l23 line 45 ;focal1.c: 45: rop = term(); call _term movf btemp,w movwf ?a_primary+2 movf btemp+1,w movwf ?a_primary+3 movf btemp+2,w movwf ?a_primary+4 line 46 ;focal1.c: 46: if (c == '*') movf ?a_primary,w xorlw 42 iorwf ?a_primary+1,w btfss 3,2 goto l25 line 47 ;focal1.c: 47: val = val * rop; movf ?a_primary+2,w movwf btemp+3 movf ?a_primary+3,w movwf btemp+4 movf ?a_primary+4,w movwf btemp+5 movlw ?a_primary+5 movwf 4 call ftmul_f goto l22 line 48 l25 ;focal1.c: 48: else if (c == '/') movf ?a_primary,w xorlw 47 iorwf ?a_primary+1,w btfss 3,2 goto l27 line 49 ;focal1.c: 49: val = val / rop; movf ?a_primary+2,w movwf btemp+3 movf ?a_primary+3,w movwf btemp+4 movf ?a_primary+4,w movwf btemp+5 movlw ?a_primary+5 movwf 4 call ftdiv_f goto l22 line 50 l27 line 51 ;focal1.c: 50: else movf ?a_primary+5,w movwf ?_pow movf ?a_primary+6,w movwf ?_pow+1 movf ?a_primary+7,w movwf ?_pow+2 movf ?a_primary+2,w movwf ?_pow+3 movf ?a_primary+3,w movwf ?_pow+4 movf ?a_primary+4,w movwf ?_pow+5 call _pow movf btemp,w movwf ?a_primary+5 movf btemp+1,w movwf ?a_primary+6 movf btemp+2,w movwf ?a_primary+7 line 52 l22 line 44 bcf 3,5 call _getnb movf btemp,w movwf ?a_primary movf btemp+1,w movwf ?a_primary+1 movwf btemp+1 movf ?a_primary,w movwf btemp xorlw 42 iorwf btemp+1,w btfsc 3,2 goto l23 movf ?a_primary,w xorlw 47 iorwf ?a_primary+1,w btfsc 3,2 goto l23 movf ?a_primary,w xorlw 94 iorwf ?a_primary+1,w btfsc 3,2 goto l23 line 53 ;focal1.c: 52: } decf _ctp line 54 ;focal1.c: 54: return (val); movf ?a_primary+5,w movwf btemp movf ?a_primary+6,w movwf btemp+1 movf ?a_primary+7,w movwf btemp+2 line 55 ;focal1.c: 55: } return ;W free psect text2 line 59 _term ; _sp assigned to ?a_term+0 _term$sp set ?a_term ; _cp assigned to ?a_term+1 _term$cp set ?a_term+1 ; _fexp assigned to ?a_term+2 _term$fexp set ?a_term+2 ; _subs assigned to ?a_term+4 _term$subs set ?a_term+4 ; _type assigned to ?a_term+6 _term$type set ?a_term+6 ; _fsign assigned to ?a_term+8 _term$fsign set ?a_term+8 ; _fdot assigned to ?a_term+10 _term$fdot set ?a_term+10 ; _c assigned to ?a_term+12 _term$c set ?a_term+12 ; _val assigned to ?a_term+14 _term$val set ?a_term+14 ; _id assigned to ?a_term+17 _term$id set ?a_term+17 ; _nbuf assigned to ?a_term+33 _term$nbuf set ?a_term+33 ; Fake assigned to ?a_term+53 _term$ake set ?a_term+53 line 67 ;focal1.c: 57: double bcf 3,5 clrf ?a_term+4 clrf ?a_term+5 line 72 ;focal1.c: 68: register struct sym *sp; bcf 3,5 call _getnb movf btemp,w movwf ?a_term+12 movf btemp+1,w movwf ?a_term+13 movwf btemp+1 movf ?a_term+12,w movwf btemp xorlw 40 iorwf btemp+1,w btfsc 3,2 goto u200 movf ?a_term+12,w xorlw 91 iorwf ?a_term+13,w btfsc 3,2 goto u200 movf ?a_term+12,w xorlw 60 iorwf ?a_term+13,w btfss 3,2 goto l30 u200 line 73 ;focal1.c: 73: val = eval(); call _eval movf btemp,w movwf ?a_term+14 movf btemp+1,w movwf ?a_term+15 movf btemp+2,w movwf ?a_term+16 line 74 ;focal1.c: 74: if (++c != ')') incf ?a_term+12 btfsc 3,2 incf ?a_term+13 movf ?a_term+13,w movwf btemp+1 movf ?a_term+12,w movwf btemp xorlw 41 iorwf btemp+1,w btfsc 3,2 goto l31 line 75 ;focal1.c: 75: ++c; incf ?a_term+12 btfsc 3,2 incf ?a_term+13 l31 line 76 ;focal1.c: 76: if (c != getnb()) call _getnb movf ?a_term+13,w xorwf btemp+1,w btfss 3,2 goto u225 movf ?a_term+12,w xorwf btemp,w u225 btfsc 3,2 goto l32 line 77 ;focal1.c: 77: diag("Mismatched enclosures"); movlw low u19 movwf ?_diag movlw high u19 movwf ?_diag+1 call _diag l32 line 78 ;focal1.c: 78: return (val); movf ?a_term+14,w movwf btemp movf ?a_term+15,w movwf btemp+1 movf ?a_term+16,w movwf btemp+2 return line 79 l30 line 80 ;focal1.c: 79: } movf ?a_term+12,w xorlw 46 iorwf ?a_term+13,w btfsc 3,2 goto u250 movf ?a_term+12,w movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table movwf btemp btfss btemp,2 goto l33 u250 line 81 ;focal1.c: 81: fsign = 1; clrf ?a_term+8 incf ?a_term+8 clrf ?a_term+9 line 82 ;focal1.c: 82: fexp = 0; clrf ?a_term+2 clrf ?a_term+3 line 83 ;focal1.c: 83: fdot = 0; clrf ?a_term+10 clrf ?a_term+11 line 84 ;focal1.c: 84: if (c == '.') movf ?a_term+12,w xorlw 46 iorwf ?a_term+13,w btfsc 3,2 line 85 ;focal1.c: 85: ++fdot; incf ?a_term+10 btfsc 3,2 incf ?a_term+11 line 86 ;focal1.c: 86: cp = &nbuf[0]; movlw ?a_term+33 movwf ?a_term+1 line 87 l35 line 88 ;focal1.c: 87: for (;;) { ;focal1.c: 88: if (cp >= &nbuf[19]) movlw ?a_term+52 subwf ?a_term+1,w btfss 3,0 goto l38 line 89 ;focal1.c: 89: diag("Number too long"); movlw low u29 movwf ?_diag movlw high u29 movwf ?_diag+1 bcf 3,5 call _diag l38 line 90 ;focal1.c: 90: *cp++ = c; movf ?a_term+1,w movwf 4 movf ?a_term+12,w movwf 0 incf ?a_term+1 line 91 ;focal1.c: 91: if ((c = *ctp++) == '.') { incf _ctp decf _ctp,w movwf 4 movf 0,w movwf ?a_term+12 clrf ?a_term+13 movf ?a_term+13,w movwf btemp+1 movf ?a_term+12,w movwf btemp xorlw 46 iorwf btemp+1,w btfss 3,2 goto l39 line 92 ;focal1.c: 92: if (fdot++) movf ?a_term+11,w movwf btemp+1 movf ?a_term+10,w movwf btemp incf ?a_term+10 btfsc 3,2 incf ?a_term+11 goto L2 line 94 ;focal1.c: 93: break; ;focal1.c: 94: } else if (c == 'e') { l39 movf ?a_term+12,w xorlw 101 iorwf ?a_term+13,w btfss 3,2 goto l42 line 95 ;focal1.c: 95: if (fexp++) movf ?a_term+3,w movwf btemp+1 movf ?a_term+2,w movwf btemp incf ?a_term+2 btfsc 3,2 incf ?a_term+3 iorwf btemp+1,w btfss 3,2 goto l36 line 97 ;focal1.c: 96: break; ;focal1.c: 97: fsign = 0; clrf ?a_term+8 clrf ?a_term+9 line 98 ;focal1.c: 98: fdot = 1; clrf ?a_term+10 incf ?a_term+10 clrf ?a_term+11 line 99 ;focal1.c: 99: } else if (c=='+' || c=='-') { goto l35 l42 movf ?a_term+12,w xorlw 43 iorwf ?a_term+13,w btfsc 3,2 goto u340 movf ?a_term+12,w xorlw 45 iorwf ?a_term+13,w btfss 3,2 goto l45 u340 line 100 ;focal1.c: 100: if (fsign++) movf ?a_term+9,w movwf btemp+1 movf ?a_term+8,w movwf btemp incf ?a_term+8 btfsc 3,2 incf ?a_term+9 L2 iorwf btemp+1,w btfss 3,2 goto l36 goto l35 line 102 ;focal1.c: 101: break; ;focal1.c: 102: } else if (!((_ctype_+1)[(unsigned char)(c)]&0x04)) l45 movf ?a_term+12,w movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table movwf btemp btfsc btemp,2 goto l35 line 104 ;focal1.c: 103: break; ;focal1.c: 104: } l36 line 105 ;focal1.c: 105: --ctp; decf _ctp line 106 ;focal1.c: 106: *cp = '\0'; movf ?a_term+1,w movwf 4 clrf 0 line 107 ;focal1.c: 107: return (atof(nbuf)); movlw ?a_term+33 movwf ?_atof movlw 128 movwf ?_atof+1 bcf 3,5 goto _atof line 108 l33 line 109 ;focal1.c: 108: } movf ?a_term+12,w movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table andlw 3 btfss 3,2 goto l49 line 110 ;focal1.c: 110: diag("Expression syntax"); movlw low u39 movwf ?_diag movlw high u39 movwf ?_diag+1 call _diag l49 line 111 ;focal1.c: 111: cp = &id[0]; movlw ?a_term+17 movwf ?a_term+1 line 112 l52 line 113 ;focal1.c: 112: do { ;focal1.c: 113: if (cp < &id[16-1]) movlw ?a_term+32 subwf ?a_term+1,w btfsc 3,0 goto l53 line 114 ;focal1.c: 114: *cp++ = c; movf ?a_term+1,w movwf 4 movf ?a_term+12,w movwf 0 incf ?a_term+1 l53 line 115 ;focal1.c: 115: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?a_term+12 clrf ?a_term+13 incf _ctp line 116 ;focal1.c: 116: } while (((_ctype_+1)[(unsigned char)(c)]&(0x01|0x02|0x04))); movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table andlw 7 btfss 3,2 goto l52 line 117 ;focal1.c: 117: *cp = 0; movf ?a_term+1,w movwf 4 clrf 0 line 119 ;focal1.c: 119: if (id[0]=='f' && (sp=lookup(id, 2, 0))!=(0)) { movf ?a_term+17,w xorlw 102 btfss 3,2 goto l54 movlw 2 movwf ?_lookup clrf ?_lookup+1 clrf ?_lookup+2 clrf ?_lookup+3 movlw ?a_term+17 bcf 3,5 call _lookup movwf ?a_term movf ?a_term btfsc 3,2 goto l54 goto l55 line 120 ;focal1.c: 120: while (c==' ' || c=='\t') l56 line 121 ;focal1.c: 121: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?a_term+12 clrf ?a_term+13 incf _ctp l55 line 120 movf ?a_term+12,w xorlw 32 iorwf ?a_term+13,w btfsc 3,2 goto l56 movf ?a_term+12,w xorlw 9 iorwf ?a_term+13,w btfsc 3,2 goto l56 line 122 ;focal1.c: 122: if (c != '(') movf ?a_term+12,w xorlw 40 iorwf ?a_term+13,w btfsc 3,2 goto l58 line 123 ;focal1.c: 123: diag("Missing `(' for function"); movlw low u49 movwf ?_diag movlw high u49 movwf ?_diag+1 bcf 3,5 call _diag l58 line 124 ;focal1.c: 124: val = eval(); bcf 3,5 call _eval movf btemp,w movwf ?a_term+14 movf btemp+1,w movwf ?a_term+15 movf btemp+2,w movwf ?a_term+16 line 125 ;focal1.c: 125: if (getnb() != ')') call _getnb movf btemp,w xorlw 41 iorwf btemp+1,w btfsc 3,2 goto l59 line 126 ;focal1.c: 126: diag("Missing `)' for function"); movlw low u59 movwf ?_diag movlw high u59 movwf ?_diag+1 call _diag l59 line 127 ;focal1.c: 127: return ((*sp->s_un.s_fp)(val)); movf ?a_term,w addlw 5 movwf 4 movf 0,w movwf ?a_term+53 incf 4 movf 0,w movwf ?a_term+54 movwf code_ptr+1 movlw -1 addwf ?a_term+53,w btfss 3,0 decf code_ptr+1 call string_table movwf 4 movf ?a_term+14,w movwf 0 incf 4 movf ?a_term+15,w movwf 0 incf 4 movf ?a_term+16,w movwf 0 movf ?a_term+54,w movwf code_ptr+1 movf ?a_term+53,w call string_table return line 128 l54 line 130 ;focal1.c: 128: } clrf ?a_term+6 clrf ?a_term+7 line 131 ;focal1.c: 131: while (c==' ' || c=='\t') goto l60 l61 line 132 ;focal1.c: 132: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?a_term+12 clrf ?a_term+13 incf _ctp l60 line 131 movf ?a_term+12,w xorlw 32 iorwf ?a_term+13,w btfsc 3,2 goto l61 movf ?a_term+12,w xorlw 9 iorwf ?a_term+13,w btfsc 3,2 goto l61 line 133 ;focal1.c: 133: if (c == '(') { movf ?a_term+12,w xorlw 40 iorwf ?a_term+13,w btfss 3,2 goto l63 line 134 ;focal1.c: 134: type = 1; clrf ?a_term+6 incf ?a_term+6 clrf ?a_term+7 line 135 ;focal1.c: 135: subs = (int) eval(); bcf 3,5 call _eval call fttol movf btemp,w movwf ?a_term+4 movf btemp+1,w movwf ?a_term+5 line 136 ;focal1.c: 136: if (getnb() != ')') call _getnb movf btemp,w xorlw 41 iorwf btemp+1,w btfsc 3,2 goto l65 line 137 ;focal1.c: 137: diag("Missing ) in subscript"); movlw low u69 movwf ?_diag movlw high u69 movwf ?_diag+1 call _diag line 138 ;focal1.c: 138: } else goto l65 l63 line 139 ;focal1.c: 139: --ctp; decf _ctp l65 line 140 ;focal1.c: 140: if ((sp=lookup(id, type, subs)) == (0)) movf ?a_term+6,w movwf ?_lookup movf ?a_term+7,w movwf ?_lookup+1 movf ?a_term+4,w movwf ?_lookup+2 movf ?a_term+5,w movwf ?_lookup+3 movlw ?a_term+17 bcf 3,5 call _lookup movwf ?a_term movf ?a_term btfss 3,2 goto l66 line 141 ;focal1.c: 141: diag("Undefined variable"); movlw low u79 movwf ?_diag movlw high u79 movwf ?_diag+1 call _diag l66 line 142 ;focal1.c: 142: return (sp->s_un.s_value); movf ?a_term,w addlw 5 movwf 4 movf 0,w movwf btemp incf 4 movf 0,w movwf btemp+1 incf 4 movf 0,w movwf btemp+2 line 143 ;focal1.c: 143: } return ;W free psect text3 line 151 _lookup ; _id assigned to ?a_lookup+0 _lookup$id set ?a_lookup ; _sp assigned to ?a_lookup+1 _lookup$sp set ?a_lookup+1 ; _ix assigned to ?a_lookup+2 _lookup$ix set ?a_lookup+2 line 155 ;_id stored from w bcf 3,5 movwf ?a_lookup ;focal1.c: 146: struct sym * decf ?_lookup,w iorwf ?_lookup+1,w btfsc 3,2 goto u566 incf ?a_lookup,w movwf 4 movf 0,w movwf btemp+2 clrf btemp+3 movlw 5 movwf btemp u555 bcf 3,0 rlf btemp+2 rlf btemp+3 decfsz btemp goto u555 goto L3 u566 incf ?a_lookup,w movwf 4 movf 0,w movwf btemp+2 clrf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 movf ?_lookup+2,w addwf btemp+2 btfsc 3,0 incf btemp+3 movf ?_lookup+3,w addwf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 L3 movf ?a_lookup,w movwf 4 movf 0,w movwf btemp clrf btemp+1 movf btemp+2,w addwf btemp btfsc 3,0 incf btemp+1 movf btemp+3,w addwf btemp+1 movlw 255 andwf btemp,w movwf ?a_lookup+2 clrf ?a_lookup+3 line 156 ;focal1.c: 156: sp = symv[ix]; addlw _symv line 162 L4 movwf 4 movf 0,w movwf ?a_lookup+1 line 157 movf ?a_lookup+1 btfsc 3,2 goto l70 line 160 ;focal1.c: 157: while (sp != (0)) { ;focal1.c: 158: if (sp->s_type == type incf ?a_lookup+1,w movwf 4 movf ?_lookup,w xorwf 0,w btfss 3,2 goto u575 movf ?_lookup+1,w incf 4 xorwf 0,w u575 btfss 3,2 goto l71 decf ?_lookup,w iorwf ?_lookup+1,w btfss 3,2 goto u610 movf ?a_lookup+1,w addlw 3 movwf 4 movf ?_lookup+2,w xorwf 0,w btfss 3,2 goto u595 movf ?_lookup+3,w incf 4 xorwf 0,w u595 btfss 3,2 goto l71 u610 movf ?a_lookup,w movwf ?_strcmp movlw 128 movwf ?_strcmp+1 movf ?a_lookup+1,w addlw 8 movwf ?_strcmp+2 movlw 128 movwf ?_strcmp+3 bcf 3,5 call _strcmp movf btemp+1,w iorwf btemp,w btfsc 3,2 goto l70 line 161 ;focal1.c: 161: break; l71 line 162 ;focal1.c: 162: sp = sp->s_fp; movf ?a_lookup+1,w line 157 goto L4 l70 line 164 ;focal1.c: 163: } movf ?a_lookup+1,w line 165 ;focal1.c: 165: } return ;uses W psect text4 line 169 _getsym ; _cp assigned to ?a_getsym+0 _getsym$cp set ?a_getsym ; _sp assigned to ?a_getsym+1 _getsym$sp set ?a_getsym+1 ; _ix assigned to ?a_getsym+2 _getsym$ix set ?a_getsym+2 ; _subs assigned to ?a_getsym+4 _getsym$subs set ?a_getsym+4 ; _type assigned to ?a_getsym+6 _getsym$type set ?a_getsym+6 ; _c assigned to ?a_getsym+8 _getsym$c set ?a_getsym+8 ; _id assigned to ?a_getsym+10 _getsym$id set ?a_getsym+10 line 174 ;focal1.c: 167: struct sym * bcf 3,5 clrf ?a_getsym+4 clrf ?a_getsym+5 line 177 ;focal1.c: 175: int ix; bcf 3,5 call _getnb movf btemp,w movwf ?a_getsym+8 movf btemp+1,w movwf ?a_getsym+9 movf ?a_getsym+8,w movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table andlw 3 btfss 3,2 goto l73 line 178 ;focal1.c: 178: diag("Missing variable"); movlw low u89 movwf ?_diag movlw high u89 movwf ?_diag+1 call _diag l73 line 179 ;focal1.c: 179: cp = &id[0]; movlw ?a_getsym+10 movwf ?a_getsym line 180 l76 line 181 ;focal1.c: 180: do { ;focal1.c: 181: if (cp < &id[16-1]) movlw ?a_getsym+25 subwf ?a_getsym,w btfsc 3,0 goto l77 line 182 ;focal1.c: 182: *cp++ = c; movf ?a_getsym,w movwf 4 movf ?a_getsym+8,w movwf 0 incf ?a_getsym l77 line 183 ;focal1.c: 183: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?a_getsym+8 clrf ?a_getsym+9 incf _ctp line 184 ;focal1.c: 184: } while (((_ctype_+1)[(unsigned char)(c)]&(0x01|0x02|0x04))); movwf btemp clrf btemp+1 movlw 1 addwf btemp btfsc 3,0 incf btemp+1 movf btemp+1,w addlw high __ctype_ movwf code_ptr+1 movf btemp,w addlw low __ctype_ btfsc 3,0 incf code_ptr+1 call string_table andlw 7 btfss 3,2 goto l76 line 185 ;focal1.c: 185: *cp = 0; movf ?a_getsym,w movwf 4 clrf 0 line 186 ;focal1.c: 186: type = 0; clrf ?a_getsym+6 clrf ?a_getsym+7 line 187 ;focal1.c: 187: while (c==' ' || c=='\t') goto l78 l79 line 188 ;focal1.c: 188: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?a_getsym+8 clrf ?a_getsym+9 incf _ctp l78 line 187 movf ?a_getsym+8,w xorlw 32 iorwf ?a_getsym+9,w btfsc 3,2 goto l79 movf ?a_getsym+8,w xorlw 9 iorwf ?a_getsym+9,w btfsc 3,2 goto l79 line 189 ;focal1.c: 189: if (c == '(') { movf ?a_getsym+8,w xorlw 40 iorwf ?a_getsym+9,w btfss 3,2 goto l81 line 190 ;focal1.c: 190: type = 1; clrf ?a_getsym+6 incf ?a_getsym+6 clrf ?a_getsym+7 line 191 ;focal1.c: 191: subs = (int) eval(); bcf 3,5 call _eval call fttol movf btemp,w movwf ?a_getsym+4 movf btemp+1,w movwf ?a_getsym+5 line 192 ;focal1.c: 192: if (getnb() != ')') call _getnb movf btemp,w xorlw 41 iorwf btemp+1,w btfsc 3,2 goto l83 line 193 ;focal1.c: 193: diag("Bad subscript"); movlw low u99 movwf ?_diag movlw high u99 movwf ?_diag+1 call _diag line 194 ;focal1.c: 194: } else goto l83 l81 line 195 ;focal1.c: 195: --ctp; decf _ctp l83 line 196 ;focal1.c: 196: if ((sp=lookup(id, type, subs)) == (0)) { movf ?a_getsym+6,w movwf ?_lookup movf ?a_getsym+7,w movwf ?_lookup+1 movf ?a_getsym+4,w movwf ?_lookup+2 movf ?a_getsym+5,w movwf ?_lookup+3 movlw ?a_getsym+10 bcf 3,5 call _lookup movwf ?a_getsym+1 movf ?a_getsym+1 btfss 3,2 goto l84 line 197 ;focal1.c: 197: sp = (struct sym *)malloc(sizeof(*sp)+strlen(id)+1); movlw ?a_getsym+10 movwf ?_strlen movlw 128 movwf ?_strlen+1 call _strlen movlw 10 addwf btemp,w movwf ?_malloc movlw 0 btfsc 3,0 movlw 1 addwf btemp+1,w movwf ?_malloc+1 call _malloc movwf ?a_getsym+1 line 198 ;focal1.c: 198: if (sp == (0)) movf ?a_getsym+1 btfss 3,2 goto l85 line 199 ;focal1.c: 199: diag("Out of space (symbols)"); movlw low u109 movwf ?_diag movlw high u109 movwf ?_diag+1 call _diag l85 line 200 ;focal1.c: 200: ix = ((int)(((unsigned int)((type == 1) ? ((((unsigned char)(id)[1] << 5) + (unsigned char)(id)[0]) + ((subs) << 3)) : (((unsigned char)(id)[1] << 5) + (unsigned char)(id)[0]))) & 255)); decf ?a_getsym+6,w iorwf ?a_getsym+7,w btfsc 3,2 goto u776 movf ?a_getsym+11,w movwf btemp+2 clrf btemp+3 movlw 5 movwf btemp u765 bcf 3,0 rlf btemp+2 rlf btemp+3 decfsz btemp goto u765 goto L5 u776 bcf 3,5 movf ?a_getsym+11,w movwf btemp+2 clrf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 movf ?a_getsym+4,w addwf btemp+2 btfsc 3,0 incf btemp+3 movf ?a_getsym+5,w addwf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 bcf 3,0 rlf btemp+2 rlf btemp+3 L5 movf ?a_getsym+10,w movwf btemp clrf btemp+1 movf btemp+2,w addwf btemp btfsc 3,0 incf btemp+1 movf btemp+3,w addwf btemp+1 movlw 255 andwf btemp,w bcf 3,5 movwf ?a_getsym+2 clrf ?a_getsym+3 line 201 ;focal1.c: 201: sp->s_fp = symv[ix]; addlw _symv movwf 4 movf 0,w movwf btemp movf ?a_getsym+1,w movwf 4 movf btemp,w movwf 0 line 202 ;focal1.c: 202: symv[ix] = sp; movf ?a_getsym+2,w addlw _symv movwf 4 movf ?a_getsym+1,w movwf 0 line 203 ;focal1.c: 203: sp->s_type = type; incf ?a_getsym+1,w movwf 4 movf ?a_getsym+6,w movwf 0 incf 4 movf ?a_getsym+7,w movwf 0 line 204 ;focal1.c: 204: sp->s_subs = subs; movf ?a_getsym+1,w addlw 3 movwf 4 movf ?a_getsym+4,w movwf 0 incf 4 movf ?a_getsym+5,w movwf 0 line 205 ;focal1.c: 205: strcpy(sp->s_id, id); movlw ?a_getsym+10 movwf ?_strcpy movlw 128 movwf ?_strcpy+1 movf ?a_getsym+1,w addlw 8 call _strcpy line 206 l84 line 207 ;focal1.c: 206: } movf ?a_getsym+1,w line 208 ;focal1.c: 208: } return ;uses W psect text5 line 214 _fsin line 215 ;focal1.c: 211: double bcf 3,5 movf ?_fsin,w movwf ?_sin movf ?_fsin+1,w movwf ?_sin+1 movf ?_fsin+2,w movwf ?_sin+2 bcf 3,5 goto _sin line 216 ;focal1.c: 216: } return ;W free ; param _arg assigned to ?_fcos+0 _fcos$arg set ?_fcos psect text6 line 221 _fcos line 222 ;focal1.c: 218: double bcf 3,5 movf ?_fcos,w movwf ?_cos movf ?_fcos+1,w movwf ?_cos+1 movf ?_fcos+2,w movwf ?_cos+2 bcf 3,5 goto _cos line 223 ;focal1.c: 223: } return ;W free ; param _arg assigned to ?_fexp+0 _fexp$arg set ?_fexp psect text7 line 228 _fexp line 229 ;focal1.c: 225: double bcf 3,5 movf ?_fexp,w movwf ?_exp movf ?_fexp+1,w movwf ?_exp+1 movf ?_fexp+2,w movwf ?_exp+2 bcf 3,5 goto _exp line 230 ;focal1.c: 230: } return ;W free ; param _arg assigned to ?_flog+0 _flog$arg set ?_flog psect text8 line 235 _flog line 236 ;focal1.c: 232: double bcf 3,5 movf ?_flog,w movwf ?_log movf ?_flog+1,w movwf ?_log+1 movf ?_flog+2,w movwf ?_log+2 bcf 3,5 goto _log line 237 ;focal1.c: 237: } return ;W free ; param _arg assigned to ?_fatn+0 _fatn$arg set ?_fatn psect text9 line 242 _fatn line 243 ;focal1.c: 239: double bcf 3,5 movf ?_fatn,w movwf ?_atan movf ?_fatn+1,w movwf ?_atan+1 movf ?_fatn+2,w movwf ?_atan+2 bcf 3,5 goto _atan line 244 ;focal1.c: 244: } return ;W free ; param _arg assigned to ?_fsqt+0 _fsqt$arg set ?_fsqt psect text10 line 249 _fsqt line 250 ;focal1.c: 246: double clrf btemp+3 clrf btemp+4 clrf btemp+5 bcf 3,5 movf ?_fsqt,w movwf btemp movf ?_fsqt+1,w movwf btemp+1 movf ?_fsqt+2,w movwf btemp+2 call ftcmp btfsc 3,0 goto l92 line 251 ;focal1.c: 251: diag("Fsqt < 0.0"); movlw low u119 movwf ?_diag movlw high u119 movwf ?_diag+1 bcf 3,5 call _diag l92 line 252 ;focal1.c: 252: return (sqrt(arg)); movf ?_fsqt,w movwf ?_sqrt movf ?_fsqt+1,w movwf ?_sqrt+1 movf ?_fsqt+2,w movwf ?_sqrt+2 bcf 3,5 goto _sqrt psect text11 line 258 _fabt line 259 ;focal1.c: 255: double clrf btemp+3 clrf btemp+4 clrf btemp+5 bcf 3,5 movf ?_fabt,w movwf btemp movf ?_fabt+1,w movwf btemp+1 movf ?_fabt+2,w movwf btemp+2 call ftcmp line 260 ;focal1.c: 260: return (-arg); movf ?_fabt,w movwf btemp movf ?_fabt+1,w movwf btemp+1 movf ?_fabt+2,w movwf btemp+2 line 259 btfsc 3,0 return line 260 call ftneg return psect text12 line 267 _fsgn line 268 ;focal1.c: 264: double clrf btemp+3 clrf btemp+4 clrf btemp+5 bcf 3,5 movf ?_fsgn,w movwf btemp movf ?_fsgn+1,w movwf btemp+1 movf ?_fsgn+2,w movwf btemp+2 call ftcmp line 269 ;focal1.c: 269: return (-1.0); clrf btemp movlw 128 movwf btemp+1 line 268 btfsc 3,0 goto L7 line 269 movlw 191 movwf btemp+2 return line 270 ;focal1.c: 270: return (1.0); L7 movlw 63 movwf btemp+2 line 271 ;focal1.c: 271: } return ;W free psect text13 line 276 _fitr line 277 ;focal1.c: 273: double clrf btemp+3 clrf btemp+4 clrf btemp+5 bcf 3,5 movf ?_fitr,w movwf btemp movf ?_fitr+1,w movwf btemp+1 movf ?_fitr+2,w movwf btemp+2 call ftcmp line 278 ;focal1.c: 278: return (-floor(-arg)); movf ?_fitr,w line 277 btfsc 3,0 goto L8 line 278 movwf btemp movf ?_fitr+1,w movwf btemp+1 movf ?_fitr+2,w movwf btemp+2 call ftneg movf btemp,w movwf ?_floor movf btemp+1,w movwf ?_floor+1 movf btemp+2,w movwf ?_floor+2 bcf 3,5 call _floor call ftneg return line 279 ;focal1.c: 279: if (arg == 0) L8 iorwf ?_fitr+1,w iorwf ?_fitr+2,w btfss 3,2 goto l99 line 280 ;focal1.c: 280: return (0.0); clrf btemp clrf btemp+1 clrf btemp+2 return l99 line 281 ;focal1.c: 281: return (floor(arg)); movf ?_fitr,w movwf ?_floor movf ?_fitr+1,w movwf ?_floor+1 movf ?_fitr+2,w movwf ?_floor+2 bcf 3,5 goto _floor psect text14 line 287 _fran line 288 ;focal1.c: 284: double bcf 3,5 goto _drand48 line 289 ;focal1.c: 289: } return ;W free psect strings u39 retlw 69 ;'E' retlw 120 ;'x' retlw 112 ;'p' retlw 114 ;'r' retlw 101 ;'e' retlw 115 ;'s' retlw 115 ;'s' retlw 105 ;'i' retlw 111 ;'o' retlw 110 ;'n' retlw 32 retlw 115 ;'s' retlw 121 ;'y' retlw 110 ;'n' retlw 116 ;'t' retlw 97 ;'a' retlw 120 ;'x' retlw 0 u69 retlw 77 ;'M' retlw 105 ;'i' retlw 115 ;'s' retlw 115 ;'s' retlw 105 ;'i' retlw 110 ;'n' retlw 103 ;'g' retlw 32 retlw 41 retlw 32 retlw 105 ;'i' retlw 110 ;'n' retlw 32 retlw 115 ;'s' retlw 117 ;'u' retlw 98 ;'b' retlw 115 ;'s' retlw 99 ;'c' retlw 114 ;'r' retlw 105 ;'i' retlw 112 ;'p' retlw 116 ;'t' retlw 0 u99 retlw 66 ;'B' retlw 97 ;'a' retlw 100 ;'d' retlw 32 retlw 115 ;'s' retlw 117 ;'u' retlw 98 ;'b' retlw 115 ;'s' retlw 99 ;'c' retlw 114 ;'r' retlw 105 ;'i' retlw 112 ;'p' retlw 116 ;'t' retlw 0 u19 retlw 77 ;'M' retlw 105 ;'i' retlw 115 ;'s' retlw 109 ;'m' retlw 97 ;'a' retlw 116 ;'t' retlw 99 ;'c' retlw 104 ;'h' retlw 101 ;'e' retlw 100 ;'d' retlw 32 retlw 101 ;'e' retlw 110 ;'n' retlw 99 ;'c' retlw 108 ;'l' retlw 111 ;'o' retlw 115 ;'s' retlw 117 ;'u' retlw 114 ;'r' retlw 101 ;'e' retlw 115 ;'s' retlw 0 u59 retlw 77 ;'M' retlw 105 ;'i' retlw 115 ;'s' retlw 115 ;'s' retlw 105 ;'i' retlw 110 ;'n' retlw 103 ;'g' retlw 32 retlw 96 ;'`' retlw 41 retlw 39 retlw 32 retlw 102 ;'f' retlw 111 ;'o' retlw 114 ;'r' retlw 32 retlw 102 ;'f' retlw 117 ;'u' retlw 110 ;'n' retlw 99 ;'c' retlw 116 ;'t' retlw 105 ;'i' retlw 111 ;'o' retlw 110 ;'n' retlw 0 u49 retlw 77 ;'M' retlw 105 ;'i' retlw 115 ;'s' retlw 115 ;'s' retlw 105 ;'i' retlw 110 ;'n' retlw 103 ;'g' retlw 32 retlw 96 ;'`' retlw 40 retlw 39 retlw 32 retlw 102 ;'f' retlw 111 ;'o' retlw 114 ;'r' retlw 32 retlw 102 ;'f' retlw 117 ;'u' retlw 110 ;'n' retlw 99 ;'c' retlw 116 ;'t' retlw 105 ;'i' retlw 111 ;'o' retlw 110 ;'n' retlw 0 u29 retlw 78 ;'N' retlw 117 ;'u' retlw 109 ;'m' retlw 98 ;'b' retlw 101 ;'e' retlw 114 ;'r' retlw 32 retlw 116 ;'t' retlw 111 ;'o' retlw 111 ;'o' retlw 32 retlw 108 ;'l' retlw 111 ;'o' retlw 110 ;'n' retlw 103 ;'g' retlw 0 u89 retlw 77 ;'M' retlw 105 ;'i' retlw 115 ;'s' retlw 115 ;'s' retlw 105 ;'i' retlw 110 ;'n' retlw 103 ;'g' retlw 32 retlw 118 ;'v' retlw 97 ;'a' retlw 114 ;'r' retlw 105 ;'i' retlw 97 ;'a' retlw 98 ;'b' retlw 108 ;'l' retlw 101 ;'e' retlw 0 u79 retlw 85 ;'U' retlw 110 ;'n' retlw 100 ;'d' retlw 101 ;'e' retlw 102 ;'f' retlw 105 ;'i' retlw 110 ;'n' retlw 101 ;'e' retlw 100 ;'d' retlw 32 retlw 118 ;'v' retlw 97 ;'a' retlw 114 ;'r' retlw 105 ;'i' retlw 97 ;'a' retlw 98 ;'b' retlw 108 ;'l' retlw 101 ;'e' retlw 0 u119 retlw 70 ;'F' retlw 115 ;'s' retlw 113 ;'q' retlw 116 ;'t' retlw 32 retlw 60 ;'<' retlw 32 retlw 48 ;'0' retlw 46 retlw 48 ;'0' retlw 0 u109 retlw 79 ;'O' retlw 117 ;'u' retlw 116 ;'t' retlw 32 retlw 111 ;'o' retlw 102 ;'f' retlw 32 retlw 115 ;'s' retlw 112 ;'p' retlw 97 ;'a' retlw 99 ;'c' retlw 101 ;'e' retlw 32 retlw 40 retlw 115 ;'s' retlw 121 ;'y' retlw 109 ;'m' retlw 98 ;'b' retlw 111 ;'o' retlw 108 ;'l' retlw 115 ;'s' retlw 41 retlw 0 psect temp btemp ds 6