home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1993 November / 64er_Magazin_93-11_1993_Markt__Technik_de_Side_A.d64 / hyper-fak.src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  12KB  |  863 lines

  1. 100 +$801
  2. 500 ;******* variablen         *******
  3. 510 ; tabellen
  4. 520 tab(add=$f20
  5. 530 tab(zweilo=$120
  6. 540 tab(zweihi=$ff50
  7. 550 tab(mtab=$400
  8. 560 ; fakultaet
  9. 570 tab(fak=$1200
  10. 580 tab(n=fak-6
  11. 590 tab(store=n-9
  12. 600 tab(x=$f00
  13. 610 ; multiplikation
  14. 620 tab(precision=$90
  15. 630 tab(mal=$92
  16. 640 tab(z1=mal+1+13
  17. 650 tab(z0=mal+11+13
  18. 660 ; carry 0-4 = uebertrag
  19. 670 tab(c0=mal+9+13
  20. 680 tab(c1=mal+17+13
  21. 690 tab(c2=mal+24+13
  22. 700 tab(c3=mal+31+13
  23. 710 tab(c4=mal+38+13
  24. 720 ; ausgabe
  25. 730 ;       $ac als zeiger
  26. 740 tab(null=$57
  27. 750 tab(kommaflag=$58
  28. 760 tab(fac2=x-10
  29. 1000 step"@:hyper-fak 3.2,p,w"
  30. 1500 ;******* basic-zeile       *******
  31. 1510 fn17,8,<(1993),>(1993),$9e
  32. 1520 not"2061"
  33. 1530 fn0,0
  34. 2000 ;***** 'interpreter-schleife' ****
  35. 2010  mid$#<(nmi);nmi auf
  36. 2020  len#>(nmi);rti
  37. 2030  (NULL)$318
  38. 2040  (NULL)$319
  39. 2050  (NULL)$fffa
  40. 2060  (NULL)$fffb
  41. 2070  mid$#0
  42. 2080  len#2
  43. 2090  (NULL)$7a
  44. 2100  (NULL)$7b
  45. 2110 in1 (NULL)$0073
  46. 2120  (NULL)in1
  47. 2130 in0 (NULL)$0079
  48. 2140  (NULL)
  49. 2150  (NULL)in3
  50. 2160  (NULL)$0073
  51. 2170  (NULL)in5
  52. 2180  (NULL)pa1
  53. 2190  str$#$99
  54. 2200  (NULL)in4
  55. 2210  (NULL)
  56. 2220  (NULL)#$93
  57. 2230  (NULL)in2
  58. 2240  str$#2
  59. 2250  (NULL)in2
  60. 2260 ; load/save
  61. 2270  mid$#<(lsdo)
  62. 2280  len#>(lsdo)
  63. 2290  (NULL)$328
  64. 2300  (NULL)$329
  65. 2310  (NULL)$0079
  66. 2320  (NULL)$a7ed
  67. 2330  (NULL)in0
  68. 2340 in2 (NULL)$b3ae;undef
  69. 2350 in3 (NULL)info
  70. 2360 in4 (NULL)ausgabe
  71. 2370 in5 (NULL)ini
  72. 2380  (NULL)in0
  73. 2390 ;******* bcd nach x holen  *******
  74. 2400 getx peek#0
  75. 2410  (NULL)x
  76. 2420  (NULL)x+1
  77. 2430  (NULL)x+2
  78. 2440  (NULL)x+3
  79. 2450  (NULL)$0079
  80. 2460  (NULL)ge2
  81. 2470 ge0 len#4
  82. 2480  (NULL)
  83. 2490  (NULL)
  84. 2500  (NULL)
  85. 2510  (NULL)
  86. 2520  (NULL)ge1
  87. 2530  right$x+3
  88. 2540 ge1 (NULL)
  89. 2550  (NULL)x
  90. 2560  (NULL)x+1
  91. 2570  (NULL)x+2
  92. 2580  (NULL)illegal
  93. 2590  (NULL)
  94. 2600  (NULL)ge1
  95. 2610  (NULL)$0073
  96. 2620  (NULL)ge0
  97. 2630 ge2 peekx+3
  98. 2640  (NULL)
  99. 2650 illegal (NULL)$b248
  100. 3000 ;******* fakultaet besorgen ******
  101. 3010 ;======= parameter holen
  102. 3020 ; x wert holen
  103. 3030 pa1 (NULL)getx
  104. 3040  (NULL)in5
  105. 3050  peekx+2
  106. 3060  tan#$10
  107. 3070  (NULL)illegal
  108. 3080 ; precision holen
  109. 3090  (NULL)$0079
  110. 3100  (NULL)pa2
  111. 3110  (NULL)$e200
  112. 3120  (NULL)
  113. 3130  (NULL)pa2
  114. 3140  (NULL)
  115. 3150  val#>(fak)
  116. 3160  (NULL)pa3
  117. 3170 pa2 mid$#$ff
  118. 3180 pa3 (NULL)precision
  119. 3190  (NULL)neu;rechnen
  120. 3200  (NULL)in0
  121. 3210 ;******* fakultaet berechnen *****
  122. 3220 neu (NULL)
  123. 3230  right$$d030;2 mhz
  124. 3240  peek#11;schirm
  125. 3250  (NULL)$d011;aus
  126. 3260  peek#52
  127. 3270  (NULL)1;ram
  128. 3280  (NULL)
  129. 3290 ;======= mal-routine kopieren
  130. 3300 tohilfe=ende+1-ma0+1
  131. 3310  len#<(hilfe)
  132. 3320 co mid$ma0-1,y
  133. 3330  (NULL)mal-1,y
  134. 3340  (NULL)
  135. 3350  (NULL)co
  136. 3360 ;======= tabellen generieren
  137. 3370 ; add := x - n - 2
  138. 3380 ta0 (NULL)
  139. 3390  mid$x
  140. 3400  (NULL)n
  141. 3410  (NULL)c0
  142. 3420  mid$x+1
  143. 3430  (NULL)n+1
  144. 3440  (NULL)
  145. 3450  mid$x+2
  146. 3460  (NULL)n+2
  147. 3470  (NULL)ta1
  148. 3480 ;        x-n<0  => n:=0
  149. 3490  (NULL)ini
  150. 3500  (NULL)ta0
  151. 3510 ta1 peekstore+3
  152. 3520  (NULL)ta2
  153. 3530  (NULL)
  154. 3540  (NULL)ta3
  155. 3550  (NULL)
  156. 3560  (NULL)ta3
  157. 3570  mid$c0
  158. 3580  (NULL)ta3
  159. 3590 ; n! fertig und x-n=0  => ende
  160. 3600  (NULL)ganzfertig
  161. 3610 ; n! nicht fertig => weiterrechnen
  162. 3620 ta2 mid$store
  163. 3630  (NULL)c0
  164. 3640  mid$store+1
  165. 3650  (NULL)c1
  166. 3660  mid$store+2
  167. 3670  (NULL)c2
  168. 3680  (NULL)gencop
  169. 3690  mid$store+4
  170. 3700  (NULL)c0
  171. 3710  mid$store+5
  172. 3720  (NULL)c1
  173. 3730  mid$store+6
  174. 3740  (NULL)c2
  175. 3750  mid$store+7
  176. 3760  (NULL)c3
  177. 3770  mid$store+8
  178. 3780  (NULL)c4
  179. 3790  (NULL)alt
  180. 3800  (NULL)neu
  181. 3810 ta3 mid$c0
  182. 3820  (NULL)
  183. 3830  (NULL)ta4
  184. 3840 ; x-n ungerade  => fak:=fak*(n+1)
  185. 3850 ;               => n:=n+1
  186. 3860  (NULL)malnplus1
  187. 3870  (NULL)ta0
  188. 3880 ta4 (NULL)
  189. 3890  (NULL)
  190. 3900  (NULL)#2
  191. 3910  (NULL)c0
  192. 3920  (NULL)
  193. 3930  (NULL)#0
  194. 3940  (NULL)c1
  195. 3950  (NULL)
  196. 3960  (NULL)#0
  197. 3970  (NULL)c2
  198. 3980  (NULL)gencop
  199. 3990 ; x retten
  200. 4000  mid$x
  201. 4010  (NULL)
  202. 4020  mid$x+1
  203. 4030  (NULL)
  204. 4040  mid$x+2
  205. 4050  (NULL)
  206. 4060 ; mtab := x * (n+1)
  207. 4070  mid$#$9b
  208. 4080  (NULL)x+4
  209. 4090  mid$#>(x)
  210. 4100  (NULL)z1+1
  211. 4110  (NULL)z0+1
  212. 4120  mid$#$60;=rts
  213. 4130  (NULL)<(mal+ma5-ma0)
  214. 4140  (NULL)malnplus1
  215. 4150  mid$#$b1;=lda(),y
  216. 4160  (NULL)<(mal+ma5-ma0)
  217. 4170  (NULL);n:=x
  218. 4180  (NULL)n+2
  219. 4190  (NULL)
  220. 4200  (NULL)n+1
  221. 4210  (NULL)
  222. 4220  (NULL)n
  223. 4230  mid$x
  224. 4240  (NULL)c0
  225. 4250  mid$x+1
  226. 4260  (NULL)c1
  227. 4270  mid$x+2
  228. 4280  (NULL)c2
  229. 4290  mid$x+3
  230. 4300  (NULL)c3
  231. 4310  mid$x+4
  232. 4320  (NULL)c4
  233. 4330 alt (NULL)gentab
  234. 4340  mid$$2e
  235. 4350  (NULL)z0+1
  236. 4360  mid$mtab+800+$99
  237. 4370  (NULL)re0
  238. 4380 ;======= fakultaets-berechnung
  239. 4390 ; mal-routine modifizieren
  240. 4400 rechne mid$mtab+640+$99
  241. 4410  str$#$99
  242. 4420  (NULL)re1
  243. 4430 re0 mid$#$bd;=lda ab,x
  244. 4440  (NULL)c4+3
  245. 4450  mid$#<(mtab+800)
  246. 4460  (NULL)c4+4
  247. 4470 ; precision ueberpruefen
  248. 4480 ; d.h. z0+1/z1+1 setzen
  249. 4490 re1 peek#>(fak)
  250. 4500  lenz0+1
  251. 4510  (NULL)z0+1
  252. 4520 re2 atnprecision
  253. 4530  (NULL)re4
  254. 4540  (NULL)re4
  255. 4550  right$fak-2
  256. 4560  (NULL)re3
  257. 4570  right$fak-1
  258. 4580 re3 (NULL)
  259. 4590  (NULL)
  260. 4600  (NULL)re2
  261. 4610 re4 (NULL)z1+1
  262. 4620 ; z0/z1 setzen
  263. 4630  len#0
  264. 4640  peekz0
  265. 4650  (NULL)z0
  266. 4660  (NULL)re5
  267. 4670  (NULL)
  268. 4680  (NULL)
  269. 4690 re5 mid$fak,y;endnullen
  270. 4700  (NULL)re6
  271. 4710  (NULL)
  272. 4720  (NULL)re5
  273. 4730  (NULL)
  274. 4740 re6 (NULL)z1;weg und
  275. 4750  (NULL)
  276. 4760  (NULL)
  277. 4770  (NULL)
  278. 4780  valfak-3;merken
  279. 4790  (NULL)fak-3
  280. 4800  (NULL)re7
  281. 4810  right$fak-2
  282. 4820  (NULL)re7
  283. 4830  right$fak-1
  284. 4840 re7 (NULL)
  285. 4850 ; multiplizieren
  286. 4860  (NULL)mal
  287. 4870 ; tabellen verknuepfen
  288. 4880  peek#$99
  289. 4890 re8 (NULL)
  290. 4900  mid$mtab,x
  291. 4910  valadd,x
  292. 4920  (NULL)mtab,x
  293. 4930  mid$mtab+160,x
  294. 4940  valadd+160,x
  295. 4950  (NULL)mtab+160,x
  296. 4960  mid$mtab+320,x
  297. 4970  valadd+320,x
  298. 4980  (NULL)mtab+320,x
  299. 4990  mid$mtab+480,x
  300. 5000  valadd+480,x
  301. 5010  (NULL)mtab+480,x
  302. 5020  (NULL)re9
  303. 5030  mid$mtab+640,x
  304. 5040  val#0
  305. 5050  (NULL)mtab+640,x
  306. 5060  mid$mtab+800,x
  307. 5070  val#0
  308. 5080  (NULL)mtab+800,x
  309. 5090 re9 (NULL)
  310. 5100  mid$add,x
  311. 5110  (NULL)zweilo,x
  312. 5120  (NULL)add,x
  313. 5130  mid$add+160,x
  314. 5140  (NULL)zweihi,x
  315. 5150  (NULL)add+160,x
  316. 5160  (NULL)re10
  317. 5170  mid$add+320,x
  318. 5180  (NULL)#0
  319. 5190  (NULL)add+320,x
  320. 5200  mid$add+480,x
  321. 5210  (NULL)#0
  322. 5220  (NULL)add+480,x
  323. 5230  (NULL)fertig
  324. 5240 re10 (NULL)
  325. 5250  (NULL)#1
  326. 5260  (NULL)
  327. 5270  (NULL)re8
  328. 5280 ; flackern
  329. 5290  peek#55
  330. 5300  (NULL)1
  331. 5310  right$53280
  332. 5320 ; stop-taste abfragen
  333. 5330  (NULL)$f6bc
  334. 5340  (NULL)$f6ed
  335. 5350  (NULL)break
  336. 5360  peek#52
  337. 5370  (NULL)1
  338. 5380  (NULL)rechne
  339. 5390 break mid$add+1
  340. 5400  (NULL)store
  341. 5410  mid$add+160+1
  342. 5420  (NULL)store+1
  343. 5430  mid$add+320+1
  344. 5440  (NULL)store+2
  345. 5450  mid$mtab+1
  346. 5460  (NULL)store+4
  347. 5470  mid$mtab+160+1
  348. 5480  (NULL)store+5
  349. 5490  mid$mtab+320+1
  350. 5500  (NULL)store+6
  351. 5510  mid$mtab+480+1
  352. 5520  (NULL)store+7
  353. 5530  mid$mtab+640+1
  354. 5540  (NULL)store+8
  355. 5550  (NULL)fertig
  356. 5560  (NULL)info
  357. 5570 fertig mid$add+480+$99
  358. 5580  (NULL)store+3
  359. 5590 ganzfertig (NULL)
  360. 5600  len#0
  361. 5610 fe0 mid$(z0),y
  362. 5620  right$z0
  363. 5630  (NULL)fe1
  364. 5640  right$z0+1
  365. 5650 fe1 str$#$9b
  366. 5660  (NULL)fe0
  367. 5670  mid$z0
  368. 5680  peekz0+1
  369. 5690  (NULL)$2d
  370. 5700  (NULL)$2e
  371. 5710  (NULL)
  372. 5720  len#hilfe
  373. 5730  peek#55;rom
  374. 5740  (NULL)1
  375. 5750 fe2 (NULL)mal-1,y
  376. 5760  (NULL)
  377. 5770  (NULL)fe2
  378. 5780  (NULL)$98
  379. 5790  (NULL)$e518
  380. 5800  mid$#0
  381. 5810  (NULL)$d030;1 mhz
  382. 5820  (NULL)
  383. 5830  (NULL)
  384. 5840 ;******* mal (n+1), n:=n+1 *******
  385. 5850 malnplus1 (NULL)
  386. 5860  mid$n
  387. 5870  val#1
  388. 5880  (NULL)n
  389. 5890  (NULL)c0
  390. 5900  mid$n+1
  391. 5910  val#0
  392. 5920  (NULL)n+1
  393. 5930  (NULL)c1
  394. 5940  mid$#0
  395. 5950  (NULL)c3
  396. 5960  (NULL)c4
  397. 5970  (NULL)z0
  398. 5980  (NULL)z1
  399. 5990  valn+2
  400. 6000  (NULL)n+2
  401. 6010  (NULL)c2
  402. 6020  (NULL)gentab
  403. 6030  (NULL)mal
  404. 6040 ;******* tabelle generieren ******
  405. 6050 gentab len#0
  406. 6060  (NULL)mtab
  407. 6070  (NULL)mtab+160
  408. 6080  (NULL)mtab+320
  409. 6090  (NULL)mtab+480
  410. 6100  (NULL)mtab+640
  411. 6110  (NULL)mtab+800
  412. 6120  (NULL)
  413. 6130  (NULL)
  414. 6140 ge3 mid$mtab-1,y
  415. 6150  valc0
  416. 6160  (NULL)mtab,y
  417. 6170  (NULL)mtab+6,y
  418. 6180  mid$mtab+160-1,y
  419. 6190  valc1
  420. 6200  (NULL)mtab+160,y
  421. 6210  (NULL)mtab+160+6,y
  422. 6220  mid$mtab+320-1,y
  423. 6230  valc2
  424. 6240  (NULL)mtab+320,y
  425. 6250  (NULL)mtab+320+6,y
  426. 6260  mid$mtab+480-1,y
  427. 6270  valc3
  428. 6280  (NULL)mtab+480,y
  429. 6290  (NULL)mtab+480+6,y
  430. 6300  mid$mtab+640-1,y
  431. 6310  valc4
  432. 6320  (NULL)mtab+640,y
  433. 6330  (NULL)mtab+640+6,y
  434. 6340  mid$mtab+800-1,y
  435. 6350  val#0
  436. 6360  (NULL)mtab+800,y
  437. 6370  (NULL)mtab+800+6,y
  438. 6380  (NULL)
  439. 6390  val#1
  440. 6400  (NULL)
  441. 6410  (NULL)ge3
  442. 6420  (NULL)
  443. 6430 ;******* add und zwei gen/kopieren
  444. 6440 gencop mid$#0
  445. 6450  (NULL)c3
  446. 6460  (NULL)c4
  447. 6470  (NULL)gentab
  448. 6480  peek#0
  449. 6490 ge5 mid$mtab,x
  450. 6500  (NULL)add,x
  451. 6510  mid$mtab+$100,x
  452. 6520  (NULL)add+$100,x
  453. 6530  mid$mtab+$180,x
  454. 6540  (NULL)add+$180,x
  455. 6550  (NULL)
  456. 6560  (NULL)ge5
  457. 6570 ; vorbelegungen fuer m-tab-gen
  458. 6580  (NULL)x+3
  459. 6590  (NULL)z0
  460. 6600  (NULL)z1
  461. 6610 ; zwei := 2
  462. 6620  mid$#2
  463. 6630  (NULL)c0
  464. 6640  (NULL)c1
  465. 6650  (NULL)c2
  466. 6660  (NULL)gentab
  467. 6670 ge6 mid$mtab,x
  468. 6680  (NULL)zweilo,x
  469. 6690  mid$mtab+160,x
  470. 6700  (NULL)zweihi,x
  471. 6710  (NULL)
  472. 6720  tan#154
  473. 6730  (NULL)ge6
  474. 6740  (NULL)
  475. 6750 ;******* multiplikation    *******
  476. 6760 ;======= carry := 0
  477. 6770 ma0 len#0
  478. 6780  (NULL)c0
  479. 6790  (NULL)c1
  480. 6800  (NULL)c2
  481. 6810  (NULL)c3
  482. 6820  (NULL)c4
  483. 6830  (NULL)
  484. 6840 ma1 peekfak,y
  485. 6850  (NULL)ma4
  486. 6860 ma2 mid$mtab,x
  487. 6870  val#0
  488. 6880  (NULL)fak,y
  489. 6890  mid$mtab+160,x
  490. 6900  val#0
  491. 6910  (NULL)c0
  492. 6920  mid$mtab+320,x
  493. 6930  val#0
  494. 6940  (NULL)c1
  495. 6950  mid$mtab+480,x
  496. 6960  val#0
  497. 6970  (NULL)c2
  498. 6980  mid$mtab+640,x
  499. 6990  val#0
  500. 7000  (NULL)c3
  501. 7010  (NULL)ma3
  502. 7020 fn>(mtab+800)
  503. 7030 ; bzw. lda mtab+800,x
  504. 7040  val#0
  505. 7050  (NULL)c4
  506. 7060 ma3 (NULL)
  507. 7070  (NULL)ma1
  508. 7080  right$z1+1
  509. 7090  right$z0+1
  510. 7100  (NULL)ma1
  511. 7110 ma4 right$z1
  512. 7120  mid$(z1),y
  513. 7130  chr$z1
  514. 7140  str$#$9b
  515. 7150  (NULL)ma2
  516. 7160  (NULL)z0
  517. 7170  len#0
  518. 7180  mid$c0
  519. 7190  (NULL)(z0),y
  520. 7200  (NULL)
  521. 7210  mid$c1
  522. 7220  (NULL)(z0),y
  523. 7230  (NULL)
  524. 7240  mid$c2
  525. 7250  (NULL)(z0),y
  526. 7260  (NULL)
  527. 7270  mid$c3
  528. 7280  (NULL)(z0),y
  529. 7290  (NULL)
  530. 7300  mid$c4
  531. 7310  (NULL)(z0),y
  532. 7320 ma5 mid$(z0),y
  533. 7330  (NULL)ma6
  534. 7340  (NULL)
  535. 7350  (NULL)ma5
  536. 7360 ma6 (NULL)
  537. 7370  mid$#0
  538. 7380  (NULL)(z0),y
  539. 7390  (NULL)
  540. 7400  mid$#$9b
  541. 7410  (NULL)(z0),y
  542. 7420 ende (NULL)
  543. 8000 ;******* n:=0, fak:=1      *******
  544. 8010 ini mid$#0
  545. 8020  len#9+6+2
  546. 8030 in6 (NULL)store-1,y
  547. 8040  (NULL)
  548. 8050  (NULL)in6
  549. 8060  chr$store+3
  550. 8070  (NULL)
  551. 8080  (NULL)fak
  552. 8090  mid$#$9b
  553. 8100  (NULL)fak+2
  554. 8110  mid$#<(fak+3)
  555. 8120  len#>(fak+3)
  556. 8130  (NULL)$2d
  557. 8140  (NULL)$2e
  558. 8150  (NULL)
  559. 8160 ;******* fakultaet laden/saven ***
  560. 8170 lsdo mid$$9d;direkt-
  561. 8180  (NULL)ls0;modus ?
  562. 8190  (NULL)
  563. 8200  (NULL)
  564. 8210  str$#$fb
  565. 8220  (NULL)load
  566. 8230  str$#$30
  567. 8240  (NULL)save
  568. 8250 ls0 (NULL)$f6ed;ja
  569. 8260 save mid$#<(store+1)
  570. 8270  len#>(store+1)
  571. 8280  (NULL)$ac
  572. 8290  (NULL)$ad
  573. 8300  mid$n
  574. 8310  (NULL)$95
  575. 8320 sa1 (NULL)getbcd
  576. 8330  (NULL)$eddd
  577. 8340  (NULL)$fcdb
  578. 8350  (NULL)$fcd1
  579. 8360  (NULL)sa1
  580. 8370  (NULL)
  581. 8380  (NULL)
  582. 8390  (NULL)$f63f
  583. 8400 load mid$#<(store)
  584. 8410  len#>(store)
  585. 8420  (NULL)$ae
  586. 8430  (NULL)$af
  587. 8440  len#0
  588. 8450 lo1 (NULL)$ee13
  589. 8460  (NULL)
  590. 8470  peek#52
  591. 8480  (NULL)1
  592. 8490  (NULL)($ae),y
  593. 8500  peek#55
  594. 8510  (NULL)1
  595. 8520  (NULL)
  596. 8530  right$$ae
  597. 8540  (NULL)lo2
  598. 8550  right$$af
  599. 8560 lo2 (NULL)$90
  600. 8570  (NULL)lo1
  601. 8580  (NULL)$f528
  602. 10000 ;******* auskunft          *******
  603. 10010 info (NULL)printn
  604. 10020  mid$store+3
  605. 10030  (NULL)inf1
  606. 10040  peek#0
  607. 10050  (NULL)strout
  608. 10060  (NULL)stellen
  609. 10070  (NULL)$aabc
  610. 10080  (NULL)$a474
  611. 10090 inf1 peek#<(t2-texte)
  612. 10100  (NULL)strout
  613. 10110  peekstore+2
  614. 10120  lenstore+1
  615. 10130  mid$store
  616. 10140  (NULL)print
  617. 10150  (NULL)$a474
  618. 10160 ;******* fakultaet ausgeben ******
  619. 10170 ausgabe mid$store+3
  620. 10180  (NULL)info
  621. 10190  (NULL)$0073
  622. 10200  (NULL)$b79e
  623. 10210  (NULL)$ba;ga
  624. 10220  (NULL)$e200
  625. 10230  (NULL)$b9;sa
  626. 10240  (NULL)stellen
  627. 10250 ; auszugebende stellenzahl -> fac
  628. 10260  (NULL)$aefd
  629. 10270  (NULL)$ad8a
  630. 10280  peek#0
  631. 10290  (NULL)$b7;kein name
  632. 10300  (NULL)
  633. 10310  (NULL)$b8;file-nr
  634. 10320  peek$ba
  635. 10330  (NULL)au1
  636. 10340  (NULL)$ffc0
  637. 10350  peek#1
  638. 10360  (NULL)$ffc9
  639. 10370  peek$9a
  640. 10380 au1 (NULL)$9a
  641. 10390 ; user-port ansteuerung ermoegl.
  642. 10400  mid$#$ff
  643. 10410  (NULL)$dd03
  644. 10420  mid$#$3f
  645. 10430  (NULL)$dd02
  646. 10440 ; bsout installieren
  647. 10450  mid$#<(bsout)
  648. 10460  len#>(bsout)
  649. 10470  (NULL)$326
  650. 10480  (NULL)$327
  651. 10490  (NULL)printn
  652. 10500  peek#<(t3-texte)
  653. 10510  (NULL)strout
  654. 10520  mid$$61
  655. 10530  (NULL)au2
  656. 10540 ; fac mit stellenanzahl vergl.
  657. 10550  mid$#<(fac2)
  658. 10560  len#>(fac2)
  659. 10570  (NULL)$bc5b
  660. 10580 au2 (NULL)kommaflag
  661. 10590  (NULL)
  662. 10600  mid$#255
  663. 10610  (NULL)null
  664. 10620  (NULL)setend
  665. 10630  (NULL)nextbcd
  666. 10640  (NULL)nextbcd
  667. 10650 ; null am anfang abfangen
  668. 10660  (NULL)
  669. 10670  asc#$f0
  670. 10680  (NULL)au5
  671. 10690  (NULL)au4
  672. 10700 au3 (NULL)komma
  673. 10710  (NULL)nextbcd
  674. 10720  (NULL)au7
  675. 10730  (NULL)
  676. 10740 au4 (NULL)
  677. 10750  (NULL)
  678. 10760  (NULL)
  679. 10770  (NULL)
  680. 10780  (NULL)pr0
  681. 10790  (NULL)sub1
  682. 10800  (NULL)au6
  683. 10810  (NULL)komma
  684. 10820 au5 (NULL)
  685. 10830  (NULL)pr00
  686. 10840  (NULL)sub1
  687. 10850  (NULL)au3
  688. 10860 fn$24
  689. 10870 au6 (NULL)
  690. 10880 au7 (NULL)nullen
  691. 10890  (NULL)
  692. 10900  (NULL)
  693. 10910  (NULL)au8
  694. 10920 ; exponent=nullen+stellen-1
  695. 10930  mid$#<(fac2)
  696. 10940  len#>(fac2)
  697. 10950  (NULL)$b867
  698. 10960  (NULL)sub1
  699. 10970 au8 mid$$61
  700. 10980  (NULL)au9
  701. 10990 ; exponent mit '*10^' ausgeben
  702. 11000  peek#<(t4-texte)
  703. 11010  (NULL)strout
  704. 11020  (NULL)$aabc
  705. 11030  (NULL)
  706. 11040  (NULL)au10
  707. 11050 au9 (NULL)$aad7;cr
  708. 11060 au10 (NULL)
  709. 11070  (NULL)au11
  710. 11080 ; 'stellen:' ... ausgeben
  711. 11090  peek#<(t5-texte)
  712. 11100  (NULL)strout
  713. 11110  (NULL)nullen
  714. 11120  mid$#<(fac2)
  715. 11130  len#>(fac2)
  716. 11140  (NULL)$b867
  717. 11150  (NULL)$aabc
  718. 11160 au11 (NULL)$ffcc
  719. 11170  mid$#1
  720. 11180  (NULL)$ffc3
  721. 11190  (NULL)in0
  722. 11200 komma mid$kommaflag
  723. 11210  (NULL)ko1
  724. 11220  mid$#"."
  725. 11230  (NULL)bsout
  726. 11240  (NULL)kommaflag
  727. 11250 ko1 (NULL)
  728. 15000 ;******* n ausgeben        *******
  729. 15010 printn peekn+2
  730. 15020  lenn+1
  731. 15030  mid$n
  732. 15040 ;******* x/y/a ausgeben (bcd) ****
  733. 15050 print (NULL)
  734. 15060  mid$#0
  735. 15070  (NULL)null
  736. 15080  (NULL)
  737. 15090  (NULL)printbyte
  738. 15100  (NULL)
  739. 15110  (NULL)printbyte
  740. 15120  (NULL)
  741. 15130  (NULL)printbyte
  742. 15140  mid$null
  743. 15150  (NULL)pr2
  744. 15160  mid$#$30
  745. 15170  (NULL)bsout
  746. 15180 ;******* bcd-byte ausgeben *******
  747. 15190 printbyte (NULL)
  748. 15200  (NULL)
  749. 15210  (NULL)
  750. 15220  (NULL)
  751. 15230  (NULL)
  752. 15240  (NULL)pr0
  753. 15250  (NULL)
  754. 15260 pr00 asc#15
  755. 15270 ;******* ziffer ausgeben   *******
  756. 15280 ; null=0: keine 0, sonst null>127
  757. 15290 ; null>127: normale ausgabe
  758. 15300 pr0 peeknull
  759. 15310  (NULL)pr1
  760. 15320  (NULL)
  761. 15330  (NULL)pr2
  762. 15340  chr$null
  763. 15350 pr1 (NULL)#$30
  764. 15360 ;******* ascii ausgeben    *******
  765. 15370 bsout (NULL)
  766. 15380  mid$$9a
  767. 15390  (NULL)bs1
  768. 15400  (NULL)$f1cb
  769. 15410 bs1 mid$#$10
  770. 15420 bs2 (NULL)$dd0d
  771. 15430  (NULL)bs2
  772. 15440  (NULL)
  773. 15450  (NULL)
  774. 15460  (NULL)$dd01
  775. 15470  mid$$dd00
  776. 15480  (NULL)#4
  777. 15490  (NULL)$dd00
  778. 15500  asc#$fb
  779. 15510  (NULL)$dd00
  780. 15520  (NULL)
  781. 15530  (NULL)
  782. 15540 pr2 (NULL)
  783. 15550 ;******* string ausgeben   *******
  784. 15560 strout mid$texte,x
  785. 15570  (NULL)str1
  786. 15580  (NULL)bsout
  787. 15590  (NULL)
  788. 15600  (NULL)strout
  789. 15610 str1 (NULL)
  790. 15620 texte not"!, ziffern im ram:"
  791. 15630 t2 not"!, fehlende *:"
  792. 15640 t3 not"!="
  793. 15650 t4 not"*10^"
  794. 15660 t5 not"stellen:"
  795. 15670 ;******* stellenanzahl -> fac/fac2
  796. 15680 stellen (NULL)setend
  797. 15690  (NULL)nextbcd
  798. 15700  len$ac
  799. 15710  mid$$ad
  800. 15720  (NULL)#>(fak)
  801. 15730  (NULL)$b395
  802. 15740  (NULL)mal2
  803. 15750  (NULL)nextbcd
  804. 15760 ; 1.ziffer=0  => fac:=fac-1
  805. 15770  str$#$10
  806. 15780  (NULL)st1
  807. 15790  (NULL)sub1
  808. 15800 st1 peek#<(fac2)
  809. 15810  len#>(fac2)
  810. 15820  (NULL)$bbd4
  811. 15830 ;******* nullenanzahl -> fac *****
  812. 15840 nullen mid$fak-3
  813. 15850  peekfak-2
  814. 15860  lenfak-1
  815. 15870  (NULL)$64
  816. 15880  (NULL)$63
  817. 15890  (NULL)$62
  818. 15900  mid$#0
  819. 15910  (NULL)$6f
  820. 15920  (NULL)$65
  821. 15930  peek#129+23
  822. 15940  (NULL)
  823. 15950  (NULL)$bc4f
  824. 15960 ;******* fac:=fac*2        *******
  825. 15970 mal2 (NULL)$bc0c
  826. 15980  mid$$61
  827. 15990  (NULL)$b86a
  828. 16000 ;******* fac:=fac-1        *******
  829. 16010 sub1 mid$#<($b9bc)
  830. 16020  len#>($b9bc)
  831. 16030  (NULL)$b850
  832. 16040  (NULL)$bfb4
  833. 16050  mid$$61
  834. 16060  (NULL)
  835. 16070 ;******* ($ac) auf fak-ende ******
  836. 16080 setend len$2d
  837. 16090  mid$$2e
  838. 16100  (NULL)$ac
  839. 16110  (NULL)$ad
  840. 16120 ;******* naechstes bcd-byte ******
  841. 16130 ; clc => alle gelesen
  842. 16140 nextbcd chr$$ac
  843. 16150  len$ac
  844. 16160  atn#255
  845. 16170  (NULL)getbcd
  846. 16180  chr$$ad
  847. 16190  mid$$ad
  848. 16200  str$#>(fak)
  849. 16210  (NULL)ge4
  850. 16220 ;******* bcd-byte lesen    *******
  851. 16230 getbcd (NULL)
  852. 16240  len#52
  853. 16250  (NULL)1
  854. 16260  len#0
  855. 16270  mid$($ac),y
  856. 16280  len#55
  857. 16290  (NULL)1
  858. 16300  (NULL)
  859. 16310  (NULL)
  860. 16320 ge4 (NULL)
  861. 16330 nmi (NULL)
  862. 60000 <
  863.