📄 phatpsp.lst
字号:
.................... return(s/c);
.................... }
....................
....................
....................
.................... float const pas[3] = {0.49559947, -4.6145309, 5.6036290};
.................... float const qas[3] = {1.0000000, -5.5484666, 5.6036290};
....................
.................... float ASIN_COS(float x, int n)
.................... {
.................... float y, res, r, y2;
.................... int1 s;
.................... #ifdef _ERRNO
.................... if(x <-1 || x > 1)
.................... {
.................... errno=EDOM;
.................... }
.................... #endif
.................... s = 0;
.................... y = x;
....................
.................... if (x < 0)
.................... {
.................... s = 1;
.................... y = -y;
.................... }
....................
.................... if (y > 0.5)
.................... {
.................... y = sqrt((1.0 - y)/2.0);
.................... n += 2;
.................... }
....................
.................... y2=y*y;
....................
.................... res = pas[0]*y2 + pas[1];
.................... res = res*y2 + pas[2];
....................
.................... r = qas[0]*y2 + qas[1];
.................... r = r*y2 + qas[2];
....................
.................... res = y*res/r;
....................
.................... if (n & 2) // |x| > 0.5
.................... res = PI_DIV_BY_TWO - 2.0*res;
.................... if (s)
.................... res = -res;
.................... if (n & 1) // take arccos
.................... res = PI_DIV_BY_TWO - res;
....................
.................... return(res);
.................... }
....................
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float asin(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arcsine value of the value x.
.................... // Date : N/A
.................... //
.................... float asin(float x)
.................... {
.................... float r;
....................
.................... r = ASIN_COS(x, 0);
.................... return(r);
.................... }
....................
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float acos(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arccosine value of the value x.
.................... // Date : N/A
.................... //
.................... float acos(float x)
.................... {
.................... float r;
....................
.................... r = ASIN_COS(x, 1);
.................... return(r);
.................... }
....................
.................... float const pat[4] = {0.17630401, 5.6710795, 22.376096, 19.818457};
.................... float const qat[4] = {1.0000000, 11.368190, 28.982246, 19.818457};
....................
.................... ////////////////////////////////////////////////////////////////////////////
.................... // float atan(float x)
.................... ////////////////////////////////////////////////////////////////////////////
.................... // Description : returns the arctangent value of the value x.
.................... // Date : N/A
.................... //
.................... float atan(float x)
.................... {
.................... float y, res, r;
.................... int1 s, flag;
....................
.................... s = 0;
*
085A: BCF 5E.0
.................... flag = 0;
085B: BCF 5E.1
.................... y = x;
085C: MOVF 51,W
085D: MOVWF 55
085E: MOVF 50,W
085F: MOVWF 54
0860: MOVF 4F,W
0861: MOVWF 53
0862: MOVF 4E,W
0863: MOVWF 52
....................
.................... if (x < 0)
0864: MOVF 51,W
0865: MOVWF 62
0866: MOVF 50,W
0867: MOVWF 61
0868: MOVF 4F,W
0869: MOVWF 60
086A: MOVF 4E,W
086B: MOVWF 5F
086C: CLRF 66
086D: CLRF 65
086E: CLRF 64
086F: CLRF 63
0870: BCF 0A.3
0871: CALL 45A
0872: BSF 0A.3
0873: BTFSS 03.0
0874: GOTO 078
.................... {
.................... s = 1;
0875: BSF 5E.0
.................... y = -y;
0876: MOVLW 80
0877: XORWF 53,F
.................... }
....................
.................... if (y > 1.0)
0878: CLRF 62
0879: CLRF 61
087A: CLRF 60
087B: MOVLW 7F
087C: MOVWF 5F
087D: MOVF 55,W
087E: MOVWF 66
087F: MOVF 54,W
0880: MOVWF 65
0881: MOVF 53,W
0882: MOVWF 64
0883: MOVF 52,W
0884: MOVWF 63
0885: BCF 0A.3
0886: CALL 45A
0887: BSF 0A.3
0888: BTFSS 03.0
0889: GOTO 0A3
.................... {
.................... y = 1.0/y;
088A: CLRF 66
088B: CLRF 65
088C: CLRF 64
088D: MOVLW 7F
088E: MOVWF 63
088F: MOVF 55,W
0890: MOVWF 6A
0891: MOVF 54,W
0892: MOVWF 69
0893: MOVF 53,W
0894: MOVWF 68
0895: MOVF 52,W
0896: MOVWF 67
0897: BCF 0A.3
0898: CALL 38F
0899: BSF 0A.3
089A: MOVF 7A,W
089B: MOVWF 55
089C: MOVF 79,W
089D: MOVWF 54
089E: MOVF 78,W
089F: MOVWF 53
08A0: MOVF 77,W
08A1: MOVWF 52
.................... flag = 1;
08A2: BSF 5E.1
.................... }
....................
.................... res = pat[0]*y*y + pat[1];
08A3: MOVLW 0A
08A4: MOVWF 66
08A5: MOVLW 89
08A6: MOVWF 65
08A7: MOVLW 34
08A8: MOVWF 64
08A9: MOVLW 7C
08AA: MOVWF 63
08AB: MOVF 55,W
08AC: MOVWF 6A
08AD: MOVF 54,W
08AE: MOVWF 69
08AF: MOVF 53,W
08B0: MOVWF 68
08B1: MOVF 52,W
08B2: MOVWF 67
08B3: BCF 0A.3
08B4: CALL 319
08B5: BSF 0A.3
08B6: MOVF 77,W
08B7: MOVWF 5F
08B8: MOVF 78,W
08B9: MOVWF 60
08BA: MOVF 79,W
08BB: MOVWF 61
08BC: MOVF 7A,W
08BD: MOVWF 62
08BE: MOVWF 66
08BF: MOVF 79,W
08C0: MOVWF 65
08C1: MOVF 78,W
08C2: MOVWF 64
08C3: MOVF 77,W
08C4: MOVWF 63
08C5: MOVF 55,W
08C6: MOVWF 6A
08C7: MOVF 54,W
08C8: MOVWF 69
08C9: MOVF 53,W
08CA: MOVWF 68
08CB: MOVF 52,W
08CC: MOVWF 67
08CD: BCF 0A.3
08CE: CALL 319
08CF: BSF 0A.3
08D0: MOVF 77,W
08D1: MOVWF 63
08D2: MOVF 78,W
08D3: MOVWF 64
08D4: MOVF 79,W
08D5: MOVWF 65
08D6: MOVF 7A,W
08D7: MOVWF 66
08D8: BCF 03.1
08D9: MOVF 7A,W
08DA: MOVWF 6A
08DB: MOVF 79,W
08DC: MOVWF 69
08DD: MOVF 78,W
08DE: MOVWF 68
08DF: MOVF 77,W
08E0: MOVWF 67
08E1: MOVLW 7C
08E2: MOVWF 6E
08E3: MOVLW 79
08E4: MOVWF 6D
08E5: MOVLW 35
08E6: MOVWF 6C
08E7: MOVLW 81
08E8: MOVWF 6B
08E9: BCF 0A.3
08EA: CALL 499
08EB: BSF 0A.3
08EC: MOVF 7A,W
08ED: MOVWF 59
08EE: MOVF 79,W
08EF: MOVWF 58
08F0: MOVF 78,W
08F1: MOVWF 57
08F2: MOVF 77,W
08F3: MOVWF 56
.................... res = res*y*y + pat[2];
08F4: MOVF 59,W
08F5: MOVWF 66
08F6: MOVF 58,W
08F7: MOVWF 65
08F8: MOVF 57,W
08F9: MOVWF 64
08FA: MOVF 56,W
08FB: MOVWF 63
08FC: MOVF 55,W
08FD: MOVWF 6A
08FE: MOVF 54,W
08FF: MOVWF 69
0900: MOVF 53,W
0901: MOVWF 68
0902: MOVF 52,W
0903: MOVWF 67
0904: BCF 0A.3
0905: CALL 319
0906: BSF 0A.3
0907: MOVF 77,W
0908: MOVWF 5F
0909: MOVF 78,W
090A: MOVWF 60
090B: MOVF 79,W
090C: MOVWF 61
090D: MOVF 7A,W
090E: MOVWF 62
090F: MOVWF 66
0910: MOVF 79,W
0911: MOVWF 65
0912: MOVF 78,W
0913: MOVWF 64
0914: MOVF 77,W
0915: MOVWF 63
0916: MOVF 55,W
0917: MOVWF 6A
0918: MOVF 54,W
0919: MOVWF 69
091A: MOVF 53,W
091B: MOVWF 68
091C: MOVF 52,W
091D: MOVWF 67
091E: BCF 0A.3
091F: CALL 319
0920: BSF 0A.3
0921: MOVF 77,W
0922: MOVWF 63
0923: MOVF 78,W
0924: MOVWF 64
0925: MOVF 79,W
0926: MOVWF 65
0927: MOVF 7A,W
0928: MOVWF 66
0929: BCF 03.1
092A: MOVF 7A,W
092B: MOVWF 6A
092C: MOVF 79,W
092D: MOVWF 69
092E: MOVF 78,W
092F: MOVWF 68
0930: MOVF 77,W
0931: MOVWF 67
0932: MOVLW 3F
0933: MOVWF 6E
0934: MOVLW 02
0935: MOVWF 6D
0936: MOVLW 33
0937: MOVWF 6C
0938: MOVLW 83
0939: MOVWF 6B
093A: BCF 0A.3
093B: CALL 499
093C: BSF 0A.3
093D: MOVF 7A,W
093E: MOVWF 59
093F: MOVF 79,W
0940: MOVWF 58
0941: MOVF 78,W
0942: MOVWF 57
0943: MOVF 77,W
0944: MOVWF 56
.................... res = res*y*y + pat[3];
0945: MOVF 59,W
0946: MOVWF 66
0947: MOVF 58,W
0948: MOVWF 65
0949: MOVF 57,W
094A: MOVWF 64
094B: MOVF 56,W
094C: MOVWF 63
094D: MOVF 55,W
094E: MOVWF 6A
094F: MOVF 54,W
0950: MOVWF 69
0951: MOVF 53,W
0952: MOVWF 68
0953: MOVF 52,W
0954: MOVWF 67
0955: BCF 0A.3
0956: CALL 319
0957: BSF 0A.3
0958: MOVF 77,W
0959: MOVWF 5F
095A: MOVF 78,W
095B: MOVWF 60
095C: MOVF 79,W
095D: MOVWF 61
095E: MOVF 7A,W
095F: MOVWF 62
0960: MOVWF 66
0961: MOVF 79,W
0962: MOVWF 65
0963: MOVF 78,W
0964: MOVWF 64
0965: MOVF 77,W
0966: MOVWF 63
0967: MOVF 55,W
0968: MOVWF 6A
0969: MOVF 54,W
096A: MOVWF 69
096B: MOVF 53,W
096C: MOVWF 68
096D: MOVF 52,W
096E: MOVWF 67
096F: BCF 0A.3
0970: CALL 319
0971: BSF 0A.3
0972: MOVF 77,W
0973: MOVWF 63
0974: MOVF 78,W
0975: MOVWF 64
0976: MOVF 79,W
0977: MOVWF 65
0978: MOVF 7A,W
0979: MOVWF 66
097A: BCF 03.1
097B: MOVF 7A,W
097C: MOVWF 6A
097D: MOVF 79,W
097E: MOVWF 69
097F: MOVF 78,W
0980: MOVWF 68
0981: MOVF 77,W
0982: MOVWF 67
0983: MOVLW 33
0984: MOVWF 6E
0985: MOVLW 8C
0986: MOVWF 6D
0987: MOVLW 1E
0988: MOVWF 6C
0989: MOVLW 83
098A: MOVWF 6B
098B: BCF 0A.3
098C: CALL 499
098D: BSF 0A.3
098E: MOVF 7A,W
098F: MOVWF 59
0990: MOVF 79,W
0991: MOVWF 58
0992: MOVF 78,W
0993: MOVWF 57
0994: MOVF 77,W
0995: MOVWF 56
....................
.................... r = qat[0]*y*y + qat[1];
0996: CLRF 66
0997: CLRF 65
0998: CLRF 64
0999: MOVLW 7F
099A: MOVWF 63
099B: MOVF 55,W
099C: MOVWF 6A
099D: MOVF 54,W
099E: MOVWF 69
099F: MOVF 53,W
09A0: MOVWF 68
09A1: MOVF 52,W
09A2: MOVWF 67
09A3: BCF 0A.3
09A4: CALL 319
09A5: BSF 0A.3
09A6: MOVF 77,W
09A7: MOVWF 5F
09A8: MOVF 78,W
09A9: MOVWF 60
09AA: MOVF 79,W
09AB: MOVWF 61
09AC: MOVF 7A,W
09AD: MOVWF 62
09AE: MOVWF 66
09AF: MOVF 79,W
09B0: MOVWF 65
09B1: MOVF 78,W
09B2: MOVWF 64
09B3: MOVF 77,W
09B4: MOVWF 63
09B5: MOVF 55,W
09B6: MOVWF 6A
09B7: MOVF 54,W
09B8: MOVWF 69
09B9: MOVF 53,W
09BA: MOVWF 68
09BB: MOVF 52,W
09BC: MOVWF 67
09BD: BCF 0A.3
09BE: CALL 319
09BF: BSF 0A.3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -