global ?_diag global ?_fprintf global ?_fputc global ?_getlno global ?_getnum global ?_longjmp global ?_malloc global ?_printf global ?_putline global ?_strlen global ?a_alocline global ?a_diag global ?a_getlno global ?a_getnb global ?a_getnum global ?a_putline global __ctype_ global __iob global _alocline signat _alocline,4217 FNSIZE _alocline,2,0 FNCALL _alocline,_strlen FNCALL _alocline,_malloc FNCALL _alocline,_diag global _cbuf global _clp global _controlv global _ctp global _diag signat _diag,4216 FNSIZE _diag,4,2 FNCALL _diag,_printf FNCALL _diag,_putline FNCALL _diag,_fputc FNCALL _diag,_popdo FNCALL _diag,_longjmp global _drand48 signat _drand48,83 FNCALL _drand48,_rand FNCALL _drand48,awtoft FNCALL _drand48,ftdiv global _env global _fprintf signat _fprintf,4674 global _fputc signat _fputc,8290 global _getlno signat _getlno,8312 FNSIZE _getlno,5,2 FNCALL _getlno,_getnb FNCALL _getlno,_diag FNCALL _getlno,_getnum FNCALL _getlno,string_table global _getnb signat _getnb,66 FNSIZE _getnb,2,0 global _getnum signat _getnum,4194 FNSIZE _getnum,2,2 FNCALL _getnum,awmul FNCALL _getnum,string_table global _longjmp signat _longjmp,8312 global _malloc signat _malloc,4217 global _popdo signat _popdo,88 global _printf signat _printf,578 global _putline signat _putline,8312 FNSIZE _putline,6,1 FNCALL _putline,_fprintf global _rand signat _rand,66 global _strlen signat _strlen,4202 global awmul global awtoft global code_ptr global ftdiv 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 rdata_0,global,class=BANK0,space=1 psect idata_0,global,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 strings,global,class=STRING,delta=2 psect temp,global,ovrld,class=BANK0,space=1 file "c:\DOCUME~1\Vince\LOCALS~1\Temp\s1fc." _putline$fp set ?_putline psect text0 file "focal3.c" line 18 _putline ; _lp assigned to ?a_putline+0 _putline$lp set ?a_putline line 19 ;_lp stored from w bcf 3,5 movwf ?a_putline ;focal3.c: 15: void putline(lp, fp) movlw low u19 movwf ?_fprintf+1 movlw high u19 movwf ?_fprintf+2 movf ?a_putline,w addlw 3 movwf ?a_putline+5 incf ?a_putline,w movwf 4 movf 0,w movwf ?a_putline+3 clrf ?a_putline+4 movf ?a_putline,w addlw 2 movwf 4 movf 0,w movwf ?a_putline+1 clrf ?a_putline+2 movlw ?a_putline+1 movwf ?_fprintf movf ?_putline,w bcf 3,5 goto _fprintf psect text1 line 33 _getlno line 37 ;_lnop stored from w bcf 3,5 movwf ?a_getlno ;focal3.c: 34: register int gn, ln; btfss ?_getlno+1,7 goto l14 line 38 ;focal3.c: 38: c = getnb(); call _getnb movf btemp,w movwf ?_getlno movf btemp+1,w movwf ?_getlno+1 l14 line 39 ;focal3.c: 39: if (c=='\0' || c==';') { movf ?_getlno+1,w iorwf ?_getlno,w btfsc 3,2 goto u40 movf ?_getlno,w xorlw 59 iorwf ?_getlno+1,w btfss 3,2 goto l15 u40 line 40 ;focal3.c: 40: --ctp; decf _ctp line 41 ;focal3.c: 41: lnop->ln_type = 3; movf ?a_getlno,w addlw 2 movwf 4 movlw 3 movwf 0 incf 4 clrf 0 line 42 ;focal3.c: 42: return; return line 43 l15 line 44 ;focal3.c: 43: } movf ?_getlno,w xorlw 65 iorwf ?_getlno+1,w btfsc 3,2 goto l17 movf ?_getlno,w xorlw 97 iorwf ?_getlno+1,w btfss 3,2 goto l16 line 46 ;focal3.c: 45: while (((_ctype_+1)[(unsigned char)(*ctp)]&(0x01|0x02))) l17 line 45 movf _ctp,w movwf 4 movf 0,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 btfsc 3,2 goto l19 line 46 ;focal3.c: 46: ++ctp; incf _ctp line 45 goto l17 l19 line 47 ;focal3.c: 47: lnop->ln_type = 0; movf ?a_getlno,w addlw 2 movwf 4 clrf 0 incf 4 clrf 0 line 48 ;focal3.c: 48: return; return line 49 l16 line 50 ;focal3.c: 49: } movf ?_getlno,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 l20 line 51 ;focal3.c: 51: diag(badlno); movlw F532 movwf ?_diag movlw 128 movwf ?_diag+1 bcf 3,5 call _diag l20 line 52 ;focal3.c: 52: if ((gn = getnum(c))<1 || gn>99) movf ?_getlno,w movwf ?_getnum movf ?_getlno+1,w movwf ?_getnum+1 bcf 3,5 call _getnum movf btemp,w movwf ?a_getlno+3 movf btemp+1,w movwf ?a_getlno+4 xorlw 128 movwf btemp movlw 128 subwf btemp,w movlw 1 ;set bank bits (((?a_getlno+3))) btfsc 3,2 subwf ?a_getlno+3,w btfss 3,0 goto u120 movf ?a_getlno+4,w xorlw 128 movwf btemp movlw 128 subwf btemp,w movlw 100 ;set bank bits for (((?a_getlno+3))) btfsc 3,2 subwf ?a_getlno+3,w btfss 3,0 goto l21 u120 line 53 ;focal3.c: 53: diag(badlno); movlw F532 movwf ?_diag movlw 128 movwf ?_diag+1 call _diag l21 line 54 ;focal3.c: 54: if (*ctp != '.') { movf _ctp,w movwf 4 movf 0,w xorlw 46 btfsc 3,2 goto l22 line 55 ;focal3.c: 55: lnop->ln_gno = gn; incf ?a_getlno,w movwf 4 movf ?a_getlno+3,w movwf 0 line 56 ;focal3.c: 56: lnop->ln_lno = 0; movf ?a_getlno,w movwf 4 clrf 0 line 57 ;focal3.c: 57: lnop->ln_type = 1; movf ?a_getlno,w addlw 2 movwf 4 movlw 1 movwf 0 incf 4 clrf 0 line 58 ;focal3.c: 58: return; return line 59 l22 line 60 ;focal3.c: 59: } incf _ctp line 61 ;focal3.c: 61: if ((ln=getnum(*ctp++)) == 0) { incf _ctp decf _ctp,w movwf 4 movf 0,w movwf ?_getnum clrf ?_getnum+1 call _getnum movf btemp,w movwf ?a_getlno+1 movf btemp+1,w movwf ?a_getlno+2 iorwf ?a_getlno+1,w btfss 3,2 goto l23 line 62 ;focal3.c: 62: lnop->ln_gno = gn; incf ?a_getlno,w movwf 4 movf ?a_getlno+3,w movwf 0 line 63 ;focal3.c: 63: lnop->ln_lno = 0; movf ?a_getlno,w movwf 4 clrf 0 line 64 ;focal3.c: 64: lnop->ln_type = 1; movf ?a_getlno,w addlw 2 movwf 4 movlw 1 movwf 0 incf 4 clrf 0 line 65 ;focal3.c: 65: return; return line 66 l23 line 67 ;focal3.c: 66: } movf ?a_getlno+2,w xorlw 128 movwf btemp movlw 128 subwf btemp,w movlw 1 ;set bank bits (((?a_getlno+1))) btfsc 3,2 subwf ?a_getlno+1,w btfss 3,0 goto u170 movf ?a_getlno+2,w xorlw 128 movwf btemp movlw 128 subwf btemp,w movlw 100 ;set bank bits for (((?a_getlno+1))) btfsc 3,2 subwf ?a_getlno+1,w btfss 3,0 goto l24 u170 line 68 ;focal3.c: 68: diag(badlno); movlw F532 movwf ?_diag movlw 128 movwf ?_diag+1 call _diag l24 line 69 ;focal3.c: 69: lnop->ln_gno = gn; incf ?a_getlno,w movwf 4 movf ?a_getlno+3,w movwf 0 line 70 ;focal3.c: 70: lnop->ln_lno = ln; movf ?a_getlno,w movwf 4 movf ?a_getlno+1,w movwf 0 line 71 ;focal3.c: 71: lnop->ln_type = 2; movf ?a_getlno,w addlw 2 movwf 4 movlw 2 movwf 0 incf 4 clrf 0 line 72 ;focal3.c: 72: } return ;W free psect rdata_0 line 33 ;focal3.c: 30: void getlno(lnop, c) F532 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ds 1 ; _lnop assigned to ?a_getlno+0 _getlno$lnop set ?a_getlno ; _ln assigned to ?a_getlno+1 _getlno$ln set ?a_getlno+1 ; _gn assigned to ?a_getlno+3 _getlno$gn set ?a_getlno+3 psect idata_0 retlw 66 retlw 97 retlw 100 retlw 32 retlw 108 retlw 105 retlw 110 retlw 101 retlw 32 retlw 111 retlw 114 retlw 32 retlw 103 retlw 114 retlw 111 retlw 117 retlw 112 retlw 32 retlw 110 retlw 117 retlw 109 retlw 98 retlw 101 retlw 114 retlw 0 psect text2 line 82 _getnum ; _n assigned to ?a_getnum+0 _getnum$n set ?a_getnum line 85 ;focal3.c: 80: int getnum(c) bcf 3,5 clrf ?a_getnum clrf ?a_getnum+1 line 86 ;focal3.c: 86: while (((_ctype_+1)[(unsigned char)(c)]&0x04)) { goto l26 l27 line 87 ;focal3.c: 87: n = 10*n + c - '0'; movlw 10 movwf btemp+2 clrf btemp+3 movf ?a_getnum+1,w movwf btemp+1 movf ?a_getnum,w movwf btemp call awmul movf ?_getnum,w addwf btemp+4 btfsc 3,0 incf btemp+5 movf ?_getnum+1,w addwf btemp+5 movlw 208 addwf btemp+4,w movwf ?a_getnum movlw 255 btfsc 3,0 movlw 256 addwf btemp+5,w movwf ?a_getnum+1 line 88 ;focal3.c: 88: c = *ctp++; movf _ctp,w movwf 4 movf 0,w movwf ?_getnum clrf ?_getnum+1 incf _ctp line 89 l26 line 86 movf ?_getnum,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 l27 line 90 ;focal3.c: 89: } decf _ctp line 91 ;focal3.c: 91: return (n); movf ?a_getnum+1,w movwf btemp+1 movf ?a_getnum,w movwf btemp line 92 ;focal3.c: 92: } return ;W free psect text3 line 105 _alocline ; _cp assigned to ?a_alocline+0 _alocline$cp set ?a_alocline ; _lp assigned to ?a_alocline+1 _alocline$lp set ?a_alocline+1 line 106 ;_cp stored from w bcf 3,5 movwf ?a_alocline ;focal3.c: 102: struct line * clrf ?a_alocline+1 line 108 ;focal3.c: 108: lp = (struct line *) malloc(sizeof(*lp)+strlen(cp)+1); movwf ?_strlen movlw 128 movwf ?_strlen+1 bcf 3,5 call _strlen movlw 5 addwf btemp,w movwf ?_malloc movlw 0 btfsc 3,0 movlw 1 addwf btemp+1,w movwf ?_malloc+1 call _malloc movwf ?a_alocline+1 line 109 ;focal3.c: 109: if (lp == (0)) movf ?a_alocline+1 btfss 3,2 goto l30 line 110 ;focal3.c: 110: diag("Out of memory"); movlw low u29 movwf ?_diag movlw high u29 movwf ?_diag+1 call _diag l30 line 111 ;focal3.c: 111: return (lp); movf ?a_alocline+1,w line 112 ;focal3.c: 112: } return ;uses W psect text4 line 125 _diag ; _lp assigned to ?a_diag+0 _diag$lp set ?a_diag ; _cp assigned to ?a_diag+1 _diag$cp set ?a_diag+1 line 129 ;focal3.c: 123: void diag(s) movlw low u39 bcf 3,5 movwf ?_printf+1 movlw high u39 movwf ?_printf+2 movf ?_diag,w movwf ?a_diag+2 movf ?_diag+1,w movwf ?a_diag+3 movlw ?a_diag+2 movwf ?_printf bcf 3,5 call _printf line 130 ;focal3.c: 130: if ((lp=clp) != (0)) { movf _clp,w movwf ?a_diag btfsc 3,2 goto l32 line 131 ;focal3.c: 131: putline(lp, (&_iob[1])); movlw __iob+10 movwf ?_putline movf ?a_diag,w call _putline line 132 ;focal3.c: 132: printf(" "); movlw low u49 movwf ?_printf+1 movlw high u49 movwf ?_printf+2 call _printf line 133 ;focal3.c: 133: cp = lp->l_text; movf ?a_diag,w addlw 3 goto L1 line 134 ;focal3.c: 134: } else { l32 line 135 ;focal3.c: 135: printf("*%s\n ", cbuf); movlw low u59 movwf ?_printf+1 movlw high u59 movwf ?_printf+2 movlw low ((0+32768)^_cbuf) movwf ?a_diag+2 movlw high ((0+32768)^_cbuf) movwf ?a_diag+3 movlw ?a_diag+2 movwf ?_printf call _printf line 136 ;focal3.c: 136: cp = cbuf; movlw _cbuf L1 movwf ?a_diag+1 line 141 ;focal3.c: 137: } l34 line 138 movf _ctp,w subwf ?a_diag+1,w btfsc 3,0 goto l36 line 139 ;focal3.c: 139: fputc(' ',(&_iob[1])); movlw 32 movwf ?_fputc clrf ?_fputc+1 movlw __iob+10 movwf ?_fputc+2 call _fputc line 140 ;focal3.c: 140: ++cp; incf ?a_diag+1 line 138 goto l34 l36 line 142 ;focal3.c: 141: } movlw low u69 movwf ?_printf+1 movlw high u69 movwf ?_printf+2 call _printf line 144 ;focal3.c: 143: while (controlv != (0)) l37 line 143 movf _controlv btfsc 3,2 goto l39 line 144 ;focal3.c: 144: popdo(); call _popdo line 143 goto l37 l39 line 145 ;focal3.c: 145: longjmp(env, 0); clrf ?_longjmp clrf ?_longjmp+1 movlw _env goto _longjmp psect text5 line 154 _getnb ; _c assigned to ?a_getnb+0 _getnb$c set ?a_getnb line 158 ;focal3.c: 153: int getnb() l41 line 157 ;focal3.c: 158: ; bcf 3,5 incf _ctp decf _ctp,w movwf 4 movf 0,w movwf ?a_getnb clrf ?a_getnb+1 movf ?a_getnb+1,w movwf btemp+1 movf ?a_getnb,w movwf btemp xorlw 32 iorwf btemp+1,w btfsc 3,2 goto l41 movf ?a_getnb,w xorlw 9 iorwf ?a_getnb+1,w btfsc 3,2 goto l41 line 159 ;focal3.c: 159: return (c); movf ?a_getnb+1,w movwf btemp+1 movf ?a_getnb,w movwf btemp line 160 ;focal3.c: 160: } return ;W free psect text6 line 168 _drand48 line 169 ;focal3.c: 167: double drand48() bcf 3,5 call _rand call awtoft clrf btemp+3 clrf btemp+4 movlw 71 movwf btemp+5 call ftdiv line 170 ;focal3.c: 170: } return ;W free psect strings u29 retlw 79 ;'O' retlw 117 ;'u' retlw 116 ;'t' retlw 32 retlw 111 ;'o' retlw 102 ;'f' retlw 32 retlw 109 ;'m' retlw 101 ;'e' retlw 109 ;'m' retlw 111 ;'o' retlw 114 ;'r' retlw 121 ;'y' retlw 0 u49 retlw 32 retlw 32 retlw 32 retlw 32 retlw 32 retlw 32 retlw 0 u59 retlw 42 retlw 37 retlw 115 ;'s' retlw 10 retlw 32 retlw 0 u19 retlw 37 retlw 48 ;'0' retlw 50 ;'2' retlw 100 ;'d' retlw 46 retlw 37 retlw 48 ;'0' retlw 50 ;'2' retlw 100 ;'d' retlw 32 retlw 37 retlw 115 ;'s' retlw 10 retlw 0 u69 retlw 94 ;'^' retlw 10 retlw 0 u39 retlw 37 retlw 115 ;'s' retlw 33 retlw 10 retlw 0 psect temp btemp ds 6