_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

SIDTRIG.ASM

FILE INFORMATION

FILENAME(S): SIDTRIG.ASM

FILE TYPE(S): DEL

FILE SIZE: 2.7K

FIRST SEEN: 2025-10-19 22:49:33

APPEARS ON: 2 disk(s)

FILE HASH

51d458ba0bcfd67b7e45015858dec9af6595b93c5f69a7fa7ed4eccf9decf76b

FOUND ON DISKS (2 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
MIGDTL SIDTRIG.ASM DEL Radd Maxx 13 0 DOWNLOAD FILE
MIGDTL SIDTRIG.ASM DEL DuncanTwain 13 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 3B 20 53 50 45 43 49 41  4C 20 53 49 44 54 52 41  |; SPECIAL SIDTRA|
00000010: 4E 20 52 4F 55 54 49 4E  45 53 0D 3B 20 53 49 4E  |N ROUTINES.; SIN|
00000020: 45 2C 20 43 4F 53 49 4E  45 2C 20 41 52 43 54 41  |E, COSINE, ARCTA|
00000030: 4E 47 45 4E 54 0D 3B 20  44 49 53 54 41 4E 43 45  |NGENT.; DISTANCE|
00000040: 2C 20 53 51 55 41 52 45  20 52 4F 4F 54 0D 3B 0D  |, SQUARE ROOT.;.|
00000050: 3B 20 20 53 49 4E 2C 20  53 49 4E 28 53 54 4B 29  |;  SIN, SIN(STK)|
00000060: 2A 4F 50 52 3D 3E 4F 50  52 20 24 32 38 0D 53 49  |*OPR=>OPR $28.SI|
00000070: 4E 20 4C 44 59 20 53 54  4C 2C 58 0D 43 4F 53 45  |N LDY STL,X.COSE|
00000080: 20 42 50 4C 20 53 49 4E  31 20 3B 20 53 49 4E 28  | BPL SIN1 ; SIN(|
00000090: 59 29 20 49 53 20 50 4F  53 49 54 49 56 45 0D 20  |Y) IS POSITIVE. |
000000A0: 44 45 58 0D 20 44 45 58  0D 20 4A 53 52 20 4E 45  |DEX. DEX. JSR NE|
000000B0: 47 20 3B 20 45 4C 53 45  20 4E 45 47 41 54 45 20  |G ; ELSE NEGATE |
000000C0: 4F 50 52 0D 20 49 4E 58  0D 20 49 4E 58 0D 20 54  |OPR. INX. INX. T|
000000D0: 59 41 0D 20 41 4E 44 20  23 24 37 46 0D 20 54 41  |YA. AND #$7F. TA|
000000E0: 59 0D 53 49 4E 31 20 4C  44 41 20 54 52 49 47 2C  |Y.SIN1 LDA TRIG,|
000000F0: 59 0D 20 4A 53 52 20 52  4E 44 45 0D 20 49 4E 58  |Y. JSR RNDE. INX|
00000100: 0D 20 49 4E 58 0D 20 52  54 53 0D 3B 0D 3B 20 20  |. INX. RTS.;.;  |
00000110: 43 4F 53 49 4E 45 2C 20  41 43 43 2A 43 4F 53 28  |COSINE, ACC*COS(|
00000120: 59 29 3D 3E 41 43 43 20  24 32 39 0D 43 4F 53 20  |Y)=>ACC $29.COS |
00000130: 4C 44 41 20 53 54 4C 2C  58 0D 20 43 4C 43 0D 20  |LDA STL,X. CLC. |
00000140: 41 44 43 20 23 24 34 30  0D 20 54 41 59 0D 20 4A  |ADC #$40. TAY. J|
00000150: 4D 50 20 43 4F 53 45 20  3B 20 4D 45 52 47 45 20  |MP COSE ; MERGE |
00000160: 57 2F 20 53 49 4E 45 0D  54 52 49 47 20 3D 20 2A  |W/ SINE.TRIG = *|
00000170: 0D 20 2E 42 59 54 45 20  30 2C 36 2C 31 33 2C 31  |. .BYTE 0,6,13,1|
00000180: 39 2C 32 35 2C 33 31 2C  33 37 2C 34 34 0D 20 2E  |9,25,31,37,44. .|
00000190: 42 59 54 45 20 35 30 2C  35 36 2C 36 32 2C 36 38  |BYTE 50,56,62,68|
000001A0: 2C 37 34 2C 38 30 2C 38  36 2C 39 32 0D 20 2E 42  |,74,80,86,92. .B|
000001B0: 59 54 45 20 39 38 2C 31  30 33 2C 31 30 39 2C 31  |YTE 98,103,109,1|
000001C0: 31 35 2C 31 32 30 2C 31  32 36 2C 31 33 31 2C 31  |15,120,126,131,1|
000001D0: 33 36 0D 20 2E 42 59 54  45 20 31 34 32 2C 31 34  |36. .BYTE 142,14|
000001E0: 37 2C 31 35 32 2C 31 35  37 2C 31 36 32 2C 31 36  |7,152,157,162,16|
000001F0: 37 2C 31 37 31 2C 31 37  36 0D 20 2E 42 59 54 45  |7,171,176. .BYTE|
00000200: 20 31 38 30 2C 31 38 35  2C 31 38 39 2C 31 39 33  | 180,185,189,193|
00000210: 2C 31 39 37 2C 32 30 31  2C 32 30 35 2C 32 30 38  |,197,201,205,208|
00000220: 0D 20 2E 42 59 54 45 20  32 31 32 2C 32 31 35 2C  |. .BYTE 212,215,|
00000230: 32 31 39 2C 32 32 32 2C  32 32 35 2C 32 32 38 2C  |219,222,225,228,|
00000240: 32 33 31 2C 32 33 33 0D  20 2E 42 59 54 45 20 32  |231,233. .BYTE 2|
00000250: 33 36 2C 32 33 38 2C 32  34 30 2C 32 34 32 2C 32  |36,238,240,242,2|
00000260: 34 34 2C 32 34 36 2C 32  34 37 2C 32 34 39 0D 20  |44,246,247,249. |
00000270: 2E 42 59 54 45 20 32 35  30 2C 32 35 31 2C 32 35  |.BYTE 250,251,25|
00000280: 32 2C 32 35 33 2C 32 35  34 2C 32 35 34 2C 32 35  |2,253,254,254,25|
00000290: 35 2C 32 35 35 0D 20 2E  42 59 54 45 20 32 35 35  |5,255. .BYTE 255|
000002A0: 2C 32 35 35 2C 32 35 35  2C 32 35 34 2C 32 35 34  |,255,255,254,254|
000002B0: 2C 32 35 33 2C 32 35 32  2C 32 35 31 0D 20 2E 42  |,253,252,251. .B|
000002C0: 59 54 45 20 32 35 30 2C  32 34 39 2C 32 34 37 2C  |YTE 250,249,247,|
000002D0: 32 34 36 2C 32 34 34 2C  32 34 32 2C 32 34 30 2C  |246,244,242,240,|
000002E0: 32 33 38 0D 20 2E 42 59  54 45 20 32 33 36 2C 32  |238. .BYTE 236,2|
000002F0: 33 33 2C 32 33 31 2C 32  32 38 2C 32 32 35 2C 32  |33,231,228,225,2|
00000300: 32 32 2C 32 31 39 2C 32  31 35 0D 20 2E 42 59 54  |22,219,215. .BYT|
00000310: 45 20 32 31 32 2C 32 30  38 2C 32 30 35 2C 32 30  |E 212,208,205,20|
00000320: 31 2C 31 39 37 2C 31 39  33 2C 31 38 39 2C 31 38  |1,197,193,189,18|
00000330: 35 0D 20 2E 42 59 54 45  20 31 38 30 2C 31 37 36  |5. .BYTE 180,176|
00000340: 2C 31 37 31 2C 31 36 37  2C 31 36 32 2C 31 35 37  |,171,167,162,157|
00000350: 2C 31 35 32 2C 31 34 37  0D 20 2E 42 59 54 45 20  |,152,147. .BYTE |
00000360: 31 34 32 2C 31 33 36 2C  31 33 31 2C 31 32 36 2C  |142,136,131,126,|
00000370: 31 32 30 2C 31 31 35 2C  31 30 39 2C 31 30 33 0D  |120,115,109,103.|
00000380: 20 2E 42 59 54 45 20 39  38 2C 39 32 2C 38 36 2C  | .BYTE 98,92,86,|
00000390: 38 30 2C 37 34 2C 36 38  2C 36 32 2C 35 36 0D 20  |80,74,68,62,56. |
000003A0: 2E 42 59 54 45 20 35 30  2C 34 34 2C 33 37 2C 33  |.BYTE 50,44,37,3|
000003B0: 31 2C 32 35 2C 31 39 2C  31 33 2C 36 0D 3B 0D 3B  |1,25,19,13,6.;.;|
000003C0: 0D 3B 20 20 41 52 43 54  41 4E 2C 20 41 54 4E 28  |.;  ARCTAN, ATN(|
000003D0: 4F 50 52 2F 53 54 4B 29  3D 3E 4F 50 52 20 24 32  |OPR/STK)=>OPR $2|
000003E0: 46 0D 41 54 4E 20 4C 44  41 20 23 24 30 30 0D 20  |F.ATN LDA #$00. |
000003F0: 53 54 41 20 54 4D 50 33  20 3B 20 41 44 4A 55 53  |STA TMP3 ; ADJUS|
00000400: 54 20 53 49 47 4E 53 0D  20 4C 44 41 20 53 54 48  |T SIGNS. LDA STH|
00000410: 2C 58 20 3B 20 49 53 20  59 3C 30 20 3F 0D 20 42  |,X ; IS Y<0 ?. B|
00000420: 50 4C 20 41 54 4E 31 0D  20 4A 53 52 20 4E 45 47  |PL ATN1. JSR NEG|
00000430: 0D 20 4C 44 41 20 23 24  38 30 0D 20 53 54 41 20  |. LDA #$80. STA |
00000440: 54 4D 50 33 20 3B 20 53  45 54 20 48 49 20 42 49  |TMP3 ; SET HI BI|
00000450: 54 0D 41 54 4E 31 20 4C  44 41 20 4F 50 48 2C 58  |T.ATN1 LDA OPH,X|
00000460: 20 3B 20 49 53 20 58 3C  30 20 3F 0D 20 42 50 4C  | ; IS X<0 ?. BPL|
00000470: 20 41 54 4E 32 0D 20 44  45 58 20 3B 20 46 4F 4F  | ATN2. DEX ; FOO|
00000480: 4C 20 53 54 41 43 4B 0D  20 44 45 58 0D 20 4A 53  |L STACK. DEX. JS|
00000490: 52 20 4E 45 47 0D 20 49  4E 58 0D 20 49 4E 58 0D  |R NEG. INX. INX.|
000004A0: 20 4C 44 41 20 23 24 34  30 0D 20 45 4F 52 20 54  | LDA #$40. EOR T|
000004B0: 4D 50 33 20 3B 20 53 45  54 20 42 49 54 20 36 0D  |MP3 ; SET BIT 6.|
000004C0: 20 53 54 41 20 54 4D 50  33 0D 41 54 4E 32 20 53  | STA TMP3.ATN2 S|
000004D0: 45 43 20 3B 20 49 53 20  58 3C 59 20 3F 0D 20 4C  |EC ; IS X<Y ?. L|
000004E0: 44 41 20 4F 50 4C 2C 58  0D 20 53 42 43 20 53 54  |DA OPL,X. SBC ST|
000004F0: 4C 2C 58 0D 20 4C 44 41  20 4F 50 48 2C 58 0D 20  |L,X. LDA OPH,X. |
00000500: 53 42 43 20 53 54 48 2C  58 0D 20 42 50 4C 20 41  |SBC STH,X. BPL A|
00000510: 54 4E 33 0D 20 4A 53 52  20 53 57 41 50 20 3B 20  |TN3. JSR SWAP ; |
00000520: 59 45 53 0D 20 49 4E 43  20 54 4D 50 33 20 3B 20  |YES. INC TMP3 ; |
00000530: 53 45 54 20 4C 4F 20 42  49 54 0D 3B 0D 41 54 4E  |SET LO BIT.;.ATN|
00000540: 33 20 4C 44 59 20 23 24  30 33 20 3B 20 53 48 49  |3 LDY #$03 ; SHI|
00000550: 46 54 20 58 2F 59 20 33  0D 41 54 4E 39 30 20 4C  |FT X/Y 3.ATN90 L|
00000560: 44 41 20 4F 50 48 2C 58  0D 20 41 53 4C 20 41 0D  |DA OPH,X. ASL A.|
00000570: 20 42 4D 49 20 41 54 4E  39 32 0D 20 41 53 4C 20  | BMI ATN92. ASL |
00000580: 4F 50 4C 2C 58 0D 20 52  4F 4C 20 4F 50 48 2C 58  |OPL,X. ROL OPH,X|
00000590: 0D 20 44 45 59 0D 20 42  4E 45 20 41 54 4E 39 30  |. DEY. BNE ATN90|
000005A0: 0D 20 42 45 51 20 41 54  4E 39 33 0D 41 54 4E 39  |. BEQ ATN93.ATN9|
000005B0: 32 20 4A 53 52 20 53 48  49 46 54 52 0D 41 54 4E  |2 JSR SHIFTR.ATN|
000005C0: 39 33 20 4A 53 52 20 44  49 56 0D 3B 0D 20 4C 44  |93 JSR DIV.;. LD|
000005D0: 41 20 4F 50 48 2C 58 20  3B 20 58 2F 59 3E 32 35  |A OPH,X ; X/Y>25|
000005E0: 36 20 3F 0D 41 54 4E 33  35 20 4C 44 59 20 23 24  |6 ?.ATN35 LDY #$|
000005F0: 30 44 20 3B 20 46 49 4E  44 20 46 49 52 53 54 20  |0D ; FIND FIRST |
00000600: 42 49 54 0D 20 43 4C 43  0D 41 54 4E 34 20 42 43  |BIT. CLC.ATN4 BC|
00000610: 53 20 41 54 4E 35 20 3B  20 46 4F 55 4E 44 20 49  |S ATN5 ; FOUND I|
00000620: 54 0D 20 41 53 4C 20 4F  50 4C 2C 58 20 3B 20 52  |T. ASL OPL,X ; R|
00000630: 45 4D 41 49 4E 44 45 52  0D 20 52 4F 4C 20 4F 50  |EMAINDER. ROL OP|
00000640: 48 2C 58 0D 20 44 45 59  0D 20 42 4E 45 20 41 54  |H,X. DEY. BNE AT|
00000650: 4E 34 0D 3B 0D 41 54 4E  35 20 53 54 59 20 54 4D  |N4.;.ATN5 STY TM|
00000660: 50 32 20 3B 20 42 55 49  4C 44 20 54 41 42 4C 45  |P2 ; BUILD TABLE|
00000670: 20 4B 45 59 0D 20 4C 44  59 20 23 24 30 34 0D 20  | KEY. LDY #$04. |
00000680: 4C 44 41 20 4F 50 48 2C  58 0D 41 54 4E 36 20 4C  |LDA OPH,X.ATN6 L|
00000690: 53 52 20 41 0D 20 44 45  59 0D 20 42 4E 45 20 41  |SR A. DEY. BNE A|
000006A0: 54 4E 36 0D 20 53 54 41  20 54 4D 50 31 0D 3B 0D  |TN6. STA TMP1.;.|
000006B0: 20 4C 44 41 20 54 4D 50  32 0D 20 4C 44 59 20 23  | LDA TMP2. LDY #|
000006C0: 24 30 34 0D 41 54 4E 37  20 41 53 4C 20 41 0D 20  |$04.ATN7 ASL A. |
000006D0: 44 45 59 0D 20 42 4E 45  20 41 54 4E 37 0D 20 43  |DEY. BNE ATN7. C|
000006E0: 4C 43 0D 20 41 44 43 20  54 4D 50 31 0D 20 54 41  |LC. ADC TMP1. TA|
000006F0: 59 0D 20 43 50 59 20 23  24 37 45 0D 20 42 4D 49  |Y. CPY #$7E. BMI|
00000700: 20 41 54 4E 38 0D 20 4C  44 59 20 23 24 37 46 0D  | ATN8. LDY #$7F.|
00000710: 41 54 4E 38 20 4C 44 41  20 41 54 41 42 4C 45 2C  |ATN8 LDA ATABLE,|
00000720: 59 20 3B 20 47 45 54 20  41 54 4E 0D 20 53 54 41  |Y ; GET ATN. STA|
00000730: 20 54 4D 50 31 0D 20 4C  44 59 20 23 30 0D 20 4C  | TMP1. LDY #0. L|
00000740: 44 41 20 23 24 30 31 0D  20 42 49 54 20 54 4D 50  |DA #$01. BIT TMP|
00000750: 33 0D 20 42 45 51 20 41  54 4E 39 0D 20 53 45 43  |3. BEQ ATN9. SEC|
00000760: 20 3B 20 58 2C 59 20 53  57 41 50 50 45 44 0D 20  | ; X,Y SWAPPED. |
00000770: 4C 44 41 20 23 24 38 30  0D 20 53 42 43 20 54 4D  |LDA #$80. SBC TM|
00000780: 50 31 0D 20 53 54 41 20  54 4D 50 31 20 3B 20 41  |P1. STA TMP1 ; A|
00000790: 54 4E 3D 36 34 2D 41 54  4E 0D 41 54 4E 39 20 42  |TN=64-ATN.ATN9 B|
000007A0: 49 54 20 54 4D 50 33 0D  20 42 56 43 20 41 54 4E  |IT TMP3. BVC ATN|
000007B0: 31 30 0D 20 53 45 43 20  3B 20 58 20 57 41 53 20  |10. SEC ; X WAS |
000007C0: 4E 45 47 41 54 49 56 45  0D 20 4C 44 41 20 23 24  |NEGATIVE. LDA #$|
000007D0: 30 30 0D 20 53 42 43 20  54 4D 50 31 0D 20 53 54  |00. SBC TMP1. ST|
000007E0: 41 20 54 4D 50 31 0D 20  42 45 51 20 41 54 4E 31  |A TMP1. BEQ ATN1|
000007F0: 30 0D 20 49 4E 59 0D 41  54 4E 31 30 20 42 49 54  |0. INY.ATN10 BIT|
00000800: 20 54 4D 50 33 0D 20 42  50 4C 20 41 54 4E 31 31  | TMP3. BPL ATN11|
00000810: 0D 20 53 45 43 20 3B 20  59 20 57 41 53 20 4E 45  |. SEC ; Y WAS NE|
00000820: 47 41 54 49 56 45 0D 20  4C 44 41 20 23 24 30 30  |GATIVE. LDA #$00|
00000830: 0D 20 53 42 43 20 54 4D  50 31 0D 20 53 54 41 20  |. SBC TMP1. STA |
00000840: 54 4D 50 31 0D 20 42 4D  49 20 41 54 4E 31 31 0D  |TMP1. BMI ATN11.|
00000850: 20 4C 44 59 20 23 31 0D  41 54 4E 31 31 20 54 59  | LDY #1.ATN11 TY|
00000860: 41 20 20 3B 20 4D 4F 56  45 20 54 4F 20 4F 50 52  |A  ; MOVE TO OPR|
00000870: 0D 20 53 54 41 20 4F 50  48 2C 58 0D 20 42 45 51  |. STA OPH,X. BEQ|
00000880: 20 41 54 4E 31 32 0D 20  4C 44 41 20 23 24 46 46  | ATN12. LDA #$FF|
00000890: 0D 20 53 54 41 20 4F 50  48 2C 58 0D 41 54 4E 31  |. STA OPH,X.ATN1|
000008A0: 32 20 4C 44 41 20 54 4D  50 31 0D 20 53 54 41 20  |2 LDA TMP1. STA |
000008B0: 4F 50 4C 2C 58 0D 20 52  54 53 0D 3B 0D 41 54 41  |OPL,X. RTS.;.ATA|
000008C0: 42 4C 45 20 3D 20 2A 0D  20 2E 42 59 54 45 20 36  |BLE = *. .BYTE 6|
000008D0: 34 2C 36 36 2C 36 38 2C  37 32 2C 37 33 2C 37 34  |4,66,68,72,73,74|
000008E0: 2C 37 36 2C 37 38 2C 38  30 2C 38 32 2C 38 33 2C  |,76,78,80,82,83,|
000008F0: 38 34 2C 38 35 2C 38 36  2C 38 37 2C 38 38 0D 20  |84,85,86,87,88. |
00000900: 2E 42 59 54 45 20 39 30  2C 39 32 2C 39 33 2C 39  |.BYTE 90,92,93,9|
00000910: 34 2C 39 36 2C 39 38 2C  39 39 2C 31 30 30 2C 31  |4,96,98,99,100,1|
00000920: 30 31 2C 31 30 32 2C 31  30 33 2C 31 30 34 2C 31  |01,102,103,104,1|
00000930: 30 35 2C 31 30 35 2C 31  30 36 2C 31 30 36 0D 20  |05,105,106,106. |
00000940: 2E 42 59 54 45 20 31 30  37 2C 31 30 38 2C 31 30  |.BYTE 107,108,10|
00000950: 39 2C 31 31 30 2C 31 31  31 2C 31 31 32 2C 31 31  |9,110,111,112,11|
00000960: 33 2C 31 31 33 2C 31 31  34 2C 31 31 34 2C 31 31  |3,113,114,114,11|
00000970: 35 2C 31 31 35 2C 31 31  36 2C 31 31 36 2C 31 31  |5,115,116,116,11|
00000980: 37 2C 31 31 37 0D 20 2E  42 59 54 45 20 31 31 37  |7,117. .BYTE 117|
00000990: 2C 31 31 38 2C 31 31 38  2C 31 31 38 2C 31 31 39  |,118,118,118,119|
000009A0: 2C 31 31 39 2C 31 32 30  2C 31 32 30 2C 31 32 31  |,119,120,120,121|
000009B0: 2C 31 32 31 2C 31 32 31  2C 31 32 31 2C 31 32 31  |,121,121,121,121|
000009C0: 2C 31 32 32 2C 31 32 32  2C 31 32 32 0D 20 2E 42  |,122,122,122. .B|
000009D0: 59 54 45 20 31 32 32 2C  31 32 32 2C 31 32 33 2C  |YTE 122,122,123,|
000009E0: 31 32 33 2C 31 32 33 2C  31 32 33 2C 31 32 34 2C  |123,123,123,124,|
000009F0: 31 32 34 2C 31 32 34 2C  31 32 34 2C 31 32 34 2C  |124,124,124,124,|
00000A00: 31 32 34 2C 31 32 35 2C  31 32 35 2C 31 32 35 2C  |124,125,125,125,|
00000A10: 31 32 35 0D 20 2E 42 59  54 45 20 31 32 35 2C 31  |125. .BYTE 125,1|
00000A20: 32 35 2C 31 32 35 2C 31  32 35 2C 31 32 35 2C 31  |25,125,125,125,1|
00000A30: 32 35 2C 31 32 36 2C 31  32 36 2C 31 32 36 2C 31  |25,126,126,126,1|
00000A40: 32 36 2C 31 32 36 2C 31  32 36 2C 31 32 36 2C 31  |26,126,126,126,1|
00000A50: 32 36 2C 31 32 36 2C 31  32 36 0D 20 2E 42 59 54  |26,126,126. .BYT|
00000A60: 45 20 31 32 36 2C 31 32  36 2C 31 32 36 2C 31 32  |E 126,126,126,12|
00000A70: 36 2C 31 32 36 2C 31 32  36 2C 31 32 37 2C 31 32  |6,126,126,127,12|
00000A80: 37 2C 31 32 37 2C 31 32  37 2C 31 32 37 2C 31 32  |7,127,127,127,12|
00000A90: 37 2C 31 32 37 2C 31 32  37 2C 31 32 37 2C 31 32  |7,127,127,127,12|
00000AA0: 37 0D 20 2E 42 59 54 45  20 31 32 38 2C 31 32 38  |7. .BYTE 128,128|
00000AB0: 2C 31 32 38 2C 31 32 38  2C 31 32 38 2C 31 32 38  |,128,128,128,128|
00000AC0: 2C 31 32 38 2C 31 32 38  2C 31 32 38 2C 31 32 38  |,128,128,128,128|
00000AD0: 2C 31 32 38 2C 31 32 38  2C 31 32 38 2C 31 32 38  |,128,128,128,128|
00000AE0: 2C 31 32 38 2C 31 32 38  0D 3B 0D 20 2E 45 4E 44  |,128,128.;. .END|
00000AF0: 0D                                                |.               |
; SPECIAL SIDTRAN ROUTINES.; SINE, COSIN
E, ARCTANGENT.; DISTANCE, SQUARE ROOT.;.
;  SIN, SIN(STK)*OPR=>OPR $28.SIN LDY ST
L,X.COSE BPL SIN1 ; SIN(Y) IS POSITIVE. 
DEX. DEX. JSR NEG ; ELSE NEGATE OPR. INX
. INX. TYA. AND #$7F. TAY.SIN1 LDA TRIG,
Y. JSR RNDE. INX. INX. RTS.;.;  COSINE, 
ACC*COS(Y)=>ACC $29.COS LDA STL,X. CLC. 
ADC #$40. TAY. JMP COSE ; MERGE W/ SINE.
TRIG = *. .BYTE 0,6,13,19,25,31,37,44. .
BYTE 50,56,62,68,74,80,86,92. .BYTE 98,1
03,109,115,120,126,131,136. .BYTE 142,14
7,152,157,162,167,171,176. .BYTE 180,185
,189,193,197,201,205,208. .BYTE 212,215,
219,222,225,228,231,233. .BYTE 236,238,2
40,242,244,246,247,249. .BYTE 250,251,25
2,253,254,254,255,255. .BYTE 255,255,255
,254,254,253,252,251. .BYTE 250,249,247,
246,244,242,240,238. .BYTE 236,233,231,2
28,225,222,219,215. .BYTE 212,208,205,20
1,197,193,189,185. .BYTE 180,176,171,167
,162,157,152,147. .BYTE 142,136,131,126,
120,115,109,103. .BYTE 98,92,86,80,74,68
,62,56. .BYTE 50,44,37,31,25,19,13,6.;.;
.;  ARCTAN, ATN(OPR/STK)=>OPR $2F.ATN LD
A #$00. STA TMP3 ; ADJUST SIGNS. LDA STH
,X ; IS Y<0 ?. BPL ATN1. JSR NEG. LDA #$
80. STA TMP3 ; SET HI BIT.ATN1 LDA OPH,X
 ; IS X<0 ?. BPL ATN2. DEX ; FOOL STACK.
 DEX. JSR NEG. INX. INX. LDA #$40. EOR T
MP3 ; SET BIT 6. STA TMP3.ATN2 SEC ; IS 
X<Y ?. LDA OPL,X. SBC STL,X. LDA OPH,X. 
SBC STH,X. BPL ATN3. JSR SWAP ; YES. INC
 TMP3 ; SET LO BIT.;.ATN3 LDY #$03 ; SHI
FT X/Y 3.ATN90 LDA OPH,X. ASL A. BMI ATN
92. ASL OPL,X. ROL OPH,X. DEY. BNE ATN90
. BEQ ATN93.ATN92 JSR SHIFTR.ATN93 JSR D
IV.;. LDA OPH,X ; X/Y>256 ?.ATN35 LDY #$
0D ; FIND FIRST BIT. CLC.ATN4 BCS ATN5 ;
 FOUND IT. ASL OPL,X ; REMAINDER. ROL OP
H,X. DEY. BNE ATN4.;.ATN5 STY TMP2 ; BUI
LD TABLE KEY. LDY #$04. LDA OPH,X.ATN6 L
SR A. DEY. BNE ATN6. STA TMP1.;. LDA TMP
2. LDY #$04.ATN7 ASL A. DEY. BNE ATN7. C
LC. ADC TMP1. TAY. CPY #$7E. BMI ATN8. L
DY #$7F.ATN8 LDA ATABLE,Y ; GET ATN. STA
 TMP1. LDY #0. LDA #$01. BIT TMP3. BEQ A
TN9. SEC ; X,Y SWAPPED. LDA #$80. SBC TM
P1. STA TMP1 ; ATN=64-ATN.ATN9 BIT TMP3.
 BVC ATN10. SEC ; X WAS NEGATIVE. LDA #$
00. SBC TMP1. STA TMP1. BEQ ATN10. INY.A
TN10 BIT TMP3. BPL ATN11. SEC ; Y WAS NE
GATIVE. LDA #$00. SBC TMP1. STA TMP1. BM
I ATN11. LDY #1.ATN11 TYA  ; MOVE TO OPR
. STA OPH,X. BEQ ATN12. LDA #$FF. STA OP
H,X.ATN12 LDA TMP1. STA OPL,X. RTS.;.ATA
BLE = *. .BYTE 64,66,68,72,73,74,76,78,8
0,82,83,84,85,86,87,88. .BYTE 90,92,93,9
4,96,98,99,100,101,102,103,104,105,105,1
06,106. .BYTE 107,108,109,110,111,112,11
3,113,114,114,115,115,116,116,117,117. .
BYTE 117,118,118,118,119,119,120,120,121
,121,121,121,121,122,122,122. .BYTE 122,
122,123,123,123,123,124,124,124,124,124,
124,125,125,125,125. .BYTE 125,125,125,1
25,125,125,126,126,126,126,126,126,126,1
26,126,126. .BYTE 126,126,126,126,126,12
6,127,127,127,127,127,127,127,127,127,12
7. .BYTE 128,128,128,128,128,128,128,128
,128,128,128,128,128,128,128,128.;. .END
.
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL