📄 fft.lst
字号:
0020 =2 1528 xh equ 32
=2 1529
0018 =2 1530 maxrow equ 24
0050 =2 1531 maxcol equ 80
0020 =2 1532 rscale equ 768/maxrow
000C =2 1533 cscale equ 1024/maxcol
=2 1534
449F =2 1535 initgraf:
449F 120112 =2 1536 lcall ilprt
44A2 1B0C00 =2 1537 db esc,FF,0
44A5 22 =2 1538 ret
=2 1539
44A6 741F =2 1540 ansi: mov a,#31
44A8 02010C =2 1541 jmp sndchr
=2 1542
44AB 741C =2 1543 dot: mov a,#28
44AD 12010C =2 1544 lcall sndchr
44B0 7803 =2 1545 RAW: mov r0,#low y1+1
44B2 75A046 =2 1546 mov p2,#high y1
44B5 0244D5 =2 1547 jmp point
=2 1548
44B8 741D =2 1549 plot: mov a,#29 ; vector graphics submode
44BA 12010C =2 1550 lcall sndchr
44BD 7807 =2 1551 line: mov r0,#low y2+1
44BF 75A046 =2 1552 mov p2,#high y2
44C2 1244D5 =2 1553 call point
44C5 0244D5 =2 1554 jmp point
=2 1555 ;
44C8 7800 =2 1556 savit: mov r0,#low x1
44CA 7904 =2 1557 mov r1,#low x2
FFT PAGE 15
44CC 7A04 =2 1558 mov r2,#4
44CE E2 =2 1559 newxy: movx a,@r0 ; x2 = x1
44CF F3 =2 1560 movx @r1,a ; y2 = y1
44D0 08 =2 1561 inc r0
44D1 09 =2 1562 inc r1
44D2 DAFA =2 1563 djnz r2,newxy
44D4 22 =2 1564 ret
=2 1565 ;
44D5 1244FD =2 1566 POINT: lcall getword ; get y2/y1
44D8 7B20 =2 1567 mov r3,#32
44DA 120127 =2 1568 lcall dvide8
44DD EE =2 1569 mov a,r6 ; get highy
44DE 4420 =2 1570 orl a,#yh
44E0 12010C =2 1571 lcall sndchr ; send highy
44E3 EF =2 1572 mov a,r7 ; get lowy
44E4 4460 =2 1573 orl a,#yl
44E6 12010C =2 1574 lcall sndchr ; send lowy
44E9 1244FD =2 1575 lcall getword ; get x2/x1
44EC 7B20 =2 1576 mov r3,#32
44EE 120127 =2 1577 lcall dvide8
44F1 EE =2 1578 mov a,r6 ; get highx
44F2 4420 =2 1579 orl a,#xh
44F4 12010C =2 1580 lcall sndchr ; send highx
44F7 EF =2 1581 mov a,r7 ; get lowx
44F8 4440 =2 1582 orl a,#xl
44FA 02010C =2 1583 ljmp sndchr ; send lowx
=2 1584 ;
44FD =2 1585 getword:
44FD E2 =2 1586 movx a,@r0
44FE FE =2 1587 mov r6,a
44FF 18 =2 1588 dec r0
4500 E2 =2 1589 movx a,@r0
4501 FF =2 1590 mov r7,a
4502 18 =2 1591 dec r0
4503 22 =2 1592 ret
=2 1593 ;
=2 1594 ; r2 HAS ROW, r3 HAS COL
4504 =2 1595 set_cursor:
4504 C082 =2 1596 push dpl
4506 C083 =2 1597 push dph
4508 C3 =2 1598 clr c
4509 7418 =2 1599 mov a,#maxrow ; make rows start at top
450B 9A =2 1600 subb a,r2
450C 75F020 =2 1601 mov b,#rscale
450F A4 =2 1602 mul ab
4510 85F083 =2 1603 mov dph,b
4513 F582 =2 1604 mov dpl,a
=2 1605 +1 shld y1
=2 1606 +1 $nolist
=2 1619 +1 $list
4515 75A046 =2 1620 +1 MOV P2,#HIGH y1
4518 7802 =2 1621 +1 MOV R0,#LOW y1
451A 7191 =2 1622 +1 call shld1
451C EB =2 1624 mov a,r3
451D 75F00C =2 1625 mov b,#cscale
4520 A4 =2 1626 mul ab
4521 85F083 =2 1627 mov dph,b
4524 F582 =2 1628 mov dpl,a
FFT PAGE 16
=2 1629 +1 shld x1
=2 1630 +1 $nolist
=2 1643 +1 $list
4526 75A046 =2 1644 +1 MOV P2,#HIGH x1
4529 7800 =2 1645 +1 MOV R0,#LOW x1
452B 7191 =2 1646 +1 call shld1
452D 91AB =2 1648 call dot
452F D083 =2 1649 pop dph
4531 D082 =2 1650 pop dpl
4533 22 =2 1651 ret
4534 =1 1652 lcode equ $
4600 =1 1653 dseg at (lcode and 0ff00h)+100h
=1 1654
4600 =1 1655 x1: ds 2
4602 =1 1656 y1: ds 2
4604 =1 1657 x2: ds 2
4606 =1 1658 y2: ds 2
4608 =1 1659 head: ds 2
460A =1 1660 sampl: ds 2
460C =1 1661 xlin: ds 2
460E =1 1662 ylin: ds 2
4610 =1 1663 basel: ds 2
=1 1664
=1 1665 ;
1666
5000 1667 cseg at tableseg
=1 1668 $include(sqrt.dat)
5000 =1 1669 sqrt:
5000 00000000 =1 1670 db 000h,000h,000h,000h,000h,000h,001h,001h
5004 00000101
5008 01010202 =1 1671 db 001h,001h,002h,002h,002h,003h,003h,004h
500C 02030304
5010 04050506 =1 1672 db 004h,005h,005h,006h,006h,007h,008h,008h
5014 06070808
5018 090A0B0B =1 1673 db 009h,00ah,00bh,00bh,00ch,00dh,00eh,00fh
501C 0C0D0E0F
5020 10111213 =1 1674 db 010h,011h,012h,013h,014h,015h,017h,018h
5024 14151718
5028 191A1C1D =1 1675 db 019h,01ah,01ch,01dh,01eh,020h,021h,023h
502C 1E202123
5030 24262729 =1 1676 db 024h,026h,027h,029h,02ah,02ch,02eh,02fh
5034 2A2C2E2F
5038 31333536 =1 1677 db 031h,033h,035h,036h,038h,03ah,03ch,03fh
503C 383A3C3F
5040 40424446 =1 1678 db 040h,042h,044h,046h,048h,04ah,04dh,04fh
5044 484A4D4F
5048 51535658 =1 1679 db 051h,053h,056h,058h,05ah,05dh,05fh,062h
504C 5A5D5F62
5050 6467696C =1 1680 db 064h,067h,069h,06ch,06eh,071h,074h,076h
5054 6E717476
5058 797C7F81 =1 1681 db 079h,07ch,07fh,081h,084h,087h,08ah,08dh
505C 84878A8D
5060 90939699 =1 1682 db 090h,093h,096h,099h,09ch,09fh,0a3h,0a6h
5064 9C9FA3A6
5068 A9ACB0B3 =1 1683 db 0a9h,0ach,0b0h,0b3h,0b6h,0bah,0bdh,0c1h
506C B6BABDC1
5070 C4C8CBCF =1 1684 db 0c4h,0c8h,0cbh,0cfh,0d2h,0d6h,0dah,0ddh
5074 D2D6DADD
FFT PAGE 17
5078 E1E5E9EC =1 1685 db 0e1h,0e5h,0e9h,0ech,0f0h,0f4h,0f8h,0fch
507C F0F4F8FC
=1 1686
5080 FFFCF8F4 =1 1687 db 0ffh,0fch,0f8h,0f4h,0f0h,0ech,0e9h,0e5h
5084 F0ECE9E5
5088 E1DDDAD6 =1 1688 db 0e1h,0ddh,0dah,0d6h,0d2h,0cfh,0cbh,0c8h
508C D2CFCBC8
5090 C4C1BDBA =1 1689 db 0c4h,0c1h,0bdh,0bah,0b6h,0b3h,0b0h,0ach
5094 B6B3B0AC
5098 A9A6A39F =1 1690 db 0a9h,0a6h,0a3h,09fh,09ch,099h,096h,093h
509C 9C999693
50A0 908D8A87 =1 1691 db 090h,08dh,08ah,087h,084h,081h,07fh,07ch
50A4 84817F7C
50A8 79767471 =1 1692 db 079h,076h,074h,071h,06eh,06ch,069h,067h
50AC 6E6C6967
50B0 64625F5D =1 1693 db 064h,062h,05fh,05dh,05ah,058h,056h,053h
50B4 5A585653
50B8 514F4D4A =1 1694 db 051h,04fh,04dh,04ah,048h,046h,044h,042h
50BC 48464442
50C0 403E3C3A =1 1695 db 040h,03eh,03ch,03ah,038h,036h,035h,033h
50C4 38363533
50C8 312F2E2C =1 1696 db 031h,02fh,02eh,02ch,02ah,029h,027h,026h
50CC 2A292726
50D0 24232120 =1 1697 db 024h,023h,021h,020h,01eh,01dh,01ch,01ah
50D4 1E1D1C1A
50D8 19181715 =1 1698 db 019h,018h,017h,015h,014h,013h,012h,011h
50DC 14131211
50E0 100F0E0D =1 1699 db 010h,00fh,00eh,00dh,00ch,00bh,00bh,00ah
50E4 0C0B0B0A
50E8 09080807 =1 1700 db 009h,008h,008h,007h,006h,006h,005h,005h
50EC 06060505
50F0 04040303 =1 1701 db 004h,004h,003h,003h,002h,002h,002h,001h
50F4 02020201
50F8 01010100 =1 1702 db 001h,001h,001h,000h,000h,000h,000h,000h
50FC 00000000
=1 1703 $include(sint.dat)
5100 00030609 =1 1704 sint: db 000h,003h,006h,009h,00ch,010h,013h,016h
5104 0C101316
5108 191C1F22 =1 1705 db 019h,01ch,01fh,022h,025h,028h,02bh,02eh
510C 25282B2E
5110 31333639 =1 1706 db 031h,033h,036h,039h,03ch,03fh,041h,044h
5114 3C3F4144
5118 47494C4E =1 1707 db 047h,049h,04ch,04eh,051h,053h,055h,058h
511C 51535558
5120 5A5C5E60 =1 1708 db 05ah,05ch,05eh,060h,062h,064h,066h,068h
5124 62646668
5128 6A6B6D6F =1 1709 db 06ah,06bh,06dh,06fh,070h,071h,073h,074h
512C 70717374
5130 75767879 =1 1710 db 075h,076h,078h,079h,07ah,07ah,07bh,07ch
5134 7A7A7B7C
5138 7D7D7E7E =1 1711 db 07dh,07dh,07eh,07eh,07eh,07fh,07fh,07fh
513C 7E7F7F7F
5140 7F7F7F7F =1 1712 db 07fh,07fh,07fh,07fh,07eh,07eh,07eh,07dh
5144 7E7E7E7D
5148 7D7C7B7A =1 1713 db 07dh,07ch,07bh,07ah,07ah,079h,078h,076h
514C 7A797876
5150 75747371 =1 1714 db 075h,074h,073h,071h,070h,06fh,06dh,06bh
5154 706F6D6B
FFT PAGE 18
5158 6A686664 =1 1715 db 06ah,068h,066h,064h,062h,060h,05eh,05ch
515C 62605E5C
5160 5A585553 =1 1716 db 05ah,058h,055h,053h,051h,04eh,04ch,049h
5164 514E4C49
5168 4744413F =1 1717 db 047h,044h,041h,03fh,03ch,039h,036h,033h
516C 3C393633
5170 312E2B28 =1 1718 db 031h,02eh,02bh,028h,025h,022h,01fh,01ch
5174 25221F1C
5178 19161310 =1 1719 db 019h,016h,013h,010h,00ch,009h,006h,003h
517C 0C090603
5180 00FDFAF7 =1 1720 db 000h,0fdh,0fah,0f7h,0f4h,0f0h,0edh,0eah
5184 F4F0EDEA
5188 E7E4E1DE =1 1721 db 0e7h,0e4h,0e1h,0deh,0dbh,0d8h,0d5h,0d2h
518C DBD8D5D2
5190 CFCDCAC7 =1 1722 db 0cfh,0cdh,0cah,0c7h,0c4h,0c1h,0bfh,0bch
5194 C4C1BFBC
5198 B9B7B4B2 =1 1723 db 0b9h,0b7h,0b4h,0b2h,0afh,0adh,0abh,0a8h
519C AFADABA8
51A0 A6A4A2A0 =1 1724 db 0a6h,0a4h,0a2h,0a0h,09eh,09ch,09ah,098h
51A4 9E9C9A98
51A8 96959391 =1 1725 db 096h,095h,093h,091h,090h,08fh,08dh,08ch
51AC 908F8D8C
51B0 8B8A8887 =1 1726 db 08bh,08ah,088h,087h,086h,086h,085h,084h
51B4 86868584
51B8 83838282 =1 1727 db 083h,083h,082h,082h,082h,081h,081h,081h
51BC 82818181
51C0 81818181 =1 1728 db 081h,081h,081h,081h,082h,082h,082h,083h
51C4 82828283
51C8 83848586 =1 1729 db 083h,084h,085h,086h,086h,087h,088h,08ah
51CC 8687888A
51D0 8B8C8D8F =1 1730 db 08bh,08ch,08dh,08fh,090h,091h,093h,095h
51D4 90919395
51D8 96989A9C =1 1731 db 096h,098h,09ah,09ch,09eh,0a0h,0a2h,0a4h
51DC 9EA0A2A4
51E0 A6A8ABAD =1 1732 db 0a6h,0a8h,0abh,0adh,0afh,0b2h,0b4h,0b7h
51E4 AFB2B4B7
51E8 B9BCBFC1 =1 1733 db 0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0cah,0cdh
51EC C4C7CACD
51F0 CFD2D5D8 =1 1734 db 0cfh,0d2h,0d5h,0d8h,0dbh,0deh,0e1h,0e4h
51F4 DBDEE1E4
51F8 E7EAEDF0 =1 1735 db 0e7h,0eah,0edh,0f0h,0f4h,0f7h,0fah,0fdh
51FC F4F7FAFD
=1 1736
5000 1737 sqadr equ sqrt ; square root table address
5100 1738 stadr equ sint ; sine table address
1739
5200 1740 dseg at arrayseg
5200 1741 inpd: ds 256
5300 1742 real: ds 256
5400 1743 imag: ds 256
5500 1744 ds 127
557F 1745 pabuf: ds 129 ; power/amplitude spectrum
1746
1747 end
VERSION 1.2h ASSEMBLY COMPLETE, 0 ERRORS FOUND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -