home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh3x / sh33b.d64 / drehe.src (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  10KB  |  576 lines

  1. 0 ;*********************************
  2. 1 ;   WRITTEN ON 22-24.12.87 BY
  3. 2 ;
  4. 3 ;     CHRISTIAN RODEMEYER
  5. 4 ;     GOLDREGENSTRASSE 28
  6. 5 ;     4370  MARL - SINSEN
  7. 6 ;
  8. 7 ;*********************************
  9. 8  +$C000
  10. 9 ;
  11. 10 ; ROM-ROUTINEN
  12. 11 ;
  13. 12  TAB(CONUPK=$BA8C
  14. 13  TAB(MOVFM=$BBA2
  15. 14  TAB(MOVMF=$BBD4
  16. 15  TAB(ACTOFC=$BC3C
  17. 16  TAB(MOVAF=$BC0C
  18. 17  TAB(COS=$E264
  19. 18  TAB(FADD=$B867
  20. 19  TAB(SIN=$E26B
  21. 20  TAB(NEGOP=$BFB4
  22. 21  TAB(FMULTT=$BA30
  23. 22  TAB(CHKCOM=$AEFD
  24. 23  TAB(FRMNUM=$AD8A
  25. 24  TAB(GETADR=$B7F7
  26. 26  TAB(FSUB=$B850
  27. 27  TAB(FADDH=$B849
  28. 28  TAB(SIGN=$BC28
  29. 29  TAB(AADD=$BD7E
  30. 49 ;
  31. 50 ; VARIABLEN
  32. 51 ;
  33. 52  TAB(TZEIGER=$340
  34. 53  TAB(ZAEHLER=2
  35. 54  TAB(DEST=$FD
  36. 55  TAB(SOURCE=$FB
  37. 56  TAB(CHELP=$342
  38. 57  TAB(XS=$343
  39. 58  TAB(YS=$344
  40. 59  TAB(XT=$345
  41. 60  TAB(YT=$346
  42. 61  TAB(YTABZ=$347
  43. 62  TAB(VRZCHN=102
  44. 99 ;
  45. 100 GETLAXCLOSEWERT
  46. 101  MID$#<(WERT)
  47. 102  PEEK#>(WERT)
  48. 103 NEW
  49. 104 ;
  50. 105 GETSAXCLOSEADDR
  51. 106  (null)ADDR
  52. 107  (null)ADDR+1
  53. 108 NEW
  54. 109 ;
  55. 110 GETLOHICLOSEWERT,ADDR
  56. 111  CLOSELAXCLOSEWERT
  57. 112  CLOSESAXCLOSEADDR
  58. 113 NEW
  59. 114 ;
  60. 115 GETPOKECLOSEADDR,BYTE
  61. 116  MID$#BYTE
  62. 117  (null)ADDR
  63. 118 NEW
  64. 119 ;
  65. 120 GETTADCLOSEVON,NACH
  66. 121  MID$VON
  67. 122  (null)NACH
  68. 123  MID$VON+1
  69. 124  (null)NACH+1
  70. 125 NEW
  71. 126 ;
  72. 127 GETTBYCLOSEVON,NACH
  73. 128  MID$VON
  74. 129  (null)NACH
  75. 130 NEW
  76. 131 ;
  77. 132 GETCBQCLOSEZIEL,ARG
  78. 133  STR$#ARG
  79. 134  (null)ZIEL
  80. 135 NEW
  81. 136 ;
  82. 137 GETCBNCLOSEZIEL,ARG
  83. 138  STR$#ARG
  84. 139  (null)ZIEL
  85. 140 NEW
  86. 141 ;
  87. 142 GETLBQCLOSEZIEL,ARG
  88. 143  STR$#ARG
  89. 144  (null)*+5
  90. 145  (null)ZIEL
  91. 146 NEW
  92. 147 ;
  93. 148 GETLBNCLOSEZIEL,ARG
  94. 149  STR$#ARG
  95. 150  (null)*+5
  96. 151  (null)ZIEL
  97. 152 NEW
  98. 153 ;
  99. 154 GETBIBCLOSEZIEL,ARG
  100. 155  STR$#ARG+1
  101. 156  (null)ZIEL
  102. 157 NEW
  103. 158 ;
  104. 159 GETBISCLOSEZIEL,ARG
  105. 160  STR$#ARG
  106. 161  (null)ZIEL
  107. 162 NEW
  108. 163 ;
  109. 164 GETLBBCLOSEZIEL,ARG
  110. 165  STR$#ARG+1
  111. 166  (null)*+5
  112. 167  (null)ZIEL
  113. 168 NEW
  114. 169 ;
  115. 170 GETLBSCLOSEZIEL,ARG
  116. 171  STR$#ARG
  117. 172  (null)*+5
  118. 173  (null)ZIEL
  119. 174 NEW
  120. 175 GETDPLCLOSEZIEL
  121. 176  (null)
  122. 177  (null)ZIEL
  123. 178 NEW
  124. 179 ;
  125. 180 GETIWOCLOSEADDR
  126. 181  RIGHT$ADDR
  127. 182  (null)END
  128. 183  RIGHT$ADDR+1
  129. 184 END
  130. 185 NEW
  131. 186 ;
  132. 187 GETDWOCLOSEADDR
  133. 188  CHR$ADDR
  134. 189  (null)END
  135. 190  CHR$ADDR+1
  136. 191 END
  137. 192 NEW
  138. 193 ;
  139. 194 GETDBNCLOSEZIEL,NEU,REG
  140. 195  CHR$REG
  141. 196  (null)ZIEL
  142. 197  *NEU>255,200;TANTANTAN^
  143. 198  MID$#NEU;    (null)
  144. 199  /201;TANTAN^ (null)
  145. 200  MID$NEU;<TAN(null)TANEXP
  146. 201  (null)REG;<TANEXP
  147. 202 NEW
  148. 203 ;
  149. 204 GETPHX
  150. 205  (null)
  151. 206  (null)
  152. 207 NEW
  153. 208 ;
  154. 209 GETPLX
  155. 210  (null)
  156. 211  (null)
  157. 212 NEW
  158. 213 ;
  159. 214 GETPHY
  160. 215  (null)
  161. 216  (null)
  162. 217 NEW
  163. 218 ;
  164. 219 GETPLY
  165. 220  (null)
  166. 221  (null)
  167. 222 NEW
  168. 223 ;
  169. 224 GETPLSCLOSESUM1,SUM2
  170. 225  (null)
  171. 226  MID$SUM1
  172. 227 ^SUM2>255
  173. 228  VALSUM2
  174. 229 AND
  175. 230  VAL#SUM2
  176. 231 OR
  177. 232  (null)SUM1
  178. 233  (null)NCARRYC
  179. 234  RIGHT$SUM1+1
  180. 235 NCARRYC
  181. 236 NEW
  182. 237 ;
  183. 238 GETMNSCLOSEMIN,SUB
  184. 239  (null)
  185. 240  MID$MIN
  186. 241 ^SUB>255
  187. 242  (null)SUB
  188. 243 AND
  189. 244  (null)#SUB
  190. 245 OR
  191. 246  (null)MIN
  192. 247  (null)NCARRYC
  193. 248  CHR$MIN+1
  194. 249 NCARRYC
  195. 250 NEW
  196. 251 ;
  197. 500 ;BETRIEBSSYSTEM-MACROS
  198. 501 ;ACHTUNG!!!  BEI WERTEN>$400
  199. 502 ;WIRD DIE ADDRESSE ALS ABSOLUT
  200. 503 ;ANGENOMMEN, BEI WERTEN<$400 ALS
  201. 504 ;ZEIGER AUF DIE ADDRESSE
  202. 510 ;
  203. 520 GETMFMCLOSEADDR
  204. 521 ^ADDR>$400
  205. 530  PEEK#<(ADDR)
  206. 540  LEN#>(ADDR)
  207. 541 AND
  208. 542  PEEKADDR
  209. 543  LENADDR+1
  210. 544 OR
  211. 550  (null)$BBD4
  212. 560 NEW
  213. 570 ;
  214. 580 GETMMFCLOSEADDR
  215. 585 ^ADDR>$400
  216. 590  MID$#<(ADDR)
  217. 600  LEN#>(ADDR)
  218. 601 AND
  219. 602  MID$ADDR
  220. 603  LENADDR+1
  221. 604 OR
  222. 610  (null)$BBA2
  223. 620 NEW
  224. 630 ;
  225. 640 GETFPMCLOSEADDR
  226. 645 ^ADDR>$400
  227. 650  MID$#<(ADDR)
  228. 660  LEN#>(ADDR)
  229. 661 AND
  230. 662  MID$ADDR
  231. 663  LENADDR+1
  232. 664 OR
  233. 670  (null)$B867
  234. 680 NEW
  235. 999 ;
  236. 1000 ;CRTAB ERZEUGT DIE TABELLEN SINTAB
  237. 1002 ;& COSTAB, DER WINKEL STEHT IN FAC
  238. 1004 ;
  239. 1010 CRTAB MFMCLOSESINHELP
  240. 1020  (null)COS
  241. 1030  MFMCLOSECOSHELP
  242. 1032  (null)MOVAF
  243. 1033  MID$#12
  244. 1034  (null)ACTOFC
  245. 1035  (null)FMULTT
  246. 1036  (null)NEGOP
  247. 1040  MID$#0
  248. 1050  (null)ZAEHLER
  249. 1070  LOHICLOSECOSTAB,TZEIGER
  250. 1080 COSLOOP MFMCLOSETZEIGER
  251. 1090  PLSCLOSETZEIGER,5
  252. 1150  FPMCLOSECOSHELP
  253. 1160  RIGHT$ZAEHLER
  254. 1170  MID$ZAEHLER
  255. 1180  CBNCLOSECOSLOOP,24
  256. 1190 ;
  257. 1200  MMFCLOSESINHELP
  258. 1210  (null)SIN
  259. 1220  MFMCLOSESINHELP
  260. 1221  (null)MOVAF
  261. 1222  MID$#12
  262. 1223  (null)ACTOFC
  263. 1224  (null)FMULTT
  264. 1225  (null)NEGOP
  265. 1230  MID$#0
  266. 1240  (null)ZAEHLER
  267. 1260  LOHICLOSESINTAB,TZEIGER
  268. 1270 SINLOOP MFMCLOSETZEIGER
  269. 1280  PLSCLOSETZEIGER,5
  270. 1340  FPMCLOSESINHELP
  271. 1350  RIGHT$ZAEHLER
  272. 1360  MID$ZAEHLER
  273. 1370  CBNCLOSESINLOOP,24
  274. 1380  (null)
  275. 1390 ;
  276. 1500 ;EINGABEPARAMETER(VON CALCPOS):
  277. 1510 ;ZEILE IM Y-REG; SPALTE IM X-REG
  278. 1520 ;AUSGABEPARAMETER:
  279. 1530 ;ADDRESSE DES BYTES IM SPRITE
  280. 1540 ;STEHT IM Y-REG, DIE NUMMER DES
  281. 1550 ;BITS IM X-REG
  282. 1560 ;
  283. 1570 CALCPOS (null)
  284. 1580  (null)CHELP
  285. 1590  (null)
  286. 1600  (null)
  287. 1610  VALCHELP
  288. 1620  (null)CHELP
  289. 1630  (null)
  290. 1640  (null)
  291. 1650 TLOOP (null)#8
  292. 1660  RIGHT$CHELP
  293. 1670  (null)TLOOP
  294. 1680  CHR$CHELP
  295. 1690  VAL#8
  296. 1700  (null)
  297. 1701  LENCHELP
  298. 1710  (null)
  299. 1720 ;
  300. 1750 BITS FN128,64,32,16,8,4,2,1
  301. 1760 ;
  302. 2000 ;AWICLOSEREG,TAB BRINGT DIE
  303. 2010 ;ADDRESSE DES N. MFLPT-WERTES
  304. 2020 ;IN DER TABELLE IN TZEIGER.
  305. 2030 ;DIE NUMMER STEHT DABEI IN DEM
  306. 2040 ;DURCH REG SPEZIFIZIERTEN REGISTER
  307. 2050 ;DIE TABELLE IN TAB.
  308. 2060 ;
  309. 2070 GETAWICLOSEREG,TAB
  310. 2080  POKECLOSETZEIGER+1,>(TAB)
  311. 2090  MID$REG
  312. 2100  (null)
  313. 2110  (null)
  314. 2120  (null)
  315. 2130  VALREG
  316. 2140  VAL#<(TAB)
  317. 2150  (null)TZEIGER
  318. 2160  (null)*+5
  319. 2170  RIGHT$TZEIGER+1
  320. 2190 NEW
  321. 2200 ;
  322. 9000 ;*********************************
  323. 9010 ;HIER STEHT DAS HAUPTPROGRAMM,
  324. 9011 ;*********************************
  325. 9020 ;NUNAECHST WIRD FOLGENDE SYNTAX
  326. 9030 ;REALISIERT:
  327. 9040 ;
  328. 9050 ;SYS 49358,QUELLE,ZIEL,WINKEL
  329. 9060 ;
  330. 9070 ;QUELLE UND ZIEL GEBEN DIE
  331. 9080 ;ANFANGSADDRESSEN DER SPRITES AN
  332. 9090 ;(0-65535), QUELLE WIRD IN SOURCE
  333. 9100 ;ZIEL IN DEST GESPEICHERT.
  334. 9110 ;WINKEL GIBT DEN WINKEL UM DEN DAS
  335. 9120 ;QUELLSPRITE GEDREHT WERDEN SOLL
  336. 9130 ;IM BOGENMASS AN. DIESER WERT
  337. 9140 ;VERBLEIBT FUER CRTAB IM FAC.
  338. 9150 ;
  339. 10000 DREHE (null)CHKCOM
  340. 10010  (null)FRMNUM
  341. 10020  (null)GETADR
  342. 10030  (null)SOURCE
  343. 10040  (null)SOURCE+1
  344. 10050 ;
  345. 10060  (null)CHKCOM
  346. 10070  (null)FRMNUM
  347. 10080  (null)GETADR
  348. 10090  (null)DEST
  349. 10100  (null)DEST+1
  350. 10110 ;
  351. 10120  (null)CHKCOM
  352. 10130  (null)FRMNUM
  353. 10140 ;
  354. 10150 ;TABELLE ERSTELLEN (CRTAB)
  355. 10160 ;
  356. 10170 USRIN (null)CRTAB
  357. 10180 ;
  358. 10190 ;DAS ZIELSPRITE WIRD GELOESCHT, DA
  359. 10200 ;DANN DIE DREHUNG DER NICHTGE-
  360. 10210 ;SETZTEN PIXEL ENTFAELLT.
  361. 10220 ;
  362. 10230  MID$#0
  363. 10240  LEN#63
  364. 10250 DLOOP (null)(DEST),Y
  365. 10260  (null)
  366. 10270  (null)DLOOP
  367. 10280 ;
  368. 10290 ;DIE REALKOORDINATENZEIGER XS UND
  369. 10300 ;YS WERDEN AUF DEN REALEN URSPRUNG
  370. 10310 ;0(null)0 GESETZT.
  371. 10320 ;
  372. 10330  (null)XS
  373. 10340  (null)YS
  374. 10341  POKECLOSEYTABZ,22
  375. 10350 ;
  376. 10360 ;DIE ADDRESSE DES ZU BEARBEITENDEN
  377. 10370 ;PIXELS IM QUELLSPRITE WIRD
  378. 10380 ;BERECHNET.
  379. 10390 ;
  380. 10400 TRANSLOOP PEEKXS
  381. 10410  LENYS
  382. 10420  (null)CALCPOS
  383. 10430 ;
  384. 10440 ;ES WIRD GEPRUEFT, OB DIESES PIXEL
  385. 10450 ;UEBERHAUPT GESETZT IST, WENN
  386. 10460 ;JA, WERDEN DIE KOORDINATEN NACH
  387. 10470 ;DER DREHUNG BERECHNET,
  388. 10480 ;ANDERNFALLS WIRD DIESER SCHRITT
  389. 10490 ;UEBERSPRUNGEN.
  390. 10500 ;
  391. 10510  MID$(SOURCE),Y
  392. 10520  ASCBITS,X
  393. 10521  STR$#0
  394. 10530  (null)*+5
  395. 10535  (null)NEXTPXL
  396. 10540 ;
  397. 10550 ;DIE X-KOORDINATE NACH DER DREHUNG
  398. 10560 ;WIRD IN DEM PSEUDO-KOORDINATEN-
  399. 10570 ;SYSTEM NACH FOLENDEM SCHEMA
  400. 10580 ;BERECHNET: X'=X*COS(W)-Y*SIN(W)
  401. 10590 ;DIE PRODUKTE SIND IN DEN VON
  402. 10600 ;CRTAB ERZEUGTEN TABELLEN AB-
  403. 10610 ;GESPEICHERT.
  404. 10620 ;
  405. 10630 ;ZUNAECHST WIRD DER Y*SIN(W)
  406. 10640 ;IN DEN FAC GEBRACHT
  407. 10650 ;
  408. 10660  AWICLOSEYTABZ,SINTAB
  409. 10670  MMFCLOSETZEIGER
  410. 10680 ;
  411. 10690 ;X*COS(W) WIRD IN A/Y ADDRESSIERT
  412. 10700 ;
  413. 10710  AWICLOSEXS,COSTAB
  414. 10720  MID$TZEIGER
  415. 10730  LENTZEIGER+1
  416. 10740 ;
  417. 10750 ;MITTELS FSUB WIRD DIE DIFFERENZ
  418. 10760 ;GEBILDET UND DAS ERGEBNIS IN
  419. 10770 ;REALE KOORDINATEN UMGERECHNET
  420. 10780 ;
  421. 10790  (null)FSUB
  422. 10800  MID$#12
  423. 10810  (null)AADD
  424. 10820  (null)FADDH
  425. 10830 ;
  426. 10840 ;WENN EINE BEREICHSUEBERSCHREITUNG
  427. 10850 ;FAC ALSO NEGATIV IST, SO WIRD
  428. 10860 ;SOFORT DER NAECHTE PIXEL
  429. 10870 ;BEARBEITET,
  430. 10880 ;
  431. 10890  MID$VRZCHN
  432. 10900  (null)NEXTPXL
  433. 10910 ;
  434. 10920 ;ANDERFALLS WIRD DIE KOORDINATE
  435. 10930 ;IN INTEGER GEWANDELT, AUF EINE
  436. 10940 ;POSITIVE BEREICHSUEBERSCHREITUNG
  437. 10950 ;GEPRUEFT UND FALLS DIESE NICHT
  438. 10951 ;VORHANDEN WAR IN XT GESPEICHERT.
  439. 10960 ;
  440. 10970  (null)GETADR
  441. 10971  ATN#24
  442. 10972  (null)NEXTPXL
  443. 10990  (null)XT
  444. 11000 ;
  445. 11010 ;DIE Y-KOORDINATE NACH DER DREHUNG
  446. 11020 ;WIRD NACH Y'=X*SIN(W)+Y*COS(W)
  447. 11030 ;BERECHNET. DIE BERECHNUNG GEHT
  448. 11040 ;AEHNLICH WIE BEI DER OBEN
  449. 11050 ;BESCHRIEBENEN TRANSFORMATION
  450. 11060 ;VONSTATTEN.
  451. 11070 ;
  452. 11080  AWICLOSEYTABZ,COSTAB
  453. 11090  MMFCLOSETZEIGER
  454. 11100 ;
  455. 11110  AWICLOSEXS,SINTAB
  456. 11120  MID$TZEIGER
  457. 11130  LENTZEIGER+1
  458. 11140 ;
  459. 11150 ;DIE TRANSFORMATION VON PSEUDOK.
  460. 11160 ;IN REALK. GEHT NACH R=10-P
  461. 11170 ;VONSTATTEN.
  462. 11180 ;
  463. 11190  (null)FADD
  464. 11200  MID$#<(ZEHN)
  465. 11210  LEN#>(ZEHN)
  466. 11220  (null)FSUB
  467. 11230  (null)FADDH
  468. 11240 ;
  469. 11500  MID$VRZCHN
  470. 11510  (null)NEXTPXL
  471. 11520 ;
  472. 11530  (null)GETADR
  473. 11540  ATN#21
  474. 11550  (null)NEXTPXL
  475. 11560  (null)YT
  476. 11570 ;
  477. 11580 ;DIE KOORDINATEN DES GEDREHTEN
  478. 11590 ;PUNKTS LIEGEN JETZT IN XT YT.
  479. 11600 ;NUN WIRD DIESER PUNKT IM
  480. 11610 ;ZIELSPRITE GESETZT.
  481. 11620 ;
  482. 11630  PEEKXT
  483. 11640  LENYT
  484. 11650  (null)CALCPOS
  485. 11660 ;
  486. 11670 ;PUNKT SETZEN
  487. 11680 ;
  488. 11690  MID$(DEST),Y
  489. 11700  (null)BITS,X
  490. 11710  (null)(DEST),Y
  491. 11720 ;
  492. 11730 ;DIE KOORDINATEN DES NAECHSTEN ZU
  493. 11740 ;TRANSFORMIERENDEN PIXELS WERDEN
  494. 11750 ;WERDEN BERECHNET,FALLS DER LETZTE
  495. 11760 ;ERREICHTIST, WIRD DAS PROGRAMM
  496. 11770 ;BEENDET.
  497. 11780 ;
  498. 11790 NEXTPXL RIGHT$XS
  499. 11800  MID$XS
  500. 11810  LBNCLOSETRANSLOOP,24
  501. 11820  POKECLOSEXS,0
  502. 11830  RIGHT$YS
  503. 11840  CHR$YTABZ
  504. 11850  MID$YS
  505. 11860  LBNCLOSETRANSLOOP,21
  506. 11870 ;
  507. 11880  (null)
  508. 11890 ;
  509. 11900 ;
  510. 19000 ;ZEHN ENTHAELT 10 IM MFLPT-FORMAT
  511. 19010 ;
  512. 19020 ZEHN FN$84,$20,0,0,0
  513. 19030 ;
  514. 20000 ;AB HIER STEHEN DIE TABELLEN, DIE
  515. 20010 ;ERST VOM PROGRAMM ERSTELLT WERDEN
  516. 20020 ;
  517. 20030 ;COSTAB ENTHAELT DIE MIT -12 - 11
  518. 20040 ;MULTIPLIZIERTEN KOSINUSWERTE DES
  519. 20050 ;EINGEGEBENEN WINKELS IM MFLPT
  520. 20060 ;FORMAT
  521. 20070 ;
  522. 20080 COSTAB THEN24*5
  523. 20090 ;
  524. 20100 ;SINTAB ENTSPRICHT COSTAB, HIER
  525. 20110 ;SIND JEDOCH SINUSWERTE ANGEGEBEN
  526. 20120 ;
  527. 20130 SINTAB THEN24*5
  528. 20140 ;
  529. 20150 ;COSHELP & SINHELP SIND
  530. 20160 ;HILFSREGISTER IM MFLPT-FORMAT
  531. 20170 ;
  532. 20180 COSHELP THEN5
  533. 20190 ;
  534. 20200 SINHELP THEN5
  535. 20210 ;
  536. 30000 ;
  537. 30010 ;---------------------------------
  538. 30020 ;
  539. 30030 ;ALLGEMEINE PROGRAMMBESCHREIBUNG
  540. 30040 ;
  541. 30050 ;---------------------------------
  542. 30060 ;
  543. 30070 ;DAS HIER VORLIEGENDE PROGRAMM
  544. 30080 ;DREHE DREHT EIN QUELLSPRITE
  545. 30090 ;GEGEN DEN UHRZEIGERSINN UM DEN
  546. 30091 ;PUNKT M(12(null)10) (DER URSPRUNG
  547. 30092 ;LIEGT LINKS OBEN) IN EINEM
  548. 30100 ;BELIEBIGEN WINKEL UND SPEICHERT
  549. 30110 ;ES AN DER ANGEGEBENEN ADDRESSE
  550. 30120 ;AB.
  551. 30130 ;FOLGENDES FUNKTIONSPRINZIP WIRD
  552. 30140 ;DABEI VERWIRKLICHT:
  553. 30150 ;DAS ZIELSPRITE WIRD GELOESCHT,
  554. 30160 ;JEDER GESETZTE PUNKT WIRD UM
  555. 30170 ;DEN ANGEGEBENEN WINKEL GEDREHT
  556. 30180 ;UND IM ZIELSPRITE AN DER NEUEN
  557. 30190 ;POSITION GESETZT.
  558. 30200 ;DIE NEUEN KOORDINATEN WERDEN
  559. 30210 ;NACH DEN TRANSFORMATIONS-
  560. 30220 ;GLEICHUNGEN
  561. 30230 ;  X'=X*COS(WINKEL)-Y*SIN(WINKEL)
  562. 30240 ;  Y'=X*SIN(WINKEL)+Y*COS(WINKEL)
  563. 30250 ;ERRECHNET.
  564. 30260 ;UM RECHENZEIT ZU SPAREN WERDEN
  565. 30270 ;DIE WINKELFUNKTIONSPRODUKTE IN
  566. 30280 ;TABELLEN ABGESPEICHERT.
  567. 30290 ;FUER DIE TRANSFORMATION WERDEN
  568. 30300 ;DIE REALKOORDINATEN IN PSEUDO-
  569. 30310 ;KOORDINATEN VERWANDELT.
  570. 30320 ; R(12(null)10) = P(0(null)0)
  571. 30330 ;DIE EINZELNEN SCHRITTE SIND
  572. 30340 ;HOFFENTLICH SO GUT DOKUMENTIERT
  573. 30350 ;DAS AENDERUNGEN LEICHT MOEGLICH
  574. 30360 ;SIND,Z.B DREHUNG UM EINEN ANDEREN
  575. 30370 ;(VIELLEICHT BELIEBIGEN) PUNKT.
  576.